sigma-ui 1.0.16 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/__generated/registry-schemes/colors/blue.json +2 -2
  2. package/__generated/registry-schemes/colors/frosted-glass.json +90 -0
  3. package/__generated/registry-schemes/colors/grayscale.json +90 -0
  4. package/__generated/registry-schemes/colors/green.json +2 -2
  5. package/__generated/registry-schemes/colors/index.json +2 -92
  6. package/__generated/registry-schemes/colors/orange.json +2 -2
  7. package/__generated/registry-schemes/colors/red.json +2 -2
  8. package/__generated/registry-schemes/colors/rose.json +2 -2
  9. package/__generated/registry-schemes/colors/yellow.json +2 -2
  10. package/__generated/registry-schemes/style-system/css/button.json +1 -1
  11. package/__generated/registry-schemes/style-system/css/card-lightbox.json +1 -1
  12. package/__generated/registry-schemes/style-system/css/combobox.json +2 -2
  13. package/__generated/registry-schemes/style-system/css/context-menu.json +2 -2
  14. package/__generated/registry-schemes/style-system/css/dropdown-menu.json +2 -2
  15. package/__generated/registry-schemes/style-system/css/input.json +1 -1
  16. package/__generated/registry-schemes/style-system/css/menubar.json +2 -2
  17. package/__generated/registry-schemes/style-system/css/navigation-menu.json +1 -1
  18. package/__generated/registry-schemes/style-system/css/number-field.json +1 -1
  19. package/__generated/registry-schemes/style-system/css/popover.json +1 -1
  20. package/__generated/registry-schemes/style-system/css/select.json +2 -2
  21. package/__generated/registry-schemes/style-system/css/sheet.json +1 -1
  22. package/__generated/registry-schemes/style-system/css/switch.json +1 -1
  23. package/__generated/registry-schemes/style-system/css/tabs.json +1 -1
  24. package/__generated/registry-schemes/style-system/css/tags-input.json +1 -1
  25. package/__generated/registry-schemes/style-system/css/textarea.json +1 -1
  26. package/__generated/registry-schemes/style-system/tailwind/button.json +1 -1
  27. package/__generated/registry-schemes/style-system/tailwind/card-lightbox.json +1 -1
  28. package/__generated/registry-schemes/style-system/tailwind/combobox.json +2 -2
  29. package/__generated/registry-schemes/style-system/tailwind/context-menu.json +2 -2
  30. package/__generated/registry-schemes/style-system/tailwind/dropdown-menu.json +2 -2
  31. package/__generated/registry-schemes/style-system/tailwind/input.json +1 -1
  32. package/__generated/registry-schemes/style-system/tailwind/menubar.json +2 -2
  33. package/__generated/registry-schemes/style-system/tailwind/navigation-menu.json +1 -1
  34. package/__generated/registry-schemes/style-system/tailwind/number-field.json +1 -1
  35. package/__generated/registry-schemes/style-system/tailwind/popover.json +1 -1
  36. package/__generated/registry-schemes/style-system/tailwind/select.json +2 -2
  37. package/__generated/registry-schemes/style-system/tailwind/switch.json +1 -1
  38. package/__generated/registry-schemes/style-system/tailwind/tabs.json +1 -1
  39. package/__generated/registry-schemes/style-system/tailwind/tags-input.json +1 -1
  40. package/__generated/registry-schemes/style-system/tailwind/textarea.json +1 -1
  41. package/dist/index.js +4 -5
  42. package/dist/index.js.map +1 -1
  43. package/package.json +10 -1
  44. package/__generated/registry-schemes/colors/gray.json +0 -90
  45. package/__generated/registry-schemes/colors/violet.json +0 -90
  46. package/__generated/registry-schemes/colors/zinc.json +0 -90
@@ -81,10 +81,10 @@
81
81
  },
82
82
  "templates": {
83
83
  "tailwind": {
84
- "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n }\n \n :root {\n --background: 0 0% 100%;\n --foreground: 226.2 57% 21%;\n --muted: 214.3 94.6% 92.7%;\n --muted-foreground: 217.2 91.2% 59.8%;\n --popover: 0 0% 100%;\n --popover-foreground: 226.2 57% 21%;\n --card: 0 0% 100%;\n --card-foreground: 226.2 57% 21%;\n --border: 213.3 96.9% 87.3%;\n --input: 213.3 96.9% 87.3%;\n --primary: 224.4 64.3% 32.9%;\n --primary-foreground: 213.8 100% 96.9%;\n --secondary: 214.3 94.6% 92.7%;\n --secondary-foreground: 224.4 64.3% 32.9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 226.2 57% 21%;\n }\n \n .dark {\n --background: 226.2 57% 21%;\n --foreground: 213.8 100% 96.9%;\n --muted: 225.9 70.7% 40.2%;\n --muted-foreground: 213.1 93.9% 67.8%;\n --popover: 226.2 57% 21%;\n --popover-foreground: 213.8 100% 96.9%;\n --card: 226.2 57% 21%;\n --card-foreground: 213.8 100% 96.9%;\n --border: 225.9 70.7% 40.2%;\n --input: 225.9 70.7% 40.2%;\n --primary: 213.8 100% 96.9%;\n --primary-foreground: 224.4 64.3% 32.9%;\n --secondary: 225.9 70.7% 40.2%;\n --secondary-foreground: 213.8 100% 96.9%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 211.7 96.4% 78.4%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 226.2 57% 21%;\n --muted: 214.3 94.6% 92.7%;\n --muted-foreground: 217.2 91.2% 59.8%;\n --popover: 0 0% 100%;\n --popover-foreground: 226.2 57% 21%;\n --card: 0 0% 100%;\n --card-foreground: 226.2 57% 21%;\n --border: 213.3 96.9% 87.3%;\n --input: 213.3 96.9% 87.3%;\n --primary: 224.4 64.3% 32.9%;\n --primary-foreground: 213.8 100% 96.9%;\n --secondary: 214.3 94.6% 92.7%;\n --secondary-foreground: 224.4 64.3% 32.9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 226.2 57% 21%;\n }\n \n .dark {\n --background: 226.2 57% 21%;\n --foreground: 213.8 100% 96.9%;\n --muted: 225.9 70.7% 40.2%;\n --muted-foreground: 213.1 93.9% 67.8%;\n --popover: 226.2 57% 21%;\n --popover-foreground: 213.8 100% 96.9%;\n --card: 226.2 57% 21%;\n --card-foreground: 213.8 100% 96.9%;\n --border: 225.9 70.7% 40.2%;\n --input: 225.9 70.7% 40.2%;\n --primary: 213.8 100% 96.9%;\n --primary-foreground: 224.4 64.3% 32.9%;\n --secondary: 225.9 70.7% 40.2%;\n --secondary-foreground: 213.8 100% 96.9%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 211.7 96.4% 78.4%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
85
  },
86
86
  "css": {
87
- "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n }\n\n :root {\n --background: 0 0% 100%;\n --foreground: 226.2 57% 21%;\n --muted: 214.3 94.6% 92.7%;\n --muted-foreground: 217.2 91.2% 59.8%;\n --popover: 0 0% 100%;\n --popover-foreground: 226.2 57% 21%;\n --card: 0 0% 100%;\n --card-foreground: 226.2 57% 21%;\n --border: 213.3 96.9% 87.3%;\n --input: 213.3 96.9% 87.3%;\n --primary: 224.4 64.3% 32.9%;\n --primary-foreground: 213.8 100% 96.9%;\n --secondary: 214.3 94.6% 92.7%;\n --secondary-foreground: 224.4 64.3% 32.9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 226.2 57% 21%;\n }\n \n .dark {\n --background: 226.2 57% 21%;\n --foreground: 213.8 100% 96.9%;\n --muted: 225.9 70.7% 40.2%;\n --muted-foreground: 213.1 93.9% 67.8%;\n --popover: 226.2 57% 21%;\n --popover-foreground: 213.8 100% 96.9%;\n --card: 226.2 57% 21%;\n --card-foreground: 213.8 100% 96.9%;\n --border: 225.9 70.7% 40.2%;\n --input: 225.9 70.7% 40.2%;\n --primary: 213.8 100% 96.9%;\n --primary-foreground: 224.4 64.3% 32.9%;\n --secondary: 225.9 70.7% 40.2%;\n --secondary-foreground: 213.8 100% 96.9%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 211.7 96.4% 78.4%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 226.2 57% 21%;\n --muted: 214.3 94.6% 92.7%;\n --muted-foreground: 217.2 91.2% 59.8%;\n --popover: 0 0% 100%;\n --popover-foreground: 226.2 57% 21%;\n --card: 0 0% 100%;\n --card-foreground: 226.2 57% 21%;\n --border: 213.3 96.9% 87.3%;\n --input: 213.3 96.9% 87.3%;\n --primary: 224.4 64.3% 32.9%;\n --primary-foreground: 213.8 100% 96.9%;\n --secondary: 214.3 94.6% 92.7%;\n --secondary-foreground: 224.4 64.3% 32.9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 226.2 57% 21%;\n }\n \n .dark {\n --background: 226.2 57% 21%;\n --foreground: 213.8 100% 96.9%;\n --muted: 225.9 70.7% 40.2%;\n --muted-foreground: 213.1 93.9% 67.8%;\n --popover: 226.2 57% 21%;\n --popover-foreground: 213.8 100% 96.9%;\n --card: 226.2 57% 21%;\n --card-foreground: 213.8 100% 96.9%;\n --border: 225.9 70.7% 40.2%;\n --input: 225.9 70.7% 40.2%;\n --primary: 213.8 100% 96.9%;\n --primary-foreground: 224.4 64.3% 32.9%;\n --secondary: 225.9 70.7% 40.2%;\n --secondary-foreground: 213.8 100% 96.9%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 213.8 100% 96.9%;\n --ring: 211.7 96.4% 78.4%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
88
  }
89
89
  }
90
90
  }
