@dimasbaguspm/versaur 0.0.44 → 0.0.46

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 (43) hide show
  1. package/dist/js/forms/index.js +18 -20
  2. package/dist/js/{image-rectangle-DjuCYHbk.js → image-rectangle-B4nXH4Q5.js} +990 -1158
  3. package/dist/js/index.js +60 -64
  4. package/dist/js/layouts/index.js +1 -1
  5. package/dist/js/navigation/index.js +1 -1
  6. package/dist/js/overlays/index.js +5 -6
  7. package/dist/js/primitive/index.js +25 -26
  8. package/dist/js/{tabs-CiZ2DPDD.js → tabs-BAzThVka.js} +1 -1
  9. package/dist/js/{bottom-sheet-input-C9Ht9cxQ.js → time-picker-input-DrZ4dyEB.js} +875 -800
  10. package/dist/js/tooltip-D6fUigp2.js +691 -0
  11. package/dist/js/{top-bar-CKo6k1eW.js → top-bar-Dx0JVXms.js} +1 -1
  12. package/dist/types/forms/index.d.ts +7 -9
  13. package/dist/types/forms/pin-field/index.d.ts +2 -0
  14. package/dist/types/forms/pin-field/pin-field.d.ts +9 -0
  15. package/dist/types/forms/pin-field/types.d.ts +86 -0
  16. package/dist/types/primitive/action-card/action-card.atoms.d.ts +18 -0
  17. package/dist/types/primitive/action-card/action-card.d.ts +4 -0
  18. package/dist/types/primitive/action-card/index.d.ts +2 -0
  19. package/dist/types/primitive/action-card/types.d.ts +57 -0
  20. package/dist/types/primitive/brand/types.d.ts +1 -1
  21. package/dist/types/primitive/index.d.ts +1 -2
  22. package/dist/utils/enforce-subpath-import.js +2 -5
  23. package/package.json +1 -1
  24. package/dist/js/bottom-sheet-BSN0J8ji.js +0 -615
  25. package/dist/js/tooltip-nOXyn9AX.js +0 -81
  26. package/dist/types/forms/bottom-sheet-input/bottom-sheet-input.d.ts +0 -7
  27. package/dist/types/forms/bottom-sheet-input/index.d.ts +0 -2
  28. package/dist/types/forms/bottom-sheet-input/types.d.ts +0 -17
  29. package/dist/types/forms/drawer-input/drawer-input.d.ts +0 -6
  30. package/dist/types/forms/drawer-input/index.d.ts +0 -2
  31. package/dist/types/forms/drawer-input/types.d.ts +0 -18
  32. package/dist/types/forms/modal-input/index.d.ts +0 -2
  33. package/dist/types/forms/modal-input/modal-input.d.ts +0 -6
  34. package/dist/types/forms/modal-input/types.d.ts +0 -18
  35. package/dist/types/primitive/button-float/button-float.d.ts +0 -8
  36. package/dist/types/primitive/button-float/index.d.ts +0 -2
  37. package/dist/types/primitive/button-float/types.d.ts +0 -31
  38. package/dist/types/primitive/button-float/use-floating-position.d.ts +0 -12
  39. package/dist/types/primitive/calculator/calculator.atoms.d.ts +0 -2
  40. package/dist/types/primitive/calculator/calculator.d.ts +0 -2
  41. package/dist/types/primitive/calculator/index.d.ts +0 -2
  42. package/dist/types/primitive/calculator/types.d.ts +0 -29
  43. package/dist/types/primitive/calculator/use-calculator.d.ts +0 -11
