@lindle/linoardo 1.0.9 → 1.0.11
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/dist/index.cjs +647 -370
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +86 -26
- package/dist/index.d.ts +86 -26
- package/dist/index.js +643 -370
- package/dist/index.js.map +1 -1
- package/dist/styles.css +634 -53
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React4 from 'react';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -8,60 +8,90 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
8
8
|
var iconBaseClasses = {
|
|
9
9
|
mdi: ["mdi"]
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
11
|
+
var base = "btn-base focus-visible:outline-none focus-visible:ring-2 rounded-lg transition-colors duration-200 font-medium disabled:opacity-50 disabled:cursor-not-allowed";
|
|
12
|
+
var blackAndWhiteVariantClass = "bg-white text-black border border-black focus-visible:ring-black/40 focus-visible:ring-offset-white";
|
|
13
|
+
var blackAndWhitePaletteClasses = {
|
|
14
|
+
solid: twMerge(blackAndWhiteVariantClass, "bg-black text-white"),
|
|
15
|
+
outline: blackAndWhiteVariantClass,
|
|
16
|
+
ghost: "bg-neutral-300 text-white",
|
|
17
|
+
text: blackAndWhiteVariantClass,
|
|
18
|
+
filled: "bg-black text-white",
|
|
19
|
+
underlined: twMerge(blackAndWhiteVariantClass, "b"),
|
|
20
|
+
rounded: blackAndWhiteVariantClass,
|
|
21
|
+
sharp: "bg-black text-white rounded-none"
|
|
22
|
+
};
|
|
15
23
|
var paletteVariantClasses = {
|
|
16
24
|
primary: {
|
|
17
25
|
solid: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary",
|
|
26
|
+
sharp: "rounded-none bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary",
|
|
18
27
|
outline: "border border-primary text-primary bg-white hover:bg-primary hover:text-white focus-visible:ring-primary",
|
|
19
|
-
ghost: "text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40",
|
|
20
|
-
text: "bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2",
|
|
21
|
-
|
|
28
|
+
ghost: "text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent",
|
|
29
|
+
text: "bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent",
|
|
30
|
+
filled: "bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25",
|
|
31
|
+
underlined: "bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25",
|
|
32
|
+
rounded: "rounded-full border border-primary/60 bg-primary/10 text-primary hover:bg-primary/20 focus-visible:ring-primary/25"
|
|
22
33
|
},
|
|
23
34
|
neutral: {
|
|
24
35
|
solid: "bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500",
|
|
36
|
+
sharp: "rounded-none bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500",
|
|
25
37
|
outline: "border border-gray-400 text-gray-700 bg-white hover:bg-gray-700 hover:text-white focus-visible:ring-gray-400",
|
|
26
|
-
ghost: "text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300",
|
|
27
|
-
text: "bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2",
|
|
28
|
-
|
|
38
|
+
ghost: "text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent",
|
|
39
|
+
text: "bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent",
|
|
40
|
+
filled: "bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300",
|
|
41
|
+
underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300",
|
|
42
|
+
rounded: "rounded-full border border-gray-400 bg-white text-gray-800 hover:bg-gray-100 focus-visible:ring-gray-300"
|
|
29
43
|
},
|
|
30
44
|
info: {
|
|
31
45
|
solid: "bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400",
|
|
46
|
+
sharp: "rounded-none bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400",
|
|
32
47
|
outline: "border border-sky-500 text-sky-600 bg-white hover:bg-sky-500 hover:text-white focus-visible:ring-sky-400",
|
|
33
|
-
ghost: "text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300",
|
|
34
|
-
text: "bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2",
|
|
35
|
-
|
|
48
|
+
ghost: "text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent",
|
|
49
|
+
text: "bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent",
|
|
50
|
+
filled: "bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200",
|
|
51
|
+
underlined: "bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200",
|
|
52
|
+
rounded: "rounded-full border border-sky-500/70 bg-sky-50 text-sky-700 hover:bg-sky-100 focus-visible:ring-sky-200"
|
|
36
53
|
},
|
|
37
54
|
success: {
|
|
38
55
|
solid: "bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400",
|
|
56
|
+
sharp: "rounded-none bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400",
|
|
39
57
|
outline: "border border-emerald-500 text-emerald-600 bg-white hover:bg-emerald-500 hover:text-white focus-visible:ring-emerald-400",
|
|
40
|
-
ghost: "text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300",
|
|
41
|
-
text: "bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2",
|
|
42
|
-
|
|
58
|
+
ghost: "text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent",
|
|
59
|
+
text: "bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent",
|
|
60
|
+
filled: "bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200",
|
|
61
|
+
underlined: "bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200",
|
|
62
|
+
rounded: "rounded-full border border-emerald-500/70 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 focus-visible:ring-emerald-200"
|
|
43
63
|
},
|
|
44
64
|
warning: {
|
|
45
65
|
solid: "bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400",
|
|
66
|
+
sharp: "rounded-none bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400",
|
|
46
67
|
outline: "border border-amber-500 text-amber-600 bg-white hover:bg-amber-500 hover:text-white focus-visible:ring-amber-400",
|
|
47
|
-
ghost: "text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300",
|
|
48
|
-
text: "bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2",
|
|
49
|
-
|
|
68
|
+
ghost: "text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent",
|
|
69
|
+
text: "bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent",
|
|
70
|
+
filled: "bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200",
|
|
71
|
+
underlined: "bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200",
|
|
72
|
+
rounded: "rounded-full border border-amber-500/70 bg-amber-50 text-amber-700 hover:bg-amber-100 focus-visible:ring-amber-200"
|
|
50
73
|
},
|
|
51
74
|
danger: {
|
|
52
75
|
solid: "bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400",
|
|
76
|
+
sharp: "rounded-none bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400",
|
|
53
77
|
outline: "border border-red-500 text-red-600 bg-white hover:bg-red-500 hover:text-white focus-visible:ring-red-400",
|
|
54
|
-
ghost: "text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300",
|
|
55
|
-
text: "bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2",
|
|
56
|
-
|
|
78
|
+
ghost: "text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent",
|
|
79
|
+
text: "bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent",
|
|
80
|
+
filled: "bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200",
|
|
81
|
+
underlined: "bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200",
|
|
82
|
+
rounded: "rounded-full border border-red-500/70 bg-red-50 text-red-700 hover:bg-red-100 focus-visible:ring-red-200"
|
|
57
83
|
},
|
|
58
84
|
surface: {
|
|
59
85
|
solid: "bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200",
|
|
86
|
+
sharp: "rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200",
|
|
60
87
|
outline: "border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200",
|
|
61
|
-
ghost: "text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200",
|
|
62
|
-
text: "bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2",
|
|
63
|
-
|
|
64
|
-
|
|
88
|
+
ghost: "text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent",
|
|
89
|
+
text: "bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent",
|
|
90
|
+
filled: "bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200",
|
|
91
|
+
underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200",
|
|
92
|
+
rounded: "rounded-full border border-gray-300 bg-white text-gray-900 hover:bg-gray-50 focus-visible:ring-gray-200"
|
|
93
|
+
},
|
|
94
|
+
bw: blackAndWhitePaletteClasses
|
|
65
95
|
};
|
|
66
96
|
var resolveVariantClass = (variant, palette) => {
|
|
67
97
|
const paletteVariants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;
|
|
@@ -99,7 +129,7 @@ var sizeClasses = {
|
|
|
99
129
|
large: "px-6 py-3 text-lg",
|
|
100
130
|
"x-large": "px-7 py-3.5 text-xl"
|
|
101
131
|
};
|
|
102
|
-
var Button =
|
|
132
|
+
var Button = React4.forwardRef(
|
|
103
133
|
({
|
|
104
134
|
variant = "solid",
|
|
105
135
|
color = "primary",
|
|
@@ -134,7 +164,7 @@ var Button = React5.forwardRef(
|
|
|
134
164
|
ref,
|
|
135
165
|
onClick,
|
|
136
166
|
disabled: isDisabled,
|
|
137
|
-
className: twMerge(base, cursor, variantClass, sizeClass, blockClass, gapClass, className
|
|
167
|
+
className: twMerge(base, cursor, variantClass, sizeClass, blockClass, gapClass, className),
|
|
138
168
|
"data-loading": loading || void 0,
|
|
139
169
|
"aria-busy": loading || void 0,
|
|
140
170
|
children: [
|
|
@@ -158,56 +188,88 @@ var chipSizeClasses = {
|
|
|
158
188
|
};
|
|
159
189
|
var closeButtonClasses = "ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-transparent text-current/70 transition-colors duration-200 hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30 focus-visible:ring-offset-2";
|
|
160
190
|
var blackAndWhiteChipVariantClass = "bg-white text-black border border-black hover:bg-white focus-visible:ring-black/40 focus-visible:ring-offset-white";
|
|
191
|
+
var blackAndWhitePaletteClasses2 = {
|
|
192
|
+
solid: blackAndWhiteChipVariantClass,
|
|
193
|
+
outline: blackAndWhiteChipVariantClass,
|
|
194
|
+
ghost: blackAndWhiteChipVariantClass,
|
|
195
|
+
text: blackAndWhiteChipVariantClass,
|
|
196
|
+
filled: blackAndWhiteChipVariantClass,
|
|
197
|
+
underlined: blackAndWhiteChipVariantClass,
|
|
198
|
+
rounded: blackAndWhiteChipVariantClass,
|
|
199
|
+
sharp: `${blackAndWhiteChipVariantClass} rounded-none`
|
|
200
|
+
};
|
|
161
201
|
var paletteVariantClasses2 = {
|
|
162
202
|
primary: {
|
|
163
203
|
solid: "bg-primary text-white border border-primary hover:bg-primary/90",
|
|
204
|
+
sharp: "rounded-none bg-primary text-white border border-primary hover:bg-primary/90",
|
|
164
205
|
outline: "bg-transparent text-primary border border-primary hover:bg-primary/10",
|
|
165
206
|
ghost: "bg-primary/15 text-primary border border-transparent hover:bg-primary/25",
|
|
166
207
|
text: "bg-transparent text-primary border border-transparent hover:text-primary/80",
|
|
167
|
-
|
|
208
|
+
filled: "bg-primary/10 text-primary border border-primary/30 hover:bg-primary/20",
|
|
209
|
+
underlined: "bg-transparent text-primary border-0 border-b-2 border-primary px-0 rounded-none hover:text-primary/80",
|
|
210
|
+
rounded: "bg-white text-primary border border-primary/40 shadow-sm hover:bg-primary/5"
|
|
168
211
|
},
|
|
169
212
|
neutral: {
|
|
170
213
|
solid: "bg-gray-900 text-white border border-gray-900 hover:bg-gray-800",
|
|
214
|
+
sharp: "rounded-none bg-gray-900 text-white border border-gray-900 hover:bg-gray-800",
|
|
171
215
|
outline: "bg-transparent text-gray-900 border border-gray-500 hover:bg-gray-100",
|
|
172
216
|
ghost: "bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200",
|
|
173
217
|
text: "bg-transparent text-gray-900 border border-transparent hover:text-gray-700",
|
|
174
|
-
|
|
218
|
+
filled: "bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300",
|
|
219
|
+
underlined: "bg-transparent text-gray-900 border-0 border-b-2 border-gray-500 px-0 rounded-none hover:text-gray-700",
|
|
220
|
+
rounded: "bg-white text-gray-900 border border-gray-300 shadow-sm hover:bg-gray-100"
|
|
175
221
|
},
|
|
176
222
|
info: {
|
|
177
223
|
solid: "bg-sky-500 text-white border border-sky-500 hover:bg-sky-600",
|
|
224
|
+
sharp: "rounded-none bg-sky-500 text-white border border-sky-500 hover:bg-sky-600",
|
|
178
225
|
outline: "bg-transparent text-sky-600 border border-sky-500 hover:bg-sky-50",
|
|
179
226
|
ghost: "bg-sky-100 text-sky-700 border border-transparent hover:bg-sky-200",
|
|
180
227
|
text: "bg-transparent text-sky-600 border border-transparent hover:text-sky-700",
|
|
181
|
-
|
|
228
|
+
filled: "bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200",
|
|
229
|
+
underlined: "bg-transparent text-sky-600 border-0 border-b-2 border-sky-500 px-0 rounded-none hover:text-sky-700",
|
|
230
|
+
rounded: "bg-white text-sky-700 border border-sky-200 shadow-sm hover:bg-sky-50"
|
|
182
231
|
},
|
|
183
232
|
success: {
|
|
184
233
|
solid: "bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600",
|
|
234
|
+
sharp: "rounded-none bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600",
|
|
185
235
|
outline: "bg-transparent text-emerald-600 border border-emerald-500 hover:bg-emerald-50",
|
|
186
236
|
ghost: "bg-emerald-100 text-emerald-700 border border-transparent hover:bg-emerald-200",
|
|
187
237
|
text: "bg-transparent text-emerald-600 border border-transparent hover:text-emerald-700",
|
|
188
|
-
|
|
238
|
+
filled: "bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200",
|
|
239
|
+
underlined: "bg-transparent text-emerald-600 border-0 border-b-2 border-emerald-500 px-0 rounded-none hover:text-emerald-700",
|
|
240
|
+
rounded: "bg-white text-emerald-700 border border-emerald-200 shadow-sm hover:bg-emerald-50"
|
|
189
241
|
},
|
|
190
242
|
warning: {
|
|
191
243
|
solid: "bg-amber-500 text-white border border-amber-500 hover:bg-amber-600",
|
|
244
|
+
sharp: "rounded-none bg-amber-500 text-white border border-amber-500 hover:bg-amber-600",
|
|
192
245
|
outline: "bg-transparent text-amber-700 border border-amber-500 hover:bg-amber-50",
|
|
193
246
|
ghost: "bg-amber-100 text-amber-800 border border-transparent hover:bg-amber-200",
|
|
194
247
|
text: "bg-transparent text-amber-700 border border-transparent hover:text-amber-800",
|
|
195
|
-
|
|
248
|
+
filled: "bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200",
|
|
249
|
+
underlined: "bg-transparent text-amber-700 border-0 border-b-2 border-amber-500 px-0 rounded-none hover:text-amber-800",
|
|
250
|
+
rounded: "bg-white text-amber-700 border border-amber-200 shadow-sm hover:bg-amber-50"
|
|
196
251
|
},
|
|
197
252
|
danger: {
|
|
198
253
|
solid: "bg-red-500 text-white border border-red-500 hover:bg-red-600",
|
|
254
|
+
sharp: "rounded-none bg-red-500 text-white border border-red-500 hover:bg-red-600",
|
|
199
255
|
outline: "bg-transparent text-red-600 border border-red-500 hover:bg-red-50",
|
|
200
256
|
ghost: "bg-red-100 text-red-700 border border-transparent hover:bg-red-200",
|
|
201
257
|
text: "bg-transparent text-red-600 border border-transparent hover:text-red-700",
|
|
202
|
-
|
|
258
|
+
filled: "bg-red-100 text-red-700 border border-red-200 hover:bg-red-200",
|
|
259
|
+
underlined: "bg-transparent text-red-600 border-0 border-b-2 border-red-500 px-0 rounded-none hover:text-red-700",
|
|
260
|
+
rounded: "bg-white text-red-600 border border-red-200 shadow-sm hover:bg-red-50"
|
|
203
261
|
},
|
|
204
262
|
surface: {
|
|
205
263
|
solid: "bg-white text-gray-900 border border-gray-200 hover:bg-gray-50",
|
|
264
|
+
sharp: "rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50",
|
|
206
265
|
outline: "bg-transparent text-gray-900 border border-gray-300 hover:bg-gray-50",
|
|
207
266
|
ghost: "bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200",
|
|
208
267
|
text: "bg-transparent text-gray-900 border border-transparent hover:text-gray-600",
|
|
209
|
-
|
|
210
|
-
|
|
268
|
+
filled: "bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white",
|
|
269
|
+
underlined: "bg-transparent text-gray-900 border-0 border-b-2 border-gray-400 px-0 rounded-none hover:text-gray-600",
|
|
270
|
+
rounded: "bg-white text-gray-900 border border-gray-200 shadow-sm hover:bg-gray-50"
|
|
271
|
+
},
|
|
272
|
+
bw: blackAndWhitePaletteClasses2
|
|
211
273
|
};
|
|
212
274
|
var resolveVariantClass2 = (variant, palette) => {
|
|
213
275
|
const variants = paletteVariantClasses2[palette] ?? paletteVariantClasses2.primary;
|
|
@@ -238,7 +300,7 @@ var resolveIconClassName2 = (icon) => {
|
|
|
238
300
|
const normalized = iconName.startsWith("mdi-") ? iconName : `mdi-${iconName}`;
|
|
239
301
|
return Array.from(/* @__PURE__ */ new Set([...baseClasses, normalized])).join(" ");
|
|
240
302
|
};
|
|
241
|
-
var Chip =
|
|
303
|
+
var Chip = React4.forwardRef(
|
|
242
304
|
({
|
|
243
305
|
variant = "solid",
|
|
244
306
|
color = "primary",
|
|
@@ -270,7 +332,7 @@ var Chip = React5.forwardRef(
|
|
|
270
332
|
const appendIconClassName = resolveIconClassName2(appendIcon);
|
|
271
333
|
const closeIconClassName = resolveIconClassName2(closeIcon);
|
|
272
334
|
const filterIconClassName = filter && selected ? resolveIconClassName2(filterIcon) : void 0;
|
|
273
|
-
const handleClick =
|
|
335
|
+
const handleClick = React4.useCallback(
|
|
274
336
|
(event) => {
|
|
275
337
|
if (disabled) {
|
|
276
338
|
event.preventDefault();
|
|
@@ -281,7 +343,7 @@ var Chip = React5.forwardRef(
|
|
|
281
343
|
},
|
|
282
344
|
[disabled, onClick]
|
|
283
345
|
);
|
|
284
|
-
const handleKeyDown =
|
|
346
|
+
const handleKeyDown = React4.useCallback(
|
|
285
347
|
(event) => {
|
|
286
348
|
onKeyDown?.(event);
|
|
287
349
|
if (event.defaultPrevented || disabled || !interactive) {
|
|
@@ -294,7 +356,7 @@ var Chip = React5.forwardRef(
|
|
|
294
356
|
},
|
|
295
357
|
[disabled, interactive, onKeyDown]
|
|
296
358
|
);
|
|
297
|
-
const handleCloseClick =
|
|
359
|
+
const handleCloseClick = React4.useCallback(
|
|
298
360
|
(event) => {
|
|
299
361
|
event.stopPropagation();
|
|
300
362
|
if (disabled) {
|
|
@@ -305,7 +367,7 @@ var Chip = React5.forwardRef(
|
|
|
305
367
|
},
|
|
306
368
|
[disabled, onClose]
|
|
307
369
|
);
|
|
308
|
-
const handleCloseKeyDown =
|
|
370
|
+
const handleCloseKeyDown = React4.useCallback((event) => {
|
|
309
371
|
if (event.key === " " || event.key === "Enter") {
|
|
310
372
|
event.stopPropagation();
|
|
311
373
|
}
|
|
@@ -374,9 +436,10 @@ var accentClasses = {
|
|
|
374
436
|
success: { text: "text-emerald-600", bg: "bg-emerald-50", indicator: "bg-emerald-500" },
|
|
375
437
|
warning: { text: "text-amber-700", bg: "bg-amber-50", indicator: "bg-amber-500" },
|
|
376
438
|
danger: { text: "text-red-600", bg: "bg-red-50", indicator: "bg-red-500" },
|
|
377
|
-
surface: { text: "text-gray-900", bg: "bg-gray-100", indicator: "bg-gray-900" }
|
|
439
|
+
surface: { text: "text-gray-900", bg: "bg-gray-100", indicator: "bg-gray-900" },
|
|
440
|
+
bw: { text: "text-gray-900", bg: "bg-gray-100", indicator: "bg-gray-900" }
|
|
378
441
|
};
|
|
379
|
-
var ListItem =
|
|
442
|
+
var ListItem = React4.forwardRef((props, ref) => {
|
|
380
443
|
const {
|
|
381
444
|
component,
|
|
382
445
|
href,
|
|
@@ -396,6 +459,7 @@ var ListItem = React5.forwardRef((props, ref) => {
|
|
|
396
459
|
nav: navOverride,
|
|
397
460
|
divided: dividedOverride,
|
|
398
461
|
color: colorOverride,
|
|
462
|
+
sharp: sharpOverride,
|
|
399
463
|
className,
|
|
400
464
|
children,
|
|
401
465
|
tabIndex,
|
|
@@ -407,8 +471,9 @@ var ListItem = React5.forwardRef((props, ref) => {
|
|
|
407
471
|
const nav = navOverride ?? false;
|
|
408
472
|
const divided = dividedOverride ?? false;
|
|
409
473
|
const color = colorOverride ?? "primary";
|
|
474
|
+
const sharp = sharpOverride ?? false;
|
|
410
475
|
const accent = accentClasses[color] ?? accentClasses.primary;
|
|
411
|
-
const shapeClass = divided ? "rounded-none" : "rounded-lg";
|
|
476
|
+
const shapeClass = divided || sharp ? "rounded-none" : "rounded-lg";
|
|
412
477
|
const Component = component ?? (href ? "a" : "div");
|
|
413
478
|
const interactive = typeof rest.onClick === "function" || Component === "a" || Component === "button";
|
|
414
479
|
const resolvedRole = role ?? "listitem";
|
|
@@ -474,10 +539,13 @@ var Item_default = ListItem;
|
|
|
474
539
|
var listBaseClasses = "flex w-full min-w-0 flex-col text-gray-900 transition-colors duration-150";
|
|
475
540
|
var listVariantClasses = {
|
|
476
541
|
solid: "bg-white border border-gray-200 shadow-sm shadow-gray-900/5",
|
|
542
|
+
sharp: "bg-white border border-gray-200 shadow-sm shadow-gray-900/5 rounded-none",
|
|
477
543
|
outline: "bg-transparent border border-gray-300",
|
|
478
544
|
ghost: "bg-gray-50 border border-transparent",
|
|
479
545
|
text: "bg-transparent border border-transparent",
|
|
480
|
-
|
|
546
|
+
filled: "bg-gray-50 border border-gray-200 shadow-inner shadow-gray-900/5",
|
|
547
|
+
underlined: "bg-transparent border border-transparent border-b border-gray-200 rounded-none",
|
|
548
|
+
rounded: "bg-white border border-gray-200 shadow-lg shadow-gray-900/10"
|
|
481
549
|
};
|
|
482
550
|
var listRoundedClasses = {
|
|
483
551
|
none: "rounded-none",
|
|
@@ -488,13 +556,13 @@ var listRoundedClasses = {
|
|
|
488
556
|
pill: "rounded-full"
|
|
489
557
|
};
|
|
490
558
|
var isListItemElement = (element) => {
|
|
491
|
-
if (!
|
|
559
|
+
if (!React4.isValidElement(element)) {
|
|
492
560
|
return false;
|
|
493
561
|
}
|
|
494
562
|
const elementType = element.type;
|
|
495
563
|
return element.type === Item_default || elementType.displayName === Item_default.displayName;
|
|
496
564
|
};
|
|
497
|
-
var List =
|
|
565
|
+
var List = React4.forwardRef((props, ref) => {
|
|
498
566
|
const {
|
|
499
567
|
variant = "solid",
|
|
500
568
|
density = "default",
|
|
@@ -508,34 +576,36 @@ var List = React5.forwardRef((props, ref) => {
|
|
|
508
576
|
children,
|
|
509
577
|
...rest
|
|
510
578
|
} = props;
|
|
579
|
+
const isSharpVariant = variant === "sharp";
|
|
511
580
|
const variantClass = listVariantClasses[variant] ?? listVariantClasses.solid;
|
|
512
|
-
const roundedClass = listRoundedClasses[rounded] ?? listRoundedClasses.lg;
|
|
581
|
+
const roundedClass = isSharpVariant ? "rounded-none" : listRoundedClasses[rounded] ?? listRoundedClasses.lg;
|
|
513
582
|
const dividerClass = divided ? "divide-y divide-gray-100" : void 0;
|
|
514
583
|
const gapClass = divided ? "p-0" : "gap-1 p-1";
|
|
515
584
|
const navClass = nav ? "py-1" : void 0;
|
|
516
|
-
const accentColor =
|
|
585
|
+
const accentColor = color;
|
|
517
586
|
const enhanceChild = (child) => {
|
|
518
|
-
if (!
|
|
587
|
+
if (!React4.isValidElement(child)) {
|
|
519
588
|
return child;
|
|
520
589
|
}
|
|
521
590
|
if (isListItemElement(child)) {
|
|
522
|
-
return
|
|
591
|
+
return React4.cloneElement(child, {
|
|
523
592
|
density: child.props.density ?? density,
|
|
524
593
|
lines: child.props.lines ?? lines,
|
|
525
594
|
nav: child.props.nav ?? nav,
|
|
526
595
|
divided: child.props.divided ?? divided,
|
|
527
|
-
color: child.props.color ?? accentColor
|
|
596
|
+
color: child.props.color ?? accentColor,
|
|
597
|
+
sharp: child.props.sharp ?? isSharpVariant
|
|
528
598
|
});
|
|
529
599
|
}
|
|
530
600
|
if (child.props && typeof child.props === "object" && "children" in child.props) {
|
|
531
|
-
const nestedChildren =
|
|
601
|
+
const nestedChildren = React4.Children.map(child.props.children, enhanceChild);
|
|
532
602
|
if (nestedChildren !== child.props.children) {
|
|
533
|
-
return
|
|
603
|
+
return React4.cloneElement(child, void 0, nestedChildren);
|
|
534
604
|
}
|
|
535
605
|
}
|
|
536
606
|
return child;
|
|
537
607
|
};
|
|
538
|
-
const resolvedChildren =
|
|
608
|
+
const resolvedChildren = React4.Children.map(children, enhanceChild);
|
|
539
609
|
return /* @__PURE__ */ jsx(
|
|
540
610
|
"div",
|
|
541
611
|
{
|
|
@@ -549,8 +619,6 @@ var List = React5.forwardRef((props, ref) => {
|
|
|
549
619
|
});
|
|
550
620
|
List.displayName = "List";
|
|
551
621
|
var List_default = List;
|
|
552
|
-
var isBrowser = typeof window !== "undefined";
|
|
553
|
-
var useIsomorphicLayoutEffect = isBrowser ? React5.useLayoutEffect : React5.useEffect;
|
|
554
622
|
var placementClasses = {
|
|
555
623
|
"bottom-start": "left-0 top-full origin-top-left",
|
|
556
624
|
bottom: "left-1/2 top-full -translate-x-1/2 origin-top",
|
|
@@ -563,350 +631,75 @@ var offsetClasses = {
|
|
|
563
631
|
top: "mb-2",
|
|
564
632
|
bottom: "mt-2"
|
|
565
633
|
};
|
|
566
|
-
var menuBaseClasses = "absolute z-50 min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150
|
|
634
|
+
var menuBaseClasses = "absolute z-50 min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2";
|
|
567
635
|
var overlayBaseClasses = "fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px]";
|
|
568
|
-
var Menu =
|
|
636
|
+
var Menu = React4.forwardRef((props, ref) => {
|
|
569
637
|
const {
|
|
570
638
|
activator,
|
|
571
639
|
children,
|
|
572
|
-
open: openProp,
|
|
573
|
-
defaultOpen = false,
|
|
574
|
-
onOpenChange,
|
|
575
640
|
placement = "bottom-start",
|
|
576
|
-
|
|
577
|
-
|
|
641
|
+
open,
|
|
642
|
+
openOnHover = true,
|
|
643
|
+
openOnFocus = true,
|
|
578
644
|
matchActivatorWidth = false,
|
|
579
645
|
keepMounted = false,
|
|
580
|
-
disabled = false,
|
|
581
646
|
scrim = false,
|
|
582
647
|
contentClassName,
|
|
583
648
|
contentProps,
|
|
584
649
|
overlayClassName,
|
|
585
650
|
className,
|
|
586
|
-
onMouseEnter: rootMouseEnter,
|
|
587
|
-
onMouseLeave: rootMouseLeave,
|
|
588
651
|
...rest
|
|
589
652
|
} = props;
|
|
590
|
-
const
|
|
591
|
-
const
|
|
592
|
-
const
|
|
593
|
-
const
|
|
594
|
-
const
|
|
595
|
-
const
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
const activatorRef = React5.useRef(null);
|
|
599
|
-
const closeTimeoutRef = React5.useRef(null);
|
|
600
|
-
const mergedRootRef = React5.useCallback(
|
|
601
|
-
(node) => {
|
|
602
|
-
localRootRef.current = node;
|
|
603
|
-
if (typeof ref === "function") {
|
|
604
|
-
ref(node);
|
|
605
|
-
} else if (ref) {
|
|
606
|
-
ref.current = node;
|
|
607
|
-
}
|
|
608
|
-
},
|
|
609
|
-
[ref]
|
|
610
|
-
);
|
|
611
|
-
const [activatorWidth, setActivatorWidth] = React5.useState();
|
|
612
|
-
const updateActivatorWidth = React5.useCallback(() => {
|
|
613
|
-
if (!matchActivatorWidth) {
|
|
614
|
-
setActivatorWidth(void 0);
|
|
615
|
-
return;
|
|
616
|
-
}
|
|
617
|
-
const node = activatorRef.current;
|
|
618
|
-
if (!node) {
|
|
619
|
-
return;
|
|
620
|
-
}
|
|
621
|
-
setActivatorWidth(node.getBoundingClientRect().width);
|
|
622
|
-
}, [matchActivatorWidth]);
|
|
623
|
-
useIsomorphicLayoutEffect(() => {
|
|
624
|
-
if (!matchActivatorWidth) {
|
|
625
|
-
return;
|
|
626
|
-
}
|
|
627
|
-
updateActivatorWidth();
|
|
628
|
-
if (!activatorRef.current || typeof ResizeObserver === "undefined") {
|
|
629
|
-
return;
|
|
630
|
-
}
|
|
631
|
-
const observer = new ResizeObserver(() => updateActivatorWidth());
|
|
632
|
-
observer.observe(activatorRef.current);
|
|
633
|
-
return () => observer.disconnect();
|
|
634
|
-
}, [matchActivatorWidth, updateActivatorWidth]);
|
|
635
|
-
const setOpen = React5.useCallback(
|
|
636
|
-
(nextOpen) => {
|
|
637
|
-
if (disabled || open === nextOpen) {
|
|
638
|
-
return;
|
|
639
|
-
}
|
|
640
|
-
if (!isControlled) {
|
|
641
|
-
setInternalOpen(nextOpen);
|
|
642
|
-
}
|
|
643
|
-
onOpenChange?.(nextOpen);
|
|
644
|
-
},
|
|
645
|
-
[disabled, isControlled, onOpenChange, open]
|
|
646
|
-
);
|
|
647
|
-
React5.useEffect(() => {
|
|
648
|
-
if (!disabled || !open) {
|
|
649
|
-
return;
|
|
650
|
-
}
|
|
651
|
-
if (!isControlled) {
|
|
652
|
-
setInternalOpen(false);
|
|
653
|
-
}
|
|
654
|
-
onOpenChange?.(false);
|
|
655
|
-
}, [disabled, open, isControlled, onOpenChange]);
|
|
656
|
-
React5.useEffect(() => {
|
|
657
|
-
if (!open) {
|
|
658
|
-
return;
|
|
659
|
-
}
|
|
660
|
-
const handlePointerDown = (event) => {
|
|
661
|
-
const target = event.target;
|
|
662
|
-
if (!target) {
|
|
663
|
-
return;
|
|
664
|
-
}
|
|
665
|
-
if (localRootRef.current?.contains(target)) {
|
|
666
|
-
return;
|
|
667
|
-
}
|
|
668
|
-
setOpen(false);
|
|
669
|
-
};
|
|
670
|
-
const handleKeyDown = (event) => {
|
|
671
|
-
if (event.key === "Escape") {
|
|
672
|
-
event.stopPropagation();
|
|
673
|
-
setOpen(false);
|
|
674
|
-
activatorRef.current?.focus();
|
|
675
|
-
}
|
|
676
|
-
};
|
|
677
|
-
document.addEventListener("pointerdown", handlePointerDown);
|
|
678
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
679
|
-
return () => {
|
|
680
|
-
document.removeEventListener("pointerdown", handlePointerDown);
|
|
681
|
-
document.removeEventListener("keydown", handleKeyDown);
|
|
682
|
-
};
|
|
683
|
-
}, [open, setOpen]);
|
|
684
|
-
React5.useEffect(() => {
|
|
685
|
-
if (!open) {
|
|
686
|
-
return;
|
|
687
|
-
}
|
|
688
|
-
const node = menuRef.current;
|
|
689
|
-
if (!node) {
|
|
690
|
-
return;
|
|
691
|
-
}
|
|
692
|
-
const id = window.requestAnimationFrame(() => {
|
|
693
|
-
node.focus({ preventScroll: true });
|
|
694
|
-
});
|
|
695
|
-
return () => window.cancelAnimationFrame(id);
|
|
696
|
-
}, [open]);
|
|
697
|
-
const setActivatorNode = React5.useCallback(
|
|
698
|
-
(node) => {
|
|
699
|
-
activatorRef.current = node;
|
|
700
|
-
if (node && matchActivatorWidth) {
|
|
701
|
-
setActivatorWidth(node.getBoundingClientRect().width);
|
|
702
|
-
}
|
|
703
|
-
},
|
|
704
|
-
[matchActivatorWidth]
|
|
705
|
-
);
|
|
706
|
-
const handleActivatorClick = React5.useCallback(
|
|
707
|
-
(event) => {
|
|
708
|
-
event.preventDefault();
|
|
709
|
-
if (disabled) {
|
|
710
|
-
return;
|
|
711
|
-
}
|
|
712
|
-
setOpen(!open);
|
|
713
|
-
},
|
|
714
|
-
[disabled, open, setOpen]
|
|
715
|
-
);
|
|
716
|
-
const handleActivatorKeyDown = React5.useCallback(
|
|
717
|
-
(event) => {
|
|
718
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
719
|
-
event.preventDefault();
|
|
720
|
-
setOpen(!open);
|
|
721
|
-
}
|
|
722
|
-
if (event.key === "ArrowDown") {
|
|
723
|
-
event.preventDefault();
|
|
724
|
-
setOpen(true);
|
|
725
|
-
}
|
|
726
|
-
},
|
|
727
|
-
[open, setOpen]
|
|
728
|
-
);
|
|
729
|
-
const clearCloseTimeout = React5.useCallback(() => {
|
|
730
|
-
if (closeTimeoutRef.current !== null) {
|
|
731
|
-
if (isBrowser) {
|
|
732
|
-
window.clearTimeout(closeTimeoutRef.current);
|
|
733
|
-
}
|
|
734
|
-
closeTimeoutRef.current = null;
|
|
735
|
-
}
|
|
736
|
-
}, []);
|
|
737
|
-
const scheduleClose = React5.useCallback(() => {
|
|
738
|
-
if (!isBrowser) {
|
|
739
|
-
setOpen(false);
|
|
740
|
-
return;
|
|
653
|
+
const hasContent = children !== void 0 && children !== null;
|
|
654
|
+
const manual = typeof open === "boolean";
|
|
655
|
+
const visible = Boolean(open);
|
|
656
|
+
const shouldRenderContent = hasContent && (keepMounted || visible || !manual && (openOnHover || openOnFocus));
|
|
657
|
+
const verticalPlacement = placement.startsWith("top") ? "top" : "bottom";
|
|
658
|
+
const visibilityClasses = (() => {
|
|
659
|
+
if (manual) {
|
|
660
|
+
return visible ? "pointer-events-auto opacity-100 scale-100" : "pointer-events-none opacity-0 scale-95";
|
|
741
661
|
}
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
}, [clearCloseTimeout, setOpen]);
|
|
748
|
-
React5.useEffect(() => {
|
|
749
|
-
return () => clearCloseTimeout();
|
|
750
|
-
}, [clearCloseTimeout]);
|
|
751
|
-
const isMovingWithinMenu = React5.useCallback(
|
|
752
|
-
(event) => {
|
|
753
|
-
const nextTarget = event.relatedTarget;
|
|
754
|
-
if (!nextTarget || !localRootRef.current) {
|
|
755
|
-
return false;
|
|
756
|
-
}
|
|
757
|
-
return localRootRef.current.contains(nextTarget);
|
|
758
|
-
},
|
|
759
|
-
[localRootRef]
|
|
760
|
-
);
|
|
761
|
-
const handleRootMouseEnter = React5.useCallback(
|
|
762
|
-
(event) => {
|
|
763
|
-
rootMouseEnter?.(event);
|
|
764
|
-
if (event.defaultPrevented) {
|
|
765
|
-
return;
|
|
766
|
-
}
|
|
767
|
-
if (openOnHover) {
|
|
768
|
-
clearCloseTimeout();
|
|
769
|
-
setOpen(true);
|
|
770
|
-
}
|
|
771
|
-
},
|
|
772
|
-
[clearCloseTimeout, openOnHover, rootMouseEnter, setOpen]
|
|
773
|
-
);
|
|
774
|
-
const handleRootMouseLeave = React5.useCallback(
|
|
775
|
-
(event) => {
|
|
776
|
-
rootMouseLeave?.(event);
|
|
777
|
-
if (event.defaultPrevented) {
|
|
778
|
-
return;
|
|
779
|
-
}
|
|
780
|
-
if (openOnHover) {
|
|
781
|
-
if (isMovingWithinMenu(event)) {
|
|
782
|
-
return;
|
|
783
|
-
}
|
|
784
|
-
scheduleClose();
|
|
785
|
-
}
|
|
786
|
-
},
|
|
787
|
-
[isMovingWithinMenu, openOnHover, rootMouseLeave, scheduleClose]
|
|
788
|
-
);
|
|
789
|
-
const handleActivatorMouseEnter = React5.useCallback(
|
|
790
|
-
(_event) => {
|
|
791
|
-
if (disabled) {
|
|
792
|
-
return;
|
|
793
|
-
}
|
|
794
|
-
clearCloseTimeout();
|
|
795
|
-
setOpen(true);
|
|
796
|
-
},
|
|
797
|
-
[clearCloseTimeout, disabled, setOpen]
|
|
798
|
-
);
|
|
799
|
-
const handleActivatorMouseLeave = React5.useCallback(
|
|
800
|
-
(event) => {
|
|
801
|
-
if (disabled || !openOnHover) {
|
|
802
|
-
return;
|
|
803
|
-
}
|
|
804
|
-
if (isMovingWithinMenu(event)) {
|
|
805
|
-
return;
|
|
806
|
-
}
|
|
807
|
-
scheduleClose();
|
|
808
|
-
},
|
|
809
|
-
[disabled, isMovingWithinMenu, openOnHover, scheduleClose]
|
|
810
|
-
);
|
|
662
|
+
const base2 = "pointer-events-none opacity-0 scale-95";
|
|
663
|
+
const hover = openOnHover ? " group-hover/menu:pointer-events-auto group-hover/menu:opacity-100 group-hover/menu:scale-100" : "";
|
|
664
|
+
const focus = openOnFocus ? " group-focus-within/menu:pointer-events-auto group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100" : "";
|
|
665
|
+
return `${base2}${hover}${focus}`;
|
|
666
|
+
})();
|
|
811
667
|
const {
|
|
812
|
-
className:
|
|
668
|
+
className: contentExtraClassName,
|
|
813
669
|
style: contentStyle,
|
|
814
|
-
onClick: contentOnClick,
|
|
815
|
-
onMouseEnter: contentOnMouseEnter,
|
|
816
|
-
onMouseLeave: contentOnMouseLeave,
|
|
817
670
|
role: contentRole,
|
|
818
671
|
tabIndex: contentTabIndex,
|
|
819
|
-
["aria-labelledby"]: ariaLabelledBy,
|
|
820
672
|
...restContentProps
|
|
821
673
|
} = contentProps ?? {};
|
|
822
|
-
const
|
|
823
|
-
const verticalPlacement = placement.startsWith("top") ? "top" : "bottom";
|
|
824
|
-
const activatorElement = activator({
|
|
825
|
-
ref: setActivatorNode,
|
|
826
|
-
id: activatorId,
|
|
827
|
-
"aria-haspopup": "menu",
|
|
828
|
-
"aria-expanded": open,
|
|
829
|
-
"aria-controls": menuId,
|
|
830
|
-
onClick: handleActivatorClick,
|
|
831
|
-
onKeyDown: handleActivatorKeyDown,
|
|
832
|
-
onMouseEnter: openOnHover ? handleActivatorMouseEnter : void 0,
|
|
833
|
-
onMouseLeave: openOnHover ? handleActivatorMouseLeave : void 0,
|
|
834
|
-
disabled,
|
|
835
|
-
open
|
|
836
|
-
});
|
|
674
|
+
const overlayNode = scrim && visible ? /* @__PURE__ */ jsx("div", { className: twMerge(overlayBaseClasses, overlayClassName), "aria-hidden": true }) : null;
|
|
837
675
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
838
|
-
|
|
839
|
-
"div",
|
|
840
|
-
{
|
|
841
|
-
className: twMerge(overlayBaseClasses, overlayClassName),
|
|
842
|
-
"aria-hidden": true,
|
|
843
|
-
onClick: () => setOpen(false),
|
|
844
|
-
onMouseDown: (event) => event.preventDefault()
|
|
845
|
-
}
|
|
846
|
-
) : null,
|
|
676
|
+
overlayNode,
|
|
847
677
|
/* @__PURE__ */ jsxs(
|
|
848
678
|
"div",
|
|
849
679
|
{
|
|
850
680
|
...rest,
|
|
851
|
-
ref
|
|
852
|
-
className: twMerge("relative inline-flex min-w-0", className),
|
|
853
|
-
"data-open":
|
|
854
|
-
onMouseEnter: openOnHover ? handleRootMouseEnter : rootMouseEnter,
|
|
855
|
-
onMouseLeave: openOnHover ? handleRootMouseLeave : rootMouseLeave,
|
|
681
|
+
ref,
|
|
682
|
+
className: twMerge("relative inline-flex min-w-0 group/menu", className),
|
|
683
|
+
"data-open": visible || void 0,
|
|
856
684
|
children: [
|
|
857
|
-
|
|
685
|
+
/* @__PURE__ */ jsx("div", { className: "inline-flex w-full min-w-0", children: activator }),
|
|
858
686
|
shouldRenderContent ? /* @__PURE__ */ jsx(
|
|
859
687
|
"div",
|
|
860
688
|
{
|
|
861
689
|
...restContentProps,
|
|
862
|
-
ref: menuRef,
|
|
863
|
-
id: menuId,
|
|
864
|
-
role: contentRole ?? "menu",
|
|
865
|
-
tabIndex: contentTabIndex ?? -1,
|
|
866
|
-
"aria-labelledby": ariaLabelledBy ?? activatorId,
|
|
867
|
-
"data-state": open ? "open" : "closed",
|
|
868
690
|
className: twMerge(
|
|
869
691
|
menuBaseClasses,
|
|
870
692
|
placementClasses[placement],
|
|
871
693
|
offsetClasses[verticalPlacement],
|
|
694
|
+
matchActivatorWidth ? "min-w-full" : void 0,
|
|
695
|
+
visibilityClasses,
|
|
872
696
|
contentClassName,
|
|
873
|
-
|
|
697
|
+
contentExtraClassName
|
|
874
698
|
),
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
onMouseEnter: (event) => {
|
|
880
|
-
contentOnMouseEnter?.(event);
|
|
881
|
-
if (event.defaultPrevented) {
|
|
882
|
-
return;
|
|
883
|
-
}
|
|
884
|
-
if (openOnHover) {
|
|
885
|
-
clearCloseTimeout();
|
|
886
|
-
setOpen(true);
|
|
887
|
-
}
|
|
888
|
-
},
|
|
889
|
-
onMouseLeave: (event) => {
|
|
890
|
-
contentOnMouseLeave?.(event);
|
|
891
|
-
if (event.defaultPrevented) {
|
|
892
|
-
return;
|
|
893
|
-
}
|
|
894
|
-
if (openOnHover) {
|
|
895
|
-
if (isMovingWithinMenu(event)) {
|
|
896
|
-
return;
|
|
897
|
-
}
|
|
898
|
-
scheduleClose();
|
|
899
|
-
}
|
|
900
|
-
},
|
|
901
|
-
onClick: (event) => {
|
|
902
|
-
contentOnClick?.(event);
|
|
903
|
-
if (event.defaultPrevented) {
|
|
904
|
-
return;
|
|
905
|
-
}
|
|
906
|
-
if (closeOnContentClick) {
|
|
907
|
-
setOpen(false);
|
|
908
|
-
}
|
|
909
|
-
},
|
|
699
|
+
"data-state": visible ? "open" : "closed",
|
|
700
|
+
role: contentRole ?? "menu",
|
|
701
|
+
tabIndex: contentTabIndex ?? -1,
|
|
702
|
+
style: contentStyle,
|
|
910
703
|
children
|
|
911
704
|
}
|
|
912
705
|
) : null
|
|
@@ -917,6 +710,462 @@ var Menu = React5.forwardRef((props, ref) => {
|
|
|
917
710
|
});
|
|
918
711
|
Menu.displayName = "Menu";
|
|
919
712
|
var Menu_default = Menu;
|
|
713
|
+
var ExpansionPanelContext = React4.createContext(null);
|
|
714
|
+
var densityClasses2 = {
|
|
715
|
+
comfortable: "py-5",
|
|
716
|
+
default: "py-4",
|
|
717
|
+
compact: "py-3"
|
|
718
|
+
};
|
|
719
|
+
var roundedClasses = {
|
|
720
|
+
none: "rounded-none",
|
|
721
|
+
sm: "rounded-sm",
|
|
722
|
+
md: "rounded-md",
|
|
723
|
+
lg: "rounded-lg",
|
|
724
|
+
xl: "rounded-xl"
|
|
725
|
+
};
|
|
726
|
+
var itemVariantClasses = {
|
|
727
|
+
elevated: "bg-white border border-gray-200 shadow-sm shadow-gray-900/5",
|
|
728
|
+
outlined: "bg-white border border-gray-200",
|
|
729
|
+
tonal: "bg-gray-50 border border-gray-100",
|
|
730
|
+
plain: "bg-transparent border border-transparent"
|
|
731
|
+
};
|
|
732
|
+
var accentClasses2 = {
|
|
733
|
+
primary: { text: "text-primary", bg: "bg-primary/5", border: "border-primary/30" },
|
|
734
|
+
neutral: { text: "text-gray-900", bg: "bg-gray-100", border: "border-gray-200" },
|
|
735
|
+
info: { text: "text-sky-600", bg: "bg-sky-50", border: "border-sky-200" },
|
|
736
|
+
success: { text: "text-emerald-600", bg: "bg-emerald-50", border: "border-emerald-200" },
|
|
737
|
+
warning: { text: "text-amber-600", bg: "bg-amber-50", border: "border-amber-200" },
|
|
738
|
+
danger: { text: "text-red-600", bg: "bg-red-50", border: "border-red-200" },
|
|
739
|
+
surface: { text: "text-gray-900", bg: "bg-gray-100", border: "border-gray-200" },
|
|
740
|
+
bw: { text: "text-gray-900", bg: "bg-gray-100", border: "border-gray-200" }
|
|
741
|
+
};
|
|
742
|
+
var ExpansionPanelItem = React4.forwardRef((props, ref) => {
|
|
743
|
+
const {
|
|
744
|
+
value,
|
|
745
|
+
title,
|
|
746
|
+
subtitle,
|
|
747
|
+
text,
|
|
748
|
+
prepend,
|
|
749
|
+
append,
|
|
750
|
+
expandIcon,
|
|
751
|
+
collapseIcon,
|
|
752
|
+
hideToggleIcon = false,
|
|
753
|
+
headerClassName,
|
|
754
|
+
contentClassName,
|
|
755
|
+
className,
|
|
756
|
+
disabled = false,
|
|
757
|
+
children,
|
|
758
|
+
color: colorOverride,
|
|
759
|
+
...rest
|
|
760
|
+
} = props;
|
|
761
|
+
const context = React4.useContext(ExpansionPanelContext);
|
|
762
|
+
const generatedValue = React4.useId();
|
|
763
|
+
const panelValue = value ?? generatedValue;
|
|
764
|
+
const density = context?.density ?? "default";
|
|
765
|
+
const color = colorOverride ?? context?.color ?? "primary";
|
|
766
|
+
const divider = context?.divider ?? true;
|
|
767
|
+
const variant = context?.variant ?? "elevated";
|
|
768
|
+
const rounded = context?.rounded ?? "lg";
|
|
769
|
+
const accent = accentClasses2[color] ?? accentClasses2.primary;
|
|
770
|
+
const headerId = React4.useId();
|
|
771
|
+
const contentId = React4.useId();
|
|
772
|
+
const [standaloneExpanded, setStandaloneExpanded] = React4.useState(false);
|
|
773
|
+
const isExpanded = context ? context.expandedValues.includes(panelValue) : standaloneExpanded;
|
|
774
|
+
const handleToggle = () => {
|
|
775
|
+
if (disabled) {
|
|
776
|
+
return;
|
|
777
|
+
}
|
|
778
|
+
if (context) {
|
|
779
|
+
context.toggle(panelValue, disabled);
|
|
780
|
+
} else {
|
|
781
|
+
setStandaloneExpanded((prev) => !prev);
|
|
782
|
+
}
|
|
783
|
+
};
|
|
784
|
+
const rootSurface = divider ? "bg-transparent border-0 shadow-none" : itemVariantClasses[variant];
|
|
785
|
+
const shapeClass = divider ? void 0 : roundedClasses[rounded] ?? roundedClasses.lg;
|
|
786
|
+
const densityPadding = densityClasses2[density] ?? densityClasses2.default;
|
|
787
|
+
const disabledClass = disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer";
|
|
788
|
+
const titleClass = isExpanded ? accent.text : void 0;
|
|
789
|
+
const activeBorderClass = twMerge("border-l-2 border-transparent", isExpanded ? accent.border : void 0);
|
|
790
|
+
const defaultToggleIcon = /* @__PURE__ */ jsx("i", { className: "mdi mdi-chevron-down text-lg leading-none transition-transform duration-200", "aria-hidden": true });
|
|
791
|
+
const hasContent = Boolean(children ?? text);
|
|
792
|
+
const contentAnimationClass = isExpanded ? "pb-5 opacity-100" : "pb-0 opacity-0";
|
|
793
|
+
const toggleIconNode = hideToggleIcon ? null : isExpanded && collapseIcon ? collapseIcon : expandIcon ?? defaultToggleIcon;
|
|
794
|
+
const shouldRotateDefaultIcon = !expandIcon && !collapseIcon && !hideToggleIcon;
|
|
795
|
+
const toggleWrapperClass = twMerge(
|
|
796
|
+
"ml-3 flex h-6 w-6 items-center justify-center text-gray-500 transition-transform duration-200",
|
|
797
|
+
shouldRotateDefaultIcon && isExpanded ? "rotate-180" : void 0
|
|
798
|
+
);
|
|
799
|
+
return /* @__PURE__ */ jsxs(
|
|
800
|
+
"div",
|
|
801
|
+
{
|
|
802
|
+
...rest,
|
|
803
|
+
ref,
|
|
804
|
+
className: twMerge(
|
|
805
|
+
"expansion-panel-item flex flex-col overflow-hidden transition-colors duration-200",
|
|
806
|
+
rootSurface,
|
|
807
|
+
shapeClass,
|
|
808
|
+
className
|
|
809
|
+
),
|
|
810
|
+
"data-state": isExpanded ? "open" : "closed",
|
|
811
|
+
"data-disabled": disabled || void 0,
|
|
812
|
+
children: [
|
|
813
|
+
/* @__PURE__ */ jsxs(
|
|
814
|
+
"button",
|
|
815
|
+
{
|
|
816
|
+
type: "button",
|
|
817
|
+
id: headerId,
|
|
818
|
+
onClick: handleToggle,
|
|
819
|
+
disabled,
|
|
820
|
+
"aria-expanded": isExpanded,
|
|
821
|
+
"aria-controls": hasContent ? contentId : void 0,
|
|
822
|
+
className: twMerge(
|
|
823
|
+
"flex w-full items-center gap-4 px-4 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
824
|
+
densityPadding,
|
|
825
|
+
disabledClass,
|
|
826
|
+
isExpanded ? accent.bg : void 0,
|
|
827
|
+
headerClassName
|
|
828
|
+
),
|
|
829
|
+
"data-state": isExpanded ? "open" : "closed",
|
|
830
|
+
children: [
|
|
831
|
+
prepend && /* @__PURE__ */ jsx("span", { className: "flex h-10 w-10 items-center justify-center text-gray-500", children: prepend }),
|
|
832
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5 text-left", children: [
|
|
833
|
+
title && /* @__PURE__ */ jsx("span", { className: twMerge("truncate font-medium text-gray-900", titleClass), children: title }),
|
|
834
|
+
subtitle && /* @__PURE__ */ jsx("span", { className: "text-sm text-gray-500", children: subtitle })
|
|
835
|
+
] }),
|
|
836
|
+
append && /* @__PURE__ */ jsx("span", { className: "ml-auto flex items-center gap-2 text-sm text-gray-500", children: append }),
|
|
837
|
+
!hideToggleIcon && /* @__PURE__ */ jsx("span", { className: toggleWrapperClass, children: toggleIconNode })
|
|
838
|
+
]
|
|
839
|
+
}
|
|
840
|
+
),
|
|
841
|
+
hasContent && /* @__PURE__ */ jsx(
|
|
842
|
+
"div",
|
|
843
|
+
{
|
|
844
|
+
className: "grid overflow-hidden border-t border-gray-100 transition-all duration-200 ease-in-out",
|
|
845
|
+
style: { gridTemplateRows: isExpanded ? "1fr" : "0fr" },
|
|
846
|
+
"aria-hidden": isExpanded ? void 0 : true,
|
|
847
|
+
"data-state": isExpanded ? "open" : "closed",
|
|
848
|
+
children: /* @__PURE__ */ jsx(
|
|
849
|
+
"div",
|
|
850
|
+
{
|
|
851
|
+
id: contentId,
|
|
852
|
+
role: "region",
|
|
853
|
+
"aria-labelledby": headerId,
|
|
854
|
+
"data-state": isExpanded ? "open" : "closed",
|
|
855
|
+
className: twMerge(
|
|
856
|
+
"min-h-0 px-4 pt-0 text-sm text-gray-600 transition-all duration-200",
|
|
857
|
+
activeBorderClass,
|
|
858
|
+
contentAnimationClass,
|
|
859
|
+
isExpanded ? "pointer-events-auto" : "pointer-events-none",
|
|
860
|
+
contentClassName
|
|
861
|
+
),
|
|
862
|
+
children: children ?? text
|
|
863
|
+
}
|
|
864
|
+
)
|
|
865
|
+
}
|
|
866
|
+
)
|
|
867
|
+
]
|
|
868
|
+
}
|
|
869
|
+
);
|
|
870
|
+
});
|
|
871
|
+
ExpansionPanelItem.displayName = "ExpansionPanelItem";
|
|
872
|
+
var ExpansionPanelItem_default = ExpansionPanelItem;
|
|
873
|
+
var variantContainerClasses = {
|
|
874
|
+
elevated: "bg-white border border-gray-200 shadow-lg shadow-gray-900/10",
|
|
875
|
+
outlined: "bg-white border border-gray-200",
|
|
876
|
+
tonal: "bg-gray-50 border border-gray-100",
|
|
877
|
+
plain: "bg-transparent border border-transparent"
|
|
878
|
+
};
|
|
879
|
+
var roundedClasses2 = {
|
|
880
|
+
none: "rounded-none",
|
|
881
|
+
sm: "rounded-sm",
|
|
882
|
+
md: "rounded-md",
|
|
883
|
+
lg: "rounded-lg",
|
|
884
|
+
xl: "rounded-xl"
|
|
885
|
+
};
|
|
886
|
+
var uniqueValues = (values) => Array.from(new Set(values));
|
|
887
|
+
var normalizeValues = (value, allowMultiple) => {
|
|
888
|
+
if (value === void 0 || value === null) {
|
|
889
|
+
return [];
|
|
890
|
+
}
|
|
891
|
+
const normalized = Array.isArray(value) ? value : [value];
|
|
892
|
+
if (allowMultiple) {
|
|
893
|
+
return uniqueValues(normalized);
|
|
894
|
+
}
|
|
895
|
+
return normalized.length ? [normalized[0]] : [];
|
|
896
|
+
};
|
|
897
|
+
var clampValues = (values, allowMultiple) => allowMultiple ? uniqueValues(values) : values.length ? [values[0]] : [];
|
|
898
|
+
var ExpansionPanel = React4.forwardRef((props, ref) => {
|
|
899
|
+
const {
|
|
900
|
+
variant = "elevated",
|
|
901
|
+
rounded = "lg",
|
|
902
|
+
density = "default",
|
|
903
|
+
color = "primary",
|
|
904
|
+
divider = true,
|
|
905
|
+
multiple = false,
|
|
906
|
+
value,
|
|
907
|
+
defaultValue,
|
|
908
|
+
onChange,
|
|
909
|
+
className,
|
|
910
|
+
children,
|
|
911
|
+
...rest
|
|
912
|
+
} = props;
|
|
913
|
+
const isControlled = value !== void 0;
|
|
914
|
+
const controlledValues = React4.useMemo(() => {
|
|
915
|
+
if (!isControlled) {
|
|
916
|
+
return void 0;
|
|
917
|
+
}
|
|
918
|
+
return normalizeValues(value, multiple);
|
|
919
|
+
}, [isControlled, value, multiple]);
|
|
920
|
+
const [internalValues, setInternalValues] = React4.useState(
|
|
921
|
+
() => normalizeValues(defaultValue, multiple)
|
|
922
|
+
);
|
|
923
|
+
const expandedValues = controlledValues ?? internalValues;
|
|
924
|
+
React4.useEffect(() => {
|
|
925
|
+
if (!isControlled) {
|
|
926
|
+
setInternalValues((prev) => clampValues(prev, multiple));
|
|
927
|
+
}
|
|
928
|
+
}, [multiple, isControlled]);
|
|
929
|
+
const handleValueChange = React4.useCallback(
|
|
930
|
+
(next) => {
|
|
931
|
+
if (!isControlled) {
|
|
932
|
+
setInternalValues(next);
|
|
933
|
+
}
|
|
934
|
+
if (onChange) {
|
|
935
|
+
if (multiple) {
|
|
936
|
+
onChange(next);
|
|
937
|
+
} else {
|
|
938
|
+
onChange(next[0] ?? null);
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
},
|
|
942
|
+
[isControlled, multiple, onChange]
|
|
943
|
+
);
|
|
944
|
+
const toggle = React4.useCallback(
|
|
945
|
+
(panelValue, disabled) => {
|
|
946
|
+
if (disabled) {
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
const isActive = expandedValues.includes(panelValue);
|
|
950
|
+
const next = multiple ? isActive ? expandedValues.filter((v) => v !== panelValue) : [...expandedValues, panelValue] : isActive ? [] : [panelValue];
|
|
951
|
+
handleValueChange(next);
|
|
952
|
+
},
|
|
953
|
+
[expandedValues, handleValueChange, multiple]
|
|
954
|
+
);
|
|
955
|
+
const providerValue = React4.useMemo(
|
|
956
|
+
() => ({ expandedValues, toggle, density, color, divider, rounded, variant }),
|
|
957
|
+
[expandedValues, toggle, density, color, divider, rounded, variant]
|
|
958
|
+
);
|
|
959
|
+
const variantClass = divider ? variantContainerClasses[variant] : "bg-transparent border border-transparent shadow-none";
|
|
960
|
+
const shapeClass = roundedClasses2[rounded] ?? roundedClasses2.lg;
|
|
961
|
+
const layoutClass = divider ? "divide-y divide-gray-100 overflow-hidden" : "gap-4";
|
|
962
|
+
return /* @__PURE__ */ jsx(ExpansionPanelContext.Provider, { value: providerValue, children: /* @__PURE__ */ jsx(
|
|
963
|
+
"div",
|
|
964
|
+
{
|
|
965
|
+
...rest,
|
|
966
|
+
ref,
|
|
967
|
+
className: twMerge("expansion-panel flex w-full flex-col text-gray-900", variantClass, shapeClass, layoutClass, className),
|
|
968
|
+
children
|
|
969
|
+
}
|
|
970
|
+
) });
|
|
971
|
+
});
|
|
972
|
+
ExpansionPanel.displayName = "ExpansionPanel";
|
|
973
|
+
var ExpansionPanel_default = ExpansionPanel;
|
|
974
|
+
var containerBaseClasses = "fixed inset-0 z-[70] flex items-center justify-center p-4 sm:p-8 data-[state=closed]:pointer-events-none";
|
|
975
|
+
var overlayBaseClasses2 = "absolute inset-0 bg-gray-900/55 backdrop-blur-[2px] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100";
|
|
976
|
+
var panelWrapperClasses = "relative z-10 flex w-full max-h-[95vh] justify-center transition-transform transition-opacity duration-200 data-[state=closed]:translate-y-4 data-[state=closed]:opacity-0 data-[state=open]:translate-y-0 data-[state=open]:opacity-100";
|
|
977
|
+
var panelBaseClasses = "pointer-events-auto w-full max-h-[90vh] overflow-auto rounded-2xl bg-white p-6 text-gray-900 shadow-2xl shadow-black/20 ring-1 ring-black/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40";
|
|
978
|
+
var resolveSizeValue = (value) => {
|
|
979
|
+
if (value === void 0) {
|
|
980
|
+
return void 0;
|
|
981
|
+
}
|
|
982
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
983
|
+
};
|
|
984
|
+
var Dialog = React4.forwardRef((props, forwardedRef) => {
|
|
985
|
+
const {
|
|
986
|
+
activator,
|
|
987
|
+
children,
|
|
988
|
+
open = false,
|
|
989
|
+
keepMounted = false,
|
|
990
|
+
scrim = true,
|
|
991
|
+
fullscreen = false,
|
|
992
|
+
maxWidth = "32rem",
|
|
993
|
+
width,
|
|
994
|
+
containerClassName,
|
|
995
|
+
overlayClassName,
|
|
996
|
+
overlayProps,
|
|
997
|
+
className,
|
|
998
|
+
style,
|
|
999
|
+
role: roleProp = "dialog",
|
|
1000
|
+
tabIndex = -1,
|
|
1001
|
+
id,
|
|
1002
|
+
["aria-modal"]: ariaModalProp,
|
|
1003
|
+
...rest
|
|
1004
|
+
} = props;
|
|
1005
|
+
const state = open ? "open" : "closed";
|
|
1006
|
+
const shouldRenderDialog = keepMounted || open;
|
|
1007
|
+
const resolvedStyle = { ...style };
|
|
1008
|
+
if (fullscreen) {
|
|
1009
|
+
if (resolvedStyle.maxWidth === void 0) {
|
|
1010
|
+
resolvedStyle.maxWidth = "none";
|
|
1011
|
+
}
|
|
1012
|
+
if (resolvedStyle.width === void 0) {
|
|
1013
|
+
resolvedStyle.width = "100%";
|
|
1014
|
+
}
|
|
1015
|
+
if (resolvedStyle.height === void 0) {
|
|
1016
|
+
resolvedStyle.height = "100%";
|
|
1017
|
+
}
|
|
1018
|
+
if (resolvedStyle.maxHeight === void 0) {
|
|
1019
|
+
resolvedStyle.maxHeight = "100%";
|
|
1020
|
+
}
|
|
1021
|
+
} else {
|
|
1022
|
+
if (resolvedStyle.maxWidth === void 0) {
|
|
1023
|
+
resolvedStyle.maxWidth = resolveSizeValue(maxWidth);
|
|
1024
|
+
}
|
|
1025
|
+
if (width !== void 0 && resolvedStyle.width === void 0) {
|
|
1026
|
+
resolvedStyle.width = resolveSizeValue(width);
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
const ariaModal = ariaModalProp ?? (roleProp === "dialog" || roleProp === "alertdialog" ? true : void 0);
|
|
1030
|
+
const { className: overlayExtraClassName, ...restOverlayProps } = overlayProps ?? {};
|
|
1031
|
+
const overlayNode = shouldRenderDialog && scrim ? /* @__PURE__ */ jsx(
|
|
1032
|
+
"div",
|
|
1033
|
+
{
|
|
1034
|
+
...restOverlayProps,
|
|
1035
|
+
className: twMerge(overlayBaseClasses2, overlayClassName, overlayExtraClassName),
|
|
1036
|
+
"data-state": state,
|
|
1037
|
+
"aria-hidden": true
|
|
1038
|
+
}
|
|
1039
|
+
) : null;
|
|
1040
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1041
|
+
activator ? /* @__PURE__ */ jsx("div", { className: "inline-flex", children: activator }) : null,
|
|
1042
|
+
shouldRenderDialog ? /* @__PURE__ */ jsxs("div", { className: twMerge(containerBaseClasses, containerClassName), "data-state": state, "aria-hidden": !open, children: [
|
|
1043
|
+
overlayNode,
|
|
1044
|
+
/* @__PURE__ */ jsx("div", { className: twMerge(panelWrapperClasses, fullscreen ? "h-full items-stretch" : "mx-auto"), "data-state": state, children: /* @__PURE__ */ jsx(
|
|
1045
|
+
"div",
|
|
1046
|
+
{
|
|
1047
|
+
...rest,
|
|
1048
|
+
ref: forwardedRef,
|
|
1049
|
+
id,
|
|
1050
|
+
role: roleProp,
|
|
1051
|
+
tabIndex,
|
|
1052
|
+
"aria-modal": ariaModal,
|
|
1053
|
+
className: twMerge(panelBaseClasses, fullscreen ? "h-full w-full max-w-none rounded-none" : void 0, className),
|
|
1054
|
+
style: resolvedStyle,
|
|
1055
|
+
"data-state": state,
|
|
1056
|
+
children
|
|
1057
|
+
}
|
|
1058
|
+
) })
|
|
1059
|
+
] }) : null
|
|
1060
|
+
] });
|
|
1061
|
+
});
|
|
1062
|
+
Dialog.displayName = "Dialog";
|
|
1063
|
+
var Dialog_default = Dialog;
|
|
1064
|
+
var tooltipBaseClasses = "absolute z-[60] max-w-xs rounded-lg border border-white/10 bg-gray-900 px-3 py-2 text-xs font-medium text-white shadow-lg shadow-black/30 ring-1 ring-black/40 transition-all duration-150";
|
|
1065
|
+
var wrapperBaseClasses = "relative inline-flex max-w-full align-middle";
|
|
1066
|
+
var arrowBaseClasses = "pointer-events-none absolute h-2 w-2 rotate-45 border border-white/10 bg-gray-900 shadow-lg shadow-black/20";
|
|
1067
|
+
var resolveSizeValue2 = (value) => {
|
|
1068
|
+
if (value === void 0) {
|
|
1069
|
+
return void 0;
|
|
1070
|
+
}
|
|
1071
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
1072
|
+
};
|
|
1073
|
+
var placementClasses2 = {
|
|
1074
|
+
top: "bottom-full left-1/2 -translate-x-1/2 -translate-y-2 origin-bottom",
|
|
1075
|
+
"top-start": "bottom-full left-0 -translate-y-2 origin-bottom-left",
|
|
1076
|
+
"top-end": "bottom-full right-0 -translate-y-2 origin-bottom-right",
|
|
1077
|
+
bottom: "top-full left-1/2 -translate-x-1/2 translate-y-2 origin-top",
|
|
1078
|
+
"bottom-start": "top-full left-0 translate-y-2 origin-top-left",
|
|
1079
|
+
"bottom-end": "top-full right-0 translate-y-2 origin-top-right",
|
|
1080
|
+
left: "right-full top-1/2 -translate-y-1/2 -translate-x-2 origin-right",
|
|
1081
|
+
"left-start": "right-full top-0 -translate-x-2 origin-top-right",
|
|
1082
|
+
"left-end": "right-full bottom-0 -translate-x-2 origin-bottom-right",
|
|
1083
|
+
right: "left-full top-1/2 -translate-y-1/2 translate-x-2 origin-left",
|
|
1084
|
+
"right-start": "left-full top-0 translate-x-2 origin-top-left",
|
|
1085
|
+
"right-end": "left-full bottom-0 translate-x-2 origin-bottom-left"
|
|
1086
|
+
};
|
|
1087
|
+
var arrowPlacementClasses = {
|
|
1088
|
+
top: "left-1/2 top-full -translate-x-1/2 -translate-y-1/2",
|
|
1089
|
+
"top-start": "left-4 top-full -translate-y-1/2",
|
|
1090
|
+
"top-end": "right-4 top-full -translate-y-1/2",
|
|
1091
|
+
bottom: "left-1/2 bottom-full -translate-x-1/2 translate-y-1/2",
|
|
1092
|
+
"bottom-start": "left-4 bottom-full translate-y-1/2",
|
|
1093
|
+
"bottom-end": "right-4 bottom-full translate-y-1/2",
|
|
1094
|
+
left: "right-full top-1/2 -translate-y-1/2 translate-x-1/2",
|
|
1095
|
+
"left-start": "right-full top-4 translate-x-1/2",
|
|
1096
|
+
"left-end": "right-full bottom-4 translate-x-1/2",
|
|
1097
|
+
right: "left-full top-1/2 -translate-y-1/2 -translate-x-1/2",
|
|
1098
|
+
"right-start": "left-full top-4 -translate-x-1/2",
|
|
1099
|
+
"right-end": "left-full bottom-4 -translate-x-1/2"
|
|
1100
|
+
};
|
|
1101
|
+
var ToolTip = React4.forwardRef((props, forwardedRef) => {
|
|
1102
|
+
const {
|
|
1103
|
+
activator,
|
|
1104
|
+
children,
|
|
1105
|
+
placement = "top",
|
|
1106
|
+
arrow = true,
|
|
1107
|
+
disabled = false,
|
|
1108
|
+
persistent = false,
|
|
1109
|
+
showOnHover = true,
|
|
1110
|
+
showOnFocus = true,
|
|
1111
|
+
interactive = false,
|
|
1112
|
+
keepMounted = false,
|
|
1113
|
+
maxWidth = "18rem",
|
|
1114
|
+
wrapperClassName,
|
|
1115
|
+
className,
|
|
1116
|
+
style,
|
|
1117
|
+
id,
|
|
1118
|
+
...rest
|
|
1119
|
+
} = props;
|
|
1120
|
+
const hasRenderableContent = children !== void 0 && children !== null;
|
|
1121
|
+
const shouldEnableTriggers = !disabled && (persistent || showOnHover || showOnFocus);
|
|
1122
|
+
const shouldRenderTooltip = hasRenderableContent && (shouldEnableTriggers || keepMounted);
|
|
1123
|
+
const resolvedStyle = { ...style };
|
|
1124
|
+
if (resolvedStyle.maxWidth === void 0) {
|
|
1125
|
+
resolvedStyle.maxWidth = resolveSizeValue2(maxWidth);
|
|
1126
|
+
}
|
|
1127
|
+
const baseVisibility = persistent ? "opacity-100 scale-100" : "opacity-0 scale-95";
|
|
1128
|
+
const hoverClasses = !persistent && showOnHover ? " group-hover/tooltip:opacity-100 group-hover/tooltip:scale-100" : "";
|
|
1129
|
+
const focusClasses = !persistent && showOnFocus ? " group-focus-within/tooltip:opacity-100 group-focus-within/tooltip:scale-100" : "";
|
|
1130
|
+
const visibilityClasses = `${baseVisibility}${hoverClasses}${focusClasses}`;
|
|
1131
|
+
const pointerClasses = (() => {
|
|
1132
|
+
if (persistent) {
|
|
1133
|
+
return "pointer-events-auto";
|
|
1134
|
+
}
|
|
1135
|
+
if (!interactive) {
|
|
1136
|
+
return "pointer-events-none";
|
|
1137
|
+
}
|
|
1138
|
+
const classes = ["pointer-events-none"];
|
|
1139
|
+
if (showOnHover) {
|
|
1140
|
+
classes.push("group-hover/tooltip:pointer-events-auto");
|
|
1141
|
+
}
|
|
1142
|
+
if (showOnFocus) {
|
|
1143
|
+
classes.push("group-focus-within/tooltip:pointer-events-auto");
|
|
1144
|
+
}
|
|
1145
|
+
return classes.join(" ");
|
|
1146
|
+
})();
|
|
1147
|
+
return /* @__PURE__ */ jsxs("span", { className: twMerge(wrapperBaseClasses, "group/tooltip", wrapperClassName), "data-disabled": disabled || void 0, children: [
|
|
1148
|
+
/* @__PURE__ */ jsx("span", { className: "inline-flex max-w-full", children: activator }),
|
|
1149
|
+
shouldRenderTooltip ? /* @__PURE__ */ jsxs(
|
|
1150
|
+
"div",
|
|
1151
|
+
{
|
|
1152
|
+
...rest,
|
|
1153
|
+
ref: forwardedRef,
|
|
1154
|
+
role: "tooltip",
|
|
1155
|
+
id,
|
|
1156
|
+
"aria-hidden": persistent || disabled ? void 0 : true,
|
|
1157
|
+
className: twMerge(tooltipBaseClasses, placementClasses2[placement], visibilityClasses, pointerClasses, className),
|
|
1158
|
+
style: resolvedStyle,
|
|
1159
|
+
children: [
|
|
1160
|
+
children,
|
|
1161
|
+
arrow && /* @__PURE__ */ jsx("span", { className: twMerge(arrowBaseClasses, arrowPlacementClasses[placement]), "aria-hidden": true, "data-arrow": true })
|
|
1162
|
+
]
|
|
1163
|
+
}
|
|
1164
|
+
) : null
|
|
1165
|
+
] });
|
|
1166
|
+
});
|
|
1167
|
+
ToolTip.displayName = "ToolTip";
|
|
1168
|
+
var ToolTip_default = ToolTip;
|
|
920
1169
|
|
|
921
1170
|
// src/Form/Input/states.input.ts
|
|
922
1171
|
var resolveIconClassName3 = (icon) => {
|
|
@@ -944,6 +1193,17 @@ var resolveIconClassName3 = (icon) => {
|
|
|
944
1193
|
const classes = [...baseClasses, normalizedName];
|
|
945
1194
|
return Array.from(new Set(classes)).join(" ");
|
|
946
1195
|
};
|
|
1196
|
+
|
|
1197
|
+
// src/utils/helpers/randomStr.ts
|
|
1198
|
+
var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
1199
|
+
function generateString(length = 5) {
|
|
1200
|
+
let result = "";
|
|
1201
|
+
const charactersLength = characters.length;
|
|
1202
|
+
for (let i = 0; i < length; i++) {
|
|
1203
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
1204
|
+
}
|
|
1205
|
+
return result;
|
|
1206
|
+
}
|
|
947
1207
|
var Input = ({
|
|
948
1208
|
variant = "outline",
|
|
949
1209
|
success,
|
|
@@ -956,9 +1216,14 @@ var Input = ({
|
|
|
956
1216
|
}) => {
|
|
957
1217
|
const classBase = "input-base px-3 py-2 focus-visible:outline-none focus-visible:ring-primary transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed w-full";
|
|
958
1218
|
const variantClasses = {
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
1219
|
+
solid: "rounded border border-gray-400 bg-white shadow-sm focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/30",
|
|
1220
|
+
sharp: "rounded-none border border-gray-400 bg-white shadow-sm focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/30",
|
|
1221
|
+
outline: "rounded border border-gray-300 bg-transparent focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/30",
|
|
1222
|
+
text: "rounded-none border-0 border-b border-transparent px-0 bg-transparent focus-visible:border-primary focus-visible:ring-0 focus-visible:ring-transparent",
|
|
1223
|
+
ghost: "rounded border border-transparent bg-gray-50 text-gray-900 focus-visible:bg-white focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/15",
|
|
1224
|
+
filled: "rounded border border-gray-200 bg-gray-100 focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/25",
|
|
1225
|
+
underlined: "rounded-none border-0 border-b border-gray-300 px-0 bg-transparent focus-visible:border-primary focus-visible:ring-0 focus-visible:ring-transparent",
|
|
1226
|
+
rounded: "rounded-full px-4 border border-gray-300 bg-white focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/20 shadow-sm"
|
|
962
1227
|
};
|
|
963
1228
|
const status = error ? { tone: "error", message: error } : warn ? { tone: "warn", message: warn } : success ? { tone: "success", message: success } : void 0;
|
|
964
1229
|
const statusClasses = {
|
|
@@ -975,16 +1240,24 @@ var Input = ({
|
|
|
975
1240
|
const toneClass = status ? statusClasses[status.tone] : void 0;
|
|
976
1241
|
const prependIconClass = resolveIconClassName3(icon);
|
|
977
1242
|
const prependPadding = prependIconClass ? "pl-10" : void 0;
|
|
1243
|
+
const inputName = props.name || generateString();
|
|
978
1244
|
return /* @__PURE__ */ jsxs("div", { className: twMerge("flex flex-col gap-1", wrapperClassName), children: [
|
|
979
1245
|
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center", children: [
|
|
980
1246
|
prependIconClass && /* @__PURE__ */ jsx("i", { className: twMerge("pointer-events-none absolute left-3 ", prependIconClass), "aria-hidden": true }),
|
|
981
|
-
/* @__PURE__ */ jsx(
|
|
1247
|
+
/* @__PURE__ */ jsx(
|
|
1248
|
+
"input",
|
|
1249
|
+
{
|
|
1250
|
+
...props,
|
|
1251
|
+
className: twMerge(classBase, variantClass, toneClass, prependPadding, className),
|
|
1252
|
+
name: inputName
|
|
1253
|
+
}
|
|
1254
|
+
)
|
|
982
1255
|
] }),
|
|
983
1256
|
status?.message && /* @__PURE__ */ jsx("span", { className: twMerge("text-sm", statusMessageClasses[status.tone]), children: status.message })
|
|
984
1257
|
] });
|
|
985
1258
|
};
|
|
986
1259
|
var Input_default = Input;
|
|
987
1260
|
|
|
988
|
-
export { Button_default as Button, Chip_default as Chip, Input_default as Input, List_default as List, Item_default as ListItem, Menu_default as Menu };
|
|
1261
|
+
export { Button_default as Button, Chip_default as Chip, Dialog_default as Dialog, ExpansionPanel_default as ExpansionPanel, ExpansionPanelItem_default as ExpansionPanelItem, Input_default as Input, List_default as List, Item_default as ListItem, Menu_default as Menu, ToolTip_default as ToolTip };
|
|
989
1262
|
//# sourceMappingURL=index.js.map
|
|
990
1263
|
//# sourceMappingURL=index.js.map
|