@dimasbaguspm/versaur 0.0.47 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/assets/styles.css +14 -6
  2. package/dist/js/forms/index.js +12 -14
  3. package/dist/js/image-rectangle-K9jmTTED.js +2607 -0
  4. package/dist/js/index.js +66 -68
  5. package/dist/js/layouts/index.js +8 -9
  6. package/dist/js/navigation/index.js +1 -1
  7. package/dist/js/overlays/index.js +2 -2
  8. package/dist/js/primitive/index.js +21 -20
  9. package/dist/js/tabs-I4n6MLAv.js +210 -0
  10. package/dist/js/templates/index.js +1 -0
  11. package/dist/js/time-picker-input-jJBtyikv.js +1562 -0
  12. package/dist/js/{tooltip-D6fUigp2.js → tooltip-nZW9TUz3.js} +293 -297
  13. package/dist/js/{top-bar-Dx0JVXms.js → top-bar-BMw3gFYA.js} +292 -247
  14. package/dist/types/forms/checkbox-input/checkbox-input.d.ts +1 -1
  15. package/dist/types/forms/checkbox-input/types.d.ts +11 -14
  16. package/dist/types/forms/chip-multiple-input/chip-multiple-input.atoms.d.ts +2 -2
  17. package/dist/types/forms/chip-multiple-input/chip-multiple-input.d.ts +1 -1
  18. package/dist/types/forms/chip-multiple-input/types.d.ts +15 -14
  19. package/dist/types/forms/chip-single-input/chip-single-input.atoms.d.ts +1 -1
  20. package/dist/types/forms/chip-single-input/chip-single-input.d.ts +1 -1
  21. package/dist/types/forms/chip-single-input/types.d.ts +15 -14
  22. package/dist/types/forms/date-single-picker-input/types.d.ts +10 -0
  23. package/dist/types/forms/index.d.ts +0 -2
  24. package/dist/types/forms/pin-field/pin-field.d.ts +2 -2
  25. package/dist/types/forms/pin-field/types.d.ts +16 -28
  26. package/dist/types/forms/select-input/index.d.ts +1 -1
  27. package/dist/types/forms/select-input/select-input.atoms.d.ts +16 -0
  28. package/dist/types/forms/select-input/select-input.d.ts +4 -7
  29. package/dist/types/forms/select-input/types.d.ts +32 -9
  30. package/dist/types/forms/selectable-multiple-input/selectable-multiple-input.d.ts +1 -1
  31. package/dist/types/forms/selectable-multiple-input/types.d.ts +20 -3
  32. package/dist/types/forms/selectable-single-input/selectable-single-input.d.ts +1 -1
  33. package/dist/types/forms/selectable-single-input/types.d.ts +20 -3
  34. package/dist/types/forms/switch-input/switch-input.atoms.d.ts +7 -8
  35. package/dist/types/forms/switch-input/switch-input.d.ts +5 -1
  36. package/dist/types/forms/switch-input/types.d.ts +10 -33
  37. package/dist/types/forms/text-input/text-input.d.ts +2 -2
  38. package/dist/types/forms/text-input/types.d.ts +0 -7
  39. package/dist/types/forms/textarea-input/textarea-input.d.ts +3 -3
  40. package/dist/types/forms/textarea-input/types.d.ts +33 -18
  41. package/dist/types/layouts/index.d.ts +1 -2
  42. package/dist/types/layouts/page-content/index.d.ts +1 -1
  43. package/dist/types/layouts/page-content/page-content.d.ts +5 -11
  44. package/dist/types/layouts/page-content/types.d.ts +29 -9
  45. package/dist/types/layouts/page-header/types.d.ts +13 -0
  46. package/dist/types/navigation/tabs/tabs.atoms.d.ts +3 -2
  47. package/dist/types/navigation/tabs/types.d.ts +5 -13
  48. package/dist/types/navigation/tabs/use-tab-indicator.d.ts +8 -8
  49. package/dist/types/overlays/drawer/drawer.atoms.d.ts +18 -8
  50. package/dist/types/overlays/drawer/drawer.d.ts +5 -5
  51. package/dist/types/overlays/drawer/types.d.ts +11 -15
  52. package/dist/types/primitive/button/button.d.ts +5 -0
  53. package/dist/types/primitive/button/types.d.ts +24 -11
  54. package/dist/types/primitive/button-anchor/button-anchor.d.ts +9 -0
  55. package/dist/types/primitive/button-anchor/index.d.ts +2 -0
  56. package/dist/types/primitive/button-anchor/types.d.ts +35 -0
  57. package/dist/types/primitive/button-icon/button-icon.d.ts +6 -0
  58. package/dist/types/primitive/button-icon/types.d.ts +21 -10
  59. package/dist/types/primitive/filter-chip/types.d.ts +0 -10
  60. package/dist/types/primitive/index.d.ts +1 -0
  61. package/dist/types/templates/index.d.ts +1 -0
  62. package/dist/types/templates/pin-verifier-drawer/index.d.ts +2 -0
  63. package/dist/types/templates/pin-verifier-drawer/pin-verifier-drawer.atoms.d.ts +7 -0
  64. package/dist/types/templates/pin-verifier-drawer/pin-verifier-drawer.d.ts +10 -0
  65. package/dist/types/templates/pin-verifier-drawer/types.d.ts +97 -0
  66. package/dist/utils/enforce-subpath-import.js +2 -3
  67. package/package.json +5 -1
  68. package/dist/js/image-rectangle-B4nXH4Q5.js +0 -2581
  69. package/dist/js/tabs-BAzThVka.js +0 -291
  70. package/dist/js/time-picker-input-JBEgDV2V.js +0 -2049
  71. package/dist/types/forms/segment-multiple-input/index.d.ts +0 -2
  72. package/dist/types/forms/segment-multiple-input/segment-multiple-input.atoms.d.ts +0 -12
  73. package/dist/types/forms/segment-multiple-input/segment-multiple-input.d.ts +0 -7
  74. package/dist/types/forms/segment-multiple-input/types.d.ts +0 -55
  75. package/dist/types/forms/segment-single-input/index.d.ts +0 -2
  76. package/dist/types/forms/segment-single-input/segment-single-input.atoms.d.ts +0 -11
  77. package/dist/types/forms/segment-single-input/segment-single-input.d.ts +0 -7
  78. package/dist/types/forms/segment-single-input/types.d.ts +0 -55
  79. package/dist/types/layouts/page-layout/index.d.ts +0 -2
  80. package/dist/types/layouts/page-layout/page-layout.d.ts +0 -8
  81. package/dist/types/layouts/page-layout/types.d.ts +0 -20
