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);
+ }
+}