@@ -1,19 +1,19 @@
1
- import { c as cva, j as jsxRuntimeExports, a as cn } from "./index-DOdDlCoL.js";
2
- import * as React from "react";
3
- import React__default, { createContext, useContext, forwardRef, useState, useEffect, useCallback, useRef, useId, cloneElement } from "react";
4
- import { ChevronDown, CheckIcon, EllipsisVerticalIcon, X, XIcon, ImageOff } from "lucide-react";
5
- import ReactDOM from "react-dom";
6
- import { S as Skeleton } from "./skeleton-BNZyaRjo.js";
7
- const AccordionContext = createContext(
1
+ import { c as w, j as r, a as u } from "./index-DOdDlCoL.js";
2
+ import * as a from "react";
3
+ import H, { createContext as P, useContext as F, forwardRef as f, useState as L, useEffect as A, useCallback as J, useRef as _, useId as le, cloneElement as ce } from "react";
4
+ import { ChevronDown as de, ChevronRight as ge, CheckIcon as he, EllipsisVerticalIcon as ue, XIcon as fe, ImageOff as be } from "lucide-react";
5
+ import me from "react-dom";
6
+ import { S as we } from "./skeleton-BNZyaRjo.js";
7
+ const K = P(
8
8
  null
9
- ), useAccordionContext = () => {
10
- const e = useContext(AccordionContext);
9
+ ), Q = () => {
10
+ const e = F(K);
11
11
  if (!e)
12
12
  throw new Error(
13
13
  "Accordion compound components must be used within Accordion"
14
14
  );
15
15
  return e;
16
- }, accordionVariants = cva(
16
+ }, ve = w(
17
17
  "border-b border-border bg-background overflow-hidden",
18
18
  {
19
19
  variants: {
@@ -26,7 +26,7 @@ const AccordionContext = createContext(
26
26
  disabled: !1
27
27
  }
28
28
  }
29
- ), accordionHeaderVariants = cva(
29
+ ), xe = w(
30
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
31
  {
32
32
  variants: {
@@ -44,7 +44,7 @@ const AccordionContext = createContext(
44
44
  isOpen: !1
45
45
  }
46
46
  }
47
- ), accordionContentVariants = cva(
47
+ ), pe = w(
48
48
  "overflow-hidden transition-all duration-300",
49
49
  {
50
50
  variants: {
@@ -57,7 +57,7 @@ const AccordionContext = createContext(
57
57
  isOpen: !1
58
58
  }
59
59
  }
60
- ), accordionContentInnerVariants = cva("p-4 pt-0"), accordionIconVariants = cva("transition-transform duration-200", {
60
+ ), ye = w("p-4 pt-0"), je = w("transition-transform duration-200", {
61
61
  variants: {
62
62
  isOpen: {
63
63
  true: "rotate-180",
@@ -67,7 +67,7 @@ const AccordionContext = createContext(
67
67
  defaultVariants: {
68
68
  isOpen: !1
69
69
  }
70
- }), headingVariants = cva("", {
70
+ }), ke = w("", {
71
71
  variants: {
72
72
  color: {
73
73
  primary: "text-primary",
@@ -121,7 +121,7 @@ const AccordionContext = createContext(
121
121
  level: {
122
122
  1: "font-bold text-2xl leading-loose",
123
123
  2: "font-semibold text-xl leading-relaxed",
124
- 3: "font-medium text-base leading-relaxed",
124
+ 3: "font-semibold text-lg leading-relaxed",
125
125
  4: "font-bold text-sm leading-normal",
126
126
  5: "font-semibold text-sm leading-normal",
127
127
  6: "font-medium text-xs leading-normal"
@@ -138,48 +138,48 @@ const AccordionContext = createContext(
138
138
  ellipsis: !1,
139
139
  level: 1
140
140
  }
141
- }), Heading = forwardRef(
141
+ }), Z = f(
142
142
  ({
143
143
  level: e = 3,
144
- color: t = "ghost",
145
- hasUnderline: r = !1,
146
- isCapitalize: i = !1,
144
+ color: t = "black",
145
+ hasUnderline: i = !1,
146
+ isCapitalize: n = !1,
147
147
  hasMargin: s = !1,
148
- align: n = "left",
149
- italic: a = !1,
150
- clamp: l = "none",
151
- ellipsis: u = !1,
152
- className: c,
153
- children: f,
154
- ...o
155
- }, d) => {
156
- const h = `h${e}`;
157
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
158
- h,
159
- {
160
- ref: d,
161
- className: cn(
162
- headingVariants({
148
+ align: o = "left",
149
+ italic: l = !1,
150
+ clamp: d = "none",
151
+ ellipsis: g = !1,
152
+ className: h,
153
+ children: m,
154
+ ...c
155
+ }, v) => {
156
+ const y = `h${e}`;
157
+ return /* @__PURE__ */ r.jsx(
158
+ y,
159
+ {
160
+ ref: v,
161
+ className: u(
162
+ ke({
163
163
  color: t,
164
- hasUnderline: r,
165
- isCapitalize: i,
164
+ hasUnderline: i,
165
+ isCapitalize: n,
166
166
  hasMargin: s,
167
- align: n,
168
- italic: a,
169
- clamp: l,
170
- ellipsis: u,
167
+ align: o,
168
+ italic: l,
169
+ clamp: d,
170
+ ellipsis: g,
171
171
  level: e
172
172
  }),
173
- c
173
+ h
174
174
  ),
175
- ...o,
176
- children: f
175
+ ...c,
176
+ children: m
177
177
  }
178
178
  );
179
179
  }
180
180
  );
181
- Heading.displayName = "Heading";
182
- const iconVariants = cva("inline-flex items-center justify-center", {
181
+ Z.displayName = "Heading";
182
+ const Ne = w("inline-flex items-center justify-center", {
183
183
  variants: {
184
184
  size: {
185
185
  xs: "w-3 h-3",
@@ -209,116 +209,366 @@ const iconVariants = cva("inline-flex items-center justify-center", {
209
209
  size: "md",
210
210
  color: "primary"
211
211
  }
212
- }), Icon = React__default.forwardRef(function({ as: t, color: r = "primary", size: i = "md", className: s, ...n }, a) {
213
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
212
+ }), R = H.forwardRef(function({ as: t, color: i = "primary", size: n = "md", className: s, ...o }, l) {
213
+ return /* @__PURE__ */ r.jsx(
214
214
  t,
215
215
  {
216
- ref: a,
217
- className: iconVariants({ color: r, size: i, className: s }),
218
- ...n
216
+ ref: l,
217
+ className: Ne({ color: i, size: n, className: s }),
218
+ ...o
219
219
  }
220
220
  );
221
- }), AccordionTitle = forwardRef(function({ className: t, children: r, ...i }, s) {
222
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
223
- Heading,
221
+ }), Ee = f(function({ className: t, children: i, ...n }, s) {
222
+ return /* @__PURE__ */ r.jsx(
223
+ Z,
224
224
  {
225
225
  ref: s,
226
226
  level: 4,
227
- className: cn("font-medium", t),
228
- ...i,
227
+ className: u("font-medium", t),
228
+ ...n,
229
229
  color: "black",
230
- children: r
230
+ children: i
231
231
  }
232
232
  );
233
- }), AccordionContent = forwardRef(function({ className: t, children: r, ...i }, s) {
234
- const { isOpen: n } = useAccordionContext();
235
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
233
+ }), Ce = f(function({ className: t, children: i, ...n }, s) {
234
+ const { isOpen: o } = Q();
235
+ return /* @__PURE__ */ r.jsx(
236
236
  "div",
237
237
  {
238
238
  ref: s,
239
- className: cn(accordionContentVariants({ isOpen: n }), t),
240
- ...i,
241
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: accordionContentInnerVariants(), children: r })
239
+ className: u(pe({ isOpen: o }), t),
240
+ ...n,
241
+ children: /* @__PURE__ */ r.jsx("div", { className: ye(), children: i })
242
242
  }
243
243
  );
244
- }), AccordionIcon = forwardRef(function({ as: t, ...r }, i) {
245
- const { isOpen: s } = useAccordionContext();
246
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
247
- Icon,
244
+ }), ee = f(function({ as: t, ...i }, n) {
245
+ const { isOpen: s } = Q();
246
+ return /* @__PURE__ */ r.jsx(
247
+ R,
248
248
  {
249
- ref: i,
249
+ ref: n,
250
250
  as: t,
251
251
  color: "ghost",
252
252
  size: "sm",
253
- className: accordionIconVariants({ isOpen: s }),
254
- ...r
253
+ className: je({ isOpen: s }),
254
+ ...i
255
255
  }
256
256
  );
257
- }), AccordionRoot = forwardRef(
257
+ }), ze = f(
258
258
  function({
259
259
  title: t,
260
- subtitle: r,
261
- isDefaultOpen: i = !1,
260
+ subtitle: i,
261
+ isDefaultOpen: n = !1,
262
262
  disabled: s = !1,
263
- hasMargin: n,
264
- className: a,
265
- children: l,
266
- ...u
267
- }, c) {
268
- const [f, o] = useState(i), d = () => {
269
- s || o((m) => !m);
270
- }, h = {
271
- isOpen: f,
272
- toggle: d,
263
+ hasMargin: o,
264
+ className: l,
265
+ children: d,
266
+ ...g
267
+ }, h) {
268
+ const [m, c] = L(n), v = () => {
269
+ s || c((j) => !j);
270
+ }, y = {
271
+ isOpen: m,
272
+ toggle: v,
273
273
  disabled: s
274
274
  };
275
- return /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionContext.Provider, { value: h, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
275
+ return /* @__PURE__ */ r.jsx(K.Provider, { value: y, children: /* @__PURE__ */ r.jsxs(
276
276
  "div",
277
277
  {
278
- ref: c,
279
- className: cn(
280
- accordionVariants({ disabled: s }),
281
- a,
282
- n && "mb-4"
278
+ ref: h,
279
+ className: u(
280
+ ve({ disabled: s }),
281
+ l,
282
+ o && "mb-4"
283
283
  ),
284
- ...u,
284
+ ...g,
285
285
  children: [
286
- /* @__PURE__ */ jsxRuntimeExports.jsx(
286
+ /* @__PURE__ */ r.jsx(
287
287
  "div",
288
288
  {
289
289
  role: "button",
290
- className: accordionHeaderVariants({ disabled: s, isOpen: f }),
291
- onClick: d,
290
+ className: xe({ disabled: s, isOpen: m }),
291
+ onClick: v,
292
292
  "aria-disabled": s,
293
- "aria-expanded": f,
294
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between w-full gap-2", children: [
295
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 flex-grow", children: [
296
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: t }),
297
- r && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0", children: r })
293
+ "aria-expanded": m,
294
+ children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between w-full gap-2", children: [
295
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-3 flex-grow", children: [
296
+ /* @__PURE__ */ r.jsx("div", { className: "flex-1", children: t }),
297
+ i && /* @__PURE__ */ r.jsx("div", { className: "flex-shrink-0", children: i })
298
298
  ] }),
299
- /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionIcon, { as: ChevronDown })
299
+ /* @__PURE__ */ r.jsx(ee, { as: de })
300
300
  ] })
301
301
  }
302
302
  ),
303
- /* @__PURE__ */ jsxRuntimeExports.jsx(
303
+ /* @__PURE__ */ r.jsx(
304
304
  "div",
305
305
  {
306
- className: cn(
306
+ className: u(
307
307
  "overflow-hidden transition-all duration-300",
308
- f ? "max-h-screen opacity-100" : "max-h-0 opacity-0"
308
+ m ? "max-h-screen opacity-100" : "max-h-0 opacity-0"
309
309
  ),
310
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-4 pt-2", children: l })
310
+ children: /* @__PURE__ */ r.jsx("div", { className: "p-4 pt-2", children: d })
311
311
  }
312
312
  )
313
313
  ]
314
314
  }
315
315
  ) });
316
316
  }
317
- ), Accordion = Object.assign(AccordionRoot, {
318
- Title: AccordionTitle,
319
- Content: AccordionContent,
320
- Icon: AccordionIcon
321
- }), alertVariants = cva(
317
+ ), $t = Object.assign(ze, {
318
+ Title: Ee,
319
+ Content: Ce,
320
+ Icon: ee
321
+ }), Ve = w(
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
+ ), Ie = w(
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
+ ), Le = w(
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
+ ), Ae = w("", {
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
+ }), z = f(
438
+ ({
439
+ as: e = "span",
440
+ color: t = "ghost",
441
+ hasUnderline: i = !1,
442
+ isCapitalize: n = !1,
443
+ align: s = "left",
444
+ italic: o = !1,
445
+ clamp: l = "none",
446
+ ellipsis: d = !1,
447
+ fontSize: g,
448
+ fontWeight: h,
449
+ className: m,
450
+ children: c,
451
+ ...v
452
+ }, y) => {
453
+ const C = [
454
+ "h1",
455
+ "h2",
456
+ "h3",
457
+ "h4",
458
+ "h5",
459
+ "h6",
460
+ "p",
461
+ "span",
462
+ "label"
463
+ ].includes(e) ? e : "span", N = g ? `text-${g}` : "", I = h ? `font-${h}` : "";
464
+ return /* @__PURE__ */ r.jsx(
465
+ e,
466
+ {
467
+ ref: y,
468
+ className: u(
469
+ Ae({
470
+ color: t,
471
+ hasUnderline: i,
472
+ isCapitalize: n,
473
+ align: s,
474
+ italic: o,
475
+ clamp: l,
476
+ ellipsis: d,
477
+ // @ts-expect-error - `as` is not a valid variant
478
+ as: C
479
+ }),
480
+ N,
481
+ I,
482
+ m
483
+ ),
484
+ ...v,
485
+ children: c
486
+ }
487
+ );
488
+ }
489
+ ), Me = f(
490
+ ({ children: e, className: t }, i) => /* @__PURE__ */ r.jsx(
491
+ "div",
492
+ {
493
+ ref: i,
494
+ className: u(
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
+ ), Re = f(
504
+ ({
505
+ size: e = "md",
506
+ icon: t,
507
+ title: i,
508
+ subtitle: n,
509
+ badge: s,
510
+ showArrow: o = !0,
511
+ as: l = "button",
512
+ className: d,
513
+ ...g
514
+ }, h) => /* @__PURE__ */ r.jsxs(
515
+ l,
516
+ {
517
+ ref: h,
518
+ className: u(Ve({ size: e, as: l }), d),
519
+ ...g,
520
+ children: [
521
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-4 flex-1", children: [
522
+ t && /* @__PURE__ */ r.jsx("div", { className: u(Ie({ size: e })), children: t }),
523
+ /* @__PURE__ */ r.jsxs("div", { className: "flex-1", children: [
524
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-3 mb-1", children: [
525
+ /* @__PURE__ */ r.jsx(
526
+ z,
527
+ {
528
+ as: "span",
529
+ fontSize: e === "sm" ? "sm" : "base",
530
+ fontWeight: "semibold",
531
+ color: "ghost",
532
+ className: "text-left leading-normal",
533
+ children: i
534
+ }
535
+ ),
536
+ s && /* @__PURE__ */ r.jsx(
537
+ "div",
538
+ {
539
+ className: "flex flex-wrap items-center flex-row justify-start gap-3",
540
+ role: "group",
541
+ children: s
542
+ }
543
+ )
544
+ ] }),
545
+ n && /* @__PURE__ */ r.jsx(
546
+ z,
547
+ {
548
+ as: "p",
549
+ fontSize: "sm",
550
+ color: "gray",
551
+ className: "text-left leading-normal",
552
+ children: n
553
+ }
554
+ )
555
+ ] })
556
+ ] }),
557
+ o && /* @__PURE__ */ r.jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ r.jsx(
558
+ R,
559
+ {
560
+ as: ge,
561
+ className: u(Le({ size: e })),
562
+ color: "ghost",
563
+ "aria-hidden": "true"
564
+ }
565
+ ) })
566
+ ]
567
+ }
568
+ )
569
+ ), Xt = Object.assign(Re, {
570
+ Group: Me
571
+ }), Se = w(
322
572
  "relative flex items-center gap-2 rounded-md p-2 text-sm transition-all duration-200",
323
573
  {
324
574
  variants: {
@@ -439,7 +689,7 @@ const iconVariants = cva("inline-flex items-center justify-center", {
439
689
  color: "neutral"
440
690
  }
441
691
  }
442
- ), alertIconVariants = cva(
692
+ ), We = w(
443
693
  "flex-shrink-0 flex justify-center items-center ",
444
694
  {
445
695
  variants: {
@@ -453,32 +703,32 @@ const iconVariants = cva("inline-flex items-center justify-center", {
453
703
  size: "md"
454
704
  }
455
705
  }
456
- ), AlertIcon = forwardRef(
457
- ({ className: e, children: t, ...r }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: i, className: cn(alertIconVariants(), e), ...r, children: t })
458
- ), AlertRoot = forwardRef(
706
+ ), te = f(
707
+ ({ className: e, children: t, ...i }, n) => /* @__PURE__ */ r.jsx("div", { ref: n, className: u(We(), e), ...i, children: t })
708
+ ), Be = f(
459
709
  ({
460
710
  variant: e = "default",
461
711
  color: t = "neutral",
462
- icon: r,
463
- className: i,
712
+ icon: i,
713
+ className: n,
464
714
  children: s,
465
- ...n
466
- }, a) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
715
+ ...o
716
+ }, l) => /* @__PURE__ */ r.jsxs(
467
717
  "div",
468
718
  {
469
- ref: a,
719
+ ref: l,
470
720
  role: "alert",
471
- className: cn(alertVariants({ variant: e, color: t }), i),
472
- ...n,
721
+ className: u(Se({ variant: e, color: t }), n),
722
+ ...o,
473
723
  children: [
474
- r && /* @__PURE__ */ jsxRuntimeExports.jsx(AlertIcon, { children: r }),
475
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: s })
724
+ i && /* @__PURE__ */ r.jsx(te, { children: i }),
725
+ /* @__PURE__ */ r.jsx("div", { className: "flex-1", children: s })
476
726
  ]
477
727
  }
478
728
  )
479
- ), Alert = Object.assign(AlertRoot, {
480
- Icon: AlertIcon
481
- }), anchorVariants = cva(
729
+ ), Yt = Object.assign(Be, {
730
+ Icon: te
731
+ }), Oe = w(
482
732
  [
483
733
  "inline-flex items-center transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
484
734
  // pseudo selectors for anchor
@@ -535,159 +785,38 @@ const iconVariants = cva("inline-flex items-center justify-center", {
535
785
  quiet: !1
536
786
  }
537
787
  }
538
- ), Anchor = forwardRef(
788
+ ), Dt = f(
539
789
  ({
540
790
  children: e,
541
791
  className: t,
542
- color: r = "primary",
543
- fontSize: i = "base",
792
+ color: i = "primary",
793
+ fontSize: n = "base",
544
794
  fontWeight: s = "medium",
545
- quiet: n = !1,
546
- ...a
547
- }, l) => /* @__PURE__ */ jsxRuntimeExports.jsx(
795
+ quiet: o = !1,
796
+ ...l
797
+ }, d) => /* @__PURE__ */ r.jsx(
548
798
  "a",
549
799
  {
550
- ref: l,
551
- className: cn(
552
- anchorVariants({ color: r, fontSize: i, fontWeight: s, quiet: n }),
800
+ ref: d,
801
+ className: u(
802
+ Oe({ color: i, fontSize: n, fontWeight: s, quiet: o }),
553
803
  t
554
804
  ),
555
- ...a,
805
+ ...l,
556
806
  children: e
557
807
  }
558
808
  )
559
- ), textVariants = cva("", {
560
- variants: {
561
- color: {
562
- primary: "text-primary",
563
- secondary: "text-secondary",
564
- tertiary: "text-tertiary",
565
- ghost: "text-ghost",
566
- neutral: "text-ghost",
567
- success: "text-success",
568
- info: "text-info",
569
- warning: "text-warning",
570
- danger: "text-danger",
571
- inherit: "",
572
- gray: "text-gray-500",
573
- black: "text-black",
574
- white: "text-white"
575
- },
576
- hasUnderline: {
577
- true: "underline",
578
- false: ""
579
- },
580
- isCapitalize: {
581
- true: "capitalize",
582
- false: ""
583
- },
584
- align: {
585
- left: "text-left",
586
- center: "text-center",
587
- right: "text-right",
588
- justify: "text-justify"
589
- },
590
- italic: {
591
- true: "italic",
592
- false: ""
593
- },
594
- clamp: {
595
- 1: "line-clamp-1",
596
- 2: "line-clamp-2",
597
- 3: "line-clamp-3",
598
- 4: "line-clamp-4",
599
- 5: "line-clamp-5",
600
- none: ""
601
- },
602
- ellipsis: {
603
- true: "truncate",
604
- false: ""
605
- },
606
- as: {
607
- h1: "font-bold text-4xl leading-loose",
608
- h2: "font-semibold text-3xl leading-relaxed",
609
- h3: "font-medium text-2xl leading-relaxed",
610
- h4: "font-bold text-xl leading-normal",
611
- h5: "font-semibold text-lg leading-normal",
612
- h6: "font-medium text-base leading-normal",
613
- p: "font-normal text-base leading-normal",
614
- span: "font-normal text-base leading-normal",
615
- label: "font-normal text-xs leading-normal"
616
- }
617
- },
618
- defaultVariants: {
619
- color: "neutral",
620
- hasUnderline: !1,
621
- isCapitalize: !1,
622
- align: "left",
623
- italic: !1,
624
- clamp: "none",
625
- ellipsis: !1,
626
- as: "span"
627
- }
628
- }), Text = forwardRef(
629
- ({
630
- as: e = "span",
631
- color: t = "ghost",
632
- hasUnderline: r = !1,
633
- isCapitalize: i = !1,
634
- align: s = "left",
635
- italic: n = !1,
636
- clamp: a = "none",
637
- ellipsis: l = !1,
638
- fontSize: u,
639
- fontWeight: c,
640
- className: f,
641
- children: o,
642
- ...d
643
- }, h) => {
644
- const y = [
645
- "h1",
646
- "h2",
647
- "h3",
648
- "h4",
649
- "h5",
650
- "h6",
651
- "p",
652
- "span",
653
- "label"
654
- ].includes(e) ? e : "span", w = u ? `text-${u}` : "", j = c ? `font-${c}` : "";
655
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
656
- e,
657
- {
658
- ref: h,
659
- className: cn(
660
- textVariants({
661
- color: t,
662
- hasUnderline: r,
663
- isCapitalize: i,
664
- align: s,
665
- italic: n,
666
- clamp: a,
667
- ellipsis: l,
668
- // @ts-expect-error - `as` is not a valid variant
669
- as: y
670
- }),
671
- w,
672
- j,
673
- f
674
- ),
675
- ...d,
676
- children: o
677
- }
678
- );
679
- }
680
- ), Attribute = forwardRef(
681
- function({ title: t, children: r, className: i, hasMargin: s, ...n }, a) {
682
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
809
+ ), He = f(
810
+ function({ title: t, children: i, className: n, hasMargin: s, ...o }, l) {
811
+ return /* @__PURE__ */ r.jsxs(
683
812
  "div",
684
813
  {
685
- ref: a,
686
- className: cn("space-y-1", i, s && "mb-4"),
687
- ...n,
814
+ ref: l,
815
+ className: u("space-y-1", n, s && "mb-4"),
816
+ ...o,
688
817
  children: [
689
- /* @__PURE__ */ jsxRuntimeExports.jsx(
690
- Text,
818
+ /* @__PURE__ */ r.jsx(
819
+ z,
691
820
  {
692
821
  as: "h4",
693
822
  fontSize: "sm",
@@ -697,13 +826,13 @@ const iconVariants = cva("inline-flex items-center justify-center", {
697
826
  children: t
698
827
  }
699
828
  ),
700
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "base", fontWeight: "normal", children: r })
829
+ /* @__PURE__ */ r.jsx(z, { as: "p", fontSize: "base", fontWeight: "normal", children: i })
701
830
  ]
702
831
  }
703
832
  );
704
833
  }
705
834
  );
706
- function getColSpan(e = 1) {
835
+ function Te(e = 1) {
707
836
  switch (e) {
708
837
  case 1:
709
838
  return "col-span-1";
@@ -733,7 +862,7 @@ function getColSpan(e = 1) {
733
862
  return "col-span-1";
734
863
  }
735
864
  }
736
- function getGridCols(e = 4) {
865
+ function qe(e = 4) {
737
866
  switch (e) {
738
867
  case 1:
739
868
  return "grid-cols-1";
@@ -763,25 +892,25 @@ function getGridCols(e = 4) {
763
892
  return "grid-cols-4";
764
893
  }
765
894
  }
766
- const AttributeListItem = forwardRef(function({ children: t, className: r, span: i = 1, title: s, ...n }, a) {
767
- const l = getColSpan(i);
768
- return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { ref: a, className: cn(l, r), ...n, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Attribute, { title: s, children: t }) });
769
- }), AttributeListRoot = forwardRef(
770
- function({ children: t, className: r, columns: i = 4, ...s }, n) {
771
- const a = getGridCols(i);
772
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
895
+ const _e = f(function({ children: t, className: i, span: n = 1, title: s, ...o }, l) {
896
+ const d = Te(n);
897
+ return /* @__PURE__ */ r.jsx("li", { ref: l, className: u(d, i), ...o, children: /* @__PURE__ */ r.jsx(He, { title: s, children: t }) });
898
+ }), Pe = f(
899
+ function({ children: t, className: i, columns: n = 4, ...s }, o) {
900
+ const l = qe(n);
901
+ return /* @__PURE__ */ r.jsx(
773
902
  "ul",
774
903
  {
775
- ref: n,
776
- className: cn("grid gap-4", a, r),
904
+ ref: o,
905
+ className: u("grid gap-4", l, i),
777
906
  ...s,
778
907
  children: t
779
908
  }
780
909
  );
781
910
  }
782
- ), AttributeList = Object.assign(AttributeListRoot, {
783
- Item: AttributeListItem
784
- }), avatarVariants = cva(
911
+ ), Jt = Object.assign(Pe, {
912
+ Item: _e
913
+ }), Fe = w(
785
914
  "inline-flex items-center justify-center font-medium text-white overflow-hidden transition-all duration-200 select-none relative",
786
915
  {
787
916
  variants: {
@@ -821,55 +950,55 @@ const AttributeListItem = forwardRef(function({ children: t, className: r, span:
821
950
  shape: "circle"
822
951
  }
823
952
  }
824
- ), avatarImageVariants = cva(
953
+ ), Ue = w(
825
954
  "absolute inset-0 h-full w-full object-cover"
826
- ), Avatar$1 = forwardRef(
955
+ ), Ge = f(
827
956
  ({
828
957
  variant: e = "primary",
829
958
  size: t = "md",
830
- shape: r = "circle",
831
- className: i,
959
+ shape: i = "circle",
960
+ className: n,
832
961
  children: s,
833
- ...n
834
- }, a) => /* @__PURE__ */ jsxRuntimeExports.jsx(
962
+ ...o
963
+ }, l) => /* @__PURE__ */ r.jsx(
835
964
  "div",
836
965
  {
837
- ref: a,
838
- className: cn(avatarVariants({ variant: e, size: t, shape: r }), i),
839
- ...n,
966
+ ref: l,
967
+ className: u(Fe({ variant: e, size: t, shape: i }), n),
968
+ ...o,
840
969
  children: s
841
970
  }
842
971
  )
843
- ), AvatarImage = forwardRef(
844
- ({ src: e, alt: t, className: r, onError: i, ...s }, n) => {
845
- const [a, l] = useState(!1);
846
- useEffect(() => {
847
- l(!1);
972
+ ), $e = f(
973
+ ({ src: e, alt: t, className: i, onError: n, ...s }, o) => {
974
+ const [l, d] = L(!1);
975
+ A(() => {
976
+ d(!1);
848
977
  }, [e]);
849
- const u = useCallback(
850
- (c) => {
851
- l(!0), i?.(c);
978
+ const g = J(
979
+ (h) => {
980
+ d(!0), n?.(h);
852
981
  },
853
- [i]
982
+ [n]
854
983
  );
855
- return a ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
984
+ return l ? null : /* @__PURE__ */ r.jsx(
856
985
  "img",
857
986
  {
858
- ref: n,
987
+ ref: o,
859
988
  src: e,
860
989
  alt: t,
861
- className: cn(avatarImageVariants(), r),
862
- onError: u,
990
+ className: u(Ue(), i),
991
+ onError: g,
863
992
  ...s
864
993
  }
865
994
  );
866
995
  }
867
- ), Avatar = Object.assign(Avatar$1, {
996
+ ), Kt = Object.assign(Ge, {
868
997
  /**
869
998
  * AvatarImage sub-component for displaying images with fallback behavior
870
999
  */
871
- Image: AvatarImage
872
- }), badgeVariants = cva(
1000
+ Image: $e
1001
+ }), Xe = w(
873
1002
  "inline-flex items-center justify-center font-medium transition-all duration-200 select-none gap-1 min-h-[1.25rem]",
874
1003
  {
875
1004
  variants: {
@@ -1056,49 +1185,49 @@ const AttributeListItem = forwardRef(function({ children: t, className: r, span:
1056
1185
  iconOnly: !1
1057
1186
  }
1058
1187
  }
1059
- ), Badge = forwardRef(
1188
+ ), Qt = f(
1060
1189
  ({
1061
1190
  variant: e = "default",
1062
1191
  shape: t = "square",
1063
- color: r = "primary",
1064
- size: i = "md",
1192
+ color: i = "primary",
1193
+ size: n = "md",
1065
1194
  iconLeft: s,
1066
- iconRight: n,
1067
- className: a,
1068
- children: l,
1069
- ...u
1070
- }, c) => {
1071
- const d = !(l != null && l !== "") && !!(s || n);
1072
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1195
+ iconRight: o,
1196
+ className: l,
1197
+ children: d,
1198
+ ...g
1199
+ }, h) => {
1200
+ const v = !(d != null && d !== "") && !!(s || o);
1201
+ return /* @__PURE__ */ r.jsx(
1073
1202
  "span",
1074
1203
  {
1075
- ref: c,
1076
- className: cn(
1077
- badgeVariants({
1204
+ ref: h,
1205
+ className: u(
1206
+ Xe({
1078
1207
  variant: e,
1079
- color: r,
1208
+ color: i,
1080
1209
  shape: t,
1081
- size: i,
1082
- iconOnly: d
1210
+ size: n,
1211
+ iconOnly: v
1083
1212
  }),
1084
- a
1213
+ l
1085
1214
  ),
1086
- ...u,
1087
- children: d ? (
1215
+ ...g,
1216
+ children: v ? (
1088
1217
  // Icon-only mode: display only the icon
1089
- s || n
1218
+ s || o
1090
1219
  ) : (
1091
1220
  // Normal mode: display icon(s) and text
1092
- /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
1221
+ /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
1093
1222
  s,
1094
- l,
1095
- n
1223
+ d,
1224
+ o
1096
1225
  ] })
1097
1226
  )
1098
1227
  }
1099
1228
  );
1100
1229
  }
1101
- ), SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.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" }))), SvgSpenicleRounded = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.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" }))), SvgSpenicleCircle = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Spenicle"), /* @__PURE__ */ React.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.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" }))), SvgHubSquare = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Hub (Square)"), /* @__PURE__ */ React.createElement("rect", { x: 0, y: 0, width: 32, height: 32, rx: 0, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ React.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ React.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ React.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ React.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), SvgHubRounded = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Hub (Rounded)"), /* @__PURE__ */ React.createElement("rect", { x: 2, y: 2, width: 28, height: 28, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ React.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ React.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ React.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ React.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), SvgHubCircle = (e) => /* @__PURE__ */ React.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ React.createElement("title", null, "Hub (Circle)"), /* @__PURE__ */ React.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ React.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ React.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ React.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ React.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ React.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ React.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), brandSizeClass = cva("", {
1230
+ ), X = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Spenicle"), /* @__PURE__ */ a.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.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" }))), Ye = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Spenicle"), /* @__PURE__ */ a.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.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" }))), De = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Spenicle"), /* @__PURE__ */ a.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.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" }))), Je = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Hub (Square)"), /* @__PURE__ */ a.createElement("rect", { x: 0, y: 0, width: 32, height: 32, rx: 0, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ a.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ a.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ a.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ a.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), Ke = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Hub (Rounded)"), /* @__PURE__ */ a.createElement("rect", { x: 0, y: 0, width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ a.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ a.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ a.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ a.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), Qe = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Hub (Circle)"), /* @__PURE__ */ a.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.createElement("path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ a.createElement("path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", stroke: "white", strokeWidth: 2, fill: "none" }), /* @__PURE__ */ a.createElement("circle", { cx: 12, cy: 12, r: 3, fill: "white" }), /* @__PURE__ */ a.createElement("circle", { cx: 19, cy: 5, r: 2, fill: "white" }), /* @__PURE__ */ a.createElement("circle", { cx: 5, cy: 19, r: 2, fill: "white" }))), Ze = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Notunic"), /* @__PURE__ */ a.createElement("rect", { width: 32, height: 32, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.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__ */ a.createElement("path", { d: "M2 6h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 10h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 14h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 18h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.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" }))), et = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Notunic"), /* @__PURE__ */ a.createElement("rect", { width: 32, height: 32, rx: 8, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.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__ */ a.createElement("path", { d: "M2 6h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 10h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 14h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 18h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.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" }))), tt = (e) => /* @__PURE__ */ a.createElement("svg", { width: 32, height: 32, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ a.createElement("title", null, "Notunic"), /* @__PURE__ */ a.createElement("circle", { cx: 16, cy: 16, r: 16, fill: "#e07a5f" }), /* @__PURE__ */ a.createElement("g", { transform: "translate(16, 16) scale(0.625) translate(-12, -12)" }, /* @__PURE__ */ a.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__ */ a.createElement("path", { d: "M2 6h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 10h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 14h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.createElement("path", { d: "M2 18h4", fill: "none", stroke: "white", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ a.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" }))), rt = w("", {
1102
1231
  variants: {
1103
1232
  size: {
1104
1233
  xs: "h-6 w-6",
@@ -1111,40 +1240,45 @@ const AttributeListItem = forwardRef(function({ children: t, className: r, span:
1111
1240
  defaultVariants: {
1112
1241
  size: "md"
1113
1242
  }
1114
- }), BrandLogo = forwardRef(
1115
- ({ shape: e = "square", size: t, name: r = "spenicle", ...i }, s) => {
1116
- const n = {
1243
+ }), it = f(
1244
+ ({ shape: e = "square", size: t, name: i = "spenicle", ...n }, s) => {
1245
+ const o = {
1117
1246
  spenicle: {
1118
- square: SvgSpenicleSquare,
1119
- rounded: SvgSpenicleRounded,
1120
- circle: SvgSpenicleCircle
1247
+ square: X,
1248
+ rounded: Ye,
1249
+ circle: De
1121
1250
  },
1122
1251
  hub: {
1123
- square: SvgHubSquare,
1124
- rounded: SvgHubRounded,
1125
- circle: SvgHubCircle
1252
+ square: Je,
1253
+ rounded: Ke,
1254
+ circle: Qe
1255
+ },
1256
+ notunic: {
1257
+ square: Ze,
1258
+ rounded: et,
1259
+ circle: tt
1126
1260
  }
1127
- }, l = (n[r] || n.spenicle)[e || "square"] || SvgSpenicleSquare;
1128
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1129
- l,
1261
+ }, d = (o[i] || o.spenicle)[e || "square"] || X;
1262
+ return /* @__PURE__ */ r.jsx(
1263
+ d,
1130
1264
  {
1131
1265
  ref: s,
1132
- ...i,
1133
- className: cn("inline-block", brandSizeClass({ size: t }))
1266
+ ...n,
1267
+ className: u("inline-block", rt({ size: t }))
1134
1268
  }
1135
1269
  );
1136
1270
  }
1137
- ), Brand = forwardRef(
1138
- ({ name: e = "spenicle", size: t = "md", shape: r, ...i }, s) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1271
+ ), Zt = f(
1272
+ ({ name: e = "spenicle", size: t = "md", shape: i, ...n }, s) => /* @__PURE__ */ r.jsx(
1139
1273
  "span",
1140
1274
  {
1141
1275
  ref: s,
1142
- className: cn("inline-flex items-center gap-2"),
1143
- ...i,
1144
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(BrandLogo, { name: e, shape: r, size: t, "aria-hidden": "true" })
1276
+ className: u("inline-flex items-center gap-2"),
1277
+ ...n,
1278
+ children: /* @__PURE__ */ r.jsx(it, { name: e, shape: i, size: t, "aria-hidden": "true" })
1145
1279
  }
1146
1280
  )
1147
- ), buttonVariants = cva(
1281
+ ), st = w(
1148
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",
1149
1283
  {
1150
1284
  variants: {
@@ -1203,39 +1337,39 @@ const AttributeListItem = forwardRef(function({ children: t, className: r, span:
1203
1337
  size: "md"
1204
1338
  }
1205
1339
  }
1206
- ), Button = React__default.forwardRef(
1340
+ ), re = H.forwardRef(
1207
1341
  function({
1208
1342
  className: t,
1209
- variant: r = "primary",
1210
- size: i = "md",
1343
+ variant: i = "primary",
1344
+ size: n = "md",
1211
1345
  disabled: s = !1,
1212
- type: n = "button",
1213
- children: a,
1214
- ...l
1215
- }, u) {
1216
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1346
+ type: o = "button",
1347
+ children: l,
1348
+ ...d
1349
+ }, g) {
1350
+ return /* @__PURE__ */ r.jsx(
1217
1351
  "button",
1218
1352
  {
1219
- ref: u,
1220
- type: n,
1221
- className: cn(buttonVariants({ variant: r, size: i }), t),
1353
+ ref: g,
1354
+ type: o,
1355
+ className: u(st({ variant: i, size: n }), t),
1222
1356
  disabled: s,
1223
1357
  "aria-disabled": s,
1224
1358
  inert: s ? !0 : void 0,
1225
- ...l,
1226
- children: a
1359
+ ...d,
1360
+ children: l
1227
1361
  }
1228
1362
  );
1229
1363
  }
1230
- ), OverlayPortal = ({
1364
+ ), nt = ({
1231
1365
  container: e,
1232
1366
  children: t
1233
1367
  }) => {
1234
1368
  if (typeof window > "u" || typeof document > "u")
1235
- return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: t });
1236
- const r = e ?? document.body;
1237
- return r ? ReactDOM.createPortal(t, r) : /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: t });
1238
- }, menuVariants = cva(
1369
+ return /* @__PURE__ */ r.jsx(r.Fragment, { children: t });
1370
+ const i = e ?? document.body;
1371
+ return i ? me.createPortal(t, i) : /* @__PURE__ */ r.jsx(r.Fragment, { children: t });
1372
+ }, Y = w(
1239
1373
  "z-70 min-w-40 bg-background rounded-lg border border-border transition-all duration-200 ease-out will-change-transform shadow-lg",
1240
1374
  {
1241
1375
  variants: {
@@ -1254,219 +1388,219 @@ const AttributeListItem = forwardRef(function({ children: t, className: r, span:
1254
1388
  }
1255
1389
  }
1256
1390
  );
1257
- function useMenuOutsideClick(e, t, r, i) {
1258
- useEffect(() => {
1391
+ function ot(e, t, i, n) {
1392
+ A(() => {
1259
1393
  if (!e) return;
1260
- function s(n) {
1261
- !t.current?.contains(n.target) && !r.current?.contains(n.target) && i();
1394
+ function s(o) {
1395
+ !t.current?.contains(o.target) && !i.current?.contains(o.target) && n();
1262
1396
  }
1263
1397
  return document.addEventListener("mousedown", s), () => document.removeEventListener("mousedown", s);
1264
- }, [e, i, t, r]);
1398
+ }, [e, n, t, i]);
1265
1399
  }
1266
- function getScrollableAncestors(e) {
1400
+ function D(e) {
1267
1401
  const t = [];
1268
- let r = e.parentElement;
1269
- for (; r && r !== document.documentElement; ) {
1270
- const i = getComputedStyle(r);
1271
- (i.overflow === "auto" || i.overflow === "scroll" || i.overflowY === "auto" || i.overflowY === "scroll" || i.overflowX === "auto" || i.overflowX === "scroll") && t.push(r), r = r.parentElement;
1402
+ let i = e.parentElement;
1403
+ for (; i && i !== document.documentElement; ) {
1404
+ const n = getComputedStyle(i);
1405
+ (n.overflow === "auto" || n.overflow === "scroll" || n.overflowY === "auto" || n.overflowY === "scroll" || n.overflowX === "auto" || n.overflowX === "scroll") && t.push(i), i = i.parentElement;
1272
1406
  }
1273
1407
  return t.push(document.documentElement), t;
1274
1408
  }
1275
- function isTriggerVisible(e, t) {
1276
- const r = e.getBoundingClientRect();
1277
- if (r.bottom < 0 || r.top > window.innerHeight || r.right < 0 || r.left > window.innerWidth)
1409
+ function at(e, t) {
1410
+ const i = e.getBoundingClientRect();
1411
+ if (i.bottom < 0 || i.top > window.innerHeight || i.right < 0 || i.left > window.innerWidth)
1278
1412
  return !1;
1279
- for (const i of t) {
1280
- if (i === document.documentElement) continue;
1281
- const s = i.getBoundingClientRect();
1282
- if (r.bottom < s.top || r.top > s.bottom || r.right < s.left || r.left > s.right)
1413
+ for (const n of t) {
1414
+ if (n === document.documentElement) continue;
1415
+ const s = n.getBoundingClientRect();
1416
+ if (i.bottom < s.top || i.top > s.bottom || i.right < s.left || i.left > s.right)
1283
1417
  return !1;
1284
1418
  }
1285
1419
  return !0;
1286
1420
  }
1287
- function useMenuPosition(e, t, r, i = "bottom-start", s) {
1288
- const [n, a] = useState({ isReady: !1 }), l = useCallback(() => {
1421
+ function lt(e, t, i, n = "bottom-start", s) {
1422
+ const [o, l] = L({ isReady: !1 }), d = J(() => {
1289
1423
  if (!e || !t.current) {
1290
- a({ isReady: !1 });
1424
+ l({ isReady: !1 });
1291
1425
  return;
1292
1426
  }
1293
- if (!r.current) {
1294
- const v = setTimeout(() => {
1295
- a({ isReady: !1 });
1427
+ if (!i.current) {
1428
+ const k = setTimeout(() => {
1429
+ l({ isReady: !1 });
1296
1430
  }, 0);
1297
- return () => clearTimeout(v);
1431
+ return () => clearTimeout(k);
1298
1432
  }
1299
- const u = t.current, c = r.current, f = getScrollableAncestors(u);
1300
- if (!isTriggerVisible(u, f)) {
1301
- a({ isReady: !1 });
1433
+ const g = t.current, h = i.current, m = D(g);
1434
+ if (!at(g, m)) {
1435
+ l({ isReady: !1 });
1302
1436
  return;
1303
1437
  }
1304
- const o = u.getBoundingClientRect(), d = window.innerWidth, h = window.innerHeight;
1305
- let m = null;
1306
- s && ("getBoundingClientRect" in s ? m = s : "current" in s && (m = s.current));
1307
- const y = m || document.documentElement, w = y === document.documentElement ? { top: 0, bottom: h, left: 0, right: d } : y.getBoundingClientRect(), j = c.style.visibility, E = c.style.position, C = c.style.opacity;
1308
- c.style.visibility = "hidden", c.style.position = "absolute", c.style.opacity = "0";
1309
- const x = c.getBoundingClientRect();
1310
- c.style.visibility = j, c.style.position = E, c.style.opacity = C;
1311
- const N = w.bottom - o.bottom - 8, I = o.top - w.top - 8, V = w.right - o.left - 8, k = o.right - w.left - 8;
1312
- let p = i;
1313
- if (i === "auto") {
1314
- const b = [
1438
+ const c = g.getBoundingClientRect(), v = window.innerWidth, y = window.innerHeight;
1439
+ let j = null;
1440
+ s && ("getBoundingClientRect" in s ? j = s : "current" in s && (j = s.current));
1441
+ const C = j || document.documentElement, N = C === document.documentElement ? { top: 0, bottom: y, left: 0, right: v } : C.getBoundingClientRect(), I = h.style.visibility, S = h.style.position, W = h.style.opacity;
1442
+ h.style.visibility = "hidden", h.style.position = "absolute", h.style.opacity = "0";
1443
+ const p = h.getBoundingClientRect();
1444
+ h.style.visibility = I, h.style.position = S, h.style.opacity = W;
1445
+ const B = N.bottom - c.bottom - 8, O = c.top - N.top - 8, T = N.right - c.left - 8, q = c.right - N.left - 8;
1446
+ let E = n;
1447
+ if (n === "auto") {
1448
+ const x = [
1315
1449
  {
1316
1450
  name: "bottom-start",
1317
- fits: N >= x.height && V >= x.width,
1318
- spaceUsed: N,
1451
+ fits: B >= p.height && T >= p.width,
1452
+ spaceUsed: B,
1319
1453
  priority: 1
1320
1454
  // Prefer bottom-start as default
1321
1455
  },
1322
1456
  {
1323
1457
  name: "bottom-end",
1324
- fits: N >= x.height && k >= x.width,
1325
- spaceUsed: N,
1458
+ fits: B >= p.height && q >= p.width,
1459
+ spaceUsed: B,
1326
1460
  priority: 2
1327
1461
  },
1328
1462
  {
1329
1463
  name: "top-start",
1330
- fits: I >= x.height && V >= x.width,
1331
- spaceUsed: I,
1464
+ fits: O >= p.height && T >= p.width,
1465
+ spaceUsed: O,
1332
1466
  priority: 3
1333
1467
  },
1334
1468
  {
1335
1469
  name: "top-end",
1336
- fits: I >= x.height && k >= x.width,
1337
- spaceUsed: I,
1470
+ fits: O >= p.height && q >= p.width,
1471
+ spaceUsed: O,
1338
1472
  priority: 4
1339
1473
  }
1340
- ].filter((R) => R.fits);
1341
- b.length > 0 ? p = b.sort(
1342
- (R, S) => R.priority - S.priority
1343
- )[0].name : N >= I ? p = V >= k ? "bottom-start" : "bottom-end" : p = V >= k ? "top-start" : "top-end";
1474
+ ].filter((V) => V.fits);
1475
+ x.length > 0 ? E = x.sort(
1476
+ (V, ae) => V.priority - ae.priority
1477
+ )[0].name : B >= O ? E = T >= q ? "bottom-start" : "bottom-end" : E = T >= q ? "top-start" : "top-end";
1344
1478
  }
1345
- const g = {};
1479
+ const b = {};
1346
1480
  if (s)
1347
- switch (g.position = "fixed", p) {
1481
+ switch (b.position = "fixed", E) {
1348
1482
  case "bottom-start":
1349
- g.top = o.bottom + 4, g.left = o.left;
1483
+ b.top = c.bottom + 4, b.left = c.left;
1350
1484
  break;
1351
1485
  case "bottom-end":
1352
- g.top = o.bottom + 4, g.right = window.innerWidth - o.right;
1486
+ b.top = c.bottom + 4, b.right = window.innerWidth - c.right;
1353
1487
  break;
1354
1488
  case "top-start":
1355
- g.bottom = window.innerHeight - o.top + 4, g.left = o.left;
1489
+ b.bottom = window.innerHeight - c.top + 4, b.left = c.left;
1356
1490
  break;
1357
1491
  case "top-end":
1358
- g.bottom = window.innerHeight - o.top + 4, g.right = window.innerWidth - o.right;
1492
+ b.bottom = window.innerHeight - c.top + 4, b.right = window.innerWidth - c.right;
1359
1493
  break;
1360
1494
  }
1361
1495
  else
1362
- switch (g.position = "absolute", p) {
1496
+ switch (b.position = "absolute", E) {
1363
1497
  case "bottom-start":
1364
- g.top = o.height + 4, g.left = 0;
1498
+ b.top = c.height + 4, b.left = 0;
1365
1499
  break;
1366
1500
  case "bottom-end":
1367
- g.top = o.height + 4, g.right = 0;
1501
+ b.top = c.height + 4, b.right = 0;
1368
1502
  break;
1369
1503
  case "top-start":
1370
- g.bottom = o.height + 4, g.left = 0;
1504
+ b.bottom = c.height + 4, b.left = 0;
1371
1505
  break;
1372
1506
  case "top-end":
1373
- g.bottom = o.height + 4, g.right = 0;
1507
+ b.bottom = c.height + 4, b.right = 0;
1374
1508
  break;
1375
1509
  }
1376
1510
  if (s) {
1377
- const v = {
1378
- top: p.startsWith("bottom") ? o.bottom + 4 : o.top - x.height - 4,
1379
- left: p.endsWith("start") ? o.left : o.right - x.width,
1380
- width: x.width,
1381
- height: x.height
1511
+ const k = {
1512
+ top: E.startsWith("bottom") ? c.bottom + 4 : c.top - p.height - 4,
1513
+ left: E.endsWith("start") ? c.left : c.right - p.width,
1514
+ width: p.width,
1515
+ height: p.height
1382
1516
  };
1383
- if (v.left < w.left + 8) {
1384
- const b = w.left + 8 - v.left;
1385
- p.endsWith("start") ? g.left = (g.left || 0) + b : g.right = (g.right || 0) - b;
1386
- } else if (v.left + v.width > w.right - 8) {
1387
- const b = v.left + v.width - (w.right - 8);
1388
- p.endsWith("start") ? g.left = (g.left || 0) - b : g.right = (g.right || 0) + b;
1517
+ if (k.left < N.left + 8) {
1518
+ const x = N.left + 8 - k.left;
1519
+ E.endsWith("start") ? b.left = (b.left || 0) + x : b.right = (b.right || 0) - x;
1520
+ } else if (k.left + k.width > N.right - 8) {
1521
+ const x = k.left + k.width - (N.right - 8);
1522
+ E.endsWith("start") ? b.left = (b.left || 0) - x : b.right = (b.right || 0) + x;
1389
1523
  }
1390
- if (p.startsWith("bottom")) {
1391
- const b = Math.max(
1524
+ if (E.startsWith("bottom")) {
1525
+ const x = Math.max(
1392
1526
  50,
1393
- w.bottom - o.bottom - 16
1527
+ N.bottom - c.bottom - 16
1394
1528
  );
1395
- x.height > b && (g.maxHeight = b);
1529
+ p.height > x && (b.maxHeight = x);
1396
1530
  } else {
1397
- const b = Math.max(
1531
+ const x = Math.max(
1398
1532
  50,
1399
- o.top - w.top - 16
1533
+ c.top - N.top - 16
1400
1534
  );
1401
- x.height > b && (g.maxHeight = b);
1535
+ p.height > x && (b.maxHeight = x);
1402
1536
  }
1403
1537
  } else {
1404
- const v = {
1405
- top: p.startsWith("bottom") ? o.height + 4 : -x.height - 4,
1406
- left: p.endsWith("start") ? 0 : -x.width,
1407
- width: x.width,
1408
- height: x.height
1409
- }, b = {
1410
- left: o.left,
1411
- right: o.right,
1412
- top: o.top,
1413
- bottom: o.bottom
1538
+ const k = {
1539
+ top: E.startsWith("bottom") ? c.height + 4 : -p.height - 4,
1540
+ left: E.endsWith("start") ? 0 : -p.width,
1541
+ width: p.width,
1542
+ height: p.height
1543
+ }, x = {
1544
+ left: c.left,
1545
+ right: c.right,
1546
+ top: c.top,
1547
+ bottom: c.bottom
1414
1548
  };
1415
- if (b.left + v.left < 8) {
1416
- const R = 8 - (b.left + v.left);
1417
- p.endsWith("start") ? g.left = (g.left || 0) + R : g.right = (g.right || 0) - R;
1418
- } else if (b.left + v.left + v.width > d - 8) {
1419
- const R = b.left + v.left + v.width - (d - 8);
1420
- p.endsWith("start") ? g.left = (g.left || 0) - R : g.right = (g.right || 0) + R;
1549
+ if (x.left + k.left < 8) {
1550
+ const V = 8 - (x.left + k.left);
1551
+ E.endsWith("start") ? b.left = (b.left || 0) + V : b.right = (b.right || 0) - V;
1552
+ } else if (x.left + k.left + k.width > v - 8) {
1553
+ const V = x.left + k.left + k.width - (v - 8);
1554
+ E.endsWith("start") ? b.left = (b.left || 0) - V : b.right = (b.right || 0) + V;
1421
1555
  }
1422
1556
  }
1423
- g.isReady = !0, a(g);
1424
- }, [e, i, t, r, s]);
1425
- return useEffect(() => {
1426
- l();
1427
- }, [l]), useEffect(() => {
1557
+ b.isReady = !0, l(b);
1558
+ }, [e, n, t, i, s]);
1559
+ return A(() => {
1560
+ d();
1561
+ }, [d]), A(() => {
1428
1562
  if (!e || !t.current) return;
1429
- const u = t.current, c = getScrollableAncestors(u);
1430
- let f = !1;
1431
- const o = () => {
1432
- f || (requestAnimationFrame(() => {
1433
- l(), f = !1;
1434
- }), f = !0);
1563
+ const g = t.current, h = D(g);
1564
+ let m = !1;
1565
+ const c = () => {
1566
+ m || (requestAnimationFrame(() => {
1567
+ d(), m = !1;
1568
+ }), m = !0);
1435
1569
  };
1436
- return c.forEach((d) => {
1437
- d === document.documentElement ? (window.addEventListener("scroll", o, { passive: !0 }), window.addEventListener("resize", o, { passive: !0 })) : d.addEventListener("scroll", o, { passive: !0 });
1570
+ return h.forEach((v) => {
1571
+ v === document.documentElement ? (window.addEventListener("scroll", c, { passive: !0 }), window.addEventListener("resize", c, { passive: !0 })) : v.addEventListener("scroll", c, { passive: !0 });
1438
1572
  }), () => {
1439
- c.forEach((d) => {
1440
- d === document.documentElement ? (window.removeEventListener("scroll", o), window.removeEventListener("resize", o)) : d.removeEventListener("scroll", o);
1573
+ h.forEach((v) => {
1574
+ v === document.documentElement ? (window.removeEventListener("scroll", c), window.removeEventListener("resize", c)) : v.removeEventListener("scroll", c);
1441
1575
  });
1442
1576
  };
1443
- }, [e, l, t]), n;
1577
+ }, [e, d, t]), o;
1444
1578
  }
1445
- const MenuContext = createContext(void 0), MenuProvider = MenuContext.Provider, useMenuProvider = () => {
1446
- const e = useContext(MenuContext);
1579
+ const ie = P(void 0), ct = ie.Provider, dt = () => {
1580
+ const e = F(ie);
1447
1581
  if (!e)
1448
1582
  throw new Error("useMenuProvider must be used within a MenuProvider");
1449
1583
  return e;
1450
- }, MenuContent = forwardRef(
1451
- ({ children: e }, t) => /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { ref: t, className: "flex flex-col gap-1", children: e })
1452
- ), MenuItem = forwardRef(
1453
- ({ children: e, disabled: t, onClick: r, active: i, ...s }, n) => {
1454
- const { preserve: a, onClose: l } = useMenuProvider(), u = (c) => {
1455
- r?.(c), a || l();
1584
+ }, gt = f(
1585
+ ({ children: e }, t) => /* @__PURE__ */ r.jsx("ul", { ref: t, className: "flex flex-col gap-1", children: e })
1586
+ ), ht = f(
1587
+ ({ children: e, disabled: t, onClick: i, active: n, ...s }, o) => {
1588
+ const { preserve: l, onClose: d } = dt(), g = (h) => {
1589
+ i?.(h), l || d();
1456
1590
  };
1457
- return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { ref: n, ...s, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
1458
- Button,
1591
+ return /* @__PURE__ */ r.jsx("li", { ref: o, ...s, children: /* @__PURE__ */ r.jsxs(
1592
+ re,
1459
1593
  {
1460
1594
  variant: "ghost",
1461
- className: cn("justify-start w-full gap-2"),
1595
+ className: u("justify-start w-full gap-2"),
1462
1596
  disabled: t,
1463
- onClick: u,
1597
+ onClick: g,
1464
1598
  children: [
1465
1599
  e,
1466
- i && /* @__PURE__ */ jsxRuntimeExports.jsx(
1467
- Icon,
1600
+ n && /* @__PURE__ */ r.jsx(
1601
+ R,
1468
1602
  {
1469
- as: CheckIcon,
1603
+ as: he,
1470
1604
  color: "inherit",
1471
1605
  className: "ml-auto",
1472
1606
  size: "sm"
@@ -1476,59 +1610,59 @@ const MenuContext = createContext(void 0), MenuProvider = MenuContext.Provider,
1476
1610
  }
1477
1611
  ) });
1478
1612
  }
1479
- ), MenuRoot = ({
1613
+ ), ut = ({
1480
1614
  isOpen: e,
1481
1615
  onOutsideClick: t,
1482
- size: r = "md",
1483
- content: i,
1616
+ size: i = "md",
1617
+ content: n,
1484
1618
  children: s,
1485
- placement: n = "auto",
1486
- container: a,
1487
- preserve: l
1619
+ placement: o = "auto",
1620
+ container: l,
1621
+ preserve: d
1488
1622
  }) => {
1489
- const u = useRef(null), c = useRef(null), f = useId();
1490
- useMenuOutsideClick(e, c, u, t);
1491
- const o = useMenuPosition(
1623
+ const g = _(null), h = _(null), m = le();
1624
+ ot(e, h, g, t);
1625
+ const c = lt(
1492
1626
  e,
1493
- u,
1494
- c,
1495
- n,
1496
- a || null
1497
- ), d = {
1498
- ...o,
1499
- position: o.position || "absolute",
1500
- overflowY: o.maxHeight ? "auto" : void 0,
1501
- overflowX: o.maxWidth ? "auto" : void 0
1502
- }, h = e && o.isReady, m = /* @__PURE__ */ jsxRuntimeExports.jsx(
1627
+ g,
1628
+ h,
1629
+ o,
1630
+ l || null
1631
+ ), v = {
1632
+ ...c,
1633
+ position: c.position || "absolute",
1634
+ overflowY: c.maxHeight ? "auto" : void 0,
1635
+ overflowX: c.maxWidth ? "auto" : void 0
1636
+ }, y = e && c.isReady, j = /* @__PURE__ */ r.jsx(
1503
1637
  "div",
1504
1638
  {
1505
- id: f,
1506
- ref: c,
1507
- className: cn(menuVariants({ size: r, open: h })),
1508
- style: d,
1639
+ id: m,
1640
+ ref: h,
1641
+ className: u(Y({ size: i, open: y })),
1642
+ style: v,
1509
1643
  role: "menu",
1510
- "aria-hidden": !h,
1511
- children: i
1644
+ "aria-hidden": !y,
1645
+ children: n
1512
1646
  }
1513
1647
  );
1514
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1515
- MenuProvider,
1648
+ return /* @__PURE__ */ r.jsx(
1649
+ ct,
1516
1650
  {
1517
- value: { onClose: t, preserve: !!l },
1518
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative w-fit", children: [
1519
- cloneElement(s, {
1651
+ value: { onClose: t, preserve: !!d },
1652
+ children: /* @__PURE__ */ r.jsxs("div", { className: "relative w-fit", children: [
1653
+ ce(s, {
1520
1654
  // @ts-expect-error: ref is valid for button or forwardRef components
1521
- ref: u,
1655
+ ref: g,
1522
1656
  "aria-haspopup": "menu",
1523
1657
  "aria-expanded": e,
1524
- "aria-controls": f
1658
+ "aria-controls": m
1525
1659
  }),
1526
- e && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
1527
- !o.isReady && /* @__PURE__ */ jsxRuntimeExports.jsx(
1660
+ e && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
1661
+ !c.isReady && /* @__PURE__ */ r.jsx(
1528
1662
  "div",
1529
1663
  {
1530
- ref: c,
1531
- className: cn(menuVariants({ size: r, open: !1 })),
1664
+ ref: h,
1665
+ className: u(Y({ size: i, open: !1 })),
1532
1666
  style: {
1533
1667
  position: "absolute",
1534
1668
  visibility: "hidden",
@@ -1537,54 +1671,54 @@ const MenuContext = createContext(void 0), MenuProvider = MenuContext.Provider,
1537
1671
  },
1538
1672
  role: "menu",
1539
1673
  "aria-hidden": !0,
1540
- children: i
1674
+ children: n
1541
1675
  }
1542
1676
  ),
1543
- o.isReady && /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: o.position === "fixed" ? /* @__PURE__ */ jsxRuntimeExports.jsx(OverlayPortal, { children: m }) : m })
1677
+ c.isReady && /* @__PURE__ */ r.jsx(r.Fragment, { children: c.position === "fixed" ? /* @__PURE__ */ r.jsx(nt, { children: j }) : j })
1544
1678
  ] })
1545
1679
  ] })
1546
1680
  }
1547
1681
  );
1548
- }, Menu = Object.assign(MenuRoot, {
1549
- Content: MenuContent,
1550
- Item: MenuItem
1551
- }), ButtonMenuRoot = forwardRef(
1682
+ }, M = Object.assign(ut, {
1683
+ Content: gt,
1684
+ Item: ht
1685
+ }), ft = f(
1552
1686
  (e, t) => {
1553
1687
  const {
1554
- children: r,
1555
- onOpenChange: i,
1688
+ children: i,
1689
+ onOpenChange: n,
1556
1690
  onClick: s,
1557
- placement: n,
1558
- container: a,
1559
- preserve: l,
1560
- label: u,
1561
- ...c
1562
- } = e ?? {}, [f, o] = useState(!1);
1563
- useEffect(() => {
1564
- i?.(f);
1565
- }, [f, i]);
1566
- const d = () => {
1567
- o(!1);
1568
- }, h = (m) => {
1569
- o((y) => !y), s?.(m);
1691
+ placement: o,
1692
+ container: l,
1693
+ preserve: d,
1694
+ label: g,
1695
+ ...h
1696
+ } = e ?? {}, [m, c] = L(!1);
1697
+ A(() => {
1698
+ n?.(m);
1699
+ }, [m, n]);
1700
+ const v = () => {
1701
+ c(!1);
1702
+ }, y = (j) => {
1703
+ c((C) => !C), s?.(j);
1570
1704
  };
1571
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1572
- Menu,
1573
- {
1574
- isOpen: f,
1575
- onOutsideClick: d,
1576
- placement: n,
1577
- container: a,
1578
- preserve: l,
1579
- content: /* @__PURE__ */ jsxRuntimeExports.jsx(Menu.Content, { children: r }),
1580
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { ref: t, onClick: h, ...c, children: u })
1705
+ return /* @__PURE__ */ r.jsx(
1706
+ M,
1707
+ {
1708
+ isOpen: m,
1709
+ onOutsideClick: v,
1710
+ placement: o,
1711
+ container: l,
1712
+ preserve: d,
1713
+ content: /* @__PURE__ */ r.jsx(M.Content, { children: i }),
1714
+ children: /* @__PURE__ */ r.jsx(re, { ref: t, onClick: y, ...h, children: g })
1581
1715
  }
1582
1716
  );
1583
1717
  }
1584
- ), ButtonMenu = Object.assign(ButtonMenuRoot, {
1585
- Item: Menu.Item
1718
+ ), er = Object.assign(ft, {
1719
+ Item: M.Item
1586
1720
  });
1587
- function getIconColorFromVariant(e = "primary") {
1721
+ function bt(e = "primary") {
1588
1722
  const t = e.split("-");
1589
1723
  if (t.length === 1)
1590
1724
  switch (t[0]) {
@@ -1619,7 +1753,7 @@ function getIconColorFromVariant(e = "primary") {
1619
1753
  return "neutral";
1620
1754
  }
1621
1755
  }
1622
- const buttonIconVariants = cva(
1756
+ const mt = w(
1623
1757
  "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",
1624
1758
  {
1625
1759
  variants: {
@@ -1672,383 +1806,82 @@ const buttonIconVariants = cva(
1672
1806
  shape: "rounded"
1673
1807
  }
1674
1808
  }
1675
- ), ButtonIcon = React__default.forwardRef(
1809
+ ), wt = H.forwardRef(
1676
1810
  function({
1677
1811
  className: t,
1678
- variant: r = "primary",
1679
- size: i = "md",
1812
+ variant: i = "primary",
1813
+ size: n = "md",
1680
1814
  shape: s = "rounded",
1681
- disabled: n = !1,
1682
- as: a,
1683
- "aria-label": l,
1684
- ...u
1685
- }, c) {
1686
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1815
+ disabled: o = !1,
1816
+ as: l,
1817
+ "aria-label": d,
1818
+ ...g
1819
+ }, h) {
1820
+ return /* @__PURE__ */ r.jsx(
1687
1821
  "button",
1688
1822
  {
1689
- ref: c,
1823
+ ref: h,
1690
1824
  type: "button",
1691
- className: cn(
1692
- buttonIconVariants({
1693
- variant: r,
1694
- size: i,
1825
+ className: u(
1826
+ mt({
1827
+ variant: i,
1828
+ size: n,
1695
1829
  shape: s
1696
1830
  }),
1697
1831
  t
1698
1832
  ),
1699
- disabled: n,
1700
- "aria-disabled": n,
1701
- "aria-label": l,
1702
- inert: n ? !0 : void 0,
1703
- ...u,
1704
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1705
- Icon,
1833
+ disabled: o,
1834
+ "aria-disabled": o,
1835
+ "aria-label": d,
1836
+ inert: o ? !0 : void 0,
1837
+ ...g,
1838
+ children: /* @__PURE__ */ r.jsx(
1839
+ R,
1706
1840
  {
1707
- as: a,
1841
+ as: l,
1708
1842
  size: "sm",
1709
- color: getIconColorFromVariant(r)
1843
+ color: bt(i)
1710
1844
  }
1711
1845
  )
1712
1846
  }
1713
1847
  );
1714
1848
  }
1715
- ), ButtonMenuIconRoot = forwardRef(
1849
+ ), vt = f(
1716
1850
  (e, t) => {
1717
1851
  const {
1718
- as: r = EllipsisVerticalIcon,
1719
- children: i,
1852
+ as: i = ue,
1853
+ children: n,
1720
1854
  onOpenChange: s,
1721
- onClick: n,
1722
- placement: a,
1723
- container: l,
1724
- preserve: u,
1725
- ...c
1726
- } = e ?? {}, [f, o] = useState(!1);
1727
- useEffect(() => {
1728
- s?.(f);
1729
- }, [f, s]);
1730
- const d = () => {
1731
- o(!1);
1732
- }, h = (m) => {
1733
- o((y) => !y), n?.(m);
1734
- };
1735
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1736
- Menu,
1737
- {
1738
- isOpen: f,
1739
- onOutsideClick: d,
1740
- placement: a,
1741
- container: l,
1742
- preserve: u,
1743
- content: /* @__PURE__ */ jsxRuntimeExports.jsx(Menu.Content, { children: i }),
1744
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ButtonIcon, { ref: t, as: r, onClick: h, ...c })
1745
- }
1746
- );
1747
- }
1748
- ), ButtonMenuIcon = Object.assign(ButtonMenuIconRoot, {
1749
- Item: Menu.Item
1750
- }), buttonFloatVariants = cva(
1751
- [
1752
- "inline-flex items-center justify-center gap-2",
1753
- "rounded-lg",
1754
- "font-medium",
1755
- "transition-all",
1756
- "duration-200",
1757
- "focus-visible:outline-none",
1758
- "focus-visible:ring-2",
1759
- "focus-visible:ring-offset-2",
1760
- "disabled:opacity-50",
1761
- "disabled:pointer-events-none",
1762
- "select-none",
1763
- "shadow-lg",
1764
- "transition-transform",
1765
- "transition-shadow",
1766
- "will-change-transform,opacity,box-shadow",
1767
- "hover:scale-105",
1768
- "active:scale-95",
1769
- "focus-visible:shadow-xl",
1770
- "hover:shadow-xl",
1771
- "active:shadow-md"
1772
- ].join(" "),
1773
- {
1774
- variants: {
1775
- variant: {
1776
- primary: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1777
- secondary: "bg-secondary text-white hover:bg-secondary/90 focus-visible:ring-secondary-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1778
- tertiary: "bg-tertiary text-white hover:bg-tertiary/90 focus-visible:ring-tertiary-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1779
- ghost: "bg-white text-foreground hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1780
- neutral: "bg-neutral text-foreground border border-border hover:bg-neutral/80 focus-visible:ring-foreground-light focus-visible:ring-offset-white shadow-sm",
1781
- "primary-outline": "border border-primary text-primary bg-white hover:bg-primary hover:text-white focus-visible:ring-primary-light focus-visible:ring-offset-white transition-all",
1782
- "secondary-outline": "border border-secondary text-secondary bg-white hover:bg-secondary hover:text-white focus-visible:ring-secondary-light focus-visible:ring-offset-white transition-all",
1783
- "tertiary-outline": "border border-tertiary text-tertiary bg-white hover:bg-tertiary hover:text-white focus-visible:ring-tertiary-light focus-visible:ring-offset-white transition-all",
1784
- "ghost-outline": "border border-ghost text-ghost bg-white hover:bg-ghost hover:text-white focus-visible:ring-ghost-light focus-visible:ring-offset-white transition-all",
1785
- "neutral-outline": "border border-border text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
1786
- "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
1787
- "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
1788
- "tertiary-ghost": "text-tertiary bg-white hover:bg-tertiary/20 focus-visible:ring-tertiary focus-visible:ring-offset-white",
1789
- "neutral-ghost": "text-foreground bg-white hover:bg-neutral/50 focus-visible:ring-foreground focus-visible:ring-offset-white",
1790
- success: "bg-success text-white hover:bg-success/90 focus-visible:ring-success-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1791
- "success-outline": "border border-success text-success bg-white hover:bg-success hover:text-white focus-visible:ring-success-light focus-visible:ring-offset-white transition-all",
1792
- "success-ghost": "text-success bg-white hover:bg-success/20 focus-visible:ring-success-light focus-visible:ring-offset-white",
1793
- info: "bg-info text-white hover:bg-info/90 focus-visible:ring-info-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1794
- "info-outline": "border border-info text-info bg-white hover:bg-info hover:text-white focus-visible:ring-info-light focus-visible:ring-offset-white transition-all",
1795
- "info-ghost": "text-info bg-white hover:bg-info/20 focus-visible:ring-info-light focus-visible:ring-offset-white",
1796
- warning: "bg-warning text-white hover:bg-warning/90 focus-visible:ring-warning-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1797
- "warning-outline": "border border-warning text-warning bg-white hover:bg-warning hover:text-white focus-visible:ring-warning-light focus-visible:ring-offset-white transition-all",
1798
- "warning-ghost": "text-warning bg-white hover:bg-warning/20 focus-visible:ring-warning-light focus-visible:ring-offset-white",
1799
- danger: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-light focus-visible:ring-offset-white shadow-sm hover:shadow-md",
1800
- "danger-outline": "border border-danger text-danger bg-white hover:bg-danger hover:text-white focus-visible:ring-danger-light focus-visible:ring-offset-white transition-all",
1801
- "danger-ghost": "text-danger bg-white hover:bg-danger/20 focus-visible:ring-danger-light focus-visible:ring-offset-white",
1802
- outline: "border border-border text-foreground bg-white hover:bg-accent-soft focus-visible:ring-accent-soft focus-visible:ring-offset-white transition-all",
1803
- destructive: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-soft focus-visible:ring-offset-white shadow-sm hover:shadow-md"
1804
- },
1805
- size: {
1806
- sm: "h-12 w-12 min-w-12 min-h-12 text-base",
1807
- md: "h-14 w-14 min-w-14 min-h-14 text-lg",
1808
- lg: "h-16 w-16 min-w-16 min-h-16 text-xl"
1809
- }
1810
- },
1811
- defaultVariants: {
1812
- variant: "primary",
1813
- size: "md"
1814
- }
1815
- }
1816
- );
1817
- function useFloatingPosition(e, t = "1rem") {
1818
- const r = useRef(null), [i, s] = useState({}), [n, a] = useState("fixed bottom-4 right-4"), l = useCallback(() => {
1819
- const c = r.current;
1820
- if (!c) return;
1821
- const o = c.getBoundingClientRect().height > window.innerHeight;
1822
- let d = {}, h = "";
1823
- o ? (d = {
1824
- position: "fixed",
1825
- bottom: t,
1826
- zIndex: 50,
1827
- transform: `translateY(${c.scrollTop}px)`
1828
- }, h = `fixed bottom-4 ${e}-4`) : (d = {
1829
- position: "fixed",
1830
- bottom: t,
1831
- zIndex: 50
1832
- }, h = `fixed bottom-4 ${e}-4`), s(d), a(h);
1833
- }, [e, t]);
1834
- return useEffect(() => {
1835
- l();
1836
- const c = r.current;
1837
- return c && c.addEventListener("scroll", l), window.addEventListener("resize", l), () => {
1838
- c && c.removeEventListener("scroll", l), window.removeEventListener("resize", l);
1839
- };
1840
- }, [l]), useEffect(() => {
1841
- r.current && l();
1842
- }, [e, t, l]), [useCallback(
1843
- (c) => {
1844
- r.current = c, c && l();
1845
- },
1846
- [l]
1847
- ), i, n];
1848
- }
1849
- const ButtonFloat = forwardRef(
1850
- function({
1851
- className: t,
1852
- variant: r = "primary",
1853
- size: i = "md",
1854
- side: s = "right",
1855
- offset: n = "1rem",
1856
- ...a
1857
- }, l) {
1858
- const [u, c, f] = useFloatingPosition(
1859
- s,
1860
- n
1861
- ), [o, d] = useState(!1);
1862
- return useEffect(() => {
1863
- d(!0);
1864
- }, []), /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: u, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1865
- "button",
1866
- {
1867
- ref: l,
1868
- type: a.type || "button",
1869
- className: cn(
1870
- buttonFloatVariants({ variant: r, size: i }),
1871
- f,
1872
- o && "animate-fab-in",
1873
- t
1874
- ),
1875
- style: c,
1876
- ...a
1877
- }
1878
- ) });
1879
- }
1880
- ), calculatorRootVariants = cva(
1881
- "flex flex-col w-full max-w-xs rounded-lg bg-background",
1882
- {
1883
- variants: {
1884
- disabled: {
1885
- true: "opacity-60 pointer-events-none",
1886
- false: ""
1887
- }
1888
- },
1889
- defaultVariants: {
1890
- disabled: !1
1891
- }
1892
- }
1893
- ), calculatorButtonVariants = cva(
1894
- "flex-1 min-w-0 h-12 m-0.5 rounded text-lg font-medium transition-colors select-none",
1895
- {
1896
- variants: {
1897
- variant: {
1898
- default: "bg-neutral text-foreground hover:bg-neutral-soft hover:text-neutral",
1899
- action: "bg-primary text-white hover:bg-primary-soft hover:text-primary",
1900
- operator: "bg-secondary text-white hover:bg-secondary-soft hover:text-secondary",
1901
- danger: "bg-danger text-white hover:bg-danger-soft hover:text-danger"
1902
- },
1903
- disabled: {
1904
- true: "opacity-50 pointer-events-none",
1905
- false: ""
1906
- }
1907
- },
1908
- defaultVariants: {
1909
- variant: "default",
1910
- disabled: !1
1911
- }
1912
- }
1913
- ), CalculatorButton = forwardRef(({ variant: e = "default", className: t, ...r }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1914
- "button",
1915
- {
1916
- ref: i,
1917
- type: "button",
1918
- className: cn(
1919
- calculatorButtonVariants({ variant: e, disabled: r.disabled }),
1920
- t
1921
- ),
1922
- ...r
1923
- }
1924
- ));
1925
- function useCalculator({
1926
- initialValue = "",
1927
- disabled,
1928
- onChange
1929
- }) {
1930
- const [input, setInput] = useState(String(initialValue)), inputRef = useRef(null);
1931
- useEffect(() => {
1932
- setInput(String(initialValue));
1933
- }, [initialValue]);
1934
- const evaluate = useCallback((expr) => {
1935
- try {
1936
- if (!/^[-+*/.\d\s]+$/.test(expr)) return "";
1937
- const result = eval(expr);
1938
- return result?.toString() ?? "";
1939
- } catch {
1940
- return "";
1941
- }
1942
- }, []), handleButton = useCallback(
1943
- (e) => {
1944
- if (!disabled)
1945
- if (e === "C")
1946
- setInput("");
1947
- else if (e === "⌫")
1948
- setInput((t) => t.slice(0, -1));
1949
- else if (e === "=") {
1950
- const t = evaluate(input);
1951
- setInput(t);
1952
- } else
1953
- setInput((t) => t + e);
1954
- },
1955
- [disabled, input, evaluate]
1956
- );
1957
- useEffect(() => {
1958
- if (onChange) {
1959
- const e = evaluate(input);
1960
- onChange(e);
1961
- }
1962
- }, [evaluate, input, onChange]), useEffect(() => {
1963
- if (disabled) return;
1964
- const e = (t) => {
1965
- if (document.activeElement !== inputRef.current && document.activeElement?.tagName !== "BODY")
1966
- return;
1967
- const r = t.key;
1968
- r === "Enter" || r === "=" ? (handleButton("="), t.preventDefault()) : r === "Backspace" ? (handleButton("⌫"), t.preventDefault()) : r === "Escape" || r === "C" || r === "c" ? (handleButton("C"), t.preventDefault()) : (/^[0-9]$/.test(r) || ["/", "*", "-", "+", "."].includes(r)) && (handleButton(r), t.preventDefault());
1855
+ onClick: o,
1856
+ placement: l,
1857
+ container: d,
1858
+ preserve: g,
1859
+ ...h
1860
+ } = e ?? {}, [m, c] = L(!1);
1861
+ A(() => {
1862
+ s?.(m);
1863
+ }, [m, s]);
1864
+ const v = () => {
1865
+ c(!1);
1866
+ }, y = (j) => {
1867
+ c((C) => !C), o?.(j);
1969
1868
  };
1970
- return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
1971
- }, [handleButton, disabled]), useEffect(() => {
1972
- disabled || inputRef.current?.focus();
1973
- }, [disabled]);
1974
- const handleInput = (e) => {
1975
- const t = e.target.value.replace(/[^\d+\-*/.]/g, "");
1976
- setInput(t);
1977
- };
1978
- return {
1979
- input,
1980
- inputRef,
1981
- handleButton,
1982
- handleInput
1983
- };
1984
- }
1985
- const BUTTONS = [
1986
- ["7", "8", "9", "/"],
1987
- ["4", "5", "6", "*"],
1988
- ["1", "2", "3", "-"],
1989
- ["0", ".", "=", "+"]
1990
- ], Calculator = forwardRef(
1991
- ({
1992
- initialValue: e = "",
1993
- onChange: t,
1994
- disabled: r,
1995
- className: i,
1996
- "aria-label": s
1997
- }, n) => {
1998
- const { input: a, inputRef: l, handleButton: u, handleInput: c } = useCalculator({
1999
- initialValue: e,
2000
- disabled: r,
2001
- onChange: t
2002
- });
2003
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2004
- "div",
2005
- {
2006
- ref: n,
2007
- className: cn(calculatorRootVariants({ disabled: r }), i),
2008
- "aria-label": s || "Calculator",
2009
- role: "region",
2010
- children: [
2011
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2012
- "input",
2013
- {
2014
- ref: l,
2015
- className: "w-full mb-3 px-3 py-2 rounded border border-[var(--color-neutral)] bg-[var(--color-neutral-soft)] text-right text-xl font-mono focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]",
2016
- value: a,
2017
- onChange: c,
2018
- disabled: r,
2019
- inputMode: "decimal",
2020
- "aria-label": "Calculator input"
2021
- }
2022
- ),
2023
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-1 mb-3", children: BUTTONS.map((f, o) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex w-full", children: f.map((d) => d === "⌫" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
2024
- ButtonIcon,
2025
- {
2026
- as: X,
2027
- variant: "danger-ghost",
2028
- "aria-label": "Backspace",
2029
- size: "md",
2030
- onClick: () => u("⌫"),
2031
- disabled: r
2032
- },
2033
- "backspace"
2034
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
2035
- CalculatorButton,
2036
- {
2037
- variant: d === "=" ? "action" : d === "C" ? "danger" : ["/", "*", "-", "+", "/"].includes(d) ? "operator" : "default",
2038
- onClick: () => u(d),
2039
- disabled: r,
2040
- "aria-label": d,
2041
- children: d
2042
- },
2043
- d
2044
- )) }, o)) })
2045
- ]
1869
+ return /* @__PURE__ */ r.jsx(
1870
+ M,
1871
+ {
1872
+ isOpen: m,
1873
+ onOutsideClick: v,
1874
+ placement: l,
1875
+ container: d,
1876
+ preserve: g,
1877
+ content: /* @__PURE__ */ r.jsx(M.Content, { children: n }),
1878
+ children: /* @__PURE__ */ r.jsx(wt, { ref: t, as: i, onClick: y, ...h })
2046
1879
  }
2047
1880
  );
2048
1881
  }
2049
- );
2050
- Calculator.displayName = "Calculator";
2051
- const cardVariants = cva(
1882
+ ), tr = Object.assign(vt, {
1883
+ Item: M.Item
1884
+ }), xt = w(
2052
1885
  "flex justify-between transition-colors duration-200 w-full",
2053
1886
  {
2054
1887
  variants: {
@@ -2080,8 +1913,8 @@ const cardVariants = cva(
2080
1913
  as: "button"
2081
1914
  }
2082
1915
  }
2083
- ), CardList = forwardRef(
2084
- ({ children: e }, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1916
+ ), pt = f(
1917
+ ({ children: e }, t) => /* @__PURE__ */ r.jsx(
2085
1918
  "ul",
2086
1919
  {
2087
1920
  ref: t,
@@ -2089,76 +1922,76 @@ const cardVariants = cva(
2089
1922
  children: e
2090
1923
  }
2091
1924
  )
2092
- ), CardListItem = forwardRef(
2093
- ({ children: e }, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1925
+ ), yt = f(
1926
+ ({ children: e }, t) => /* @__PURE__ */ r.jsx(
2094
1927
  "li",
2095
1928
  {
2096
1929
  ref: t,
2097
1930
  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",
2098
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "gray", ellipsis: !0, clamp: 1, children: e })
1931
+ children: /* @__PURE__ */ r.jsx(z, { as: "span", fontSize: "sm", color: "gray", ellipsis: !0, clamp: 1, children: e })
2099
1932
  }
2100
1933
  )
2101
- ), CardRoot = forwardRef(
1934
+ ), jt = f(
2102
1935
  ({
2103
1936
  size: e = "md",
2104
1937
  shape: t = "rounded",
2105
- avatar: r,
2106
- title: i,
1938
+ avatar: i,
1939
+ title: n,
2107
1940
  subtitle: s,
2108
- badge: n,
2109
- supplementaryInfo: a,
2110
- bordered: l = !1,
2111
- as: u = "button",
2112
- className: c,
2113
- ...f
2114
- }, o) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2115
- u,
1941
+ badge: o,
1942
+ supplementaryInfo: l,
1943
+ bordered: d = !1,
1944
+ as: g = "button",
1945
+ className: h,
1946
+ ...m
1947
+ }, c) => /* @__PURE__ */ r.jsx(
1948
+ g,
2116
1949
  {
2117
- ref: o,
2118
- className: cn(
2119
- cardVariants({ size: e, shape: t, bordered: l, as: u }),
2120
- c,
1950
+ ref: c,
1951
+ className: u(
1952
+ xt({ size: e, shape: t, bordered: d, as: g }),
1953
+ h,
2121
1954
  "@container/card"
2122
1955
  ),
2123
- ...f,
2124
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-3 @sm/card:gap-4 w-full", children: [
2125
- r && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0", children: r }),
2126
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-full min-w-0", children: [
2127
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-start justify-between gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
2128
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2129
- Text,
1956
+ ...m,
1957
+ children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-start gap-3 @sm/card:gap-4 w-full", children: [
1958
+ i && /* @__PURE__ */ r.jsx("div", { className: "flex-shrink-0", children: i }),
1959
+ /* @__PURE__ */ r.jsxs("div", { className: "w-full min-w-0", children: [
1960
+ /* @__PURE__ */ r.jsx("div", { className: "mb-2", children: /* @__PURE__ */ r.jsx("div", { className: "flex items-start justify-between gap-2", children: /* @__PURE__ */ r.jsxs("div", { className: "flex-1 min-w-0", children: [
1961
+ /* @__PURE__ */ r.jsx(
1962
+ z,
2130
1963
  {
2131
1964
  as: "h3",
2132
1965
  fontSize: "base",
2133
1966
  fontWeight: "semibold",
2134
1967
  className: "break-words leading-tight",
2135
- children: i
1968
+ children: n
2136
1969
  }
2137
1970
  ),
2138
- s && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-1", children: typeof s == "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "sm", color: "gray", children: s }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-w-0 overflow-hidden", children: s }) })
1971
+ s && /* @__PURE__ */ r.jsx("div", { className: "mt-1", children: typeof s == "string" ? /* @__PURE__ */ r.jsx(z, { as: "p", fontSize: "sm", color: "gray", children: s }) : /* @__PURE__ */ r.jsx("div", { className: "min-w-0 overflow-hidden", children: s }) })
2139
1972
  ] }) }) }),
2140
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 @sm/card:flex-row @sm/card:justify-between @sm/card:items-center", children: [
2141
- n && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "order-1 @sm/card:order-none overflow-hidden", children: n }),
2142
- a && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 order-2 @sm/card:order-none @sm/card:ml-auto", children: typeof a == "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
2143
- Text,
1973
+ /* @__PURE__ */ r.jsxs("div", { className: "flex flex-col gap-2 @sm/card:flex-row @sm/card:justify-between @sm/card:items-center", children: [
1974
+ o && /* @__PURE__ */ r.jsx("div", { className: "order-1 @sm/card:order-none overflow-hidden", children: o }),
1975
+ l && /* @__PURE__ */ r.jsx("div", { className: "flex-shrink-0 order-2 @sm/card:order-none @sm/card:ml-auto", children: typeof l == "string" ? /* @__PURE__ */ r.jsx(
1976
+ z,
2144
1977
  {
2145
1978
  as: "p",
2146
1979
  fontSize: "sm",
2147
1980
  color: "gray",
2148
1981
  className: "truncate",
2149
1982
  align: "right",
2150
- children: a
1983
+ children: l
2151
1984
  }
2152
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "overflow-hidden", children: a }) })
1985
+ ) : /* @__PURE__ */ r.jsx("div", { className: "overflow-hidden", children: l }) })
2153
1986
  ] })
2154
1987
  ] })
2155
1988
  ] })
2156
1989
  }
2157
1990
  )
2158
- ), Card = Object.assign(CardRoot, {
2159
- List: CardList,
2160
- ListItem: CardListItem
2161
- }), filterChipVariants = cva(
1991
+ ), rr = Object.assign(jt, {
1992
+ List: pt,
1993
+ ListItem: yt
1994
+ }), kt = w(
2162
1995
  "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",
2163
1996
  {
2164
1997
  variants: {
@@ -2196,34 +2029,34 @@ const cardVariants = cva(
2196
2029
  size: "md"
2197
2030
  }
2198
2031
  }
2199
- ), FilterChip = React__default.forwardRef(
2200
- function e({
2032
+ ), ir = H.forwardRef(
2033
+ function({
2201
2034
  className: t,
2202
- variant: r = "neutral-outline",
2203
- size: i = "md",
2035
+ variant: i = "neutral-outline",
2036
+ size: n = "md",
2204
2037
  disabled: s = !1,
2205
- children: n,
2206
- ...a
2207
- }, l) {
2208
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2038
+ children: o,
2039
+ ...l
2040
+ }, d) {
2041
+ return /* @__PURE__ */ r.jsxs(
2209
2042
  "button",
2210
2043
  {
2211
- ref: l,
2044
+ ref: d,
2212
2045
  type: "button",
2213
- className: cn(filterChipVariants({ variant: r, size: i }), t),
2046
+ className: u(kt({ variant: i, size: n }), t),
2214
2047
  disabled: s,
2215
2048
  "aria-disabled": s,
2216
- "aria-label": `${n}, removable`,
2049
+ "aria-label": `${o}, removable`,
2217
2050
  inert: s ? !0 : void 0,
2218
- ...a,
2051
+ ...l,
2219
2052
  children: [
2220
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-shrink-0", children: n }),
2221
- /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { as: XIcon, color: "inherit", size: i === "lg" ? "md" : "sm" })
2053
+ /* @__PURE__ */ r.jsx("span", { className: "flex-shrink-0", children: o }),
2054
+ /* @__PURE__ */ r.jsx(R, { as: fe, color: "inherit", size: n === "lg" ? "md" : "sm" })
2222
2055
  ]
2223
2056
  }
2224
2057
  );
2225
2058
  }
2226
- ), hrVariants = cva("h-px w-full bg-border border-0", {
2059
+ ), Nt = w("h-px w-full bg-border border-0", {
2227
2060
  variants: {
2228
2061
  hasMargin: {
2229
2062
  true: "mb-4",
@@ -2233,16 +2066,16 @@ const cardVariants = cva(
2233
2066
  defaultVariants: {
2234
2067
  hasMargin: !1
2235
2068
  }
2236
- }), Hr = forwardRef(
2237
- ({ hasMargin: e = !1, className: t, ...r }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2069
+ }), sr = f(
2070
+ ({ hasMargin: e = !1, className: t, ...i }, n) => /* @__PURE__ */ r.jsx(
2238
2071
  "hr",
2239
2072
  {
2240
- ref: i,
2241
- className: cn(hrVariants({ hasMargin: e }), t),
2242
- ...r
2073
+ ref: n,
2074
+ className: u(Nt({ hasMargin: e }), t),
2075
+ ...i
2243
2076
  }
2244
2077
  )
2245
- ), noResultsVariants = cva(
2078
+ ), Et = w(
2246
2079
  "flex flex-col items-center justify-center text-center border border-border rounded-lg bg-background",
2247
2080
  {
2248
2081
  variants: {
@@ -2261,37 +2094,37 @@ const cardVariants = cva(
2261
2094
  hasGrayBackground: !1
2262
2095
  }
2263
2096
  }
2264
- ), noResultsHeaderVariants = cva(
2097
+ ), Ct = w(
2265
2098
  "flex flex-row items-center gap-3 mb-2"
2266
- ), NoResults = React__default.forwardRef(
2267
- function e({ icon: t, title: r, subtitle: i, action: s, className: n, hasGrayBackground: a, ...l }, u) {
2268
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2099
+ ), nr = H.forwardRef(
2100
+ function({ icon: t, title: i, subtitle: n, action: s, className: o, hasGrayBackground: l, ...d }, g) {
2101
+ return /* @__PURE__ */ r.jsxs(
2269
2102
  "section",
2270
2103
  {
2271
- ref: u,
2272
- className: cn(noResultsVariants({ hasGrayBackground: a }), n),
2104
+ ref: g,
2105
+ className: u(Et({ hasGrayBackground: l }), o),
2273
2106
  role: "status",
2274
2107
  "aria-label": "No results found",
2275
- ...l,
2108
+ ...d,
2276
2109
  children: [
2277
- /* @__PURE__ */ jsxRuntimeExports.jsxs("header", { className: noResultsHeaderVariants(), children: [
2278
- /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { as: t, size: "lg", color: "ghost", "aria-hidden": "true" }),
2279
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "h2", fontSize: "lg", children: r })
2110
+ /* @__PURE__ */ r.jsxs("header", { className: Ct(), children: [
2111
+ /* @__PURE__ */ r.jsx(R, { as: t, size: "lg", color: "ghost", "aria-hidden": "true" }),
2112
+ /* @__PURE__ */ r.jsx(z, { as: "h2", fontSize: "lg", children: i })
2280
2113
  ] }),
2281
- i && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", align: "center", color: "gray", className: "mb-4", children: i }),
2282
- s && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "group", "aria-label": "Available actions", children: s })
2114
+ n && /* @__PURE__ */ r.jsx(z, { as: "p", align: "center", color: "gray", className: "mb-4", children: n }),
2115
+ s && /* @__PURE__ */ r.jsx("div", { role: "group", "aria-label": "Available actions", children: s })
2283
2116
  ]
2284
2117
  }
2285
2118
  );
2286
2119
  }
2287
- ), TableContext = createContext(null), TableProvider = TableContext.Provider;
2288
- function useTableContext() {
2289
- const e = useContext(TableContext);
2120
+ ), se = P(null), zt = se.Provider;
2121
+ function U() {
2122
+ const e = F(se);
2290
2123
  if (!e)
2291
2124
  throw new Error("Table compound components must be used within <Table>");
2292
2125
  return e;
2293
2126
  }
2294
- const getTableColumnClass = (e) => {
2127
+ const G = (e) => {
2295
2128
  if (e < 1 || e > 12)
2296
2129
  throw new Error("Column span must be between 1 and 12");
2297
2130
  switch (e) {
@@ -2322,7 +2155,7 @@ const getTableColumnClass = (e) => {
2322
2155
  default:
2323
2156
  return "grid-cols-2";
2324
2157
  }
2325
- }, getRowSpanClass = (e) => {
2158
+ }, Vt = (e) => {
2326
2159
  if (e < 1 || e > 12)
2327
2160
  throw new Error("Column span must be between 1 and 12");
2328
2161
  switch (e) {
@@ -2353,124 +2186,124 @@ const getTableColumnClass = (e) => {
2353
2186
  default:
2354
2187
  return "col-span-2";
2355
2188
  }
2356
- }, TableHeader = forwardRef(
2357
- ({ children: e, className: t, ...r }, i) => {
2358
- const { columns: s } = useTableContext();
2359
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
2189
+ }, It = f(
2190
+ ({ children: e, className: t, ...i }, n) => {
2191
+ const { columns: s } = U();
2192
+ return /* @__PURE__ */ r.jsx(
2360
2193
  "div",
2361
2194
  {
2362
2195
  role: "rowgroup",
2363
- className: cn("bg-neutral-soft", t),
2364
- ...r,
2365
- ref: i,
2366
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2196
+ className: u("bg-neutral-soft", t),
2197
+ ...i,
2198
+ ref: n,
2199
+ children: /* @__PURE__ */ r.jsx(
2367
2200
  "div",
2368
2201
  {
2369
2202
  role: "row",
2370
- className: cn("grid gap-4", getTableColumnClass(s)),
2203
+ className: u("grid gap-4", G(s)),
2371
2204
  children: e
2372
2205
  }
2373
2206
  )
2374
2207
  }
2375
2208
  );
2376
2209
  }
2377
- ), TableBody = forwardRef(
2378
- ({ children: e, className: t, ...r }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "rowgroup", ref: i, className: cn(t), ...r, children: e })
2379
- ), TableFooter = forwardRef(
2380
- ({ children: e, className: t, ...r }, i) => {
2381
- const { columns: s } = useTableContext();
2382
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
2210
+ ), Lt = f(
2211
+ ({ children: e, className: t, ...i }, n) => /* @__PURE__ */ r.jsx("div", { role: "rowgroup", ref: n, className: u(t), ...i, children: e })
2212
+ ), At = f(
2213
+ ({ children: e, className: t, ...i }, n) => {
2214
+ const { columns: s } = U();
2215
+ return /* @__PURE__ */ r.jsx(
2383
2216
  "div",
2384
2217
  {
2385
2218
  role: "rowgroup",
2386
- className: cn("bg-neutral-soft", t),
2387
- ...r,
2388
- ref: i,
2389
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2219
+ className: u("bg-neutral-soft", t),
2220
+ ...i,
2221
+ ref: n,
2222
+ children: /* @__PURE__ */ r.jsx(
2390
2223
  "div",
2391
2224
  {
2392
2225
  role: "row",
2393
- className: cn("grid gap-4", getTableColumnClass(s)),
2226
+ className: u("grid gap-4", G(s)),
2394
2227
  children: e
2395
2228
  }
2396
2229
  )
2397
2230
  }
2398
2231
  );
2399
2232
  }
2400
- ), TableRow = forwardRef(
2401
- ({ children: e, className: t, ...r }, i) => {
2402
- const { columns: s } = useTableContext();
2403
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
2233
+ ), Mt = f(
2234
+ ({ children: e, className: t, ...i }, n) => {
2235
+ const { columns: s } = U();
2236
+ return /* @__PURE__ */ r.jsx(
2404
2237
  "div",
2405
2238
  {
2406
2239
  role: "row",
2407
- className: cn(
2240
+ className: u(
2408
2241
  "grid gap-4",
2409
- getTableColumnClass(s),
2242
+ G(s),
2410
2243
  "border-b border-border last:border-0",
2411
2244
  t
2412
2245
  ),
2413
- ref: i,
2414
- ...r,
2246
+ ref: n,
2247
+ ...i,
2415
2248
  children: e
2416
2249
  }
2417
2250
  );
2418
2251
  }
2419
- ), TableColumn = forwardRef(
2420
- ({ as: e = "td", span: t, align: r = "left", children: i, className: s, ...n }, a) => {
2421
- const l = e === "th" ? "columnheader" : "cell";
2422
- let u = "text-left";
2423
- return r === "center" ? u = "text-center" : r === "right" && (u = "text-right"), /* @__PURE__ */ jsxRuntimeExports.jsx(
2252
+ ), ne = f(
2253
+ ({ as: e = "td", span: t, align: i = "left", children: n, className: s, ...o }, l) => {
2254
+ const d = e === "th" ? "columnheader" : "cell";
2255
+ let g = "text-left";
2256
+ return i === "center" ? g = "text-center" : i === "right" && (g = "text-right"), /* @__PURE__ */ r.jsx(
2424
2257
  "div",
2425
2258
  {
2426
- ref: a,
2427
- role: l,
2428
- className: cn(
2259
+ ref: l,
2260
+ role: d,
2261
+ className: u(
2429
2262
  "px-4 py-2",
2430
2263
  "[&:not(:last-child)]:border-r [&:not(:last-child)]:border-border",
2431
- getRowSpanClass(t),
2432
- u,
2264
+ Vt(t),
2265
+ g,
2433
2266
  "truncate overflow-hidden whitespace-nowrap",
2434
2267
  s
2435
2268
  ),
2436
- ...n,
2437
- children: i
2269
+ ...o,
2270
+ children: n
2438
2271
  }
2439
2272
  );
2440
2273
  }
2441
- ), TableRowItem = forwardRef(
2442
- (e, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2443
- TableColumn,
2274
+ ), Rt = f(
2275
+ (e, t) => /* @__PURE__ */ r.jsx(
2276
+ ne,
2444
2277
  {
2445
2278
  ...e,
2446
2279
  as: "td",
2447
2280
  ref: t,
2448
- className: cn(
2281
+ className: u(
2449
2282
  "truncate overflow-hidden whitespace-nowrap",
2450
2283
  e.className
2451
2284
  )
2452
2285
  }
2453
2286
  )
2454
- ), TableHeaderItem = forwardRef(
2455
- (e, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2456
- TableColumn,
2287
+ ), St = f(
2288
+ (e, t) => /* @__PURE__ */ r.jsx(
2289
+ ne,
2457
2290
  {
2458
2291
  ...e,
2459
2292
  as: "th",
2460
2293
  ref: t,
2461
- className: cn(
2294
+ className: u(
2462
2295
  "truncate overflow-hidden whitespace-nowrap",
2463
2296
  e.className
2464
2297
  )
2465
2298
  }
2466
2299
  )
2467
- ), TableRoot = forwardRef(
2468
- ({ children: e, className: t, columns: r = 12, ...i }, s) => /* @__PURE__ */ jsxRuntimeExports.jsx(TableProvider, { value: { columns: r }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2300
+ ), Wt = f(
2301
+ ({ children: e, className: t, columns: i = 12, ...n }, s) => /* @__PURE__ */ r.jsx(zt, { value: { columns: i }, children: /* @__PURE__ */ r.jsx(
2469
2302
  "div",
2470
2303
  {
2471
2304
  ref: s,
2472
2305
  role: "table",
2473
- className: cn(
2306
+ className: u(
2474
2307
  // Versaur design system: border, background, shadow, rounded, spacing
2475
2308
  "w-full overflow-x-auto border border-border bg-background rounded-lg ",
2476
2309
  "text-foreground",
@@ -2478,18 +2311,18 @@ const getTableColumnClass = (e) => {
2478
2311
  "transition-colors",
2479
2312
  t
2480
2313
  ),
2481
- ...i,
2314
+ ...n,
2482
2315
  children: e
2483
2316
  }
2484
2317
  ) })
2485
- ), Table = Object.assign(TableRoot, {
2486
- Header: TableHeader,
2487
- HeaderItem: TableHeaderItem,
2488
- Body: TableBody,
2489
- Footer: TableFooter,
2490
- Row: TableRow,
2491
- RowItem: TableRowItem
2492
- }), tileVariants = cva(
2318
+ ), or = Object.assign(Wt, {
2319
+ Header: It,
2320
+ HeaderItem: St,
2321
+ Body: Lt,
2322
+ Footer: At,
2323
+ Row: Mt,
2324
+ RowItem: Rt
2325
+ }), Bt = w(
2493
2326
  // Base classes
2494
2327
  "block transition-colors duration-200",
2495
2328
  {
@@ -2524,40 +2357,40 @@ const getTableColumnClass = (e) => {
2524
2357
  shape: "rounded"
2525
2358
  }
2526
2359
  }
2527
- ), Tile = forwardRef(
2528
- ({ variant: e = "white", size: t = "md", shape: r = "rounded", className: i, ...s }, n) => /* @__PURE__ */ jsxRuntimeExports.jsx(
2360
+ ), ar = f(
2361
+ ({ variant: e = "white", size: t = "md", shape: i = "rounded", className: n, ...s }, o) => /* @__PURE__ */ r.jsx(
2529
2362
  "div",
2530
2363
  {
2531
- ref: n,
2532
- className: cn(tileVariants({ variant: e, size: t, shape: r }), i),
2364
+ ref: o,
2365
+ className: u(Bt({ variant: e, size: t, shape: i }), n),
2533
2366
  ...s
2534
2367
  }
2535
2368
  )
2536
2369
  );
2537
- function useImage({ src: e }) {
2538
- const [t, r] = useState(!1), [i, s] = useState(!1), n = useRef(!1), a = () => {
2539
- r(!0);
2540
- }, l = () => {
2370
+ function Ot({ src: e }) {
2371
+ const [t, i] = L(!1), [n, s] = L(!1), o = _(!1), l = () => {
2372
+ i(!0);
2373
+ }, d = () => {
2541
2374
  s(!0);
2542
2375
  };
2543
- return useEffect(() => {
2376
+ return A(() => {
2544
2377
  if (!e) return;
2545
- const u = new Image();
2546
- return u.src = e, u.onload = () => {
2547
- n.current || r(!0);
2548
- }, u.onerror = () => {
2549
- n.current || s(!0);
2378
+ const g = new Image();
2379
+ return g.src = e, g.onload = () => {
2380
+ o.current || i(!0);
2381
+ }, g.onerror = () => {
2382
+ o.current || s(!0);
2550
2383
  }, () => {
2551
- n.current = !0;
2384
+ o.current = !0;
2552
2385
  };
2553
2386
  }, [e]), {
2554
2387
  loaded: t,
2555
- errored: i,
2556
- handleLoad: a,
2557
- handleError: l
2388
+ errored: n,
2389
+ handleLoad: l,
2390
+ handleError: d
2558
2391
  };
2559
2392
  }
2560
- const imageVariants = cva("block object-cover", {
2393
+ const Ht = w("block object-cover", {
2561
2394
  variants: {
2562
2395
  position: {
2563
2396
  cover: "object-cover",
@@ -2587,7 +2420,7 @@ const imageVariants = cva("block object-cover", {
2587
2420
  size: "auto",
2588
2421
  shape: "rectangle"
2589
2422
  }
2590
- }), imageAtomVariants = cva(
2423
+ }), oe = w(
2591
2424
  "flex items-center justify-center bg-neutral-soft text-ghost border border-border",
2592
2425
  {
2593
2426
  variants: {
@@ -2610,140 +2443,139 @@ const imageVariants = cva("block object-cover", {
2610
2443
  }
2611
2444
  }
2612
2445
  );
2613
- function BaseImageSkeleton({
2446
+ function Tt({
2614
2447
  className: e,
2615
2448
  shape: t,
2616
- size: r,
2617
- height: i,
2449
+ size: i,
2450
+ height: n,
2618
2451
  width: s
2619
2452
  }) {
2620
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
2621
- Skeleton,
2453
+ return /* @__PURE__ */ r.jsx(
2454
+ we,
2622
2455
  {
2623
- className: cn(imageAtomVariants({ shape: t, size: r }), e),
2624
- style: { height: i, width: s }
2456
+ className: u(oe({ shape: t, size: i }), e),
2457
+ style: { height: n, width: s }
2625
2458
  }
2626
2459
  );
2627
2460
  }
2628
- function BaseImageFallback({
2461
+ function qt({
2629
2462
  alt: e,
2630
2463
  width: t,
2631
- height: r,
2632
- className: i,
2464
+ height: i,
2465
+ className: n,
2633
2466
  style: s,
2634
- shape: n,
2635
- size: a
2467
+ shape: o,
2468
+ size: l
2636
2469
  }) {
2637
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
2470
+ return /* @__PURE__ */ r.jsxs(
2638
2471
  "div",
2639
2472
  {
2640
- className: imageAtomVariants({ shape: n, size: a, className: i }),
2641
- style: { width: t, height: r, ...s },
2473
+ className: oe({ shape: o, size: l, className: n }),
2474
+ style: { width: t, height: i, ...s },
2642
2475
  "aria-label": e,
2643
2476
  role: "img",
2644
2477
  children: [
2645
- /* @__PURE__ */ jsxRuntimeExports.jsx(
2646
- ImageOff,
2478
+ /* @__PURE__ */ r.jsx(
2479
+ be,
2647
2480
  {
2648
2481
  size: 32,
2649
2482
  style: { opacity: 0.5, marginRight: 4 },
2650
2483
  "aria-hidden": "true"
2651
2484
  }
2652
2485
  ),
2653
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { opacity: 0.7 }, children: e })
2486
+ /* @__PURE__ */ r.jsx("span", { style: { opacity: 0.7 }, children: e })
2654
2487
  ]
2655
2488
  }
2656
2489
  );
2657
2490
  }
2658
- const BaseImage = forwardRef(
2491
+ const $ = f(
2659
2492
  ({
2660
2493
  src: e,
2661
2494
  alt: t,
2662
- onLoad: r,
2663
- onError: i,
2495
+ onLoad: i,
2496
+ onError: n,
2664
2497
  width: s,
2665
- height: n,
2666
- loading: a = "lazy",
2667
- position: l = "cover",
2668
- size: u = "auto",
2669
- shape: c,
2670
- className: f,
2671
- ...o
2672
- }, d) => {
2673
- const { loaded: h, errored: m, handleLoad: y, handleError: w } = useImage({
2498
+ height: o,
2499
+ loading: l = "lazy",
2500
+ position: d = "cover",
2501
+ size: g = "auto",
2502
+ shape: h,
2503
+ className: m,
2504
+ ...c
2505
+ }, v) => {
2506
+ const { loaded: y, errored: j, handleLoad: C, handleError: N } = Ot({
2674
2507
  src: e
2675
- }), j = typeof s == "number" ? s : Number(s), E = typeof n == "number" ? n : Number(n);
2676
- return !h && !m ? /* @__PURE__ */ jsxRuntimeExports.jsx(
2677
- BaseImageSkeleton,
2508
+ }), I = typeof s == "number" ? s : Number(s), S = typeof o == "number" ? o : Number(o);
2509
+ return !y && !j ? /* @__PURE__ */ r.jsx(
2510
+ Tt,
2678
2511
  {
2679
- shape: c,
2680
- width: j,
2681
- height: E
2512
+ shape: h,
2513
+ width: I,
2514
+ height: S
2682
2515
  }
2683
- ) : m ? /* @__PURE__ */ jsxRuntimeExports.jsx(
2684
- BaseImageFallback,
2516
+ ) : j ? /* @__PURE__ */ r.jsx(
2517
+ qt,
2685
2518
  {
2686
- shape: c,
2519
+ shape: h,
2687
2520
  alt: t,
2688
- width: j,
2689
- height: E
2521
+ width: I,
2522
+ height: S
2690
2523
  }
2691
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
2524
+ ) : /* @__PURE__ */ r.jsx(
2692
2525
  "img",
2693
2526
  {
2694
- ref: d,
2527
+ ref: v,
2695
2528
  src: e,
2696
2529
  alt: t,
2697
- width: j,
2698
- height: E,
2699
- loading: a,
2700
- className: cn(
2701
- imageVariants({
2702
- position: l,
2703
- size: u,
2704
- shape: c
2530
+ width: I,
2531
+ height: S,
2532
+ loading: l,
2533
+ className: u(
2534
+ Ht({
2535
+ position: d,
2536
+ size: g,
2537
+ shape: h
2705
2538
  }),
2706
- f
2539
+ m
2707
2540
  ),
2708
- onLoad: (C) => {
2709
- y(), r?.(C);
2541
+ onLoad: (W) => {
2542
+ C(), i?.(W);
2710
2543
  },
2711
- onError: (C) => {
2712
- w(), i?.(C);
2544
+ onError: (W) => {
2545
+ N(), n?.(W);
2713
2546
  },
2714
- ...o
2547
+ ...c
2715
2548
  }
2716
2549
  );
2717
2550
  }
2718
- ), ImageCircle = forwardRef((e, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(BaseImage, { ref: t, ...e, shape: "circle" })), ImageSquare = forwardRef((e, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(BaseImage, { ref: t, ...e, shape: "square" })), ImageRectangle = forwardRef((e, t) => /* @__PURE__ */ jsxRuntimeExports.jsx(BaseImage, { ref: t, ...e, shape: "rectangle" }));
2551
+ ), lr = f((e, t) => /* @__PURE__ */ r.jsx($, { ref: t, ...e, shape: "circle" })), cr = f((e, t) => /* @__PURE__ */ r.jsx($, { ref: t, ...e, shape: "square" })), dr = f((e, t) => /* @__PURE__ */ r.jsx($, { ref: t, ...e, shape: "rectangle" }));
2719
2552
  export {
2720
- Accordion as A,
2721
- Badge as B,
2722
- Calculator as C,
2723
- FilterChip as F,
2724
- Heading as H,
2725
- Icon as I,
2726
- Menu as M,
2727
- NoResults as N,
2728
- OverlayPortal as O,
2729
- Table as T,
2730
- Alert as a,
2731
- Anchor as b,
2732
- Attribute as c,
2733
- AttributeList as d,
2734
- Avatar as e,
2735
- Brand as f,
2736
- Button as g,
2737
- ButtonMenu as h,
2738
- ButtonMenuIcon as i,
2739
- ButtonFloat as j,
2740
- ButtonIcon as k,
2741
- Card as l,
2742
- Hr as m,
2743
- Text as n,
2744
- Tile as o,
2745
- ImageCircle as p,
2746
- ImageSquare as q,
2747
- ImageRectangle as r,
2748
- BaseImage as s
2553
+ $t as A,
2554
+ Qt as B,
2555
+ rr as C,
2556
+ ir as F,
2557
+ Z as H,
2558
+ R as I,
2559
+ M,
2560
+ nr as N,
2561
+ nt as O,
2562
+ or as T,
2563
+ Xt as a,
2564
+ Yt as b,
2565
+ Dt as c,
2566
+ He as d,
2567
+ Jt as e,
2568
+ Kt as f,
2569
+ Zt as g,
2570
+ re as h,
2571
+ er as i,
2572
+ tr as j,
2573
+ wt as k,
2574
+ sr as l,
2575
+ z as m,
2576
+ ar as n,
2577
+ lr as o,
2578
+ cr as p,
2579
+ dr as q,
2580
+ $ as r
2749
2581
  };