@@ -0,0 +1,2607 @@
1
+ import { c as x, j as a, a as f } from "./index-DOdDlCoL.js";
2
+ import * as l from "react";
3
+ import A, { createContext as B, useContext as O, forwardRef as m, useState as V, useEffect as I, useCallback as R, useRef as W, useId as re, cloneElement as ne } from "react";
4
+ import { ChevronDown as se, ChevronRight as ae, LoaderCircleIcon as G, CheckIcon as oe, EllipsisVerticalIcon as ie, XIcon as le, ImageOff as ce } from "lucide-react";
5
+ import de from "react-dom";
6
+ import { S as ue } from "./skeleton-BNZyaRjo.js";
7
+ const $ = B(
8
+ null
9
+ ), D = () => {
10
+ const e = O($);
11
+ if (!e)
12
+ throw new Error(
13
+ "Accordion compound components must be used within Accordion"
14
+ );
15
+ return e;
16
+ }, fe = x(
17
+ "border-b border-border bg-background overflow-hidden",
18
+ {
19
+ variants: {
20
+ disabled: {
21
+ true: "opacity-50 cursor-not-allowed",
22
+ false: ""
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ disabled: !1
27
+ }
28
+ }
29
+ ), he = x(
30
+ "flex items-center justify-between w-full p-4 text-left transition-colors duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-light focus-visible:ring-inset",
31
+ {
32
+ variants: {
33
+ disabled: {
34
+ true: "cursor-not-allowed",
35
+ false: "cursor-pointer hover:bg-neutral-soft"
36
+ },
37
+ isOpen: {
38
+ true: "",
39
+ false: "bg-background"
40
+ }
41
+ },
42
+ defaultVariants: {
43
+ disabled: !1,
44
+ isOpen: !1
45
+ }
46
+ }
47
+ ), me = x(
48
+ "overflow-hidden transition-all duration-300",
49
+ {
50
+ variants: {
51
+ isOpen: {
52
+ true: "max-h-screen opacity-100",
53
+ false: "max-h-0 opacity-0"
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ isOpen: !1
58
+ }
59
+ }
60
+ ), ge = x("p-4 pt-0"), xe = x("transition-transform duration-200", {
61
+ variants: {
62
+ isOpen: {
63
+ true: "rotate-180",
64
+ false: "rotate-0"
65
+ }
66
+ },
67
+ defaultVariants: {
68
+ isOpen: !1
69
+ }
70
+ }), be = x("", {
71
+ variants: {
72
+ color: {
73
+ primary: "text-primary",
74
+ secondary: "text-secondary",
75
+ tertiary: "text-tertiary",
76
+ ghost: "text-ghost",
77
+ neutral: "text-ghost",
78
+ success: "text-success",
79
+ info: "text-info",
80
+ warning: "text-warning",
81
+ danger: "text-danger",
82
+ inherit: "",
83
+ gray: "text-gray-500",
84
+ black: "text-black",
85
+ white: "text-white"
86
+ },
87
+ hasUnderline: {
88
+ true: "underline",
89
+ false: ""
90
+ },
91
+ isCapitalize: {
92
+ true: "capitalize",
93
+ false: ""
94
+ },
95
+ hasMargin: {
96
+ true: "mb-4",
97
+ false: ""
98
+ },
99
+ align: {
100
+ left: "text-left",
101
+ center: "text-center",
102
+ right: "text-right",
103
+ justify: "text-justify"
104
+ },
105
+ italic: {
106
+ true: "italic",
107
+ false: ""
108
+ },
109
+ clamp: {
110
+ 1: "line-clamp-1",
111
+ 2: "line-clamp-2",
112
+ 3: "line-clamp-3",
113
+ 4: "line-clamp-4",
114
+ 5: "line-clamp-5",
115
+ none: ""
116
+ },
117
+ ellipsis: {
118
+ true: "truncate",
119
+ false: ""
120
+ },
121
+ level: {
122
+ 1: "font-bold text-2xl leading-loose",
123
+ 2: "font-semibold text-xl leading-relaxed",
124
+ 3: "font-semibold text-lg leading-relaxed",
125
+ 4: "font-bold text-sm leading-normal",
126
+ 5: "font-semibold text-sm leading-normal",
127
+ 6: "font-medium text-xs leading-normal"
128
+ }
129
+ },
130
+ defaultVariants: {
131
+ color: "ghost",
132
+ hasUnderline: !1,
133
+ isCapitalize: !1,
134
+ hasMargin: !1,
135
+ align: "left",
136
+ italic: !1,
137
+ clamp: "none",
138
+ ellipsis: !1,
139
+ level: 1
140
+ }
141
+ }), X = m(
142
+ ({
143
+ level: e = 3,
144
+ color: t = "black",
145
+ hasUnderline: r = !1,
146
+ isCapitalize: s = !1,
147
+ hasMargin: n = !1,
148
+ align: o = "left",
149
+ italic: i = !1,
150
+ clamp: c = "none",
151
+ ellipsis: d = !1,
152
+ className: h,
153
+ children: g,
154
+ ...u
155
+ }, b) => {
156
+ const w = `h${e}`;
157
+ return /* @__PURE__ */ a.jsx(
158
+ w,
159
+ {
160
+ ref: b,
161
+ className: f(
162
+ be({
163
+ color: t,
164
+ hasUnderline: r,
165
+ isCapitalize: s,
166
+ hasMargin: n,
167
+ align: o,
168
+ italic: i,
169
+ clamp: c,
170
+ ellipsis: d,
171
+ level: e
172
+ }),
173
+ h
174
+ ),
175
+ ...u,
176
+ children: g
177
+ }
178
+ );
179
+ }
180
+ );
181
+ X.displayName = "Heading";
182
+ const pe = x("inline-flex items-center justify-center", {
183
+ variants: {
184
+ size: {
185
+ xs: "w-3 h-3",
186
+ sm: "w-4 h-4",
187
+ md: "w-5 h-5",
188
+ lg: "w-6 h-6",
189
+ xl: "w-8 h-8",
190
+ inherit: "w-auto h-auto"
191
+ },
192
+ color: {
193
+ primary: "text-primary",
194
+ secondary: "text-secondary",
195
+ tertiary: "text-tertiary",
196
+ ghost: "text-ghost",
197
+ neutral: "text-neutral",
198
+ success: "text-success",
199
+ info: "text-info",
200
+ warning: "text-warning",
201
+ danger: "text-danger",
202
+ gray: "text-gray-500",
203
+ black: "text-black",
204
+ white: "text-white",
205
+ inherit: ""
206
+ }
207
+ },
208
+ defaultVariants: {
209
+ size: "md",
210
+ color: "primary"
211
+ }
212
+ }), N = A.forwardRef(function({ as: t, color: r = "primary", size: s = "md", className: n, ...o }, i) {
213
+ return /* @__PURE__ */ a.jsx(
214
+ t,
215
+ {
216
+ ref: i,
217
+ className: pe({ color: r, size: s, className: n }),
218
+ ...o
219
+ }
220
+ );
221
+ }), we = m(function({ className: t, children: r, ...s }, n) {
222
+ return /* @__PURE__ */ a.jsx(
223
+ X,
224
+ {
225
+ ref: n,
226
+ level: 4,
227
+ className: f("font-medium", t),
228
+ ...s,
229
+ color: "black",
230
+ children: r
231
+ }
232
+ );
233
+ }), ve = m(function({ className: t, children: r, ...s }, n) {
234
+ const { isOpen: o } = D();
235
+ return /* @__PURE__ */ a.jsx(
236
+ "div",
237
+ {
238
+ ref: n,
239
+ className: f(me({ isOpen: o }), t),
240
+ ...s,
241
+ children: /* @__PURE__ */ a.jsx("div", { className: ge(), children: r })
242
+ }
243
+ );
244
+ }), Y = m(function({ as: t, ...r }, s) {
245
+ const { isOpen: n } = D();
246
+ return /* @__PURE__ */ a.jsx(
247
+ N,
248
+ {
249
+ ref: s,
250
+ as: t,
251
+ color: "ghost",
252
+ size: "sm",
253
+ className: xe({ isOpen: n }),
254
+ ...r
255
+ }
256
+ );
257
+ }), ye = m(
258
+ function({
259
+ title: t,
260
+ subtitle: r,
261
+ isDefaultOpen: s = !1,
262
+ disabled: n = !1,
263
+ hasMargin: o,
264
+ className: i,
265
+ children: c,
266
+ ...d
267
+ }, h) {
268
+ const [g, u] = V(s), b = () => {
269
+ n || u((p) => !p);
270
+ }, w = {
271
+ isOpen: g,
272
+ toggle: b,
273
+ disabled: n
274
+ };
275
+ return /* @__PURE__ */ a.jsx($.Provider, { value: w, children: /* @__PURE__ */ a.jsxs(
276
+ "div",
277
+ {
278
+ ref: h,
279
+ className: f(
280
+ fe({ disabled: n }),
281
+ i,
282
+ o && "mb-4"
283
+ ),
284
+ ...d,
285
+ children: [
286
+ /* @__PURE__ */ a.jsx(
287
+ "div",
288
+ {
289
+ role: "button",
290
+ className: he({ disabled: n, isOpen: g }),
291
+ onClick: b,
292
+ "aria-disabled": n,
293
+ "aria-expanded": g,
294
+ children: /* @__PURE__ */ a.jsxs("div", { className: "flex items-center justify-between w-full gap-2", children: [
295
+ /* @__PURE__ */ a.jsxs("div", { className: "flex items-center gap-3 flex-grow", children: [
296
+ /* @__PURE__ */ a.jsx("div", { className: "flex-1", children: t }),
297
+ r && /* @__PURE__ */ a.jsx("div", { className: "flex-shrink-0", children: r })
298
+ ] }),
299
+ /* @__PURE__ */ a.jsx(Y, { as: se })
300
+ ] })
301
+ }
302
+ ),
303
+ /* @__PURE__ */ a.jsx(
304
+ "div",
305
+ {
306
+ className: f(
307
+ "overflow-hidden transition-all duration-300",
308
+ g ? "max-h-screen opacity-100" : "max-h-0 opacity-0"
309
+ ),
310
+ children: /* @__PURE__ */ a.jsx("div", { className: "p-4 pt-2", children: c })
311
+ }
312
+ )
313
+ ]
314
+ }
315
+ ) });
316
+ }
317
+ ), Qt = Object.assign(ye, {
318
+ Title: we,
319
+ Content: ve,
320
+ Icon: Y
321
+ }), je = x(
322
+ "group flex items-center justify-between transition-all duration-200 w-full",
323
+ {
324
+ variants: {
325
+ size: {
326
+ sm: "p-3",
327
+ md: "p-4",
328
+ lg: "p-5"
329
+ },
330
+ as: {
331
+ button: "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-light hover:bg-gray-50 cursor-pointer",
332
+ div: ""
333
+ }
334
+ },
335
+ defaultVariants: {
336
+ size: "md",
337
+ as: "button"
338
+ }
339
+ }
340
+ ), ke = x(
341
+ "bg-gradient-to-br from-gray-100 to-gray-200 rounded-xl flex items-center justify-center group-hover:from-primary-soft group-hover:to-primary-light duration-200",
342
+ {
343
+ variants: {
344
+ size: {
345
+ sm: "w-8 h-8",
346
+ md: "w-10 h-10",
347
+ lg: "w-12 h-12"
348
+ }
349
+ },
350
+ defaultVariants: {
351
+ size: "md"
352
+ }
353
+ }
354
+ ), Ne = x(
355
+ "inline-flex items-center justify-center text-ghost-bold transition-colors duration-200",
356
+ {
357
+ variants: {
358
+ size: {
359
+ sm: "w-3 h-3",
360
+ md: "w-4 h-4",
361
+ lg: "w-5 h-5"
362
+ }
363
+ },
364
+ defaultVariants: {
365
+ size: "md"
366
+ }
367
+ }
368
+ ), Ee = x("", {
369
+ variants: {
370
+ color: {
371
+ primary: "text-primary",
372
+ secondary: "text-secondary",
373
+ tertiary: "text-tertiary",
374
+ ghost: "text-ghost",
375
+ neutral: "text-ghost",
376
+ success: "text-success",
377
+ info: "text-info",
378
+ warning: "text-warning",
379
+ danger: "text-danger",
380
+ inherit: "",
381
+ gray: "text-gray-500",
382
+ black: "text-black",
383
+ white: "text-white"
384
+ },
385
+ hasUnderline: {
386
+ true: "underline",
387
+ false: ""
388
+ },
389
+ isCapitalize: {
390
+ true: "capitalize",
391
+ false: ""
392
+ },
393
+ align: {
394
+ left: "text-left",
395
+ center: "text-center",
396
+ right: "text-right",
397
+ justify: "text-justify"
398
+ },
399
+ italic: {
400
+ true: "italic",
401
+ false: ""
402
+ },
403
+ clamp: {
404
+ 1: "line-clamp-1",
405
+ 2: "line-clamp-2",
406
+ 3: "line-clamp-3",
407
+ 4: "line-clamp-4",
408
+ 5: "line-clamp-5",
409
+ none: ""
410
+ },
411
+ ellipsis: {
412
+ true: "truncate",
413
+ false: ""
414
+ },
415
+ as: {
416
+ h1: "font-bold text-4xl leading-loose",
417
+ h2: "font-semibold text-3xl leading-relaxed",
418
+ h3: "font-medium text-2xl leading-relaxed",
419
+ h4: "font-bold text-xl leading-normal",
420
+ h5: "font-semibold text-lg leading-normal",
421
+ h6: "font-medium text-base leading-normal",
422
+ p: "font-normal text-base leading-normal",
423
+ span: "font-normal text-base leading-normal",
424
+ label: "font-normal text-xs leading-normal"
425
+ }
426
+ },
427
+ defaultVariants: {
428
+ color: "neutral",
429
+ hasUnderline: !1,
430
+ isCapitalize: !1,
431
+ align: "left",
432
+ italic: !1,
433
+ clamp: "none",
434
+ ellipsis: !1,
435
+ as: "span"
436
+ }
437
+ }), y = m(
438
+ ({
439
+ as: e = "span",
440
+ color: t = "ghost",
441
+ hasUnderline: r = !1,
442
+ isCapitalize: s = !1,
443
+ align: n = "left",
444
+ italic: o = !1,
445
+ clamp: i = "none",
446
+ ellipsis: c = !1,
447
+ fontSize: d,
448
+ fontWeight: h,
449
+ className: g,
450
+ children: u,
451
+ ...b
452
+ }, w) => {
453
+ const v = [
454
+ "h1",
455
+ "h2",
456
+ "h3",
457
+ "h4",
458
+ "h5",
459
+ "h6",
460
+ "p",
461
+ "span",
462
+ "label"
463
+ ].includes(e) ? e : "span", E = d ? `text-${d}` : "", C = h ? `font-${h}` : "";
464
+ return /* @__PURE__ */ a.jsx(
465
+ e,
466
+ {
467
+ ref: w,
468
+ className: f(
469
+ Ee({
470
+ color: t,
471
+ hasUnderline: r,
472
+ isCapitalize: s,
473
+ align: n,
474
+ italic: o,
475
+ clamp: i,
476
+ ellipsis: c,
477
+ // @ts-expect-error - `as` is not a valid variant
478
+ as: v
479
+ }),
480
+ E,
481
+ C,
482
+ g
483
+ ),
484
+ ...b,
485
+ children: u
486
+ }
487
+ );
488
+ }
489
+ ), Ce = m(
490
+ ({ children: e, className: t }, r) => /* @__PURE__ */ a.jsx(
491
+ "div",
492
+ {
493
+ ref: r,
494
+ className: f(
495
+ "bg-background border border-border rounded-lg overflow-hidden",
496
+ "divide-y divide-border",
497
+ t
498
+ ),
499
+ role: "group",
500
+ children: e
501
+ }
502
+ )
503
+ ), ze = m(
504
+ ({
505
+ size: e = "md",
506
+ icon: t,
507
+ title: r,
508
+ subtitle: s,
509
+ badge: n,
510
+ showArrow: o = !0,
511
+ as: i = "button",
512
+ className: c,
513
+ ...d
514
+ }, h) => /* @__PURE__ */ a.jsxs(
515
+ i,
516
+ {
517
+ ref: h,
518
+ className: f(je({ size: e, as: i }), c),
519
+ ...d,
520
+ children: [
521
+ /* @__PURE__ */ a.jsxs("div", { className: "flex items-center gap-4 flex-1", children: [
522
+ t && /* @__PURE__ */ a.jsx("div", { className: f(ke({ size: e })), children: t }),
523
+ /* @__PURE__ */ a.jsxs("div", { className: "flex-1", children: [
524
+ /* @__PURE__ */ a.jsxs("div", { className: "flex items-center gap-3 mb-1", children: [
525
+ /* @__PURE__ */ a.jsx(
526
+ y,
527
+ {
528
+ as: "span",
529
+ fontSize: e === "sm" ? "sm" : "base",
530
+ fontWeight: "semibold",
531
+ color: "ghost",
532
+ className: "text-left leading-normal",
533
+ children: r
534
+ }
535
+ ),
536
+ n && /* @__PURE__ */ a.jsx(
537
+ "div",
538
+ {
539
+ className: "flex flex-wrap items-center flex-row justify-start gap-3",
540
+ role: "group",
541
+ children: n
542
+ }
543
+ )
544
+ ] }),
545
+ s && /* @__PURE__ */ a.jsx(
546
+ y,
547
+ {
548
+ as: "p",
549
+ fontSize: "sm",
550
+ color: "gray",
551
+ className: "text-left leading-normal",
552
+ children: s
553
+ }
554
+ )
555
+ ] })
556
+ ] }),
557
+ o && /* @__PURE__ */ a.jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ a.jsx(
558
+ N,
559
+ {
560
+ as: ae,
561
+ className: f(Ne({ size: e })),
562
+ color: "ghost",
563
+ "aria-hidden": "true"
564
+ }
565
+ ) })
566
+ ]
567
+ }
568
+ )
569
+ ), Zt = Object.assign(ze, {
570
+ Group: Ce
571
+ }), Ve = x(
572
+ "relative flex items-center gap-2 rounded-md p-2 text-sm transition-all duration-200",
573
+ {
574
+ variants: {
575
+ variant: {
576
+ default: "",
577
+ outline: "border"
578
+ },
579
+ color: {
580
+ // Core colors
581
+ primary: "",
582
+ secondary: "",
583
+ tertiary: "",
584
+ ghost: "",
585
+ neutral: "",
586
+ // Semantic colors
587
+ success: "",
588
+ info: "",
589
+ warning: "",
590
+ danger: ""
591
+ }
592
+ },
593
+ compoundVariants: [
594
+ // Default variant styles (soft backgrounds)
595
+ {
596
+ variant: "default",
597
+ color: "primary",
598
+ class: "bg-primary-soft text-primary border border-primary"
599
+ },
600
+ {
601
+ variant: "default",
602
+ color: "secondary",
603
+ class: "bg-secondary-soft text-secondary border border-secondary"
604
+ },
605
+ {
606
+ variant: "default",
607
+ color: "tertiary",
608
+ class: "bg-tertiary-soft text-tertiary border border-tertiary"
609
+ },
610
+ {
611
+ variant: "default",
612
+ color: "ghost",
613
+ class: "bg-ghost-soft text-ghost border border-ghost"
614
+ },
615
+ {
616
+ variant: "default",
617
+ color: "neutral",
618
+ class: "bg-border/50 text-foreground border border-border"
619
+ },
620
+ {
621
+ variant: "default",
622
+ color: "success",
623
+ class: "bg-success-soft text-success border border-success"
624
+ },
625
+ {
626
+ variant: "default",
627
+ color: "info",
628
+ class: "bg-info-soft text-info border border-info"
629
+ },
630
+ {
631
+ variant: "default",
632
+ color: "warning",
633
+ class: "bg-warning-soft text-warning border border-warning"
634
+ },
635
+ {
636
+ variant: "default",
637
+ color: "danger",
638
+ class: "bg-danger-soft text-danger border border-danger"
639
+ },
640
+ // Outline variant styles
641
+ {
642
+ variant: "outline",
643
+ color: "primary",
644
+ class: "bg-transparent text-primary border-primary"
645
+ },
646
+ {
647
+ variant: "outline",
648
+ color: "secondary",
649
+ class: "bg-transparent text-secondary border-secondary"
650
+ },
651
+ {
652
+ variant: "outline",
653
+ color: "tertiary",
654
+ class: "bg-transparent text-tertiary border-tertiary"
655
+ },
656
+ {
657
+ variant: "outline",
658
+ color: "ghost",
659
+ class: "bg-transparent text-ghost border-ghost"
660
+ },
661
+ {
662
+ variant: "outline",
663
+ color: "neutral",
664
+ class: "bg-transparent text-foreground border-border"
665
+ },
666
+ {
667
+ variant: "outline",
668
+ color: "success",
669
+ class: "bg-transparent text-success border-success"
670
+ },
671
+ {
672
+ variant: "outline",
673
+ color: "info",
674
+ class: "bg-transparent text-info border-info"
675
+ },
676
+ {
677
+ variant: "outline",
678
+ color: "warning",
679
+ class: "bg-transparent text-warning border-warning"
680
+ },
681
+ {
682
+ variant: "outline",
683
+ color: "danger",
684
+ class: "bg-transparent text-danger border-danger"
685
+ }
686
+ ],
687
+ defaultVariants: {
688
+ variant: "default",
689
+ color: "neutral"
690
+ }
691
+ }
692
+ ), Ie = x(
693
+ "flex-shrink-0 flex justify-center items-center ",
694
+ {
695
+ variants: {
696
+ size: {
697
+ sm: "w-4 h-4",
698
+ md: "w-5 h-5",
699
+ lg: "w-6 h-6"
700
+ }
701
+ },
702
+ defaultVariants: {
703
+ size: "md"
704
+ }
705
+ }
706
+ ), J = m(
707
+ ({ className: e, children: t, ...r }, s) => /* @__PURE__ */ a.jsx("div", { ref: s, className: f(Ie(), e), ...r, children: t })
708
+ ), Me = m(
709
+ ({
710
+ variant: e = "default",
711
+ color: t = "neutral",
712
+ icon: r,
713
+ className: s,
714
+ children: n,
715
+ ...o
716
+ }, i) => /* @__PURE__ */ a.jsxs(
717
+ "div",
718
+ {
719
+ ref: i,
720
+ role: "alert",
721
+ className: f(Ve({ variant: e, color: t }), s),
722
+ ...o,
723
+ children: [
724
+ r && /* @__PURE__ */ a.jsx(J, { children: r }),
725
+ /* @__PURE__ */ a.jsx("div", { className: "flex-1", children: n })
726
+ ]
727
+ }
728
+ )
729
+ ), er = Object.assign(Me, {
730
+ Icon: J
731
+ }), Ae = x(
732
+ [
733
+ "inline-flex items-center transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
734
+ // pseudo selectors for anchor
735
+ "hover:no-underline"
736
+ ],
737
+ {
738
+ variants: {
739
+ color: {
740
+ primary: "text-primary",
741
+ secondary: "text-secondary",
742
+ ghost: "text-ghost",
743
+ danger: "text-danger",
744
+ neutral: "text-neutral"
745
+ },
746
+ fontSize: {
747
+ xs: "text-xs",
748
+ sm: "text-sm",
749
+ base: "text-base",
750
+ lg: "text-lg",
751
+ xl: "text-xl",
752
+ "2xl": "text-2xl",
753
+ "3xl": "text-3xl",
754
+ "4xl": "text-4xl",
755
+ "5xl": "text-5xl",
756
+ "6xl": "text-6xl",
757
+ "7xl": "text-7xl",
758
+ "8xl": "text-8xl",
759
+ "9xl": "text-9xl",
760
+ inherit: "",
761
+ undefined: ""
762
+ },
763
+ fontWeight: {
764
+ thin: "font-thin",
765
+ extralight: "font-extralight",
766
+ light: "font-light",
767
+ normal: "font-normal",
768
+ medium: "font-medium",
769
+ semibold: "font-semibold",
770
+ bold: "font-bold",
771
+ extrabold: "font-extrabold",
772
+ black: "font-black",
773
+ inherit: "",
774
+ undefined: ""
775
+ },
776
+ quiet: {
777
+ true: "",
778
+ false: "underline underline-offset-2"
779
+ }
780
+ },
781
+ defaultVariants: {
782
+ color: "primary",
783
+ fontSize: "base",
784
+ fontWeight: "medium",
785
+ quiet: !1
786
+ }
787
+ }
788
+ ), tr = m(
789
+ ({
790
+ children: e,
791
+ className: t,
792
+ color: r = "primary",
793
+ fontSize: s = "base",
794
+ fontWeight: n = "medium",
795
+ quiet: o = !1,
796
+ ...i
797
+ }, c) => /* @__PURE__ */ a.jsx(
798
+ "a",
799
+ {
800
+ ref: c,
801
+ className: f(
802
+ Ae({ color: r, fontSize: s, fontWeight: n, quiet: o }),
803
+ t
804
+ ),
805
+ ...i,
806
+ children: e
807
+ }
808
+ )
809
+ ), Le = m(
810
+ function({ title: t, children: r, className: s, hasMargin: n, ...o }, i) {
811
+ return /* @__PURE__ */ a.jsxs(
812
+ "div",
813
+ {
814
+ ref: i,
815
+ className: f("space-y-1", s, n && "mb-4"),
816
+ ...o,
817
+ children: [
818
+ /* @__PURE__ */ a.jsx(
819
+ y,
820
+ {
821
+ as: "h4",
822
+ fontSize: "xs",
823
+ fontWeight: "normal",
824
+ color: "gray",
825
+ className: "leading-none",
826
+ children: t
827
+ }
828
+ ),
829
+ /* @__PURE__ */ a.jsx(y, { as: "p", fontSize: "sm", fontWeight: "normal", children: r })
830
+ ]
831
+ }
832
+ );
833
+ }
834
+ );
835
+ function Se(e = 1) {
836
+ switch (e) {
837
+ case 1:
838
+ return "col-span-1";
839
+ case 2:
840
+ return "col-span-2";
841
+ case 3:
842
+ return "col-span-3";
843
+ case 4:
844
+ return "col-span-4";
845
+ case 5:
846
+ return "col-span-5";
847
+ case 6:
848
+ return "col-span-6";
849
+ case 7:
850
+ return "col-span-7";
851
+ case 8:
852
+ return "col-span-8";
853
+ case 9:
854
+ return "col-span-9";
855
+ case 10:
856
+ return "col-span-10";
857
+ case 11:
858
+ return "col-span-11";
859
+ case 12:
860
+ return "col-span-12";
861
+ default:
862
+ return "col-span-1";
863
+ }
864
+ }
865
+ function We(e = 4) {
866
+ switch (e) {
867
+ case 1:
868
+ return "grid-cols-1";
869
+ case 2:
870
+ return "grid-cols-2";
871
+ case 3:
872
+ return "grid-cols-3";
873
+ case 4:
874
+ return "grid-cols-4";
875
+ case 5:
876
+ return "grid-cols-5";
877
+ case 6:
878
+ return "grid-cols-6";
879
+ case 7:
880
+ return "grid-cols-7";
881
+ case 8:
882
+ return "grid-cols-8";
883
+ case 9:
884
+ return "grid-cols-9";
885
+ case 10:
886
+ return "grid-cols-10";
887
+ case 11:
888
+ return "grid-cols-11";
889
+ case 12:
890
+ return "grid-cols-12";
891
+ default:
892
+ return "grid-cols-4";
893
+ }
894
+ }
895
+ const Be = m(function({ children: t, className: r, span: s = 1, title: n, ...o }, i) {
896
+ const c = Se(s);
897
+ return /* @__PURE__ */ a.jsx("li", { ref: i, className: f(c, r), ...o, children: /* @__PURE__ */ a.jsx(Le, { title: n, children: t }) });
898
+ }), Oe = m(
899
+ function({ children: t, className: r, columns: s = 4, ...n }, o) {
900
+ const i = We(s);
901
+ return /* @__PURE__ */ a.jsx(
902
+ "ul",
903
+ {
904
+ ref: o,
905
+ className: f("grid gap-4", i, r),
906
+ ...n,
907
+ children: t
908
+ }
909
+ );
910
+ }
911
+ ), rr = Object.assign(Oe, {
912
+ Item: Be
913
+ }), He = x(
914
+ "inline-flex items-center justify-center font-medium text-white overflow-hidden transition-all duration-200 select-none relative",
915
+ {
916
+ variants: {
917
+ variant: {
918
+ // Core variants using Versaur color system
919
+ primary: "bg-primary-light text-primary",
920
+ secondary: "bg-secondary-light text-secondary",
921
+ tertiary: "bg-tertiary-light text-tertiary",
922
+ ghost: "bg-ghost-light text-ghost",
923
+ neutral: "bg-neutral-light text-foreground border border-border",
924
+ // Accent variants
925
+ accent_1: "bg-accent-1-light text-accent-1",
926
+ accent_2: "bg-accent-2-light text-accent-2",
927
+ accent_3: "bg-accent-3-light text-accent-3",
928
+ // Semantic variants
929
+ success: "bg-success-light text-success",
930
+ info: "bg-info-light text-info",
931
+ warning: "bg-warning-light text-warning",
932
+ danger: "bg-danger-light text-danger"
933
+ },
934
+ size: {
935
+ xs: "h-6 w-6 text-xs",
936
+ sm: "h-7 w-7 text-xs",
937
+ md: "h-9 w-9 text-sm",
938
+ lg: "h-10 w-10 text-base",
939
+ xl: "h-12 w-12 text-xl"
940
+ },
941
+ shape: {
942
+ circle: "rounded-full",
943
+ square: "rounded-none",
944
+ rounded: "rounded-md"
945
+ }
946
+ },
947
+ defaultVariants: {
948
+ variant: "primary",
949
+ size: "md",
950
+ shape: "circle"
951
+ }
952
+ }
953
+ ), Te = x(
954
+ "absolute inset-0 h-full w-full object-cover"
955
+ ), qe = m(
956
+ ({
957
+ variant: e = "primary",
958
+ size: t = "md",
959
+ shape: r = "circle",
960
+ className: s,
961
+ children: n,
962
+ ...o
963
+ }, i) => /* @__PURE__ */ a.jsx(
964
+ "div",
965
+ {
966
+ ref: i,
967
+ className: f(He({ variant: e, size: t, shape: r }), s),
968
+ ...o,
969
+ children: n
970
+ }
971
+ )
972
+ ), Pe = m(
973
+ ({ src: e, alt: t, className: r, onError: s, ...n }, o) => {
974
+ const [i, c] = V(!1);
975
+ I(() => {
976
+ c(!1);
977
+ }, [e]);
978
+ const d = R(
979
+ (h) => {
980
+ c(!0), s?.(h);
981
+ },
982
+ [s]
983
+ );
984
+ return i ? null : /* @__PURE__ */ a.jsx(
985
+ "img",
986
+ {
987
+ ref: o,
988
+ src: e,
989
+ alt: t,
990
+ className: f(Te(), r),
991
+ onError: d,
992
+ ...n
993
+ }
994
+ );
995
+ }
996
+ ), nr = Object.assign(qe, {
997
+ /**
998
+ * AvatarImage sub-component for displaying images with fallback behavior
999
+ */
1000
+ Image: Pe
1001
+ }), _e = x(
1002
+ "inline-flex items-center justify-center font-medium transition-all duration-200 select-none gap-1 min-h-[1.25rem]",
1003
+ {
1004
+ variants: {
1005
+ variant: {
1006
+ default: "",
1007
+ outline: "border bg-background"
1008
+ },
1009
+ color: {
1010
+ // Core colors
1011
+ primary: "",
1012
+ secondary: "",
1013
+ tertiary: "",
1014
+ ghost: "",
1015
+ neutral: "",
1016
+ // Accent colors
1017
+ accent_1: "",
1018
+ accent_2: "",
1019
+ accent_3: "",
1020
+ // Semantic colors
1021
+ success: "",
1022
+ info: "",
1023
+ warning: "",
1024
+ danger: ""
1025
+ },
1026
+ shape: {
1027
+ rounded: "rounded-full",
1028
+ square: "rounded-xs"
1029
+ },
1030
+ size: {
1031
+ sm: "text-xs px-1 py-0.25 h-3",
1032
+ md: "text-xs px-1.5 py-0.5 h-4",
1033
+ lg: "text-sm px-2 py-1 h-6"
1034
+ },
1035
+ iconOnly: {
1036
+ true: "",
1037
+ false: ""
1038
+ }
1039
+ },
1040
+ compoundVariants: [
1041
+ // Default variant color combinations - using light/soft backgrounds
1042
+ {
1043
+ variant: "default",
1044
+ color: "primary",
1045
+ className: "bg-primary-light text-primary-bold"
1046
+ },
1047
+ {
1048
+ variant: "default",
1049
+ color: "secondary",
1050
+ className: "bg-secondary-light text-secondary-bold"
1051
+ },
1052
+ {
1053
+ variant: "default",
1054
+ color: "tertiary",
1055
+ className: "bg-tertiary-light text-tertiary-bold"
1056
+ },
1057
+ {
1058
+ variant: "default",
1059
+ color: "ghost",
1060
+ className: "bg-ghost/05 text-ghost"
1061
+ },
1062
+ {
1063
+ variant: "default",
1064
+ color: "neutral",
1065
+ className: "bg-neutral-light text-foreground"
1066
+ },
1067
+ {
1068
+ variant: "default",
1069
+ color: "success",
1070
+ className: "bg-success-light/50 text-success-bold"
1071
+ },
1072
+ {
1073
+ variant: "default",
1074
+ color: "info",
1075
+ className: "bg-info-light/50 text-info-bold"
1076
+ },
1077
+ {
1078
+ variant: "default",
1079
+ color: "warning",
1080
+ className: "bg-warning-light/50 text-warning-bold"
1081
+ },
1082
+ {
1083
+ variant: "default",
1084
+ color: "danger",
1085
+ className: "bg-danger-light/40 text-danger-bold"
1086
+ },
1087
+ {
1088
+ variant: "default",
1089
+ color: "accent_1",
1090
+ className: "bg-accent-1-light text-accent-1-bold"
1091
+ },
1092
+ {
1093
+ variant: "default",
1094
+ color: "accent_2",
1095
+ className: "bg-accent-2-light text-accent-2-bold"
1096
+ },
1097
+ {
1098
+ variant: "default",
1099
+ color: "accent_3",
1100
+ className: "bg-accent-3-light text-accent-3-bold"
1101
+ },
1102
+ // Outline variant color combinations
1103
+ {
1104
+ variant: "outline",
1105
+ color: "primary",
1106
+ className: "border-primary text-primary"
1107
+ },
1108
+ {
1109
+ variant: "outline",
1110
+ color: "secondary",
1111
+ className: "border-secondary text-secondary"
1112
+ },
1113
+ {
1114
+ variant: "outline",
1115
+ color: "tertiary",
1116
+ className: "border-tertiary text-tertiary"
1117
+ },
1118
+ {
1119
+ variant: "outline",
1120
+ color: "ghost",
1121
+ className: "border-ghost text-ghost"
1122
+ },
1123
+ {
1124
+ variant: "outline",
1125
+ color: "neutral",
1126
+ className: "border-neutral text-foreground"
1127
+ },
1128
+ {
1129
+ variant: "outline",
1130
+ color: "success",
1131
+ className: "border-success text-success"
1132
+ },
1133
+ {
1134
+ variant: "outline",
1135
+ color: "info",
1136
+ className: "border-info text-info"
1137
+ },
1138
+ {
1139
+ variant: "outline",
1140
+ color: "warning",
1141
+ className: "border-warning text-warning"
1142
+ },
1143
+ {
1144
+ variant: "outline",
1145
+ color: "danger",
1146
+ className: "border-danger text-danger"
1147
+ },
1148
+ {
1149
+ variant: "outline",
1150
+ color: "accent_1",
1151
+ className: "border-accent-1 text-accent-1"
1152
+ },
1153
+ {
1154
+ variant: "outline",
1155
+ color: "accent_2",
1156
+ className: "border-accent-2 text-accent-2"
1157
+ },
1158
+ {
1159
+ variant: "outline",
1160
+ color: "accent_3",
1161
+ className: "border-accent-3 text-accent-3"
1162
+ },
1163
+ // Icon-only size adjustments
1164
+ {
1165
+ iconOnly: !0,
1166
+ size: "sm",
1167
+ className: "px-1 py-1 w-5 h-5"
1168
+ },
1169
+ {
1170
+ iconOnly: !0,
1171
+ size: "md",
1172
+ className: "px-1.5 py-1.5 w-6 h-6"
1173
+ },
1174
+ {
1175
+ iconOnly: !0,
1176
+ size: "lg",
1177
+ className: "px-2 py-2 w-7 h-7"
1178
+ }
1179
+ ],
1180
+ defaultVariants: {
1181
+ variant: "default",
1182
+ color: "primary",
1183
+ shape: "square",
1184
+ size: "md",
1185
+ iconOnly: !1
1186
+ }
1187
+ }
1188
+ ), sr = m(
1189
+ ({
1190
+ variant: e = "default",
1191
+ shape: t = "square",
1192
+ color: r = "primary",
1193
+ size: s = "md",
1194
+ iconLeft: n,
1195
+ iconRight: o,
1196
+ className: i,
1197
+ children: c,
1198
+ ...d
1199
+ }, h) => {
1200
+ const b = !(c != null && c !== "") && !!(n || o);
1201
+ return /* @__PURE__ */ a.jsx(
1202
+ "span",
1203
+ {
1204
+ ref: h,
1205
+ className: f(
1206
+ _e({
1207
+ variant: e,
1208
+ color: r,
1209
+ shape: t,
1210
+ size: s,
1211
+ iconOnly: b
1212
+ }),
1213
+ i
1214
+ ),
1215
+ ...d,
1216
+ children: b ? (
1217
+ // Icon-only mode: display only the icon
1218
+ n || o
1219
+ ) : (
1220
+ // Normal mode: display icon(s) and text
1221
+ /* @__PURE__ */ a.jsxs(a.Fragment, { children: [
1222
+ n,
1223
+ c,
1224
+ o
1225
+ ] })
1226
+ )
1227
+ }
1228
+ );
1229
+ }
1230
+ ), _ = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Spenicle"), /* @__PURE__ */ l.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), Fe = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Spenicle"), /* @__PURE__ */ l.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), Ue = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Spenicle"), /* @__PURE__ */ l.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z", fill: "white" }))), Re = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Hub (Square)"), /* @__PURE__ */ l.createElement("rect", { x: 0, y: 0, width: 32, height: 32, rx: 0, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ l.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ l.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ l.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ l.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), Ge = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Hub (Rounded)"), /* @__PURE__ */ l.createElement("rect", { x: 0, y: 0, width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ l.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ l.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ l.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ l.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), $e = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Hub (Circle)"), /* @__PURE__ */ l.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ l.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ l.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ l.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ l.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), De = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Notunic"), /* @__PURE__ */ l.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 6h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 10h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 14h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 18h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z", fill: "white" }))), Xe = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Notunic"), /* @__PURE__ */ l.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 6h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 10h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 14h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 18h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z", fill: "white" }))), Ye = (e) => /* @__PURE__ */ l.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ l.createElement("title", null, "Notunic"), /* @__PURE__ */ l.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ l.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ l.createElement("path", { d: "M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 6h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 10h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 14h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M2 18h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ l.createElement("path", { d: "M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z", fill: "white" }))), Je = x("", {
1231
+ variants: {
1232
+ size: {
1233
+ xs: "h-6 w-6",
1234
+ sm: "h-7 w-7",
1235
+ md: "h-9 w-9",
1236
+ lg: "h-10 w-10",
1237
+ xl: "h-12 w-12"
1238
+ }
1239
+ },
1240
+ defaultVariants: {
1241
+ size: "md"
1242
+ }
1243
+ }), Ke = m(
1244
+ ({ shape: e = "square", size: t, name: r = "spenicle", ...s }, n) => {
1245
+ const o = {
1246
+ spenicle: {
1247
+ square: _,
1248
+ rounded: Fe,
1249
+ circle: Ue
1250
+ },
1251
+ hub: {
1252
+ square: Re,
1253
+ rounded: Ge,
1254
+ circle: $e
1255
+ },
1256
+ notunic: {
1257
+ square: De,
1258
+ rounded: Xe,
1259
+ circle: Ye
1260
+ }
1261
+ }, c = (o[r] || o.spenicle)[e || "square"] || _;
1262
+ return /* @__PURE__ */ a.jsx(
1263
+ c,
1264
+ {
1265
+ ref: n,
1266
+ ...s,
1267
+ className: f("inline-block", Je({ size: t }))
1268
+ }
1269
+ );
1270
+ }
1271
+ ), ar = m(
1272
+ ({ name: e = "spenicle", size: t = "md", shape: r, ...s }, n) => /* @__PURE__ */ a.jsx(
1273
+ "span",
1274
+ {
1275
+ ref: n,
1276
+ className: f("inline-flex items-center gap-2"),
1277
+ ...s,
1278
+ children: /* @__PURE__ */ a.jsx(Ke, { name: e, shape: r, size: t, "aria-hidden": "true" })
1279
+ }
1280
+ )
1281
+ ), Qe = x(
1282
+ "inline-flex items-center justify-center gap-2 rounded-md font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-[0.98] select-none cursor-pointer",
1283
+ {
1284
+ variants: {
1285
+ variant: {
1286
+ // Primary variant - main action button with coral accent
1287
+ primary: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1288
+ // Ghost variant - subtle, minimal visual weight
1289
+ ghost: "bg-white text-foreground hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1290
+ // Outline variant - bordered, lightweight alternative
1291
+ outline: "border border-border text-foreground bg-white hover:bg-accent-soft focus-visible:ring-accent-soft focus-visible:ring-offset-white transition-all",
1292
+ // Destructive variant - for dangerous or irreversible actions
1293
+ destructive: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-soft focus-visible:ring-offset-white shadow-sm hover:shadow-md"
1294
+ },
1295
+ size: {
1296
+ sm: "h-7 px-3 text-sm min-w-[2.25rem]",
1297
+ md: "h-9 px-4 text-sm min-w-[2.5rem]",
1298
+ lg: "h-10 px-8 text-lg min-w-[2.75rem]"
1299
+ }
1300
+ },
1301
+ defaultVariants: {
1302
+ variant: "primary",
1303
+ size: "md"
1304
+ }
1305
+ }
1306
+ ), K = A.forwardRef(
1307
+ function({
1308
+ className: t,
1309
+ variant: r = "primary",
1310
+ size: s = "md",
1311
+ disabled: n = !1,
1312
+ type: o = "button",
1313
+ busy: i,
1314
+ children: c,
1315
+ ...d
1316
+ }, h) {
1317
+ const g = s === "sm" ? "sm" : s === "lg" ? "md" : "sm", u = () => r === "primary" || r === "destructive" ? "white" : "inherit";
1318
+ return /* @__PURE__ */ a.jsxs(
1319
+ "button",
1320
+ {
1321
+ ref: h,
1322
+ type: o,
1323
+ className: f(Qe({ variant: r, size: s }), t),
1324
+ disabled: n || i,
1325
+ "aria-disabled": n || i,
1326
+ inert: n || i ? !0 : void 0,
1327
+ "aria-busy": i ? !0 : void 0,
1328
+ ...d,
1329
+ children: [
1330
+ i && /* @__PURE__ */ a.jsx(
1331
+ N,
1332
+ {
1333
+ as: G,
1334
+ size: g,
1335
+ color: u(),
1336
+ className: "animate-spin"
1337
+ }
1338
+ ),
1339
+ c
1340
+ ]
1341
+ }
1342
+ );
1343
+ }
1344
+ ), Ze = x(
1345
+ "inline-flex items-center justify-center gap-2 rounded-md font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-[0.98] select-none cursor-pointer no-underline",
1346
+ {
1347
+ variants: {
1348
+ variant: {
1349
+ // Primary variant - main action button with coral accent
1350
+ primary: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1351
+ // Ghost variant - subtle, minimal visual weight
1352
+ ghost: "bg-white text-foreground hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1353
+ // Outline variant - bordered, lightweight alternative
1354
+ outline: "border border-border text-foreground bg-white hover:bg-accent-soft focus-visible:ring-accent-soft focus-visible:ring-offset-white transition-all"
1355
+ },
1356
+ size: {
1357
+ sm: "h-7 px-3 text-sm min-w-[2.25rem]",
1358
+ md: "h-9 px-4 text-sm min-w-[2.5rem]",
1359
+ lg: "h-10 px-8 text-lg min-w-[2.75rem]"
1360
+ }
1361
+ },
1362
+ defaultVariants: {
1363
+ variant: "primary",
1364
+ size: "md"
1365
+ }
1366
+ }
1367
+ ), or = A.forwardRef(function({
1368
+ className: t,
1369
+ variant: r = "primary",
1370
+ size: s = "md",
1371
+ disabled: n = !1,
1372
+ children: o,
1373
+ href: i,
1374
+ onClick: c,
1375
+ ...d
1376
+ }, h) {
1377
+ const g = (u) => {
1378
+ if (n) {
1379
+ u.preventDefault();
1380
+ return;
1381
+ }
1382
+ c?.(u);
1383
+ };
1384
+ return /* @__PURE__ */ a.jsx(
1385
+ "a",
1386
+ {
1387
+ ref: h,
1388
+ href: n ? void 0 : i,
1389
+ className: f(Ze({ variant: r, size: s }), t),
1390
+ "aria-disabled": n ? !0 : void 0,
1391
+ tabIndex: n ? -1 : void 0,
1392
+ role: n ? "link" : void 0,
1393
+ onClick: g,
1394
+ ...d,
1395
+ children: o
1396
+ }
1397
+ );
1398
+ }), et = ({
1399
+ container: e,
1400
+ children: t
1401
+ }) => {
1402
+ if (typeof window > "u" || typeof document > "u")
1403
+ return /* @__PURE__ */ a.jsx(a.Fragment, { children: t });
1404
+ const r = e ?? document.body;
1405
+ return r ? de.createPortal(t, r) : /* @__PURE__ */ a.jsx(a.Fragment, { children: t });
1406
+ }, tt = x(
1407
+ "z-70 min-w-56 bg-background rounded-lg border border-border transition-all duration-200 ease-out will-change-transform shadow-lg",
1408
+ {
1409
+ variants: {
1410
+ size: {
1411
+ sm: "py-1.5 px-1",
1412
+ md: "py-2 px-1"
1413
+ },
1414
+ open: {
1415
+ true: "opacity-100 scale-100",
1416
+ false: "opacity-0 pointer-events-none scale-95"
1417
+ }
1418
+ },
1419
+ defaultVariants: {
1420
+ size: "md",
1421
+ open: !1
1422
+ }
1423
+ }
1424
+ );
1425
+ function F(e) {
1426
+ const t = [];
1427
+ let r = e.parentElement;
1428
+ for (; r && r !== document.documentElement; ) {
1429
+ const s = getComputedStyle(r);
1430
+ (s.overflow === "auto" || s.overflow === "scroll" || s.overflowY === "auto" || s.overflowY === "scroll" || s.overflowX === "auto" || s.overflowX === "scroll") && t.push(r), r = r.parentElement;
1431
+ }
1432
+ return t.push(document.documentElement), t;
1433
+ }
1434
+ function rt(e, t) {
1435
+ const r = e.getBoundingClientRect();
1436
+ if (r.bottom < 0 || r.top > window.innerHeight || r.right < 0 || r.left > window.innerWidth)
1437
+ return !1;
1438
+ for (const s of t) {
1439
+ if (s === document.documentElement) continue;
1440
+ const n = s.getBoundingClientRect();
1441
+ if (r.bottom < n.top || r.top > n.bottom || r.right < n.left || r.left > n.right)
1442
+ return !1;
1443
+ }
1444
+ return !0;
1445
+ }
1446
+ function nt(e, t, r, s, n, o) {
1447
+ if (e !== "auto")
1448
+ return e;
1449
+ const c = [
1450
+ {
1451
+ name: "bottom-start",
1452
+ fits: r >= t.height && n >= t.width,
1453
+ spaceUsed: r,
1454
+ priority: 1
1455
+ },
1456
+ {
1457
+ name: "bottom-end",
1458
+ fits: r >= t.height && o >= t.width,
1459
+ spaceUsed: r,
1460
+ priority: 2
1461
+ },
1462
+ {
1463
+ name: "top-start",
1464
+ fits: s >= t.height && n >= t.width,
1465
+ spaceUsed: s,
1466
+ priority: 3
1467
+ },
1468
+ {
1469
+ name: "top-end",
1470
+ fits: s >= t.height && o >= t.width,
1471
+ spaceUsed: s,
1472
+ priority: 4
1473
+ }
1474
+ ].filter((d) => d.fits);
1475
+ return c.length > 0 ? c.sort((d, h) => d.priority - h.priority)[0].name : r >= s ? n >= o ? "bottom-start" : "bottom-end" : n >= o ? "top-start" : "top-end";
1476
+ }
1477
+ function st(e, t) {
1478
+ const r = {};
1479
+ switch (e) {
1480
+ case "bottom-start":
1481
+ r.top = t.bottom + 4, r.left = t.left;
1482
+ break;
1483
+ case "bottom-end":
1484
+ r.top = t.bottom + 4, r.right = window.innerWidth - t.right;
1485
+ break;
1486
+ case "top-start":
1487
+ r.bottom = window.innerHeight - t.top + 4, r.left = t.left;
1488
+ break;
1489
+ case "top-end":
1490
+ r.bottom = window.innerHeight - t.top + 4, r.right = window.innerWidth - t.right;
1491
+ break;
1492
+ }
1493
+ return r;
1494
+ }
1495
+ function at(e, t) {
1496
+ const r = {};
1497
+ switch (e) {
1498
+ case "bottom-start":
1499
+ r.top = t.height + 4, r.left = 0;
1500
+ break;
1501
+ case "bottom-end":
1502
+ r.top = t.height + 4, r.right = 0;
1503
+ break;
1504
+ case "top-start":
1505
+ r.bottom = t.height + 4, r.left = 0;
1506
+ break;
1507
+ case "top-end":
1508
+ r.bottom = t.height + 4, r.right = 0;
1509
+ break;
1510
+ }
1511
+ return r;
1512
+ }
1513
+ function ot(e, t, r, s, n) {
1514
+ const o = {
1515
+ top: t.startsWith("bottom") ? r.bottom + 4 : r.top - s.height - 4,
1516
+ left: t.endsWith("start") ? r.left : r.right - s.width,
1517
+ width: s.width,
1518
+ height: s.height
1519
+ };
1520
+ if (o.left < n.left + 8) {
1521
+ const c = n.left + 8 - o.left;
1522
+ t.endsWith("start") ? e.left = (e.left || 0) + c : e.right = (e.right || 0) - c;
1523
+ } else if (o.left + o.width > n.right - 8) {
1524
+ const c = o.left + o.width - (n.right - 8);
1525
+ t.endsWith("start") ? e.left = (e.left || 0) - c : e.right = (e.right || 0) + c;
1526
+ }
1527
+ let i;
1528
+ if (t.startsWith("bottom")) {
1529
+ const c = Math.max(
1530
+ 50,
1531
+ n.bottom - r.bottom - 16
1532
+ );
1533
+ s.height > c && (i = c);
1534
+ } else {
1535
+ const c = Math.max(
1536
+ 50,
1537
+ r.top - n.top - 16
1538
+ );
1539
+ s.height > c && (i = c);
1540
+ }
1541
+ return { position: e, maxHeight: i };
1542
+ }
1543
+ function it(e, t, r, s) {
1544
+ const n = {
1545
+ top: t.startsWith("bottom") ? r.height + 4 : -s.height - 4,
1546
+ left: t.endsWith("start") ? 0 : -s.width,
1547
+ width: s.width,
1548
+ height: s.height
1549
+ };
1550
+ if (r.left + n.left < 8) {
1551
+ const o = 8 - (r.left + n.left);
1552
+ t.endsWith("start") ? e.left = (e.left || 0) + o : e.right = (e.right || 0) - o;
1553
+ } else if (r.left + n.left + n.width > window.innerWidth - 8) {
1554
+ const o = r.left + n.left + n.width - (window.innerWidth - 8);
1555
+ t.endsWith("start") ? e.left = (e.left || 0) - o : e.right = (e.right || 0) + o;
1556
+ }
1557
+ return e;
1558
+ }
1559
+ function lt(e, t, r, s) {
1560
+ I(() => {
1561
+ if (!e) return;
1562
+ function n(o) {
1563
+ !t.current?.contains(o.target) && !r.current?.contains(o.target) && s();
1564
+ }
1565
+ return document.addEventListener("mousedown", n), () => document.removeEventListener("mousedown", n);
1566
+ }, [e, s, t, r]);
1567
+ }
1568
+ function ct(e) {
1569
+ return e ? "getBoundingClientRect" in e ? e : "current" in e ? e.current : null : null;
1570
+ }
1571
+ function dt(e) {
1572
+ return !e || e === document.documentElement ? {
1573
+ top: 0,
1574
+ bottom: window.innerHeight,
1575
+ left: 0,
1576
+ right: window.innerWidth
1577
+ } : e.getBoundingClientRect();
1578
+ }
1579
+ function ut(e, t) {
1580
+ return {
1581
+ spaceBelow: t.bottom - e.bottom - 8,
1582
+ spaceAbove: e.top - t.top - 8,
1583
+ spaceRight: t.right - e.left - 8,
1584
+ spaceLeft: e.right - t.left - 8
1585
+ };
1586
+ }
1587
+ function ft(e) {
1588
+ const t = e.style.visibility, r = e.style.position, s = e.style.opacity;
1589
+ e.style.visibility = "hidden", e.style.position = "absolute", e.style.opacity = "0";
1590
+ const n = e.getBoundingClientRect();
1591
+ return e.style.visibility = t, e.style.position = r, e.style.opacity = s, n;
1592
+ }
1593
+ function ht(e, t, r, s = "bottom-start", n) {
1594
+ const [o, i] = V({ isReady: !1 }), c = R(() => {
1595
+ if (!e || !t.current) {
1596
+ i({ isReady: !1 });
1597
+ return;
1598
+ }
1599
+ if (!r.current) {
1600
+ const z = setTimeout(() => {
1601
+ i({ isReady: !1 });
1602
+ }, 0);
1603
+ return () => clearTimeout(z);
1604
+ }
1605
+ const d = t.current, h = r.current, g = F(d);
1606
+ if (!rt(d, g)) {
1607
+ i({ isReady: !1 });
1608
+ return;
1609
+ }
1610
+ const u = d.getBoundingClientRect(), b = ct(n), w = dt(b), p = ft(h);
1611
+ if (!p) {
1612
+ i({ isReady: !1 });
1613
+ return;
1614
+ }
1615
+ const { spaceBelow: v, spaceAbove: E, spaceRight: C, spaceLeft: L } = ut(u, w), k = nt(
1616
+ s,
1617
+ p,
1618
+ v,
1619
+ E,
1620
+ C,
1621
+ L
1622
+ ), j = {};
1623
+ if (n) {
1624
+ j.position = "fixed";
1625
+ const z = st(k, u);
1626
+ Object.assign(j, z);
1627
+ const { position: S, maxHeight: P } = ot(
1628
+ z,
1629
+ k,
1630
+ u,
1631
+ p,
1632
+ w
1633
+ );
1634
+ Object.assign(j, S), P !== void 0 && (j.maxHeight = P);
1635
+ } else {
1636
+ j.position = "absolute";
1637
+ const z = at(k, u);
1638
+ Object.assign(j, z);
1639
+ const S = it(
1640
+ z,
1641
+ k,
1642
+ u,
1643
+ p
1644
+ );
1645
+ Object.assign(j, S);
1646
+ }
1647
+ j.isReady = !0, i(j);
1648
+ }, [e, s, t, r, n]);
1649
+ return I(() => {
1650
+ c();
1651
+ }, [c]), I(() => {
1652
+ if (!e || !t.current) return;
1653
+ const d = t.current, h = F(d);
1654
+ let g = !1;
1655
+ const u = () => {
1656
+ g || (requestAnimationFrame(() => {
1657
+ c(), g = !1;
1658
+ }), g = !0);
1659
+ };
1660
+ return h.forEach((b) => {
1661
+ b === document.documentElement ? (window.addEventListener("scroll", u, { passive: !0 }), window.addEventListener("resize", u, { passive: !0 })) : b.addEventListener("scroll", u, { passive: !0 });
1662
+ }), () => {
1663
+ h.forEach((b) => {
1664
+ b === document.documentElement ? (window.removeEventListener("scroll", u), window.removeEventListener("resize", u)) : b.removeEventListener("scroll", u);
1665
+ });
1666
+ };
1667
+ }, [e, c, t]), o;
1668
+ }
1669
+ const Q = B(void 0), mt = Q.Provider, gt = () => {
1670
+ const e = O(Q);
1671
+ if (!e)
1672
+ throw new Error("useMenuProvider must be used within a MenuProvider");
1673
+ return e;
1674
+ }, xt = m(
1675
+ ({ children: e }, t) => /* @__PURE__ */ a.jsx("ul", { ref: t, className: "flex flex-col gap-1", children: e })
1676
+ ), bt = m(
1677
+ ({ children: e, disabled: t, onClick: r, active: s, ...n }, o) => {
1678
+ const { preserve: i, onClose: c } = gt(), d = (h) => {
1679
+ r?.(h), i || c();
1680
+ };
1681
+ return /* @__PURE__ */ a.jsx("li", { ref: o, ...n, children: /* @__PURE__ */ a.jsxs(
1682
+ K,
1683
+ {
1684
+ variant: "ghost",
1685
+ className: f("justify-start w-full gap-2"),
1686
+ disabled: t,
1687
+ onClick: d,
1688
+ children: [
1689
+ e,
1690
+ s && /* @__PURE__ */ a.jsx(
1691
+ N,
1692
+ {
1693
+ as: oe,
1694
+ color: "inherit",
1695
+ className: "ml-auto",
1696
+ size: "sm"
1697
+ }
1698
+ )
1699
+ ]
1700
+ }
1701
+ ) });
1702
+ }
1703
+ );
1704
+ function pt(e) {
1705
+ return {
1706
+ top: e.top,
1707
+ bottom: e.bottom,
1708
+ left: e.left,
1709
+ right: e.right,
1710
+ maxHeight: e.maxHeight,
1711
+ maxWidth: e.maxWidth,
1712
+ position: e.position || "absolute",
1713
+ overflowY: e.maxHeight ? "auto" : void 0,
1714
+ overflowX: e.maxWidth ? "auto" : void 0
1715
+ };
1716
+ }
1717
+ function U(e, t, r, s, n, o) {
1718
+ return /* @__PURE__ */ a.jsx(
1719
+ "div",
1720
+ {
1721
+ id: e,
1722
+ ref: t,
1723
+ className: f(tt({ size: r, open: s })),
1724
+ style: n,
1725
+ role: "menu",
1726
+ "aria-hidden": !s,
1727
+ children: o
1728
+ }
1729
+ );
1730
+ }
1731
+ const wt = ({
1732
+ isOpen: e,
1733
+ onOutsideClick: t,
1734
+ size: r = "md",
1735
+ content: s,
1736
+ children: n,
1737
+ placement: o = "auto",
1738
+ container: i,
1739
+ preserve: c
1740
+ }) => {
1741
+ const d = W(null), h = W(null), g = re();
1742
+ lt(e, h, d, t);
1743
+ const u = ht(
1744
+ e,
1745
+ d,
1746
+ h,
1747
+ o,
1748
+ i || null
1749
+ ), b = e && u.isReady, w = pt(u), p = !u.isReady && U(
1750
+ g,
1751
+ h,
1752
+ r,
1753
+ !1,
1754
+ {
1755
+ position: "absolute",
1756
+ visibility: "hidden",
1757
+ opacity: 0,
1758
+ pointerEvents: "none"
1759
+ },
1760
+ s
1761
+ ), v = u.isReady && U(
1762
+ g,
1763
+ h,
1764
+ r,
1765
+ !!b,
1766
+ w,
1767
+ s
1768
+ ), E = u.position === "fixed" && v ? /* @__PURE__ */ a.jsx(et, { children: v }) : v;
1769
+ return /* @__PURE__ */ a.jsx(
1770
+ mt,
1771
+ {
1772
+ value: { onClose: t, preserve: !!c },
1773
+ children: /* @__PURE__ */ a.jsxs("div", { className: "relative w-fit", children: [
1774
+ ne(n, {
1775
+ // @ts-expect-error: ref is valid for button or forwardRef components
1776
+ ref: d,
1777
+ "aria-haspopup": "menu",
1778
+ "aria-expanded": e,
1779
+ "aria-controls": g
1780
+ }),
1781
+ e && /* @__PURE__ */ a.jsxs(a.Fragment, { children: [
1782
+ p,
1783
+ E
1784
+ ] })
1785
+ ] })
1786
+ }
1787
+ );
1788
+ }, M = Object.assign(wt, {
1789
+ Content: xt,
1790
+ Item: bt
1791
+ }), vt = m(
1792
+ (e, t) => {
1793
+ const {
1794
+ children: r,
1795
+ onOpenChange: s,
1796
+ onClick: n,
1797
+ placement: o,
1798
+ container: i,
1799
+ preserve: c,
1800
+ label: d,
1801
+ ...h
1802
+ } = e ?? {}, [g, u] = V(!1);
1803
+ I(() => {
1804
+ s?.(g);
1805
+ }, [g, s]);
1806
+ const b = () => {
1807
+ u(!1);
1808
+ }, w = (p) => {
1809
+ p.stopPropagation(), u((v) => !v), n?.(p);
1810
+ };
1811
+ return /* @__PURE__ */ a.jsx(
1812
+ M,
1813
+ {
1814
+ isOpen: g,
1815
+ onOutsideClick: b,
1816
+ placement: o,
1817
+ container: i,
1818
+ preserve: c,
1819
+ content: /* @__PURE__ */ a.jsx(M.Content, { children: r }),
1820
+ children: /* @__PURE__ */ a.jsx(K, { ref: t, onClick: w, ...h, children: d })
1821
+ }
1822
+ );
1823
+ }
1824
+ ), ir = Object.assign(vt, {
1825
+ Item: M.Item
1826
+ });
1827
+ function yt(e = "primary") {
1828
+ return e === "primary" || e === "destructive" ? "white" : "inherit";
1829
+ }
1830
+ const jt = x(
1831
+ "inline-flex items-center justify-center font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-[0.98] select-none cursor-pointer",
1832
+ {
1833
+ variants: {
1834
+ variant: {
1835
+ // Primary variant - main action button with coral accent
1836
+ primary: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1837
+ // Ghost variant - subtle, minimal visual weight
1838
+ ghost: "bg-white text-foreground hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1839
+ // Outline variant - bordered, lightweight alternative
1840
+ outline: "border border-border text-foreground bg-white hover:bg-accent-soft focus-visible:ring-accent-soft focus-visible:ring-offset-white transition-all",
1841
+ // Destructive variant - for dangerous or irreversible actions
1842
+ destructive: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-soft focus-visible:ring-offset-white shadow-sm hover:shadow-md"
1843
+ },
1844
+ size: {
1845
+ sm: "h-7 w-7",
1846
+ md: "h-9 w-9",
1847
+ lg: "h-10 w-10"
1848
+ },
1849
+ shape: {
1850
+ rounded: "rounded-md",
1851
+ square: "rounded-sm",
1852
+ circle: "rounded-full"
1853
+ }
1854
+ },
1855
+ defaultVariants: {
1856
+ variant: "primary",
1857
+ size: "md",
1858
+ shape: "rounded"
1859
+ }
1860
+ }
1861
+ ), kt = A.forwardRef(
1862
+ function({
1863
+ className: t,
1864
+ variant: r = "primary",
1865
+ size: s = "md",
1866
+ shape: n = "rounded",
1867
+ disabled: o = !1,
1868
+ busy: i,
1869
+ as: c,
1870
+ "aria-label": d,
1871
+ ...h
1872
+ }, g) {
1873
+ const u = yt(r);
1874
+ return /* @__PURE__ */ a.jsx(
1875
+ "button",
1876
+ {
1877
+ ref: g,
1878
+ type: "button",
1879
+ className: f(
1880
+ jt({
1881
+ variant: r,
1882
+ size: s,
1883
+ shape: n
1884
+ }),
1885
+ t
1886
+ ),
1887
+ disabled: o || i,
1888
+ "aria-disabled": o || i,
1889
+ "aria-label": d,
1890
+ inert: o || i ? !0 : void 0,
1891
+ "aria-busy": i ? !0 : void 0,
1892
+ ...h,
1893
+ children: i ? /* @__PURE__ */ a.jsx(
1894
+ N,
1895
+ {
1896
+ as: G,
1897
+ size: "sm",
1898
+ color: u,
1899
+ className: "animate-spin"
1900
+ }
1901
+ ) : /* @__PURE__ */ a.jsx(N, { as: c, size: "sm", color: u })
1902
+ }
1903
+ );
1904
+ }
1905
+ ), Nt = m(
1906
+ (e, t) => {
1907
+ const {
1908
+ as: r = ie,
1909
+ children: s,
1910
+ onOpenChange: n,
1911
+ onClick: o,
1912
+ placement: i,
1913
+ container: c,
1914
+ preserve: d,
1915
+ ...h
1916
+ } = e ?? {}, [g, u] = V(!1);
1917
+ I(() => {
1918
+ n?.(g);
1919
+ }, [g, n]);
1920
+ const b = () => {
1921
+ u(!1);
1922
+ }, w = (p) => {
1923
+ p.stopPropagation(), u((v) => !v), o?.(p);
1924
+ };
1925
+ return /* @__PURE__ */ a.jsx(
1926
+ M,
1927
+ {
1928
+ isOpen: g,
1929
+ onOutsideClick: b,
1930
+ placement: i,
1931
+ container: c,
1932
+ preserve: d,
1933
+ content: /* @__PURE__ */ a.jsx(M.Content, { children: s }),
1934
+ children: /* @__PURE__ */ a.jsx(kt, { ref: t, as: r, onClick: w, ...h })
1935
+ }
1936
+ );
1937
+ }
1938
+ ), lr = Object.assign(Nt, {
1939
+ Item: M.Item
1940
+ }), Et = x(
1941
+ "flex justify-between transition-colors duration-200 w-full",
1942
+ {
1943
+ variants: {
1944
+ size: {
1945
+ none: "p-0",
1946
+ xs: "p-2 sm:p-2",
1947
+ sm: "p-2 sm:p-3",
1948
+ md: "p-3 sm:p-4",
1949
+ lg: "p-4 sm:p-6",
1950
+ xl: "p-6 sm:p-8"
1951
+ },
1952
+ shape: {
1953
+ rounded: "rounded-lg",
1954
+ square: "rounded-none"
1955
+ },
1956
+ bordered: {
1957
+ true: "border border-border",
1958
+ false: ""
1959
+ },
1960
+ as: {
1961
+ button: "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-light hover:bg-gray-50 cursor-pointer",
1962
+ div: ""
1963
+ }
1964
+ },
1965
+ defaultVariants: {
1966
+ size: "md",
1967
+ shape: "rounded",
1968
+ bordered: !1,
1969
+ as: "button"
1970
+ }
1971
+ }
1972
+ ), Ct = m(
1973
+ ({ children: e }, t) => /* @__PURE__ */ a.jsx(
1974
+ "ul",
1975
+ {
1976
+ ref: t,
1977
+ className: "flex flex-wrap items-center min-w-0 overflow-hidden w-full gap-x-0",
1978
+ children: e
1979
+ }
1980
+ )
1981
+ ), zt = m(
1982
+ ({ children: e }, t) => /* @__PURE__ */ a.jsx(
1983
+ "li",
1984
+ {
1985
+ ref: t,
1986
+ className: "flex items-center min-w-0 flex-shrink-0 after:content-[''] after:inline-block after:mx-1.5 @sm/card:after:mx-2 after:w-1 after:h-1 after:rounded-full after:bg-ghost last:after:hidden after:flex-shrink-0",
1987
+ children: /* @__PURE__ */ a.jsx(y, { as: "span", fontSize: "sm", color: "gray", ellipsis: !0, clamp: 1, children: e })
1988
+ }
1989
+ )
1990
+ ), Vt = m(
1991
+ ({
1992
+ size: e = "md",
1993
+ shape: t = "rounded",
1994
+ avatar: r,
1995
+ title: s,
1996
+ subtitle: n,
1997
+ badge: o,
1998
+ supplementaryInfo: i,
1999
+ bordered: c = !1,
2000
+ as: d = "button",
2001
+ className: h,
2002
+ ...g
2003
+ }, u) => /* @__PURE__ */ a.jsx(
2004
+ d,
2005
+ {
2006
+ ref: u,
2007
+ className: f(
2008
+ Et({ size: e, shape: t, bordered: c, as: d }),
2009
+ h,
2010
+ "@container/card"
2011
+ ),
2012
+ ...g,
2013
+ children: /* @__PURE__ */ a.jsxs("div", { className: "flex items-start gap-3 @sm/card:gap-4 w-full", children: [
2014
+ r && /* @__PURE__ */ a.jsx("div", { className: "flex-shrink-0", children: r }),
2015
+ /* @__PURE__ */ a.jsxs("div", { className: "w-full min-w-0", children: [
2016
+ /* @__PURE__ */ a.jsx("div", { className: "mb-2", children: /* @__PURE__ */ a.jsx("div", { className: "flex items-start justify-between gap-2", children: /* @__PURE__ */ a.jsxs("div", { className: "flex-1 min-w-0", children: [
2017
+ /* @__PURE__ */ a.jsx(
2018
+ y,
2019
+ {
2020
+ as: "h3",
2021
+ fontSize: "base",
2022
+ fontWeight: "semibold",
2023
+ className: "break-words leading-tight",
2024
+ children: s
2025
+ }
2026
+ ),
2027
+ n && /* @__PURE__ */ a.jsx("div", { className: "mt-1", children: typeof n == "string" ? /* @__PURE__ */ a.jsx(y, { as: "p", fontSize: "sm", color: "gray", children: n }) : /* @__PURE__ */ a.jsx("div", { className: "min-w-0 overflow-hidden", children: n }) })
2028
+ ] }) }) }),
2029
+ /* @__PURE__ */ a.jsxs("div", { className: "flex flex-col gap-2 @sm/card:flex-row @sm/card:justify-between @sm/card:items-center", children: [
2030
+ o && /* @__PURE__ */ a.jsx("div", { className: "order-1 @sm/card:order-none overflow-hidden", children: o }),
2031
+ i && /* @__PURE__ */ a.jsx("div", { className: "flex-shrink-0 order-2 @sm/card:order-none @sm/card:ml-auto", children: typeof i == "string" ? /* @__PURE__ */ a.jsx(
2032
+ y,
2033
+ {
2034
+ as: "p",
2035
+ fontSize: "sm",
2036
+ color: "gray",
2037
+ className: "truncate",
2038
+ align: "right",
2039
+ children: i
2040
+ }
2041
+ ) : /* @__PURE__ */ a.jsx("div", { className: "overflow-hidden", children: i }) })
2042
+ ] })
2043
+ ] })
2044
+ ] })
2045
+ }
2046
+ )
2047
+ ), cr = Object.assign(Vt, {
2048
+ List: Ct,
2049
+ ListItem: zt
2050
+ }), It = x(
2051
+ "inline-flex items-center gap-1.5 rounded-full font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none select-none cursor-pointer text-sm leading-none border border-border text-foreground bg-white hover:bg-neutral focus-visible:ring-foreground-light focus-visible:ring-offset-white",
2052
+ {
2053
+ variants: {
2054
+ size: {
2055
+ sm: "h-7 px-3 text-xs",
2056
+ md: "h-8 px-4 text-sm",
2057
+ lg: "h-9 px-5 text-sm"
2058
+ }
2059
+ },
2060
+ defaultVariants: {
2061
+ size: "md"
2062
+ }
2063
+ }
2064
+ ), dr = A.forwardRef(
2065
+ function({ className: t, size: r = "md", disabled: s = !1, children: n, ...o }, i) {
2066
+ return /* @__PURE__ */ a.jsxs(
2067
+ "button",
2068
+ {
2069
+ ref: i,
2070
+ type: "button",
2071
+ className: f(It({ size: r }), t),
2072
+ disabled: s,
2073
+ "aria-disabled": s,
2074
+ "aria-label": `${n}, removable`,
2075
+ inert: s ? !0 : void 0,
2076
+ ...o,
2077
+ children: [
2078
+ /* @__PURE__ */ a.jsx("span", { className: "flex-shrink-0", children: n }),
2079
+ /* @__PURE__ */ a.jsx(N, { as: le, color: "inherit", size: r === "lg" ? "md" : "sm" })
2080
+ ]
2081
+ }
2082
+ );
2083
+ }
2084
+ ), Mt = x("h-px w-full bg-border border-0", {
2085
+ variants: {
2086
+ hasMargin: {
2087
+ true: "mb-4",
2088
+ false: ""
2089
+ }
2090
+ },
2091
+ defaultVariants: {
2092
+ hasMargin: !1
2093
+ }
2094
+ }), ur = m(
2095
+ ({ hasMargin: e = !1, className: t, ...r }, s) => /* @__PURE__ */ a.jsx(
2096
+ "hr",
2097
+ {
2098
+ ref: s,
2099
+ className: f(Mt({ hasMargin: e }), t),
2100
+ ...r
2101
+ }
2102
+ )
2103
+ ), At = x(
2104
+ "flex flex-col items-center justify-center text-center border border-border rounded-lg bg-background",
2105
+ {
2106
+ variants: {
2107
+ spacing: {
2108
+ sm: "py-8 px-4",
2109
+ md: "py-12 px-6",
2110
+ lg: "py-16 px-8"
2111
+ },
2112
+ hasGrayBackground: {
2113
+ true: "bg-neutral-soft",
2114
+ false: ""
2115
+ }
2116
+ },
2117
+ defaultVariants: {
2118
+ spacing: "md",
2119
+ hasGrayBackground: !1
2120
+ }
2121
+ }
2122
+ ), Lt = x(
2123
+ "flex flex-row items-center gap-3 mb-2"
2124
+ ), fr = A.forwardRef(
2125
+ function({ icon: t, title: r, subtitle: s, action: n, className: o, hasGrayBackground: i, ...c }, d) {
2126
+ return /* @__PURE__ */ a.jsxs(
2127
+ "section",
2128
+ {
2129
+ ref: d,
2130
+ className: f(At({ hasGrayBackground: i }), o),
2131
+ role: "status",
2132
+ "aria-label": "No results found",
2133
+ ...c,
2134
+ children: [
2135
+ /* @__PURE__ */ a.jsxs("header", { className: Lt(), children: [
2136
+ /* @__PURE__ */ a.jsx(N, { as: t, size: "lg", color: "ghost", "aria-hidden": "true" }),
2137
+ /* @__PURE__ */ a.jsx(y, { as: "h2", fontSize: "lg", children: r })
2138
+ ] }),
2139
+ s && /* @__PURE__ */ a.jsx(y, { as: "p", align: "center", color: "gray", className: "mb-4", children: s }),
2140
+ n && /* @__PURE__ */ a.jsx("div", { role: "group", "aria-label": "Available actions", children: n })
2141
+ ]
2142
+ }
2143
+ );
2144
+ }
2145
+ ), Z = B(null), St = Z.Provider;
2146
+ function H() {
2147
+ const e = O(Z);
2148
+ if (!e)
2149
+ throw new Error("Table compound components must be used within <Table>");
2150
+ return e;
2151
+ }
2152
+ const T = (e) => {
2153
+ if (e < 1 || e > 12)
2154
+ throw new Error("Column span must be between 1 and 12");
2155
+ switch (e) {
2156
+ case 1:
2157
+ return "grid-cols-1";
2158
+ case 2:
2159
+ return "grid-cols-2";
2160
+ case 3:
2161
+ return "grid-cols-3";
2162
+ case 4:
2163
+ return "grid-cols-4";
2164
+ case 5:
2165
+ return "grid-cols-5";
2166
+ case 6:
2167
+ return "grid-cols-6";
2168
+ case 7:
2169
+ return "grid-cols-7";
2170
+ case 8:
2171
+ return "grid-cols-8";
2172
+ case 9:
2173
+ return "grid-cols-9";
2174
+ case 10:
2175
+ return "grid-cols-10";
2176
+ case 11:
2177
+ return "grid-cols-11";
2178
+ case 12:
2179
+ return "grid-cols-12";
2180
+ default:
2181
+ return "grid-cols-2";
2182
+ }
2183
+ }, Wt = (e) => {
2184
+ if (e < 1 || e > 12)
2185
+ throw new Error("Column span must be between 1 and 12");
2186
+ switch (e) {
2187
+ case 1:
2188
+ return "col-span-1";
2189
+ case 2:
2190
+ return "col-span-2";
2191
+ case 3:
2192
+ return "col-span-3";
2193
+ case 4:
2194
+ return "col-span-4";
2195
+ case 5:
2196
+ return "col-span-5";
2197
+ case 6:
2198
+ return "col-span-6";
2199
+ case 7:
2200
+ return "col-span-7";
2201
+ case 8:
2202
+ return "col-span-8";
2203
+ case 9:
2204
+ return "col-span-9";
2205
+ case 10:
2206
+ return "col-span-10";
2207
+ case 11:
2208
+ return "col-span-11";
2209
+ case 12:
2210
+ return "col-span-12";
2211
+ default:
2212
+ return "col-span-2";
2213
+ }
2214
+ }, Bt = m(
2215
+ ({ children: e, className: t, ...r }, s) => {
2216
+ const { columns: n } = H();
2217
+ return /* @__PURE__ */ a.jsx(
2218
+ "div",
2219
+ {
2220
+ role: "rowgroup",
2221
+ className: f("bg-neutral-soft", t),
2222
+ ...r,
2223
+ ref: s,
2224
+ children: /* @__PURE__ */ a.jsx(
2225
+ "div",
2226
+ {
2227
+ role: "row",
2228
+ className: f("grid gap-4", T(n)),
2229
+ children: e
2230
+ }
2231
+ )
2232
+ }
2233
+ );
2234
+ }
2235
+ ), Ot = m(
2236
+ ({ children: e, className: t, ...r }, s) => /* @__PURE__ */ a.jsx("div", { role: "rowgroup", ref: s, className: f(t), ...r, children: e })
2237
+ ), Ht = m(
2238
+ ({ children: e, className: t, ...r }, s) => {
2239
+ const { columns: n } = H();
2240
+ return /* @__PURE__ */ a.jsx(
2241
+ "div",
2242
+ {
2243
+ role: "rowgroup",
2244
+ className: f("bg-neutral-soft", t),
2245
+ ...r,
2246
+ ref: s,
2247
+ children: /* @__PURE__ */ a.jsx(
2248
+ "div",
2249
+ {
2250
+ role: "row",
2251
+ className: f("grid gap-4", T(n)),
2252
+ children: e
2253
+ }
2254
+ )
2255
+ }
2256
+ );
2257
+ }
2258
+ ), Tt = m(
2259
+ ({ children: e, className: t, ...r }, s) => {
2260
+ const { columns: n } = H();
2261
+ return /* @__PURE__ */ a.jsx(
2262
+ "div",
2263
+ {
2264
+ role: "row",
2265
+ className: f(
2266
+ "grid gap-4",
2267
+ T(n),
2268
+ "border-b border-border last:border-0",
2269
+ t
2270
+ ),
2271
+ ref: s,
2272
+ ...r,
2273
+ children: e
2274
+ }
2275
+ );
2276
+ }
2277
+ ), ee = m(
2278
+ ({ as: e = "td", span: t, align: r = "left", children: s, className: n, ...o }, i) => {
2279
+ const c = e === "th" ? "columnheader" : "cell";
2280
+ let d = "text-left";
2281
+ return r === "center" ? d = "text-center" : r === "right" && (d = "text-right"), /* @__PURE__ */ a.jsx(
2282
+ "div",
2283
+ {
2284
+ ref: i,
2285
+ role: c,
2286
+ className: f(
2287
+ "px-4 py-2",
2288
+ "[&:not(:last-child)]:border-r [&:not(:last-child)]:border-border",
2289
+ Wt(t),
2290
+ d,
2291
+ "truncate overflow-hidden whitespace-nowrap",
2292
+ n
2293
+ ),
2294
+ ...o,
2295
+ children: s
2296
+ }
2297
+ );
2298
+ }
2299
+ ), qt = m(
2300
+ (e, t) => /* @__PURE__ */ a.jsx(
2301
+ ee,
2302
+ {
2303
+ ...e,
2304
+ as: "td",
2305
+ ref: t,
2306
+ className: f(
2307
+ "truncate overflow-hidden whitespace-nowrap",
2308
+ e.className
2309
+ )
2310
+ }
2311
+ )
2312
+ ), Pt = m(
2313
+ (e, t) => /* @__PURE__ */ a.jsx(
2314
+ ee,
2315
+ {
2316
+ ...e,
2317
+ as: "th",
2318
+ ref: t,
2319
+ className: f(
2320
+ "truncate overflow-hidden whitespace-nowrap",
2321
+ e.className
2322
+ )
2323
+ }
2324
+ )
2325
+ ), _t = m(
2326
+ ({ children: e, className: t, columns: r = 12, ...s }, n) => /* @__PURE__ */ a.jsx(St, { value: { columns: r }, children: /* @__PURE__ */ a.jsx(
2327
+ "div",
2328
+ {
2329
+ ref: n,
2330
+ role: "table",
2331
+ className: f(
2332
+ // Versaur design system: border, background, shadow, rounded, spacing
2333
+ "w-full overflow-x-auto border border-border bg-background rounded-lg ",
2334
+ "text-foreground",
2335
+ "sm:rounded-xl",
2336
+ "transition-colors",
2337
+ t
2338
+ ),
2339
+ ...s,
2340
+ children: e
2341
+ }
2342
+ ) })
2343
+ ), hr = Object.assign(_t, {
2344
+ Header: Bt,
2345
+ HeaderItem: Pt,
2346
+ Body: Ot,
2347
+ Footer: Ht,
2348
+ Row: Tt,
2349
+ RowItem: qt
2350
+ }), Ft = x(
2351
+ // Base classes
2352
+ "block transition-colors duration-200",
2353
+ {
2354
+ variants: {
2355
+ variant: {
2356
+ white: "bg-white border border-border",
2357
+ neutral: "bg-neutral border border-gray-200",
2358
+ primary: "bg-primary-soft border border-primary",
2359
+ secondary: "bg-secondary-soft border border-secondary",
2360
+ tertiary: "bg-tertiary-soft border border-tertiary",
2361
+ ghost: "bg-transparent border border-ghost",
2362
+ success: "bg-success-soft border border-success",
2363
+ info: "bg-info-soft border border-info",
2364
+ warning: "bg-warning-soft border border-warning",
2365
+ danger: "bg-danger-soft border border-danger"
2366
+ },
2367
+ size: {
2368
+ xs: "p-2",
2369
+ sm: "p-3",
2370
+ md: "p-4",
2371
+ lg: "p-6",
2372
+ xl: "p-8"
2373
+ },
2374
+ shape: {
2375
+ rounded: "rounded-lg",
2376
+ square: "rounded-none"
2377
+ }
2378
+ },
2379
+ defaultVariants: {
2380
+ variant: "white",
2381
+ size: "md",
2382
+ shape: "rounded"
2383
+ }
2384
+ }
2385
+ ), mr = m(
2386
+ ({ variant: e = "white", size: t = "md", shape: r = "rounded", className: s, ...n }, o) => /* @__PURE__ */ a.jsx(
2387
+ "div",
2388
+ {
2389
+ ref: o,
2390
+ className: f(Ft({ variant: e, size: t, shape: r }), s),
2391
+ ...n
2392
+ }
2393
+ )
2394
+ );
2395
+ function Ut({ src: e }) {
2396
+ const [t, r] = V(!1), [s, n] = V(!1), o = W(!1), i = () => {
2397
+ r(!0);
2398
+ }, c = () => {
2399
+ n(!0);
2400
+ };
2401
+ return I(() => {
2402
+ if (!e) return;
2403
+ const d = new Image();
2404
+ return d.src = e, d.onload = () => {
2405
+ o.current || r(!0);
2406
+ }, d.onerror = () => {
2407
+ o.current || n(!0);
2408
+ }, () => {
2409
+ o.current = !0;
2410
+ };
2411
+ }, [e]), {
2412
+ loaded: t,
2413
+ errored: s,
2414
+ handleLoad: i,
2415
+ handleError: c
2416
+ };
2417
+ }
2418
+ const Rt = x("block object-cover", {
2419
+ variants: {
2420
+ position: {
2421
+ cover: "object-cover",
2422
+ contain: "object-contain",
2423
+ center: "object-center",
2424
+ top: "object-top",
2425
+ bottom: "object-bottom",
2426
+ left: "object-left",
2427
+ right: "object-right",
2428
+ none: ""
2429
+ },
2430
+ size: {
2431
+ sm: "w-16 h-16",
2432
+ md: "w-32 h-32",
2433
+ lg: "w-48 h-48",
2434
+ full: "w-full h-full",
2435
+ auto: ""
2436
+ },
2437
+ shape: {
2438
+ rectangle: "rounded",
2439
+ square: "aspect-square rounded",
2440
+ circle: "rounded-full aspect-square"
2441
+ }
2442
+ },
2443
+ defaultVariants: {
2444
+ position: "cover",
2445
+ size: "auto",
2446
+ shape: "rectangle"
2447
+ }
2448
+ }), te = x(
2449
+ "flex items-center justify-center bg-neutral-soft text-ghost border border-border",
2450
+ {
2451
+ variants: {
2452
+ shape: {
2453
+ rectangle: "rounded",
2454
+ square: "aspect-square rounded",
2455
+ circle: "rounded-full aspect-square"
2456
+ },
2457
+ size: {
2458
+ sm: "w-16 h-16",
2459
+ md: "w-32 h-32",
2460
+ lg: "w-48 h-48",
2461
+ full: "w-full h-full",
2462
+ auto: "w-full h-full"
2463
+ }
2464
+ },
2465
+ defaultVariants: {
2466
+ shape: "rectangle",
2467
+ size: "auto"
2468
+ }
2469
+ }
2470
+ );
2471
+ function Gt({
2472
+ className: e,
2473
+ shape: t,
2474
+ size: r,
2475
+ height: s,
2476
+ width: n
2477
+ }) {
2478
+ return /* @__PURE__ */ a.jsx(
2479
+ ue,
2480
+ {
2481
+ className: f(te({ shape: t, size: r }), e),
2482
+ style: { height: s, width: n }
2483
+ }
2484
+ );
2485
+ }
2486
+ function $t({
2487
+ alt: e,
2488
+ width: t,
2489
+ height: r,
2490
+ className: s,
2491
+ style: n,
2492
+ shape: o,
2493
+ size: i
2494
+ }) {
2495
+ return /* @__PURE__ */ a.jsxs(
2496
+ "div",
2497
+ {
2498
+ className: te({ shape: o, size: i, className: s }),
2499
+ style: { width: t, height: r, ...n },
2500
+ "aria-label": e,
2501
+ role: "img",
2502
+ children: [
2503
+ /* @__PURE__ */ a.jsx(
2504
+ ce,
2505
+ {
2506
+ size: 32,
2507
+ style: { opacity: 0.5, marginRight: 4 },
2508
+ "aria-hidden": "true"
2509
+ }
2510
+ ),
2511
+ /* @__PURE__ */ a.jsx("span", { style: { opacity: 0.7 }, children: e })
2512
+ ]
2513
+ }
2514
+ );
2515
+ }
2516
+ const q = m(
2517
+ ({
2518
+ src: e,
2519
+ alt: t,
2520
+ onLoad: r,
2521
+ onError: s,
2522
+ width: n,
2523
+ height: o,
2524
+ loading: i = "lazy",
2525
+ position: c = "cover",
2526
+ size: d = "auto",
2527
+ shape: h,
2528
+ className: g,
2529
+ ...u
2530
+ }, b) => {
2531
+ const { loaded: w, errored: p, handleLoad: v, handleError: E } = Ut({
2532
+ src: e
2533
+ }), C = typeof n == "number" ? n : Number(n), L = typeof o == "number" ? o : Number(o);
2534
+ return !w && !p ? /* @__PURE__ */ a.jsx(
2535
+ Gt,
2536
+ {
2537
+ shape: h,
2538
+ width: C,
2539
+ height: L
2540
+ }
2541
+ ) : p ? /* @__PURE__ */ a.jsx(
2542
+ $t,
2543
+ {
2544
+ shape: h,
2545
+ alt: t,
2546
+ width: C,
2547
+ height: L
2548
+ }
2549
+ ) : /* @__PURE__ */ a.jsx(
2550
+ "img",
2551
+ {
2552
+ ref: b,
2553
+ src: e,
2554
+ alt: t,
2555
+ width: C,
2556
+ height: L,
2557
+ loading: i,
2558
+ className: f(
2559
+ Rt({
2560
+ position: c,
2561
+ size: d,
2562
+ shape: h
2563
+ }),
2564
+ g
2565
+ ),
2566
+ onLoad: (k) => {
2567
+ v(), r?.(k);
2568
+ },
2569
+ onError: (k) => {
2570
+ E(), s?.(k);
2571
+ },
2572
+ ...u
2573
+ }
2574
+ );
2575
+ }
2576
+ ), gr = m((e, t) => /* @__PURE__ */ a.jsx(q, { ref: t, ...e, shape: "circle" })), xr = m((e, t) => /* @__PURE__ */ a.jsx(q, { ref: t, ...e, shape: "square" })), br = m((e, t) => /* @__PURE__ */ a.jsx(q, { ref: t, ...e, shape: "rectangle" }));
2577
+ export {
2578
+ Qt as A,
2579
+ sr as B,
2580
+ cr as C,
2581
+ dr as F,
2582
+ X as H,
2583
+ N as I,
2584
+ M,
2585
+ fr as N,
2586
+ et as O,
2587
+ hr as T,
2588
+ Zt as a,
2589
+ er as b,
2590
+ tr as c,
2591
+ Le as d,
2592
+ rr as e,
2593
+ nr as f,
2594
+ ar as g,
2595
+ K as h,
2596
+ or as i,
2597
+ ir as j,
2598
+ lr as k,
2599
+ kt as l,
2600
+ ur as m,
2601
+ y as n,
2602
+ mr as o,
2603
+ gr as p,
2604
+ xr as q,
2605
+ br as r,
2606
+ q as s
2607
+ };