diff --git a/frontend/input.css b/frontend/input.css index b261934..89d9c96 100644 --- a/frontend/input.css +++ b/frontend/input.css @@ -1,5 +1,7 @@ @import "tailwindcss"; @config "./tailwind.config.js"; +@source "../src/**/*.rs"; +@source "/Users/bilal/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/leptos-shadcn-*/src/**/*.rs"; @theme { /* Shadcn Colors */ @@ -41,14 +43,17 @@ from { height: 0; } + to { height: var(--radix-accordion-content-height); } } + @keyframes accordion-up { from { height: var(--radix-accordion-content-height); } + to { height: 0; } @@ -123,17 +128,35 @@ * { @apply border-border; } + body { @apply bg-background text-foreground; } - + /* Ensure Shadcn Utilities are always available */ - .bg-popover { background-color: hsl(var(--popover)); } - .text-popover-foreground { color: hsl(var(--popover-foreground)); } - .border-border { border-color: hsl(var(--border)); } - .shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } - .z-50 { z-index: 50; } - .z-100 { z-index: 100; } + .bg-popover { + background-color: hsl(var(--popover)); + } + + .text-popover-foreground { + color: hsl(var(--popover-foreground)); + } + + .border-border { + border-color: hsl(var(--border)); + } + + .shadow-md { + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + } + + .z-50 { + z-index: 50; + } + + .z-100 { + z-index: 100; + } } /* Fix for iOS click/blur events */ @@ -151,4 +174,4 @@ :focus { outline: none !important; -} +} \ No newline at end of file diff --git a/frontend/public/tailwind.css b/frontend/public/tailwind.css index b06a21b..d48725b 100644 --- a/frontend/public/tailwind.css +++ b/frontend/public/tailwind.css @@ -7,6 +7,7 @@ "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-50: oklch(97.1% 0.013 17.38); --color-red-100: oklch(93.6% 0.032 17.717); --color-red-200: oklch(88.5% 0.062 18.334); --color-red-400: oklch(70.4% 0.191 22.216); @@ -14,15 +15,19 @@ --color-red-700: oklch(50.5% 0.213 27.518); --color-red-800: oklch(44.4% 0.177 26.899); --color-red-900: oklch(39.6% 0.141 25.723); + --color-orange-100: oklch(95.4% 0.038 75.164); + --color-orange-200: oklch(90.1% 0.076 70.697); --color-yellow-50: oklch(98.7% 0.026 102.212); --color-yellow-100: oklch(97.3% 0.071 103.193); --color-yellow-200: oklch(94.5% 0.129 101.54); + --color-yellow-300: oklch(90.5% 0.182 98.111); --color-yellow-400: oklch(85.2% 0.199 91.936); --color-yellow-500: oklch(79.5% 0.184 86.047); --color-yellow-600: oklch(68.1% 0.162 75.834); --color-yellow-700: oklch(55.4% 0.135 66.442); --color-yellow-800: oklch(47.6% 0.114 61.907); --color-yellow-900: oklch(42.1% 0.095 57.708); + --color-green-50: oklch(98.2% 0.018 155.826); --color-green-100: oklch(96.2% 0.044 156.743); --color-green-200: oklch(92.5% 0.084 155.995); --color-green-400: oklch(79.2% 0.209 151.711); @@ -31,6 +36,9 @@ --color-green-700: oklch(52.7% 0.154 150.069); --color-green-800: oklch(44.8% 0.119 151.328); --color-green-900: oklch(39.3% 0.095 152.535); + --color-teal-100: oklch(95.3% 0.051 180.801); + --color-teal-200: oklch(91% 0.096 180.426); + --color-blue-50: oklch(97% 0.014 254.604); --color-blue-100: oklch(93.2% 0.032 255.585); --color-blue-200: oklch(88.2% 0.059 254.128); --color-blue-400: oklch(70.7% 0.165 254.624); @@ -39,27 +47,52 @@ --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-indigo-100: oklch(93% 0.034 272.788); + --color-indigo-200: oklch(87% 0.065 274.039); + --color-purple-100: oklch(94.6% 0.033 307.174); + --color-purple-200: oklch(90.2% 0.063 306.703); + --color-pink-100: oklch(94.8% 0.028 342.258); + --color-pink-200: oklch(89.9% 0.061 343.231); + --color-gray-50: oklch(98.5% 0.002 247.839); + --color-gray-100: oklch(96.7% 0.003 264.542); + --color-gray-200: oklch(92.8% 0.006 264.531); + --color-gray-300: oklch(87.2% 0.01 258.338); + --color-gray-400: oklch(70.7% 0.022 261.325); + --color-gray-600: oklch(44.6% 0.03 256.802); + --color-black: #000; + --color-white: #fff; --spacing: 0.25rem; + --container-xs: 20rem; --container-sm: 24rem; --container-md: 28rem; + --container-lg: 32rem; --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-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); + --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --tracking-tight: -0.025em; + --tracking-wider: 0.05em; + --tracking-widest: 0.1em; --leading-tight: 1.25; + --leading-relaxed: 1.625; --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); --radius-xl: 0.75rem; --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; + --animate-bounce: bounce 1s infinite; --blur-sm: 8px; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); @@ -84,6 +117,8 @@ --color-popover-foreground: hsl(var(--popover-foreground)); --color-card: hsl(var(--card)); --color-card-foreground: hsl(var(--card-foreground)); + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; } } @layer base { @@ -238,6 +273,26 @@ .pointer-events-auto { pointer-events: auto; } + .pointer-events-none { + pointer-events: none; + } + .invisible { + visibility: hidden; + } + .visible { + visibility: visible; + } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; + border-width: 0; + } .absolute { position: absolute; } @@ -253,30 +308,84 @@ .inset-0 { inset: calc(var(--spacing) * 0); } + .inset-x-0 { + inset-inline: calc(var(--spacing) * 0); + } .inset-y-0 { inset-block: 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-4 { + top: calc(var(--spacing) * 4); + } + .top-12 { + top: calc(var(--spacing) * 12); + } + .top-\[50\%\] { + top: 50%; + } + .top-full { + top: 100%; + } .right-0 { right: calc(var(--spacing) * 0); } .right-2 { right: calc(var(--spacing) * 2); } + .right-3 { + right: calc(var(--spacing) * 3); + } + .right-4 { + right: calc(var(--spacing) * 4); + } + .right-12 { + right: calc(var(--spacing) * 12); + } .bottom-0 { bottom: calc(var(--spacing) * 0); } + .bottom-4 { + bottom: calc(var(--spacing) * 4); + } + .bottom-12 { + bottom: calc(var(--spacing) * 12); + } .bottom-full { bottom: 100%; } .left-0 { left: calc(var(--spacing) * 0); } + .left-1\/2 { + left: calc(1/2 * 100%); + } .left-2 { left: calc(var(--spacing) * 2); } + .left-2\.5 { + left: calc(var(--spacing) * 2.5); + } + .left-4 { + left: calc(var(--spacing) * 4); + } + .left-12 { + left: calc(var(--spacing) * 12); + } + .left-\[50\%\] { + left: 50%; + } + .z-10 { + z-index: 10; + } .z-40 { z-index: 40; } @@ -307,9 +416,33 @@ max-width: 96rem; } } + .-mx-1 { + margin-inline: calc(var(--spacing) * -1); + } + .mx-auto { + margin-inline: auto; + } + .my-1 { + margin-block: calc(var(--spacing) * 1); + } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } .mt-2 { margin-top: calc(var(--spacing) * 2); } + .mt-3 { + margin-top: calc(var(--spacing) * 3); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-24 { + margin-top: calc(var(--spacing) * 24); + } + .mt-auto { + margin-top: auto; + } .mr-2 { margin-right: calc(var(--spacing) * 2); } @@ -322,9 +455,15 @@ .mb-4 { margin-bottom: calc(var(--spacing) * 4); } + .mb-24 { + margin-bottom: calc(var(--spacing) * 24); + } .ml-1 { margin-left: calc(var(--spacing) * 1); } + .ml-2 { + margin-left: calc(var(--spacing) * 2); + } .ml-auto { margin-left: auto; } @@ -346,15 +485,33 @@ .hidden { display: none; } + .inline { + display: inline; + } .inline-flex { display: inline-flex; } + .table { + display: table; + } + .aspect-square { + aspect-ratio: 1 / 1; + } + .h-1 { + height: calc(var(--spacing) * 1); + } .h-1\.5 { height: calc(var(--spacing) * 1.5); } .h-2 { height: calc(var(--spacing) * 2); } + .h-2\.5 { + height: calc(var(--spacing) * 2.5); + } + .h-3 { + height: calc(var(--spacing) * 3); + } .h-3\.5 { height: calc(var(--spacing) * 3.5); } @@ -379,9 +536,30 @@ .h-10 { height: calc(var(--spacing) * 10); } + .h-11 { + height: calc(var(--spacing) * 11); + } .h-12 { height: calc(var(--spacing) * 12); } + .h-16 { + height: calc(var(--spacing) * 16); + } + .h-20 { + height: calc(var(--spacing) * 20); + } + .h-32 { + height: calc(var(--spacing) * 32); + } + .h-48 { + height: calc(var(--spacing) * 48); + } + .h-64 { + height: calc(var(--spacing) * 64); + } + .h-96 { + height: calc(var(--spacing) * 96); + } .h-\[48px\] { height: 48px; } @@ -391,12 +569,21 @@ .h-full { height: 100%; } + .h-px { + height: 1px; + } .h-screen { height: 100vh; } + .max-h-60 { + max-height: calc(var(--spacing) * 60); + } .max-h-96 { max-height: calc(var(--spacing) * 96); } + .max-h-\[300px\] { + max-height: 300px; + } .max-h-screen { max-height: 100vh; } @@ -412,9 +599,21 @@ .min-h-screen { min-height: 100vh; } + .w-2 { + width: calc(var(--spacing) * 2); + } + .w-2\.5 { + width: calc(var(--spacing) * 2.5); + } + .w-3 { + width: calc(var(--spacing) * 3); + } .w-3\.5 { width: calc(var(--spacing) * 3.5); } + .w-3\/4 { + width: calc(3/4 * 100%); + } .w-4 { width: calc(var(--spacing) * 4); } @@ -430,12 +629,27 @@ .w-8 { width: calc(var(--spacing) * 8); } + .w-9 { + width: calc(var(--spacing) * 9); + } .w-10 { width: calc(var(--spacing) * 10); } + .w-11 { + width: calc(var(--spacing) * 11); + } .w-12 { width: calc(var(--spacing) * 12); } + .w-14 { + width: calc(var(--spacing) * 14); + } + .w-16 { + width: calc(var(--spacing) * 16); + } + .w-20 { + width: calc(var(--spacing) * 20); + } .w-24 { width: calc(var(--spacing) * 24); } @@ -445,33 +659,67 @@ .w-48 { width: calc(var(--spacing) * 48); } - .w-56 { - width: calc(var(--spacing) * 56); - } .w-64 { width: calc(var(--spacing) * 64); } + .w-\[100px\] { + width: 100px; + } + .w-auto { + width: auto; + } .w-full { width: 100%; } + .w-px { + width: 1px; + } + .max-w-lg { + max-width: var(--container-lg); + } .max-w-md { max-width: var(--container-md); } .max-w-sm { max-width: var(--container-sm); } + .max-w-xs { + max-width: var(--container-xs); + } .min-w-0 { min-width: calc(var(--spacing) * 0); } .min-w-\[8rem\] { min-width: 8rem; } + .min-w-\[12rem\] { + min-width: 12rem; + } .flex-1 { flex: 1; } + .flex-shrink-0 { + flex-shrink: 0; + } .shrink-0 { flex-shrink: 0; } + .grow { + flex-grow: 1; + } + .grow-0 { + flex-grow: 0; + } + .basis-full { + flex-basis: 100%; + } + .border-collapse { + border-collapse: collapse; + } + .-translate-x-1\/2 { + --tw-translate-x: calc(calc(1/2 * 100%) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } .-translate-x-full { --tw-translate-x: -100%; translate: var(--tw-translate-x) var(--tw-translate-y); @@ -480,34 +728,75 @@ --tw-translate-x: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); } + .translate-x-\[-50\%\] { + --tw-translate-x: -50%; + 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-\[-50\%\] { + --tw-translate-y: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-rotate-90 { + rotate: calc(90deg * -1); + } + .rotate-90 { + rotate: 90deg; + } .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); } + .animate-bounce { + animation: var(--animate-bounce); + } + .animate-pulse { + animation: var(--animate-pulse); + } .animate-spin { animation: var(--animate-spin); } .cursor-default { cursor: default; } + .cursor-not-allowed { + cursor: not-allowed; + } .cursor-pointer { cursor: pointer; } + .touch-none { + touch-action: none; + } + .resize { + resize: both; + } .list-none { list-style-type: none; } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } + .grid-cols-7 { + grid-template-columns: repeat(7, minmax(0, 1fr)); + } .flex-col { flex-direction: column; } .flex-col-reverse { flex-direction: column-reverse; } + .flex-row { + flex-direction: row; + } + .flex-wrap { + flex-wrap: wrap; + } .items-center { align-items: center; } @@ -526,9 +815,15 @@ .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); } @@ -538,6 +833,9 @@ .gap-4 { gap: calc(var(--spacing) * 4); } + .gap-px { + gap: 1px; + } .space-y-1 { :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; @@ -566,27 +864,62 @@ margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); } } - .space-x-4 { + .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-6 { + column-gap: calc(var(--spacing) * 6); + } + .-space-x-2 { :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; - margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse)); - margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse))); + 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-2 { + row-gap: calc(var(--spacing) * 2); + } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .overflow-auto { + overflow: auto; + } .overflow-hidden { overflow: hidden; } + .overflow-x-auto { + overflow-x: auto; + } + .overflow-x-hidden { + overflow-x: hidden; + } .overflow-y-auto { overflow-y: auto; } + .rounded { + border-radius: 0.25rem; + } .rounded-full { border-radius: calc(infinity * 1px); } + .rounded-lg { + border-radius: var(--radius-lg); + } .rounded-md { border-radius: var(--radius-md); } @@ -596,6 +929,22 @@ .rounded-xl { border-radius: var(--radius-xl); } + .rounded-t-\[10px\] { + border-top-left-radius: 10px; + border-top-right-radius: 10px; + } + .rounded-l-\[10px\] { + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; + } + .rounded-r-\[10px\] { + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + } + .rounded-b-\[10px\] { + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; + } .border { border-style: var(--tw-border-style); border-width: 1px; @@ -608,6 +957,10 @@ border-style: var(--tw-border-style); border-width: 4px; } + .border-y { + border-block-style: var(--tw-border-style); + border-block-width: 1px; + } .border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; @@ -620,6 +973,10 @@ border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; } + .border-none { + --tw-border-style: none; + border-style: none; + } .border-blue-200 { border-color: var(--color-blue-200); } @@ -644,27 +1001,45 @@ border-color: color-mix(in oklab, var(--color-destructive) 50%, transparent); } } + .border-gray-200 { + border-color: var(--color-gray-200); + } .border-green-200 { border-color: var(--color-green-200); } + .border-green-500 { + border-color: var(--color-green-500); + } + .border-green-500\/50 { + border-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-green-500) 50%, transparent); + } + } .border-input { border-color: var(--color-input); } .border-primary { border-color: var(--color-primary); } - .border-primary\/50 { - border-color: color-mix(in srgb, hsl(var(--primary)) 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - border-color: color-mix(in oklab, var(--color-primary) 50%, transparent); - } - } .border-red-200 { border-color: var(--color-red-200); } + .border-transparent { + border-color: transparent; + } .border-yellow-200 { border-color: var(--color-yellow-200); } + .border-yellow-500 { + border-color: var(--color-yellow-500); + } + .border-yellow-500\/50 { + border-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-yellow-500) 50%, transparent); + } + } .border-t-transparent { border-top-color: transparent; } @@ -680,24 +1055,72 @@ background-color: color-mix(in oklab, var(--color-background) 80%, transparent); } } + .bg-black\/80 { + background-color: color-mix(in srgb, #000 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-black) 80%, transparent); + } + } + .bg-blue-50 { + background-color: var(--color-blue-50); + } .bg-blue-100 { background-color: var(--color-blue-100); } + .bg-blue-200 { + background-color: var(--color-blue-200); + } + .bg-blue-500 { + background-color: var(--color-blue-500); + } + .bg-blue-600 { + background-color: var(--color-blue-600); + } + .bg-border { + background-color: var(--color-border); + } .bg-card { background-color: var(--color-card); } + .bg-current { + background-color: currentcolor; + } .bg-destructive { background-color: var(--color-destructive); } - .bg-destructive\/10 { - background-color: color-mix(in srgb, hsl(var(--destructive)) 10%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent); - } + .bg-foreground { + background-color: var(--color-foreground); + } + .bg-gray-50 { + background-color: var(--color-gray-50); + } + .bg-gray-100 { + background-color: var(--color-gray-100); + } + .bg-gray-200 { + background-color: var(--color-gray-200); + } + .bg-gray-300 { + background-color: var(--color-gray-300); + } + .bg-green-50 { + background-color: var(--color-green-50); } .bg-green-100 { background-color: var(--color-green-100); } + .bg-green-200 { + background-color: var(--color-green-200); + } + .bg-green-500 { + background-color: var(--color-green-500); + } + .bg-indigo-100 { + background-color: var(--color-indigo-100); + } + .bg-indigo-200 { + background-color: var(--color-indigo-200); + } .bg-muted { background-color: var(--color-muted); } @@ -707,6 +1130,12 @@ background-color: color-mix(in oklab, var(--color-muted) 10%, transparent); } } + .bg-muted\/30 { + background-color: color-mix(in srgb, hsl(var(--muted)) 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-muted) 30%, transparent); + } + } .bg-muted\/40 { background-color: color-mix(in srgb, hsl(var(--muted)) 40%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -719,33 +1148,93 @@ background-color: color-mix(in oklab, var(--color-muted) 50%, transparent); } } + .bg-orange-100 { + background-color: var(--color-orange-100); + } + .bg-orange-200 { + background-color: var(--color-orange-200); + } + .bg-pink-100 { + background-color: var(--color-pink-100); + } + .bg-pink-200 { + background-color: var(--color-pink-200); + } .bg-popover { background-color: var(--color-popover); } .bg-primary { background-color: var(--color-primary); } + .bg-primary\/10 { + background-color: color-mix(in srgb, hsl(var(--primary)) 10%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-primary) 10%, transparent); + } + } + .bg-purple-100 { + background-color: var(--color-purple-100); + } + .bg-purple-200 { + background-color: var(--color-purple-200); + } + .bg-red-50 { + background-color: var(--color-red-50); + } .bg-red-100 { background-color: var(--color-red-100); } + .bg-red-200 { + background-color: var(--color-red-200); + } + .bg-red-500 { + background-color: var(--color-red-500); + } .bg-secondary { background-color: var(--color-secondary); } + .bg-teal-100 { + background-color: var(--color-teal-100); + } + .bg-teal-200 { + background-color: var(--color-teal-200); + } .bg-transparent { background-color: transparent; } + .bg-white { + background-color: var(--color-white); + } .bg-yellow-50 { background-color: var(--color-yellow-50); } .bg-yellow-100 { background-color: var(--color-yellow-100); } + .bg-yellow-200 { + background-color: var(--color-yellow-200); + } + .bg-yellow-300 { + background-color: var(--color-yellow-300); + } + .bg-yellow-500 { + background-color: var(--color-yellow-500); + } + .fill-current { + fill: currentcolor; + } .stroke-current { stroke: currentcolor; } + .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); } @@ -767,6 +1256,9 @@ .px-4 { padding-inline: calc(var(--spacing) * 4); } + .px-8 { + padding-inline: calc(var(--spacing) * 8); + } .py-0\.5 { padding-block: calc(var(--spacing) * 0.5); } @@ -779,9 +1271,18 @@ .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-6 { + padding-block: calc(var(--spacing) * 6); + } + .pt-0 { + padding-top: calc(var(--spacing) * 0); + } .pt-1 { padding-top: calc(var(--spacing) * 1); } @@ -794,6 +1295,9 @@ .pr-2 { padding-right: calc(var(--spacing) * 2); } + .pr-2\.5 { + padding-right: calc(var(--spacing) * 2.5); + } .pb-0 { padding-bottom: calc(var(--spacing) * 0); } @@ -803,12 +1307,21 @@ .pb-3 { padding-bottom: calc(var(--spacing) * 3); } + .pb-4 { + padding-bottom: calc(var(--spacing) * 4); + } + .pl-2\.5 { + padding-left: calc(var(--spacing) * 2.5); + } .pl-8 { padding-left: calc(var(--spacing) * 8); } .text-center { text-align: center; } + .text-left { + text-align: left; + } .text-right { text-align: right; } @@ -842,14 +1355,14 @@ --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); @@ -858,12 +1371,26 @@ --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); } + .tracking-wider { + --tw-tracking: var(--tracking-wider); + letter-spacing: var(--tracking-wider); + } + .tracking-widest { + --tw-tracking: var(--tracking-widest); + letter-spacing: var(--tracking-widest); + } + .break-words { + overflow-wrap: break-word; + } .whitespace-nowrap { white-space: nowrap; } .text-accent-foreground { color: var(--color-accent-foreground); } + .text-black { + color: var(--color-black); + } .text-blue-500 { color: var(--color-blue-500); } @@ -873,6 +1400,9 @@ .text-blue-700 { color: var(--color-blue-700); } + .text-blue-900 { + color: var(--color-blue-900); + } .text-card-foreground { color: var(--color-card-foreground); } @@ -885,6 +1415,12 @@ .text-foreground { color: var(--color-foreground); } + .text-gray-600 { + color: var(--color-gray-600); + } + .text-gray-900 { + color: #111827; + } .text-green-500 { color: var(--color-green-500); } @@ -894,6 +1430,9 @@ .text-green-700 { color: var(--color-green-700); } + .text-green-900 { + color: var(--color-green-900); + } .text-muted-foreground { color: var(--color-muted-foreground); } @@ -912,9 +1451,15 @@ .text-red-700 { color: var(--color-red-700); } + .text-red-900 { + color: var(--color-red-900); + } .text-secondary-foreground { color: var(--color-secondary-foreground); } + .text-white { + color: var(--color-white); + } .text-yellow-500 { color: var(--color-yellow-500); } @@ -924,12 +1469,24 @@ .text-yellow-700 { color: var(--color-yellow-700); } + .text-yellow-900 { + color: var(--color-yellow-900); + } .capitalize { text-transform: capitalize; } .uppercase { text-transform: uppercase; } + .italic { + font-style: italic; + } + .underline { + text-decoration-line: underline; + } + .underline-offset-4 { + text-underline-offset: 4px; + } .opacity-0 { opacity: 0%; } @@ -961,9 +1518,43 @@ --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); } + .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-0 { + --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); + } + .ring-1 { + --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-2 { + --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); + } + .ring-primary { + --tw-ring-color: var(--color-primary); + } + .ring-ring { + --tw-ring-color: var(--color-ring); + } + .ring-offset-2 { + --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); + } .ring-offset-background { --tw-ring-offset-color: var(--color-background); } + .outline { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + .blur { + --tw-blur: blur(8px); + 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,); } @@ -972,6 +1563,11 @@ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); } + .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, display, content-visibility, overlay, pointer-events; + 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)); @@ -982,8 +1578,8 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } - .transition-opacity { - transition-property: opacity; + .transition-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)); } @@ -992,6 +1588,10 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } + .duration-200 { + --tw-duration: 200ms; + transition-duration: 200ms; + } .duration-300 { --tw-duration: 300ms; transition-duration: 300ms; @@ -1008,6 +1608,10 @@ --tw-outline-style: none; outline-style: none; } + .select-all { + -webkit-user-select: all; + user-select: all; + } .select-none { -webkit-user-select: none; user-select: none; @@ -1062,6 +1666,62 @@ color: var(--color-muted-foreground); } } + .first\:rounded-l-md { + &:first-child { + border-top-left-radius: var(--radius-md); + border-bottom-left-radius: var(--radius-md); + } + } + .first\:border-l { + &:first-child { + border-left-style: var(--tw-border-style); + border-left-width: 1px; + } + } + .last\:rounded-r-md { + &:last-child { + border-top-right-radius: var(--radius-md); + border-bottom-right-radius: var(--radius-md); + } + } + .focus-within\:relative { + &:focus-within { + position: relative; + } + } + .focus-within\:z-10 { + &:focus-within { + z-index: 10; + } + } + .focus-within\:z-20 { + &:focus-within { + z-index: 20; + } + } + .focus-within\:ring-1 { + &:focus-within { + --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); + } + } + .focus-within\:ring-2 { + &:focus-within { + --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-within\:ring-ring { + &:focus-within { + --tw-ring-color: var(--color-ring); + } + } + .focus-within\:ring-offset-2 { + &:focus-within { + --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); + } + } .hover\:border-primary { &:hover { @media (hover: hover) { @@ -1076,10 +1736,65 @@ } } } - .hover\:bg-muted { + .hover\:bg-background { &:hover { @media (hover: hover) { - background-color: var(--color-muted); + background-color: var(--color-background); + } + } + } + .hover\:bg-blue-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-blue-600); + } + } + } + .hover\:bg-destructive { + &:hover { + @media (hover: hover) { + background-color: var(--color-destructive); + } + } + } + .hover\:bg-destructive\/80 { + &:hover { + @media (hover: hover) { + background-color: color-mix(in srgb, hsl(var(--destructive)) 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-destructive) 80%, transparent); + } + } + } + } + .hover\:bg-destructive\/90 { + &:hover { + @media (hover: hover) { + background-color: color-mix(in srgb, hsl(var(--destructive)) 90%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); + } + } + } + } + .hover\:bg-gray-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-50); + } + } + } + .hover\:bg-gray-200 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-200); + } + } + } + .hover\:bg-gray-400 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-400); } } } @@ -1093,6 +1808,23 @@ } } } + .hover\:bg-primary { + &:hover { + @media (hover: hover) { + background-color: var(--color-primary); + } + } + } + .hover\:bg-primary\/80 { + &:hover { + @media (hover: hover) { + background-color: color-mix(in srgb, hsl(var(--primary)) 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-primary) 80%, transparent); + } + } + } + } .hover\:bg-primary\/90 { &:hover { @media (hover: hover) { @@ -1120,6 +1852,13 @@ } } } + .hover\:text-destructive-foreground { + &:hover { + @media (hover: hover) { + color: var(--color-destructive-foreground); + } + } + } .hover\:text-foreground { &:hover { @media (hover: hover) { @@ -1127,6 +1866,20 @@ } } } + .hover\:text-primary-foreground { + &:hover { + @media (hover: hover) { + color: var(--color-primary-foreground); + } + } + } + .hover\:underline { + &:hover { + @media (hover: hover) { + text-decoration-line: underline; + } + } + } .hover\:opacity-100 { &:hover { @media (hover: hover) { @@ -1134,14 +1887,22 @@ } } } + .hover\:shadow-md { + &:hover { + @media (hover: hover) { + --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); + } + } + } .focus\:bg-accent { &:focus { background-color: var(--color-accent); } } - .focus\:bg-destructive { + .focus\:bg-primary { &:focus { - background-color: var(--color-destructive); + background-color: var(--color-primary); } } .focus\:text-accent-foreground { @@ -1149,9 +1910,9 @@ color: var(--color-accent-foreground); } } - .focus\:text-destructive-foreground { + .focus\:text-primary-foreground { &:focus { - color: var(--color-destructive-foreground); + color: var(--color-primary-foreground); } } .focus\:ring-2 { @@ -1189,6 +1950,11 @@ 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-destructive { + &:focus-visible { + --tw-ring-color: var(--color-destructive); + } + } .focus-visible\:ring-ring { &:focus-visible { --tw-ring-color: var(--color-ring); @@ -1200,6 +1966,11 @@ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); } } + .focus-visible\:ring-offset-background { + &:focus-visible { + --tw-ring-offset-color: var(--color-background); + } + } .focus-visible\:outline-none { &:focus-visible { --tw-outline-style: none; @@ -1221,6 +1992,11 @@ opacity: 50%; } } + .aria-selected\:opacity-100 { + &[aria-selected="true"] { + opacity: 100%; + } + } .data-\[disabled\]\:pointer-events-none { &[data-disabled] { pointer-events: none; @@ -1231,6 +2007,90 @@ opacity: 50%; } } + .data-\[disabled\=true\]\:pointer-events-none { + &[data-disabled="true"] { + pointer-events: none; + } + } + .data-\[disabled\=true\]\:opacity-50 { + &[data-disabled="true"] { + opacity: 50%; + } + } + .data-\[state\=checked\]\:translate-x-3 { + &[data-state="checked"] { + --tw-translate-x: calc(var(--spacing) * 3); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[state\=checked\]\:translate-x-5 { + &[data-state="checked"] { + --tw-translate-x: calc(var(--spacing) * 5); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[state\=checked\]\:translate-x-6 { + &[data-state="checked"] { + --tw-translate-x: calc(var(--spacing) * 6); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[state\=checked\]\:bg-blue-500 { + &[data-state="checked"] { + background-color: var(--color-blue-500); + } + } + .data-\[state\=checked\]\:bg-green-500 { + &[data-state="checked"] { + background-color: var(--color-green-500); + } + } + .data-\[state\=checked\]\:bg-primary { + &[data-state="checked"] { + background-color: var(--color-primary); + } + } + .data-\[state\=checked\]\:bg-red-500 { + &[data-state="checked"] { + background-color: var(--color-red-500); + } + } + .data-\[state\=checked\]\:bg-yellow-500 { + &[data-state="checked"] { + background-color: var(--color-yellow-500); + } + } + .data-\[state\=checked\]\:text-primary-foreground { + &[data-state="checked"] { + color: var(--color-primary-foreground); + } + } + .data-\[state\=closed\]\:animate-accordion-up { + &[data-state="closed"] { + animation: var(--animate-accordion-up); + } + } + .data-\[state\=open\]\:animate-accordion-down { + &[data-state="open"] { + animation: var(--animate-accordion-down); + } + } + .data-\[state\=open\]\:bg-accent { + &[data-state="open"] { + background-color: var(--color-accent); + } + } + .data-\[state\=unchecked\]\:translate-x-0 { + &[data-state="unchecked"] { + --tw-translate-x: calc(var(--spacing) * 0); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[state\=unchecked\]\:bg-input { + &[data-state="unchecked"] { + background-color: var(--color-input); + } + } .sm\:top-auto { @media (width >= 40rem) { top: auto; @@ -1246,6 +2106,16 @@ bottom: calc(var(--spacing) * 0); } } + .sm\:mt-0 { + @media (width >= 40rem) { + margin-top: calc(var(--spacing) * 0); + } + } + .sm\:block { + @media (width >= 40rem) { + display: block; + } + } .sm\:hidden { @media (width >= 40rem) { display: none; @@ -1256,11 +2126,82 @@ display: inline; } } + .sm\:h-9 { + @media (width >= 40rem) { + height: calc(var(--spacing) * 9); + } + } + .sm\:w-16 { + @media (width >= 40rem) { + width: calc(var(--spacing) * 16); + } + } + .sm\:w-32 { + @media (width >= 40rem) { + width: calc(var(--spacing) * 32); + } + } + .sm\:max-w-\[425px\] { + @media (width >= 40rem) { + max-width: 425px; + } + } + .sm\:max-w-sm { + @media (width >= 40rem) { + max-width: var(--container-sm); + } + } .sm\:flex-col { @media (width >= 40rem) { flex-direction: column; } } + .sm\:flex-row { + @media (width >= 40rem) { + flex-direction: row; + } + } + .sm\:justify-end { + @media (width >= 40rem) { + justify-content: flex-end; + } + } + .sm\:gap-2\.5 { + @media (width >= 40rem) { + gap: calc(var(--spacing) * 2.5); + } + } + .sm\:space-x-2 { + @media (width >= 40rem) { + :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))); + } + } + } + .sm\:rounded-lg { + @media (width >= 40rem) { + border-radius: var(--radius-lg); + } + } + .sm\:text-left { + @media (width >= 40rem) { + text-align: left; + } + } + .sm\:text-sm { + @media (width >= 40rem) { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + } + .sm\:text-xs { + @media (width >= 40rem) { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + } .md\:flex { @media (width >= 48rem) { display: flex; @@ -1276,16 +2217,58 @@ height: calc(var(--spacing) * 5); } } + .md\:h-10 { + @media (width >= 48rem) { + height: calc(var(--spacing) * 10); + } + } + .md\:w-1\/2 { + @media (width >= 48rem) { + width: calc(1/2 * 100%); + } + } .md\:w-5 { @media (width >= 48rem) { width: calc(var(--spacing) * 5); } } + .md\:w-32 { + @media (width >= 48rem) { + width: calc(var(--spacing) * 32); + } + } + .md\:w-48 { + @media (width >= 48rem) { + width: calc(var(--spacing) * 48); + } + } + .md\:w-auto { + @media (width >= 48rem) { + width: auto; + } + } .md\:max-w-\[420px\] { @media (width >= 48rem) { max-width: 420px; } } + .md\:grid-cols-4 { + @media (width >= 48rem) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + } + .md\:text-base { + @media (width >= 48rem) { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + } + .md\:text-sm { + @media (width >= 48rem) { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + } .lg\:relative { @media (width >= 64rem) { position: relative; @@ -1296,12 +2279,49 @@ display: none; } } + .lg\:h-11 { + @media (width >= 64rem) { + height: calc(var(--spacing) * 11); + } + } + .lg\:w-1\/3 { + @media (width >= 64rem) { + width: calc(1/3 * 100%); + } + } + .lg\:w-48 { + @media (width >= 64rem) { + width: calc(var(--spacing) * 48); + } + } + .lg\:w-64 { + @media (width >= 64rem) { + width: calc(var(--spacing) * 64); + } + } .lg\:translate-x-0 { @media (width >= 64rem) { --tw-translate-x: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); } } + .lg\:text-base { + @media (width >= 64rem) { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + } + .lg\:text-lg { + @media (width >= 64rem) { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + } + .xl\:hidden { + @media (width >= 80rem) { + display: none; + } + } .dark\:border-blue-800 { @media (prefers-color-scheme: dark) { border-color: var(--color-blue-800); @@ -1312,6 +2332,11 @@ border-color: var(--color-destructive); } } + .dark\:border-gray-800 { + @media (prefers-color-scheme: dark) { + border-color: #1f2937; + } + } .dark\:border-green-800 { @media (prefers-color-scheme: dark) { border-color: var(--color-green-800); @@ -1327,9 +2352,9 @@ border-color: var(--color-yellow-800); } } - .dark\:border-yellow-900 { + .dark\:bg-blue-900 { @media (prefers-color-scheme: dark) { - border-color: var(--color-yellow-900); + background-color: var(--color-blue-900); } } .dark\:bg-blue-900\/30 { @@ -1340,12 +2365,19 @@ } } } - .dark\:bg-destructive\/50 { + .dark\:bg-gray-800 { @media (prefers-color-scheme: dark) { - background-color: color-mix(in srgb, hsl(var(--destructive)) 50%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-destructive) 50%, transparent); - } + background-color: #1f2937; + } + } + .dark\:bg-gray-900 { + @media (prefers-color-scheme: dark) { + background-color: #111827; + } + } + .dark\:bg-green-900 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-green-900); } } .dark\:bg-green-900\/30 { @@ -1356,6 +2388,11 @@ } } } + .dark\:bg-red-900 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-red-900); + } + } .dark\:bg-red-900\/30 { @media (prefers-color-scheme: dark) { background-color: color-mix(in srgb, oklch(39.6% 0.141 25.723) 30%, transparent); @@ -1364,12 +2401,9 @@ } } } - .dark\:bg-yellow-900\/20 { + .dark\:bg-yellow-900 { @media (prefers-color-scheme: dark) { - background-color: color-mix(in srgb, oklch(42.1% 0.095 57.708) 20%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-yellow-900) 20%, transparent); - } + background-color: var(--color-yellow-900); } } .dark\:bg-yellow-900\/30 { @@ -1380,6 +2414,11 @@ } } } + .dark\:text-blue-100 { + @media (prefers-color-scheme: dark) { + color: var(--color-blue-100); + } + } .dark\:text-blue-400 { @media (prefers-color-scheme: dark) { color: var(--color-blue-400); @@ -1390,9 +2429,14 @@ color: var(--color-blue-500); } } - .dark\:text-destructive-foreground { + .dark\:text-gray-100 { @media (prefers-color-scheme: dark) { - color: var(--color-destructive-foreground); + color: var(--color-gray-100); + } + } + .dark\:text-green-100 { + @media (prefers-color-scheme: dark) { + color: var(--color-green-100); } } .dark\:text-green-400 { @@ -1405,19 +2449,39 @@ color: var(--color-green-500); } } + .dark\:text-red-100 { + @media (prefers-color-scheme: dark) { + color: var(--color-red-100); + } + } .dark\:text-red-400 { @media (prefers-color-scheme: dark) { color: var(--color-red-400); } } + .dark\:text-yellow-100 { + @media (prefers-color-scheme: dark) { + color: var(--color-yellow-100); + } + } .dark\:text-yellow-400 { @media (prefers-color-scheme: dark) { color: var(--color-yellow-400); } } - .dark\:text-yellow-500 { + .dark\:hover\:bg-gray-700 { @media (prefers-color-scheme: dark) { - color: var(--color-yellow-500); + &:hover { + @media (hover: hover) { + background-color: #374151; + } + } + } + } + .\[\&_p\]\:leading-relaxed { + & p { + --tw-leading: var(--leading-relaxed); + line-height: var(--leading-relaxed); } } .\[\&\:\:-webkit-details-marker\]\:hidden { @@ -1425,6 +2489,46 @@ display: none; } } + .\[\&\:has\(\[aria-selected\]\)\]\:bg-accent { + &:has([aria-selected]) { + background-color: var(--color-accent); + } + } + .first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md { + &:first-child { + &:has([aria-selected]) { + border-top-left-radius: var(--radius-md); + border-bottom-left-radius: var(--radius-md); + } + } + } + .last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md { + &:last-child { + &:has([aria-selected]) { + border-top-right-radius: var(--radius-md); + border-bottom-right-radius: var(--radius-md); + } + } + } + .\[\&\>span\]\:line-clamp-1 { + &>span { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; + } + } + .\[\&\>svg\]\:size-3\.5 { + &>svg { + width: calc(var(--spacing) * 3.5); + height: calc(var(--spacing) * 3.5); + } + } + .\[\&\[data-state\=open\]\>svg\]\:rotate-180 { + &[data-state=open]>svg { + rotate: 180deg; + } + } } @layer base { :root { @@ -1637,6 +2741,11 @@ inherits: false; initial-value: 0 0 #0000; } +@property --tw-outline-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} @property --tw-blur { syntax: "*"; inherits: false; @@ -1739,6 +2848,37 @@ transform: rotate(360deg); } } +@keyframes pulse { + 50% { + opacity: 0.5; + } +} +@keyframes bounce { + 0%, 100% { + transform: translateY(-25%); + animation-timing-function: cubic-bezier(0.8, 0, 1, 1); + } + 50% { + transform: none; + animation-timing-function: cubic-bezier(0, 0, 0.2, 1); + } +} +@keyframes accordion-down { + from { + height: 0; + } + to { + height: var(--radix-accordion-content-height); + } +} +@keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + } + to { + height: 0; + } +} @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 { @@ -1770,6 +2910,7 @@ --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; diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 07e3c0b..2752dca 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -1,6 +1,19 @@ +const path = require("path"); +const os = require("os"); + +// Cargo registry'deki leptos-shadcn crate'lerini Tailwind'e taratmak için +const cargoRegistry = path.join( + os.homedir(), + ".cargo/registry/src/*/leptos-shadcn-*/src/**/*.rs" +); + /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["./index.html", "./src/**/*.{rs,html}"], + content: [ + "./index.html", + "./src/**/*.{rs,html}", + cargoRegistry, + ], theme: { extend: { colors: {