@@ -0,0 +1,90 @@
1
+ {
2
+ "inlineColors": {
3
+ "light": {
4
+ "background": "white",
5
+ "foreground": "frosted-glass-950",
6
+ "card": "white",
7
+ "card-foreground": "frosted-glass-950",
8
+ "popover": "white",
9
+ "popover-foreground": "frosted-glass-950",
10
+ "primary": "frosted-glass-900",
11
+ "primary-foreground": "frosted-glass-50",
12
+ "secondary": "frosted-glass-100",
13
+ "secondary-foreground": "frosted-glass-900",
14
+ "muted": "frosted-glass-100",
15
+ "muted-foreground": "frosted-glass-500",
16
+ "destructive": "red-500",
17
+ "destructive-foreground": "frosted-glass-50",
18
+ "border": "frosted-glass-200",
19
+ "input": "frosted-glass-200",
20
+ "ring": "frosted-glass-950"
21
+ },
22
+ "dark": {
23
+ "background": "frosted-glass-950",
24
+ "foreground": "frosted-glass-50",
25
+ "card": "frosted-glass-950",
26
+ "card-foreground": "frosted-glass-50",
27
+ "popover": "frosted-glass-950",
28
+ "popover-foreground": "frosted-glass-50",
29
+ "primary": "frosted-glass-50",
30
+ "primary-foreground": "frosted-glass-900",
31
+ "secondary": "frosted-glass-800",
32
+ "secondary-foreground": "frosted-glass-50",
33
+ "muted": "frosted-glass-800",
34
+ "muted-foreground": "frosted-glass-400",
35
+ "destructive": "red-900",
36
+ "destructive-foreground": "frosted-glass-50",
37
+ "border": "frosted-glass-800",
38
+ "input": "frosted-glass-800",
39
+ "ring": "frosted-glass-300"
40
+ }
41
+ },
42
+ "cssVars": {
43
+ "light": {
44
+ "background": "0 0% 100%",
45
+ "foreground": "224 71.4% 4.1%",
46
+ "card": "0 0% 100%",
47
+ "card-foreground": "224 71.4% 4.1%",
48
+ "popover": "0 0% 100%",
49
+ "popover-foreground": "224 71.4% 4.1%",
50
+ "primary": "220.9 39.3% 11%",
51
+ "primary-foreground": "210 20% 98%",
52
+ "secondary": "220 14.3% 95.9%",
53
+ "secondary-foreground": "220.9 39.3% 11%",
54
+ "muted": "220 14.3% 95.9%",
55
+ "muted-foreground": "220 8.9% 46.1%",
56
+ "destructive": "0 84.2% 60.2%",
57
+ "destructive-foreground": "210 20% 98%",
58
+ "border": "220 13% 91%",
59
+ "input": "220 13% 91%",
60
+ "ring": "224 71.4% 4.1%"
61
+ },
62
+ "dark": {
63
+ "background": "224 71.4% 4.1%",
64
+ "foreground": "210 20% 98%",
65
+ "card": "224 71.4% 4.1%",
66
+ "card-foreground": "210 20% 98%",
67
+ "popover": "224 71.4% 4.1%",
68
+ "popover-foreground": "210 20% 98%",
69
+ "primary": "210 20% 98%",
70
+ "primary-foreground": "220.9 39.3% 11%",
71
+ "secondary": "215 27.9% 16.9%",
72
+ "secondary-foreground": "210 20% 98%",
73
+ "muted": "215 27.9% 16.9%",
74
+ "muted-foreground": "217.9 10.6% 64.9%",
75
+ "destructive": "0 62.8% 30.6%",
76
+ "destructive-foreground": "210 20% 98%",
77
+ "border": "215 27.9% 16.9%",
78
+ "input": "215 27.9% 16.9%",
79
+ "ring": "216 12.2% 83.9%"
80
+ }
81
+ },
82
+ "templates": {
83
+ "tailwind": {
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 224 71.4% 4.1%;\n --muted: 220 14.3% 95.9%;\n --muted-foreground: 220 8.9% 46.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 224 71.4% 4.1%;\n --card: 0 0% 100%;\n --card-foreground: 224 71.4% 4.1%;\n --border: 220 13% 91%;\n --input: 220 13% 91%;\n --primary: 220.9 39.3% 11%;\n --primary-foreground: 210 20% 98%;\n --secondary: 220 14.3% 95.9%;\n --secondary-foreground: 220.9 39.3% 11%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 20% 98%;\n --ring: 224 71.4% 4.1%;\n }\n \n .dark {\n --background: 224 71.4% 4.1%;\n --foreground: 210 20% 98%;\n --muted: 215 27.9% 16.9%;\n --muted-foreground: 217.9 10.6% 64.9%;\n --popover: 224 71.4% 4.1%;\n --popover-foreground: 210 20% 98%;\n --card: 224 71.4% 4.1%;\n --card-foreground: 210 20% 98%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --primary: 210 20% 98%;\n --primary-foreground: 220.9 39.3% 11%;\n --secondary: 215 27.9% 16.9%;\n --secondary-foreground: 210 20% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 20% 98%;\n --ring: 216 12.2% 83.9%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
+ },
86
+ "css": {
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 224 71.4% 4.1%;\n --muted: 220 14.3% 95.9%;\n --muted-foreground: 220 8.9% 46.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 224 71.4% 4.1%;\n --card: 0 0% 100%;\n --card-foreground: 224 71.4% 4.1%;\n --border: 220 13% 91%;\n --input: 220 13% 91%;\n --primary: 220.9 39.3% 11%;\n --primary-foreground: 210 20% 98%;\n --secondary: 220 14.3% 95.9%;\n --secondary-foreground: 220.9 39.3% 11%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 20% 98%;\n --ring: 224 71.4% 4.1%;\n }\n \n .dark {\n --background: 224 71.4% 4.1%;\n --foreground: 210 20% 98%;\n --muted: 215 27.9% 16.9%;\n --muted-foreground: 217.9 10.6% 64.9%;\n --popover: 224 71.4% 4.1%;\n --popover-foreground: 210 20% 98%;\n --card: 224 71.4% 4.1%;\n --card-foreground: 210 20% 98%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --primary: 210 20% 98%;\n --primary-foreground: 220.9 39.3% 11%;\n --secondary: 215 27.9% 16.9%;\n --secondary-foreground: 210 20% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 20% 98%;\n --ring: 216 12.2% 83.9%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "inlineColors": {
3
+ "light": {
4
+ "background": "white",
5
+ "foreground": "grayscale-950",
6
+ "card": "white",
7
+ "card-foreground": "grayscale-950",
8
+ "popover": "white",
9
+ "popover-foreground": "grayscale-950",
10
+ "primary": "grayscale-900",
11
+ "primary-foreground": "grayscale-50",
12
+ "secondary": "grayscale-100",
13
+ "secondary-foreground": "grayscale-900",
14
+ "muted": "grayscale-100",
15
+ "muted-foreground": "grayscale-500",
16
+ "destructive": "red-500",
17
+ "destructive-foreground": "grayscale-50",
18
+ "border": "grayscale-200",
19
+ "input": "grayscale-200",
20
+ "ring": "grayscale-950"
21
+ },
22
+ "dark": {
23
+ "background": "grayscale-950",
24
+ "foreground": "grayscale-50",
25
+ "card": "grayscale-950",
26
+ "card-foreground": "grayscale-50",
27
+ "popover": "grayscale-950",
28
+ "popover-foreground": "grayscale-50",
29
+ "primary": "grayscale-50",
30
+ "primary-foreground": "grayscale-900",
31
+ "secondary": "grayscale-800",
32
+ "secondary-foreground": "grayscale-50",
33
+ "muted": "grayscale-800",
34
+ "muted-foreground": "grayscale-400",
35
+ "destructive": "red-900",
36
+ "destructive-foreground": "grayscale-50",
37
+ "border": "grayscale-800",
38
+ "input": "grayscale-800",
39
+ "ring": "grayscale-300"
40
+ }
41
+ },
42
+ "cssVars": {
43
+ "light": {
44
+ "background": "0 0% 100%",
45
+ "foreground": "240 10% 3.9%",
46
+ "card": "0 0% 100%",
47
+ "card-foreground": "240 10% 3.9%",
48
+ "popover": "0 0% 100%",
49
+ "popover-foreground": "240 10% 3.9%",
50
+ "primary": "240 5.9% 10%",
51
+ "primary-foreground": "0 0% 98%",
52
+ "secondary": "240 4.8% 95.9%",
53
+ "secondary-foreground": "240 5.9% 10%",
54
+ "muted": "240 4.8% 95.9%",
55
+ "muted-foreground": "240 3.8% 46.1%",
56
+ "destructive": "0 84.2% 60.2%",
57
+ "destructive-foreground": "0 0% 98%",
58
+ "border": "240 5.9% 90%",
59
+ "input": "240 5.9% 90%",
60
+ "ring": "240 10% 3.9%"
61
+ },
62
+ "dark": {
63
+ "background": "240 10% 3.9%",
64
+ "foreground": "0 0% 98%",
65
+ "card": "240 10% 3.9%",
66
+ "card-foreground": "0 0% 98%",
67
+ "popover": "240 10% 3.9%",
68
+ "popover-foreground": "0 0% 98%",
69
+ "primary": "0 0% 98%",
70
+ "primary-foreground": "240 5.9% 10%",
71
+ "secondary": "240 3.7% 15.9%",
72
+ "secondary-foreground": "0 0% 98%",
73
+ "muted": "240 3.7% 15.9%",
74
+ "muted-foreground": "240 5% 64.9%",
75
+ "destructive": "0 62.8% 30.6%",
76
+ "destructive-foreground": "0 0% 98%",
77
+ "border": "240 3.7% 15.9%",
78
+ "input": "240 3.7% 15.9%",
79
+ "ring": "240 4.9% 83.9%"
80
+ }
81
+ },
82
+ "templates": {
83
+ "tailwind": {
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 240 10% 3.9%;\n --muted: 240 4.8% 95.9%;\n --muted-foreground: 240 3.8% 46.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 240 10% 3.9%;\n --card: 0 0% 100%;\n --card-foreground: 240 10% 3.9%;\n --border: 240 5.9% 90%;\n --input: 240 5.9% 90%;\n --primary: 240 5.9% 10%;\n --primary-foreground: 0 0% 98%;\n --secondary: 240 4.8% 95.9%;\n --secondary-foreground: 240 5.9% 10%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n --ring: 240 10% 3.9%;\n }\n \n .dark {\n --background: 240 10% 3.9%;\n --foreground: 0 0% 98%;\n --muted: 240 3.7% 15.9%;\n --muted-foreground: 240 5% 64.9%;\n --popover: 240 10% 3.9%;\n --popover-foreground: 0 0% 98%;\n --card: 240 10% 3.9%;\n --card-foreground: 0 0% 98%;\n --border: 240 3.7% 15.9%;\n --input: 240 3.7% 15.9%;\n --primary: 0 0% 98%;\n --primary-foreground: 240 5.9% 10%;\n --secondary: 240 3.7% 15.9%;\n --secondary-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 0% 98%;\n --ring: 240 4.9% 83.9%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
+ },
86
+ "css": {
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 240 10% 3.9%;\n --muted: 240 4.8% 95.9%;\n --muted-foreground: 240 3.8% 46.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 240 10% 3.9%;\n --card: 0 0% 100%;\n --card-foreground: 240 10% 3.9%;\n --border: 240 5.9% 90%;\n --input: 240 5.9% 90%;\n --primary: 240 5.9% 10%;\n --primary-foreground: 0 0% 98%;\n --secondary: 240 4.8% 95.9%;\n --secondary-foreground: 240 5.9% 10%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n --ring: 240 10% 3.9%;\n }\n \n .dark {\n --background: 240 10% 3.9%;\n --foreground: 0 0% 98%;\n --muted: 240 3.7% 15.9%;\n --muted-foreground: 240 5% 64.9%;\n --popover: 240 10% 3.9%;\n --popover-foreground: 0 0% 98%;\n --card: 240 10% 3.9%;\n --card-foreground: 0 0% 98%;\n --border: 240 3.7% 15.9%;\n --input: 240 3.7% 15.9%;\n --primary: 0 0% 98%;\n --primary-foreground: 240 5.9% 10%;\n --secondary: 240 3.7% 15.9%;\n --secondary-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 0% 98%;\n --ring: 240 4.9% 83.9%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
+ }
89
+ }
90
+ }
@@ -81,10 +81,10 @@
81
81
  },
82
82
  "templates": {
83
83
  "tailwind": {
84
- "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n }\n \n :root {\n --background: 0 0% 100%;\n --foreground: 144.9 80.4% 10%;\n --muted: 140.6 84.2% 92.5%;\n --muted-foreground: 142.1 70.6% 45.3%;\n --popover: 0 0% 100%;\n --popover-foreground: 144.9 80.4% 10%;\n --card: 0 0% 100%;\n --card-foreground: 144.9 80.4% 10%;\n --border: 141 78.9% 85.1%;\n --input: 141 78.9% 85.1%;\n --primary: 143.8 61.2% 20.2%;\n --primary-foreground: 138.5 76.5% 96.7%;\n --secondary: 140.6 84.2% 92.5%;\n --secondary-foreground: 143.8 61.2% 20.2%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 144.9 80.4% 10%;\n }\n \n .dark {\n --background: 144.9 80.4% 10%;\n --foreground: 138.5 76.5% 96.7%;\n --muted: 142.8 64.2% 24.1%;\n --muted-foreground: 141.9 69.2% 58%;\n --popover: 144.9 80.4% 10%;\n --popover-foreground: 138.5 76.5% 96.7%;\n --card: 144.9 80.4% 10%;\n --card-foreground: 138.5 76.5% 96.7%;\n --border: 142.8 64.2% 24.1%;\n --input: 142.8 64.2% 24.1%;\n --primary: 138.5 76.5% 96.7%;\n --primary-foreground: 143.8 61.2% 20.2%;\n --secondary: 142.8 64.2% 24.1%;\n --secondary-foreground: 138.5 76.5% 96.7%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 141.7 76.6% 73.1%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 144.9 80.4% 10%;\n --muted: 140.6 84.2% 92.5%;\n --muted-foreground: 142.1 70.6% 45.3%;\n --popover: 0 0% 100%;\n --popover-foreground: 144.9 80.4% 10%;\n --card: 0 0% 100%;\n --card-foreground: 144.9 80.4% 10%;\n --border: 141 78.9% 85.1%;\n --input: 141 78.9% 85.1%;\n --primary: 143.8 61.2% 20.2%;\n --primary-foreground: 138.5 76.5% 96.7%;\n --secondary: 140.6 84.2% 92.5%;\n --secondary-foreground: 143.8 61.2% 20.2%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 144.9 80.4% 10%;\n }\n \n .dark {\n --background: 144.9 80.4% 10%;\n --foreground: 138.5 76.5% 96.7%;\n --muted: 142.8 64.2% 24.1%;\n --muted-foreground: 141.9 69.2% 58%;\n --popover: 144.9 80.4% 10%;\n --popover-foreground: 138.5 76.5% 96.7%;\n --card: 144.9 80.4% 10%;\n --card-foreground: 138.5 76.5% 96.7%;\n --border: 142.8 64.2% 24.1%;\n --input: 142.8 64.2% 24.1%;\n --primary: 138.5 76.5% 96.7%;\n --primary-foreground: 143.8 61.2% 20.2%;\n --secondary: 142.8 64.2% 24.1%;\n --secondary-foreground: 138.5 76.5% 96.7%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 141.7 76.6% 73.1%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
85
  },
86
86
  "css": {
87
- "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n }\n\n :root {\n --background: 0 0% 100%;\n --foreground: 144.9 80.4% 10%;\n --muted: 140.6 84.2% 92.5%;\n --muted-foreground: 142.1 70.6% 45.3%;\n --popover: 0 0% 100%;\n --popover-foreground: 144.9 80.4% 10%;\n --card: 0 0% 100%;\n --card-foreground: 144.9 80.4% 10%;\n --border: 141 78.9% 85.1%;\n --input: 141 78.9% 85.1%;\n --primary: 143.8 61.2% 20.2%;\n --primary-foreground: 138.5 76.5% 96.7%;\n --secondary: 140.6 84.2% 92.5%;\n --secondary-foreground: 143.8 61.2% 20.2%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 144.9 80.4% 10%;\n }\n \n .dark {\n --background: 144.9 80.4% 10%;\n --foreground: 138.5 76.5% 96.7%;\n --muted: 142.8 64.2% 24.1%;\n --muted-foreground: 141.9 69.2% 58%;\n --popover: 144.9 80.4% 10%;\n --popover-foreground: 138.5 76.5% 96.7%;\n --card: 144.9 80.4% 10%;\n --card-foreground: 138.5 76.5% 96.7%;\n --border: 142.8 64.2% 24.1%;\n --input: 142.8 64.2% 24.1%;\n --primary: 138.5 76.5% 96.7%;\n --primary-foreground: 143.8 61.2% 20.2%;\n --secondary: 142.8 64.2% 24.1%;\n --secondary-foreground: 138.5 76.5% 96.7%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 141.7 76.6% 73.1%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 144.9 80.4% 10%;\n --muted: 140.6 84.2% 92.5%;\n --muted-foreground: 142.1 70.6% 45.3%;\n --popover: 0 0% 100%;\n --popover-foreground: 144.9 80.4% 10%;\n --card: 0 0% 100%;\n --card-foreground: 144.9 80.4% 10%;\n --border: 141 78.9% 85.1%;\n --input: 141 78.9% 85.1%;\n --primary: 143.8 61.2% 20.2%;\n --primary-foreground: 138.5 76.5% 96.7%;\n --secondary: 140.6 84.2% 92.5%;\n --secondary-foreground: 143.8 61.2% 20.2%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 144.9 80.4% 10%;\n }\n \n .dark {\n --background: 144.9 80.4% 10%;\n --foreground: 138.5 76.5% 96.7%;\n --muted: 142.8 64.2% 24.1%;\n --muted-foreground: 141.9 69.2% 58%;\n --popover: 144.9 80.4% 10%;\n --popover-foreground: 138.5 76.5% 96.7%;\n --card: 144.9 80.4% 10%;\n --card-foreground: 138.5 76.5% 96.7%;\n --border: 142.8 64.2% 24.1%;\n --input: 142.8 64.2% 24.1%;\n --primary: 138.5 76.5% 96.7%;\n --primary-foreground: 143.8 61.2% 20.2%;\n --secondary: 142.8 64.2% 24.1%;\n --secondary-foreground: 138.5 76.5% 96.7%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 138.5 76.5% 96.7%;\n --ring: 141.7 76.6% 73.1%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
88
  }
89
89
  }
90
90
  }
