sigma-ui 1.0.16 → 1.0.19
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 +34 -70
- package/__generated/registry-schemes/colors/frosted-glass.json +54 -0
- package/__generated/registry-schemes/colors/grayscale.json +54 -0
- package/__generated/registry-schemes/colors/green.json +34 -70
- package/__generated/registry-schemes/colors/orange.json +35 -71
- package/__generated/registry-schemes/colors/red.json +33 -69
- package/__generated/registry-schemes/colors/rose.json +33 -69
- package/__generated/registry-schemes/colors/yellow.json +34 -70
- 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 +367 -12
- 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/index.json +0 -829
- package/__generated/registry-schemes/colors/violet.json +0 -90
- package/__generated/registry-schemes/colors/zinc.json +0 -90
|
@@ -1,90 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"inlineColors": {
|
|
3
|
-
"light": {
|
|
4
|
-
|
|
5
|
-
"foreground": "red-950",
|
|
6
|
-
"card": "white",
|
|
7
|
-
"card-foreground": "red-950",
|
|
8
|
-
"popover": "white",
|
|
9
|
-
"popover-foreground": "red-950",
|
|
10
|
-
"primary": "red-900",
|
|
11
|
-
"primary-foreground": "red-50",
|
|
12
|
-
"secondary": "red-100",
|
|
13
|
-
"secondary-foreground": "red-900",
|
|
14
|
-
"muted": "red-100",
|
|
15
|
-
"muted-foreground": "red-500",
|
|
16
|
-
"destructive": "red-500",
|
|
17
|
-
"destructive-foreground": "red-50",
|
|
18
|
-
"border": "red-200",
|
|
19
|
-
"input": "red-200",
|
|
20
|
-
"ring": "red-950"
|
|
21
|
-
},
|
|
22
|
-
"dark": {
|
|
23
|
-
"background": "red-950",
|
|
24
|
-
"foreground": "red-50",
|
|
25
|
-
"card": "red-950",
|
|
26
|
-
"card-foreground": "red-50",
|
|
27
|
-
"popover": "red-950",
|
|
28
|
-
"popover-foreground": "red-50",
|
|
29
|
-
"primary": "red-50",
|
|
30
|
-
"primary-foreground": "red-900",
|
|
31
|
-
"secondary": "red-800",
|
|
32
|
-
"secondary-foreground": "red-50",
|
|
33
|
-
"muted": "red-800",
|
|
34
|
-
"muted-foreground": "red-400",
|
|
35
|
-
"destructive": "red-900",
|
|
36
|
-
"destructive-foreground": "red-50",
|
|
37
|
-
"border": "red-800",
|
|
38
|
-
"input": "red-800",
|
|
39
|
-
"ring": "red-300"
|
|
40
|
-
}
|
|
3
|
+
"light": {},
|
|
4
|
+
"dark": {}
|
|
41
5
|
},
|
|
42
6
|
"cssVars": {
|
|
43
7
|
"light": {
|
|
44
8
|
"background": "0 0% 100%",
|
|
45
|
-
"foreground": "0
|
|
46
|
-
"
|
|
47
|
-
"
|
|
9
|
+
"foreground": "0 0% 3.9%",
|
|
10
|
+
"muted": "0 0% 96.1%",
|
|
11
|
+
"muted-foreground": "0 0% 45.1%",
|
|
48
12
|
"popover": "0 0% 100%",
|
|
49
|
-
"popover-foreground": "0
|
|
50
|
-
"
|
|
13
|
+
"popover-foreground": "0 0% 3.9%",
|
|
14
|
+
"card": "0 0% 100%",
|
|
15
|
+
"card-foreground": "0 0% 3.9%",
|
|
16
|
+
"border": "0 0% 89.8%",
|
|
17
|
+
"input": "0 0% 100%",
|
|
18
|
+
"primary": "0 72.2% 50.6%",
|
|
51
19
|
"primary-foreground": "0 85.7% 97.3%",
|
|
52
|
-
"secondary": "0
|
|
53
|
-
"secondary-foreground": "0
|
|
54
|
-
"muted": "0 93.3% 94.1%",
|
|
55
|
-
"muted-foreground": "0 84.2% 60.2%",
|
|
20
|
+
"secondary": "0 0% 96.1%",
|
|
21
|
+
"secondary-foreground": "0 0% 9%",
|
|
56
22
|
"destructive": "0 84.2% 60.2%",
|
|
57
|
-
"destructive-foreground": "0
|
|
58
|
-
"
|
|
59
|
-
"input": "0 96.3% 89.4%",
|
|
60
|
-
"ring": "0 74.7% 15.5%"
|
|
23
|
+
"destructive-foreground": "0 0% 98%",
|
|
24
|
+
"ring": "0 72.2% 50.6%"
|
|
61
25
|
},
|
|
62
26
|
"dark": {
|
|
63
|
-
"background": "0
|
|
64
|
-
"foreground": "0
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"popover": "0
|
|
68
|
-
"popover-foreground": "0
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
27
|
+
"background": "0 0% 3.9%",
|
|
28
|
+
"foreground": "0 0% 98%",
|
|
29
|
+
"muted": "0 0% 14.9%",
|
|
30
|
+
"muted-foreground": "0 0% 63.9%",
|
|
31
|
+
"popover": "0 0% 3.9%",
|
|
32
|
+
"popover-foreground": "0 0% 98%",
|
|
33
|
+
"card": "0 0% 3.9%",
|
|
34
|
+
"card-foreground": "0 0% 98%",
|
|
35
|
+
"border": "0 0% 14.9%",
|
|
36
|
+
"input": "0 0% 3.9%",
|
|
37
|
+
"primary": "0 72.2% 50.6%",
|
|
38
|
+
"primary-foreground": "0 85.7% 97.3%",
|
|
39
|
+
"secondary": "0 0% 14.9%",
|
|
40
|
+
"secondary-foreground": "0 0% 98%",
|
|
75
41
|
"destructive": "0 62.8% 30.6%",
|
|
76
|
-
"destructive-foreground": "0
|
|
77
|
-
"
|
|
78
|
-
"input": "0 70% 35.3%",
|
|
79
|
-
"ring": "0 93.5% 81.8%"
|
|
42
|
+
"destructive-foreground": "0 0% 98%",
|
|
43
|
+
"ring": "0 72.2% 50.6%"
|
|
80
44
|
}
|
|
81
45
|
},
|
|
82
46
|
"templates": {
|
|
83
47
|
"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
|
|
48
|
+
"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 0% 3.9%;\n --muted: 0 0% 96.1%;\n --muted-foreground: 0 0% 45.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 0% 3.9%;\n --card: 0 0% 100%;\n --card-foreground: 0 0% 3.9%;\n --border: 0 0% 89.8%;\n --input: 0 0% 100%;\n --primary: 0 72.2% 50.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 0% 96.1%;\n --secondary-foreground: 0 0% 9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n --ring: 0 72.2% 50.6%;\n }\n \n .dark {\n --background: 0 0% 3.9%;\n --foreground: 0 0% 98%;\n --muted: 0 0% 14.9%;\n --muted-foreground: 0 0% 63.9%;\n --popover: 0 0% 3.9%;\n --popover-foreground: 0 0% 98%;\n --card: 0 0% 3.9%;\n --card-foreground: 0 0% 98%;\n --border: 0 0% 14.9%;\n --input: 0 0% 3.9%;\n --primary: 0 72.2% 50.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 0% 14.9%;\n --secondary-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 0% 98%;\n --ring: 0 72.2% 50.6%;\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
49
|
},
|
|
86
50
|
"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
|
|
51
|
+
"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 0% 3.9%;\n --muted: 0 0% 96.1%;\n --muted-foreground: 0 0% 45.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 0 0% 3.9%;\n --card: 0 0% 100%;\n --card-foreground: 0 0% 3.9%;\n --border: 0 0% 89.8%;\n --input: 0 0% 100%;\n --primary: 0 72.2% 50.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 0% 96.1%;\n --secondary-foreground: 0 0% 9%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n --ring: 0 72.2% 50.6%;\n }\n \n .dark {\n --background: 0 0% 3.9%;\n --foreground: 0 0% 98%;\n --muted: 0 0% 14.9%;\n --muted-foreground: 0 0% 63.9%;\n --popover: 0 0% 3.9%;\n --popover-foreground: 0 0% 98%;\n --card: 0 0% 3.9%;\n --card-foreground: 0 0% 98%;\n --border: 0 0% 14.9%;\n --input: 0 0% 3.9%;\n --primary: 0 72.2% 50.6%;\n --primary-foreground: 0 85.7% 97.3%;\n --secondary: 0 0% 14.9%;\n --secondary-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 0% 98%;\n --ring: 0 72.2% 50.6%;\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
52
|
}
|
|
89
53
|
}
|
|
90
54
|
}
|
|
@@ -1,90 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"inlineColors": {
|
|
3
|
-
"light": {
|
|
4
|
-
|
|
5
|
-
"foreground": "rose-950",
|
|
6
|
-
"card": "white",
|
|
7
|
-
"card-foreground": "rose-950",
|
|
8
|
-
"popover": "white",
|
|
9
|
-
"popover-foreground": "rose-950",
|
|
10
|
-
"primary": "rose-900",
|
|
11
|
-
"primary-foreground": "rose-50",
|
|
12
|
-
"secondary": "rose-100",
|
|
13
|
-
"secondary-foreground": "rose-900",
|
|
14
|
-
"muted": "rose-100",
|
|
15
|
-
"muted-foreground": "rose-500",
|
|
16
|
-
"destructive": "red-500",
|
|
17
|
-
"destructive-foreground": "rose-50",
|
|
18
|
-
"border": "rose-200",
|
|
19
|
-
"input": "rose-200",
|
|
20
|
-
"ring": "rose-950"
|
|
21
|
-
},
|
|
22
|
-
"dark": {
|
|
23
|
-
"background": "rose-950",
|
|
24
|
-
"foreground": "rose-50",
|
|
25
|
-
"card": "rose-950",
|
|
26
|
-
"card-foreground": "rose-50",
|
|
27
|
-
"popover": "rose-950",
|
|
28
|
-
"popover-foreground": "rose-50",
|
|
29
|
-
"primary": "rose-50",
|
|
30
|
-
"primary-foreground": "rose-900",
|
|
31
|
-
"secondary": "rose-800",
|
|
32
|
-
"secondary-foreground": "rose-50",
|
|
33
|
-
"muted": "rose-800",
|
|
34
|
-
"muted-foreground": "rose-400",
|
|
35
|
-
"destructive": "red-900",
|
|
36
|
-
"destructive-foreground": "rose-50",
|
|
37
|
-
"border": "rose-800",
|
|
38
|
-
"input": "rose-800",
|
|
39
|
-
"ring": "rose-300"
|
|
40
|
-
}
|
|
3
|
+
"light": {},
|
|
4
|
+
"dark": {}
|
|
41
5
|
},
|
|
42
6
|
"cssVars": {
|
|
43
7
|
"light": {
|
|
44
8
|
"background": "0 0% 100%",
|
|
45
|
-
"foreground": "
|
|
46
|
-
"
|
|
47
|
-
"
|
|
9
|
+
"foreground": "240 10% 3.9%",
|
|
10
|
+
"muted": "240 4.8% 95.9%",
|
|
11
|
+
"muted-foreground": "240 3.8% 46.1%",
|
|
48
12
|
"popover": "0 0% 100%",
|
|
49
|
-
"popover-foreground": "
|
|
50
|
-
"
|
|
13
|
+
"popover-foreground": "240 10% 3.9%",
|
|
14
|
+
"card": "0 0% 100%",
|
|
15
|
+
"card-foreground": "240 10% 3.9%",
|
|
16
|
+
"border": "240 5.9% 90%",
|
|
17
|
+
"input": "0 0% 100%",
|
|
18
|
+
"primary": "346.8 77.2% 49.8%",
|
|
51
19
|
"primary-foreground": "355.7 100% 97.3%",
|
|
52
|
-
"secondary": "
|
|
53
|
-
"secondary-foreground": "
|
|
54
|
-
"muted": "355.6 100% 94.7%",
|
|
55
|
-
"muted-foreground": "349.7 89.2% 60.2%",
|
|
20
|
+
"secondary": "240 4.8% 95.9%",
|
|
21
|
+
"secondary-foreground": "240 5.9% 10%",
|
|
56
22
|
"destructive": "0 84.2% 60.2%",
|
|
57
|
-
"destructive-foreground": "
|
|
58
|
-
"
|
|
59
|
-
"input": "352.7 96.1% 90%",
|
|
60
|
-
"ring": "343.1 87.7% 15.9%"
|
|
23
|
+
"destructive-foreground": "0 0% 98%",
|
|
24
|
+
"ring": "346.8 77.2% 49.8%"
|
|
61
25
|
},
|
|
62
26
|
"dark": {
|
|
63
|
-
"background": "
|
|
64
|
-
"foreground": "
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"popover": "
|
|
68
|
-
"popover-foreground": "
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
27
|
+
"background": "20 14.3% 4.1%",
|
|
28
|
+
"foreground": "0 0% 95%",
|
|
29
|
+
"muted": "0 0% 15%",
|
|
30
|
+
"muted-foreground": "240 5% 64.9%",
|
|
31
|
+
"popover": "0 0% 9%",
|
|
32
|
+
"popover-foreground": "0 0% 95%",
|
|
33
|
+
"card": "24 9.8% 10%",
|
|
34
|
+
"card-foreground": "0 0% 95%",
|
|
35
|
+
"border": "240 3.7% 15.9%",
|
|
36
|
+
"input": "20 14.3% 4.1%",
|
|
37
|
+
"primary": "346.8 77.2% 49.8%",
|
|
38
|
+
"primary-foreground": "355.7 100% 97.3%",
|
|
39
|
+
"secondary": "240 3.7% 15.9%",
|
|
40
|
+
"secondary-foreground": "0 0% 98%",
|
|
75
41
|
"destructive": "0 62.8% 30.6%",
|
|
76
|
-
"destructive-foreground": "
|
|
77
|
-
"
|
|
78
|
-
"input": "343.4 79.7% 34.7%",
|
|
79
|
-
"ring": "352.6 95.7% 81.8%"
|
|
42
|
+
"destructive-foreground": "0 85.7% 97.3%",
|
|
43
|
+
"ring": "346.8 77.2% 49.8%"
|
|
80
44
|
}
|
|
81
45
|
},
|
|
82
46
|
"templates": {
|
|
83
47
|
"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
|
|
48
|
+
"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: 0 0% 100%;\n --primary: 346.8 77.2% 49.8%;\n --primary-foreground: 355.7 100% 97.3%;\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: 346.8 77.2% 49.8%;\n }\n \n .dark {\n --background: 20 14.3% 4.1%;\n --foreground: 0 0% 95%;\n --muted: 0 0% 15%;\n --muted-foreground: 240 5% 64.9%;\n --popover: 0 0% 9%;\n --popover-foreground: 0 0% 95%;\n --card: 24 9.8% 10%;\n --card-foreground: 0 0% 95%;\n --border: 240 3.7% 15.9%;\n --input: 20 14.3% 4.1%;\n --primary: 346.8 77.2% 49.8%;\n --primary-foreground: 355.7 100% 97.3%;\n --secondary: 240 3.7% 15.9%;\n --secondary-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 346.8 77.2% 49.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
49
|
},
|
|
86
50
|
"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
|
|
51
|
+
"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: 0 0% 100%;\n --primary: 346.8 77.2% 49.8%;\n --primary-foreground: 355.7 100% 97.3%;\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: 346.8 77.2% 49.8%;\n }\n \n .dark {\n --background: 20 14.3% 4.1%;\n --foreground: 0 0% 95%;\n --muted: 0 0% 15%;\n --muted-foreground: 240 5% 64.9%;\n --popover: 0 0% 9%;\n --popover-foreground: 0 0% 95%;\n --card: 24 9.8% 10%;\n --card-foreground: 0 0% 95%;\n --border: 240 3.7% 15.9%;\n --input: 20 14.3% 4.1%;\n --primary: 346.8 77.2% 49.8%;\n --primary-foreground: 355.7 100% 97.3%;\n --secondary: 240 3.7% 15.9%;\n --secondary-foreground: 0 0% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n --ring: 346.8 77.2% 49.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
52
|
}
|
|
89
53
|
}
|
|
90
54
|
}
|
|
@@ -1,90 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"inlineColors": {
|
|
3
|
-
"light": {
|
|
4
|
-
|
|
5
|
-
"foreground": "yellow-950",
|
|
6
|
-
"card": "white",
|
|
7
|
-
"card-foreground": "yellow-950",
|
|
8
|
-
"popover": "white",
|
|
9
|
-
"popover-foreground": "yellow-950",
|
|
10
|
-
"primary": "yellow-900",
|
|
11
|
-
"primary-foreground": "yellow-50",
|
|
12
|
-
"secondary": "yellow-100",
|
|
13
|
-
"secondary-foreground": "yellow-900",
|
|
14
|
-
"muted": "yellow-100",
|
|
15
|
-
"muted-foreground": "yellow-500",
|
|
16
|
-
"destructive": "red-500",
|
|
17
|
-
"destructive-foreground": "yellow-50",
|
|
18
|
-
"border": "yellow-200",
|
|
19
|
-
"input": "yellow-200",
|
|
20
|
-
"ring": "yellow-950"
|
|
21
|
-
},
|
|
22
|
-
"dark": {
|
|
23
|
-
"background": "yellow-950",
|
|
24
|
-
"foreground": "yellow-50",
|
|
25
|
-
"card": "yellow-950",
|
|
26
|
-
"card-foreground": "yellow-50",
|
|
27
|
-
"popover": "yellow-950",
|
|
28
|
-
"popover-foreground": "yellow-50",
|
|
29
|
-
"primary": "yellow-50",
|
|
30
|
-
"primary-foreground": "yellow-900",
|
|
31
|
-
"secondary": "yellow-800",
|
|
32
|
-
"secondary-foreground": "yellow-50",
|
|
33
|
-
"muted": "yellow-800",
|
|
34
|
-
"muted-foreground": "yellow-400",
|
|
35
|
-
"destructive": "red-900",
|
|
36
|
-
"destructive-foreground": "yellow-50",
|
|
37
|
-
"border": "yellow-800",
|
|
38
|
-
"input": "yellow-800",
|
|
39
|
-
"ring": "yellow-300"
|
|
40
|
-
}
|
|
3
|
+
"light": {},
|
|
4
|
+
"dark": {}
|
|
41
5
|
},
|
|
42
6
|
"cssVars": {
|
|
43
7
|
"light": {
|
|
44
8
|
"background": "0 0% 100%",
|
|
45
|
-
"foreground": "
|
|
46
|
-
"
|
|
47
|
-
"
|
|
9
|
+
"foreground": "20 14.3% 4.1%",
|
|
10
|
+
"muted": "60 4.8% 95.9%",
|
|
11
|
+
"muted-foreground": "25 5.3% 44.7%",
|
|
48
12
|
"popover": "0 0% 100%",
|
|
49
|
-
"popover-foreground": "
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
13
|
+
"popover-foreground": "20 14.3% 4.1%",
|
|
14
|
+
"card": "0 0% 100%",
|
|
15
|
+
"card-foreground": "20 14.3% 4.1%",
|
|
16
|
+
"border": "20 5.9% 90%",
|
|
17
|
+
"input": "0 0% 100%",
|
|
18
|
+
"primary": "47.9 95.8% 53.1%",
|
|
19
|
+
"primary-foreground": "26 83.3% 14.1%",
|
|
20
|
+
"secondary": "60 4.8% 95.9%",
|
|
21
|
+
"secondary-foreground": "24 9.8% 10%",
|
|
56
22
|
"destructive": "0 84.2% 60.2%",
|
|
57
|
-
"destructive-foreground": "
|
|
58
|
-
"
|
|
59
|
-
"input": "52.8 98.3% 76.9%",
|
|
60
|
-
"ring": "26 83.3% 14.1%"
|
|
23
|
+
"destructive-foreground": "60 9.1% 97.8%",
|
|
24
|
+
"ring": "20 14.3% 4.1%"
|
|
61
25
|
},
|
|
62
26
|
"dark": {
|
|
63
|
-
"background": "
|
|
64
|
-
"foreground": "
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"popover": "
|
|
68
|
-
"popover-foreground": "
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
27
|
+
"background": "20 14.3% 4.1%",
|
|
28
|
+
"foreground": "60 9.1% 97.8%",
|
|
29
|
+
"muted": "12 6.5% 15.1%",
|
|
30
|
+
"muted-foreground": "24 5.4% 63.9%",
|
|
31
|
+
"popover": "20 14.3% 4.1%",
|
|
32
|
+
"popover-foreground": "60 9.1% 97.8%",
|
|
33
|
+
"card": "20 14.3% 4.1%",
|
|
34
|
+
"card-foreground": "60 9.1% 97.8%",
|
|
35
|
+
"border": "12 6.5% 15.1%",
|
|
36
|
+
"input": "20 14.3% 4.1%",
|
|
37
|
+
"primary": "47.9 95.8% 53.1%",
|
|
38
|
+
"primary-foreground": "26 83.3% 14.1%",
|
|
39
|
+
"secondary": "12 6.5% 15.1%",
|
|
40
|
+
"secondary-foreground": "60 9.1% 97.8%",
|
|
75
41
|
"destructive": "0 62.8% 30.6%",
|
|
76
|
-
"destructive-foreground": "
|
|
77
|
-
"
|
|
78
|
-
"input": "31.8 81% 28.8%",
|
|
79
|
-
"ring": "50.4 97.8% 63.5%"
|
|
42
|
+
"destructive-foreground": "60 9.1% 97.8%",
|
|
43
|
+
"ring": "35.5 91.7% 32.9%"
|
|
80
44
|
}
|
|
81
45
|
},
|
|
82
46
|
"templates": {
|
|
83
47
|
"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
|
|
48
|
+
"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: 20 14.3% 4.1%;\n --muted: 60 4.8% 95.9%;\n --muted-foreground: 25 5.3% 44.7%;\n --popover: 0 0% 100%;\n --popover-foreground: 20 14.3% 4.1%;\n --card: 0 0% 100%;\n --card-foreground: 20 14.3% 4.1%;\n --border: 20 5.9% 90%;\n --input: 0 0% 100%;\n --primary: 47.9 95.8% 53.1%;\n --primary-foreground: 26 83.3% 14.1%;\n --secondary: 60 4.8% 95.9%;\n --secondary-foreground: 24 9.8% 10%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 60 9.1% 97.8%;\n --ring: 20 14.3% 4.1%;\n }\n \n .dark {\n --background: 20 14.3% 4.1%;\n --foreground: 60 9.1% 97.8%;\n --muted: 12 6.5% 15.1%;\n --muted-foreground: 24 5.4% 63.9%;\n --popover: 20 14.3% 4.1%;\n --popover-foreground: 60 9.1% 97.8%;\n --card: 20 14.3% 4.1%;\n --card-foreground: 60 9.1% 97.8%;\n --border: 12 6.5% 15.1%;\n --input: 20 14.3% 4.1%;\n --primary: 47.9 95.8% 53.1%;\n --primary-foreground: 26 83.3% 14.1%;\n --secondary: 12 6.5% 15.1%;\n --secondary-foreground: 60 9.1% 97.8%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 60 9.1% 97.8%;\n --ring: 35.5 91.7% 32.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
49
|
},
|
|
86
50
|
"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
|
|
51
|
+
"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: 20 14.3% 4.1%;\n --muted: 60 4.8% 95.9%;\n --muted-foreground: 25 5.3% 44.7%;\n --popover: 0 0% 100%;\n --popover-foreground: 20 14.3% 4.1%;\n --card: 0 0% 100%;\n --card-foreground: 20 14.3% 4.1%;\n --border: 20 5.9% 90%;\n --input: 0 0% 100%;\n --primary: 47.9 95.8% 53.1%;\n --primary-foreground: 26 83.3% 14.1%;\n --secondary: 60 4.8% 95.9%;\n --secondary-foreground: 24 9.8% 10%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 60 9.1% 97.8%;\n --ring: 20 14.3% 4.1%;\n }\n \n .dark {\n --background: 20 14.3% 4.1%;\n --foreground: 60 9.1% 97.8%;\n --muted: 12 6.5% 15.1%;\n --muted-foreground: 24 5.4% 63.9%;\n --popover: 20 14.3% 4.1%;\n --popover-foreground: 60 9.1% 97.8%;\n --card: 20 14.3% 4.1%;\n --card-foreground: 60 9.1% 97.8%;\n --border: 12 6.5% 15.1%;\n --input: 20 14.3% 4.1%;\n --primary: 47.9 95.8% 53.1%;\n --primary-foreground: 26 83.3% 14.1%;\n --secondary: 12 6.5% 15.1%;\n --secondary-foreground: 60 9.1% 97.8%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 60 9.1% 97.8%;\n --ring: 35.5 91.7% 32.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
52
|
}
|
|
89
53
|
}
|
|
90
54
|
}
|
|
@@ -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",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"name": "ComboboxInput.vue",
|
|
26
|
-
"content": "<script setup lang=\"ts\">\nimport type { HTMLAttributes } from 'vue';\nimport { reactiveOmit } from '@vueuse/core';\nimport { ComboboxInput, type ComboboxInputEmits, type ComboboxInputProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<ComboboxInputProps & {\n class?: HTMLAttributes['class'];\n}>();\n\nconst emits = defineEmits<ComboboxInputEmits>();\n\nconst delegatedProps = reactiveOmit(props, 'class');\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits);\n</script>\n\n<template>\n <ComboboxInput\n v-bind=\"forwarded\"\n :class=\"['sigma-ui-combobox-input', props.class]\"\n >\n <slot />\n </ComboboxInput>\n</template>\n\n<style>\n.sigma-ui-combobox-input {\n display: flex;\n width: 100%;\n height: 2.25rem;\n padding: 0.25rem 0.75rem;\n border: 1px solid hsl(var(--
|
|
26
|
+
"content": "<script setup lang=\"ts\">\nimport type { HTMLAttributes } from 'vue';\nimport { reactiveOmit } from '@vueuse/core';\nimport { ComboboxInput, type ComboboxInputEmits, type ComboboxInputProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<ComboboxInputProps & {\n class?: HTMLAttributes['class'];\n}>();\n\nconst emits = defineEmits<ComboboxInputEmits>();\n\nconst delegatedProps = reactiveOmit(props, 'class');\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits);\n</script>\n\n<template>\n <ComboboxInput\n v-bind=\"forwarded\"\n :class=\"['sigma-ui-combobox-input', props.class]\"\n >\n <slot />\n </ComboboxInput>\n</template>\n\n<style>\n.sigma-ui-combobox-input {\n display: flex;\n width: 100%;\n height: 2.25rem;\n padding: 0.25rem 0.75rem;\n border: 1px solid hsl(var(--border));\n border-radius: 0.375rem;\n background-color: transparent;\n font-size: 0.875rem;\n line-height: 1.25rem;\n transition-duration: 150ms;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.sigma-ui-combobox-input:focus-visible {\n box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));\n outline: none;\n}\n\n.sigma-ui-combobox-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.sigma-ui-combobox-input::file-selector-button {\n border: 0;\n background-color: transparent;\n font-size: 0.875rem;\n font-weight: 500;\n}\n\n.sigma-ui-combobox-input::placeholder {\n color: hsl(var(--muted-foreground));\n}\n</style>\n"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"name": "ComboboxItem.vue",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"name": "ComboboxList.vue",
|
|
34
|
-
"content": "<script setup lang=\"ts\">\nimport type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui';\nimport { ComboboxContent, ComboboxPortal, ComboboxViewport, useForwardPropsEmits } from 'reka-ui';\n\nconst props = withDefaults(defineProps<ComboboxContentProps>(), {\n position: 'popper',\n align: 'center',\n sideOffset: 4,\n});\nconst emits = defineEmits<ComboboxContentEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <ComboboxPortal>\n <ComboboxContent\n v-bind=\"{ ...forwarded, ...$attrs }\"\n :class=\"['sigma-ui-combobox-list', $attrs.class]\"\n >\n <ComboboxViewport>\n <slot />\n </ComboboxViewport>\n </ComboboxContent>\n </ComboboxPortal>\n</template>\n\n<style>\n.sigma-ui-combobox-list {\n position: relative;\n z-index: 50;\n width: 200px;\n border: 1px solid hsl(var(--border));\n border-radius: var(--radius-md);\n
|
|
34
|
+
"content": "<script setup lang=\"ts\">\nimport type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui';\nimport { ComboboxContent, ComboboxPortal, ComboboxViewport, useForwardPropsEmits } from 'reka-ui';\n\nconst props = withDefaults(defineProps<ComboboxContentProps>(), {\n position: 'popper',\n align: 'center',\n sideOffset: 4,\n});\nconst emits = defineEmits<ComboboxContentEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <ComboboxPortal>\n <ComboboxContent\n v-bind=\"{ ...forwarded, ...$attrs }\"\n :class=\"['sigma-ui-combobox-list', $attrs.class]\"\n >\n <ComboboxViewport>\n <slot />\n </ComboboxViewport>\n </ComboboxContent>\n </ComboboxPortal>\n</template>\n\n<style>\n.sigma-ui-combobox-list {\n position: relative;\n z-index: 50;\n width: 200px;\n border: 1px solid hsl(var(--border));\n border-radius: var(--radius-md);\n backdrop-filter: blur(var(--backdrop-filter-blur));\n background-color: hsl(var(--popover));\n color: hsl(var(--popover-foreground));\n transform-origin: var(--reka-popover-content-transform-origin);\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"bottom\"] {\n animation: slide-from-top 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"bottom\"] {\n animation: slide-to-top 150ms ease-in;\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"top\"] {\n animation: slide-from-bottom 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"top\"] {\n animation: slide-to-bottom 150ms ease-in;\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"left\"] {\n animation: slide-from-right 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"left\"] {\n animation: slide-to-right 150ms ease-in;\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"right\"] {\n animation: slide-from-left 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"right\"] {\n animation: slide-to-left 150ms ease-in;\n}\n\n@keyframes slide-from-top {\n from {\n filter: blur(4px);\n transform: translateY(-1rem) scaleY(0.98);\n }\n\n to {\n filter: blur(0);\n transform: translateY(0) scaleY(1);\n }\n}\n\n@keyframes slide-to-top {\n from {\n filter: blur(0);\n transform: translateY(0) scaleY(1);\n }\n\n to {\n filter: blur(4px);\n transform: translateY(-1rem) scaleY(0.98);\n }\n}\n\n@keyframes slide-from-bottom {\n from {\n filter: blur(4px);\n transform: translateY(1rem) scaleY(0.98);\n }\n\n to {\n filter: blur(0);\n transform: translateY(0) scaleY(1);\n }\n}\n\n@keyframes slide-to-bottom {\n from {\n filter: blur(0);\n transform: translateY(0) scaleY(1);\n }\n\n to {\n filter: blur(4px);\n transform: translateY(1rem) scaleY(0.98);\n }\n}\n\n@keyframes slide-from-left {\n from {\n filter: blur(4px);\n transform: translateX(-1rem) scaleY(0.98);\n }\n\n to {\n filter: blur(0);\n transform: translateX(0) scaleY(1);\n }\n}\n\n@keyframes slide-to-left {\n from {\n filter: blur(0);\n transform: translateX(0) scaleY(1);\n }\n\n to {\n filter: blur(4px);\n transform: translateX(-1rem) scaleY(0.98);\n }\n}\n\n@keyframes slide-from-right {\n from {\n filter: blur(4px);\n transform: translateX(1rem) scaleY(0.98);\n }\n\n to {\n filter: blur(0);\n transform: translateX(0) scaleY(1);\n }\n}\n\n@keyframes slide-to-right {\n from {\n filter: blur(0);\n transform: translateX(0) scaleY(1);\n }\n\n to {\n filter: blur(4px);\n transform: translateX(1rem) scaleY(0.98);\n }\n}\n</style>\n"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"name": "ComboboxSeparator.vue",
|