@zentauri-ui/zentauri-components 0.0.84 → 0.0.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +47 -29
  2. package/dist/ui/accordion.cjs +311 -0
  3. package/dist/ui/accordion.cjs.map +1 -0
  4. package/dist/ui/accordion.d.cts +70 -0
  5. package/dist/ui/accordion.d.ts +70 -0
  6. package/dist/ui/accordion.js +286 -0
  7. package/dist/ui/accordion.js.map +1 -0
  8. package/dist/ui/alert.cjs +257 -0
  9. package/dist/ui/alert.cjs.map +1 -0
  10. package/dist/ui/alert.d.cts +66 -0
  11. package/dist/ui/alert.d.ts +66 -0
  12. package/dist/ui/alert.js +224 -0
  13. package/dist/ui/alert.js.map +1 -0
  14. package/dist/ui/badge.cjs +192 -0
  15. package/dist/ui/badge.cjs.map +1 -0
  16. package/dist/ui/badge.d.cts +37 -0
  17. package/dist/ui/badge.d.ts +37 -0
  18. package/dist/ui/badge.js +165 -0
  19. package/dist/ui/badge.js.map +1 -0
  20. package/dist/ui/buttons.cjs +202 -0
  21. package/dist/ui/buttons.cjs.map +1 -0
  22. package/dist/ui/buttons.d.cts +27 -0
  23. package/dist/ui/buttons.d.ts +27 -0
  24. package/dist/ui/buttons.js +176 -0
  25. package/dist/ui/buttons.js.map +1 -0
  26. package/dist/ui/card.cjs +293 -0
  27. package/dist/ui/card.cjs.map +1 -0
  28. package/dist/ui/card.d.cts +77 -0
  29. package/dist/ui/card.d.ts +77 -0
  30. package/dist/ui/card.js +258 -0
  31. package/dist/ui/card.js.map +1 -0
  32. package/dist/ui/divider.cjs +229 -0
  33. package/dist/ui/divider.cjs.map +1 -0
  34. package/dist/ui/divider.d.cts +39 -0
  35. package/dist/ui/divider.d.ts +39 -0
  36. package/dist/ui/divider.js +200 -0
  37. package/dist/ui/divider.js.map +1 -0
  38. package/dist/ui/drawer.cjs +408 -0
  39. package/dist/ui/drawer.cjs.map +1 -0
  40. package/dist/ui/drawer.d.cts +81 -0
  41. package/dist/ui/drawer.d.ts +81 -0
  42. package/dist/ui/drawer.js +383 -0
  43. package/dist/ui/drawer.js.map +1 -0
  44. package/dist/ui/dropdown.cjs +302 -0
  45. package/dist/ui/dropdown.cjs.map +1 -0
  46. package/dist/ui/dropdown.d.cts +50 -0
  47. package/dist/ui/dropdown.d.ts +50 -0
  48. package/dist/ui/dropdown.js +278 -0
  49. package/dist/ui/dropdown.js.map +1 -0
  50. package/dist/ui/empty-state.cjs +186 -0
  51. package/dist/ui/empty-state.cjs.map +1 -0
  52. package/dist/ui/empty-state.d.cts +55 -0
  53. package/dist/ui/empty-state.d.ts +55 -0
  54. package/dist/ui/empty-state.js +154 -0
  55. package/dist/ui/empty-state.js.map +1 -0
  56. package/dist/ui/index.d.cts +27 -1164
  57. package/dist/ui/index.d.ts +27 -1164
  58. package/dist/ui/inputs.cjs +458 -0
  59. package/dist/ui/inputs.cjs.map +1 -0
  60. package/dist/ui/inputs.d.cts +35 -0
  61. package/dist/ui/inputs.d.ts +35 -0
  62. package/dist/ui/inputs.js +432 -0
  63. package/dist/ui/inputs.js.map +1 -0
  64. package/dist/ui/modal.cjs +406 -0
  65. package/dist/ui/modal.cjs.map +1 -0
  66. package/dist/ui/modal.d.cts +84 -0
  67. package/dist/ui/modal.d.ts +84 -0
  68. package/dist/ui/modal.js +384 -0
  69. package/dist/ui/modal.js.map +1 -0
  70. package/dist/ui/pagination.cjs +523 -0
  71. package/dist/ui/pagination.cjs.map +1 -0
  72. package/dist/ui/pagination.d.cts +114 -0
  73. package/dist/ui/pagination.d.ts +114 -0
  74. package/dist/ui/pagination.js +494 -0
  75. package/dist/ui/pagination.js.map +1 -0
  76. package/dist/ui/progress.cjs +268 -0
  77. package/dist/ui/progress.cjs.map +1 -0
  78. package/dist/ui/progress.d.cts +61 -0
  79. package/dist/ui/progress.d.ts +61 -0
  80. package/dist/ui/progress.js +237 -0
  81. package/dist/ui/progress.js.map +1 -0
  82. package/dist/ui/select.cjs +360 -0
  83. package/dist/ui/select.cjs.map +1 -0
  84. package/dist/ui/select.d.cts +73 -0
  85. package/dist/ui/select.d.ts +73 -0
  86. package/dist/ui/select.js +327 -0
  87. package/dist/ui/select.js.map +1 -0
  88. package/dist/ui/skeleton.cjs +576 -0
  89. package/dist/ui/skeleton.cjs.map +1 -0
  90. package/dist/ui/skeleton.d.cts +90 -0
  91. package/dist/ui/skeleton.d.ts +90 -0
  92. package/dist/ui/skeleton.js +544 -0
  93. package/dist/ui/skeleton.js.map +1 -0
  94. package/dist/ui/spinner.cjs +219 -0
  95. package/dist/ui/spinner.cjs.map +1 -0
  96. package/dist/ui/spinner.d.cts +27 -0
  97. package/dist/ui/spinner.d.ts +27 -0
  98. package/dist/ui/spinner.js +193 -0
  99. package/dist/ui/spinner.js.map +1 -0
  100. package/dist/ui/table.cjs +328 -0
  101. package/dist/ui/table.cjs.map +1 -0
  102. package/dist/ui/table.d.cts +81 -0
  103. package/dist/ui/table.d.ts +81 -0
  104. package/dist/ui/table.js +293 -0
  105. package/dist/ui/table.js.map +1 -0
  106. package/dist/ui/tabs.cjs +300 -0
  107. package/dist/ui/tabs.cjs.map +1 -0
  108. package/dist/ui/tabs.d.cts +58 -0
  109. package/dist/ui/tabs.d.ts +58 -0
  110. package/dist/ui/tabs.js +274 -0
  111. package/dist/ui/tabs.js.map +1 -0
  112. package/dist/ui/toast.cjs +285 -0
  113. package/dist/ui/toast.cjs.map +1 -0
  114. package/dist/ui/toast.d.cts +86 -0
  115. package/dist/ui/toast.d.ts +86 -0
  116. package/dist/ui/toast.js +258 -0
  117. package/dist/ui/toast.js.map +1 -0
  118. package/dist/ui/toggle.cjs +185 -0
  119. package/dist/ui/toggle.cjs.map +1 -0
  120. package/dist/ui/toggle.d.cts +37 -0
  121. package/dist/ui/toggle.d.ts +37 -0
  122. package/dist/ui/toggle.js +158 -0
  123. package/dist/ui/toggle.js.map +1 -0
  124. package/dist/ui/tooltip.cjs +242 -0
  125. package/dist/ui/tooltip.cjs.map +1 -0
  126. package/dist/ui/tooltip.d.cts +46 -0
  127. package/dist/ui/tooltip.d.ts +46 -0
  128. package/dist/ui/tooltip.js +214 -0
  129. package/dist/ui/tooltip.js.map +1 -0
  130. package/dist/variants-1Bx3BEeS.d.cts +8 -0
  131. package/dist/variants-1Bx3BEeS.d.ts +8 -0
  132. package/package.json +7 -1