@@ -16,7 +16,7 @@
16
16
  "rgbChannel": "255 255 255",
17
17
  "hslChannel": "0 0% 100%"
18
18
  },
19
- "gray": [
19
+ "frosted-glass": [
20
20
  {
21
21
  "scale": 50,
22
22
  "hex": "#f9fafb",
@@ -106,7 +106,7 @@
106
106
  "hslChannel": "224 71.4% 4.1%"
107
107
  }
108
108
  ],
109
- "zinc": [
109
+ "grayscale": [
110
110
  {
111
111
  "scale": 50,
112
112
  "hex": "#fafafa",
@@ -646,96 +646,6 @@
646
646
  "hslChannel": "226.2 57% 21%"
647
647
  }
648
648
  ],
649
- "violet": [
650
- {
651
- "scale": 50,
652
- "hex": "#f5f3ff",
653
- "rgb": "rgb(245,243,255)",
654
- "hsl": "hsl(250,100%,97.6%)",
655
- "rgbChannel": "245 243 255",
656
- "hslChannel": "250 100% 97.6%"
657
- },
658
- {
659
- "scale": 100,
660
- "hex": "#ede9fe",
661
- "rgb": "rgb(237,233,254)",
662
- "hsl": "hsl(251.4,91.3%,95.5%)",
663
- "rgbChannel": "237 233 254",
664
- "hslChannel": "251.4 91.3% 95.5%"
665
- },
666
- {
667
- "scale": 200,
668
- "hex": "#ddd6fe",
669
- "rgb": "rgb(221,214,254)",
670
- "hsl": "hsl(250.5,95.2%,91.8%)",
671
- "rgbChannel": "221 214 254",
672
- "hslChannel": "250.5 95.2% 91.8%"
673
- },
674
- {
675
- "scale": 300,
676
- "hex": "#c4b5fd",
677
- "rgb": "rgb(196,181,253)",
678
- "hsl": "hsl(252.5,94.7%,85.1%)",
679
- "rgbChannel": "196 181 253",
680
- "hslChannel": "252.5 94.7% 85.1%"
681
- },
682
- {
683
- "scale": 400,
684
- "hex": "#a78bfa",
685
- "rgb": "rgb(167,139,250)",
686
- "hsl": "hsl(255.1,91.7%,76.3%)",
687
- "rgbChannel": "167 139 250",
688
- "hslChannel": "255.1 91.7% 76.3%"
689
- },
690
- {
691
- "scale": 500,
692
- "hex": "#8b5cf6",
693
- "rgb": "rgb(139,92,246)",
694
- "hsl": "hsl(258.3,89.5%,66.3%)",
695
- "rgbChannel": "139 92 246",
696
- "hslChannel": "258.3 89.5% 66.3%"
697
- },
698
- {
699
- "scale": 600,
700
- "hex": "#7c3aed",
701
- "rgb": "rgb(124,58,237)",
702
- "hsl": "hsl(262.1,83.3%,57.8%)",
703
- "rgbChannel": "124 58 237",
704
- "hslChannel": "262.1 83.3% 57.8%"
705
- },
706
- {
707
- "scale": 700,
708
- "hex": "#6d28d9",
709
- "rgb": "rgb(109,40,217)",
710
- "hsl": "hsl(263.4,70%,50.4%)",
711
- "rgbChannel": "109 40 217",
712
- "hslChannel": "263.4 70% 50.4%"
713
- },
714
- {
715
- "scale": 800,
716
- "hex": "#5b21b6",
717
- "rgb": "rgb(91,33,182)",
718
- "hsl": "hsl(263.4,69.3%,42.2%)",
719
- "rgbChannel": "91 33 182",
720
- "hslChannel": "263.4 69.3% 42.2%"
721
- },
722
- {
723
- "scale": 900,
724
- "hex": "#4c1d95",
725
- "rgb": "rgb(76,29,149)",
726
- "hsl": "hsl(263.5,67.4%,34.9%)",
727
- "rgbChannel": "76 29 149",
728
- "hslChannel": "263.5 67.4% 34.9%"
729
- },
730
- {
731
- "scale": 950,
732
- "hex": "#1e1b4b",
733
- "rgb": "rgb(46,16,101)",
734
- "hsl": "hsl(261.2,72.6%,22.9%)",
735
- "rgbChannel": "46 16 101",
736
- "hslChannel": "261.2 72.6% 22.9%"
737
- }
738
- ],
739
649
  "rose": [
740
650
  {
741
651
  "scale": 50,
@@ -81,10 +81,10 @@
81
81
  },
82
82
  "templates": {
83
83
  "tailwind": {
84
- "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n }\n \n :root {\n --background: 0 0% 100%;\n --foreground: 13 81.1% 14.5%;\n --muted: 34.3 100% 91.8%;\n --muted-foreground: 24.6 95% 53.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 13 81.1% 14.5%;\n --card: 0 0% 100%;\n --card-foreground: 13 81.1% 14.5%;\n --border: 32.1 97.7% 83.1%;\n --input: 32.1 97.7% 83.1%;\n --primary: 15.3 74.6% 27.8%;\n --primary-foreground: 33.3 100% 96.5%;\n --secondary: 34.3 100% 91.8%;\n --secondary-foreground: 15.3 74.6% 27.8%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 13 81.1% 14.5%;\n }\n \n .dark {\n --background: 13 81.1% 14.5%;\n --foreground: 33.3 100% 96.5%;\n --muted: 15 79.1% 33.7%;\n --muted-foreground: 27 96% 61%;\n --popover: 13 81.1% 14.5%;\n --popover-foreground: 33.3 100% 96.5%;\n --card: 13 81.1% 14.5%;\n --card-foreground: 33.3 100% 96.5%;\n --border: 15 79.1% 33.7%;\n --input: 15 79.1% 33.7%;\n --primary: 33.3 100% 96.5%;\n --primary-foreground: 15.3 74.6% 27.8%;\n --secondary: 15 79.1% 33.7%;\n --secondary-foreground: 33.3 100% 96.5%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 30.7 97.2% 72.4%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 13 81.1% 14.5%;\n --muted: 34.3 100% 91.8%;\n --muted-foreground: 24.6 95% 53.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 13 81.1% 14.5%;\n --card: 0 0% 100%;\n --card-foreground: 13 81.1% 14.5%;\n --border: 32.1 97.7% 83.1%;\n --input: 32.1 97.7% 83.1%;\n --primary: 15.3 74.6% 27.8%;\n --primary-foreground: 33.3 100% 96.5%;\n --secondary: 34.3 100% 91.8%;\n --secondary-foreground: 15.3 74.6% 27.8%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 13 81.1% 14.5%;\n }\n \n .dark {\n --background: 13 81.1% 14.5%;\n --foreground: 33.3 100% 96.5%;\n --muted: 15 79.1% 33.7%;\n --muted-foreground: 27 96% 61%;\n --popover: 13 81.1% 14.5%;\n --popover-foreground: 33.3 100% 96.5%;\n --card: 13 81.1% 14.5%;\n --card-foreground: 33.3 100% 96.5%;\n --border: 15 79.1% 33.7%;\n --input: 15 79.1% 33.7%;\n --primary: 33.3 100% 96.5%;\n --primary-foreground: 15.3 74.6% 27.8%;\n --secondary: 15 79.1% 33.7%;\n --secondary-foreground: 33.3 100% 96.5%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 30.7 97.2% 72.4%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
85
  },
86
86
  "css": {
87
- "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n }\n\n :root {\n --background: 0 0% 100%;\n --foreground: 13 81.1% 14.5%;\n --muted: 34.3 100% 91.8%;\n --muted-foreground: 24.6 95% 53.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 13 81.1% 14.5%;\n --card: 0 0% 100%;\n --card-foreground: 13 81.1% 14.5%;\n --border: 32.1 97.7% 83.1%;\n --input: 32.1 97.7% 83.1%;\n --primary: 15.3 74.6% 27.8%;\n --primary-foreground: 33.3 100% 96.5%;\n --secondary: 34.3 100% 91.8%;\n --secondary-foreground: 15.3 74.6% 27.8%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 13 81.1% 14.5%;\n }\n \n .dark {\n --background: 13 81.1% 14.5%;\n --foreground: 33.3 100% 96.5%;\n --muted: 15 79.1% 33.7%;\n --muted-foreground: 27 96% 61%;\n --popover: 13 81.1% 14.5%;\n --popover-foreground: 33.3 100% 96.5%;\n --card: 13 81.1% 14.5%;\n --card-foreground: 33.3 100% 96.5%;\n --border: 15 79.1% 33.7%;\n --input: 15 79.1% 33.7%;\n --primary: 33.3 100% 96.5%;\n --primary-foreground: 15.3 74.6% 27.8%;\n --secondary: 15 79.1% 33.7%;\n --secondary-foreground: 33.3 100% 96.5%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 30.7 97.2% 72.4%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 13 81.1% 14.5%;\n --muted: 34.3 100% 91.8%;\n --muted-foreground: 24.6 95% 53.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 13 81.1% 14.5%;\n --card: 0 0% 100%;\n --card-foreground: 13 81.1% 14.5%;\n --border: 32.1 97.7% 83.1%;\n --input: 32.1 97.7% 83.1%;\n --primary: 15.3 74.6% 27.8%;\n --primary-foreground: 33.3 100% 96.5%;\n --secondary: 34.3 100% 91.8%;\n --secondary-foreground: 15.3 74.6% 27.8%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 13 81.1% 14.5%;\n }\n \n .dark {\n --background: 13 81.1% 14.5%;\n --foreground: 33.3 100% 96.5%;\n --muted: 15 79.1% 33.7%;\n --muted-foreground: 27 96% 61%;\n --popover: 13 81.1% 14.5%;\n --popover-foreground: 33.3 100% 96.5%;\n --card: 13 81.1% 14.5%;\n --card-foreground: 33.3 100% 96.5%;\n --border: 15 79.1% 33.7%;\n --input: 15 79.1% 33.7%;\n --primary: 33.3 100% 96.5%;\n --primary-foreground: 15.3 74.6% 27.8%;\n --secondary: 15 79.1% 33.7%;\n --secondary-foreground: 33.3 100% 96.5%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 33.3 100% 96.5%;\n --ring: 30.7 97.2% 72.4%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
88
  }
89
89
  }
90
90
  }
@@ -81,10 +81,10 @@
81
81
  },
82
82
  "templates": {
83
83
  "tailwind": {
84
- "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n }\n \n :root {\n --background: 0 0% 100%;\n --foreground: 0 74.7% 15.5%;\n --muted: 0 93.3% 94.1%;\n --muted-foreground: 0 84.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 74.7% 15.5%;\n --card: 0 0% 100%;\n --card-foreground: 0 74.7% 15.5%;\n --border: 0 96.3% 89.4%;\n --input: 0 96.3% 89.4%;\n --primary: 0 62.8% 30.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 93.3% 94.1%;\n --secondary-foreground: 0 62.8% 30.6%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 74.7% 15.5%;\n }\n \n .dark {\n --background: 0 74.7% 15.5%;\n --foreground: 0 85.7% 97.3%;\n --muted: 0 70% 35.3%;\n --muted-foreground: 0 90.6% 70.8%;\n --popover: 0 74.7% 15.5%;\n --popover-foreground: 0 85.7% 97.3%;\n --card: 0 74.7% 15.5%;\n --card-foreground: 0 85.7% 97.3%;\n --border: 0 70% 35.3%;\n --input: 0 70% 35.3%;\n --primary: 0 85.7% 97.3%;\n --primary-foreground: 0 62.8% 30.6%;\n --secondary: 0 70% 35.3%;\n --secondary-foreground: 0 85.7% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 93.5% 81.8%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 0 74.7% 15.5%;\n --muted: 0 93.3% 94.1%;\n --muted-foreground: 0 84.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 74.7% 15.5%;\n --card: 0 0% 100%;\n --card-foreground: 0 74.7% 15.5%;\n --border: 0 96.3% 89.4%;\n --input: 0 96.3% 89.4%;\n --primary: 0 62.8% 30.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 93.3% 94.1%;\n --secondary-foreground: 0 62.8% 30.6%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 74.7% 15.5%;\n }\n \n .dark {\n --background: 0 74.7% 15.5%;\n --foreground: 0 85.7% 97.3%;\n --muted: 0 70% 35.3%;\n --muted-foreground: 0 90.6% 70.8%;\n --popover: 0 74.7% 15.5%;\n --popover-foreground: 0 85.7% 97.3%;\n --card: 0 74.7% 15.5%;\n --card-foreground: 0 85.7% 97.3%;\n --border: 0 70% 35.3%;\n --input: 0 70% 35.3%;\n --primary: 0 85.7% 97.3%;\n --primary-foreground: 0 62.8% 30.6%;\n --secondary: 0 70% 35.3%;\n --secondary-foreground: 0 85.7% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 93.5% 81.8%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
85
  },
86
86
  "css": {
87
- "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n }\n\n :root {\n --background: 0 0% 100%;\n --foreground: 0 74.7% 15.5%;\n --muted: 0 93.3% 94.1%;\n --muted-foreground: 0 84.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 74.7% 15.5%;\n --card: 0 0% 100%;\n --card-foreground: 0 74.7% 15.5%;\n --border: 0 96.3% 89.4%;\n --input: 0 96.3% 89.4%;\n --primary: 0 62.8% 30.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 93.3% 94.1%;\n --secondary-foreground: 0 62.8% 30.6%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 74.7% 15.5%;\n }\n \n .dark {\n --background: 0 74.7% 15.5%;\n --foreground: 0 85.7% 97.3%;\n --muted: 0 70% 35.3%;\n --muted-foreground: 0 90.6% 70.8%;\n --popover: 0 74.7% 15.5%;\n --popover-foreground: 0 85.7% 97.3%;\n --card: 0 74.7% 15.5%;\n --card-foreground: 0 85.7% 97.3%;\n --border: 0 70% 35.3%;\n --input: 0 70% 35.3%;\n --primary: 0 85.7% 97.3%;\n --primary-foreground: 0 62.8% 30.6%;\n --secondary: 0 70% 35.3%;\n --secondary-foreground: 0 85.7% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 93.5% 81.8%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 0 74.7% 15.5%;\n --muted: 0 93.3% 94.1%;\n --muted-foreground: 0 84.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 74.7% 15.5%;\n --card: 0 0% 100%;\n --card-foreground: 0 74.7% 15.5%;\n --border: 0 96.3% 89.4%;\n --input: 0 96.3% 89.4%;\n --primary: 0 62.8% 30.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 93.3% 94.1%;\n --secondary-foreground: 0 62.8% 30.6%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 74.7% 15.5%;\n }\n \n .dark {\n --background: 0 74.7% 15.5%;\n --foreground: 0 85.7% 97.3%;\n --muted: 0 70% 35.3%;\n --muted-foreground: 0 90.6% 70.8%;\n --popover: 0 74.7% 15.5%;\n --popover-foreground: 0 85.7% 97.3%;\n --card: 0 74.7% 15.5%;\n --card-foreground: 0 85.7% 97.3%;\n --border: 0 70% 35.3%;\n --input: 0 70% 35.3%;\n --primary: 0 85.7% 97.3%;\n --primary-foreground: 0 62.8% 30.6%;\n --secondary: 0 70% 35.3%;\n --secondary-foreground: 0 85.7% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 0 93.5% 81.8%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
88
  }
89
89
  }
90
90
  }
