diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..3850a5a2 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# This is a comment. +# Each line is a file pattern followed by one or more owners. + +# These owners will be the default owners for everything in +# the repo. Unless a later match takes precedence, +# @dev will be requested for +# review when someone opens a pull request. + +* @Product/sbacodeowners diff --git a/.github/workflows/deploy-private.yml b/.github/workflows/deploy-private.yml index 169afdd5..45a26d20 100644 --- a/.github/workflows/deploy-private.yml +++ b/.github/workflows/deploy-private.yml @@ -1,4 +1,4 @@ -name: Build and deploy the Mint documentation on Github Enterprise +name: Deploy Docs on Github Enterprise on: #push: diff --git a/.github/workflows/deploy-public.yml b/.github/workflows/deploy-public.yml index bc26bee8..42cf150f 100644 --- a/.github/workflows/deploy-public.yml +++ b/.github/workflows/deploy-public.yml @@ -1,5 +1,5 @@ # Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Build the Mint documentation on Github.com +name: Deploy Docs on Github.com on: # Runs on pushes targeting the default branch diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index d6c3cf8e..3ffee736 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -21,6 +21,13 @@ jobs: uses: actions/setup-node@v4 with: node-version: '22.x' + - name: Get branch name + run: | + if [ -z $GITHUB_HEAD_REF ]; then + echo "Current branch:$GITHUB_REF_NAME" + else + echo "Current branch:$GITHUB_HEAD_REF" + fi - run: npm ci - run: npm run build --if-present env: diff --git a/docusaurus/docs/atomic-angular/components/drawer/drawer.md b/docusaurus/docs/atomic-angular/components/drawer/drawer.md index ec08d208..d8825c31 100644 --- a/docusaurus/docs/atomic-angular/components/drawer/drawer.md +++ b/docusaurus/docs/atomic-angular/components/drawer/drawer.md @@ -1,9 +1,14 @@ --- title: DrawerComponent +sidebar_class_name: deprecated --- This component represents a drawer that can be opened and extended. Each instance of the DrawerComponent has its own drawer service to handle its state and link it to the drawer stack. +:::warning + The `DrawerComponent` is marked as deprecated and will be removed in future releases. It is recommended to use alternative drawer implementations for new projects. +::: + **Selector:** `app-drawer` **Standalone:** true diff --git a/docusaurus/package-lock.json b/docusaurus/package-lock.json index 217402aa..083182dc 100644 --- a/docusaurus/package-lock.json +++ b/docusaurus/package-lock.json @@ -5327,6 +5327,15 @@ "tailwindcss": "4.1.16" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -6831,9 +6840,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -9184,9 +9193,9 @@ } }, "node_modules/dompurify": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", - "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz", + "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -9781,9 +9790,9 @@ "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "license": "MIT" }, "node_modules/express/node_modules/range-parser": { @@ -15918,9 +15927,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -18592,13 +18601,10 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", - "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=11.0.0" - } + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/scheduler": { "version": "0.23.2", @@ -18758,9 +18764,9 @@ } }, "node_modules/serialize-javascript": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", - "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", + "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", "license": "BSD-3-Clause", "engines": { "node": ">=20.0.0" @@ -19441,18 +19447,18 @@ "license": "MIT" }, "node_modules/svgo": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", - "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "license": "MIT", "dependencies": { + "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0", - "sax": "^1.5.0" + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" @@ -19526,14 +19532,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", - "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { diff --git a/src/app/components/preview/navbar/navbar.component.ts b/src/app/components/preview/navbar/navbar.component.ts deleted file mode 100644 index d81c4257..00000000 --- a/src/app/components/preview/navbar/navbar.component.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { Component, Input, computed, inject, input } from '@angular/core'; -import { toSignal } from '@angular/core/rxjs-interop'; -import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { Article } from '@sinequa/atomic'; -import { BookmarkButtonComponent, DrawerNavbarComponent, DrawerService, DrawerStackService, PreviewService } from '@sinequa/atomic-angular'; -import { ButtonComponent, CircleCheckIconComponent, LinkIconComponent, VerticalDividerComponent, cn } from '@sinequa/ui'; - -export type PreviewNavbarConfig = { - showOpenButton?: boolean; - showSearchButton?: boolean; -}; - -const DEFAULT_CONFIG: PreviewNavbarConfig = { - showOpenButton: true, - showSearchButton: true -}; - -@Component({ - selector: 'app-preview-navbar', - imports: [ - BookmarkButtonComponent, - TranslocoPipe, - ButtonComponent, - LinkIconComponent, - CircleCheckIconComponent, - DrawerNavbarComponent, - VerticalDividerComponent - ], - templateUrl: './navbar.component.html' -}) -export class PreviewNavbarComponent { - cn = cn; - - @Input() public set config(config: PreviewNavbarConfig) { - this.navConfig = { ...DEFAULT_CONFIG, ...config }; - } - public readonly article = input | undefined>(); - public readonly canBookmark = input(true); - - protected readonly drawerStack = inject(DrawerStackService); - protected readonly drawerService = inject(DrawerService); - protected readonly previewService = inject(PreviewService); - - protected navConfig: PreviewNavbarConfig = DEFAULT_CONFIG; - - readonly hasExternalLink = computed(() => !!this.article()?.url1); - readonly isExtended = toSignal(this.drawerService.isExtended); - - public copied: boolean = false; - - private readonly transloco = inject(TranslocoService); - - openClicked(): void { - // open the preview in a new tab and audit the action - this.previewService.openExternal(this.article() as Article); - } - - public copyLink(): void { - const url = this.article()?.url1 || this.article()?.url2; - - if (url) { - navigator.clipboard.writeText(url); - - this.copied = true; - - setTimeout(() => { - this.copied = false; - }, 3000); - - toast.success(this.transloco.translate('preview.linkCopiedToClipboard'), { duration: 2000 }); - } - } -} diff --git a/src/app/components/search-input/search-input.component.css b/src/app/components/search-input/search-input.component.css deleted file mode 100644 index 24deb25f..00000000 --- a/src/app/components/search-input/search-input.component.css +++ /dev/null @@ -1,64 +0,0 @@ -:host { - /* Hides cancel button from input that as type='search' */ - input[type='search']::-webkit-search-cancel-button { - -webkit-appearance: none; - } - - &:has([popover]:popover-open) { - z-index: 5000; - box-shadow: 0 0 0 max(100vh, 100vw) rgba(0, 0, 0, 0.3); - } - - [popover]::backdrop { - background-color: transparent; - backdrop-filter: none; - } -} - -#autocomplete-anchor { - anchor-name: --anchor; -} - -[popover] { - /* Select Firefox */ - @supports (-moz-appearance: none) { - margin: calc(33.3333333333vh + 30px) 25vw; - width: 50vw; - } - - /* Select Safari */ - @supports (background: -webkit-named-image(i)) { - margin: calc(33.3333333333vh + 30px) 25vw; - width: 50vw; - } - - position-anchor: --anchor; - width: anchor-size(width); - top: anchor(bottom); - left: anchor(left); - margin: 0; - padding: 0; - border-radius: 0 0 6px 6px; -} - -.animate-save { - animation: saved 1s; -} - -@keyframes saved { - 0% { - transform: translateY(0px) rotateZ(0); - } - 10% { - transform: translateY(2px) rotateZ(-10deg); - } - 50% { - transform: translateY(-10px) rotateZ(370deg); - } - 90% { - transform: translateY(2px) rotateZ(360deg); - } - 100% { - transform: translateY(0px) rotateZ(360deg); - } -} diff --git a/src/app/transloco-loader.ts b/src/app/transloco-loader.ts deleted file mode 100644 index 44a1c740..00000000 --- a/src/app/transloco-loader.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { inject, Injectable } from '@angular/core'; -import { Translation, TranslocoLoader } from '@jsverse/transloco'; - -@Injectable({ - providedIn: 'root' -}) -export class TranslocoHttpLoader implements TranslocoLoader { - private http = inject(HttpClient); - - getTranslation(lang: string) { - return this.http.get(`assets/i18n/${lang}.json`); - } -} diff --git a/src/themes/green.css b/src/themes/green.css new file mode 100644 index 00000000..dde21b7d --- /dev/null +++ b/src/themes/green.css @@ -0,0 +1,92 @@ +:root { + --radius: 0.65rem; + --background: oklch(1 0 0); + --foreground: oklch(0.141 0.005 285.823); + --card: oklch(1 0 0); + --card-foreground: oklch(0.141 0.005 285.823); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.141 0.005 285.823); + --primary: oklch(0.648 0.2 131.684); + --primary-foreground: oklch(0.986 0.031 120.757); + --secondary: oklch(0.967 0.001 286.375); + --secondary-foreground: oklch(0.21 0.006 285.885); + --muted: oklch(0.967 0.001 286.375); + --muted-foreground: oklch(0.552 0.016 285.938); + --accent: oklch(0.967 0.001 286.375); + --accent-foreground: oklch(0.21 0.006 285.885); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.841 0.238 128.85); + --chart-1: oklch(0.871 0.15 154.449); + --chart-2: oklch(0.723 0.219 149.579); + --chart-3: oklch(0.627 0.194 149.214); + --chart-4: oklch(0.527 0.154 150.069); + --chart-5: oklch(0.448 0.119 151.328); + --sidebar: oklch(0.141 0.005 285.823); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.648 0.2 131.684); + --sidebar-primary-foreground: oklch(0.986 0.031 120.757); + --sidebar-accent: var(--color-accent); + --sidebar-accent-foreground: var(--color-accent-foreground); + --sidebar-border: oklch(0.92 0.004 286.32); + --sidebar-ring: oklch(0.841 0.238 128.85); + + --menu: var(--color-background); + --menu-foreground: var(--color-foreground); + + --ai-from: oklch(0.274 0.006 286.033); + --ai-via: oklch(0.527 0.154 150.069); + --ai-to: oklch(0.648 0.2 131.684); + --ai-foreground: oklch(0.986 0.031 120.757); + + --header: oklch(0.141 0.005 285.823); + --header-foreground: oklch(0.92 0.004 286.32); + + --datepicker-today: oklch(0.648 0.2 131.684); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} + +.dark { + --background: oklch(0.141 0.005 285.823); + --foreground: oklch(0.985 0 0); + --card: oklch(0.21 0.006 285.885); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.648 0.2 131.684); + --primary-foreground: oklch(0.986 0.031 120.757); + --secondary: oklch(0.274 0.006 286.033); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.274 0.006 286.033); + --muted-foreground: oklch(0.705 0.015 286.067); + --accent: oklch(0.274 0.006 286.033); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.405 0.101 131.063); + --chart-1: oklch(0.871 0.15 154.449); + --chart-2: oklch(0.723 0.219 149.579); + --chart-3: oklch(0.627 0.194 149.214); + --chart-4: oklch(0.527 0.154 150.069); + --chart-5: oklch(0.448 0.119 151.328); + --sidebar: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.768 0.233 130.85); + --sidebar-primary-foreground: oklch(0.986 0.031 120.757); + --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.405 0.101 131.063); + + --ai-from: oklch(0.705 0.015 286.067); + --ai-via: oklch(0.527 0.154 150.069); + --ai-to: oklch(0.648 0.2 131.684); + --datepicker-today: oklch(0.648 0.2 131.684); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} diff --git a/src/themes/orange.css b/src/themes/orange.css new file mode 100644 index 00000000..f8ab9e34 --- /dev/null +++ b/src/themes/orange.css @@ -0,0 +1,90 @@ +:root { + --radius: 0.65rem; + --radius-button: var(--radius-md); + --background: oklch(1 0 0); + --foreground: oklch(0.141 0.005 285.823); + --card: oklch(1 0 0); + --card-foreground: oklch(0.141 0.005 285.823); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.141 0.005 285.823); + --primary: oklch(0.646 0.222 41.116); + --primary-foreground: oklch(0.98 0.016 73.684); + --secondary: oklch(0.967 0.001 286.375); + --secondary-foreground: oklch(0.21 0.006 285.885); + --muted: oklch(0.967 0.001 286.375); + --muted-foreground: oklch(0.552 0.016 285.938); + --accent: oklch(0.967 0.001 286.375); + --accent-foreground: oklch(0.21 0.006 285.885); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.75 0.183 55.934); + --chart-1: oklch(0.837 0.128 66.29); + --chart-2: oklch(0.705 0.213 47.604); + --chart-3: oklch(0.646 0.222 41.116); + --chart-4: oklch(0.553 0.195 38.402); + --chart-5: oklch(0.47 0.157 37.304); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.141 0.005 285.823); + --sidebar-primary: oklch(0.646 0.222 41.116); + --sidebar-primary-foreground: oklch(0.98 0.016 73.684); + --sidebar-accent: oklch(0.967 0.001 286.375); + --sidebar-accent-foreground: oklch(0.21 0.006 285.885); + --sidebar-border: oklch(0.92 0.004 286.32); + --sidebar-ring: oklch(0.75 0.183 55.934); + + --menu: var(--color-background); + --menu-foreground: var(--color-foreground); + + --ai-from: oklch(0.274 0.006 286.033); + --ai-via: oklch(0.553 0.195 38.402); + --ai-to: oklch(0.646 0.222 41.116); + --ai-foreground: oklch(0.98 0.016 73.684); + + --datepicker-today: oklch(0.646 0.222 41.116); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} + +.dark { + --background: oklch(0.141 0.005 285.823); + --foreground: oklch(0.985 0 0); + --card: oklch(0.21 0.006 285.885); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.705 0.213 47.604); + --primary-foreground: oklch(0.98 0.016 73.684); + --secondary: oklch(0.274 0.006 286.033); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.274 0.006 286.033); + --muted-foreground: oklch(0.705 0.015 286.067); + --accent: oklch(0.274 0.006 286.033); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.408 0.123 38.172); + --chart-1: oklch(0.837 0.128 66.29); + --chart-2: oklch(0.705 0.213 47.604); + --chart-3: oklch(0.646 0.222 41.116); + --chart-4: oklch(0.553 0.195 38.402); + --chart-5: oklch(0.47 0.157 37.304); + --sidebar: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.705 0.213 47.604); + --sidebar-primary-foreground: oklch(0.98 0.016 73.684); + --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.408 0.123 38.172); + + --ai-from: oklch(0.705 0.015 286.067); + --ai-via: oklch(0.553 0.195 38.402); + --ai-to: oklch(0.705 0.213 47.604); + --datepicker-today: oklch(0.705 0.213 47.604); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} diff --git a/src/themes/teal.css b/src/themes/teal.css new file mode 100644 index 00000000..8029187c --- /dev/null +++ b/src/themes/teal.css @@ -0,0 +1,108 @@ +:root { + --logo-small-url: url('../assets/logo/logo.svg'); + + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.6 0.118 184.704); + --primary-foreground: oklch(0.984 0.014 180.72); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.855 0.138 181.071); + --accent-foreground: oklch(0.984 0.014 180.72); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.855 0.138 181.071); + --chart-2: oklch(0.704 0.14 182.503); + --chart-3: oklch(0.6 0.118 184.704); + --chart-4: oklch(0.511 0.096 186.391); + --chart-5: oklch(0.437 0.078 188.216); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.6 0.118 184.704); + --sidebar-primary-foreground: oklch(0.984 0.014 180.72); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.777 0.152 181.912); + --header: oklch(1 0 0); + --header-foreground: oklch(0.145 0 0); + --footer: oklch(1 0 0); + --footer-foreground: oklch(0.145 0 0); + --code: oklch(1 0 0); + --code-foreground: oklch(0.708 0 0); + --code-highlight: oklch(0.27 0 0); + --code-number: oklch(0.72 0 0); + --code-selection: oklch(0.922 0 0); + --code-border: oklch(0.922 0 0); + --radius: 0.5rem; + + --header: var(--background); + --header-foreground: var(--foreground); + --menu: var(--background); + --menu-foreground: var(--foreground); + + --ai-from: oklch(0.556 0 0); + --ai-via: oklch(0.704 0.14 182.503); + --ai-to: oklch(0.6 0.118 184.704); + --ai-foreground: oklch(0.984 0.014 180.72); + + --datepicker-today: oklch(0.6 0.118 184.704); + --assistant: oklch(0.704 0.14 182.503); + --assistant-primary: oklch(0.97 0 0); + --assistant-secondary: oklch(0.985 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.269 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.704 0.14 182.503); + --primary-foreground: oklch(0.984 0.014 180.72); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.371 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --destructive-foreground: oklch(0.985 0 0); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.855 0.138 181.071); + --chart-2: oklch(0.704 0.14 182.503); + --chart-3: oklch(0.6 0.118 184.704); + --chart-4: oklch(0.511 0.096 186.391); + --chart-5: oklch(0.437 0.078 188.216); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.704 0.14 182.503); + --sidebar-primary-foreground: oklch(0.984 0.014 180.72); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.386 0.063 188.416); + --header: oklch(0.145 0 0); + --header-foreground: oklch(0.985 0 0); + --footer: oklch(0.145 0 0); + --footer-foreground: oklch(0.985 0 0); + --code: oklch(0.2 0 0); + --code-foreground: oklch(0.708 0 0); + --code-highlight: oklch(0.27 0 0); + --code-number: oklch(0.72 0 0); + --code-selection: oklch(0.922 0 0); + --code-border: oklch(1 0 0 / 10%); + --radius: 0.5rem; +} diff --git a/src/themes/violet.css b/src/themes/violet.css new file mode 100644 index 00000000..3f295f55 --- /dev/null +++ b/src/themes/violet.css @@ -0,0 +1,94 @@ +:root { + --radius: 0.65rem; + --background: oklch(1 0 0); + --foreground: oklch(0.141 0.005 285.823); + --card: oklch(1 0 0); + --card-foreground: oklch(0.141 0.005 285.823); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.141 0.005 285.823); + --primary: oklch(0.541 0.281 293.009); + --primary-foreground: oklch(0.969 0.016 293.756); + --secondary: oklch(0.967 0.001 286.375); + --secondary-foreground: oklch(0.21 0.006 285.885); + --muted: oklch(0.967 0.001 286.375); + --muted-foreground: oklch(0.552 0.016 285.938); + --accent: oklch(0.967 0.001 286.375); + --accent-foreground: oklch(0.21 0.006 285.885); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.702 0.183 293.541); + --chart-1: oklch(0.811 0.111 293.571); + --chart-2: oklch(0.606 0.25 292.717); + --chart-3: oklch(0.541 0.281 293.009); + --chart-4: oklch(0.491 0.27 292.581); + --chart-5: oklch(0.432 0.232 292.759); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.141 0.005 285.823); + --sidebar-primary: oklch(0.541 0.281 293.009); + --sidebar-primary-foreground: oklch(0.969 0.016 293.756); + --sidebar-accent: oklch(0.967 0.001 286.375); + --sidebar-accent-foreground: oklch(0.21 0.006 285.885); + --sidebar-border: oklch(0.92 0.004 286.32); + --sidebar-ring: oklch(0.702 0.183 293.541); + + --menu: var(--color-background); + --menu-foreground: var(--color-foreground); + + --ai-from: oklch(0.274 0.006 286.033); + --ai-via: oklch(0.491 0.27 292.581); + --ai-to: oklch(0.541 0.281 293.009); + --ai-foreground: oklch(0.969 0.016 293.756); + + --datepicker-today: oklch(0.541 0.281 293.009); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} + +.dark { + --background: oklch(0.141 0.005 285.823); + --foreground: oklch(0.985 0 0); + --card: oklch(0.21 0.006 285.885); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.606 0.25 292.717); + --primary-foreground: oklch(0.969 0.016 293.756); + --secondary: oklch(0.274 0.006 286.033); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.274 0.006 286.033); + --muted-foreground: oklch(0.705 0.015 286.067); + --accent: oklch(0.274 0.006 286.033); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.38 0.189 293.745); + --chart-1: oklch(0.811 0.111 293.571); + --chart-2: oklch(0.606 0.25 292.717); + --chart-3: oklch(0.541 0.281 293.009); + --chart-4: oklch(0.491 0.27 292.581); + --chart-5: oklch(0.432 0.232 292.759); + --sidebar: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.606 0.25 292.717); + --sidebar-primary-foreground: oklch(0.969 0.016 293.756); + --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.38 0.189 293.745); + + --menu: var(--background); + --menu-foreground: var(--foreground); + + --ai-from: oklch(0.705 0.015 286.067); + --ai-via: oklch(0.491 0.27 292.581); + --ai-to: oklch(0.606 0.25 292.717); + --ai-foreground: oklch(0.969 0.016 293.756); + + --datepicker-today: oklch(0.606 0.25 292.717); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} diff --git a/src/themes/yellow.css b/src/themes/yellow.css new file mode 100644 index 00000000..6c385e5f --- /dev/null +++ b/src/themes/yellow.css @@ -0,0 +1,89 @@ +:root { + --radius: 0.65rem; + --background: oklch(1 0 0); + --foreground: oklch(0.141 0.005 285.823); + --card: oklch(1 0 0); + --card-foreground: oklch(0.141 0.005 285.823); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.141 0.005 285.823); + --primary: oklch(0.852 0.199 91.936); + --primary-foreground: oklch(0.421 0.095 57.708); + --secondary: oklch(0.967 0.001 286.375); + --secondary-foreground: oklch(0.21 0.006 285.885); + --muted: oklch(0.967 0.001 286.375); + --muted-foreground: oklch(0.552 0.016 285.938); + --accent: oklch(0.967 0.001 286.375); + --accent-foreground: oklch(0.21 0.006 285.885); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.852 0.199 91.936); + --chart-1: oklch(0.905 0.182 98.111); + --chart-2: oklch(0.795 0.184 86.047); + --chart-3: oklch(0.681 0.162 75.834); + --chart-4: oklch(0.554 0.135 66.442); + --chart-5: oklch(0.476 0.114 61.907); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.141 0.005 285.823); + --sidebar-primary: oklch(0.681 0.162 75.834); + --sidebar-primary-foreground: oklch(0.987 0.026 102.212); + --sidebar-accent: oklch(0.967 0.001 286.375); + --sidebar-accent-foreground: oklch(0.21 0.006 285.885); + --sidebar-border: oklch(0.92 0.004 286.32); + --sidebar-ring: oklch(0.852 0.199 91.936); + + --menu: var(--color-background); + --menu-foreground: var(--color-foreground); + + --ai-from: oklch(0.274 0.006 286.033); + --ai-via: oklch(0.554 0.135 66.442); + --ai-to: oklch(0.852 0.199 91.936); + --ai-foreground: oklch(0.421 0.095 57.708); + + --datepicker-today: oklch(0.852 0.199 91.936); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +} + +.dark { + --background: oklch(0.141 0.005 285.823); + --foreground: oklch(0.985 0 0); + --card: oklch(0.21 0.006 285.885); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.795 0.184 86.047); + --primary-foreground: oklch(0.421 0.095 57.708); + --secondary: oklch(0.274 0.006 286.033); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.274 0.006 286.033); + --muted-foreground: oklch(0.705 0.015 286.067); + --accent: oklch(0.274 0.006 286.033); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.421 0.095 57.708); + --chart-1: oklch(0.905 0.182 98.111); + --chart-2: oklch(0.795 0.184 86.047); + --chart-3: oklch(0.681 0.162 75.834); + --chart-4: oklch(0.554 0.135 66.442); + --chart-5: oklch(0.476 0.114 61.907); + --sidebar: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.795 0.184 86.047); + --sidebar-primary-foreground: oklch(0.987 0.026 102.212); + --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.421 0.095 57.708); + + --ai-from: oklch(0.705 0.015 286.067); + --ai-via: oklch(0.554 0.135 66.442); + --ai-to: oklch(0.795 0.184 86.047); + --datepicker-today: oklch(0.795 0.184 86.047); + --assistant: #ff732e; + --assistant-primary: #f2f8fe; + --assistant-secondary: #fff8f1; +}