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.
- package/__generated/registry-schemes/colors/blue.json +2 -2
- package/__generated/registry-schemes/colors/frosted-glass.json +90 -0
- package/__generated/registry-schemes/colors/grayscale.json +90 -0
- package/__generated/registry-schemes/colors/green.json +2 -2
- package/__generated/registry-schemes/colors/index.json +2 -92
- package/__generated/registry-schemes/colors/orange.json +2 -2
- package/__generated/registry-schemes/colors/red.json +2 -2
- package/__generated/registry-schemes/colors/rose.json +2 -2
- package/__generated/registry-schemes/colors/yellow.json +2 -2
- package/__generated/registry-schemes/style-system/css/button.json +1 -1
- package/__generated/registry-schemes/style-system/css/card-lightbox.json +1 -1
- package/__generated/registry-schemes/style-system/css/combobox.json +2 -2
- package/__generated/registry-schemes/style-system/css/context-menu.json +2 -2
- package/__generated/registry-schemes/style-system/css/dropdown-menu.json +2 -2
- package/__generated/registry-schemes/style-system/css/input.json +1 -1
- package/__generated/registry-schemes/style-system/css/menubar.json +2 -2
- package/__generated/registry-schemes/style-system/css/navigation-menu.json +1 -1
- package/__generated/registry-schemes/style-system/css/number-field.json +1 -1
- package/__generated/registry-schemes/style-system/css/popover.json +1 -1
- package/__generated/registry-schemes/style-system/css/select.json +2 -2
- package/__generated/registry-schemes/style-system/css/sheet.json +1 -1
- package/__generated/registry-schemes/style-system/css/switch.json +1 -1
- package/__generated/registry-schemes/style-system/css/tabs.json +1 -1
- package/__generated/registry-schemes/style-system/css/tags-input.json +1 -1
- package/__generated/registry-schemes/style-system/css/textarea.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/button.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/card-lightbox.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/combobox.json +2 -2
- package/__generated/registry-schemes/style-system/tailwind/context-menu.json +2 -2
- package/__generated/registry-schemes/style-system/tailwind/dropdown-menu.json +2 -2
- package/__generated/registry-schemes/style-system/tailwind/input.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/menubar.json +2 -2
- package/__generated/registry-schemes/style-system/tailwind/navigation-menu.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/number-field.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/popover.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/select.json +2 -2
- package/__generated/registry-schemes/style-system/tailwind/switch.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/tabs.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/tags-input.json +1 -1
- package/__generated/registry-schemes/style-system/tailwind/textarea.json +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/package.json +10 -1
- package/__generated/registry-schemes/colors/gray.json +0 -90
- package/__generated/registry-schemes/colors/violet.json +0 -90
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(--
|
|
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",
|