@@ -81,10 +81,10 @@
81
81
  },
82
82
  "templates": {
83
83
  "tailwind": {
84
- "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n }\n \n :root {\n --background: 0 0% 100%;\n --foreground: 343.1 87.7% 15.9%;\n --muted: 355.6 100% 94.7%;\n --muted-foreground: 349.7 89.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 343.1 87.7% 15.9%;\n --card: 0 0% 100%;\n --card-foreground: 343.1 87.7% 15.9%;\n --border: 352.7 96.1% 90%;\n --input: 352.7 96.1% 90%;\n --primary: 341.5 75.5% 30.4%;\n --primary-foreground: 355.7 100% 97.3%;\n --secondary: 355.6 100% 94.7%;\n --secondary-foreground: 341.5 75.5% 30.4%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 343.1 87.7% 15.9%;\n }\n \n .dark {\n --background: 343.1 87.7% 15.9%;\n --foreground: 355.7 100% 97.3%;\n --muted: 343.4 79.7% 34.7%;\n --muted-foreground: 351.3 94.5% 71.4%;\n --popover: 343.1 87.7% 15.9%;\n --popover-foreground: 355.7 100% 97.3%;\n --card: 343.1 87.7% 15.9%;\n --card-foreground: 355.7 100% 97.3%;\n --border: 343.4 79.7% 34.7%;\n --input: 343.4 79.7% 34.7%;\n --primary: 355.7 100% 97.3%;\n --primary-foreground: 341.5 75.5% 30.4%;\n --secondary: 343.4 79.7% 34.7%;\n --secondary-foreground: 355.7 100% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 352.6 95.7% 81.8%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 343.1 87.7% 15.9%;\n --muted: 355.6 100% 94.7%;\n --muted-foreground: 349.7 89.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 343.1 87.7% 15.9%;\n --card: 0 0% 100%;\n --card-foreground: 343.1 87.7% 15.9%;\n --border: 352.7 96.1% 90%;\n --input: 352.7 96.1% 90%;\n --primary: 341.5 75.5% 30.4%;\n --primary-foreground: 355.7 100% 97.3%;\n --secondary: 355.6 100% 94.7%;\n --secondary-foreground: 341.5 75.5% 30.4%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 343.1 87.7% 15.9%;\n }\n \n .dark {\n --background: 343.1 87.7% 15.9%;\n --foreground: 355.7 100% 97.3%;\n --muted: 343.4 79.7% 34.7%;\n --muted-foreground: 351.3 94.5% 71.4%;\n --popover: 343.1 87.7% 15.9%;\n --popover-foreground: 355.7 100% 97.3%;\n --card: 343.1 87.7% 15.9%;\n --card-foreground: 355.7 100% 97.3%;\n --border: 343.4 79.7% 34.7%;\n --input: 343.4 79.7% 34.7%;\n --primary: 355.7 100% 97.3%;\n --primary-foreground: 341.5 75.5% 30.4%;\n --secondary: 343.4 79.7% 34.7%;\n --secondary-foreground: 355.7 100% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 352.6 95.7% 81.8%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
85
  },
86
86
  "css": {
87
- "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n }\n\n :root {\n --background: 0 0% 100%;\n --foreground: 343.1 87.7% 15.9%;\n --muted: 355.6 100% 94.7%;\n --muted-foreground: 349.7 89.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 343.1 87.7% 15.9%;\n --card: 0 0% 100%;\n --card-foreground: 343.1 87.7% 15.9%;\n --border: 352.7 96.1% 90%;\n --input: 352.7 96.1% 90%;\n --primary: 341.5 75.5% 30.4%;\n --primary-foreground: 355.7 100% 97.3%;\n --secondary: 355.6 100% 94.7%;\n --secondary-foreground: 341.5 75.5% 30.4%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 343.1 87.7% 15.9%;\n }\n \n .dark {\n --background: 343.1 87.7% 15.9%;\n --foreground: 355.7 100% 97.3%;\n --muted: 343.4 79.7% 34.7%;\n --muted-foreground: 351.3 94.5% 71.4%;\n --popover: 343.1 87.7% 15.9%;\n --popover-foreground: 355.7 100% 97.3%;\n --card: 343.1 87.7% 15.9%;\n --card-foreground: 355.7 100% 97.3%;\n --border: 343.4 79.7% 34.7%;\n --input: 343.4 79.7% 34.7%;\n --primary: 355.7 100% 97.3%;\n --primary-foreground: 341.5 75.5% 30.4%;\n --secondary: 343.4 79.7% 34.7%;\n --secondary-foreground: 355.7 100% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 352.6 95.7% 81.8%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 343.1 87.7% 15.9%;\n --muted: 355.6 100% 94.7%;\n --muted-foreground: 349.7 89.2% 60.2%;\n --popover: 0 0% 100%;\n --popover-foreground: 343.1 87.7% 15.9%;\n --card: 0 0% 100%;\n --card-foreground: 343.1 87.7% 15.9%;\n --border: 352.7 96.1% 90%;\n --input: 352.7 96.1% 90%;\n --primary: 341.5 75.5% 30.4%;\n --primary-foreground: 355.7 100% 97.3%;\n --secondary: 355.6 100% 94.7%;\n --secondary-foreground: 341.5 75.5% 30.4%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 343.1 87.7% 15.9%;\n }\n \n .dark {\n --background: 343.1 87.7% 15.9%;\n --foreground: 355.7 100% 97.3%;\n --muted: 343.4 79.7% 34.7%;\n --muted-foreground: 351.3 94.5% 71.4%;\n --popover: 343.1 87.7% 15.9%;\n --popover-foreground: 355.7 100% 97.3%;\n --card: 343.1 87.7% 15.9%;\n --card-foreground: 355.7 100% 97.3%;\n --border: 343.4 79.7% 34.7%;\n --input: 343.4 79.7% 34.7%;\n --primary: 355.7 100% 97.3%;\n --primary-foreground: 341.5 75.5% 30.4%;\n --secondary: 343.4 79.7% 34.7%;\n --secondary-foreground: 355.7 100% 97.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 355.7 100% 97.3%;\n --ring: 352.6 95.7% 81.8%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
88
  }
89
89
  }
