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