diff --git a/.gitignore b/.gitignore index ef33c0f..765506c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ result public /TAGS /cabal.project.local +assets/styles.css diff --git a/Makefile b/Makefile index a41a018..9ba854a 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,7 @@ build: $(eval my_wasm=$(shell wasm32-wasi-cabal list-bin app | tail -n 1)) $(shell wasm32-wasi-ghc --print-libdir)/post-link.mjs --input $(my_wasm) --output public/ghc_wasm_jsffi.js cp -v $(my_wasm) public/ + tailwindcss -i lib/tailwind-input.css -o assets/styles.css cp -rv assets public/ prerender: diff --git a/assets/styles.css b/assets/styles.css deleted file mode 100644 index 8a34774..0000000 --- a/assets/styles.css +++ /dev/null @@ -1,6413 +0,0 @@ -/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */ -@layer properties; -@layer theme, base, components, utilities; -@layer theme { - :root, :host { - --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", - "Courier New", monospace; - --color-red-500: oklch(63.7% 0.237 25.331); - --color-amber-50: oklch(98.7% 0.022 95.277); - --color-amber-100: oklch(96.2% 0.059 95.617); - --color-amber-900: oklch(41.4% 0.112 45.904); - --color-amber-950: oklch(27.9% 0.077 45.635); - --color-yellow-500: oklch(79.5% 0.184 86.047); - --color-green-50: oklch(98.2% 0.018 155.826); - --color-green-500: oklch(72.3% 0.219 149.579); - --color-green-600: oklch(62.7% 0.194 149.214); - --color-green-900: oklch(39.3% 0.095 152.535); - --color-green-950: oklch(26.6% 0.065 152.934); - --color-blue-50: oklch(97% 0.014 254.604); - --color-blue-300: oklch(80.9% 0.105 251.813); - --color-blue-500: oklch(62.3% 0.214 259.815); - --color-blue-600: oklch(54.6% 0.245 262.881); - --color-blue-700: oklch(48.8% 0.243 264.376); - --color-blue-800: oklch(42.4% 0.199 265.638); - --color-blue-900: oklch(37.9% 0.146 265.522); - --color-blue-950: oklch(28.2% 0.091 267.935); - --color-purple-500: oklch(62.7% 0.265 303.9); - --color-neutral-300: oklch(87% 0 0); - --color-neutral-800: oklch(26.9% 0 0); - --color-black: #000; - --color-white: #fff; - --spacing: 0.25rem; - --breakpoint-md: 48rem; - --breakpoint-lg: 64rem; - --container-xs: 20rem; - --container-sm: 24rem; - --container-md: 28rem; - --container-lg: 32rem; - --container-xl: 36rem; - --container-3xl: 48rem; - --text-xs: 0.75rem; - --text-xs--line-height: calc(1 / 0.75); - --text-sm: 0.875rem; - --text-sm--line-height: calc(1.25 / 0.875); - --text-base: 1rem; - --text-base--line-height: calc(1.5 / 1); - --text-lg: 1.125rem; - --text-lg--line-height: calc(1.75 / 1.125); - --text-xl: 1.25rem; - --text-xl--line-height: calc(1.75 / 1.25); - --text-2xl: 1.5rem; - --text-2xl--line-height: calc(2 / 1.5); - --text-3xl: 1.875rem; - --text-3xl--line-height: calc(2.25 / 1.875); - --text-4xl: 2.25rem; - --text-4xl--line-height: calc(2.5 / 2.25); - --font-weight-normal: 400; - --font-weight-medium: 500; - --font-weight-semibold: 600; - --font-weight-bold: 700; - --tracking-tight: -0.025em; - --tracking-normal: 0em; - --tracking-widest: 0.1em; - --leading-tight: 1.25; - --leading-snug: 1.375; - --leading-normal: 1.5; - --leading-relaxed: 1.625; - --radius-xs: 0.125rem; - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); - --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); - --animate-spin: spin 1s linear infinite; - --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; - --aspect-video: 16 / 9; - --default-transition-duration: 150ms; - --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - --default-font-family: var(--font-sans); - --default-mono-font-family: var(--font-mono); - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --color-sidebar: var(--sidebar); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-ring: var(--sidebar-ring); - } -} -@layer base { - *, ::after, ::before, ::backdrop, ::file-selector-button { - box-sizing: border-box; - margin: 0; - padding: 0; - border: 0 solid; - } - html, :host { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - tab-size: 4; - font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); - font-feature-settings: var(--default-font-feature-settings, normal); - font-variation-settings: var(--default-font-variation-settings, normal); - -webkit-tap-highlight-color: transparent; - } - hr { - height: 0; - color: inherit; - border-top-width: 1px; - } - abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - h1, h2, h3, h4, h5, h6 { - font-size: inherit; - font-weight: inherit; - } - a { - color: inherit; - -webkit-text-decoration: inherit; - text-decoration: inherit; - } - b, strong { - font-weight: bolder; - } - code, kbd, samp, pre { - font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); - font-feature-settings: var(--default-mono-font-feature-settings, normal); - font-variation-settings: var(--default-mono-font-variation-settings, normal); - font-size: 1em; - } - small { - font-size: 80%; - } - sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - sub { - bottom: -0.25em; - } - sup { - top: -0.5em; - } - table { - text-indent: 0; - border-color: inherit; - border-collapse: collapse; - } - :-moz-focusring { - outline: auto; - } - progress { - vertical-align: baseline; - } - summary { - display: list-item; - } - ol, ul, menu { - list-style: none; - } - img, svg, video, canvas, audio, iframe, embed, object { - display: block; - vertical-align: middle; - } - img, video { - max-width: 100%; - height: auto; - } - button, input, select, optgroup, textarea, ::file-selector-button { - font: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - letter-spacing: inherit; - color: inherit; - border-radius: 0; - background-color: transparent; - opacity: 1; - } - :where(select:is([multiple], [size])) optgroup { - font-weight: bolder; - } - :where(select:is([multiple], [size])) optgroup option { - padding-inline-start: 20px; - } - ::file-selector-button { - margin-inline-end: 4px; - } - ::placeholder { - opacity: 1; - } - @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { - ::placeholder { - color: currentcolor; - @supports (color: color-mix(in lab, red, red)) { - color: color-mix(in oklab, currentcolor 50%, transparent); - } - } - } - textarea { - resize: vertical; - } - ::-webkit-search-decoration { - -webkit-appearance: none; - } - ::-webkit-date-and-time-value { - min-height: 1lh; - text-align: inherit; - } - ::-webkit-datetime-edit { - display: inline-flex; - } - ::-webkit-datetime-edit-fields-wrapper { - padding: 0; - } - ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { - padding-block: 0; - } - :-moz-ui-invalid { - box-shadow: none; - } - button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { - appearance: button; - } - ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { - height: auto; - } - [hidden]:where(:not([hidden="until-found"])) { - display: none !important; - } -} -@layer utilities { - .pointer-events-none { - pointer-events: none; - } - .invisible { - visibility: hidden; - } - .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; - } - .absolute { - position: absolute; - } - .relative { - position: relative; - } - .static { - position: static; - } - .sticky { - position: sticky; - } - .inset-0 { - inset: calc(var(--spacing) * 0); - } - .inset-x-0 { - inset-inline: calc(var(--spacing) * 0); - } - .top-0 { - top: calc(var(--spacing) * 0); - } - .top-1\/2 { - top: calc(1/2 * 100%); - } - .top-2 { - top: calc(var(--spacing) * 2); - } - .top-22 { - top: calc(var(--spacing) * 22); - } - .right-1\.5 { - right: calc(var(--spacing) * 1.5); - } - .right-2\.5 { - right: calc(var(--spacing) * 2.5); - } - .right-3 { - right: calc(var(--spacing) * 3); - } - .bottom-0 { - bottom: calc(var(--spacing) * 0); - } - .left-1\.5 { - left: calc(var(--spacing) * 1.5); - } - .left-1\/2 { - left: calc(1/2 * 100%); - } - .left-2 { - left: calc(var(--spacing) * 2); - } - .left-3 { - left: calc(var(--spacing) * 3); - } - .isolate { - isolation: isolate; - } - .z-10 { - z-index: 10; - } - .col-span-2 { - grid-column: span 2 / span 2; - } - .container { - width: 100%; - @media (width >= 40rem) { - max-width: 40rem; - } - @media (width >= 48rem) { - max-width: 48rem; - } - @media (width >= 64rem) { - max-width: 64rem; - } - @media (width >= 80rem) { - max-width: 80rem; - } - @media (width >= 96rem) { - max-width: 96rem; - } - } - .m-0 { - margin: calc(var(--spacing) * 0); - } - .mx-auto { - margin-inline: auto; - } - .my-4 { - margin-block: calc(var(--spacing) * 4); - } - .my-6 { - margin-block: calc(var(--spacing) * 6); - } - .mt-4 { - margin-top: calc(var(--spacing) * 4); - } - .mt-6 { - margin-top: calc(var(--spacing) * 6); - } - .mt-8 { - margin-top: calc(var(--spacing) * 8); - } - .mr-auto { - margin-right: auto; - } - .mb-1 { - margin-bottom: calc(var(--spacing) * 1); - } - .mb-2 { - margin-bottom: calc(var(--spacing) * 2); - } - .mb-4 { - margin-bottom: calc(var(--spacing) * 4); - } - .mb-6 { - margin-bottom: calc(var(--spacing) * 6); - } - .mb-8 { - margin-bottom: calc(var(--spacing) * 8); - } - .mb-12 { - margin-bottom: calc(var(--spacing) * 12); - } - .-ml-1\.5 { - margin-left: calc(var(--spacing) * -1.5); - } - .ml-auto { - margin-left: auto; - } - .line-clamp-1 { - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; - } - .line-clamp-2 { - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - } - .block { - display: block; - } - .contents { - display: contents; - } - .flex { - display: flex; - } - .grid { - display: grid; - } - .hidden { - display: none; - } - .inline { - display: inline; - } - .inline-block { - display: inline-block; - } - .inline-flex { - display: inline-flex; - } - .table { - display: table; - } - .aspect-square { - aspect-ratio: 1 / 1; - } - .aspect-video { - aspect-ratio: var(--aspect-video); - } - .size-2 { - width: calc(var(--spacing) * 2); - height: calc(var(--spacing) * 2); - } - .size-2\.5 { - width: calc(var(--spacing) * 2.5); - height: calc(var(--spacing) * 2.5); - } - .size-3 { - width: calc(var(--spacing) * 3); - height: calc(var(--spacing) * 3); - } - .size-3\.5 { - width: calc(var(--spacing) * 3.5); - height: calc(var(--spacing) * 3.5); - } - .size-4 { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - .size-6 { - width: calc(var(--spacing) * 6); - height: calc(var(--spacing) * 6); - } - .size-7 { - width: calc(var(--spacing) * 7); - height: calc(var(--spacing) * 7); - } - .size-8 { - width: calc(var(--spacing) * 8); - height: calc(var(--spacing) * 8); - } - .size-9 { - width: calc(var(--spacing) * 9); - height: calc(var(--spacing) * 9); - } - .size-10 { - width: calc(var(--spacing) * 10); - height: calc(var(--spacing) * 10); - } - .size-12 { - width: calc(var(--spacing) * 12); - height: calc(var(--spacing) * 12); - } - .h-2 { - height: calc(var(--spacing) * 2); - } - .h-4 { - height: calc(var(--spacing) * 4); - } - .h-5 { - height: calc(var(--spacing) * 5); - } - .h-6 { - height: calc(var(--spacing) * 6); - } - .h-8 { - height: calc(var(--spacing) * 8); - } - .h-10 { - height: calc(var(--spacing) * 10); - } - .h-12 { - height: calc(var(--spacing) * 12); - } - .h-14 { - height: calc(var(--spacing) * 14); - } - .h-full { - height: 100%; - } - .max-h-64 { - max-height: calc(var(--spacing) * 64); - } - .max-h-\[150px\] { - max-height: 150px; - } - .max-h-\[200px\] { - max-height: 200px; - } - .max-h-\[612px\] { - max-height: 612px; - } - .max-h-\[650px\] { - max-height: 650px; - } - .min-h-25 { - min-height: calc(var(--spacing) * 25); - } - .min-h-27 { - min-height: calc(var(--spacing) * 27); - } - .min-h-77 { - min-height: calc(var(--spacing) * 77); - } - .min-h-\[350px\] { - min-height: 350px; - } - .w-0 { - width: calc(var(--spacing) * 0); - } - .w-1\/2 { - width: calc(1/2 * 100%); - } - .w-2\/3 { - width: calc(2/3 * 100%); - } - .w-3\/4 { - width: calc(3/4 * 100%); - } - .w-4 { - width: calc(var(--spacing) * 4); - } - .w-7\.5 { - width: calc(var(--spacing) * 7.5); - } - .w-10 { - width: calc(var(--spacing) * 10); - } - .w-48 { - width: calc(var(--spacing) * 48); - } - .w-72 { - width: calc(var(--spacing) * 72); - } - .w-80 { - width: calc(var(--spacing) * 80); - } - .w-\[100px\] { - width: 100px; - } - .w-\[150px\] { - width: 150px; - } - .w-\[180px\] { - width: 180px; - } - .w-\[200px\] { - width: 200px; - } - .w-\[271px\] { - width: 271px; - } - .w-fit { - width: fit-content; - } - .w-full { - width: 100%; - } - .w-max { - width: max-content; - } - .max-w-3xl { - max-width: var(--container-3xl); - } - .max-w-72 { - max-width: calc(var(--spacing) * 72); - } - .max-w-\[75\%\] { - max-width: 75%; - } - .max-w-\[200px\] { - max-width: 200px; - } - .max-w-\[300px\] { - max-width: 300px; - } - .max-w-\[450px\] { - max-width: 450px; - } - .max-w-lg { - max-width: var(--container-lg); - } - .max-w-md { - max-width: var(--container-md); - } - .max-w-screen-lg { - max-width: var(--breakpoint-lg); - } - .max-w-screen-md { - max-width: var(--breakpoint-md); - } - .max-w-sm { - max-width: var(--container-sm); - } - .max-w-xl { - max-width: var(--container-xl); - } - .max-w-xs { - max-width: var(--container-xs); - } - .min-w-0 { - min-width: calc(var(--spacing) * 0); - } - .min-w-5 { - min-width: calc(var(--spacing) * 5); - } - .min-w-32 { - min-width: calc(var(--spacing) * 32); - } - .min-w-56 { - min-width: calc(var(--spacing) * 56); - } - .min-w-\[8rem\] { - min-width: 8rem; - } - .flex-1 { - flex: 1; - } - .flex-none { - flex: none; - } - .flex-shrink { - flex-shrink: 1; - } - .shrink-0 { - flex-shrink: 0; - } - .basis-full { - flex-basis: 100%; - } - .-translate-x-1\/2 { - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .-translate-y-1\/2 { - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .translate-y-0\.5 { - --tw-translate-y: calc(var(--spacing) * 0.5); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .transform { - transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); - } - .animate-pulse { - animation: var(--animate-pulse); - } - .animate-spin { - animation: var(--animate-spin); - } - .cursor-pointer { - cursor: pointer; - } - .scroll-m-20 { - scroll-margin: calc(var(--spacing) * 20); - } - .scroll-mt-14 { - scroll-margin-top: calc(var(--spacing) * 14); - } - .scroll-mt-16 { - scroll-margin-top: calc(var(--spacing) * 16); - } - .list-inside { - list-style-position: inside; - } - .list-decimal { - list-style-type: decimal; - } - .list-disc { - list-style-type: disc; - } - .grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); - } - .grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - .grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - .flex-col { - flex-direction: column; - } - .flex-row { - flex-direction: row; - } - .flex-wrap { - flex-wrap: wrap; - } - .items-center { - align-items: center; - } - .items-start { - align-items: flex-start; - } - .items-stretch { - align-items: stretch; - } - .justify-between { - justify-content: space-between; - } - .justify-center { - justify-content: center; - } - .justify-start { - justify-content: flex-start; - } - .gap-0\.5 { - gap: calc(var(--spacing) * 0.5); - } - .gap-1 { - gap: calc(var(--spacing) * 1); - } - .gap-1\.5 { - gap: calc(var(--spacing) * 1.5); - } - .gap-2 { - gap: calc(var(--spacing) * 2); - } - .gap-2\.5 { - gap: calc(var(--spacing) * 2.5); - } - .gap-3 { - gap: calc(var(--spacing) * 3); - } - .gap-4 { - gap: calc(var(--spacing) * 4); - } - .gap-6 { - gap: calc(var(--spacing) * 6); - } - .gap-7 { - gap: calc(var(--spacing) * 7); - } - .gap-8 { - gap: calc(var(--spacing) * 8); - } - .gap-10 { - gap: calc(var(--spacing) * 10); - } - .gap-12 { - gap: calc(var(--spacing) * 12); - } - .space-y-1 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); - } - } - .space-y-2 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); - } - } - .space-y-4 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); - } - } - .space-y-6 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); - } - } - .gap-x-1\.5 { - column-gap: calc(var(--spacing) * 1.5); - } - .gap-x-2 { - column-gap: calc(var(--spacing) * 2); - } - .gap-x-4 { - column-gap: calc(var(--spacing) * 4); - } - .gap-x-10 { - column-gap: calc(var(--spacing) * 10); - } - .-space-x-2 { - :where(& > :not(:last-child)) { - --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse))); - } - } - .space-x-2 { - :where(& > :not(:last-child)) { - --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))); - } - } - .gap-y-4 { - row-gap: calc(var(--spacing) * 4); - } - .gap-y-6 { - row-gap: calc(var(--spacing) * 6); - } - .gap-y-10 { - row-gap: calc(var(--spacing) * 10); - } - .self-start { - align-self: flex-start; - } - .truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .overflow-hidden { - overflow: hidden; - } - .overflow-x-auto { - overflow-x: auto; - } - .overflow-y-auto { - overflow-y: auto; - } - .rounded { - border-radius: 0.25rem; - } - .rounded-\[2px\] { - border-radius: 2px; - } - .rounded-full { - border-radius: calc(infinity * 1px); - } - .rounded-lg { - border-radius: var(--radius-lg); - } - .rounded-md { - border-radius: var(--radius-md); - } - .rounded-none { - border-radius: 0; - } - .rounded-sm { - border-radius: var(--radius-sm); - } - .rounded-xl { - border-radius: var(--radius-xl); - } - .rounded-l-md { - border-top-left-radius: var(--radius-md); - border-bottom-left-radius: var(--radius-md); - } - .rounded-r-md { - border-top-right-radius: var(--radius-md); - border-bottom-right-radius: var(--radius-md); - } - .border { - border-style: var(--tw-border-style); - border-width: 1px; - } - .border-2 { - border-style: var(--tw-border-style); - border-width: 2px; - } - .border-t { - border-top-style: var(--tw-border-style); - border-top-width: 1px; - } - .border-r { - border-right-style: var(--tw-border-style); - border-right-width: 1px; - } - .border-r-0 { - border-right-style: var(--tw-border-style); - border-right-width: 0px; - } - .border-b { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - } - .border-l-0 { - border-left-style: var(--tw-border-style); - border-left-width: 0px; - } - .border-dashed { - --tw-border-style: dashed; - border-style: dashed; - } - .border-amber-50 { - border-color: var(--color-amber-50); - } - .border-border { - border-color: var(--color-border); - } - .border-border\/50 { - border-color: var(--color-border); - @supports (color: color-mix(in lab, red, red)) { - border-color: color-mix(in oklab, var(--color-border) 50%, transparent); - } - } - .border-muted { - border-color: var(--color-muted); - } - .border-transparent { - border-color: transparent; - } - .\!bg-muted\/40 { - background-color: var(--color-muted) !important; - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 40%, transparent) !important; - } - } - .bg-accent { - background-color: var(--color-accent); - } - .bg-amber-50 { - background-color: var(--color-amber-50); - } - .bg-background { - background-color: var(--color-background); - } - .bg-blue-500 { - background-color: var(--color-blue-500); - } - .bg-card { - background-color: var(--color-card); - } - .bg-foreground { - background-color: var(--color-foreground); - } - .bg-muted { - background-color: var(--color-muted); - } - .bg-muted-foreground { - background-color: var(--color-muted-foreground); - } - .bg-muted\/50 { - background-color: var(--color-muted); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); - } - } - .bg-primary { - background-color: var(--color-primary); - } - .bg-primary\/20 { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 20%, transparent); - } - } - .bg-sidebar-primary { - background-color: var(--color-sidebar-primary); - } - .bg-transparent { - background-color: transparent; - } - .object-cover { - object-fit: cover; - } - .\!p-3\.5 { - padding: calc(var(--spacing) * 3.5) !important; - } - .p-0 { - padding: calc(var(--spacing) * 0); - } - .p-1 { - padding: calc(var(--spacing) * 1); - } - .p-2 { - padding: calc(var(--spacing) * 2); - } - .p-3 { - padding: calc(var(--spacing) * 3); - } - .p-4 { - padding: calc(var(--spacing) * 4); - } - .p-6 { - padding: calc(var(--spacing) * 6); - } - .p-10 { - padding: calc(var(--spacing) * 10); - } - .px-0 { - padding-inline: calc(var(--spacing) * 0); - } - .px-1 { - padding-inline: calc(var(--spacing) * 1); - } - .px-2 { - padding-inline: calc(var(--spacing) * 2); - } - .px-2\.5 { - padding-inline: calc(var(--spacing) * 2.5); - } - .px-3 { - padding-inline: calc(var(--spacing) * 3); - } - .px-4 { - padding-inline: calc(var(--spacing) * 4); - } - .px-9 { - padding-inline: calc(var(--spacing) * 9); - } - .px-\[0\.3rem\] { - padding-inline: 0.3rem; - } - .py-1\.5 { - padding-block: calc(var(--spacing) * 1.5); - } - .py-2 { - padding-block: calc(var(--spacing) * 2); - } - .py-3 { - padding-block: calc(var(--spacing) * 3); - } - .py-4 { - padding-block: calc(var(--spacing) * 4); - } - .py-\[0\.2rem\] { - padding-block: 0.2rem; - } - .pt-1\.5 { - padding-top: calc(var(--spacing) * 1.5); - } - .pt-2 { - padding-top: calc(var(--spacing) * 2); - } - .pt-15 { - padding-top: calc(var(--spacing) * 15); - } - .pr-2 { - padding-right: calc(var(--spacing) * 2); - } - .pr-9 { - padding-right: calc(var(--spacing) * 9); - } - .pr-10 { - padding-right: calc(var(--spacing) * 10); - } - .pr-12 { - padding-right: calc(var(--spacing) * 12); - } - .pr-16 { - padding-right: calc(var(--spacing) * 16); - } - .pr-20 { - padding-right: calc(var(--spacing) * 20); - } - .pr-24 { - padding-right: calc(var(--spacing) * 24); - } - .pr-26 { - padding-right: calc(var(--spacing) * 26); - } - .pr-30 { - padding-right: calc(var(--spacing) * 30); - } - .pb-3 { - padding-bottom: calc(var(--spacing) * 3); - } - .pb-4 { - padding-bottom: calc(var(--spacing) * 4); - } - .pb-12 { - padding-bottom: calc(var(--spacing) * 12); - } - .pb-17 { - padding-bottom: calc(var(--spacing) * 17); - } - .pl-6 { - padding-left: calc(var(--spacing) * 6); - } - .pl-7 { - padding-left: calc(var(--spacing) * 7); - } - .pl-8 { - padding-left: calc(var(--spacing) * 8); - } - .pl-8\.5 { - padding-left: calc(var(--spacing) * 8.5); - } - .pl-9 { - padding-left: calc(var(--spacing) * 9); - } - .pl-15 { - padding-left: calc(var(--spacing) * 15); - } - .pl-21 { - padding-left: calc(var(--spacing) * 21); - } - .text-center { - text-align: center; - } - .text-left { - text-align: left; - } - .text-right { - text-align: right; - } - .font-mono { - font-family: var(--font-mono); - } - .text-2xl { - font-size: var(--text-2xl); - line-height: var(--tw-leading, var(--text-2xl--line-height)); - } - .text-3xl { - font-size: var(--text-3xl); - line-height: var(--tw-leading, var(--text-3xl--line-height)); - } - .text-base { - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - } - .text-lg { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - } - .text-sm { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - .text-sm\/relaxed { - font-size: var(--text-sm); - line-height: var(--leading-relaxed); - } - .text-xs { - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - .text-\[1\.05rem\] { - font-size: 1.05rem; - } - .leading-none { - --tw-leading: 1; - line-height: 1; - } - .leading-normal { - --tw-leading: var(--leading-normal); - line-height: var(--leading-normal); - } - .leading-snug { - --tw-leading: var(--leading-snug); - line-height: var(--leading-snug); - } - .leading-tight { - --tw-leading: var(--leading-tight); - line-height: var(--leading-tight); - } - .font-bold { - --tw-font-weight: var(--font-weight-bold); - font-weight: var(--font-weight-bold); - } - .font-medium { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - .font-normal { - --tw-font-weight: var(--font-weight-normal); - font-weight: var(--font-weight-normal); - } - .font-semibold { - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - .tracking-tight { - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - .tracking-widest { - --tw-tracking: var(--tracking-widest); - letter-spacing: var(--tracking-widest); - } - .text-balance { - text-wrap: balance; - } - .break-words { - overflow-wrap: break-word; - } - .whitespace-nowrap { - white-space: nowrap; - } - .whitespace-pre-wrap { - white-space: pre-wrap; - } - .text-amber-900 { - color: var(--color-amber-900); - } - .text-blue-500 { - color: var(--color-blue-500); - } - .text-destructive { - color: var(--color-destructive); - } - .text-foreground { - color: var(--color-foreground); - } - .text-green-500 { - color: var(--color-green-500); - } - .text-muted-foreground { - color: var(--color-muted-foreground); - } - .text-neutral-800 { - color: var(--color-neutral-800); - } - .text-primary-foreground { - color: var(--color-primary-foreground); - } - .text-purple-500 { - color: var(--color-purple-500); - } - .text-red-500 { - color: var(--color-red-500); - } - .text-sidebar-primary-foreground { - color: var(--color-sidebar-primary-foreground); - } - .text-white { - color: var(--color-white); - } - .text-yellow-500 { - color: var(--color-yellow-500); - } - .uppercase { - text-transform: uppercase; - } - .tabular-nums { - --tw-numeric-spacing: tabular-nums; - font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); - } - .underline { - text-decoration-line: underline; - } - .underline-offset-4 { - text-underline-offset: 4px; - } - .accent-foreground { - accent-color: var(--color-foreground); - } - .opacity-0 { - opacity: 0%; - } - .opacity-50 { - opacity: 50%; - } - .opacity-60 { - opacity: 60%; - } - .opacity-100 { - opacity: 100%; - } - .shadow-md { - --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .shadow-none { - --tw-shadow: 0 0 #0000; - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .shadow-xl { - --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .shadow-xs { - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .ring { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .ring-offset-background { - --tw-ring-offset-color: var(--color-background); - } - .outline { - outline-style: var(--tw-outline-style); - outline-width: 1px; - } - .grayscale { - --tw-grayscale: grayscale(100%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } - .filter { - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } - .transition { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .transition-all { - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .transition-colors { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .transition-transform { - transition-property: transform, translate, scale, rotate; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .duration-100 { - --tw-duration: 100ms; - transition-duration: 100ms; - } - .duration-200 { - --tw-duration: 200ms; - transition-duration: 200ms; - } - .duration-400 { - --tw-duration: 400ms; - transition-duration: 400ms; - } - .outline-none { - --tw-outline-style: none; - outline-style: none; - } - .select-none { - -webkit-user-select: none; - user-select: none; - } - .group-open\:rotate-180 { - &:is(:where(.group):is([open], :popover-open, :open) *) { - rotate: 180deg; - } - } - .group-aria-checked\:visible { - &:is(:where(.group)[aria-checked="true"] *) { - visibility: visible; - } - } - .group-data-\[copied\=true\]\:block { - &:is(:where(.group)[data-copied="true"] *) { - display: block; - } - } - .group-data-\[copied\=true\]\:hidden { - &:is(:where(.group)[data-copied="true"] *) { - display: none; - } - } - .group-\[\.copied\]\:block { - &:is(:where(.group):is(.copied) *) { - display: block; - } - } - .group-\[\.copied\]\:hidden { - &:is(:where(.group):is(.copied) *) { - display: none; - } - } - .peer-checked\:border-primary { - &:is(:where(.peer):checked ~ *) { - border-color: var(--color-primary); - } - } - .last\:border-b-0 { - &:last-child { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 0px; - } - } - .checked\:border-blue-600 { - &:checked { - border-color: var(--color-blue-600); - } - } - .checked\:border-green-600 { - &:checked { - border-color: var(--color-green-600); - } - } - .checked\:bg-blue-500 { - &:checked { - background-color: var(--color-blue-500); - } - } - .checked\:bg-blue-600 { - &:checked { - background-color: var(--color-blue-600); - } - } - .checked\:bg-green-600 { - &:checked { - background-color: var(--color-green-600); - } - } - .checked\:before\:bg-background { - &:checked { - &::before { - content: var(--tw-content); - background-color: var(--color-background); - } - } - } - .checked\:after\:bg-white { - &:checked { - &::after { - content: var(--tw-content); - background-color: var(--color-white); - } - } - } - .hover\:space-x-1 { - &:hover { - @media (hover: hover) { - :where(& > :not(:last-child)) { - --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse))); - } - } - } - } - .hover\:bg-accent\/50 { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - .hover\:bg-destructive\/10 { - &:hover { - @media (hover: hover) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent); - } - } - } - } - .hover\:bg-foreground { - &:hover { - @media (hover: hover) { - background-color: var(--color-foreground); - } - } - } - .hover\:bg-muted { - &:hover { - @media (hover: hover) { - background-color: var(--color-muted); - } - } - } - .hover\:text-accent-foreground { - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - .hover\:text-foreground { - &:hover { - @media (hover: hover) { - color: var(--color-foreground); - } - } - } - .hover\:underline { - &:hover { - @media (hover: hover) { - text-decoration-line: underline; - } - } - } - .focus\:bg-destructive\/10 { - &:focus { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent); - } - } - } - .focus\:text-destructive { - &:focus { - color: var(--color-destructive); - } - } - .focus-visible\:border-ring { - &:focus-visible { - border-color: var(--color-ring); - } - } - .focus-visible\:ring-2 { - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - .focus-visible\:ring-\[3px\] { - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - .focus-visible\:ring-ring { - &:focus-visible { - --tw-ring-color: var(--color-ring); - } - } - .focus-visible\:ring-ring\/50 { - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - } - .focus-visible\:ring-offset-2 { - &:focus-visible { - --tw-ring-offset-width: 2px; - --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - } - } - .focus-visible\:outline-none { - &:focus-visible { - --tw-outline-style: none; - outline-style: none; - } - } - .disabled\:pointer-events-none { - &:disabled { - pointer-events: none; - } - } - .disabled\:opacity-50 { - &:disabled { - opacity: 50%; - } - } - .has-\[\:checked\]\:border-primary { - &:has(*:is(:checked)) { - border-color: var(--color-primary); - } - } - .has-\[\:checked\]\:bg-primary\/5 { - &:has(*:is(:checked)) { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 5%, transparent); - } - } - } - .has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-600 { - &:has(*:is(input[type='checkbox']:checked)) { - border-color: var(--color-blue-600); - } - } - .has-\[input\[type\=\'checkbox\'\]\:checked\]\:bg-blue-50 { - &:has(*:is(input[type='checkbox']:checked)) { - background-color: var(--color-blue-50); - } - } - .has-\[input\[type\=\'radio\'\]\:checked\]\:border-green-600 { - &:has(*:is(input[type='radio']:checked)) { - border-color: var(--color-green-600); - } - } - .has-\[input\[type\=\'radio\'\]\:checked\]\:bg-green-50 { - &:has(*:is(input[type='radio']:checked)) { - background-color: var(--color-green-50); - } - } - .has-\[\>svg\]\:px-2\.5 { - &:has(>svg) { - padding-inline: calc(var(--spacing) * 2.5); - } - } - .aria-invalid\:border-destructive { - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - } - .aria-invalid\:ring-destructive\/20 { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - } - .aria-pressed\:bg-transparent { - &[aria-pressed="true"] { - background-color: transparent; - } - } - .aria-pressed\:text-blue-600 { - &[aria-pressed="true"] { - color: var(--color-blue-600); - } - } - .aria-pressed\:hover\:bg-accent { - &[aria-pressed="true"] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - } - } - .max-sm\:flex-col { - @media (width < 40rem) { - flex-direction: column; - } - } - .sm\:max-w-\[425px\] { - @media (width >= 40rem) { - max-width: 425px; - } - } - .sm\:gap-2\.5 { - @media (width >= 40rem) { - gap: calc(var(--spacing) * 2.5); - } - } - .sm\:text-3xl { - @media (width >= 40rem) { - font-size: var(--text-3xl); - line-height: var(--tw-leading, var(--text-3xl--line-height)); - } - } - .sm\:text-base { - @media (width >= 40rem) { - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - } - } - .sm\:text-lg { - @media (width >= 40rem) { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - } - } - .md\:ml-4 { - @media (width >= 48rem) { - margin-left: calc(var(--spacing) * 4); - } - } - .md\:w-\[239px\] { - @media (width >= 48rem) { - width: 239px; - } - } - .md\:w-auto { - @media (width >= 48rem) { - width: auto; - } - } - .md\:max-w-\[200px\] { - @media (width >= 48rem) { - max-width: 200px; - } - } - .md\:min-w-80 { - @media (width >= 48rem) { - min-width: calc(var(--spacing) * 80); - } - } - .md\:flex-auto { - @media (width >= 48rem) { - flex: auto; - } - } - .md\:flex-row { - @media (width >= 48rem) { - flex-direction: row; - } - } - .md\:items-center { - @media (width >= 48rem) { - align-items: center; - } - } - .md\:items-start { - @media (width >= 48rem) { - align-items: flex-start; - } - } - .md\:border-l { - @media (width >= 48rem) { - border-left-style: var(--tw-border-style); - border-left-width: 1px; - } - } - .md\:p-6 { - @media (width >= 48rem) { - padding: calc(var(--spacing) * 6); - } - } - .md\:p-12 { - @media (width >= 48rem) { - padding: calc(var(--spacing) * 12); - } - } - .md\:pl-8 { - @media (width >= 48rem) { - padding-left: calc(var(--spacing) * 8); - } - } - .md\:text-4xl { - @media (width >= 48rem) { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - } - .lg\:grid-cols-2 { - @media (width >= 64rem) { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - } - .xl\:block { - @media (width >= 80rem) { - display: block; - } - } - .xl\:p-12 { - @media (width >= 80rem) { - padding: calc(var(--spacing) * 12); - } - } - .xl\:text-4xl { - @media (width >= 80rem) { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - } - .\@md\:w-auto { - @container (width >= 28rem) { - width: auto; - } - } - .\@md\:min-w-sm { - @container (width >= 28rem) { - min-width: var(--container-sm); - } - } - .dark\:block { - &:is(.dark *) { - display: block; - } - } - .dark\:hidden { - &:is(.dark *) { - display: none; - } - } - .dark\:border-amber-950 { - &:is(.dark *) { - border-color: var(--color-amber-950); - } - } - .dark\:bg-amber-950 { - &:is(.dark *) { - background-color: var(--color-amber-950); - } - } - .dark\:bg-blue-600 { - &:is(.dark *) { - background-color: var(--color-blue-600); - } - } - .dark\:text-amber-100 { - &:is(.dark *) { - color: var(--color-amber-100); - } - } - .dark\:text-neutral-300 { - &:is(.dark *) { - color: var(--color-neutral-300); - } - } - .dark\:checked\:border-blue-700 { - &:is(.dark *) { - &:checked { - border-color: var(--color-blue-700); - } - } - } - .dark\:checked\:bg-blue-600 { - &:is(.dark *) { - &:checked { - background-color: var(--color-blue-600); - } - } - } - .dark\:checked\:bg-blue-700 { - &:is(.dark *) { - &:checked { - background-color: var(--color-blue-700); - } - } - } - .dark\:checked\:bg-input\/30 { - &:is(.dark *) { - &:checked { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - } - } - .dark\:checked\:before\:bg-primary { - &:is(.dark *) { - &:checked { - &::before { - content: var(--tw-content); - background-color: var(--color-primary); - } - } - } - } - .dark\:hover\:bg-destructive\/20 { - &:is(.dark *) { - &:hover { - @media (hover: hover) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - } - } - } - .dark\:focus\:bg-destructive\/20 { - &:is(.dark *) { - &:focus { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - } - } - .dark\:has-\[\:checked\]\:bg-primary\/10 { - &:is(.dark *) { - &:has(*:is(:checked)) { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 10%, transparent); - } - } - } - } - .dark\:has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-900 { - &:is(.dark *) { - &:has(*:is(input[type='checkbox']:checked)) { - border-color: var(--color-blue-900); - } - } - } - .dark\:has-\[input\[type\=\'checkbox\'\]\:checked\]\:bg-blue-950 { - &:is(.dark *) { - &:has(*:is(input[type='checkbox']:checked)) { - background-color: var(--color-blue-950); - } - } - } - .dark\:has-\[input\[type\=\'radio\'\]\:checked\]\:border-green-900 { - &:is(.dark *) { - &:has(*:is(input[type='radio']:checked)) { - border-color: var(--color-green-900); - } - } - } - .dark\:has-\[input\[type\=\'radio\'\]\:checked\]\:bg-green-950 { - &:is(.dark *) { - &:has(*:is(input[type='radio']:checked)) { - background-color: var(--color-green-950); - } - } - } - .dark\:aria-invalid\:ring-destructive\/40 { - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - } - .dark\:aria-pressed\:hover\:bg-accent\/50 { - &:is(.dark *) { - &[aria-pressed="true"] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - } - } - .\[\&_\[data-name\]\]\:hidden { - & [data-name] { - display: none; - } - } - .\[\&_\[data-new-link\]\:\:after\]\:ml-auto { - & [data-new-link]::after { - margin-left: auto; - } - } - .\[\&_\[data-new-link\]\:\:after\]\:rounded-md { - & [data-new-link]::after { - border-radius: var(--radius-md); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:bg-sidebar-primary { - & [data-new-link]::after { - background-color: var(--color-sidebar-primary); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:px-2 { - & [data-new-link]::after { - padding-inline: calc(var(--spacing) * 2); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:py-0\.5 { - & [data-new-link]::after { - padding-block: calc(var(--spacing) * 0.5); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:text-xs { - & [data-new-link]::after { - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:font-medium { - & [data-new-link]::after { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:text-sidebar-primary-foreground { - & [data-new-link]::after { - color: var(--color-sidebar-primary-foreground); - } - } - .\[\&_\[data-new-link\]\:\:after\]\:content-\[\'New\'\] { - & [data-new-link]::after { - --tw-content: 'New'; - content: var(--tw-content); - } - } - .\[\&_a\]\:inline-block { - & a { - display: inline-block; - } - } - .\[\&_a\]\:text-muted-foreground { - & a { - color: var(--color-muted-foreground); - } - } - .\[\&_a\]\:no-underline { - & a { - text-decoration-line: none; - } - } - .\[\&_a\]\:transition-colors { - & a { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - } - .\[\&_a\]\:hover\:text-foreground { - & a { - &:hover { - @media (hover: hover) { - color: var(--color-foreground); - } - } - } - } - .\[\&_img\]\:size-8 { - & img { - width: calc(var(--spacing) * 8); - height: calc(var(--spacing) * 8); - } - } - .\[\&_img\]\:size-12 { - & img { - width: calc(var(--spacing) * 12); - height: calc(var(--spacing) * 12); - } - } - .\[\&_img\]\:shrink-0 { - & img { - flex-shrink: 0; - } - } - .\[\&_img\]\:rounded-full { - & img { - border-radius: calc(infinity * 1px); - } - } - .\[\&_img\]\:object-cover { - & img { - object-fit: cover; - } - } - .\[\&_img\]\:ring-2 { - & img { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - .\[\&_img\]\:ring-background { - & img { - --tw-ring-color: var(--color-background); - } - } - .\[\&_img\]\:ring-card { - & img { - --tw-ring-color: var(--color-card); - } - } - .\[\&_img\]\:grayscale { - & img { - --tw-grayscale: grayscale(100%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } - } - .\[\&_img\]\:transition-all { - & img { - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - } - .\[\&_img\]\:duration-300 { - & img { - --tw-duration: 300ms; - transition-duration: 300ms; - } - } - .\[\&_img\]\:ease-in-out { - & img { - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - } - } - .\[\&_li\]\:mt-0 { - & li { - margin-top: calc(var(--spacing) * 0); - } - } - .\[\&_li\]\:pt-2 { - & li { - padding-top: calc(var(--spacing) * 2); - } - } - .\[\&_svg\]\:pointer-events-none { - & svg { - pointer-events: none; - } - } - .\[\&_svg\]\:size-4 { - & svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - .\[\&_svg\]\:size-5 { - & svg { - width: calc(var(--spacing) * 5); - height: calc(var(--spacing) * 5); - } - } - .\[\&_svg\]\:shrink-0 { - & svg { - flex-shrink: 0; - } - } - .\[\&_svg\]\:\!text-destructive { - & svg { - color: var(--color-destructive) !important; - } - } - .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 { - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 { - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 6); - height: calc(var(--spacing) * 6); - } - } - .\[\&_ul\]\:m-0 { - & ul { - margin: calc(var(--spacing) * 0); - } - } - .\[\&_ul\]\:list-none { - & ul { - list-style-type: none; - } - } - .\[\&_ul_ul\]\:pl-4 { - & ul ul { - padding-left: calc(var(--spacing) * 4); - } - } - .md\:\*\:\[\.card\]\:basis-1\/4 { - @media (width >= 48rem) { - :is(& > *) { - &:is(.card) { - flex-basis: calc(1/4 * 100%); - } - } - } - } - .\[a\]\:transition-colors { - &:is(a) { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - } - .\[a\]\:hover\:bg-accent\/50 { - &:is(a) { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - } - .\[\&\>a\]\:underline { - &>a { - text-decoration-line: underline; - } - } - .\[\&\>a\]\:underline-offset-4 { - &>a { - text-underline-offset: 4px; - } - } - .\[\&\>a\:hover\]\:text-primary { - &>a:hover { - color: var(--color-primary); - } - } - .\[\&\>svg\]\:mb-3 { - &>svg { - margin-bottom: calc(var(--spacing) * 3); - } - } - .\[\&\>svg\]\:size-3 { - &>svg { - width: calc(var(--spacing) * 3); - height: calc(var(--spacing) * 3); - } - } - .\[\&\>svg\]\:size-4 { - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - .\[\&\>svg\]\:size-6 { - &>svg { - width: calc(var(--spacing) * 6); - height: calc(var(--spacing) * 6); - } - } - .aria-pressed\:\[\&\>svg\]\:fill-blue-600 { - &[aria-pressed="true"] { - &>svg { - fill: var(--color-blue-600); - } - } - } -} -:root { - --radius: 0.625rem; - --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.205 0 0); - --primary-foreground: oklch(0.985 0 0); - --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.97 0 0); - --accent-foreground: oklch(0.205 0 0); - --destructive: oklch(0.577 0.245 27.325); - --border: oklch(0.922 0 0); - --input: oklch(0.922 0 0); - --ring: oklch(0.708 0 0); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --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.708 0 0); - --sidebar-width: 16rem; - --sidebar-mobile-width: 18rem; - --scrollbar-track: transparent; - --scrollbar-thumb: rgba(0, 0, 0, 0.3); - --scrollbar-width: 6px; - --scrollbar-radius: 6px; - --chevron-down-icon: url('data:image/svg+xml;utf8,'); - --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); - --check-icon: url('data:image/svg+xml;utf8,'); -} -.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.922 0 0); - --primary-foreground: oklch(0.205 0 0); - --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); - --border: oklch(1 0 0 / 10%); - --input: oklch(1 0 0 / 15%); - --ring: oklch(0.556 0 0); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.205 0 0); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --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.439 0 0); - --scrollbar-thumb: rgba(255, 255, 255, 0.3); - --chevron-down-icon: url('data:image/svg+xml;utf8,'); - --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); - --check-icon: url('data:image/svg+xml;utf8,'); - color-scheme: dark; -} -@layer base { - * { - border-color: var(--color-border); - outline-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - outline-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - html { - scroll-behavior: smooth; - } - body { - overscroll-behavior: none; - background-color: var(--color-background); - color: var(--color-foreground); - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - .scrollbar { - scrollbar-width: thin; - scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); - &::-webkit-scrollbar { - width: var(--scrollbar-width); - } - &::-webkit-scrollbar-track { - background: var(--scrollbar-track); - } - &::-webkit-scrollbar-thumb { - background: var(--scrollbar-thumb); - border-radius: var(--scrollbar-radius); - } - } -} -@layer components { - .alert, .alert-destructive { - position: relative; - display: grid; - width: 100%; - grid-template-columns: 0 1fr; - align-items: flex-start; - row-gap: calc(var(--spacing) * 0.5); - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - padding-inline: calc(var(--spacing) * 4); - padding-block: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - &:has(>svg) { - grid-template-columns: calc(var(--spacing) * 4) 1fr; - } - &:has(>svg) { - column-gap: calc(var(--spacing) * 3); - } - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &>svg { - --tw-translate-y: calc(var(--spacing) * 0.5); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &>svg { - color: currentcolor; - } - h2, h3 { - grid-column-start: 2; - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; - min-height: calc(var(--spacing) * 4); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - section { - grid-column-start: 2; - display: grid; - justify-items: start; - gap: calc(var(--spacing) * 1); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - & p { - --tw-leading: var(--leading-relaxed); - line-height: var(--leading-relaxed); - } - ul { - list-style-position: inside; - list-style-type: disc; - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - } - } - .alert { - background-color: var(--color-card); - color: var(--color-card-foreground); - } - .alert-destructive { - background-color: var(--color-card); - color: var(--color-destructive); - &>svg { - color: currentcolor; - } - section { - color: var(--color-destructive); - } - } -} -@layer components { - .badge, .badge-primary, .badge-secondary, .badge-destructive, .badge-outline { - display: inline-flex; - width: fit-content; - flex-shrink: 0; - align-items: center; - justify-content: center; - gap: calc(var(--spacing) * 1); - overflow: hidden; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 0.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &>svg { - pointer-events: none; - } - &>svg { - width: calc(var(--spacing) * 3); - height: calc(var(--spacing) * 3); - } - } - .badge, .badge-primary { - border-color: transparent; - background-color: var(--color-primary); - color: var(--color-primary-foreground); - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); - } - } - } - } - } - .badge-secondary { - border-color: transparent; - background-color: var(--color-secondary); - color: var(--color-secondary-foreground); - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-secondary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-secondary) 90%, transparent); - } - } - } - } - } - .badge-destructive { - border-color: transparent; - background-color: var(--color-destructive); - color: var(--color-white); - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent); - } - } - &:is(.dark *) { - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); - } - } - } - } - } - .badge-outline { - color: var(--color-foreground); - a& { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - } - a& { - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - } -} -@layer components { - .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive, .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive, .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive, .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive, .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive, .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive { - display: inline-flex; - flex-shrink: 0; - cursor: pointer; - align-items: center; - justify-content: center; - border-radius: var(--radius-md); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive { - height: calc(var(--spacing) * 9); - gap: calc(var(--spacing) * 2); - padding-inline: calc(var(--spacing) * 4); - padding-block: calc(var(--spacing) * 2); - &:has(>svg) { - padding-inline: calc(var(--spacing) * 3); - } - } - .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive { - width: calc(var(--spacing) * 9); - height: calc(var(--spacing) * 9); - } - .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive { - height: calc(var(--spacing) * 8); - gap: calc(var(--spacing) * 1.5); - padding-inline: calc(var(--spacing) * 3); - &:has(>svg) { - padding-inline: calc(var(--spacing) * 2.5); - } - } - .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive { - width: calc(var(--spacing) * 8); - height: calc(var(--spacing) * 8); - } - .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive { - height: calc(var(--spacing) * 10); - gap: calc(var(--spacing) * 2); - padding-inline: calc(var(--spacing) * 6); - &:has(>svg) { - padding-inline: calc(var(--spacing) * 4); - } - } - .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive { - width: calc(var(--spacing) * 10); - height: calc(var(--spacing) * 10); - } - .btn, .btn-primary, .btn-sm, .btn-sm-primary, .btn-lg, .btn-lg-primary, .btn-icon, .btn-icon-primary, .btn-sm-icon, .btn-sm-icon-primary, .btn-lg-icon, .btn-lg-icon-primary { - background-color: var(--color-primary); - color: var(--color-primary-foreground); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:hover { - @media (hover: hover) { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); - } - } - } - &[aria-pressed='true'] { - background-color: var(--color-primary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); - } - } - } - .btn-secondary, .btn-sm-secondary, .btn-lg-secondary, .btn-icon-secondary, .btn-sm-icon-secondary, .btn-lg-icon-secondary { - background-color: var(--color-secondary); - color: var(--color-secondary-foreground); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:hover, &[aria-pressed='true'] { - background-color: var(--color-secondary); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent); - } - } - } - .btn-outline, .btn-sm-outline, .btn-lg-outline, .btn-icon-outline, .btn-sm-icon-outline, .btn-lg-icon-outline { - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-background); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:is(.dark *) { - border-color: var(--color-input); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:hover, &[aria-pressed='true'] { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - &:is(.dark *) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - .btn-ghost, .btn-sm-ghost, .btn-lg-ghost, .btn-icon-ghost, .btn-sm-icon-ghost, .btn-lg-icon-ghost { - &:hover, &[aria-pressed='true'] { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - &:is(.dark *) { - background-color: var(--color-accent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); - } - } - } - } - .btn-link, .btn-sm-link, .btn-lg-link, .btn-icon-link, .btn-sm-icon-link, .btn-lg-icon-link { - color: var(--color-primary); - text-underline-offset: 4px; - &:hover, &[aria-pressed='true'] { - &:hover { - @media (hover: hover) { - text-decoration-line: underline; - } - } - } - } - .btn-destructive, .btn-sm-destructive, .btn-lg-destructive, .btn-icon-destructive, .btn-sm-icon-destructive, .btn-lg-icon-destructive { - background-color: var(--color-destructive); - color: var(--color-white); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent); - } - } - &:is(.dark *) { - &:focus-visible { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &:hover, &[aria-pressed='true'] { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); - } - &:is(.dark *) { - background-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 50%, transparent); - } - } - } - } -} -@layer components { - .button-group { - isolation: isolate; - display: inline-flex; - width: fit-content; - align-items: stretch; - > *:focus-visible, > :is(.dropdown-menu, .popover, .select) > button:focus-visible { - position: relative; - z-index: 10; - } - > hr[role='separator'] { - margin: calc(var(--spacing) * 0); - height: auto; - width: calc(var(--spacing) * 0); - flex-shrink: 0; - align-self: stretch; - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - } - &:not([data-orientation='vertical']) { - > *:not(:first-child), > :is(.dropdown-menu, .popover, .select):not(:first-child) > button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border-left-style: var(--tw-border-style); - border-left-width: 0px; - } - > *:not(:last-child), > :is(.dropdown-menu, .popover, .select):not(:last-child) > button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - } - &[data-orientation='vertical'] { - flex-direction: column; - > hr[role='separator'] { - height: 1px; - width: auto; - } - > *:not(:first-child), > :is(.dropdown-menu, .popover, .select):not(:first-child) > button { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-top-style: var(--tw-border-style); - border-top-width: 0px; - } - > *:not(:last-child), > :is(.dropdown-menu, .popover, .select):not(:last-child) > button { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - } - } -} -@layer components { - .card { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 6); - border-radius: var(--radius-xl); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-card); - padding-block: calc(var(--spacing) * 6); - color: var(--color-card-foreground); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - > header { - container-type: inline-size; - container-name: card-header; - display: grid; - grid-auto-rows: min-content; - grid-template-rows: auto auto; - align-items: flex-start; - gap: calc(var(--spacing) * 1.5); - padding-inline: calc(var(--spacing) * 6); - &:has(*[data-slot="card-action"]) { - grid-template-columns: 1fr auto; - } - &:is(.border-b) { - padding-bottom: calc(var(--spacing) * 6); - } - h2 { - --tw-leading: 1; - line-height: 1; - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - p { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - } - } - > section { - padding-inline: calc(var(--spacing) * 6); - } - > footer { - display: flex; - align-items: center; - padding-inline: calc(var(--spacing) * 6); - &:is(.border-t) { - padding-top: calc(var(--spacing) * 6); - } - } - } -} -@layer components { - :is(.form, .field) input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: 4px; - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:checked { - border-color: var(--color-primary); - } - &:checked { - background-color: var(--color-primary); - } - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &:checked { - background-color: var(--color-primary); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &:checked:after { - display: block; - width: calc(var(--spacing) * 3.5); - height: calc(var(--spacing) * 3.5); - background-color: var(--color-primary-foreground); - --tw-content: ''; - content: var(--tw-content); - mask-image: var(--check-icon); - mask-size: 0.875rem; - mask-position: center; - mask-repeat: no-repeat; - } - } -} -@layer components { - details { - &::details-content { - block-size: 0; - display: block; - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - } - &[open]::details-content { - block-size: auto; - block-size: calc-size(auto, size); - opacity: 100%; - } - summary { - display: inline-flex; - cursor: pointer; - align-items: center; - } - } - details > summary::-webkit-details-marker { - display: none; - } -} -@layer components { - .command-dialog { - inset-block: calc(var(--spacing) * 0); - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - &:is([open],:popover-open) { - opacity: 100%; - &::backdrop { - opacity: 100%; - } - > * { - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - @starting-style { - opacity: 0%; - &::backdrop { - opacity: 0%; - } - > * { - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - } - } - &::backdrop { - background-color: color-mix(in srgb, #000 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-black) 50%, transparent); - } - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - } - > * { - position: fixed; - top: 50%; - left: 50%; - z-index: 50; - display: flex; - max-height: min(640px, calc(100% - 2rem)); - width: 100%; - max-width: calc(100% - 2rem); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - flex-direction: column; - overflow: hidden; - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-background); - --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - @media (width >= 40rem) { - max-width: var(--container-lg); - } - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - > button, > form[method='dialog'] { - position: absolute; - top: calc(var(--spacing) * 4); - right: calc(var(--spacing) * 4); - } - > button, > form[method='dialog'] > button { - border-radius: var(--radius-xs); - opacity: 70%; - --tw-ring-offset-color: var(--color-background); - transition-property: opacity; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:hover { - @media (hover: hover) { - opacity: 100%; - } - } - &:focus { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus { - --tw-ring-color: var(--color-ring); - } - &:focus { - --tw-ring-offset-width: 2px; - --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - } - &:focus { - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - } - &:disabled { - pointer-events: none; - } - &[data-state="open"] { - background-color: var(--color-accent); - } - &[data-state="open"] { - color: var(--color-muted-foreground); - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - } - .command { - > header input { - height: calc(var(--spacing) * 12); - } - [role='menu'] { - padding-inline: calc(var(--spacing) * 2); - [role='menuitem'] { - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 3); - & svg { - width: calc(var(--spacing) * 5); - height: calc(var(--spacing) * 5); - } - } - [role='heading'] { - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - color: var(--color-muted-foreground); - } - } - } - } - .command { - > header { - display: flex; - align-items: center; - gap: calc(var(--spacing) * 2); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - padding-inline: calc(var(--spacing) * 3); - svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - opacity: 50%; - } - input { - display: flex; - height: calc(var(--spacing) * 10); - width: 100%; - border-radius: var(--radius-md); - background-color: transparent; - padding-block: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - &::placeholder { - color: var(--color-muted-foreground); - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - } - } - [role='menu'] { - max-height: 300px; - overflow-x: hidden; - overflow-y: auto; - padding: calc(var(--spacing) * 1); - [role='menuitem'] { - position: relative; - display: flex; - width: 100%; - cursor: default; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-sm); - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - -webkit-user-select: none; - user-select: none; - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &[aria-hidden="true"] { - display: none; - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - & svg:not([class*='text-']) { - color: var(--color-muted-foreground); - } - &.active { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - } - } - [role='heading'] { - display: flex; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - color: var(--color-muted-foreground); - } - [role='group']:not(:has([role='menuitem']:not([aria-hidden='true']))) { - display: none; - } - [role='separator'] { - margin-inline: calc(var(--spacing) * -1); - margin-block: calc(var(--spacing) * 1); - border-color: var(--color-border); - } - &:not(:has([role='menuitem']:not([aria-hidden='true'])))::before { - margin: calc(var(--spacing) * -1); - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 6); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &[data-empty]:not(:has([role='menuitem']:not([aria-hidden='true'])))::before { - --tw-content: attr(data-empty); - content: var(--tw-content); - } - &:not([data-empty]):not(:has([role='menuitem']:not([aria-hidden='true'])))::before { - --tw-content: 'No results found'; - content: var(--tw-content); - } - } - &:not([data-command-initialized]) [role='menuitem'] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - &:has(> header input:not(:placeholder-shown)) [role='separator'] { - display: none; - } - } -} -@layer components { - .dialog { - inset-block: calc(var(--spacing) * 0); - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - &:is([open],:popover-open) { - opacity: 100%; - &::backdrop { - opacity: 100%; - } - > * { - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - @starting-style { - opacity: 0%; - &::backdrop { - opacity: 0%; - } - > * { - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - } - } - &::backdrop { - background-color: color-mix(in srgb, #000 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-black) 50%, transparent); - } - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; - } - > * { - position: fixed; - top: 50%; - left: 50%; - z-index: 50; - display: flex; - max-height: calc(100% - 2rem); - width: 100%; - max-width: calc(100% - 2rem); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - flex-direction: column; - gap: calc(var(--spacing) * 4); - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-background); - padding: calc(var(--spacing) * 6); - --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - @media (width >= 40rem) { - max-width: var(--container-lg); - } - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - > header { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - text-align: center; - @media (width >= 40rem) { - text-align: left; - } - > h2 { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - --tw-leading: 1; - line-height: 1; - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - > p { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - } - } - > section { - margin-inline: calc(var(--spacing) * -6); - flex: 1; - padding-inline: calc(var(--spacing) * 6); - } - > footer { - display: flex; - flex-direction: column-reverse; - gap: calc(var(--spacing) * 2); - @media (width >= 40rem) { - flex-direction: row; - } - @media (width >= 40rem) { - justify-content: flex-end; - } - } - > button, > form[method='dialog'] { - position: absolute; - top: calc(var(--spacing) * 4); - right: calc(var(--spacing) * 4); - } - > button, > form[method='dialog'] > button { - border-radius: var(--radius-xs); - opacity: 70%; - --tw-ring-offset-color: var(--color-background); - transition-property: opacity; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:hover { - @media (hover: hover) { - opacity: 100%; - } - } - &:focus { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus { - --tw-ring-color: var(--color-ring); - } - &:focus { - --tw-ring-offset-width: 2px; - --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - } - &:focus { - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - } - &:disabled { - pointer-events: none; - } - &[data-state="open"] { - background-color: var(--color-accent); - } - &[data-state="open"] { - color: var(--color-muted-foreground); - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - } - } - } -} -@layer components { - .dropdown-menu { - position: relative; - display: inline-flex; - [data-popover] { - padding: calc(var(--spacing) * 1); - min-width: anchor-size(width); - [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] { - position: relative; - display: flex; - width: 100%; - cursor: default; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-sm); - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - -webkit-user-select: none; - user-select: none; - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &[aria-hidden="true"] { - display: none; - } - & svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - & svg { - flex-shrink: 0; - } - & svg { - color: var(--color-muted-foreground); - } - &:not([aria-disabled='true']) { - &:focus-visible { - background-color: var(--color-accent); - } - &:focus-visible { - color: var(--color-accent-foreground); - } - } - &.active { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - } - } - [role='menu'] [role='heading'] { - display: flex; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - [role='separator'] { - margin-inline: calc(var(--spacing) * -1); - margin-block: calc(var(--spacing) * 1); - border-color: var(--color-border); - } - } - &:not([data-dropdown-menu-initialized]) [data-popover] { - [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - } - } -} -@layer components { - .fieldset { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 6); - > legend { - margin-bottom: calc(var(--spacing) * 3); - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - } - .field { - display: flex; - width: 100%; - flex-direction: column; - gap: calc(var(--spacing) * 3); - &[data-invalid="true"] { - color: var(--color-destructive); - } - &>* { - width: 100%; - } - &>.sr-only { - width: auto; - } - h2, h3 { - display: flex; - width: fit-content; - align-items: center; - gap: calc(var(--spacing) * 2); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-leading: var(--leading-snug); - line-height: var(--leading-snug); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - [role="alert"] { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-normal); - font-weight: var(--font-weight-normal); - color: var(--color-destructive); - ul { - margin-left: calc(var(--spacing) * 4); - display: flex; - list-style-type: disc; - flex-direction: column; - gap: calc(var(--spacing) * 1); - } - } - section { - display: flex; - flex: 1; - flex-direction: column; - gap: calc(var(--spacing) * 1.5); - --tw-leading: var(--leading-snug); - line-height: var(--leading-snug); - } - &[data-orientation='horizontal'] { - flex-direction: row; - align-items: center; - &:has(>section) { - align-items: flex-start; - } - & p { - text-wrap: balance; - } - &:has(>section) { - &>[type=checkbox],[type=radio] { - margin-top: 1px; - } - } - &>label { - flex: auto; - } - } - } - .fieldset legend + p, .field > p, .field section > p { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-leading: var(--leading-normal); - line-height: var(--leading-normal); - --tw-font-weight: var(--font-weight-normal); - font-weight: var(--font-weight-normal); - color: var(--color-muted-foreground); - &>a { - text-decoration-line: underline; - } - &>a { - text-underline-offset: 4px; - } - &>a:hover { - color: var(--color-primary); - } - } - .fieldset legend + p { - margin-top: calc(var(--spacing) * -1.5); - } - .field > p { - &:last-child { - margin-top: calc(var(--spacing) * 0); - } - &:nth-last-child(2) { - margin-top: calc(var(--spacing) * -1); - } - } -} -@layer components { - :is(.form, .field) input[type='text'], :is(.form, .field) input[type='email'], :is(.form, .field) input[type='password'], :is(.form, .field) input[type='number'], :is(.form, .field) input[type='file'], :is(.form, .field) input[type='tel'], :is(.form, .field) input[type='url'], :is(.form, .field) input[type='search'], :is(.form, .field) input[type='date'], :is(.form, .field) input[type='datetime-local'], :is(.form, .field) input[type='month'], :is(.form, .field) input[type='week'], :is(.form, .field) input[type='time'], .input[type='text'], .input[type='email'], .input[type='password'], .input[type='number'], .input[type='file'], .input[type='tel'], .input[type='url'], .input[type='search'], .input[type='date'], .input[type='datetime-local'], .input[type='month'], .input[type='week'], .input[type='time'] { - display: flex; - height: calc(var(--spacing) * 9); - width: 100%; - min-width: calc(var(--spacing) * 0); - appearance: none; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - background-color: transparent; - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 1); - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - & *::selection { - background-color: var(--color-primary); - } - &::selection { - background-color: var(--color-primary); - } - & *::selection { - color: var(--color-primary-foreground); - } - &::selection { - color: var(--color-primary-foreground); - } - &::file-selector-button { - display: inline-flex; - } - &::file-selector-button { - height: calc(var(--spacing) * 7); - } - &::file-selector-button { - border-style: var(--tw-border-style); - border-width: 0px; - } - &::file-selector-button { - background-color: transparent; - } - &::file-selector-button { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &::file-selector-button { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - &::file-selector-button { - color: var(--color-foreground); - } - &::placeholder { - color: var(--color-muted-foreground); - } - &:disabled { - pointer-events: none; - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - @media (width >= 48rem) { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - } -} -@layer components { - .kbd { - pointer-events: none; - display: inline-flex; - height: calc(var(--spacing) * 5); - width: fit-content; - min-width: calc(var(--spacing) * 5); - align-items: center; - justify-content: center; - gap: calc(var(--spacing) * 1); - border-radius: var(--radius-sm); - background-color: var(--color-muted); - padding-inline: calc(var(--spacing) * 1); - font-family: var(--font-sans); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - color: var(--color-muted-foreground); - -webkit-user-select: none; - user-select: none; - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 3); - height: calc(var(--spacing) * 3); - } - } -} -@layer components { - :is(.form, .field) label, .label { - display: flex; - align-items: center; - gap: calc(var(--spacing) * 2); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-leading: 1; - line-height: 1; - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - -webkit-user-select: none; - user-select: none; - &:is(:where(.peer):disabled ~ *) { - pointer-events: none; - } - &:is(:where(.peer):disabled ~ *) { - opacity: 50%; - } - &:has(>*:disabled), &:has(+*:disabled) { - pointer-events: none; - opacity: 50%; - } - } -} -@layer components { - [data-popover] { - visibility: visible; - position: absolute; - z-index: 50; - width: max-content; - min-width: 100%; - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - overflow-x: hidden; - overflow-y: auto; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-popover); - color: var(--color-popover-foreground); - opacity: 100%; - --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &[aria-hidden='true'] { - visibility: hidden; - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - opacity: 0%; - &:not([data-side]), &[data-side='bottom'] { - --tw-translate-y: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &[data-side='top'] { - --tw-translate-y: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &[data-side='left'] { - --tw-translate-x: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &[data-side='right'] { - --tw-translate-x: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - &:not([data-side]), &[data-side='bottom'] { - top: 100%; - margin-top: calc(var(--spacing) * 1); - } - &[data-side='top'] { - bottom: 100%; - margin-bottom: calc(var(--spacing) * 1); - } - &[data-side='left'] { - right: 100%; - margin-right: calc(var(--spacing) * 1); - } - &[data-side='right'] { - left: 100%; - margin-left: calc(var(--spacing) * 1); - } - &:not([data-side]), &[data-side='bottom'], &[data-side='top'] { - &:not([data-align]), &[data-align='start'] { - left: calc(var(--spacing) * 0); - } - &[data-align='end'] { - right: calc(var(--spacing) * 0); - } - &[data-align='center'] { - left: calc(1/2 * 100%); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - &[data-side='left'], &[data-side='right'] { - &:not([data-align]), &[data-align='start'] { - top: calc(var(--spacing) * 0); - } - &[data-align='end'] { - bottom: calc(var(--spacing) * 0); - } - &[data-align='center'] { - top: calc(1/2 * 100%); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - .popover { - position: relative; - display: inline-flex; - [data-popover] { - padding: calc(var(--spacing) * 4); - } - } -} -@layer components { - :is(.form, .field) input[type='radio'], .input[type='radio'] { - position: relative; - aspect-ratio: 1 / 1; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - color: var(--color-primary); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - &:checked:before { - position: absolute; - top: calc(1/2 * 100%); - left: calc(1/2 * 100%); - width: calc(var(--spacing) * 2); - height: calc(var(--spacing) * 2); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - border-radius: calc(infinity * 1px); - background-color: var(--color-primary); - --tw-content: ''; - content: var(--tw-content); - } - } -} -@layer components { - :is(.form, .field) input[type='range'], .input[type='range'] { - display: flex; - appearance: none; - align-items: center; - padding: calc(var(--spacing) * 0); - --tw-outline-style: none; - outline-style: none; - --slider-value: 20%; - &:hover, &:focus-visible { - &::-webkit-slider-thumb { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &::-moz-range-thumb { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &::-ms-thumb { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - &::-webkit-slider-thumb { - margin-top: calc(var(--spacing) * -1.25); - display: block; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-primary); - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &::-webkit-slider-runnable-track { - height: calc(var(--spacing) * 1.5); - width: 100%; - appearance: none; - border-radius: calc(infinity * 1px); - background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value)); - } - &::-moz-range-thumb { - margin-top: calc(var(--spacing) * -1.25); - display: block; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-primary); - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &::-moz-range-track { - height: calc(var(--spacing) * 1.5); - width: 100%; - appearance: none; - border-radius: calc(infinity * 1px); - background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value)); - } - &::-ms-thumb { - margin-top: calc(var(--spacing) * -1.25); - display: block; - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - appearance: none; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-primary); - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &::-ms-track { - height: calc(var(--spacing) * 1.5); - width: 100%; - appearance: none; - border-radius: calc(infinity * 1px); - } - &::-ms-fill-lower { - border-radius: calc(infinity * 1px); - background-color: var(--color-primary); - } - &::-ms-fill-upper { - border-radius: calc(infinity * 1px); - background-color: var(--color-muted); - } - } -} -@layer components { - :is(.form, .field) select, select.select { - display: flex; - height: calc(var(--spacing) * 9); - width: fit-content; - appearance: none; - align-items: center; - justify-content: space-between; - gap: calc(var(--spacing) * 2); - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - background-color: transparent; - padding-block: calc(var(--spacing) * 2); - padding-right: calc(var(--spacing) * 9); - padding-left: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - white-space: nowrap; - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &:hover { - @media (hover: hover) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 50%, transparent); - } - } - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - background-image: var(--chevron-down-icon-50); - background-size: 1rem; - background-position: center right 0.75rem; - background-repeat: no-repeat; - option, optgroup { - background-color: var(--color-popover); - color: var(--color-popover-foreground); - } - } - *:not(select).select { - position: relative; - display: inline-flex; - [data-popover] { - padding: calc(var(--spacing) * 1); - [role='option'] { - position: relative; - display: flex; - width: 100%; - cursor: default; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-sm); - padding-block: calc(var(--spacing) * 1.5); - padding-right: calc(var(--spacing) * 7.5); - padding-left: calc(var(--spacing) * 2); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - -webkit-user-select: none; - user-select: none; - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &[aria-hidden="true"] { - display: none; - } - & svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - & svg { - flex-shrink: 0; - } - & svg { - color: var(--color-muted-foreground); - } - &[aria-selected='true'] { - background-image: var(--check-icon); - background-size: 0.875rem; - background-position: center right 0.5rem; - background-repeat: no-repeat; - } - &.active, &:focus-visible { - background-color: var(--color-accent); - color: var(--color-accent-foreground); - } - } - [role='listbox'] [role='heading'] { - display: flex; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - color: var(--color-muted-foreground); - } - [role='listbox'] [role='group']:not(:has([role='option']:not([aria-hidden='true']))) { - display: none; - } - [role='separator'] { - margin-inline: calc(var(--spacing) * -1); - margin-block: calc(var(--spacing) * 1); - border-color: var(--color-border); - } - > header { - margin-inline: calc(var(--spacing) * -1); - margin-top: calc(var(--spacing) * -1); - margin-bottom: calc(var(--spacing) * 1); - display: flex; - height: calc(var(--spacing) * 9); - align-items: center; - gap: calc(var(--spacing) * 2); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - padding-inline: calc(var(--spacing) * 3); - svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - opacity: 50%; - } - input[role='combobox'] { - display: flex; - height: calc(var(--spacing) * 10); - width: 100%; - min-width: calc(var(--spacing) * 0); - flex: 1; - border-radius: var(--radius-md); - background-color: transparent; - padding-block: calc(var(--spacing) * 3); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - &::placeholder { - color: var(--color-muted-foreground); - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - } - } - [role='listbox']:not(:has([data-value]:not([aria-hidden='true'])))::before { - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding: calc(var(--spacing) * 6); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - [role='listbox'][data-empty]:not(:has([data-value]:not([aria-hidden='true'])))::before { - --tw-content: attr(data-empty); - content: var(--tw-content); - } - [role='listbox']:not([data-empty]):not(:has([data-value]:not([aria-hidden='true'])))::before { - --tw-content: 'No results found'; - content: var(--tw-content); - } - } - [data-popover]:has(> header input:not(:placeholder-shown)) [role='separator'] { - display: none; - } - &:not([data-select-initialized]) [data-popover] [role='option'] { - &:hover { - @media (hover: hover) { - background-color: var(--color-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-accent-foreground); - } - } - } - } -} -@layer components { - .sidebar { - &:not([data-sidebar-initialized]) { - @media (width < 48rem) { - display: none; - } - } - &:not([aria-hidden]), &[aria-hidden=false] { - @media (width < 48rem) { - position: fixed; - } - @media (width < 48rem) { - inset: calc(var(--spacing) * 0); - } - @media (width < 48rem) { - z-index: 40; - } - @media (width < 48rem) { - background-color: color-mix(in srgb, #000 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-black) 50%, transparent); - } - } - } - nav { - position: fixed; - inset-block: calc(var(--spacing) * 0); - z-index: 50; - display: flex; - width: var(--sidebar-mobile-width); - flex-direction: column; - background-color: var(--color-sidebar); - color: var(--color-sidebar-foreground); - transition-property: transform, translate, scale, rotate; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 300ms; - transition-duration: 300ms; - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - @media (width >= 48rem) { - width: var(--sidebar-width); - } - } - & + * { - transition-property: margin; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 300ms; - transition-duration: 300ms; - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - } - &:not([data-side]), &[data-side=left] { - nav { - left: calc(var(--spacing) * 0); - border-right-style: var(--tw-border-style); - border-right-width: 1px; - } - & + * { - position: relative; - @media (width >= 48rem) { - margin-left: var(--sidebar-width); - } - } - &[aria-hidden=true] { - nav { - --tw-translate-x: -100%; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - & + * { - @media (width >= 48rem) { - margin-left: calc(var(--spacing) * 0); - } - } - } - } - &[data-side=right] { - nav { - right: calc(var(--spacing) * 0); - border-left-style: var(--tw-border-style); - border-left-width: 1px; - } - & + * { - position: relative; - @media (width >= 48rem) { - margin-right: var(--sidebar-width); - } - } - &[aria-hidden=true] { - nav { - --tw-translate-x: 100%; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - & + * { - @media (width >= 48rem) { - margin-right: calc(var(--spacing) * 0); - } - } - } - } - nav { - > header, > footer { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - padding: calc(var(--spacing) * 2); - } - [role=separator] { - margin-inline: calc(var(--spacing) * 2); - width: auto; - border-color: var(--color-sidebar-border); - } - > section { - display: flex; - min-height: calc(var(--spacing) * 0); - flex: 1; - flex-direction: column; - gap: calc(var(--spacing) * 2); - overflow-y: auto; - > [role=group] { - position: relative; - display: flex; - width: 100%; - min-width: calc(var(--spacing) * 0); - flex-direction: column; - padding: calc(var(--spacing) * 2); - } - h3 { - display: flex; - height: calc(var(--spacing) * 8); - flex-shrink: 0; - align-items: center; - border-radius: var(--radius-md); - padding-inline: calc(var(--spacing) * 2); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - color: var(--color-sidebar-foreground); - @supports (color: color-mix(in lab, red, red)) { - color: color-mix(in oklab, var(--color-sidebar-foreground) 70%, transparent); - } - --tw-ring-color: var(--color-sidebar-ring); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - transition-property: margin,opacity; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 200ms; - transition-duration: 200ms; - --tw-ease: linear; - transition-timing-function: linear; - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &>svg { - flex-shrink: 0; - } - } - ul { - display: flex; - width: 100%; - min-width: calc(var(--spacing) * 0); - flex-direction: column; - gap: calc(var(--spacing) * 1); - li { - position: relative; - > a, > details > summary { - display: flex; - width: 100%; - align-items: center; - gap: calc(var(--spacing) * 2); - overflow: hidden; - border-radius: var(--radius-md); - padding: calc(var(--spacing) * 2); - text-align: left; - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-ring-color: var(--color-sidebar-ring); - --tw-outline-style: none; - outline-style: none; - @media (forced-colors: active) { - outline: 2px solid transparent; - outline-offset: 2px; - } - transition-property: width,height,padding; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:hover { - @media (hover: hover) { - background-color: var(--color-sidebar-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-sidebar-accent-foreground); - } - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:active { - background-color: var(--color-sidebar-accent); - } - &:active { - color: var(--color-sidebar-accent-foreground); - } - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &[aria-disabled="true"] { - pointer-events: none; - } - &[aria-disabled="true"] { - opacity: 50%; - } - &>span:last-child { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - &>svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &>svg { - flex-shrink: 0; - } - &[aria-current=page] { - background-color: transparent; - } - &[aria-current=page] { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - &[aria-current=page] { - color: var(--color-sidebar-accent-foreground); - } - &:not([data-variant]), &[data-variant=default] { - &:hover { - @media (hover: hover) { - background-color: var(--color-sidebar-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-sidebar-accent-foreground); - } - } - } - &[data-variant=outline] { - background-color: var(--color-background); - --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border))); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:hover { - @media (hover: hover) { - background-color: var(--color-sidebar-accent); - } - } - &:hover { - @media (hover: hover) { - color: var(--color-sidebar-accent-foreground); - } - } - &:hover { - @media (hover: hover) { - --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent))); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - } - &:not([data-size]), &[data-size=default] { - height: calc(var(--spacing) * 8); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &[data-size=sm] { - height: calc(var(--spacing) * 7); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - &[data-size=lg] { - height: calc(var(--spacing) * 12); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - &:is(:where(.group)[data-collapsible="icon"] *) { - padding: calc(var(--spacing) * 0) !important; - } - } - } - > details { - &:not([open]) { - > summary { - &::after { - rotate: calc(90deg * -1); - } - } - } - > summary { - &::after { - margin-left: auto; - display: block; - width: calc(var(--spacing) * 3.5); - height: calc(var(--spacing) * 3.5); - background-color: var(--color-primary); - transition-property: transform, translate, scale, rotate; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-ease: linear; - transition-timing-function: linear; - --tw-content: ''; - content: var(--tw-content); - mask-image: var(--chevron-down-icon); - mask-size: 1rem; - mask-position: center; - mask-repeat: no-repeat; - } - } - &::details-content { - padding-inline: calc(var(--spacing) * 3.5); - } - } - } - ul { - display: flex; - width: 100%; - min-width: calc(var(--spacing) * 0); - --tw-translate-x: 1px; - translate: var(--tw-translate-x) var(--tw-translate-y); - flex-direction: column; - gap: calc(var(--spacing) * 1); - border-left-style: var(--tw-border-style); - border-left-width: 1px; - border-color: var(--color-sidebar-border); - padding-inline: calc(var(--spacing) * 2.5); - padding-block: calc(var(--spacing) * 0.5); - } - } - } - } - } -} -@layer components { - :is(.form, .field) input[type='checkbox'][role='switch'], .input[type='checkbox'][role='switch'] { - display: inline-flex; - height: 1.15rem; - width: calc(var(--spacing) * 8); - flex-shrink: 0; - appearance: none; - align-items: center; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: transparent; - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - background-color: var(--color-input); - &:checked { - background-color: var(--color-primary); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 80%, transparent); - } - } - &:is(.dark *) { - &:checked { - background-color: var(--color-primary); - } - } - &::before { - content: var(--tw-content); - pointer-events: none; - } - &::before { - content: var(--tw-content); - display: block; - } - &::before { - content: var(--tw-content); - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &::before { - content: var(--tw-content); - border-radius: calc(infinity * 1px); - } - &::before { - content: var(--tw-content); - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &::before { - content: var(--tw-content); - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - &::before { - content: var(--tw-content); - --tw-content: ''; - content: var(--tw-content); - } - &::before { - content: var(--tw-content); - background-color: var(--color-background); - } - &:is(.dark *) { - &::before { - content: var(--tw-content); - background-color: var(--color-foreground); - } - } - &:checked { - &::before { - content: var(--tw-content); - margin-inline-start: calc(var(--spacing) * 3.5); - } - } - &:is(.dark *) { - &:checked { - &::before { - content: var(--tw-content); - background-color: var(--color-primary-foreground); - } - } - } - } -} -@layer components { - .table { - width: 100%; - caption-side: bottom; - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - thead { - & tr { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - } - } - tbody { - & tr:last-child { - border-style: var(--tw-border-style); - border-width: 0px; - } - } - tfoot { - border-top-style: var(--tw-border-style); - border-top-width: 1px; - background-color: var(--color-muted); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); - } - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - &>tr { - &:last-child { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 0px; - } - } - } - tr { - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:hover { - @media (hover: hover) { - background-color: var(--color-muted); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); - } - } - } - } - th { - height: calc(var(--spacing) * 10); - padding-inline: calc(var(--spacing) * 2); - text-align: left; - vertical-align: middle; - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - color: var(--color-foreground); - &:has([role=checkbox]) { - padding-right: calc(var(--spacing) * 0); - } - &>[role=checkbox] { - --tw-translate-y: 2px; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - td { - padding: calc(var(--spacing) * 2); - vertical-align: middle; - white-space: nowrap; - &:has([role=checkbox]) { - padding-right: calc(var(--spacing) * 0); - } - &>[role=checkbox] { - --tw-translate-y: 2px; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - caption { - margin-top: calc(var(--spacing) * 4); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - color: var(--color-muted-foreground); - } - } -} -@layer components { - .tabs { - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - [role='tablist'] { - display: inline-flex; - height: calc(var(--spacing) * 9); - width: fit-content; - align-items: center; - justify-content: center; - border-radius: var(--radius-lg); - background-color: var(--color-muted); - padding: 3px; - color: var(--color-muted-foreground); - [role='tab'] { - display: inline-flex; - height: calc(100% - 1px); - flex: 1; - align-items: center; - justify-content: center; - gap: calc(var(--spacing) * 1.5); - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: transparent; - padding-inline: calc(var(--spacing) * 2); - padding-block: calc(var(--spacing) * 1); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - white-space: nowrap; - color: var(--color-foreground); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:focus-visible { - outline-style: var(--tw-outline-style); - outline-width: 1px; - } - &:focus-visible { - outline-color: var(--color-ring); - } - &:disabled { - pointer-events: none; - } - &:disabled { - opacity: 50%; - } - &:is(.dark *) { - color: var(--color-muted-foreground); - } - & svg { - pointer-events: none; - } - & svg { - flex-shrink: 0; - } - & svg:not([class*='size-']) { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - } - &[aria-selected='true'] { - background-color: var(--color-background); - --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - &:is(.dark *) { - border-color: var(--color-input); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - color: var(--color-foreground); - } - } - } - } - [role='tabpanel'] { - flex: 1; - --tw-outline-style: none; - outline-style: none; - } - } -} -@layer components { - :is(.form, .field) textarea, .textarea { - display: flex; - field-sizing: content; - min-height: calc(var(--spacing) * 16); - width: 100%; - border-radius: var(--radius-md); - border-style: var(--tw-border-style); - border-width: 1px; - border-color: var(--color-input); - background-color: transparent; - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 2); - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - transition-property: color,box-shadow; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-outline-style: none; - outline-style: none; - &::placeholder { - color: var(--color-muted-foreground); - } - &:focus-visible { - border-color: var(--color-ring); - } - &:focus-visible { - --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - &:focus-visible { - --tw-ring-color: var(--color-ring); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); - } - } - &:disabled { - cursor: not-allowed; - } - &:disabled { - opacity: 50%; - } - &[aria-invalid="true"] { - border-color: var(--color-destructive); - } - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); - } - } - @media (width >= 48rem) { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - &:is(.dark *) { - background-color: var(--color-input); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-input) 30%, transparent); - } - } - &:is(.dark *) { - &[aria-invalid="true"] { - --tw-ring-color: var(--color-destructive); - @supports (color: color-mix(in lab, red, red)) { - --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); - } - } - } - } -} -@layer components { - .toaster { - pointer-events: none; - position: fixed; - bottom: calc(var(--spacing) * 0); - z-index: 50; - display: flex; - width: 100%; - flex-direction: column-reverse; - padding: calc(var(--spacing) * 4); - @media (width >= 40rem) { - max-width: calc(var(--spacing) * 90); - } - &:not([data-align]), &[data-align='end'] { - right: calc(var(--spacing) * 0); - } - &[data-align='start'] { - left: calc(var(--spacing) * 0); - } - &[data-align='center'] { - left: calc(1/2 * 100%); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .toast { - pointer-events: auto; - margin-top: calc(var(--spacing) * 4); - display: grid; - width: 100%; - animation: toast-up 0.3s ease-in-out; - grid-template-rows: 1fr; - transition-property: grid-template-rows,opacity,margin; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-duration: 300ms; - transition-duration: 300ms; - --tw-ease: var(--ease-in-out); - transition-timing-function: var(--ease-in-out); - .toast-content { - display: flex; - align-items: center; - gap: calc(var(--spacing) * 2.5); - overflow: hidden; - border-radius: var(--radius-lg); - border-style: var(--tw-border-style); - border-width: 1px; - background-color: var(--color-popover); - padding: calc(var(--spacing) * 3); - font-size: 13px; - color: var(--color-popover-foreground); - --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - svg { - width: calc(var(--spacing) * 4); - height: calc(var(--spacing) * 4); - flex-shrink: 0; - } - section { - h2 { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - p { - word-break: break-all; - color: var(--color-muted-foreground); - } - } - footer { - margin-left: auto; - display: flex; - flex-direction: column; - gap: calc(var(--spacing) * 2); - [data-toast-action], [data-toast-cancel] { - height: calc(var(--spacing) * 6); - padding-inline: calc(var(--spacing) * 2.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - } - } - } - &[aria-hidden='true'] { - margin: calc(var(--spacing) * 0); - grid-template-rows: 0fr; - overflow: hidden; - border-style: var(--tw-border-style); - border-width: 0px; - padding: calc(var(--spacing) * 0); - opacity: 0%; - .toast-content { - border-style: var(--tw-border-style); - border-width: 0px; - } - } - } - } -} -@keyframes toast-up { - from { - opacity: 0; - transform: translateY(100%); - } -} -@layer components { - [data-tooltip] { - position: relative; - &:before { - pointer-events: none; - visibility: hidden; - position: absolute; - z-index: 60; - width: fit-content; - max-width: var(--container-xs); - --tw-scale-x: 95%; - --tw-scale-y: 95%; - --tw-scale-z: 95%; - scale: var(--tw-scale-x) var(--tw-scale-y); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-radius: var(--radius-md); - background-color: var(--color-primary); - padding-inline: calc(var(--spacing) * 3); - padding-block: calc(var(--spacing) * 1.5); - font-size: var(--text-xs); - line-height: var(--tw-leading, var(--text-xs--line-height)); - color: var(--color-primary-foreground); - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - --tw-content: attr(data-tooltip); - content: var(--tw-content); - } - &:hover:before { - visibility: visible; - --tw-scale-x: 100%; - --tw-scale-y: 100%; - --tw-scale-z: 100%; - scale: var(--tw-scale-x) var(--tw-scale-y); - opacity: 100%; - } - &:focus-visible:not(:hover):before { - display: none; - } - &:not([data-side]), &[data-side='top'] { - &::before { - content: var(--tw-content); - bottom: 100%; - } - &::before { - content: var(--tw-content); - margin-bottom: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &[data-side='bottom'] { - &::before { - content: var(--tw-content); - top: 100%; - } - &::before { - content: var(--tw-content); - margin-top: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-y: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &:not([data-side]), &[data-side='top'], &[data-side='bottom'] { - &[data-align='start'] { - &::before { - content: var(--tw-content); - left: calc(var(--spacing) * 0); - } - } - &[data-align='end'] { - &::before { - content: var(--tw-content); - right: calc(var(--spacing) * 0); - } - } - &:not([data-align]), &[data-align='center'] { - &::before { - content: var(--tw-content); - left: calc(1/2 * 100%); - } - &::before { - content: var(--tw-content); - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - &[data-side='left'] { - &::before { - content: var(--tw-content); - right: 100%; - } - &::before { - content: var(--tw-content); - margin-right: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * 2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &[data-side='right'] { - &::before { - content: var(--tw-content); - left: 100%; - } - &::before { - content: var(--tw-content); - margin-left: calc(var(--spacing) * 1.5); - } - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * -2); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - &:hover { - @media (hover: hover) { - &::before { - content: var(--tw-content); - --tw-translate-x: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } - &[data-side='left'], &[data-side='right'] { - &[data-align='start'] { - &::before { - content: var(--tw-content); - top: calc(var(--spacing) * 0); - } - } - &[data-align='end'] { - &::before { - content: var(--tw-content); - bottom: calc(var(--spacing) * 0); - } - } - &:not([data-align]), &[data-align='center'] { - &::before { - content: var(--tw-content); - top: calc(1/2 * 100%); - } - &::before { - content: var(--tw-content); - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } - } - } -} -.htmx-indicator { - visibility: hidden; - opacity: 0%; - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - transition-behavior: allow-discrete; -} -.htmx-indicator:not(.htmx-request) { - display: none; -} -.htmx-request, .htmx-request.htmx-indicator { - visibility: visible; - opacity: 100%; -} -.content { - > h2 { - margin-top: calc(var(--spacing) * 12); - margin-bottom: calc(var(--spacing) * 6); - scroll-margin: calc(var(--spacing) * 22); - font-size: var(--text-2xl); - line-height: var(--tw-leading, var(--text-2xl--line-height)); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - &:first-child { - margin-top: calc(var(--spacing) * 0); - } - @media (width >= 64rem) { - margin-top: calc(var(--spacing) * 20); - } - } - > h3 { - margin-top: calc(var(--spacing) * 8); - margin-bottom: calc(var(--spacing) * 6); - scroll-margin: calc(var(--spacing) * 22); - font-size: var(--text-xl); - line-height: var(--tw-leading, var(--text-xl--line-height)); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - > h4 { - margin-block: calc(var(--spacing) * 6); - scroll-margin: calc(var(--spacing) * 22); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - .prose { - margin-block: calc(var(--spacing) * 6); - a { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - text-decoration-line: underline; - text-underline-offset: 4px; - } - code:not(pre > code) { - position: relative; - border-radius: var(--radius-md); - background-color: var(--color-muted); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); - } - padding-inline: 0.3rem; - padding-block: 0.2rem; - font-family: var(--font-mono); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - blockquote { - border-left-style: var(--tw-border-style); - border-left-width: 4px; - border-color: var(--color-border); - padding-left: calc(var(--spacing) * 4); - } - ol { - margin-left: calc(var(--spacing) * 6); - list-style-type: decimal; - } - ul { - margin-left: calc(var(--spacing) * 6); - list-style-type: disc; - } - ol, ul { - li { - margin-top: calc(var(--spacing) * 2); - } - } - dl { - margin-block: calc(var(--spacing) * 6); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 1px; - padding-bottom: calc(var(--spacing) * 3); - dt { - margin-top: calc(var(--spacing) * 3); - border-top-style: var(--tw-border-style); - border-top-width: 1px; - padding-top: calc(var(--spacing) * 3); - &:first-child { - margin-top: calc(var(--spacing) * 0); - } - } - dd { - margin-top: calc(var(--spacing) * 2); - } - dl { - margin-block: calc(var(--spacing) * 0); - margin-top: calc(var(--spacing) * 4); - border-bottom-style: var(--tw-border-style); - border-bottom-width: 0px; - padding-bottom: calc(var(--spacing) * 0); - padding-left: calc(var(--spacing) * 8); - } - } - b, strong { - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - > p, > blockquote, > ul, > ol, > dl, > table, > pre, > p { - margin-block: calc(var(--spacing) * 6); - } - > *:first-child { - margin-top: calc(var(--spacing) * 0) !important; - } - > *:last-child { - margin-bottom: calc(var(--spacing) * 0) !important; - } - } - .step { - counter-increment: step; - &:before { - position: absolute; - margin-right: calc(var(--spacing) * 2); - display: inline-flex; - height: calc(var(--spacing) * 8); - width: calc(var(--spacing) * 8); - align-items: center; - justify-content: center; - border-radius: calc(infinity * 1px); - border-style: var(--tw-border-style); - border-width: 4px; - border-color: var(--color-background); - background-color: var(--color-muted); - text-align: center; - text-indent: -1px; - font-family: var(--font-mono); - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - @media (width >= 48rem) { - height: calc(var(--spacing) * 9); - } - @media (width >= 48rem) { - width: calc(var(--spacing) * 9); - } - @media (width >= 48rem) { - margin-top: -4px; - } - @media (width >= 48rem) { - margin-left: -50px; - } - content: counter(step); - } - > h3 { - display: flex; - min-height: calc(var(--spacing) * 8); - align-items: center; - @media (width < 48rem) { - margin-left: calc(var(--spacing) * 10); - } - } - } -} -:root { - --hljs-bg: #fff; - --hljs-color: #24292e; - --hljs-keyword: #d73a49; - --hljs-title: #6f42c1; - --hljs-literal: #005cc5; - --hljs-string: #032f62; - --hljs-symbol: #e36209; - --hljs-comment: #6a737d; - --hljs-tag: #22863a; - --hljs-section: #005cc5; - --hljs-bullet: #735c0f; - --hljs-addition-color: #22863a; - --hljs-addition-bg: #f0fff4; - --hljs-deletion-color: #b31d28; - --hljs-deletion-bg: #ffeef0; -} -html.dark { - --hljs-bg: #0d1117; - --hljs-color: #c9d1d9; - --hljs-keyword: #ff7b72; - --hljs-title: #d2a8ff; - --hljs-literal: #79c0ff; - --hljs-string: #a5d6ff; - --hljs-symbol: #ffa657; - --hljs-comment: #8b949e; - --hljs-tag: #7ee787; - --hljs-section: #1f6feb; - --hljs-bullet: #f2cc60; - --hljs-addition-color: #aff5b4; - --hljs-addition-bg: #033a16; - --hljs-deletion-color: #ffdcd7; - --hljs-deletion-bg: #67060c; -} -pre code.hljs { - display: block; - overflow-x: auto; - padding: 1em; -} -code.hljs { - padding: 3px 5px; -} -.hljs { - color: var(--hljs-color); - background: var(--hljs-bg); -} -.hljs-doctag, .hljs-keyword, .hljs-meta .hljs-keyword, .hljs-template-tag, .hljs-template-variable, .hljs-type, .hljs-variable.language_ { - color: var(--hljs-keyword); -} -.hljs-title, .hljs-title.class_, .hljs-title.class_.inherited__, .hljs-title.function_ { - color: var(--hljs-title); -} -.hljs-attr, .hljs-attribute, .hljs-literal, .hljs-meta, .hljs-number, .hljs-operator, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-id, .hljs-variable { - color: var(--hljs-literal); -} -.hljs-meta .hljs-string, .hljs-regexp, .hljs-string { - color: var(--hljs-string); -} -.hljs-built_in, .hljs-symbol { - color: var(--hljs-symbol); -} -.hljs-code, .hljs-comment, .hljs-formula { - color: var(--hljs-comment); -} -.hljs-name, .hljs-quote, .hljs-selector-pseudo, .hljs-selector-tag { - color: var(--hljs-tag); -} -.hljs-subst { - color: var(--hljs-color); -} -.hljs-section { - color: var(--hljs-section); - font-weight: 700; -} -.hljs-bullet { - color: var(--hljs-bullet); -} -.hljs-emphasis { - font-style: italic; -} -.hljs-strong { - font-weight: 700; -} -.hljs-addition { - color: var(--hljs-addition-color); - background-color: var(--hljs-addition-bg); -} -.hljs-deletion { - color: var(--hljs-deletion-color); - background-color: var(--hljs-deletion-bg); -} - -.theme-tangerine { - &:root { - --background: oklch(0.9383 0.0042 236.4993); - --foreground: oklch(0.3211 0 0); - --card: oklch(1.0000 0 0); - --card-foreground: oklch(0.3211 0 0); - --popover: oklch(1.0000 0 0); - --popover-foreground: oklch(0.3211 0 0); - --primary: oklch(0.6397 0.1720 36.4421); - --primary-foreground: oklch(1.0000 0 0); - --secondary: oklch(0.9670 0.0029 264.5419); - --secondary-foreground: oklch(0.4461 0.0263 256.8018); - --muted: oklch(0.9846 0.0017 247.8389); - --muted-foreground: oklch(0.5510 0.0234 264.3637); - --accent: oklch(0.9119 0.0222 243.8174); - --accent-foreground: oklch(0.3791 0.1378 265.5222); - --destructive: oklch(0.6368 0.2078 25.3313); - --destructive-foreground: oklch(1.0000 0 0); - --border: oklch(0.9022 0.0052 247.8822); - --input: oklch(0.9700 0.0029 264.5420); - --ring: oklch(0.6397 0.1720 36.4421); - --chart-1: oklch(0.7156 0.0605 248.6845); - --chart-2: oklch(0.7875 0.0917 35.9616); - --chart-3: oklch(0.5778 0.0759 254.1573); - --chart-4: oklch(0.5016 0.0849 259.4902); - --chart-5: oklch(0.4241 0.0952 264.0306); - --sidebar: oklch(0.9030 0.0046 258.3257); - --sidebar-foreground: oklch(0.3211 0 0); - --sidebar-primary: oklch(0.6397 0.1720 36.4421); - --sidebar-primary-foreground: oklch(1.0000 0 0); - --sidebar-accent: oklch(0.9119 0.0222 243.8174); - --sidebar-accent-foreground: oklch(0.3791 0.1378 265.5222); - --sidebar-border: oklch(0.9276 0.0058 264.5313); - --sidebar-ring: oklch(0.6397 0.1720 36.4421); - --font-sans: Inter, sans-serif; - --font-serif: Source Serif 4, serif; - --font-mono: JetBrains Mono, monospace; - --radius: 0.75rem; - --shadow-x: 0px; - --shadow-y: 1px; - --shadow-blur: 3px; - --shadow-spread: 0px; - --shadow-opacity: 0.1; - --shadow-color: hsl(0 0% 0%); - --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 8px 10px -1px hsl(0 0% 0% / 0.10); - --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.25); - --tracking-normal: 0em; - --spacing: 0.25rem; -} - -&.dark { - --background: oklch(0.2598 0.0306 262.6666); - --foreground: oklch(0.9219 0 0); - --card: oklch(0.3106 0.0301 268.6365); - --card-foreground: oklch(0.9219 0 0); - --popover: oklch(0.2900 0.0249 268.3986); - --popover-foreground: oklch(0.9219 0 0); - --primary: oklch(0.6397 0.1720 36.4421); - --primary-foreground: oklch(1.0000 0 0); - --secondary: oklch(0.3095 0.0266 266.7132); - --secondary-foreground: oklch(0.9219 0 0); - --muted: oklch(0.3095 0.0266 266.7132); - --muted-foreground: oklch(0.7155 0 0); - --accent: oklch(0.3380 0.0589 267.5867); - --accent-foreground: oklch(0.8823 0.0571 254.1284); - --destructive: oklch(0.6368 0.2078 25.3313); - --destructive-foreground: oklch(1.0000 0 0); - --border: oklch(0.3843 0.0301 269.7337); - --input: oklch(0.3843 0.0301 269.7337); - --ring: oklch(0.6397 0.1720 36.4421); - --chart-1: oklch(0.7156 0.0605 248.6845); - --chart-2: oklch(0.7693 0.0876 34.1875); - --chart-3: oklch(0.5778 0.0759 254.1573); - --chart-4: oklch(0.5016 0.0849 259.4902); - --chart-5: oklch(0.4241 0.0952 264.0306); - --sidebar: oklch(0.3100 0.0283 267.7408); - --sidebar-foreground: oklch(0.9219 0 0); - --sidebar-primary: oklch(0.6397 0.1720 36.4421); - --sidebar-primary-foreground: oklch(1.0000 0 0); - --sidebar-accent: oklch(0.3380 0.0589 267.5867); - --sidebar-accent-foreground: oklch(0.8823 0.0571 254.1284); - --sidebar-border: oklch(0.3843 0.0301 269.7337); - --sidebar-ring: oklch(0.6397 0.1720 36.4421); - --font-sans: Inter, sans-serif; - --font-serif: Source Serif 4, serif; - --font-mono: JetBrains Mono, monospace; - --radius: 0.75rem; - --shadow-x: 0px; - --shadow-y: 1px; - --shadow-blur: 3px; - --shadow-spread: 0px; - --shadow-opacity: 0.1; - --shadow-color: hsl(0 0% 0%); - --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 8px 10px -1px hsl(0 0% 0% / 0.10); - --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.25); - } -} - -.theme-cosmic { - &:root { - --background: oklch(0.9730 0.0133 286.1503); - --foreground: oklch(0.3015 0.0572 282.4176); - --card: oklch(1.0000 0 0); - --card-foreground: oklch(0.3015 0.0572 282.4176); - --popover: oklch(1.0000 0 0); - --popover-foreground: oklch(0.3015 0.0572 282.4176); - --primary: oklch(0.5417 0.1790 288.0332); - --primary-foreground: oklch(1.0000 0 0); - --secondary: oklch(0.9174 0.0435 292.6901); - --secondary-foreground: oklch(0.4143 0.1039 288.1742); - --muted: oklch(0.9580 0.0133 286.1454); - --muted-foreground: oklch(0.5426 0.0465 284.7435); - --accent: oklch(0.9221 0.0373 262.1410); - --accent-foreground: oklch(0.3015 0.0572 282.4176); - --destructive: oklch(0.6861 0.2061 14.9941); - --destructive-foreground: oklch(1.0000 0 0); - --border: oklch(0.9115 0.0216 285.9625); - --input: oklch(0.9115 0.0216 285.9625); - --ring: oklch(0.5417 0.1790 288.0332); - --chart-1: oklch(0.5417 0.1790 288.0332); - --chart-2: oklch(0.7042 0.1602 288.9880); - --chart-3: oklch(0.5679 0.2113 276.7065); - --chart-4: oklch(0.6356 0.1922 281.8054); - --chart-5: oklch(0.4509 0.1758 279.3838); - --sidebar: oklch(0.9580 0.0133 286.1454); - --sidebar-foreground: oklch(0.3015 0.0572 282.4176); - --sidebar-primary: oklch(0.5417 0.1790 288.0332); - --sidebar-primary-foreground: oklch(1.0000 0 0); - --sidebar-accent: oklch(0.9221 0.0373 262.1410); - --sidebar-accent-foreground: oklch(0.3015 0.0572 282.4176); - --sidebar-border: oklch(0.9115 0.0216 285.9625); - --sidebar-ring: oklch(0.5417 0.1790 288.0332); - --font-sans: Inter, sans-serif; - --font-serif: Georgia, serif; - --font-mono: JetBrains Mono, monospace; - --radius: 0.5rem; - --shadow-x: 0px; - --shadow-y: 4px; - --shadow-blur: 10px; - --shadow-spread: 0px; - --shadow-opacity: 0.12; - --shadow-color: hsl(240 30% 25%); - --shadow-2xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); - --shadow-xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); - --shadow-sm: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12); - --shadow: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12); - --shadow-md: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 2px 4px -1px hsl(240 30% 25% / 0.12); - --shadow-lg: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 4px 6px -1px hsl(240 30% 25% / 0.12); - --shadow-xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 8px 10px -1px hsl(240 30% 25% / 0.12); - --shadow-2xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.30); - --tracking-normal: 0em; - --spacing: 0.25rem; - } - - &.dark { - --background: oklch(0.1743 0.0227 283.7998); - --foreground: oklch(0.9185 0.0257 285.8834); - --card: oklch(0.2284 0.0384 282.9324); - --card-foreground: oklch(0.9185 0.0257 285.8834); - --popover: oklch(0.2284 0.0384 282.9324); - --popover-foreground: oklch(0.9185 0.0257 285.8834); - --primary: oklch(0.7162 0.1597 290.3962); - --primary-foreground: oklch(0.1743 0.0227 283.7998); - --secondary: oklch(0.3139 0.0736 283.4591); - --secondary-foreground: oklch(0.8367 0.0849 285.9111); - --muted: oklch(0.2710 0.0621 281.4377); - --muted-foreground: oklch(0.7166 0.0462 285.1741); - --accent: oklch(0.3354 0.0828 280.9705); - --accent-foreground: oklch(0.9185 0.0257 285.8834); - --destructive: oklch(0.6861 0.2061 14.9941); - --destructive-foreground: oklch(1.0000 0 0); - --border: oklch(0.3261 0.0597 282.5832); - --input: oklch(0.3261 0.0597 282.5832); - --ring: oklch(0.7162 0.1597 290.3962); - --chart-1: oklch(0.7162 0.1597 290.3962); - --chart-2: oklch(0.6382 0.1047 274.9117); - --chart-3: oklch(0.7482 0.1235 244.7492); - --chart-4: oklch(0.7124 0.0977 186.6761); - --chart-5: oklch(0.7546 0.1831 346.8124); - --sidebar: oklch(0.2284 0.0384 282.9324); - --sidebar-foreground: oklch(0.9185 0.0257 285.8834); - --sidebar-primary: oklch(0.7162 0.1597 290.3962); - --sidebar-primary-foreground: oklch(0.1743 0.0227 283.7998); - --sidebar-accent: oklch(0.3354 0.0828 280.9705); - --sidebar-accent-foreground: oklch(0.9185 0.0257 285.8834); - --sidebar-border: oklch(0.3261 0.0597 282.5832); - --sidebar-ring: oklch(0.7162 0.1597 290.3962); - --font-sans: Inter, sans-serif; - --font-serif: Georgia, serif; - --font-mono: JetBrains Mono, monospace; - --radius: 0.5rem; - --shadow-x: 0px; - --shadow-y: 4px; - --shadow-blur: 10px; - --shadow-spread: 0px; - --shadow-opacity: 0.12; - --shadow-color: hsl(240 30% 25%); - --shadow-2xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); - --shadow-xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); - --shadow-sm: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12); - --shadow: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12); - --shadow-md: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 2px 4px -1px hsl(240 30% 25% / 0.12); - --shadow-lg: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 4px 6px -1px hsl(240 30% 25% / 0.12); - --shadow-xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 8px 10px -1px hsl(240 30% 25% / 0.12); - --shadow-2xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.30); - } -} - -.theme-claude { - &:root { - --background: oklch(0.98 0.01 95.10); - --foreground: oklch(0.34 0.03 95.72); - --card: oklch(0.98 0.01 95.10); - --card-foreground: oklch(0.19 0.00 106.59); - --popover: oklch(1.00 0 0); - --popover-foreground: oklch(0.27 0.02 98.94); - --primary: oklch(0.62 0.14 39.04); - --primary-foreground: oklch(1.00 0 0); - --secondary: oklch(0.92 0.01 92.99); - --secondary-foreground: oklch(0.43 0.02 98.60); - --muted: oklch(0.93 0.02 90.24); - --muted-foreground: oklch(0.61 0.01 97.42); - --accent: oklch(0.92 0.01 92.99); - --accent-foreground: oklch(0.27 0.02 98.94); - --destructive: oklch(0.19 0.00 106.59); - --destructive-foreground: oklch(1.00 0 0); - --border: oklch(0.88 0.01 97.36); - --input: oklch(0.76 0.02 98.35); - --ring: oklch(0.59 0.17 253.06); - --chart-1: oklch(0.56 0.13 43.00); - --chart-2: oklch(0.69 0.16 290.41); - --chart-3: oklch(0.88 0.03 93.13); - --chart-4: oklch(0.88 0.04 298.18); - --chart-5: oklch(0.56 0.13 42.06); - --sidebar: oklch(0.97 0.01 98.88); - --sidebar-foreground: oklch(0.36 0.01 106.65); - --sidebar-primary: oklch(0.62 0.14 39.04); - --sidebar-primary-foreground: oklch(0.99 0 0); - --sidebar-accent: oklch(0.92 0.01 92.99); - --sidebar-accent-foreground: oklch(0.33 0 0); - --sidebar-border: oklch(0.94 0 0); - --sidebar-ring: oklch(0.77 0 0); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --radius: 0.5rem; - --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10); - --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); - } - &.dark { - --background: oklch(0.27 0.00 106.64); - --foreground: oklch(0.81 0.01 93.01); - --card: oklch(0.27 0.00 106.64); - --card-foreground: oklch(0.98 0.01 95.10); - --popover: oklch(0.31 0.00 106.60); - --popover-foreground: oklch(0.92 0.00 106.48); - --primary: oklch(0.67 0.13 38.76); - --primary-foreground: oklch(1.00 0 0); - --secondary: oklch(0.98 0.01 95.10); - --secondary-foreground: oklch(0.31 0.00 106.60); - --muted: oklch(0.22 0.00 106.71); - --muted-foreground: oklch(0.77 0.02 99.07); - --accent: oklch(0.21 0.01 95.42); - --accent-foreground: oklch(0.97 0.01 98.88); - --destructive: oklch(0.64 0.21 25.33); - --destructive-foreground: oklch(1.00 0 0); - --border: oklch(0.36 0.01 106.89); - --input: oklch(0.43 0.01 100.22); - --ring: oklch(0.59 0.17 253.06); - --chart-1: oklch(0.56 0.13 43.00); - --chart-2: oklch(0.69 0.16 290.41); - --chart-3: oklch(0.21 0.01 95.42); - --chart-4: oklch(0.31 0.05 289.32); - --chart-5: oklch(0.56 0.13 42.06); - --sidebar: oklch(0.24 0.00 67.71); - --sidebar-foreground: oklch(0.81 0.01 93.01); - --sidebar-primary: oklch(0.33 0 0); - --sidebar-primary-foreground: oklch(0.99 0 0); - --sidebar-accent: oklch(0.17 0.00 106.62); - --sidebar-accent-foreground: oklch(0.81 0.01 93.01); - --sidebar-border: oklch(0.94 0 0); - --sidebar-ring: oklch(0.77 0 0); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --radius: 0.5rem; - --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10); - --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); - } -} - -.theme-supabase { - &:root { - --background: oklch(0.99 0 0); - --foreground: oklch(0.20 0 0); - --card: oklch(0.99 0 0); - --card-foreground: oklch(0.20 0 0); - --popover: oklch(0.99 0 0); - --popover-foreground: oklch(0.44 0 0); - --primary: oklch(0.83 0.13 160.91); - --primary-foreground: oklch(0.26 0.01 166.46); - --secondary: oklch(0.99 0 0); - --secondary-foreground: oklch(0.20 0 0); - --muted: oklch(0.95 0 0); - --muted-foreground: oklch(0.24 0 0); - --accent: oklch(0.95 0 0); - --accent-foreground: oklch(0.24 0 0); - --destructive: oklch(0.55 0.19 32.73); - --destructive-foreground: oklch(0.99 0.00 17.21); - --border: oklch(0.90 0 0); - --input: oklch(0.90 0 0); - --ring: oklch(0.83 0.13 160.91); - --chart-1: oklch(0.83 0.13 160.91); - --chart-2: oklch(0.62 0.19 259.81); - --chart-3: oklch(0.61 0.22 292.72); - --chart-4: oklch(0.77 0.16 70.08); - --chart-5: oklch(0.70 0.15 162.48); - --sidebar: oklch(0.99 0 0); - --sidebar-foreground: oklch(0.55 0 0); - --sidebar-primary: oklch(0.83 0.13 160.91); - --sidebar-primary-foreground: oklch(0.26 0.01 166.46); - --sidebar-accent: oklch(0.95 0 0); - --sidebar-accent-foreground: oklch(0.24 0 0); - --sidebar-border: oklch(0.90 0 0); - --sidebar-ring: oklch(0.83 0.13 160.91); - --font-sans: Outfit, sans-serif; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: monospace; - --radius: 0.5rem; - --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 2px 4px -1px hsl(0 0% 0% / 0.17); - --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 4px 6px -1px hsl(0 0% 0% / 0.17); - --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 8px 10px -1px hsl(0 0% 0% / 0.17); - --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); - --tracking-normal: 0.025em; - } - &.dark { - --background: oklch(0.18 0 0); - --foreground: oklch(0.93 0.01 255.51); - --card: oklch(0.20 0 0); - --card-foreground: oklch(0.93 0.01 255.51); - --popover: oklch(0.26 0 0); - --popover-foreground: oklch(0.73 0 0); - --primary: oklch(0.44 0.10 156.76); - --primary-foreground: oklch(0.92 0.01 167.16); - --secondary: oklch(0.26 0 0); - --secondary-foreground: oklch(0.99 0 0); - --muted: oklch(0.24 0 0); - --muted-foreground: oklch(0.71 0 0); - --accent: oklch(0.31 0 0); - --accent-foreground: oklch(0.99 0 0); - --destructive: oklch(0.31 0.09 29.79); - --destructive-foreground: oklch(0.94 0.00 34.31); - --border: oklch(0.28 0 0); - --input: oklch(0.28 0 0); - --ring: oklch(0.80 0.18 151.71); - --chart-1: oklch(0.80 0.18 151.71); - --chart-2: oklch(0.71 0.14 254.62); - --chart-3: oklch(0.71 0.16 293.54); - --chart-4: oklch(0.84 0.16 84.43); - --chart-5: oklch(0.78 0.13 181.91); - --sidebar: oklch(0.18 0 0); - --sidebar-foreground: oklch(0.63 0 0); - --sidebar-primary: oklch(0.44 0.10 156.76); - --sidebar-primary-foreground: oklch(0.92 0.01 167.16); - --sidebar-accent: oklch(0.31 0 0); - --sidebar-accent-foreground: oklch(0.99 0 0); - --sidebar-border: oklch(0.28 0 0); - --sidebar-ring: oklch(0.80 0.18 151.71); - --font-sans: Outfit, sans-serif; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: monospace; - --radius: 0.5rem; - --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); - --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 1px 2px -1px hsl(0 0% 0% / 0.17); - --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 2px 4px -1px hsl(0 0% 0% / 0.17); - --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 4px 6px -1px hsl(0 0% 0% / 0.17); - --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), 0px 8px 10px -1px hsl(0 0% 0% / 0.17); - --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); - } - body { - letter-spacing: var(--tracking-normal); - } -} -@property --tw-translate-x { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-translate-y { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-translate-z { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-rotate-x { - syntax: "*"; - inherits: false; -} -@property --tw-rotate-y { - syntax: "*"; - inherits: false; -} -@property --tw-rotate-z { - syntax: "*"; - inherits: false; -} -@property --tw-skew-x { - syntax: "*"; - inherits: false; -} -@property --tw-skew-y { - syntax: "*"; - inherits: false; -} -@property --tw-space-y-reverse { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-space-x-reverse { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-border-style { - syntax: "*"; - inherits: false; - initial-value: solid; -} -@property --tw-leading { - syntax: "*"; - inherits: false; -} -@property --tw-font-weight { - syntax: "*"; - inherits: false; -} -@property --tw-tracking { - syntax: "*"; - inherits: false; -} -@property --tw-ordinal { - syntax: "*"; - inherits: false; -} -@property --tw-slashed-zero { - syntax: "*"; - inherits: false; -} -@property --tw-numeric-figure { - syntax: "*"; - inherits: false; -} -@property --tw-numeric-spacing { - syntax: "*"; - inherits: false; -} -@property --tw-numeric-fraction { - syntax: "*"; - inherits: false; -} -@property --tw-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-shadow-color { - syntax: "*"; - inherits: false; -} -@property --tw-shadow-alpha { - syntax: ""; - inherits: false; - initial-value: 100%; -} -@property --tw-inset-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-inset-shadow-color { - syntax: "*"; - inherits: false; -} -@property --tw-inset-shadow-alpha { - syntax: ""; - inherits: false; - initial-value: 100%; -} -@property --tw-ring-color { - syntax: "*"; - inherits: false; -} -@property --tw-ring-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-inset-ring-color { - syntax: "*"; - inherits: false; -} -@property --tw-inset-ring-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-ring-inset { - syntax: "*"; - inherits: false; -} -@property --tw-ring-offset-width { - syntax: ""; - inherits: false; - initial-value: 0px; -} -@property --tw-ring-offset-color { - syntax: "*"; - inherits: false; - initial-value: #fff; -} -@property --tw-ring-offset-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-outline-style { - syntax: "*"; - inherits: false; - initial-value: solid; -} -@property --tw-blur { - syntax: "*"; - inherits: false; -} -@property --tw-brightness { - syntax: "*"; - inherits: false; -} -@property --tw-contrast { - syntax: "*"; - inherits: false; -} -@property --tw-grayscale { - syntax: "*"; - inherits: false; -} -@property --tw-hue-rotate { - syntax: "*"; - inherits: false; -} -@property --tw-invert { - syntax: "*"; - inherits: false; -} -@property --tw-opacity { - syntax: "*"; - inherits: false; -} -@property --tw-saturate { - syntax: "*"; - inherits: false; -} -@property --tw-sepia { - syntax: "*"; - inherits: false; -} -@property --tw-drop-shadow { - syntax: "*"; - inherits: false; -} -@property --tw-drop-shadow-color { - syntax: "*"; - inherits: false; -} -@property --tw-drop-shadow-alpha { - syntax: ""; - inherits: false; - initial-value: 100%; -} -@property --tw-drop-shadow-size { - syntax: "*"; - inherits: false; -} -@property --tw-duration { - syntax: "*"; - inherits: false; -} -@property --tw-content { - syntax: "*"; - initial-value: ""; - inherits: false; -} -@property --tw-ease { - syntax: "*"; - inherits: false; -} -@property --tw-scale-x { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@property --tw-scale-y { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@property --tw-scale-z { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@keyframes spin { - to { - transform: rotate(360deg); - } -} -@keyframes pulse { - 50% { - opacity: 0.5; - } -} -@layer properties { - @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { - *, ::before, ::after, ::backdrop { - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-translate-z: 0; - --tw-rotate-x: initial; - --tw-rotate-y: initial; - --tw-rotate-z: initial; - --tw-skew-x: initial; - --tw-skew-y: initial; - --tw-space-y-reverse: 0; - --tw-space-x-reverse: 0; - --tw-border-style: solid; - --tw-leading: initial; - --tw-font-weight: initial; - --tw-tracking: initial; - --tw-ordinal: initial; - --tw-slashed-zero: initial; - --tw-numeric-figure: initial; - --tw-numeric-spacing: initial; - --tw-numeric-fraction: initial; - --tw-shadow: 0 0 #0000; - --tw-shadow-color: initial; - --tw-shadow-alpha: 100%; - --tw-inset-shadow: 0 0 #0000; - --tw-inset-shadow-color: initial; - --tw-inset-shadow-alpha: 100%; - --tw-ring-color: initial; - --tw-ring-shadow: 0 0 #0000; - --tw-inset-ring-color: initial; - --tw-inset-ring-shadow: 0 0 #0000; - --tw-ring-inset: initial; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-offset-shadow: 0 0 #0000; - --tw-outline-style: solid; - --tw-blur: initial; - --tw-brightness: initial; - --tw-contrast: initial; - --tw-grayscale: initial; - --tw-hue-rotate: initial; - --tw-invert: initial; - --tw-opacity: initial; - --tw-saturate: initial; - --tw-sepia: initial; - --tw-drop-shadow: initial; - --tw-drop-shadow-color: initial; - --tw-drop-shadow-alpha: 100%; - --tw-drop-shadow-size: initial; - --tw-duration: initial; - --tw-content: ""; - --tw-ease: initial; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-scale-z: 1; - } - } -} diff --git a/lib/basecoat.css b/lib/basecoat.css new file mode 100644 index 0000000..3687854 --- /dev/null +++ b/lib/basecoat.css @@ -0,0 +1,1347 @@ +/* https://github.com/hunvreus/basecoat/blob/main/src/css/basecoat.css + */ +@custom-variant dark (&:is(.dark *)); + +:root { + --radius: 0.625rem; + --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.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --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.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --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.708 0 0); + --sidebar-width: 16rem; + --sidebar-mobile-width: 18rem; + --scrollbar-track: transparent; + --scrollbar-thumb: rgba(0, 0, 0, 0.3); + --scrollbar-width: 6px; + --scrollbar-radius: 6px; + --chevron-down-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ + --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); /* --muted-foreground + 50% opacity */ + --check-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ +} + +.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.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --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); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --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.439 0 0); + --scrollbar-thumb: rgba(255, 255, 255, 0.3); + --chevron-down-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ + --chevron-down-icon-50: url('data:image/svg+xml;utf8,'); /* --muted-foreground + 50% opacity */ + --check-icon: url('data:image/svg+xml;utf8,'); /* --muted-foreground */ + color-scheme: dark; +} + +@theme { + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + html { + @apply scroll-smooth; + } + body { + @apply antialiased bg-background text-foreground overscroll-none; + } + .scrollbar { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); + + &::-webkit-scrollbar { + width: var(--scrollbar-width); + } + &::-webkit-scrollbar-track { + background: var(--scrollbar-track); + } + &::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb); + border-radius: var(--scrollbar-radius); + } + } +} + +/* Alert */ +@layer components { + .alert, + .alert-destructive { + @apply relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current; + + > h2, + > h3, + > h4, + > h5, + > h6, + > strong, + > [data-title] { + @apply font-medium tracking-tight col-start-2 line-clamp-1 min-h-4; + } + > section { + @apply text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed; + + ul { + @apply text-sm list-disc list-inside; + } + } + } + .alert { + @apply bg-card text-card-foreground; + } + .alert-destructive { + @apply text-destructive bg-card [&>svg]:text-current; + + > section { + @apply text-destructive; + } + } +} + +/* Badge */ +@layer components { + .badge, + .badge-primary, + .badge-secondary, + .badge-destructive, + .badge-outline { + @apply inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden; + } + .badge, + .badge-primary { + @apply border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90; + } + .badge-secondary { + @apply border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90; + } + .badge-destructive { + @apply border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60; + } + .badge-outline { + @apply text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground; + } +} + +/* Button */ +@layer components { + .btn, + .btn-primary, + .btn-secondary, + .btn-outline, + .btn-ghost, + .btn-link, + .btn-destructive, + .btn-sm, + .btn-sm-primary, + .btn-sm-secondary, + .btn-sm-outline, + .btn-sm-ghost, + .btn-sm-link, + .btn-sm-destructive, + .btn-lg, + .btn-lg-primary, + .btn-lg-secondary, + .btn-lg-outline, + .btn-lg-ghost, + .btn-lg-link, + .btn-lg-destructive, + .btn-icon, + .btn-icon-primary, + .btn-icon-secondary, + .btn-icon-outline, + .btn-icon-ghost, + .btn-icon-link, + .btn-icon-destructive, + .btn-sm-icon, + .btn-sm-icon-primary, + .btn-sm-icon-secondary, + .btn-sm-icon-outline, + .btn-sm-icon-ghost, + .btn-sm-icon-link, + .btn-sm-icon-destructive, + .btn-lg-icon, + .btn-lg-icon-primary, + .btn-lg-icon-secondary, + .btn-lg-icon-outline, + .btn-lg-icon-ghost, + .btn-lg-icon-link, + .btn-lg-icon-destructive { + @apply inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer rounded-md; + } + .btn, + .btn-primary, + .btn-secondary, + .btn-outline, + .btn-ghost, + .btn-link, + .btn-destructive { + @apply gap-2 h-9 px-4 py-2 has-[>svg]:px-3; + } + .btn-icon, + .btn-icon-primary, + .btn-icon-secondary, + .btn-icon-outline, + .btn-icon-ghost, + .btn-icon-link, + .btn-icon-destructive { + @apply size-9; + } + .btn-sm, + .btn-sm-primary, + .btn-sm-secondary, + .btn-sm-outline, + .btn-sm-ghost, + .btn-sm-link, + .btn-sm-destructive { + @apply gap-1.5 h-8 px-3 has-[>svg]:px-2.5; + } + .btn-sm-icon, + .btn-sm-icon-primary, + .btn-sm-icon-secondary, + .btn-sm-icon-outline, + .btn-sm-icon-ghost, + .btn-sm-icon-link, + .btn-sm-icon-destructive { + @apply size-8; + } + .btn-lg, + .btn-lg-primary, + .btn-lg-secondary, + .btn-lg-outline, + .btn-lg-ghost, + .btn-lg-link, + .btn-lg-destructive { + @apply gap-2 h-10 px-6 has-[>svg]:px-4; + } + .btn-lg-icon, + .btn-lg-icon-primary, + .btn-lg-icon-secondary, + .btn-lg-icon-outline, + .btn-lg-icon-ghost, + .btn-lg-icon-link, + .btn-lg-icon-destructive { + @apply size-10; + } + .btn, + .btn-primary, + .btn-sm, + .btn-sm-primary, + .btn-lg, + .btn-lg-primary, + .btn-icon, + .btn-icon-primary, + .btn-sm-icon, + .btn-sm-icon-primary, + .btn-lg-icon, + .btn-lg-icon-primary { + @apply bg-primary text-primary-foreground shadow-xs hover:bg-primary/90; + &[aria-pressed="true"] { + @apply bg-primary/90; + } + } + .btn-secondary, + .btn-sm-secondary, + .btn-lg-secondary, + .btn-icon-secondary, + .btn-sm-icon-secondary, + .btn-lg-icon-secondary { + @apply bg-secondary text-secondary-foreground shadow-xs; + &:hover, + &[aria-pressed="true"] { + @apply bg-secondary/80; + } + } + .btn-outline, + .btn-sm-outline, + .btn-lg-outline, + .btn-icon-outline, + .btn-sm-icon-outline, + .btn-lg-icon-outline { + @apply border bg-background shadow-xs dark:bg-input/30 dark:border-input; + &:hover, + &[aria-pressed="true"] { + @apply bg-accent text-accent-foreground dark:bg-accent/50; + } + } + .btn-ghost, + .btn-sm-ghost, + .btn-lg-ghost, + .btn-icon-ghost, + .btn-sm-icon-ghost, + .btn-lg-icon-ghost { + &:hover, + &[aria-pressed="true"] { + @apply bg-accent text-accent-foreground dark:bg-accent/50; + } + } + .btn-link, + .btn-sm-link, + .btn-lg-link, + .btn-icon-link, + .btn-sm-icon-link, + .btn-lg-icon-link { + @apply text-primary underline-offset-4; + &:hover, + &[aria-pressed="true"] { + @apply hover:underline; + } + } + .btn-destructive, + .btn-sm-destructive, + .btn-lg-destructive, + .btn-icon-destructive, + .btn-sm-icon-destructive, + .btn-lg-icon-destructive { + @apply text-white bg-destructive shadow-xs focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60; + &:hover, + &[aria-pressed="true"] { + @apply bg-destructive/90 dark:bg-destructive/50; + } + } +} + +/* Button Group */ +@layer components { + .button-group { + @apply inline-flex items-stretch w-fit; + /* isolate */ + + > *:focus-visible, + > :is(.dropdown-menu, .popover, .select) > button:focus-visible { + @apply relative z-10; + } + + > hr[role="separator"] { + @apply self-stretch w-0 h-auto m-0 border border-input shrink-0; + } + + &:not([data-orientation="vertical"]) { + > *:not(:first-child), + > :is(.dropdown-menu, .popover, .select):not(:first-child) > button { + @apply border-l-0 rounded-l-none; + } + > *:not(:last-child), + > :is(.dropdown-menu, .popover, .select):not(:last-child) > button { + @apply rounded-r-none; + } + } + &[data-orientation="vertical"] { + @apply flex-col; + + > hr[role="separator"] { + @apply w-auto h-px; + } + + > *:not(:first-child), + > :is(.dropdown-menu, .popover, .select):not(:first-child) > button { + @apply border-t-0 rounded-t-none; + } + > *:not(:last-child), + > :is(.dropdown-menu, .popover, .select):not(:last-child) > button { + @apply rounded-b-none; + } + } + } +} + +/* Card */ +@layer components { + .card { + @apply flex flex-col py-6 border bg-card text-card-foreground gap-6 rounded-xl shadow-sm; + + > header { + @apply @container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6; + /* TODO: CLEAN has-data-[slot=card-action] */ + + h2 { + @apply font-semibold leading-none; + } + p { + @apply text-sm text-muted-foreground; + } + } + > section { + @apply px-6; + } + > footer { + @apply flex items-center px-6 [.border-t]:pt-6; + } + } +} + +/* Checkbox */ +@layer components { + :is(.form, .field) input[type="checkbox"]:not([role="switch"]), + .input[type="checkbox"]:not([role="switch"]) { + @apply appearance-none border-input dark:bg-input/30 checked:bg-primary dark:checked:bg-primary checked:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50; + + &:checked:after { + @apply content-[''] block size-3.5 bg-primary-foreground; + @apply mask-[image:var(--check-icon)] mask-size-[0.875rem] mask-no-repeat mask-center; + } + } +} + +/* Collapsible */ +@layer components { + details { + &::details-content { + block-size: 0; + @apply block opacity-0 transition-discrete transition-all; + } + &[open]::details-content { + block-size: auto; + block-size: calc-size(auto, size); + @apply opacity-100; + } + summary { + @apply inline-flex items-center cursor-pointer; + } + } + details > summary::-webkit-details-marker { + display: none; + } +} + +/* Command */ +@layer components { + .command-dialog { + @apply inset-y-0 opacity-0 transition-all transition-discrete; + + &:is([open], :popover-open) { + @apply opacity-100; + + &::backdrop { + @apply opacity-100; + } + > * { + @apply scale-100; + } + + @starting-style { + @apply opacity-0; + + &::backdrop { + @apply opacity-0; + } + > * { + @apply scale-95; + } + } + } + &::backdrop { + @apply opacity-0 bg-black/50 transition-all transition-discrete; + } + > * { + @apply bg-background fixed top-[50%] left-[50%] z-50 flex flex-col w-full max-w-[calc(100%_-_2rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg border shadow-lg sm:max-w-lg max-h-[min(640px,calc(100%_-_2rem))]; + @apply transition-all scale-95; + + > button, + > form[method="dialog"] { + @apply absolute top-4 right-4; + } + > button, + > form[method="dialog"] > button { + @apply ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4; + } + } + + .command { + > header input { + @apply h-12; + } + [role="menu"] { + @apply px-2; + + [role="menuitem"] { + @apply py-3 px-2 [&_svg]:size-5; + } + [role="heading"] { + @apply px-2 font-medium py-1.5 text-muted-foreground; + } + } + } + } + + .command { + > header { + @apply flex items-center px-3 border-b gap-2; + + svg { + @apply opacity-50 size-4 shrink-0; + } + input { + @apply flex w-full h-10 py-3 text-sm bg-transparent placeholder:text-muted-foreground rounded-md outline-hidden disabled:cursor-not-allowed disabled:opacity-50; + } + } + [role="menu"] { + @apply max-h-[300px] overflow-y-auto overflow-x-hidden p-1; + + [role="menuitem"] { + @apply aria-hidden:hidden relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none aria-disabled:opacity-50 aria-disabled:pointer-events-none disabled:opacity-50 disabled:pointer-events-none w-full truncate [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4; + + &.active { + @apply bg-accent text-accent-foreground; + } + } + [role="heading"] { + @apply flex px-2 text-xs font-medium text-muted-foreground py-1.5; + } + [role="group"]:not(:has([role="menuitem"]:not([aria-hidden="true"]))) { + @apply hidden; + } + [role="separator"] { + @apply my-1 -mx-1 border-border; + } + &:not(:has([role="menuitem"]:not([aria-hidden="true"])))::before { + @apply flex items-center justify-center px-3 py-6 -m-1 text-sm truncate; + } + &[data-empty]:not( + :has([role="menuitem"]:not([aria-hidden="true"])) + )::before { + @apply content-[attr(data-empty)]; + } + &:not([data-empty]):not( + :has([role="menuitem"]:not([aria-hidden="true"])) + )::before { + @apply content-['No_results_found']; + } + } + &:not([data-command-initialized]) [role="menuitem"] { + @apply hover:bg-accent hover:text-accent-foreground; + } + &:has(> header input:not(:placeholder-shown)) [role="separator"] { + @apply hidden; + } + } +} + +/* Dialog */ +@layer components { + .dialog { + @apply inset-y-0 opacity-0 transition-all transition-discrete; + + &:is([open], :popover-open) { + @apply opacity-100; + + &::backdrop { + @apply opacity-100; + } + > * { + @apply scale-100; + } + + @starting-style { + @apply opacity-0; + + &::backdrop { + @apply opacity-0; + } + > * { + @apply scale-95; + } + } + } + &::backdrop { + @apply opacity-0 bg-black/50 transition-all transition-discrete; + } + > * { + @apply bg-background fixed top-[50%] left-[50%] z-50 flex flex-col w-full max-w-[calc(100%_-_2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg sm:max-w-lg max-h-[calc(100%_-_2rem)]; + @apply transition-all scale-95; + + > header { + @apply flex flex-col text-center gap-2 sm:text-left; + + > h2 { + @apply text-lg font-semibold leading-none; + } + > p { + @apply text-sm text-muted-foreground; + } + } + > section { + @apply flex-1 px-6 -mx-6; + } + > footer { + @apply flex flex-col-reverse gap-2 sm:flex-row sm:justify-end; + } + > button, + > form[method="dialog"] { + @apply absolute top-4 right-4; + } + > button, + > form[method="dialog"] > button { + @apply ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4; + } + } + } +} + +/* Dropdown Menu */ +@layer components { + .dropdown-menu { + @apply relative inline-flex; + + [data-popover] { + @apply p-1; + min-width: anchor-size(width); + + [role="menuitem"], + [role="menuitemcheckbox"], + [role="menuitemradio"] { + @apply aria-hidden:hidden [&_svg]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none [&_svg]:shrink-0 [&_svg]:size-4 aria-disabled:opacity-50 aria-disabled:pointer-events-none disabled:opacity-50 disabled:pointer-events-none w-full truncate; + + &:not([aria-disabled="true"]) { + @apply focus-visible:bg-accent focus-visible:text-accent-foreground; + } + + &.active { + @apply bg-accent text-accent-foreground; + } + } + [role="menu"] [role="heading"] { + @apply flex px-2 text-sm font-medium py-1.5; + } + [role="separator"] { + @apply my-1 -mx-1 border-border; + } + } + &:not([data-dropdown-menu-initialized]) [data-popover] { + [role="menuitem"], + [role="menuitemcheckbox"], + [role="menuitemradio"] { + @apply hover:bg-accent hover:text-accent-foreground; + } + } + } +} + +/* Field */ +@layer components { + .fieldset { + @apply flex flex-col gap-6; + + > legend { + @apply mb-3 text-base font-medium; + } + } + .field { + @apply flex flex-col w-full gap-3 data-[invalid=true]:text-destructive [&>*]:w-full [&>.sr-only]:w-auto; + + h2, + h3 { + @apply flex items-center text-sm font-medium leading-snug w-fit gap-2; + } + [role="alert"] { + @apply text-sm font-normal text-destructive; + + ul { + @apply flex flex-col ml-4 list-disc gap-1; + } + } + section { + @apply flex flex-col flex-1 leading-snug gap-1.5; + } + + &[data-orientation="horizontal"] { + @apply flex-row items-center [&>label]:flex-auto has-[>section]:items-start has-[>section]:[&>[type=checkbox],[type=radio]]:mt-px [&_p]:text-balance; + } + } + .fieldset legend + p, + .field > p, + .field section > p { + @apply text-muted-foreground text-sm leading-normal font-normal [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4; + } + .fieldset legend + p { + @apply -mt-1.5; + } + .field > p { + @apply last:mt-0 nth-last-2:-mt-1; + } +} + +/* Input */ +@layer components { + :is(.form, .field) + input[type="text"]:not( + :is( + .select [data-popover] > header input[role="combobox"], + .command > header input, + .dialog > * > header input + ) + ), + :is(.form, .field) input[type="email"], + :is(.form, .field) input[type="password"], + :is(.form, .field) input[type="number"], + :is(.form, .field) input[type="file"], + :is(.form, .field) input[type="tel"], + :is(.form, .field) input[type="url"], + :is(.form, .field) + input[type="search"]:not( + :is( + .select [data-popover] > header input[role="combobox"], + .command > header input, + .dialog > * > header input + ) + ), + :is(.form, .field) input[type="date"], + :is(.form, .field) input[type="datetime-local"], + :is(.form, .field) input[type="month"], + :is(.form, .field) input[type="week"], + :is(.form, .field) input[type="time"], + .input[type="text"], + .input[type="email"], + .input[type="password"], + .input[type="number"], + .input[type="file"], + .input[type="tel"], + .input[type="url"], + .input[type="search"], + .input[type="date"], + .input[type="datetime-local"], + .input[type="month"], + .input[type="week"], + .input[type="time"] { + @apply appearance-none file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm; + @apply focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]; + @apply aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive; + } +} + +/* Kbd */ +@layer components { + .kbd { + @apply bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3; + } +} + +/* Label */ +@layer components { + :is(.form, .field) label, + .label { + @apply flex items-center text-sm font-medium leading-none select-none gap-2 peer-disabled:pointer-events-none peer-disabled:opacity-50; + + &:has(> *:disabled), + &:has(+ *:disabled) { + @apply opacity-50 pointer-events-none; + } + } +} + +/* Popover */ +@layer components { + [data-popover] { + @apply absolute z-50 visible min-w-full overflow-x-hidden overflow-y-auto border shadow-md opacity-100 bg-popover text-popover-foreground rounded-md scale-100 w-max transition-all; + + &[aria-hidden="true"] { + @apply invisible opacity-0 scale-95; + + &:not([data-side]), + &[data-side="bottom"] { + @apply -translate-y-2; + } + &[data-side="top"] { + @apply translate-y-2; + } + &[data-side="left"] { + @apply translate-x-2; + } + &[data-side="right"] { + @apply -translate-x-2; + } + } + &:not([data-side]), + &[data-side="bottom"] { + @apply mt-1 top-full; + } + &[data-side="top"] { + @apply mb-1 bottom-full; + } + &[data-side="left"] { + @apply mr-1 right-full; + } + &[data-side="right"] { + @apply ml-1 left-full; + } + &:not([data-side]), + &[data-side="bottom"], + &[data-side="top"] { + &:not([data-align]), + &[data-align="start"] { + @apply left-0; + } + &[data-align="end"] { + @apply right-0; + } + &[data-align="center"] { + @apply left-1/2 -translate-x-1/2; + } + } + &[data-side="left"], + &[data-side="right"] { + &:not([data-align]), + &[data-align="start"] { + @apply top-0; + } + &[data-align="end"] { + @apply bottom-0; + } + &[data-align="center"] { + @apply top-1/2 -translate-y-1/2; + } + } + } + .popover { + @apply relative inline-flex; + + [data-popover] { + @apply p-4; + } + } +} + +/* Radio */ +@layer components { + :is(.form, .field) input[type="radio"], + .input[type="radio"] { + @apply appearance-none border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 relative; + + &:checked:before { + @apply absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 content-[''] rounded-full size-2 bg-primary; + } + } +} + +/* Range */ +@layer components { + :is(.form, .field) input[type="range"], + .input[type="range"] { + @apply flex items-center p-0 outline-none appearance-none; + --slider-value: 20%; + + &:hover, + &:focus-visible { + &::-webkit-slider-thumb { + @apply ring-4; + } + &::-moz-range-thumb { + @apply ring-4; + } + &::-ms-thumb { + @apply ring-4; + } + } + + &::-webkit-slider-thumb { + @apply block border rounded-full appearance-none border-primary bg-background ring-ring/50 size-4 shrink-0 shadow-sm -mt-1.25; + } + &::-webkit-slider-runnable-track { + @apply w-full rounded-full appearance-none h-1.5; + background: linear-gradient( + to right, + var(--primary) var(--slider-value), + var(--muted) var(--slider-value) + ); + } + &::-moz-range-thumb { + @apply block border rounded-full appearance-none border-primary bg-background ring-ring/50 size-4 shrink-0 shadow-sm -mt-1.25; + } + &::-moz-range-track { + @apply w-full rounded-full appearance-none h-1.5; + background: linear-gradient( + to right, + var(--primary) var(--slider-value), + var(--muted) var(--slider-value) + ); + } + &::-ms-thumb { + @apply block border rounded-full appearance-none border-primary bg-background ring-ring/50 size-4 shrink-0 shadow-sm -mt-1.25; + } + &::-ms-track { + @apply w-full rounded-full appearance-none h-1.5; + } + &::-ms-fill-lower { + @apply rounded-full bg-primary; + } + &::-ms-fill-upper { + @apply rounded-full bg-muted; + } + } +} + +/* Select */ +@layer components { + :is(.form, .field) select, + select.select { + @apply appearance-none border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent pl-3 pr-9 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 h-9; + @apply bg-[image:var(--chevron-down-icon-50)] bg-no-repeat bg-position-[center_right_0.75rem] bg-size-[1rem]; + + option, + optgroup { + @apply bg-popover text-popover-foreground; + } + } + *:not(select).select { + @apply relative inline-flex; + + & > button { + @apply justify-between font-normal; + + &[aria-invalid="true"] { + @apply ring-destructive/20 dark:ring-destructive/40 border-destructive; + } + } + + [data-popover] { + @apply p-1; + + [role="option"] { + @apply aria-hidden:hidden [&_svg]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm pl-2 py-1.5 pr-7.5 text-sm outline-hidden select-none [&_svg]:shrink-0 [&_svg]:size-4 aria-disabled:opacity-50 aria-disabled:pointer-events-none disabled:opacity-50 disabled:pointer-events-none w-full truncate; + + &[aria-selected="true"] { + @apply bg-[image:var(--check-icon)] bg-no-repeat bg-position-[center_right_0.5rem] bg-size-[0.875rem]; + } + &.active, + &:focus-visible { + @apply bg-accent text-accent-foreground; + } + } + [role="listbox"] [role="heading"] { + @apply flex px-2 text-xs text-muted-foreground py-1.5; + } + [role="listbox"] + [role="group"]:not(:has([role="option"]:not([aria-hidden="true"]))) { + @apply hidden; + } + [role="separator"] { + @apply my-1 -mx-1 border-border; + } + > header { + @apply flex items-center px-3 mb-1 -mx-1 -mt-1 border-b h-9 gap-2; + + svg { + @apply opacity-50 size-4 shrink-0; + } + input[role="combobox"] { + @apply flex flex-1 w-full h-10 min-w-0 py-3 text-sm bg-transparent placeholder:text-muted-foreground rounded-md outline-hidden disabled:cursor-not-allowed disabled:opacity-50; + } + } + [role="listbox"]:not( + :has([data-value]:not([aria-hidden="true"])) + )::before { + @apply flex items-center justify-center p-6 text-sm truncate; + } + [role="listbox"][data-empty]:not( + :has([data-value]:not([aria-hidden="true"])) + )::before { + @apply content-[attr(data-empty)]; + } + [role="listbox"]:not([data-empty]):not( + :has([data-value]:not([aria-hidden="true"])) + )::before { + @apply content-['No_results_found']; + } + } + [data-popover]:has(> header input:not(:placeholder-shown)) + [role="separator"] { + @apply hidden; + } + &:not([data-select-initialized]) [data-popover] [role="option"] { + @apply hover:bg-accent hover:text-accent-foreground; + } + } +} + +/* Sidebar */ +@layer components { + .sidebar { + &:not([data-sidebar-initialized]) { + @apply max-md:hidden; + } + &:not([aria-hidden]), + &[aria-hidden="false"] { + @apply max-md:bg-black/50 max-md:fixed max-md:inset-0 max-md:z-40; + } + nav { + @apply bg-sidebar text-sidebar-foreground flex flex-col w-(--sidebar-mobile-width) md:w-(--sidebar-width) fixed inset-y-0 z-50 transition-transform ease-in-out duration-300; + } + & + * { + @apply transition-[margin] ease-in-out duration-300; + } + &:not([data-side]), + &[data-side="left"] { + nav { + @apply left-0 border-r; + } + & + * { + @apply relative md:ml-(--sidebar-width); + } + &[aria-hidden="true"] { + nav { + @apply -translate-x-full; + } + & + * { + @apply md:ml-0; + } + } + } + &[data-side="right"] { + nav { + @apply right-0 border-l; + } + & + * { + @apply relative md:mr-(--sidebar-width); + } + &[aria-hidden="true"] { + nav { + @apply translate-x-full; + } + & + * { + @apply md:mr-0; + } + } + } + nav { + > header, + > footer { + @apply flex flex-col p-2 gap-2; + } + [role="separator"] { + @apply w-auto mx-2 border-sidebar-border; + } + > section { + @apply flex flex-col flex-1 min-h-0 overflow-y-auto gap-2; + + > [role="group"] { + @apply relative flex flex-col w-full min-w-0 p-2; + } + h3 { + @apply text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0; + } + ul { + @apply flex flex-col w-full min-w-0 gap-1; + + li { + @apply relative; + + > a, + > details > summary { + @apply flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&[aria-current=page]]:bg-sidebar-accent [&[aria-current=page]]:font-medium [&[aria-current=page]]:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0; + + &:not([data-variant]), + &[data-variant="default"] { + @apply hover:bg-sidebar-accent hover:text-sidebar-accent-foreground; + } + &[data-variant="outline"] { + @apply bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]; + } + &:not([data-size]), + &[data-size="default"] { + @apply h-8 text-sm; + } + &[data-size="sm"] { + @apply text-xs h-7; + } + &[data-size="lg"] { + @apply h-12 text-sm group-data-[collapsible=icon]:p-0!; + } + } + > details { + &:not([open]) { + > summary { + &::after { + @apply -rotate-90; + } + } + } + > summary { + &::after { + @apply content-[''] block size-3.5 bg-primary ml-auto transition-transform ease-linear; + @apply mask-[image:var(--chevron-down-icon)] mask-size-[1rem] mask-no-repeat mask-center; + } + } + &::details-content { + @apply px-3.5; + } + } + } + ul { + @apply flex flex-col w-full min-w-0 border-l border-sidebar-border translate-x-px gap-1 px-2.5 py-0.5; + } + } + } + } + } +} + +/* Switch */ +@layer components { + :is(.form, .field) input[type="checkbox"][role="switch"], + .input[type="checkbox"][role="switch"] { + @apply appearance-none focus-visible:border-ring focus-visible:ring-ring/50 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50; + @apply bg-input dark:bg-input/80 checked:bg-primary dark:checked:bg-primary; + @apply before:content-[''] before:pointer-events-none before:block before:size-4 before:rounded-full before:ring-0 before:transition-all; + @apply before:bg-background dark:before:bg-foreground; + @apply dark:checked:before:bg-primary-foreground checked:before:ms-3.5; + } +} + +/* Tables */ +@layer components { + .table { + @apply w-full text-sm caption-bottom; + thead { + @apply [&_tr]:border-b; + } + tbody { + @apply [&_tr:last-child]:border-0; + } + tfoot { + @apply bg-muted/50 border-t font-medium [&>tr]:last:border-b-0; + } + tr { + @apply border-b hover:bg-muted/50 transition-colors; + } + th { + @apply text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]; + } + td { + @apply p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]; + } + caption { + @apply mt-4 text-sm text-muted-foreground; + } + } +} + +/* Tabs */ +@layer components { + .tabs { + @apply flex flex-col gap-2; + + [role="tablist"] { + @apply bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]; + + [role="tab"] { + @apply focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground dark:text-muted-foreground inline-flex h-[calc(100%_-_1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4; + + &[aria-selected="true"] { + @apply bg-background dark:text-foreground dark:border-input dark:bg-input/30 shadow-sm; + } + } + } + [role="tabpanel"] { + @apply flex-1 outline-none; + } + } +} + +/* Textarea */ +@layer components { + :is(.form, .field) textarea, + .textarea { + @apply border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm; + } +} + +/* Toasts */ +@layer components { + .toaster { + @apply fixed bottom-0 z-50 flex flex-col-reverse w-full p-4 pointer-events-none sm:max-w-90; + + &:not([data-align]), + &[data-align="end"] { + @apply right-0; + } + &[data-align="start"] { + @apply left-0; + } + &[data-align="center"] { + @apply left-1/2 -translate-x-1/2; + } + .toast { + @apply pointer-events-auto w-full mt-4 animate-[toast-up_0.3s_ease-in-out] grid grid-rows-[1fr] transition-[grid-template-rows,opacity,margin] duration-300 ease-in-out; + + .toast-content { + @apply text-popover-foreground text-[13px] bg-popover border shadow-lg rounded-lg overflow-hidden flex gap-2.5 p-3 items-center; + + svg { + @apply size-4 shrink-0; + } + section { + h2 { + @apply font-medium tracking-tight; + } + p { + @apply break-all text-muted-foreground; + } + } + footer { + @apply flex flex-col ml-auto gap-2; + + [data-toast-action], + [data-toast-cancel] { + @apply h-6 text-xs px-2.5; + } + } + } + &[aria-hidden="true"] { + @apply grid-rows-[0fr] opacity-0 m-0 border-0 p-0 overflow-hidden; + + .toast-content { + @apply border-0; + } + } + } + } +} +@keyframes toast-up { + from { + opacity: 0; + transform: translateY(100%); + } +} + +/* Tooltip */ +@layer components { + [data-tooltip] { + @apply relative; + + &:before { + @apply absolute content-[attr(data-tooltip)] bg-foreground text-background z-[60] truncate max-w-xs w-fit rounded-md px-3 py-1.5 text-xs invisible opacity-0 scale-95 transition-all pointer-events-none; + } + &:hover:before { + @apply visible opacity-100 scale-100; + } + &:focus-visible:not(:hover):before { + @apply hidden; + } + &:not([data-side]), + &[data-side="top"] { + @apply before:bottom-full before:mb-1.5 before:translate-y-2 hover:before:translate-y-0; + } + &[data-side="bottom"] { + @apply before:top-full before:mt-1.5 before:-translate-y-2 hover:before:translate-y-0; + } + &:not([data-side]), + &[data-side="top"], + &[data-side="bottom"] { + &[data-align="start"] { + @apply before:left-0; + } + &[data-align="end"] { + @apply before:right-0; + } + &:not([data-align]), + &[data-align="center"] { + @apply before:left-1/2 before:-translate-x-1/2; + } + } + &[data-side="left"] { + @apply before:right-full before:mr-1.5 before:translate-x-2 hover:before:translate-x-0; + } + &[data-side="right"] { + @apply before:left-full before:ml-1.5 before:-translate-x-2 hover:before:translate-x-0; + } + &[data-side="left"], + &[data-side="right"] { + &[data-align="start"] { + @apply before:top-0; + } + &[data-align="end"] { + @apply before:bottom-0; + } + &:not([data-align]), + &[data-align="center"] { + @apply before:top-1/2 before:-translate-y-1/2; + } + } + } +} diff --git a/lib/tailwind-input.css b/lib/tailwind-input.css new file mode 100644 index 0000000..adff87c --- /dev/null +++ b/lib/tailwind-input.css @@ -0,0 +1,468 @@ +@import "tailwindcss" source(none); +@import "./basecoat.css"; +@source "./"; +@source "../client"; +@source "../shared"; +@source "../server"; + +.theme-tangerine { + &:root { + --background: oklch(0.9383 0.0042 236.4993); + --foreground: oklch(0.3211 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.3211 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.3211 0 0); + --primary: oklch(0.6397 0.172 36.4421); + --primary-foreground: oklch(1 0 0); + --secondary: oklch(0.967 0.0029 264.5419); + --secondary-foreground: oklch(0.4461 0.0263 256.8018); + --muted: oklch(0.9846 0.0017 247.8389); + --muted-foreground: oklch(0.551 0.0234 264.3637); + --accent: oklch(0.9119 0.0222 243.8174); + --accent-foreground: oklch(0.3791 0.1378 265.5222); + --destructive: oklch(0.6368 0.2078 25.3313); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.9022 0.0052 247.8822); + --input: oklch(0.97 0.0029 264.542); + --ring: oklch(0.6397 0.172 36.4421); + --chart-1: oklch(0.7156 0.0605 248.6845); + --chart-2: oklch(0.7875 0.0917 35.9616); + --chart-3: oklch(0.5778 0.0759 254.1573); + --chart-4: oklch(0.5016 0.0849 259.4902); + --chart-5: oklch(0.4241 0.0952 264.0306); + --sidebar: oklch(0.903 0.0046 258.3257); + --sidebar-foreground: oklch(0.3211 0 0); + --sidebar-primary: oklch(0.6397 0.172 36.4421); + --sidebar-primary-foreground: oklch(1 0 0); + --sidebar-accent: oklch(0.9119 0.0222 243.8174); + --sidebar-accent-foreground: oklch(0.3791 0.1378 265.5222); + --sidebar-border: oklch(0.9276 0.0058 264.5313); + --sidebar-ring: oklch(0.6397 0.172 36.4421); + --font-sans: Inter, sans-serif; + --font-serif: Source Serif 4, serif; + --font-mono: JetBrains Mono, monospace; + --radius: 0.75rem; + --shadow-x: 0px; + --shadow-y: 1px; + --shadow-blur: 3px; + --shadow-spread: 0px; + --shadow-opacity: 0.1; + --shadow-color: hsl(0 0% 0%); + --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 2px 4px -1px hsl(0 0% 0% / 0.1); + --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 4px 6px -1px hsl(0 0% 0% / 0.1); + --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 8px 10px -1px hsl(0 0% 0% / 0.1); + --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.25); + --tracking-normal: 0em; + --spacing: 0.25rem; + } + + &.dark { + --background: oklch(0.2598 0.0306 262.6666); + --foreground: oklch(0.9219 0 0); + --card: oklch(0.3106 0.0301 268.6365); + --card-foreground: oklch(0.9219 0 0); + --popover: oklch(0.29 0.0249 268.3986); + --popover-foreground: oklch(0.9219 0 0); + --primary: oklch(0.6397 0.172 36.4421); + --primary-foreground: oklch(1 0 0); + --secondary: oklch(0.3095 0.0266 266.7132); + --secondary-foreground: oklch(0.9219 0 0); + --muted: oklch(0.3095 0.0266 266.7132); + --muted-foreground: oklch(0.7155 0 0); + --accent: oklch(0.338 0.0589 267.5867); + --accent-foreground: oklch(0.8823 0.0571 254.1284); + --destructive: oklch(0.6368 0.2078 25.3313); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.3843 0.0301 269.7337); + --input: oklch(0.3843 0.0301 269.7337); + --ring: oklch(0.6397 0.172 36.4421); + --chart-1: oklch(0.7156 0.0605 248.6845); + --chart-2: oklch(0.7693 0.0876 34.1875); + --chart-3: oklch(0.5778 0.0759 254.1573); + --chart-4: oklch(0.5016 0.0849 259.4902); + --chart-5: oklch(0.4241 0.0952 264.0306); + --sidebar: oklch(0.31 0.0283 267.7408); + --sidebar-foreground: oklch(0.9219 0 0); + --sidebar-primary: oklch(0.6397 0.172 36.4421); + --sidebar-primary-foreground: oklch(1 0 0); + --sidebar-accent: oklch(0.338 0.0589 267.5867); + --sidebar-accent-foreground: oklch(0.8823 0.0571 254.1284); + --sidebar-border: oklch(0.3843 0.0301 269.7337); + --sidebar-ring: oklch(0.6397 0.172 36.4421); + --font-sans: Inter, sans-serif; + --font-serif: Source Serif 4, serif; + --font-mono: JetBrains Mono, monospace; + --radius: 0.75rem; + --shadow-x: 0px; + --shadow-y: 1px; + --shadow-blur: 3px; + --shadow-spread: 0px; + --shadow-opacity: 0.1; + --shadow-color: hsl(0 0% 0%); + --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 2px 4px -1px hsl(0 0% 0% / 0.1); + --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 4px 6px -1px hsl(0 0% 0% / 0.1); + --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), + 0px 8px 10px -1px hsl(0 0% 0% / 0.1); + --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.25); + } +} + +.theme-cosmic { + &:root { + --background: oklch(0.973 0.0133 286.1503); + --foreground: oklch(0.3015 0.0572 282.4176); + --card: oklch(1 0 0); + --card-foreground: oklch(0.3015 0.0572 282.4176); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.3015 0.0572 282.4176); + --primary: oklch(0.5417 0.179 288.0332); + --primary-foreground: oklch(1 0 0); + --secondary: oklch(0.9174 0.0435 292.6901); + --secondary-foreground: oklch(0.4143 0.1039 288.1742); + --muted: oklch(0.958 0.0133 286.1454); + --muted-foreground: oklch(0.5426 0.0465 284.7435); + --accent: oklch(0.9221 0.0373 262.141); + --accent-foreground: oklch(0.3015 0.0572 282.4176); + --destructive: oklch(0.6861 0.2061 14.9941); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.9115 0.0216 285.9625); + --input: oklch(0.9115 0.0216 285.9625); + --ring: oklch(0.5417 0.179 288.0332); + --chart-1: oklch(0.5417 0.179 288.0332); + --chart-2: oklch(0.7042 0.1602 288.988); + --chart-3: oklch(0.5679 0.2113 276.7065); + --chart-4: oklch(0.6356 0.1922 281.8054); + --chart-5: oklch(0.4509 0.1758 279.3838); + --sidebar: oklch(0.958 0.0133 286.1454); + --sidebar-foreground: oklch(0.3015 0.0572 282.4176); + --sidebar-primary: oklch(0.5417 0.179 288.0332); + --sidebar-primary-foreground: oklch(1 0 0); + --sidebar-accent: oklch(0.9221 0.0373 262.141); + --sidebar-accent-foreground: oklch(0.3015 0.0572 282.4176); + --sidebar-border: oklch(0.9115 0.0216 285.9625); + --sidebar-ring: oklch(0.5417 0.179 288.0332); + --font-sans: Inter, sans-serif; + --font-serif: Georgia, serif; + --font-mono: JetBrains Mono, monospace; + --radius: 0.5rem; + --shadow-x: 0px; + --shadow-y: 4px; + --shadow-blur: 10px; + --shadow-spread: 0px; + --shadow-opacity: 0.12; + --shadow-color: hsl(240 30% 25%); + --shadow-2xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); + --shadow-xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); + --shadow-sm: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 1px 2px -1px hsl(240 30% 25% / 0.12); + --shadow: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 1px 2px -1px hsl(240 30% 25% / 0.12); + --shadow-md: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 2px 4px -1px hsl(240 30% 25% / 0.12); + --shadow-lg: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 4px 6px -1px hsl(240 30% 25% / 0.12); + --shadow-xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 8px 10px -1px hsl(240 30% 25% / 0.12); + --shadow-2xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.3); + --tracking-normal: 0em; + --spacing: 0.25rem; + } + + &.dark { + --background: oklch(0.1743 0.0227 283.7998); + --foreground: oklch(0.9185 0.0257 285.8834); + --card: oklch(0.2284 0.0384 282.9324); + --card-foreground: oklch(0.9185 0.0257 285.8834); + --popover: oklch(0.2284 0.0384 282.9324); + --popover-foreground: oklch(0.9185 0.0257 285.8834); + --primary: oklch(0.7162 0.1597 290.3962); + --primary-foreground: oklch(0.1743 0.0227 283.7998); + --secondary: oklch(0.3139 0.0736 283.4591); + --secondary-foreground: oklch(0.8367 0.0849 285.9111); + --muted: oklch(0.271 0.0621 281.4377); + --muted-foreground: oklch(0.7166 0.0462 285.1741); + --accent: oklch(0.3354 0.0828 280.9705); + --accent-foreground: oklch(0.9185 0.0257 285.8834); + --destructive: oklch(0.6861 0.2061 14.9941); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.3261 0.0597 282.5832); + --input: oklch(0.3261 0.0597 282.5832); + --ring: oklch(0.7162 0.1597 290.3962); + --chart-1: oklch(0.7162 0.1597 290.3962); + --chart-2: oklch(0.6382 0.1047 274.9117); + --chart-3: oklch(0.7482 0.1235 244.7492); + --chart-4: oklch(0.7124 0.0977 186.6761); + --chart-5: oklch(0.7546 0.1831 346.8124); + --sidebar: oklch(0.2284 0.0384 282.9324); + --sidebar-foreground: oklch(0.9185 0.0257 285.8834); + --sidebar-primary: oklch(0.7162 0.1597 290.3962); + --sidebar-primary-foreground: oklch(0.1743 0.0227 283.7998); + --sidebar-accent: oklch(0.3354 0.0828 280.9705); + --sidebar-accent-foreground: oklch(0.9185 0.0257 285.8834); + --sidebar-border: oklch(0.3261 0.0597 282.5832); + --sidebar-ring: oklch(0.7162 0.1597 290.3962); + --font-sans: Inter, sans-serif; + --font-serif: Georgia, serif; + --font-mono: JetBrains Mono, monospace; + --radius: 0.5rem; + --shadow-x: 0px; + --shadow-y: 4px; + --shadow-blur: 10px; + --shadow-spread: 0px; + --shadow-opacity: 0.12; + --shadow-color: hsl(240 30% 25%); + --shadow-2xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); + --shadow-xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06); + --shadow-sm: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 1px 2px -1px hsl(240 30% 25% / 0.12); + --shadow: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 1px 2px -1px hsl(240 30% 25% / 0.12); + --shadow-md: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 2px 4px -1px hsl(240 30% 25% / 0.12); + --shadow-lg: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 4px 6px -1px hsl(240 30% 25% / 0.12); + --shadow-xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), + 0px 8px 10px -1px hsl(240 30% 25% / 0.12); + --shadow-2xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.3); + } +} + +.theme-claude { + &:root { + --background: oklch(0.98 0.01 95.1); + --foreground: oklch(0.34 0.03 95.72); + --card: oklch(0.98 0.01 95.1); + --card-foreground: oklch(0.19 0 106.59); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.27 0.02 98.94); + --primary: oklch(0.62 0.14 39.04); + --primary-foreground: oklch(1 0 0); + --secondary: oklch(0.92 0.01 92.99); + --secondary-foreground: oklch(0.43 0.02 98.6); + --muted: oklch(0.93 0.02 90.24); + --muted-foreground: oklch(0.61 0.01 97.42); + --accent: oklch(0.92 0.01 92.99); + --accent-foreground: oklch(0.27 0.02 98.94); + --destructive: oklch(0.19 0 106.59); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.88 0.01 97.36); + --input: oklch(0.76 0.02 98.35); + --ring: oklch(0.59 0.17 253.06); + --chart-1: oklch(0.56 0.13 43); + --chart-2: oklch(0.69 0.16 290.41); + --chart-3: oklch(0.88 0.03 93.13); + --chart-4: oklch(0.88 0.04 298.18); + --chart-5: oklch(0.56 0.13 42.06); + --sidebar: oklch(0.97 0.01 98.88); + --sidebar-foreground: oklch(0.36 0.01 106.65); + --sidebar-primary: oklch(0.62 0.14 39.04); + --sidebar-primary-foreground: oklch(0.99 0 0); + --sidebar-accent: oklch(0.92 0.01 92.99); + --sidebar-accent-foreground: oklch(0.33 0 0); + --sidebar-border: oklch(0.94 0 0); + --sidebar-ring: oklch(0.77 0 0); + --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", + "Noto Color Emoji"; + --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + --radius: 0.5rem; + --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 2px 4px -1px hsl(0 0% 0% / 0.1); + --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 4px 6px -1px hsl(0 0% 0% / 0.1); + --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 8px 10px -1px hsl(0 0% 0% / 0.1); + --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); + } + &.dark { + --background: oklch(0.27 0 106.64); + --foreground: oklch(0.81 0.01 93.01); + --card: oklch(0.27 0 106.64); + --card-foreground: oklch(0.98 0.01 95.1); + --popover: oklch(0.31 0 106.6); + --popover-foreground: oklch(0.92 0 106.48); + --primary: oklch(0.67 0.13 38.76); + --primary-foreground: oklch(1 0 0); + --secondary: oklch(0.98 0.01 95.1); + --secondary-foreground: oklch(0.31 0 106.6); + --muted: oklch(0.22 0 106.71); + --muted-foreground: oklch(0.77 0.02 99.07); + --accent: oklch(0.21 0.01 95.42); + --accent-foreground: oklch(0.97 0.01 98.88); + --destructive: oklch(0.64 0.21 25.33); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.36 0.01 106.89); + --input: oklch(0.43 0.01 100.22); + --ring: oklch(0.59 0.17 253.06); + --chart-1: oklch(0.56 0.13 43); + --chart-2: oklch(0.69 0.16 290.41); + --chart-3: oklch(0.21 0.01 95.42); + --chart-4: oklch(0.31 0.05 289.32); + --chart-5: oklch(0.56 0.13 42.06); + --sidebar: oklch(0.24 0 67.71); + --sidebar-foreground: oklch(0.81 0.01 93.01); + --sidebar-primary: oklch(0.33 0 0); + --sidebar-primary-foreground: oklch(0.99 0 0); + --sidebar-accent: oklch(0.17 0 106.62); + --sidebar-accent-foreground: oklch(0.81 0.01 93.01); + --sidebar-border: oklch(0.94 0 0); + --sidebar-ring: oklch(0.77 0 0); + --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", + "Noto Color Emoji"; + --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + --radius: 0.5rem; + --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); + --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 2px 4px -1px hsl(0 0% 0% / 0.1); + --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 4px 6px -1px hsl(0 0% 0% / 0.1); + --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), + 0 8px 10px -1px hsl(0 0% 0% / 0.1); + --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); + } +} + +.theme-supabase { + &:root { + --background: oklch(0.99 0 0); + --foreground: oklch(0.2 0 0); + --card: oklch(0.99 0 0); + --card-foreground: oklch(0.2 0 0); + --popover: oklch(0.99 0 0); + --popover-foreground: oklch(0.44 0 0); + --primary: oklch(0.83 0.13 160.91); + --primary-foreground: oklch(0.26 0.01 166.46); + --secondary: oklch(0.99 0 0); + --secondary-foreground: oklch(0.2 0 0); + --muted: oklch(0.95 0 0); + --muted-foreground: oklch(0.24 0 0); + --accent: oklch(0.95 0 0); + --accent-foreground: oklch(0.24 0 0); + --destructive: oklch(0.55 0.19 32.73); + --destructive-foreground: oklch(0.99 0 17.21); + --border: oklch(0.9 0 0); + --input: oklch(0.9 0 0); + --ring: oklch(0.83 0.13 160.91); + --chart-1: oklch(0.83 0.13 160.91); + --chart-2: oklch(0.62 0.19 259.81); + --chart-3: oklch(0.61 0.22 292.72); + --chart-4: oklch(0.77 0.16 70.08); + --chart-5: oklch(0.7 0.15 162.48); + --sidebar: oklch(0.99 0 0); + --sidebar-foreground: oklch(0.55 0 0); + --sidebar-primary: oklch(0.83 0.13 160.91); + --sidebar-primary-foreground: oklch(0.26 0.01 166.46); + --sidebar-accent: oklch(0.95 0 0); + --sidebar-accent-foreground: oklch(0.24 0 0); + --sidebar-border: oklch(0.9 0 0); + --sidebar-ring: oklch(0.83 0.13 160.91); + --font-sans: Outfit, sans-serif; + --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; + --font-mono: monospace; + --radius: 0.5rem; + --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); + --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); + --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 1px 2px -1px hsl(0 0% 0% / 0.17); + --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 1px 2px -1px hsl(0 0% 0% / 0.17); + --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 2px 4px -1px hsl(0 0% 0% / 0.17); + --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 4px 6px -1px hsl(0 0% 0% / 0.17); + --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 8px 10px -1px hsl(0 0% 0% / 0.17); + --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); + --tracking-normal: 0.025em; + } + &.dark { + --background: oklch(0.18 0 0); + --foreground: oklch(0.93 0.01 255.51); + --card: oklch(0.2 0 0); + --card-foreground: oklch(0.93 0.01 255.51); + --popover: oklch(0.26 0 0); + --popover-foreground: oklch(0.73 0 0); + --primary: oklch(0.44 0.1 156.76); + --primary-foreground: oklch(0.92 0.01 167.16); + --secondary: oklch(0.26 0 0); + --secondary-foreground: oklch(0.99 0 0); + --muted: oklch(0.24 0 0); + --muted-foreground: oklch(0.71 0 0); + --accent: oklch(0.31 0 0); + --accent-foreground: oklch(0.99 0 0); + --destructive: oklch(0.31 0.09 29.79); + --destructive-foreground: oklch(0.94 0 34.31); + --border: oklch(0.28 0 0); + --input: oklch(0.28 0 0); + --ring: oklch(0.8 0.18 151.71); + --chart-1: oklch(0.8 0.18 151.71); + --chart-2: oklch(0.71 0.14 254.62); + --chart-3: oklch(0.71 0.16 293.54); + --chart-4: oklch(0.84 0.16 84.43); + --chart-5: oklch(0.78 0.13 181.91); + --sidebar: oklch(0.18 0 0); + --sidebar-foreground: oklch(0.63 0 0); + --sidebar-primary: oklch(0.44 0.1 156.76); + --sidebar-primary-foreground: oklch(0.92 0.01 167.16); + --sidebar-accent: oklch(0.31 0 0); + --sidebar-accent-foreground: oklch(0.99 0 0); + --sidebar-border: oklch(0.28 0 0); + --sidebar-ring: oklch(0.8 0.18 151.71); + --font-sans: Outfit, sans-serif; + --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; + --font-mono: monospace; + --radius: 0.5rem; + --shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); + --shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.09); + --shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 1px 2px -1px hsl(0 0% 0% / 0.17); + --shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 1px 2px -1px hsl(0 0% 0% / 0.17); + --shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 2px 4px -1px hsl(0 0% 0% / 0.17); + --shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 4px 6px -1px hsl(0 0% 0% / 0.17); + --shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.17), + 0px 8px 10px -1px hsl(0 0% 0% / 0.17); + --shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.43); + } + body { + letter-spacing: var(--tracking-normal); + } +}