90
90
  }
@@ -81,10 +81,10 @@
81
81
  },
82
82
  "templates": {
83
83
  "tailwind": {
84
- "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n }\n \n :root {\n --background: 0 0% 100%;\n --foreground: 26 83.3% 14.1%;\n --muted: 54.9 96.7% 88%;\n --muted-foreground: 45.4 93.4% 47.5%;\n --popover: 0 0% 100%;\n --popover-foreground: 26 83.3% 14.1%;\n --card: 0 0% 100%;\n --card-foreground: 26 83.3% 14.1%;\n --border: 52.8 98.3% 76.9%;\n --input: 52.8 98.3% 76.9%;\n --primary: 28.4 72.5% 25.7%;\n --primary-foreground: 54.5 91.7% 95.3%;\n --secondary: 54.9 96.7% 88%;\n --secondary-foreground: 28.4 72.5% 25.7%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 26 83.3% 14.1%;\n }\n \n .dark {\n --background: 26 83.3% 14.1%;\n --foreground: 54.5 91.7% 95.3%;\n --muted: 31.8 81% 28.8%;\n --muted-foreground: 47.9 95.8% 53.1%;\n --popover: 26 83.3% 14.1%;\n --popover-foreground: 54.5 91.7% 95.3%;\n --card: 26 83.3% 14.1%;\n --card-foreground: 54.5 91.7% 95.3%;\n --border: 31.8 81% 28.8%;\n --input: 31.8 81% 28.8%;\n --primary: 54.5 91.7% 95.3%;\n --primary-foreground: 28.4 72.5% 25.7%;\n --secondary: 31.8 81% 28.8%;\n --secondary-foreground: 54.5 91.7% 95.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 50.4 97.8% 63.5%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
84
+ "withVariables": "@import \"tailwindcss\";\n@config \"../../tailwind.config.js\";\n\n@layer base {\n /* Override Tailwind 4 default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n\n --background: 0 0% 100%;\n --foreground: 26 83.3% 14.1%;\n --muted: 54.9 96.7% 88%;\n --muted-foreground: 45.4 93.4% 47.5%;\n --popover: 0 0% 100%;\n --popover-foreground: 26 83.3% 14.1%;\n --card: 0 0% 100%;\n --card-foreground: 26 83.3% 14.1%;\n --border: 52.8 98.3% 76.9%;\n --input: 52.8 98.3% 76.9%;\n --primary: 28.4 72.5% 25.7%;\n --primary-foreground: 54.5 91.7% 95.3%;\n --secondary: 54.9 96.7% 88%;\n --secondary-foreground: 28.4 72.5% 25.7%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 26 83.3% 14.1%;\n }\n \n .dark {\n --background: 26 83.3% 14.1%;\n --foreground: 54.5 91.7% 95.3%;\n --muted: 31.8 81% 28.8%;\n --muted-foreground: 47.9 95.8% 53.1%;\n --popover: 26 83.3% 14.1%;\n --popover-foreground: 54.5 91.7% 95.3%;\n --card: 26 83.3% 14.1%;\n --card-foreground: 54.5 91.7% 95.3%;\n --border: 31.8 81% 28.8%;\n --input: 31.8 81% 28.8%;\n --primary: 54.5 91.7% 95.3%;\n --primary-foreground: 28.4 72.5% 25.7%;\n --secondary: 31.8 81% 28.8%;\n --secondary-foreground: 54.5 91.7% 95.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 50.4 97.8% 63.5%;\n }\n\n * {\n @apply border-border;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
85
85
  },
86
86
  "css": {
87
- "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n\n :root {\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n }\n\n :root {\n --background: 0 0% 100%;\n --foreground: 26 83.3% 14.1%;\n --muted: 54.9 96.7% 88%;\n --muted-foreground: 45.4 93.4% 47.5%;\n --popover: 0 0% 100%;\n --popover-foreground: 26 83.3% 14.1%;\n --card: 0 0% 100%;\n --card-foreground: 26 83.3% 14.1%;\n --border: 52.8 98.3% 76.9%;\n --input: 52.8 98.3% 76.9%;\n --primary: 28.4 72.5% 25.7%;\n --primary-foreground: 54.5 91.7% 95.3%;\n --secondary: 54.9 96.7% 88%;\n --secondary-foreground: 28.4 72.5% 25.7%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 26 83.3% 14.1%;\n }\n \n .dark {\n --background: 26 83.3% 14.1%;\n --foreground: 54.5 91.7% 95.3%;\n --muted: 31.8 81% 28.8%;\n --muted-foreground: 47.9 95.8% 53.1%;\n --popover: 26 83.3% 14.1%;\n --popover-foreground: 54.5 91.7% 95.3%;\n --card: 26 83.3% 14.1%;\n --card-foreground: 54.5 91.7% 95.3%;\n --border: 31.8 81% 28.8%;\n --input: 31.8 81% 28.8%;\n --primary: 54.5 91.7% 95.3%;\n --primary-foreground: 28.4 72.5% 25.7%;\n --secondary: 31.8 81% 28.8%;\n --secondary-foreground: 54.5 91.7% 95.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 50.4 97.8% 63.5%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
87
+ "withVariables": "@layer base {\n /* Override preflight default hover cursor for buttons and button-like elements */\n button:not(:disabled),\n [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n \n :root {\n --backdrop-filter-blur: 32px;\n --radius: 0.5rem;\n --radius-full: 9999px;\n --radius-xl: calc(var(--radius) + 4px);\n --radius-lg: var(--radius);\n --radius-md: calc(var(--radius) - 2px);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-xs: min(calc(var(--radius) / 2.5), 6px);\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --shadow-md: \n 0 4px 6px -1px rgba(0, 0, 0, 0.02), \n 0 2px 4px -1px rgba(0, 0, 0, 0.02),\n 0 12px 24px rgba(0, 0, 0, 0.05);\n \n --background: 0 0% 100%;\n --foreground: 26 83.3% 14.1%;\n --muted: 54.9 96.7% 88%;\n --muted-foreground: 45.4 93.4% 47.5%;\n --popover: 0 0% 100%;\n --popover-foreground: 26 83.3% 14.1%;\n --card: 0 0% 100%;\n --card-foreground: 26 83.3% 14.1%;\n --border: 52.8 98.3% 76.9%;\n --input: 52.8 98.3% 76.9%;\n --primary: 28.4 72.5% 25.7%;\n --primary-foreground: 54.5 91.7% 95.3%;\n --secondary: 54.9 96.7% 88%;\n --secondary-foreground: 28.4 72.5% 25.7%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 26 83.3% 14.1%;\n }\n \n .dark {\n --background: 26 83.3% 14.1%;\n --foreground: 54.5 91.7% 95.3%;\n --muted: 31.8 81% 28.8%;\n --muted-foreground: 47.9 95.8% 53.1%;\n --popover: 26 83.3% 14.1%;\n --popover-foreground: 54.5 91.7% 95.3%;\n --card: 26 83.3% 14.1%;\n --card-foreground: 54.5 91.7% 95.3%;\n --border: 31.8 81% 28.8%;\n --input: 31.8 81% 28.8%;\n --primary: 54.5 91.7% 95.3%;\n --primary-foreground: 28.4 72.5% 25.7%;\n --secondary: 31.8 81% 28.8%;\n --secondary-foreground: 54.5 91.7% 95.3%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 54.5 91.7% 95.3%;\n --ring: 50.4 97.8% 63.5%;\n }\n\n * {\n border-color: hsl(var(--border));\n }\n \n body {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes collapsible-down {\n from {\n height: 0;\n }\n to {\n height: var(--reka-collapsible-content-height);\n }\n }\n\n @keyframes collapsible-up {\n from {\n height: var(--reka-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n\n .animate-fade-in {\n animation: fade-in 0.5s ease;\n }\n\n .animate-spin {\n animation: spin 1s linear infinite;\n }\n\n .fade-slide-top-enter-active,\n .fade-slide-top-leave-active {\n transition: all 0.3s ease;\n }\n\n .fade-slide-top-enter-from,\n .fade-slide-top-leave-to {\n opacity: 0;\n filter: blur(4px);\n transform: translateY(8px);\n }\n}"
88
88
  }
89
89
  }