@@ -0,0 +1,327 @@
1
+ "use client";
2
+
3
+
4
+ // src/ui/select/select.tsx
5
+ import { useState, useEffect, useCallback, useRef } from "react";
6
+ import { createContext, useContext } from "react";
7
+
8
+ // src/lib/utils.ts
9
+ import { clsx } from "clsx";
10
+ import { twMerge } from "tailwind-merge";
11
+ function cn(...inputs) {
12
+ return twMerge(clsx(inputs));
13
+ }
14
+
15
+ // src/ui/select/variants.ts
16
+ import { cva } from "class-variance-authority";
17
+ var selectTriggerVariants = cva(
18
+ "flex items-center justify-between rounded-md border transition-all focus:outline-none",
19
+ {
20
+ variants: {
21
+ variant: {
22
+ default: "border-gray-300 bg-white text-gray-900",
23
+ outline: "border-2 border-gray-500",
24
+ ghost: "border-transparent",
25
+ sky: "border-sky-600 text-sky-600",
26
+ rose: "border-rose-600 text-rose-600",
27
+ purple: "border-purple-600 text-purple-600",
28
+ pink: "border-pink-600 text-pink-600",
29
+ orange: "border-orange-600 text-orange-600",
30
+ yellow: "border-yellow-600 text-yellow-600",
31
+ teal: "border-teal-600 text-teal-600",
32
+ indigo: "border-indigo-500 text-indigo-500",
33
+ emerald: "border-emerald-600 text-emerald-600",
34
+ glass: "border-white/15 bg-white/10 text-white backdrop-blur-md",
35
+ "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-white",
36
+ "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-white",
37
+ "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-white",
38
+ "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-white",
39
+ "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-white",
40
+ "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-white",
41
+ "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-white",
42
+ "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-white",
43
+ "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-white"
44
+ },
45
+ size: {
46
+ sm: "px-2 py-1 text-sm",
47
+ md: "px-3 py-2",
48
+ lg: "px-4 py-3 text-lg"
49
+ }
50
+ },
51
+ defaultVariants: {
52
+ variant: "default",
53
+ size: "md"
54
+ }
55
+ }
56
+ );
57
+ var selectItemVariants = cva(
58
+ "cursor-pointer px-3 py-2 rounded-md",
59
+ {
60
+ variants: {
61
+ appearance: {
62
+ default: "bg-white text-gray-900 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900",
63
+ glass: "bg-white/10 text-gray-100 data-[selected=true]:bg-white/10 data-[selected=true]:text-gray-100",
64
+ outline: "border-2 border-gray-500 text-gray-900 data-[selected=true]:border-2 data-[selected=true]:border-gray-500 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900",
65
+ ghost: "border-transparent text-gray-900 data-[selected=true]:border-transparent data-[selected=true]:bg-transparent data-[selected=true]:text-gray-900",
66
+ sky: "border-sky-600 text-sky-800 data-[selected=true]:border-sky-600 data-[selected=true]:bg-sky-200 data-[selected=true]:text-sky-800",
67
+ rose: "border-rose-600 text-rose-800 data-[selected=true]:border-rose-600 data-[selected=true]:bg-rose-200 data-[selected=true]:text-rose-800",
68
+ purple: "border-purple-600 text-purple-800 data-[selected=true]:border-purple-600 data-[selected=true]:bg-purple-200 data-[selected=true]:text-purple-800",
69
+ pink: "border-pink-600 text-pink-800 data-[selected=true]:border-pink-600 data-[selected=true]:bg-pink-200 data-[selected=true]:text-pink-800",
70
+ orange: "border-orange-600 text-orange-800 data-[selected=true]:border-orange-600 data-[selected=true]:bg-orange-200 data-[selected=true]:text-orange-800",
71
+ yellow: "border-yellow-600 text-yellow-800 data-[selected=true]:border-yellow-600 data-[selected=true]:bg-yellow-200 data-[selected=true]:text-yellow-800",
72
+ teal: "border-teal-600 text-teal-800 data-[selected=true]:border-teal-600 data-[selected=true]:bg-teal-200 data-[selected=true]:text-teal-800",
73
+ indigo: "border-indigo-600 text-indigo-800 data-[selected=true]:border-indigo-600 data-[selected=true]:bg-indigo-200 data-[selected=true]:text-indigo-800",
74
+ emerald: "border-emerald-600 text-emerald-800 data-[selected=true]:border-emerald-600 data-[selected=true]:bg-emerald-200 data-[selected=true]:text-emerald-800",
75
+ "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-blue-50 data-[selected=true]:bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-blue-100",
76
+ "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-green-50 data-[selected=true]:bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl data-[selected=true]:text-green-100",
77
+ "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-red-50 data-[selected=true]:bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-red-100",
78
+ "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-yellow-50 data-[selected=true]:bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl data-[selected=true]:text-yellow-100",
79
+ "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-purple-50 data-[selected=true]:bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-purple-100",
80
+ "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-teal-50 data-[selected=true]:bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl data-[selected=true]:text-teal-100",
81
+ "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-indigo-50 data-[selected=true]:bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-indigo-100",
82
+ "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-pink-50 data-[selected=true]:bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl data-[selected=true]:text-pink-100",
83
+ "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-orange-50 data-[selected=true]:bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl data-[selected=true]:text-orange-100"
84
+ },
85
+ disabled: {
86
+ true: "opacity-50 cursor-not-allowed"
87
+ }
88
+ },
89
+ defaultVariants: {
90
+ appearance: "default"
91
+ }
92
+ }
93
+ );
94
+ var selectContentVariants = cva(
95
+ "absolute z-10 mt-2 w-full rounded-md border bg-white shadow-md",
96
+ {
97
+ variants: {
98
+ appearance: {
99
+ default: "bg-white shadow-md",
100
+ glass: "bg-white/10 backdrop-blur-md",
101
+ outline: "border-2 border-gray-500",
102
+ ghost: "border-transparent",
103
+ sky: "border-sky-600",
104
+ rose: "border-rose-600",
105
+ purple: "border-purple-600",
106
+ pink: "border-pink-600",
107
+ orange: "border-orange-600",
108
+ yellow: "border-yellow-600",
109
+ teal: "border-teal-600",
110
+ indigo: "border-indigo-600",
111
+ emerald: "border-emerald-600",
112
+ "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
113
+ "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
114
+ "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
115
+ "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
116
+ "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
117
+ "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
118
+ "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
119
+ "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
120
+ "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl"
121
+ },
122
+ size: {
123
+ sm: "px-2 py-1 text-sm",
124
+ md: "px-3 py-2",
125
+ lg: "px-4 py-3 text-lg"
126
+ },
127
+ spacing: {
128
+ none: "space-y-0",
129
+ default: "space-y-1",
130
+ sm: "space-y-2",
131
+ md: "space-y-3",
132
+ lg: "space-y-4",
133
+ xl: "space-y-5"
134
+ }
135
+ },
136
+ defaultVariants: {
137
+ appearance: "default",
138
+ size: "md",
139
+ spacing: "default"
140
+ }
141
+ }
142
+ );
143
+
144
+ // src/ui/select/select.tsx
145
+ import { jsx, jsxs } from "react/jsx-runtime";
146
+ var SelectContext = createContext(null);
147
+ var useSelect = () => {
148
+ const ctx = useContext(SelectContext);
149
+ if (!ctx) throw new Error("Select components must be used inside Select");
150
+ return ctx;
151
+ };
152
+ var Select = ({
153
+ children,
154
+ value,
155
+ defaultValue = [],
156
+ onChange,
157
+ multiple = true
158
+ }) => {
159
+ const [internal, setInternal] = useState(defaultValue);
160
+ const [open, setOpen] = useState(false);
161
+ const [options, setOptions] = useState([]);
162
+ const rootRef = useRef(null);
163
+ const selected = value ?? internal;
164
+ useEffect(() => {
165
+ if (!open) return;
166
+ const handlePointerDown = (event) => {
167
+ const root = rootRef.current;
168
+ if (!root) return;
169
+ const target = event.target;
170
+ if (target instanceof Node && !root.contains(target)) {
171
+ setOpen(false);
172
+ }
173
+ };
174
+ document.addEventListener("pointerdown", handlePointerDown);
175
+ return () => document.removeEventListener("pointerdown", handlePointerDown);
176
+ }, [open]);
177
+ const setSelected = (vals) => {
178
+ if (value !== void 0) {
179
+ onChange?.(vals);
180
+ } else {
181
+ setInternal(vals);
182
+ onChange?.(vals);
183
+ }
184
+ };
185
+ const toggleValue = (val) => {
186
+ if (multiple) {
187
+ if (selected.includes(val)) {
188
+ setSelected(selected.filter((v) => v !== val));
189
+ } else {
190
+ setSelected([...selected, val]);
191
+ }
192
+ } else {
193
+ setSelected([val]);
194
+ setOpen(false);
195
+ }
196
+ };
197
+ const isSelected = (val) => selected.includes(val);
198
+ const registerOption = useCallback((opt) => {
199
+ setOptions((prev) => {
200
+ if (prev.find((o) => o.value === opt.value)) return prev;
201
+ return [...prev, opt];
202
+ });
203
+ }, []);
204
+ return /* @__PURE__ */ jsx(
205
+ SelectContext.Provider,
206
+ {
207
+ value: {
208
+ open,
209
+ setOpen,
210
+ selected,
211
+ toggleValue,
212
+ isSelected,
213
+ registerOption,
214
+ options,
215
+ multiple
216
+ },
217
+ children: /* @__PURE__ */ jsx("div", { ref: rootRef, className: "relative w-full", children })
218
+ }
219
+ );
220
+ };
221
+ var SelectTrigger = ({
222
+ className,
223
+ variant,
224
+ size,
225
+ ...props
226
+ }) => {
227
+ const { open, setOpen } = useSelect();
228
+ return /* @__PURE__ */ jsx(
229
+ "button",
230
+ {
231
+ type: "button",
232
+ onClick: () => setOpen(!open),
233
+ className: cn(selectTriggerVariants({ variant, size }), className),
234
+ ...props
235
+ }
236
+ );
237
+ };
238
+ var SelectValue = ({
239
+ placeholder = "Select...",
240
+ className,
241
+ ...props
242
+ }) => {
243
+ const { selected, options } = useSelect();
244
+ const selectedOptions = options.filter((o) => selected.includes(o.value));
245
+ if (selectedOptions.length === 0) {
246
+ return /* @__PURE__ */ jsx("span", { className: cn(className), ...props, children: placeholder });
247
+ }
248
+ return /* @__PURE__ */ jsx("span", { className: cn(className), ...props, children: selectedOptions.map((option, index) => /* @__PURE__ */ jsxs("span", { children: [
249
+ index > 0 ? ", " : null,
250
+ option.label
251
+ ] }, option.value)) });
252
+ };
253
+ var SelectContent = ({
254
+ children,
255
+ className,
256
+ appearance = "default",
257
+ size = "md",
258
+ spacing = "default",
259
+ ...props
260
+ }) => {
261
+ const { open } = useSelect();
262
+ if (!open) return null;
263
+ return /* @__PURE__ */ jsx(
264
+ "div",
265
+ {
266
+ className: cn(
267
+ selectContentVariants({ appearance, size, spacing }),
268
+ className
269
+ ),
270
+ ...props,
271
+ children
272
+ }
273
+ );
274
+ };
275
+ var SelectItem = ({
276
+ value,
277
+ children,
278
+ disabled,
279
+ appearance = "default",
280
+ className,
281
+ ...props
282
+ }) => {
283
+ const { toggleValue, isSelected, registerOption } = useSelect();
284
+ useEffect(() => {
285
+ registerOption({ label: children, value, disabled });
286
+ }, [children, disabled, registerOption, value]);
287
+ const isActive = isSelected(value);
288
+ return /* @__PURE__ */ jsxs(
289
+ "div",
290
+ {
291
+ role: "option",
292
+ "aria-selected": isActive,
293
+ tabIndex: 0,
294
+ onClick: () => !disabled && toggleValue(value),
295
+ onKeyDown: (e) => {
296
+ if (e.key === "Enter") toggleValue(value);
297
+ },
298
+ "data-selected": isActive ? "true" : "false",
299
+ className: cn(
300
+ selectItemVariants({
301
+ disabled,
302
+ appearance
303
+ }),
304
+ "flex justify-between",
305
+ className
306
+ ),
307
+ ...props,
308
+ children: [
309
+ children,
310
+ isActive && /* @__PURE__ */ jsx("span", { children: "\u2713" })
311
+ ]
312
+ }
313
+ );
314
+ };
315
+ export {
316
+ Select,
317
+ SelectContent,
318
+ SelectContext,
319
+ SelectItem,
320
+ SelectTrigger,
321
+ SelectValue,
322
+ selectContentVariants,
323
+ selectItemVariants,
324
+ selectTriggerVariants,
325
+ useSelect
326
+ };
327
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/select/select.tsx","../../src/lib/utils.ts","../../src/ui/select/variants.ts"],"sourcesContent":["\"use client\";\nimport { useState, useEffect, useCallback, useRef } from \"react\";\nimport {\n SelectProps,\n SelectOption,\n SelectTriggerProps,\n SelectContentProps,\n SelectItemProps,\n SelectValueProps,\n} from \"./types\";\nimport { createContext, useContext } from \"react\";\nimport { SelectContextType } from \"./types\";\nimport { cn } from \"../../lib/utils\";\nimport {\n selectContentVariants,\n selectItemVariants,\n selectTriggerVariants,\n} from \"./variants\";\n\nexport const SelectContext = createContext<SelectContextType | null>(null);\n\nexport const useSelect = () => {\n const ctx = useContext(SelectContext);\n if (!ctx) throw new Error(\"Select components must be used inside Select\");\n return ctx;\n};\n\nexport const Select = ({\n children,\n value,\n defaultValue = [],\n onChange,\n multiple = true,\n}: SelectProps) => {\n const [internal, setInternal] = useState<string[]>(defaultValue);\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<SelectOption[]>([]);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selected = value ?? internal;\n\n useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: PointerEvent) => {\n const root = rootRef.current;\n if (!root) return;\n const target = event.target;\n if (target instanceof Node && !root.contains(target)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open]);\n\n const setSelected = (vals: string[]) => {\n if (value !== undefined) {\n onChange?.(vals);\n } else {\n setInternal(vals);\n onChange?.(vals);\n }\n };\n\n const toggleValue = (val: string) => {\n if (multiple) {\n if (selected.includes(val)) {\n setSelected(selected.filter((v) => v !== val));\n } else {\n setSelected([...selected, val]);\n }\n } else {\n setSelected([val]);\n setOpen(false);\n }\n };\n\n const isSelected = (val: string) => selected.includes(val);\n\n const registerOption = useCallback((opt: SelectOption) => {\n setOptions((prev) => {\n if (prev.find((o) => o.value === opt.value)) return prev;\n return [...prev, opt];\n });\n }, []);\n\n return (\n <SelectContext.Provider\n value={{\n open,\n setOpen,\n selected,\n toggleValue,\n isSelected,\n registerOption,\n options,\n multiple,\n }}\n >\n <div ref={rootRef} className=\"relative w-full\">\n {children}\n </div>\n </SelectContext.Provider>\n );\n};\n\nexport const SelectTrigger = ({\n className,\n variant,\n size,\n ...props\n}: SelectTriggerProps) => {\n const { open, setOpen } = useSelect();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className={cn(selectTriggerVariants({ variant, size }), className)}\n {...props}\n />\n );\n};\n\nexport const SelectValue = ({\n placeholder = \"Select...\",\n className,\n ...props\n}: SelectValueProps) => {\n const { selected, options } = useSelect();\n\n const selectedOptions = options.filter((o) => selected.includes(o.value));\n\n if (selectedOptions.length === 0) {\n return (\n <span className={cn(className)} {...props}>\n {placeholder}\n </span>\n );\n }\n\n return (\n <span className={cn(className)} {...props}>\n {selectedOptions.map((option, index) => (\n <span key={option.value}>\n {index > 0 ? \", \" : null}\n {option.label}\n </span>\n ))}\n </span>\n );\n};\n\nexport const SelectContent = ({\n children,\n className,\n appearance = \"default\",\n size = \"md\",\n spacing = \"default\",\n ...props\n}: SelectContentProps) => {\n const { open } = useSelect();\n\n if (!open) return null;\n\n return (\n <div\n className={cn(\n selectContentVariants({ appearance, size, spacing }),\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport const SelectItem = ({\n value,\n children,\n disabled,\n appearance = \"default\",\n className,\n ...props\n}: SelectItemProps) => {\n const { toggleValue, isSelected, registerOption } = useSelect();\n\n useEffect(() => {\n registerOption({ label: children, value, disabled });\n }, [children, disabled, registerOption, value]);\n\n const isActive = isSelected(value);\n\n return (\n <div\n role=\"option\"\n aria-selected={isActive}\n tabIndex={0}\n onClick={() => !disabled && toggleValue(value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") toggleValue(value);\n }}\n data-selected={isActive ? \"true\" : \"false\"}\n className={cn(\n selectItemVariants({\n disabled,\n appearance,\n }),\n \"flex justify-between\",\n className,\n )}\n {...props}\n >\n {children}\n {isActive && <span>✓</span>}\n </div>\n );\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import { cva } from \"class-variance-authority\";\n\nexport const selectTriggerVariants = cva(\n \"flex items-center justify-between rounded-md border transition-all focus:outline-none\",\n {\n variants: {\n variant: {\n default: \"border-gray-300 bg-white text-gray-900\",\n outline: \"border-2 border-gray-500\",\n ghost: \"border-transparent\",\n sky: \"border-sky-600 text-sky-600\",\n rose: \"border-rose-600 text-rose-600\",\n purple: \"border-purple-600 text-purple-600\",\n pink: \"border-pink-600 text-pink-600\",\n orange: \"border-orange-600 text-orange-600\",\n yellow: \"border-yellow-600 text-yellow-600\",\n teal: \"border-teal-600 text-teal-600\",\n indigo: \"border-indigo-500 text-indigo-500\",\n emerald: \"border-emerald-600 text-emerald-600\",\n glass: \"border-white/15 bg-white/10 text-white backdrop-blur-md\",\n \"gradient-blue\": \"bg-linear-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-white\",\n \"gradient-green\": \"bg-linear-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-white\",\n \"gradient-red\": \"bg-linear-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-white\",\n \"gradient-yellow\": \"bg-linear-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-white\",\n \"gradient-purple\": \"bg-linear-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-white\",\n \"gradient-teal\": \"bg-linear-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-white\",\n \"gradient-indigo\": \"bg-linear-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-white\",\n \"gradient-pink\": \"bg-linear-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-white\",\n \"gradient-orange\": \"bg-linear-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-white\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const selectItemVariants = cva(\n \"cursor-pointer px-3 py-2 rounded-md\",\n {\n variants: {\n appearance: {\n default: \"bg-white text-gray-900 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900\",\n glass: \"bg-white/10 text-gray-100 data-[selected=true]:bg-white/10 data-[selected=true]:text-gray-100\",\n outline: \"border-2 border-gray-500 text-gray-900 data-[selected=true]:border-2 data-[selected=true]:border-gray-500 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900\",\n ghost: \"border-transparent text-gray-900 data-[selected=true]:border-transparent data-[selected=true]:bg-transparent data-[selected=true]:text-gray-900\",\n sky: \"border-sky-600 text-sky-800 data-[selected=true]:border-sky-600 data-[selected=true]:bg-sky-200 data-[selected=true]:text-sky-800\",\n rose: \"border-rose-600 text-rose-800 data-[selected=true]:border-rose-600 data-[selected=true]:bg-rose-200 data-[selected=true]:text-rose-800\",\n purple: \"border-purple-600 text-purple-800 data-[selected=true]:border-purple-600 data-[selected=true]:bg-purple-200 data-[selected=true]:text-purple-800\",\n pink: \"border-pink-600 text-pink-800 data-[selected=true]:border-pink-600 data-[selected=true]:bg-pink-200 data-[selected=true]:text-pink-800\",\n orange: \"border-orange-600 text-orange-800 data-[selected=true]:border-orange-600 data-[selected=true]:bg-orange-200 data-[selected=true]:text-orange-800\",\n yellow: \"border-yellow-600 text-yellow-800 data-[selected=true]:border-yellow-600 data-[selected=true]:bg-yellow-200 data-[selected=true]:text-yellow-800\",\n teal: \"border-teal-600 text-teal-800 data-[selected=true]:border-teal-600 data-[selected=true]:bg-teal-200 data-[selected=true]:text-teal-800\",\n indigo: \"border-indigo-600 text-indigo-800 data-[selected=true]:border-indigo-600 data-[selected=true]:bg-indigo-200 data-[selected=true]:text-indigo-800\",\n emerald: \"border-emerald-600 text-emerald-800 data-[selected=true]:border-emerald-600 data-[selected=true]:bg-emerald-200 data-[selected=true]:text-emerald-800\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-blue-50 data-[selected=true]:bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-blue-100\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-green-50 data-[selected=true]:bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl data-[selected=true]:text-green-100\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-red-50 data-[selected=true]:bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-red-100\",\n \"gradient-yellow\": \"bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-yellow-50 data-[selected=true]:bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl data-[selected=true]:text-yellow-100\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-purple-50 data-[selected=true]:bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-purple-100\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-teal-50 data-[selected=true]:bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl data-[selected=true]:text-teal-100\",\n \"gradient-indigo\": \"bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-indigo-50 data-[selected=true]:bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-indigo-100\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-pink-50 data-[selected=true]:bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl data-[selected=true]:text-pink-100\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-orange-50 data-[selected=true]:bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl data-[selected=true]:text-orange-100\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const selectContentVariants = cva(\n \"absolute z-10 mt-2 w-full rounded-md border bg-white shadow-md\",\n {\n variants: {\n appearance: {\n default: \"bg-white shadow-md\",\n glass: \"bg-white/10 backdrop-blur-md\",\n outline: \"border-2 border-gray-500\",\n ghost: \"border-transparent\",\n sky: \"border-sky-600\",\n rose: \"border-rose-600\",\n purple: \"border-purple-600\",\n pink: \"border-pink-600\",\n orange: \"border-orange-600\",\n yellow: \"border-yellow-600\",\n teal: \"border-teal-600\",\n indigo: \"border-indigo-600\",\n emerald: \"border-emerald-600\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\": \"bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\": \"bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2\",\n lg: \"px-4 py-3 text-lg\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n }\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n spacing: \"default\",\n },\n },\n);\n"],"mappings":"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","names":[]}