90
90
  }
@@ -5,7 +5,7 @@
5
5
  "files": [
6
6
  {
7
7
  "name": "Button.vue",
8
- "content": "<script setup lang=\"ts\">\nimport { Primitive, type PrimitiveProps } from 'reka-ui';\nimport { Loader2Icon } from 'lucide-vue-next';\nimport { type ButtonVariants, buttonVariants } from '.';\n\ninterface Props extends PrimitiveProps {\n variant?: ButtonVariants['variant'];\n size?: ButtonVariants['size'];\n isLoading?: boolean;\n loadingText?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n as: 'button',\n isLoading: false,\n});\n</script>\n\n<template>\n <Primitive\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"[buttonVariants({ variant, size }), $attrs.class]\"\n :disabled=\"isLoading || $attrs.disabled\"\n >\n <Loader2Icon\n v-if=\"isLoading\"\n class=\"sigma-ui-button__loader\"\n />\n <template v-if=\"!isLoading || (isLoading && !loadingText)\">\n <slot />\n </template>\n <template v-else>\n {{ loadingText }}\n </template>\n </Primitive>\n</template>\n\n<style>\n.sigma-ui-button {\n display: inline-flex;\n width: fit-content;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius);\n font-size: 0.875rem;\n font-weight: 500;\n outline: none;\n transition: background-color 0.1s ease, colors 0.2s;\n user-select: none;\n white-space: nowrap;\n}\n\n.sigma-ui-button:focus-visible {\n box-shadow:\n 0 0 0 2px hsl(var(--background)),\n 0 0 0 4px hsl(var(--ring));\n outline: none;\n}\n\n.sigma-ui-button:disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n.sigma-ui-button--default {\n background-color: hsl(var(--primary));\n color: hsl(var(--primary-foreground));\n}\n\n.sigma-ui-button--default:hover {\n background-color: hsl(var(--primary) / 90%);\n}\n\n.sigma-ui-button--destructive {\n background-color: hsl(var(--destructive));\n color: hsl(var(--destructive-foreground));\n}\n\n.sigma-ui-button--destructive:hover {\n background-color: hsl(var(--destructive) / 90%);\n}\n\n.sigma-ui-button--outline {\n border: 1px solid hsl(var(--input));\n background-color: hsl(var(--background));\n}\n\n.sigma-ui-button--outline:hover {\n background-color: hsl(var(--secondary));\n color: hsl(var(--secondary-foreground));\n}\n\n.sigma-ui-button--secondary {\n background-color: hsl(var(--secondary));\n color: hsl(var(--secondary-foreground));\n}\n\n.sigma-ui-button--secondary:hover {\n background-color: hsl(var(--secondary) / 80%);\n}\n\n.sigma-ui-button--ghost:hover {\n background-color: hsl(var(--secondary));\n color: hsl(var(--secondary-foreground));\n}\n\n.sigma-ui-button--link {\n color: hsl(var(--primary));\n text-underline-offset: 4px;\n}\n\n.sigma-ui-button--link:hover {\n text-decoration: underline;\n}\n\n.sigma-ui-button--size-default {\n height: 2.5rem;\n padding: 0.5rem 1rem;\n}\n\n.sigma-ui-button--size-xs {\n height: 1.75rem;\n padding: 0 0.5rem;\n border-radius: 0.25rem;\n}\n\n.sigma-ui-button--size-sm {\n height: 2.25rem;\n padding: 0 0.75rem;\n border-radius: var(--radius);\n}\n\n.sigma-ui-button--size-lg {\n height: 2.75rem;\n padding: 0 2rem;\n border-radius: var(--radius);\n}\n\n.sigma-ui-button--size-icon {\n width: 2.5rem;\n height: 2.5rem;\n}\n\n.sigma-ui-button__loader {\n width: 1rem;\n height: 1rem;\n margin-right: 0.5rem;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n</style>\n"
8
+ "content": "<script setup lang=\"ts\">\nimport { Primitive, type PrimitiveProps } from 'reka-ui';\nimport { Loader2Icon } from 'lucide-vue-next';\nimport { type ButtonVariants, buttonVariants } from '.';\n\ninterface Props extends PrimitiveProps {\n variant?: ButtonVariants['variant'];\n size?: ButtonVariants['size'];\n isLoading?: boolean;\n loadingText?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n as: 'button',\n isLoading: false,\n});\n</script>\n\n<template>\n <Primitive\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"[buttonVariants({ variant, size }), $attrs.class]\"\n :disabled=\"isLoading || $attrs.disabled\"\n >\n <Loader2Icon\n v-if=\"isLoading\"\n class=\"sigma-ui-button__loader\"\n />\n <template v-if=\"!isLoading || (isLoading && !loadingText)\">\n <slot />\n </template>\n <template v-else>\n {{ loadingText }}\n </template>\n </Primitive>\n</template>\n\n<style>\n.sigma-ui-button {\n display: inline-flex;\n width: fit-content;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius);\n font-size: 0.875rem;\n font-weight: 500;\n outline: none;\n transition: background-color 0.1s ease, colors 0.2s;\n user-select: none;\n white-space: nowrap;\n}\n\n.sigma-ui-button:focus-visible {\n box-shadow:\n 0 0 0 2px hsl(var(--background)),\n 0 0 0 4px hsl(var(--ring));\n outline: none;\n}\n\n.sigma-ui-button:disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n.sigma-ui-button--default {\n background-color: hsl(var(--primary));\n color: hsl(var(--primary-foreground));\n}\n\n.sigma-ui-button--default:hover {\n background-color: hsl(var(--primary) / 90%);\n}\n\n.sigma-ui-button--destructive {\n background-color: hsl(var(--destructive));\n color: hsl(var(--destructive-foreground));\n}\n\n.sigma-ui-button--destructive:hover {\n background-color: hsl(var(--destructive) / 90%);\n}\n\n.sigma-ui-button--outline {\n border: 1px solid hsl(var(--border));\n background-color: transparent;\n}\n\n.sigma-ui-button--outline:hover {\n background-color: hsl(var(--secondary));\n color: hsl(var(--secondary-foreground));\n}\n\n.sigma-ui-button--secondary {\n background-color: hsl(var(--secondary));\n color: hsl(var(--secondary-foreground));\n}\n\n.sigma-ui-button--secondary:hover {\n background-color: hsl(var(--secondary) / 80%);\n}\n\n.sigma-ui-button--ghost:hover {\n background-color: hsl(var(--secondary));\n color: hsl(var(--secondary-foreground));\n}\n\n.sigma-ui-button--link {\n color: hsl(var(--primary));\n text-underline-offset: 4px;\n}\n\n.sigma-ui-button--link:hover {\n text-decoration: underline;\n}\n\n.sigma-ui-button--size-default {\n height: 2.5rem;\n padding: 0.5rem 1rem;\n}\n\n.sigma-ui-button--size-xs {\n height: 1.75rem;\n padding: 0 0.5rem;\n border-radius: 0.25rem;\n}\n\n.sigma-ui-button--size-sm {\n height: 2.25rem;\n padding: 0 0.75rem;\n border-radius: var(--radius);\n}\n\n.sigma-ui-button--size-lg {\n height: 2.75rem;\n padding: 0 2rem;\n border-radius: var(--radius);\n}\n\n.sigma-ui-button--size-icon {\n width: 2.5rem;\n height: 2.5rem;\n}\n\n.sigma-ui-button__loader {\n width: 1rem;\n height: 1rem;\n margin-right: 0.5rem;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n</style>\n"
9
9
  },
10
10
  {
11
11
  "name": "index.ts",
@@ -7,7 +7,7 @@
7
7
  "files": [
8
8
  {
9
9
  "name": "CardLightbox.vue",
10
- "content": "<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { AnimatePresence, motion } from 'motion-v';\nimport type { Item } from './types';\nimport { XIcon } from 'lucide-vue-next';\n\ntype Props = {\n items: Item[];\n};\n\nconst props = defineProps<Props>();\n\nconst openId = ref<string | null>(null);\n\nonMounted(() => {\n document.addEventListener('keydown', handleEscKeydown);\n});\n\nonUnmounted(() => {\n document.removeEventListener('keydown', handleEscKeydown);\n});\n\nfunction getTheme(id: string) {\n return props.items.find(item => item.id === id)?.theme;\n}\n\nfunction open(id: string) {\n openId.value = id;\n}\n\nfunction close() {\n openId.value = null;\n}\n\nfunction handleEscKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n close();\n }\n}\n</script>\n\n<template>\n <div class=\"card-lightbox\">\n <ul class=\"card-lightbox__grid\">\n <motion.button\n v-for=\"card in props.items\"\n :key=\"card.id\"\n :data-open=\"openId === card.id\"\n :class=\"[\n 'card-lightbox__card',\n {\n 'theme-dark': getTheme(card.id) === 'dark',\n 'theme-light': getTheme(card.id) === 'light'\n }\n ]\"\n @click=\"() => open(card.id)\"\n >\n <motion.div\n class=\"card-lightbox__card-content animate-fade-in\"\n :layout-id=\"`card-container-${card.id}`\"\n >\n <motion.div\n class=\"card-lightbox__card-image-container\"\n :layout-id=\"`card-image-container-${card.id}`\"\n >\n <motion.img\n class=\"card-lightbox__card-image\"\n :src=\"card.image\"\n alt=\"\"\n />\n <div class=\"card-lightbox__image-overlay\" />\n </motion.div>\n <motion.div\n class=\"card-lightbox__card-title-container\"\n :layout-id=\"`title-container-${card.id}`\"\n layout=\"position\"\n >\n <span class=\"card-lightbox__card-category\">{{ card.category }}</span>\n <h2 class=\"card-lightbox__card-title\">\n {{ card.title }}\n </h2>\n </motion.div>\n </motion.div>\n </motion.button>\n </ul>\n <AnimatePresence>\n <motion.div\n v-if=\"openId\"\n :initial=\"{ opacity: 0 }\"\n :animate=\"{ opacity: 1 }\"\n :exit=\"{ opacity: 0 }\"\n :transition=\"{ duration: 0.2 }\"\n style=\"pointer-events: auto\"\n class=\"card-lightbox__expanded-overlay\"\n @click=\"close\"\n />\n </AnimatePresence>\n <AnimatePresence>\n <div\n v-if=\"openId\"\n :class=\"[\n 'card-lightbox__expanded-container',\n {\n 'theme-dark': getTheme(openId) === 'dark',\n 'theme-light': getTheme(openId) === 'light'\n }\n ]\"\n >\n <motion.div\n class=\"card-lightbox__expanded-content\"\n :layout-id=\"`card-container-${openId}`\"\n >\n <motion.div\n class=\"card-lightbox__expanded-image-container\"\n :layout-id=\"`card-image-container-${openId}`\"\n >\n <motion.img\n class=\"card-lightbox__expanded-image\"\n :src=\"props.items.find(item => item.id === openId)?.image\"\n alt=\"\"\n :layout-id=\"`card-image-${openId}`\"\n :initial=\"{ opacity: 0, filter: 'blur(12px)' }\"\n :animate=\"{ opacity: 1, filter: 'blur(0px)' }\"\n :exit=\"{ opacity: 0, filter: 'blur(12px)' }\"\n :transition=\"{ duration: 0.5 }\"\n />\n <div class=\"card-lightbox__image-overlay\" />\n <motion.div\n class=\"card-lightbox__expanded-title-container\"\n :layout-id=\"`title-container-${openId}`\"\n layout=\"position\"\n >\n <span class=\"card-lightbox__expanded-category\">{{ props.items.find(item => item.id === openId)?.category }}</span>\n <h2 class=\"card-lightbox__expanded-title\">\n {{ props.items.find(item => item.id === openId)?.title }}\n </h2>\n </motion.div>\n <motion.div\n class=\"card-lightbox__expanded-close-button\"\n @click=\"close\"\n >\n <XIcon />\n </motion.div>\n </motion.div>\n <motion.div class=\"card-lightbox__expanded-body\">\n <div v-html=\"props.items.find(item => item.id === openId)?.content\" />\n </motion.div>\n </motion.div>\n </div>\n </AnimatePresence>\n </div>\n</template>\n\n<style scoped>\n.card-lightbox {\n display: flex;\n width: 100%;\n max-width: 990px;\n flex-direction: column;\n margin: 0 auto;\n container-type: inline-size;\n}\n\n.card-lightbox,\n.card-lightbox * {\n box-sizing: border-box;\n}\n\n.card-lightbox__grid {\n display: grid;\n padding: 0;\n margin: 0;\n gap: 20px;\n grid-template-columns: repeat(10, 1fr);\n list-style: none;\n}\n\n.card-lightbox__card {\n position: relative;\n overflow: hidden;\n height: 420px;\n box-sizing: border-box;\n padding: 0;\n grid-column: span 4;\n}\n\n.card-lightbox__card:focus-visible {\n border-radius: 20px;\n box-shadow:\n 0 0 0 2px hsl(var(--background)),\n 0 0 0 4px hsl(var(--ring));\n outline: none;\n}\n\n.card-lightbox__card:nth-child(4n + 1),\n.card-lightbox__card:nth-child(4n + 4) {\n grid-column: span 6;\n}\n\n.theme-light .card-lightbox__image-overlay {\n position: absolute;\n z-index: 1;\n background: linear-gradient(160deg, rgb(0 0 0 / 95%) -8%, rgb(0 0 0 / 0%) 30%);\n content: '';\n inset: 0;\n pointer-events: none;\n}\n\n.theme-dark .card-lightbox__image-overlay {\n position: absolute;\n z-index: 1;\n background: linear-gradient(160deg, rgb(255 255 255 / 95%) -8%, rgb(255 255 255 / 0%) 30%);\n content: '';\n inset: 0;\n pointer-events: none;\n}\n\n.card-lightbox__expanded-container {\n position: fixed;\n z-index: 51;\n top: 0;\n right: 0;\n left: 0;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 0;\n pointer-events: none;\n}\n\n.card-lightbox__card-content,\n.card-lightbox__expanded-content {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n border-radius: 20px;\n margin: 0 auto;\n background: hsl(var(--card));\n pointer-events: auto;\n user-select: none;\n}\n\n.card-lightbox__expanded-content {\n overflow: hidden;\n width: unset;\n max-width: 700px;\n height: 70dvh;\n overflow-y: auto;\n pointer-events: auto;\n}\n\n.card-lightbox__card-image-container,\n.card-lightbox__expanded-image-container {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 420px;\n}\n\n.card-lightbox__card-image,\n.card-lightbox__expanded-image {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n pointer-events: none;\n transform: none;\n}\n\n.card-lightbox__card-title-container {\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n max-width: 300px;\n padding: 20px;\n text-align: left;\n}\n\n.card-lightbox__expanded-title-container {\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n padding: 20px;\n}\n\n.card-lightbox__expanded-close-button {\n position: absolute;\n z-index: 2;\n top: 0;\n right: 0;\n padding: 20px;\n cursor: pointer;\n}\n\n.card-lightbox__card-title,\n.card-lightbox__expanded-title {\n margin: 8px 0;\n color: hsl(0deg 0% 100%);\n font-size: 20px;\n font-weight: 600;\n}\n\n.card-lightbox__card-category,\n.card-lightbox__expanded-category {\n padding: 4px 8px;\n border-radius: 12px;\n backdrop-filter: blur(8px);\n background: hsl(0deg 0% 100% / 12%);\n color: hsl(0deg 0% 100%);\n font-size: 12px;\n text-transform: uppercase;\n}\n\n.theme-dark .card-lightbox__card-category,\n.theme-dark .card-lightbox__expanded-category {\n background: hsl(240deg 10% 3.9% / 20%);\n}\n\n.card-lightbox__expanded-overlay {\n position: fixed;\n z-index: 50;\n backdrop-filter: blur(12px);\n background: rgb(0 0 0 / 20%);\n inset: 0;\n will-change: opacity;\n}\n\n.card-lightbox__expanded-body {\n width: 100vw;\n max-width: 700px;\n padding: 35px;\n color: hsl(var(--primary));\n}\n\n.theme-dark .card-lightbox__card-category,\n.theme-dark .card-lightbox__card-title,\n.theme-dark .card-lightbox__expanded-title-container,\n.theme-dark .card-lightbox__expanded-title,\n.theme-dark .card-lightbox__expanded-category {\n color: hsl(240deg 10% 3.9% / 90%);\n}\n\n.theme-dark svg {\n stroke: hsl(240deg 10% 3.9% / 90%);\n}\n\n.theme-light svg {\n stroke: hsl(0deg 0% 100%);\n}\n\n@media only screen and (width <= 990px) {\n .card-lightbox__expanded-container {\n padding: 0;\n }\n\n .card-lightbox__expanded-content {\n overflow: hidden;\n width: 100vw;\n max-width: 100vw;\n height: 100dvh;\n border-radius: 0;\n overflow-y: auto;\n pointer-events: auto;\n }\n\n .card-lightbox__card-image-container,\n .card-lightbox__expanded-image-container {\n height: 280px;\n }\n}\n\n@container (max-width: 600px) {\n #sandbox {\n align-items: stretch;\n }\n\n .card-lightbox {\n padding: 60px 20px;\n padding-right: 10px;\n padding-left: 10px;\n }\n\n .card-lightbox__grid {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n\n .card-lightbox__card {\n width: 100%;\n height: 280px;\n grid-column: auto / auto;\n }\n\n .card-lightbox__card:nth-child(4n + 1),\n .card-lightbox__card:nth-child(4n + 4) {\n grid-column: auto / auto;\n }\n\n .card-lightbox__card-image {\n position: absolute;\n width: 100%;\n height: 100%;\n inset: 0;\n object-fit: cover;\n }\n}\n</style>\n"
10
+ "content": "<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { AnimatePresence, motion } from 'motion-v';\nimport type { Item } from './types';\nimport { XIcon } from 'lucide-vue-next';\n\ntype Props = {\n items: Item[];\n};\n\nconst props = defineProps<Props>();\n\nconst openId = ref<string | null>(null);\n\nonMounted(() => {\n document.addEventListener('keydown', handleEscKeydown);\n});\n\nonUnmounted(() => {\n document.removeEventListener('keydown', handleEscKeydown);\n});\n\nfunction getTheme(id: string) {\n return props.items.find(item => item.id === id)?.theme;\n}\n\nfunction open(id: string) {\n openId.value = id;\n}\n\nfunction close() {\n openId.value = null;\n}\n\nfunction handleEscKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n close();\n }\n}\n</script>\n\n<template>\n <div class=\"card-lightbox\">\n <ul class=\"card-lightbox__grid\">\n <motion.button\n v-for=\"card in props.items\"\n :key=\"card.id\"\n :data-open=\"openId === card.id\"\n :class=\"[\n 'card-lightbox__card',\n {\n 'theme-dark': getTheme(card.id) === 'dark',\n 'theme-light': getTheme(card.id) === 'light'\n }\n ]\"\n @click=\"() => open(card.id)\"\n >\n <motion.div\n class=\"card-lightbox__card-content animate-fade-in\"\n :layout-id=\"`card-container-${card.id}`\"\n >\n <motion.div\n class=\"card-lightbox__card-image-container\"\n :layout-id=\"`card-image-container-${card.id}`\"\n >\n <motion.img\n class=\"card-lightbox__card-image\"\n :src=\"card.image\"\n alt=\"\"\n />\n <div class=\"card-lightbox__image-overlay\" />\n </motion.div>\n <motion.div\n class=\"card-lightbox__card-title-container\"\n :layout-id=\"`title-container-${card.id}`\"\n layout=\"position\"\n >\n <span class=\"card-lightbox__card-category\">{{ card.category }}</span>\n <h2 class=\"card-lightbox__card-title\">\n {{ card.title }}\n </h2>\n </motion.div>\n </motion.div>\n </motion.button>\n </ul>\n <AnimatePresence>\n <motion.div\n v-if=\"openId\"\n :initial=\"{ opacity: 0 }\"\n :animate=\"{ opacity: 1 }\"\n :exit=\"{ opacity: 0 }\"\n :transition=\"{ duration: 0.2 }\"\n style=\"pointer-events: auto\"\n class=\"card-lightbox__expanded-overlay\"\n @click=\"close\"\n />\n </AnimatePresence>\n <AnimatePresence>\n <div\n v-if=\"openId\"\n :class=\"[\n 'card-lightbox__expanded-container',\n {\n 'theme-dark': getTheme(openId) === 'dark',\n 'theme-light': getTheme(openId) === 'light'\n }\n ]\"\n >\n <motion.div\n class=\"card-lightbox__expanded-content\"\n :layout-id=\"`card-container-${openId}`\"\n >\n <motion.div\n class=\"card-lightbox__expanded-image-container\"\n :layout-id=\"`card-image-container-${openId}`\"\n >\n <motion.img\n class=\"card-lightbox__expanded-image\"\n :src=\"props.items.find(item => item.id === openId)?.image\"\n alt=\"\"\n :layout-id=\"`card-image-${openId}`\"\n :initial=\"{ opacity: 0, filter: 'blur(12px)' }\"\n :animate=\"{ opacity: 1, filter: 'blur(0px)' }\"\n :exit=\"{ opacity: 0, filter: 'blur(12px)' }\"\n :transition=\"{ duration: 0.5 }\"\n />\n <div class=\"card-lightbox__image-overlay\" />\n <motion.div\n class=\"card-lightbox__expanded-title-container\"\n :layout-id=\"`title-container-${openId}`\"\n layout=\"position\"\n >\n <span class=\"card-lightbox__expanded-category\">{{ props.items.find(item => item.id === openId)?.category }}</span>\n <h2 class=\"card-lightbox__expanded-title\">\n {{ props.items.find(item => item.id === openId)?.title }}\n </h2>\n </motion.div>\n <motion.div\n class=\"card-lightbox__expanded-close-button\"\n @click=\"close\"\n >\n <XIcon />\n </motion.div>\n </motion.div>\n <motion.div class=\"card-lightbox__expanded-body\">\n <div v-html=\"props.items.find(item => item.id === openId)?.content\" />\n </motion.div>\n </motion.div>\n </div>\n </AnimatePresence>\n </div>\n</template>\n\n<style scoped>\n.card-lightbox {\n display: flex;\n width: 100%;\n max-width: 990px;\n flex-direction: column;\n margin: 0 auto;\n container-type: inline-size;\n}\n\n.card-lightbox,\n.card-lightbox * {\n box-sizing: border-box;\n}\n\n.card-lightbox__grid {\n display: grid;\n padding: 0;\n margin: 0;\n gap: 20px;\n grid-template-columns: repeat(10, 1fr);\n list-style: none;\n}\n\n.card-lightbox__card {\n position: relative;\n overflow: hidden;\n height: 420px;\n box-sizing: border-box;\n padding: 0;\n grid-column: span 4;\n}\n\n.card-lightbox__card:focus-visible {\n border-radius: 20px;\n box-shadow:\n 0 0 0 2px hsl(var(--background)),\n 0 0 0 4px hsl(var(--ring));\n outline: none;\n}\n\n.card-lightbox__card:nth-child(4n + 1),\n.card-lightbox__card:nth-child(4n + 4) {\n grid-column: span 6;\n}\n\n.theme-light .card-lightbox__image-overlay {\n position: absolute;\n z-index: 1;\n background: linear-gradient(160deg, rgb(0 0 0 / 95%) -8%, rgb(0 0 0 / 0%) 30%);\n content: '';\n inset: 0;\n pointer-events: none;\n}\n\n.theme-dark .card-lightbox__image-overlay {\n position: absolute;\n z-index: 1;\n background: linear-gradient(160deg, rgb(255 255 255 / 95%) -8%, rgb(255 255 255 / 0%) 30%);\n content: '';\n inset: 0;\n pointer-events: none;\n}\n\n.card-lightbox__expanded-container {\n position: fixed;\n z-index: 51;\n top: 0;\n right: 0;\n left: 0;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 0;\n pointer-events: none;\n}\n\n.card-lightbox__card-content,\n.card-lightbox__expanded-content {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n border-radius: 20px;\n margin: 0 auto;\n background: hsl(var(--background));\n pointer-events: auto;\n user-select: none;\n}\n\n.card-lightbox__expanded-content {\n overflow: hidden;\n width: unset;\n max-width: 700px;\n height: 70dvh;\n overflow-y: auto;\n pointer-events: auto;\n}\n\n.card-lightbox__card-image-container,\n.card-lightbox__expanded-image-container {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 420px;\n}\n\n.card-lightbox__card-image,\n.card-lightbox__expanded-image {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n pointer-events: none;\n transform: none;\n}\n\n.card-lightbox__card-title-container {\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n max-width: 300px;\n padding: 20px;\n text-align: left;\n}\n\n.card-lightbox__expanded-title-container {\n position: absolute;\n z-index: 2;\n top: 0;\n left: 0;\n padding: 20px;\n}\n\n.card-lightbox__expanded-close-button {\n position: absolute;\n z-index: 2;\n top: 0;\n right: 0;\n padding: 20px;\n cursor: pointer;\n}\n\n.card-lightbox__card-title,\n.card-lightbox__expanded-title {\n margin: 8px 0;\n color: hsl(0deg 0% 100%);\n font-size: 20px;\n font-weight: 600;\n}\n\n.card-lightbox__card-category,\n.card-lightbox__expanded-category {\n padding: 4px 8px;\n border-radius: 12px;\n backdrop-filter: blur(8px);\n background: hsl(0deg 0% 100% / 12%);\n color: hsl(0deg 0% 100%);\n font-size: 12px;\n text-transform: uppercase;\n}\n\n.theme-dark .card-lightbox__card-category,\n.theme-dark .card-lightbox__expanded-category {\n background: hsl(240deg 10% 3.9% / 20%);\n}\n\n.card-lightbox__expanded-overlay {\n position: fixed;\n z-index: 50;\n backdrop-filter: blur(12px);\n background: rgb(0 0 0 / 20%);\n inset: 0;\n will-change: opacity;\n}\n\n.card-lightbox__expanded-body {\n width: 100vw;\n max-width: 700px;\n padding: 35px;\n color: hsl(var(--primary));\n}\n\n.theme-dark .card-lightbox__card-category,\n.theme-dark .card-lightbox__card-title,\n.theme-dark .card-lightbox__expanded-title-container,\n.theme-dark .card-lightbox__expanded-title,\n.theme-dark .card-lightbox__expanded-category {\n color: hsl(240deg 10% 3.9% / 90%);\n}\n\n.theme-dark svg {\n stroke: hsl(240deg 10% 3.9% / 90%);\n}\n\n.theme-light svg {\n stroke: hsl(0deg 0% 100%);\n}\n\n@media only screen and (width <= 990px) {\n .card-lightbox__expanded-container {\n padding: 0;\n }\n\n .card-lightbox__expanded-content {\n overflow: hidden;\n width: 100vw;\n max-width: 100vw;\n height: 100dvh;\n border-radius: 0;\n overflow-y: auto;\n pointer-events: auto;\n }\n\n .card-lightbox__card-image-container,\n .card-lightbox__expanded-image-container {\n height: 280px;\n }\n}\n\n@container (max-width: 600px) {\n #sandbox {\n align-items: stretch;\n }\n\n .card-lightbox {\n padding: 60px 20px;\n padding-right: 10px;\n padding-left: 10px;\n }\n\n .card-lightbox__grid {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n\n .card-lightbox__card {\n width: 100%;\n height: 280px;\n grid-column: auto / auto;\n }\n\n .card-lightbox__card:nth-child(4n + 1),\n .card-lightbox__card:nth-child(4n + 4) {\n grid-column: auto / auto;\n }\n\n .card-lightbox__card-image {\n position: absolute;\n width: 100%;\n height: 100%;\n inset: 0;\n object-fit: cover;\n }\n}\n</style>\n"
11
11
  },
12
12
  {
13
13
  "name": "index.ts",