@dimasbaguspm/versaur 0.0.27 → 0.0.29

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 (33) hide show
  1. package/dist/js/{bottom-sheet-DCwLmjiX.js → bottom-sheet-BKd7WCCS.js} +168 -152
  2. package/dist/js/{bottom-sheet-input-D14wjCoC.js → bottom-sheet-input-DrbGhcXv.js} +255 -244
  3. package/dist/js/forms/index.js +1 -1
  4. package/dist/js/{image-rectangle-BGLYH2Gl.js → image-rectangle-CF656HIm.js} +432 -274
  5. package/dist/js/index.js +63 -59
  6. package/dist/js/layouts/index.js +9 -8
  7. package/dist/js/navigation/index.js +1 -1
  8. package/dist/js/overlays/index.js +2 -2
  9. package/dist/js/primitive/index.js +22 -19
  10. package/dist/js/{tabs-C0hcpxNk.js → tabs-DoiqKzR9.js} +1 -1
  11. package/dist/js/{tooltip-DlbAOUeP.js → tooltip-D1-q8Ars.js} +16 -16
  12. package/dist/js/{top-bar-BA88ij4M.js → top-bar-B4SZ2YZC.js} +166 -104
  13. package/dist/types/forms/drawer-input/types.d.ts +1 -1
  14. package/dist/types/layouts/filter-chip-group/filter-chip-group.d.ts +27 -0
  15. package/dist/types/layouts/filter-chip-group/index.d.ts +2 -0
  16. package/dist/types/layouts/filter-chip-group/types.d.ts +32 -0
  17. package/dist/types/layouts/index.d.ts +1 -0
  18. package/dist/types/overlays/bottom-sheet/types.d.ts +4 -0
  19. package/dist/types/overlays/drawer/types.d.ts +5 -13
  20. package/dist/types/overlays/modal/types.d.ts +14 -4
  21. package/dist/types/primitive/attribute/attribute.d.ts +10 -0
  22. package/dist/types/primitive/attribute/index.d.ts +2 -0
  23. package/dist/types/primitive/attribute/types.d.ts +14 -0
  24. package/dist/types/primitive/attribute-list/attribute.atoms.d.ts +5 -0
  25. package/dist/types/primitive/attribute-list/attribute.d.ts +4 -0
  26. package/dist/types/primitive/attribute-list/index.d.ts +2 -0
  27. package/dist/types/primitive/attribute-list/types.d.ts +24 -0
  28. package/dist/types/primitive/filter-chip/filter-chip.d.ts +3 -0
  29. package/dist/types/primitive/filter-chip/index.d.ts +2 -0
  30. package/dist/types/primitive/filter-chip/types.d.ts +35 -0
  31. package/dist/types/primitive/index.d.ts +3 -0
  32. package/dist/utils/enforce-subpath-import.js +4 -0
  33. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { c as cva, j as jsxRuntimeExports, a as cn } from "./index-DOdDlCoL.js";
2
2
  import * as React from "react";
3
3
  import React__default, { forwardRef, useState, useEffect, useCallback, useRef, createContext, useContext } from "react";
4
- import { X, ChevronLeft, ChevronRight, ImageOff } from "lucide-react";
4
+ import { X, ChevronLeft, ChevronRight, XIcon, ImageOff } from "lucide-react";
5
5
  import { S as Skeleton } from "./skeleton-BNZyaRjo.js";
6
6
  const alertVariants = cva(
7
7
  "relative flex items-center gap-2 rounded-md p-2 text-sm transition-all duration-200",
@@ -146,18 +146,18 @@ const alertVariants = cva(
146
146
  color: t = "neutral",
147
147
  icon: r,
148
148
  className: s,
149
- children: n,
150
- ...i
149
+ children: i,
150
+ ...n
151
151
  }, o) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
152
152
  "div",
153
153
  {
154
154
  ref: o,
155
155
  role: "alert",
156
156
  className: cn(alertVariants({ variant: e, color: t }), s),
157
- ...i,
157
+ ...n,
158
158
  children: [
159
159
  r && /* @__PURE__ */ jsxRuntimeExports.jsx(AlertIcon, { children: r }),
160
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: n })
160
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: i })
161
161
  ]
162
162
  }
163
163
  )
@@ -226,22 +226,239 @@ const alertVariants = cva(
226
226
  className: t,
227
227
  color: r = "primary",
228
228
  fontSize: s = "base",
229
- fontWeight: n = "medium",
230
- quiet: i = !1,
229
+ fontWeight: i = "medium",
230
+ quiet: n = !1,
231
231
  ...o
232
232
  }, a) => /* @__PURE__ */ jsxRuntimeExports.jsx(
233
233
  "a",
234
234
  {
235
235
  ref: a,
236
236
  className: cn(
237
- anchorVariants({ color: r, fontSize: s, fontWeight: n, quiet: i }),
237
+ anchorVariants({ color: r, fontSize: s, fontWeight: i, quiet: n }),
238
238
  t
239
239
  ),
240
240
  ...o,
241
241
  children: e
242
242
  }
243
243
  )
244
- ), avatarVariants = cva(
244
+ ), textVariants = cva("", {
245
+ variants: {
246
+ color: {
247
+ primary: "text-primary",
248
+ secondary: "text-secondary",
249
+ tertiary: "text-tertiary",
250
+ ghost: "text-ghost",
251
+ neutral: "text-ghost",
252
+ success: "text-success",
253
+ info: "text-info",
254
+ warning: "text-warning",
255
+ danger: "text-danger",
256
+ inherit: "",
257
+ gray: "text-gray-500",
258
+ black: "text-black",
259
+ white: "text-white"
260
+ },
261
+ hasUnderline: {
262
+ true: "underline",
263
+ false: ""
264
+ },
265
+ isCapitalize: {
266
+ true: "capitalize",
267
+ false: ""
268
+ },
269
+ align: {
270
+ left: "text-left",
271
+ center: "text-center",
272
+ right: "text-right",
273
+ justify: "text-justify"
274
+ },
275
+ italic: {
276
+ true: "italic",
277
+ false: ""
278
+ },
279
+ clamp: {
280
+ 1: "line-clamp-1",
281
+ 2: "line-clamp-2",
282
+ 3: "line-clamp-3",
283
+ 4: "line-clamp-4",
284
+ 5: "line-clamp-5",
285
+ none: ""
286
+ },
287
+ ellipsis: {
288
+ true: "truncate",
289
+ false: ""
290
+ },
291
+ as: {
292
+ h1: "font-bold text-4xl leading-loose",
293
+ h2: "font-semibold text-3xl leading-relaxed",
294
+ h3: "font-medium text-2xl leading-relaxed",
295
+ h4: "font-bold text-xl leading-normal",
296
+ h5: "font-semibold text-lg leading-normal",
297
+ h6: "font-medium text-base leading-normal",
298
+ p: "font-normal text-base leading-normal",
299
+ span: "font-normal text-base leading-normal",
300
+ label: "font-normal text-xs leading-normal"
301
+ }
302
+ },
303
+ defaultVariants: {
304
+ color: "neutral",
305
+ hasUnderline: !1,
306
+ isCapitalize: !1,
307
+ align: "left",
308
+ italic: !1,
309
+ clamp: "none",
310
+ ellipsis: !1,
311
+ as: "span"
312
+ }
313
+ }), Text = forwardRef(
314
+ ({
315
+ as: e = "span",
316
+ color: t = "ghost",
317
+ hasUnderline: r = !1,
318
+ isCapitalize: s = !1,
319
+ align: i = "left",
320
+ italic: n = !1,
321
+ clamp: o = "none",
322
+ ellipsis: a = !1,
323
+ fontSize: l,
324
+ fontWeight: c,
325
+ className: x,
326
+ children: h,
327
+ ...d
328
+ }, p) => {
329
+ const f = [
330
+ "h1",
331
+ "h2",
332
+ "h3",
333
+ "h4",
334
+ "h5",
335
+ "h6",
336
+ "p",
337
+ "span",
338
+ "label"
339
+ ].includes(e) ? e : "span", v = l ? `text-${l}` : "", w = c ? `font-${c}` : "";
340
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
341
+ e,
342
+ {
343
+ ref: p,
344
+ className: cn(
345
+ textVariants({
346
+ color: t,
347
+ hasUnderline: r,
348
+ isCapitalize: s,
349
+ align: i,
350
+ italic: n,
351
+ clamp: o,
352
+ ellipsis: a,
353
+ // @ts-expect-error - `as` is not a valid variant
354
+ as: f
355
+ }),
356
+ v,
357
+ w,
358
+ x
359
+ ),
360
+ ...d,
361
+ children: h
362
+ }
363
+ );
364
+ }
365
+ ), Attribute = forwardRef(
366
+ function({ title: t, children: r, className: s, ...i }, n) {
367
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: n, className: cn("space-y-1", s), ...i, children: [
368
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
369
+ Text,
370
+ {
371
+ as: "h4",
372
+ fontSize: "sm",
373
+ fontWeight: "normal",
374
+ color: "gray",
375
+ className: "leading-none",
376
+ children: t
377
+ }
378
+ ),
379
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "base", fontWeight: "normal", children: r })
380
+ ] });
381
+ }
382
+ );
383
+ function getColSpan$1(e = 1) {
384
+ switch (e) {
385
+ case 1:
386
+ return "col-span-1";
387
+ case 2:
388
+ return "col-span-2";
389
+ case 3:
390
+ return "col-span-3";
391
+ case 4:
392
+ return "col-span-4";
393
+ case 5:
394
+ return "col-span-5";
395
+ case 6:
396
+ return "col-span-6";
397
+ case 7:
398
+ return "col-span-7";
399
+ case 8:
400
+ return "col-span-8";
401
+ case 9:
402
+ return "col-span-9";
403
+ case 10:
404
+ return "col-span-10";
405
+ case 11:
406
+ return "col-span-11";
407
+ case 12:
408
+ return "col-span-12";
409
+ default:
410
+ return "col-span-1";
411
+ }
412
+ }
413
+ function getGridCols(e = 4) {
414
+ switch (e) {
415
+ case 1:
416
+ return "grid-cols-1";
417
+ case 2:
418
+ return "grid-cols-2";
419
+ case 3:
420
+ return "grid-cols-3";
421
+ case 4:
422
+ return "grid-cols-4";
423
+ case 5:
424
+ return "grid-cols-5";
425
+ case 6:
426
+ return "grid-cols-6";
427
+ case 7:
428
+ return "grid-cols-7";
429
+ case 8:
430
+ return "grid-cols-8";
431
+ case 9:
432
+ return "grid-cols-9";
433
+ case 10:
434
+ return "grid-cols-10";
435
+ case 11:
436
+ return "grid-cols-11";
437
+ case 12:
438
+ return "grid-cols-12";
439
+ default:
440
+ return "grid-cols-4";
441
+ }
442
+ }
443
+ const AttributeListItem = forwardRef(function({ children: t, className: r, span: s = 1, title: i, ...n }, o) {
444
+ const a = getColSpan$1(s);
445
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { ref: o, className: cn(a, r), ...n, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Attribute, { title: i, children: t }) });
446
+ }), AttributeListRoot = forwardRef(
447
+ function({ children: t, className: r, columns: s = 4, ...i }, n) {
448
+ const o = getGridCols(s);
449
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
450
+ "ul",
451
+ {
452
+ ref: n,
453
+ className: cn("grid gap-4", o, r),
454
+ ...i,
455
+ children: t
456
+ }
457
+ );
458
+ }
459
+ ), AttributeList = Object.assign(AttributeListRoot, {
460
+ Item: AttributeListItem
461
+ }), avatarVariants = cva(
245
462
  "inline-flex items-center justify-center font-medium text-white overflow-hidden transition-all duration-200 select-none relative",
246
463
  {
247
464
  variants: {
@@ -285,19 +502,19 @@ const alertVariants = cva(
285
502
  size: t = "md",
286
503
  shape: r = "circle",
287
504
  className: s,
288
- children: n,
289
- ...i
505
+ children: i,
506
+ ...n
290
507
  }, o) => /* @__PURE__ */ jsxRuntimeExports.jsx(
291
508
  "div",
292
509
  {
293
510
  ref: o,
294
511
  className: cn(avatarVariants({ variant: e, size: t, shape: r }), s),
295
- ...i,
296
- children: n
512
+ ...n,
513
+ children: i
297
514
  }
298
515
  )
299
516
  ), AvatarImage = forwardRef(
300
- ({ src: e, alt: t, className: r, onError: s, ...n }, i) => {
517
+ ({ src: e, alt: t, className: r, onError: s, ...i }, n) => {
301
518
  const [o, a] = useState(!1);
302
519
  useEffect(() => {
303
520
  a(!1);
@@ -311,12 +528,12 @@ const alertVariants = cva(
311
528
  return o ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
312
529
  "img",
313
530
  {
314
- ref: i,
531
+ ref: n,
315
532
  src: e,
316
533
  alt: t,
317
534
  className: cn(avatarImageVariants(), r),
318
535
  onError: l,
319
- ...n
536
+ ...i
320
537
  }
321
538
  );
322
539
  }
@@ -348,7 +565,7 @@ const alertVariants = cva(
348
565
  },
349
566
  shape: {
350
567
  rounded: "rounded-full",
351
- square: "rounded-md"
568
+ square: "rounded-xs"
352
569
  },
353
570
  size: {
354
571
  sm: "text-xs px-1 py-0.25 h-3",
@@ -365,47 +582,47 @@ const alertVariants = cva(
365
582
  {
366
583
  variant: "default",
367
584
  color: "primary",
368
- className: "bg-primary-light text-primary"
585
+ className: "bg-primary-light/60 text-primary"
369
586
  },
370
587
  {
371
588
  variant: "default",
372
589
  color: "secondary",
373
- className: "bg-secondary-light text-secondary"
590
+ className: "bg-secondary-light/70 text-secondary"
374
591
  },
375
592
  {
376
593
  variant: "default",
377
594
  color: "tertiary",
378
- className: "bg-tertiary-light text-tertiary"
595
+ className: "bg-tertiary-light/50 text-tertiary"
379
596
  },
380
597
  {
381
598
  variant: "default",
382
599
  color: "ghost",
383
- className: "bg-ghost-light text-ghost"
600
+ className: "bg-ghost/05 text-ghost"
384
601
  },
385
602
  {
386
603
  variant: "default",
387
604
  color: "neutral",
388
- className: "bg-neutral text-foreground"
605
+ className: "bg-neutral-light text-foreground"
389
606
  },
390
607
  {
391
608
  variant: "default",
392
609
  color: "success",
393
- className: "bg-success-light text-success"
610
+ className: "bg-success-light/40 text-success"
394
611
  },
395
612
  {
396
613
  variant: "default",
397
614
  color: "info",
398
- className: "bg-info-light text-info"
615
+ className: "bg-info-light/50 text-info"
399
616
  },
400
617
  {
401
618
  variant: "default",
402
619
  color: "warning",
403
- className: "bg-warning-light text-warning"
620
+ className: "bg-warning-light/50 text-warning"
404
621
  },
405
622
  {
406
623
  variant: "default",
407
624
  color: "danger",
408
- className: "bg-danger-light text-danger"
625
+ className: "bg-danger-light/40 text-danger"
409
626
  },
410
627
  // Outline variant color combinations
411
628
  {
@@ -484,13 +701,13 @@ const alertVariants = cva(
484
701
  shape: t = "square",
485
702
  color: r = "primary",
486
703
  size: s = "md",
487
- iconLeft: n,
488
- iconRight: i,
704
+ iconLeft: i,
705
+ iconRight: n,
489
706
  className: o,
490
707
  children: a,
491
708
  ...l
492
709
  }, c) => {
493
- const d = !(a != null && a !== "") && !!(n || i);
710
+ const d = !(a != null && a !== "") && !!(i || n);
494
711
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
495
712
  "span",
496
713
  {
@@ -508,21 +725,19 @@ const alertVariants = cva(
508
725
  ...l,
509
726
  children: d ? (
510
727
  // Icon-only mode: display only the icon
511
- n || i
728
+ i || n
512
729
  ) : (
513
730
  // Normal mode: display icon(s) and text
514
731
  /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
515
- n,
732
+ i,
516
733
  a,
517
- i
734
+ n
518
735
  ] })
519
736
  )
520
737
  }
521
738
  );
522
739
  }
523
- );
524
- Badge.displayName = "Badge";
525
- const 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" }))), brandSizeClass = cva("", {
740
+ ), 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" }))), brandSizeClass = cva("", {
526
741
  variants: {
527
742
  size: {
528
743
  xs: "h-6 w-6",
@@ -537,13 +752,13 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
537
752
  }
538
753
  }), BrandLogo = forwardRef(
539
754
  ({ shape: e = "square", size: t, ...r }, s) => {
540
- const i = {
755
+ const n = {
541
756
  square: SvgSpenicleSquare,
542
757
  rounded: SvgSpenicleRounded,
543
758
  circle: SvgSpenicleCircle
544
759
  }[e] || SvgSpenicleSquare;
545
760
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
546
- i,
761
+ n,
547
762
  {
548
763
  ref: s,
549
764
  ...r,
@@ -552,10 +767,10 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
552
767
  );
553
768
  }
554
769
  ), Brand = forwardRef(
555
- ({ name: e = "spenicle", size: t = "md", shape: r, ...s }, n) => /* @__PURE__ */ jsxRuntimeExports.jsx(
770
+ ({ name: e = "spenicle", size: t = "md", shape: r, ...s }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
556
771
  "span",
557
772
  {
558
- ref: n,
773
+ ref: i,
559
774
  className: cn("inline-flex items-center gap-2"),
560
775
  ...s,
561
776
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(BrandLogo, { shape: r, size: t, "aria-hidden": "true" })
@@ -577,7 +792,7 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
577
792
  "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",
578
793
  "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",
579
794
  "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",
580
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
795
+ "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",
581
796
  // Ghost variants (subtle)
582
797
  "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
583
798
  "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
@@ -616,8 +831,8 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
616
831
  className: t,
617
832
  variant: r = "primary",
618
833
  size: s = "md",
619
- disabled: n = !1,
620
- type: i = "button",
834
+ disabled: i = !1,
835
+ type: n = "button",
621
836
  children: o,
622
837
  ...a
623
838
  }, l) {
@@ -625,11 +840,11 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
625
840
  "button",
626
841
  {
627
842
  ref: l,
628
- type: i,
843
+ type: n,
629
844
  className: cn(buttonVariants({ variant: r, size: s }), t),
630
- disabled: n,
631
- "aria-disabled": n,
632
- inert: n ? !0 : void 0,
845
+ disabled: i,
846
+ "aria-disabled": i,
847
+ inert: i ? !0 : void 0,
633
848
  ...a,
634
849
  children: o
635
850
  }
@@ -670,7 +885,7 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
670
885
  "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",
671
886
  "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",
672
887
  "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",
673
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
888
+ "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",
674
889
  "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
675
890
  "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
676
891
  "tertiary-ghost": "text-tertiary bg-white hover:bg-tertiary/20 focus-visible:ring-tertiary focus-visible:ring-offset-white",
@@ -703,7 +918,7 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
703
918
  }
704
919
  );
705
920
  function useFloatingPosition(e, t = "1rem") {
706
- const r = useRef(null), [s, n] = useState({}), [i, o] = useState("fixed bottom-4 right-4"), a = useCallback(() => {
921
+ const r = useRef(null), [s, i] = useState({}), [n, o] = useState("fixed bottom-4 right-4"), a = useCallback(() => {
707
922
  const c = r.current;
708
923
  if (!c) return;
709
924
  const h = c.getBoundingClientRect().height > window.innerHeight;
@@ -717,7 +932,7 @@ function useFloatingPosition(e, t = "1rem") {
717
932
  position: "fixed",
718
933
  bottom: t,
719
934
  zIndex: 50
720
- }, p = `fixed bottom-4 ${e}-4`), n(d), o(p);
935
+ }, p = `fixed bottom-4 ${e}-4`), i(d), o(p);
721
936
  }, [e, t]);
722
937
  return useEffect(() => {
723
938
  a();
@@ -732,20 +947,20 @@ function useFloatingPosition(e, t = "1rem") {
732
947
  r.current = c, c && a();
733
948
  },
734
949
  [a]
735
- ), s, i];
950
+ ), s, n];
736
951
  }
737
952
  const ButtonFloat = forwardRef(
738
953
  function({
739
954
  className: t,
740
955
  variant: r = "primary",
741
956
  size: s = "md",
742
- side: n = "right",
743
- offset: i = "1rem",
957
+ side: i = "right",
958
+ offset: n = "1rem",
744
959
  ...o
745
960
  }, a) {
746
961
  const [l, c, x] = useFloatingPosition(
747
- n,
748
- i
962
+ i,
963
+ n
749
964
  ), [h, d] = useState(!1);
750
965
  return useEffect(() => {
751
966
  d(!0);
@@ -815,7 +1030,7 @@ const buttonIconVariants = cva(
815
1030
  "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",
816
1031
  "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",
817
1032
  "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",
818
- "neutral-outline": "border border-neutral text-foreground bg-white hover:bg-neutral hover:text-foreground focus-visible:ring-foreground-light focus-visible:ring-offset-white transition-all",
1033
+ "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",
819
1034
  "primary-ghost": "text-primary bg-white hover:bg-primary/20 focus-visible:ring-primary focus-visible:ring-offset-white",
820
1035
  "secondary-ghost": "text-secondary bg-white hover:bg-secondary/20 focus-visible:ring-secondary focus-visible:ring-offset-white",
821
1036
  "tertiary-ghost": "text-tertiary bg-white hover:bg-tertiary/20 focus-visible:ring-tertiary focus-visible:ring-offset-white",
@@ -883,13 +1098,13 @@ const buttonIconVariants = cva(
883
1098
  size: "md",
884
1099
  color: "primary"
885
1100
  }
886
- }), Icon = React__default.forwardRef(function({ as: t, color: r = "primary", size: s = "md", className: n, ...i }, o) {
1101
+ }), Icon = React__default.forwardRef(function({ as: t, color: r = "primary", size: s = "md", className: i, ...n }, o) {
887
1102
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
888
1103
  t,
889
1104
  {
890
1105
  ref: o,
891
- className: iconVariants({ color: r, size: s, className: n }),
892
- ...i
1106
+ className: iconVariants({ color: r, size: s, className: i }),
1107
+ ...n
893
1108
  }
894
1109
  );
895
1110
  }), ButtonIcon = React__default.forwardRef(
@@ -897,8 +1112,8 @@ const buttonIconVariants = cva(
897
1112
  className: t,
898
1113
  variant: r = "primary",
899
1114
  size: s = "md",
900
- shape: n = "rounded",
901
- disabled: i = !1,
1115
+ shape: i = "rounded",
1116
+ disabled: n = !1,
902
1117
  as: o,
903
1118
  "aria-label": a,
904
1119
  ...l
@@ -912,14 +1127,14 @@ const buttonIconVariants = cva(
912
1127
  buttonIconVariants({
913
1128
  variant: r,
914
1129
  size: s,
915
- shape: n
1130
+ shape: i
916
1131
  }),
917
1132
  t
918
1133
  ),
919
- disabled: i,
920
- "aria-disabled": i,
1134
+ disabled: n,
1135
+ "aria-disabled": n,
921
1136
  "aria-label": a,
922
- inert: i ? !0 : void 0,
1137
+ inert: n ? !0 : void 0,
923
1138
  ...l,
924
1139
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
925
1140
  Icon,
@@ -1048,8 +1263,8 @@ const BUTTONS = [
1048
1263
  onChange: t,
1049
1264
  disabled: r,
1050
1265
  className: s,
1051
- "aria-label": n
1052
- }, i) => {
1266
+ "aria-label": i
1267
+ }, n) => {
1053
1268
  const { input: o, inputRef: a, handleButton: l, handleInput: c } = useCalculator({
1054
1269
  initialValue: e,
1055
1270
  disabled: r,
@@ -1058,9 +1273,9 @@ const BUTTONS = [
1058
1273
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
1059
1274
  "div",
1060
1275
  {
1061
- ref: i,
1276
+ ref: n,
1062
1277
  className: cn(calculatorRootVariants({ disabled: r }), s),
1063
- "aria-label": n || "Calculator",
1278
+ "aria-label": i || "Calculator",
1064
1279
  role: "region",
1065
1280
  children: [
1066
1281
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -1103,128 +1318,7 @@ const BUTTONS = [
1103
1318
  }
1104
1319
  );
1105
1320
  Calculator.displayName = "Calculator";
1106
- const textVariants = cva("", {
1107
- variants: {
1108
- color: {
1109
- primary: "text-primary",
1110
- secondary: "text-secondary",
1111
- tertiary: "text-tertiary",
1112
- ghost: "text-ghost",
1113
- neutral: "text-ghost",
1114
- success: "text-success",
1115
- info: "text-info",
1116
- warning: "text-warning",
1117
- danger: "text-danger",
1118
- inherit: "",
1119
- gray: "text-gray-500",
1120
- black: "text-black",
1121
- white: "text-white"
1122
- },
1123
- hasUnderline: {
1124
- true: "underline",
1125
- false: ""
1126
- },
1127
- isCapitalize: {
1128
- true: "capitalize",
1129
- false: ""
1130
- },
1131
- align: {
1132
- left: "text-left",
1133
- center: "text-center",
1134
- right: "text-right",
1135
- justify: "text-justify"
1136
- },
1137
- italic: {
1138
- true: "italic",
1139
- false: ""
1140
- },
1141
- clamp: {
1142
- 1: "line-clamp-1",
1143
- 2: "line-clamp-2",
1144
- 3: "line-clamp-3",
1145
- 4: "line-clamp-4",
1146
- 5: "line-clamp-5",
1147
- none: ""
1148
- },
1149
- ellipsis: {
1150
- true: "truncate",
1151
- false: ""
1152
- },
1153
- as: {
1154
- h1: "font-bold text-4xl leading-loose",
1155
- h2: "font-semibold text-3xl leading-relaxed",
1156
- h3: "font-medium text-2xl leading-relaxed",
1157
- h4: "font-bold text-xl leading-normal",
1158
- h5: "font-semibold text-lg leading-normal",
1159
- h6: "font-medium text-base leading-normal",
1160
- p: "font-normal text-base leading-normal",
1161
- span: "font-normal text-base leading-normal",
1162
- label: "font-normal text-xs leading-normal"
1163
- }
1164
- },
1165
- defaultVariants: {
1166
- color: "neutral",
1167
- hasUnderline: !1,
1168
- isCapitalize: !1,
1169
- align: "left",
1170
- italic: !1,
1171
- clamp: "none",
1172
- ellipsis: !1,
1173
- as: "span"
1174
- }
1175
- }), Text = forwardRef(
1176
- ({
1177
- as: e = "span",
1178
- color: t = "ghost",
1179
- hasUnderline: r = !1,
1180
- isCapitalize: s = !1,
1181
- align: n = "left",
1182
- italic: i = !1,
1183
- clamp: o = "none",
1184
- ellipsis: a = !1,
1185
- fontSize: l,
1186
- fontWeight: c,
1187
- className: x,
1188
- children: h,
1189
- ...d
1190
- }, p) => {
1191
- const f = [
1192
- "h1",
1193
- "h2",
1194
- "h3",
1195
- "h4",
1196
- "h5",
1197
- "h6",
1198
- "p",
1199
- "span",
1200
- "label"
1201
- ].includes(e) ? e : "span", v = l ? `text-${l}` : "", w = c ? `font-${c}` : "";
1202
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1203
- e,
1204
- {
1205
- ref: p,
1206
- className: cn(
1207
- textVariants({
1208
- color: t,
1209
- hasUnderline: r,
1210
- isCapitalize: s,
1211
- align: n,
1212
- italic: i,
1213
- clamp: o,
1214
- ellipsis: a,
1215
- // @ts-expect-error - `as` is not a valid variant
1216
- as: f
1217
- }),
1218
- v,
1219
- w,
1220
- x
1221
- ),
1222
- ...d,
1223
- children: h
1224
- }
1225
- );
1226
- }
1227
- ), CalendarContext = createContext(null);
1321
+ const CalendarContext = createContext(null);
1228
1322
  function useCalendarContext() {
1229
1323
  const e = useContext(CalendarContext);
1230
1324
  if (!e)
@@ -1267,7 +1361,7 @@ const CalendarHeader = () => {
1267
1361
  ] })
1268
1362
  ] });
1269
1363
  }, CalendarWeekdays = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-7 px-4 text-ghost-500 mb-3", children: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((e) => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { fontSize: "xs", color: "ghost", align: "center", children: e }, e)) }), CalendarDaysSingle = () => {
1270
- const e = useCalendarContext(), { year: t, month: r, value: s, onChange: n, setMonth: i, setYear: o } = e, a = (g, m) => new Date(g, m + 1, 0).getDate(), c = ((g, m) => new Date(g, m, 1).getDay())(t, r), x = a(t, r), h = r - 1 < 0 ? 11 : r - 1, d = r === 0 ? t - 1 : t, p = a(t, h), y = r === 11 ? 0 : r + 1, f = r === 11 ? t + 1 : t, v = [];
1364
+ const e = useCalendarContext(), { year: t, month: r, value: s, onChange: i, setMonth: n, setYear: o } = e, a = (g, m) => new Date(g, m + 1, 0).getDate(), c = ((g, m) => new Date(g, m, 1).getDay())(t, r), x = a(t, r), h = r - 1 < 0 ? 11 : r - 1, d = r === 0 ? t - 1 : t, p = a(t, h), y = r === 11 ? 0 : r + 1, f = r === 11 ? t + 1 : t, v = [];
1271
1365
  for (let g = 0; g < c; g++) {
1272
1366
  const m = p - c + g + 1;
1273
1367
  v.push(
@@ -1279,7 +1373,7 @@ const CalendarHeader = () => {
1279
1373
  "aria-label": "Previous month day",
1280
1374
  variant: "ghost",
1281
1375
  onClick: () => {
1282
- n?.(new Date(d, h, m)), i(h), o(d);
1376
+ i?.(new Date(d, h, m)), n(h), o(d);
1283
1377
  }
1284
1378
  },
1285
1379
  "prev-" + g
@@ -1307,7 +1401,7 @@ const CalendarHeader = () => {
1307
1401
  "aria-label": `Select ${t}-${r + 1}-${g}`,
1308
1402
  "aria-current": m ? "date" : void 0,
1309
1403
  onClick: () => {
1310
- n?.(new Date(t, r, g));
1404
+ i?.(new Date(t, r, g));
1311
1405
  }
1312
1406
  },
1313
1407
  g
@@ -1325,7 +1419,7 @@ const CalendarHeader = () => {
1325
1419
  "aria-label": "Next month day",
1326
1420
  variant: "ghost",
1327
1421
  onClick: () => {
1328
- n?.(new Date(f, y, g + 1)), i(y), o(f);
1422
+ i?.(new Date(f, y, g + 1)), n(y), o(f);
1329
1423
  }
1330
1424
  },
1331
1425
  "next-" + g
@@ -1333,7 +1427,7 @@ const CalendarHeader = () => {
1333
1427
  );
1334
1428
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-7 gap-2 px-4 pb-4", children: v });
1335
1429
  }, CalendarDaysRange = () => {
1336
- const { year: e, month: t, value: r, onChange: s, setMonth: n, setYear: i } = useCalendarContext(), o = (u, b) => new Date(u, b + 1, 0).getDate(), l = ((u, b) => new Date(u, b, 1).getDay())(e, t), c = o(e, t), x = t - 1 < 0 ? 11 : t - 1, h = t === 0 ? e - 1 : e, d = o(e, x), p = t === 11 ? 0 : t + 1, y = t === 11 ? e + 1 : e, f = [], v = () => {
1430
+ const { year: e, month: t, value: r, onChange: s, setMonth: i, setYear: n } = useCalendarContext(), o = (u, b) => new Date(u, b + 1, 0).getDate(), l = ((u, b) => new Date(u, b, 1).getDay())(e, t), c = o(e, t), x = t - 1 < 0 ? 11 : t - 1, h = t === 0 ? e - 1 : e, d = o(e, x), p = t === 11 ? 0 : t + 1, y = t === 11 ? e + 1 : e, f = [], v = () => {
1337
1431
  if (!Array.isArray(r)) return [null, null];
1338
1432
  const [u, b] = r;
1339
1433
  return !u && !b ? [null, null] : u && b ? u <= b ? [u, b] : [b, u] : [u, b];
@@ -1353,7 +1447,7 @@ const CalendarHeader = () => {
1353
1447
  "aria-label": "Previous month day",
1354
1448
  variant: "ghost",
1355
1449
  onClick: () => {
1356
- s?.([null, null]), n(x), i(h);
1450
+ s?.([null, null]), i(x), n(h);
1357
1451
  }
1358
1452
  },
1359
1453
  "prev-" + u
@@ -1408,7 +1502,7 @@ const CalendarHeader = () => {
1408
1502
  "aria-label": "Next month day",
1409
1503
  variant: "ghost",
1410
1504
  onClick: () => {
1411
- s?.([null, null]), n(p), i(y);
1505
+ s?.([null, null]), i(p), n(y);
1412
1506
  }
1413
1507
  },
1414
1508
  "next-" + u
@@ -1424,21 +1518,21 @@ function useCalendar({
1424
1518
  type: t,
1425
1519
  onChange: r,
1426
1520
  initialYear: s,
1427
- initialMonth: n
1521
+ initialMonth: i
1428
1522
  }) {
1429
- const [i, o] = useState(n), [a, l] = useState(s), [c, x] = useState([
1523
+ const [n, o] = useState(i), [a, l] = useState(s), [c, x] = useState([
1430
1524
  null,
1431
1525
  null
1432
1526
  ]);
1433
1527
  let h = e;
1434
1528
  t === "range" && !e && (h = c);
1435
1529
  const d = useCallback(() => {
1436
- const f = i === 0 ? 11 : i - 1, v = i === 0 ? a - 1 : a;
1530
+ const f = n === 0 ? 11 : n - 1, v = n === 0 ? a - 1 : a;
1437
1531
  o(f), l(v), t === "single" && r?.(new Date(v, f, 1));
1438
- }, [i, a, t, r]), p = useCallback(() => {
1439
- const f = i === 11 ? 0 : i + 1, v = i === 11 ? a + 1 : a;
1532
+ }, [n, a, t, r]), p = useCallback(() => {
1533
+ const f = n === 11 ? 0 : n + 1, v = n === 11 ? a + 1 : a;
1440
1534
  o(f), l(v), t === "single" && r?.(new Date(v, f, 1));
1441
- }, [i, a, t, r]), y = useCallback(
1535
+ }, [n, a, t, r]), y = useCallback(
1442
1536
  (f) => {
1443
1537
  t === "single" ? r?.(f) : t === "range" && (x(f), r?.(f));
1444
1538
  },
@@ -1446,7 +1540,7 @@ function useCalendar({
1446
1540
  );
1447
1541
  return {
1448
1542
  year: a,
1449
- month: i,
1543
+ month: n,
1450
1544
  value: h,
1451
1545
  setMonth: o,
1452
1546
  setYear: l,
@@ -1460,14 +1554,14 @@ const CalendarRoot = ({
1460
1554
  onChange: t,
1461
1555
  className: r,
1462
1556
  type: s = "single",
1463
- ...n
1557
+ ...i
1464
1558
  }) => {
1465
- const i = /* @__PURE__ */ new Date(), o = useCalendar({
1559
+ const n = /* @__PURE__ */ new Date(), o = useCalendar({
1466
1560
  value: e,
1467
1561
  onChange: t,
1468
1562
  type: s,
1469
- initialYear: i.getFullYear(),
1470
- initialMonth: i.getMonth()
1563
+ initialYear: n.getFullYear(),
1564
+ initialMonth: n.getMonth()
1471
1565
  });
1472
1566
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1473
1567
  CalendarContext.Provider,
@@ -1481,7 +1575,7 @@ const CalendarRoot = ({
1481
1575
  setYear: o.setYear,
1482
1576
  onChange: o.onChange
1483
1577
  },
1484
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("select-none", r), ...n, children: [
1578
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("select-none", r), ...i, children: [
1485
1579
  /* @__PURE__ */ jsxRuntimeExports.jsx(CalendarHeader, {}),
1486
1580
  /* @__PURE__ */ jsxRuntimeExports.jsx(CalendarWeekdays, {}),
1487
1581
  /* @__PURE__ */ jsxRuntimeExports.jsx(CalendarDays, {})
@@ -1545,12 +1639,12 @@ const CalendarRoot = ({
1545
1639
  }
1546
1640
  }
1547
1641
  ), Tile = forwardRef(
1548
- ({ variant: e = "white", size: t = "md", shape: r = "rounded", className: s, ...n }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1642
+ ({ variant: e = "white", size: t = "md", shape: r = "rounded", className: s, ...i }, n) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1549
1643
  "div",
1550
1644
  {
1551
- ref: i,
1645
+ ref: n,
1552
1646
  className: cn(tileVariants({ variant: e, size: t, shape: r }), s),
1553
- ...n
1647
+ ...i
1554
1648
  }
1555
1649
  )
1556
1650
  ), Card = forwardRef(
@@ -1559,8 +1653,8 @@ const CalendarRoot = ({
1559
1653
  shape: t = "rounded",
1560
1654
  avatar: r,
1561
1655
  title: s,
1562
- subtitle: n,
1563
- badge: i,
1656
+ subtitle: i,
1657
+ badge: n,
1564
1658
  supplementaryInfo: o,
1565
1659
  className: a,
1566
1660
  ...l
@@ -1573,26 +1667,91 @@ const CalendarRoot = ({
1573
1667
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-4", children: [
1574
1668
  r && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-shrink-0", children: r }),
1575
1669
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-full", children: [
1576
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("mb-4", !i && !o && "mb-0"), children: [
1670
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("mb-4", !n && !o && "mb-0"), children: [
1577
1671
  s && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "h3", fontSize: "base", fontWeight: "semibold", children: s }),
1578
- n && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "xs", color: "gray", children: n })
1672
+ i && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", fontSize: "xs", color: "gray", children: i })
1579
1673
  ] }),
1580
- (i || o) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-center", children: [
1581
- i,
1674
+ (n || o) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-center", children: [
1675
+ n,
1582
1676
  o && o
1583
1677
  ] })
1584
1678
  ] })
1585
1679
  ] })
1586
1680
  }
1587
1681
  )
1682
+ ), filterChipVariants = cva(
1683
+ "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",
1684
+ {
1685
+ variants: {
1686
+ variant: {
1687
+ // Core variants using Versaur color system
1688
+ primary: "bg-primary-light text-primary hover:bg-primary-soft focus-visible:ring-primary-light focus-visible:ring-offset-white",
1689
+ secondary: "bg-secondary-light text-secondary hover:bg-secondary-soft focus-visible:ring-secondary-light focus-visible:ring-offset-white",
1690
+ tertiary: "bg-tertiary-light text-tertiary hover:bg-tertiary-soft focus-visible:ring-tertiary-light focus-visible:ring-offset-white",
1691
+ ghost: "bg-white text-foreground hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1692
+ neutral: "bg-neutral text-foreground hover:bg-neutral/80 focus-visible:ring-foreground-light focus-visible:ring-offset-white",
1693
+ // Outline variants
1694
+ "primary-outline": "border border-primary text-primary bg-white hover:bg-primary-soft focus-visible:ring-primary-light focus-visible:ring-offset-white",
1695
+ "secondary-outline": "border border-secondary text-secondary bg-white hover:bg-secondary-soft focus-visible:ring-secondary-light focus-visible:ring-offset-white",
1696
+ "tertiary-outline": "border border-tertiary text-tertiary bg-white hover:bg-tertiary-soft focus-visible:ring-tertiary-light focus-visible:ring-offset-white",
1697
+ "ghost-outline": "border border-ghost text-ghost bg-white hover:bg-ghost-soft focus-visible:ring-ghost-light focus-visible:ring-offset-white",
1698
+ "neutral-outline": "border border-border text-foreground bg-white hover:bg-neutral focus-visible:ring-foreground-light focus-visible:ring-offset-white",
1699
+ // Semantic variants
1700
+ success: "bg-success text-white hover:bg-success/90 focus-visible:ring-success-light focus-visible:ring-offset-white",
1701
+ "success-outline": "border border-success text-success bg-white hover:bg-success-soft focus-visible:ring-success-light focus-visible:ring-offset-white",
1702
+ info: "bg-info text-white hover:bg-info/90 focus-visible:ring-info-light focus-visible:ring-offset-white",
1703
+ "info-outline": "border border-info text-info bg-white hover:bg-info-soft focus-visible:ring-info-light focus-visible:ring-offset-white",
1704
+ warning: "bg-warning text-white hover:bg-warning/90 focus-visible:ring-warning-light focus-visible:ring-offset-white",
1705
+ "warning-outline": "border border-warning text-warning bg-white hover:bg-warning-soft focus-visible:ring-warning-light focus-visible:ring-offset-white",
1706
+ danger: "bg-danger text-white hover:bg-danger/90 focus-visible:ring-danger-light focus-visible:ring-offset-white",
1707
+ "danger-outline": "border border-danger text-danger bg-white hover:bg-danger-soft focus-visible:ring-danger-light focus-visible:ring-offset-white"
1708
+ },
1709
+ size: {
1710
+ sm: "h-7 px-3 text-xs",
1711
+ md: "h-8 px-4 text-sm",
1712
+ lg: "h-9 px-5 text-sm"
1713
+ }
1714
+ },
1715
+ defaultVariants: {
1716
+ variant: "neutral-outline",
1717
+ size: "md"
1718
+ }
1719
+ }
1720
+ ), FilterChip = React__default.forwardRef(
1721
+ function e({
1722
+ className: t,
1723
+ variant: r = "neutral-outline",
1724
+ size: s = "md",
1725
+ disabled: i = !1,
1726
+ children: n,
1727
+ ...o
1728
+ }, a) {
1729
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
1730
+ "button",
1731
+ {
1732
+ ref: a,
1733
+ type: "button",
1734
+ className: cn(filterChipVariants({ variant: r, size: s }), t),
1735
+ disabled: i,
1736
+ "aria-disabled": i,
1737
+ "aria-label": `${n}, removable`,
1738
+ inert: i ? !0 : void 0,
1739
+ ...o,
1740
+ children: [
1741
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-shrink-0", children: n }),
1742
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { as: XIcon, color: "inherit", size: s === "lg" ? "md" : "sm" })
1743
+ ]
1744
+ }
1745
+ );
1746
+ }
1588
1747
  ), noResultsVariants = cva(
1589
1748
  "flex flex-col items-center justify-center text-center border border-border rounded-lg bg-background",
1590
1749
  {
1591
1750
  variants: {
1592
1751
  spacing: {
1593
- sm: "py-8",
1594
- md: "py-12",
1595
- lg: "py-16"
1752
+ sm: "py-8 px-4",
1753
+ md: "py-12 px-6",
1754
+ lg: "py-16 px-8"
1596
1755
  },
1597
1756
  hasGrayBackground: {
1598
1757
  true: "bg-neutral-soft",
@@ -1606,27 +1765,23 @@ const CalendarRoot = ({
1606
1765
  }
1607
1766
  ), noResultsHeaderVariants = cva(
1608
1767
  "flex flex-row items-center gap-3 mb-2"
1609
- ), noResultsTitleVariants = cva(
1610
- "text-lg font-semibold text-foreground"
1611
- ), noResultsSubtitleVariants = cva(
1612
- "text-foreground-light mb-6 max-w-md"
1613
1768
  ), NoResults = React__default.forwardRef(
1614
- function e({ icon: t, title: r, subtitle: s, action: n, className: i, hasGrayBackground: o, ...a }, l) {
1769
+ function e({ icon: t, title: r, subtitle: s, action: i, className: n, hasGrayBackground: o, ...a }, l) {
1615
1770
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
1616
1771
  "section",
1617
1772
  {
1618
1773
  ref: l,
1619
- className: cn(noResultsVariants({ hasGrayBackground: o }), i),
1774
+ className: cn(noResultsVariants({ hasGrayBackground: o }), n),
1620
1775
  role: "status",
1621
1776
  "aria-label": "No results found",
1622
1777
  ...a,
1623
1778
  children: [
1624
1779
  /* @__PURE__ */ jsxRuntimeExports.jsxs("header", { className: noResultsHeaderVariants(), children: [
1625
1780
  /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { as: t, size: "lg", color: "ghost", "aria-hidden": "true" }),
1626
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "h2", className: noResultsTitleVariants(), children: r })
1781
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "h2", fontSize: "lg", children: r })
1627
1782
  ] }),
1628
- s && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", className: noResultsSubtitleVariants(), children: s }),
1629
- n && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "group", "aria-label": "Available actions", children: n })
1783
+ s && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "p", align: "center", color: "gray", className: "mb-4", children: s }),
1784
+ i && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "group", "aria-label": "Available actions", children: i })
1630
1785
  ]
1631
1786
  }
1632
1787
  );
@@ -1702,7 +1857,7 @@ const getTableColumnClass = (e) => {
1702
1857
  }
1703
1858
  }, TableHeader = forwardRef(
1704
1859
  ({ children: e, className: t, ...r }, s) => {
1705
- const { columns: n } = useTableContext();
1860
+ const { columns: i } = useTableContext();
1706
1861
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1707
1862
  "div",
1708
1863
  {
@@ -1714,7 +1869,7 @@ const getTableColumnClass = (e) => {
1714
1869
  "div",
1715
1870
  {
1716
1871
  role: "row",
1717
- className: cn("grid gap-4", getTableColumnClass(n)),
1872
+ className: cn("grid gap-4", getTableColumnClass(i)),
1718
1873
  children: e
1719
1874
  }
1720
1875
  )
@@ -1725,7 +1880,7 @@ const getTableColumnClass = (e) => {
1725
1880
  ({ children: e, className: t, ...r }, s) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "rowgroup", ref: s, className: cn(t), ...r, children: e })
1726
1881
  ), TableFooter = forwardRef(
1727
1882
  ({ children: e, className: t, ...r }, s) => {
1728
- const { columns: n } = useTableContext();
1883
+ const { columns: i } = useTableContext();
1729
1884
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1730
1885
  "div",
1731
1886
  {
@@ -1737,7 +1892,7 @@ const getTableColumnClass = (e) => {
1737
1892
  "div",
1738
1893
  {
1739
1894
  role: "row",
1740
- className: cn("grid gap-4", getTableColumnClass(n)),
1895
+ className: cn("grid gap-4", getTableColumnClass(i)),
1741
1896
  children: e
1742
1897
  }
1743
1898
  )
@@ -1746,14 +1901,14 @@ const getTableColumnClass = (e) => {
1746
1901
  }
1747
1902
  ), TableRow = forwardRef(
1748
1903
  ({ children: e, className: t, ...r }, s) => {
1749
- const { columns: n } = useTableContext();
1904
+ const { columns: i } = useTableContext();
1750
1905
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1751
1906
  "div",
1752
1907
  {
1753
1908
  role: "row",
1754
1909
  className: cn(
1755
1910
  "grid gap-4",
1756
- getTableColumnClass(n),
1911
+ getTableColumnClass(i),
1757
1912
  "border-b border-border last:border-0",
1758
1913
  t
1759
1914
  ),
@@ -1764,7 +1919,7 @@ const getTableColumnClass = (e) => {
1764
1919
  );
1765
1920
  }
1766
1921
  ), TableColumn = forwardRef(
1767
- ({ as: e = "td", span: t, align: r = "left", children: s, className: n, ...i }, o) => {
1922
+ ({ as: e = "td", span: t, align: r = "left", children: s, className: i, ...n }, o) => {
1768
1923
  const a = e === "th" ? "columnheader" : "cell";
1769
1924
  let l = "text-left";
1770
1925
  return r === "center" ? l = "text-center" : r === "right" && (l = "text-right"), /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -1778,9 +1933,9 @@ const getTableColumnClass = (e) => {
1778
1933
  getRowSpanClass(t),
1779
1934
  l,
1780
1935
  "truncate overflow-hidden whitespace-nowrap",
1781
- n
1936
+ i
1782
1937
  ),
1783
- ...i,
1938
+ ...n,
1784
1939
  children: s
1785
1940
  }
1786
1941
  );
@@ -1812,10 +1967,10 @@ const getTableColumnClass = (e) => {
1812
1967
  }
1813
1968
  )
1814
1969
  ), TableRoot = forwardRef(
1815
- ({ children: e, className: t, columns: r = 12, ...s }, n) => /* @__PURE__ */ jsxRuntimeExports.jsx(TableProvider, { value: { columns: r }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1970
+ ({ children: e, className: t, columns: r = 12, ...s }, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(TableProvider, { value: { columns: r }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1816
1971
  "div",
1817
1972
  {
1818
- ref: n,
1973
+ ref: i,
1819
1974
  role: "table",
1820
1975
  className: cn(
1821
1976
  // Versaur design system: border, background, shadow, rounded, spacing
@@ -1867,19 +2022,19 @@ function getColSpan(e = 4) {
1867
2022
  return "col-span-4";
1868
2023
  }
1869
2024
  }
1870
- const DescriptionListItem = forwardRef(function e({ children: t, className: r, span: s = 4, ...n }, i) {
2025
+ const DescriptionListItem = forwardRef(function e({ children: t, className: r, span: s = 4, ...i }, n) {
1871
2026
  const o = getColSpan(s);
1872
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: i, className: cn(o, r), ...n, children: t });
2027
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: n, className: cn(o, r), ...i, children: t });
1873
2028
  }), DescriptionListTerm = forwardRef(function e({ children: t, ...r }, s) {
1874
2029
  return /* @__PURE__ */ jsxRuntimeExports.jsx("dt", { ref: s, ...r, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", fontWeight: "medium", color: "gray", children: t }) });
1875
- }), DescriptionListDetails = forwardRef(function e({ children: t, color: r = "black", ...s }, n) {
1876
- return /* @__PURE__ */ jsxRuntimeExports.jsx("dd", { ref: n, ...s, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "base", fontWeight: "medium", color: r, children: t }) });
2030
+ }), DescriptionListDetails = forwardRef(function e({ children: t, color: r = "black", ...s }, i) {
2031
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("dd", { ref: i, ...s, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "base", fontWeight: "medium", color: r, children: t }) });
1877
2032
  }), DescriptionListRoot = forwardRef(
1878
- function e({ children: t, className: r, ...s }, n) {
2033
+ function e({ children: t, className: r, ...s }, i) {
1879
2034
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1880
2035
  "dl",
1881
2036
  {
1882
- ref: n,
2037
+ ref: i,
1883
2038
  className: cn("grid grid-cols-12 gap-y-4", r),
1884
2039
  ...s,
1885
2040
  children: t
@@ -1892,20 +2047,20 @@ const DescriptionListItem = forwardRef(function e({ children: t, className: r, s
1892
2047
  Details: DescriptionListDetails
1893
2048
  });
1894
2049
  function useImage({ src: e }) {
1895
- const [t, r] = useState(!1), [s, n] = useState(!1), i = useRef(!1), o = () => {
2050
+ const [t, r] = useState(!1), [s, i] = useState(!1), n = useRef(!1), o = () => {
1896
2051
  r(!0);
1897
2052
  }, a = () => {
1898
- n(!0);
2053
+ i(!0);
1899
2054
  };
1900
2055
  return useEffect(() => {
1901
2056
  if (!e) return;
1902
2057
  const l = new Image();
1903
2058
  return l.src = e, l.onload = () => {
1904
- i.current || r(!0);
2059
+ n.current || r(!0);
1905
2060
  }, l.onerror = () => {
1906
- i.current || n(!0);
2061
+ n.current || i(!0);
1907
2062
  }, () => {
1908
- i.current = !0;
2063
+ n.current = !0;
1909
2064
  };
1910
2065
  }, [e]), {
1911
2066
  loaded: t,
@@ -1972,13 +2127,13 @@ function BaseImageSkeleton({
1972
2127
  shape: t,
1973
2128
  size: r,
1974
2129
  height: s,
1975
- width: n
2130
+ width: i
1976
2131
  }) {
1977
2132
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1978
2133
  Skeleton,
1979
2134
  {
1980
2135
  className: cn(imageAtomVariants({ shape: t, size: r }), e),
1981
- style: { height: s, width: n }
2136
+ style: { height: s, width: i }
1982
2137
  }
1983
2138
  );
1984
2139
  }
@@ -1987,15 +2142,15 @@ function BaseImageFallback({
1987
2142
  width: t,
1988
2143
  height: r,
1989
2144
  className: s,
1990
- style: n,
1991
- shape: i,
2145
+ style: i,
2146
+ shape: n,
1992
2147
  size: o
1993
2148
  }) {
1994
2149
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
1995
2150
  "div",
1996
2151
  {
1997
- className: imageAtomVariants({ shape: i, size: o, className: s }),
1998
- style: { width: t, height: r, ...n },
2152
+ className: imageAtomVariants({ shape: n, size: o, className: s }),
2153
+ style: { width: t, height: r, ...i },
1999
2154
  "aria-label": e,
2000
2155
  role: "img",
2001
2156
  children: [
@@ -2018,8 +2173,8 @@ const BaseImage = forwardRef(
2018
2173
  alt: t,
2019
2174
  onLoad: r,
2020
2175
  onError: s,
2021
- width: n,
2022
- height: i,
2176
+ width: i,
2177
+ height: n,
2023
2178
  loading: o = "lazy",
2024
2179
  position: a = "cover",
2025
2180
  size: l = "auto",
@@ -2029,7 +2184,7 @@ const BaseImage = forwardRef(
2029
2184
  }, d) => {
2030
2185
  const { loaded: p, errored: y, handleLoad: f, handleError: v } = useImage({
2031
2186
  src: e
2032
- }), w = typeof n == "number" ? n : Number(n), g = typeof i == "number" ? i : Number(i);
2187
+ }), w = typeof i == "number" ? i : Number(i), g = typeof n == "number" ? n : Number(n);
2033
2188
  return !p && !y ? /* @__PURE__ */ jsxRuntimeExports.jsx(
2034
2189
  BaseImageSkeleton,
2035
2190
  {
@@ -2078,21 +2233,24 @@ export {
2078
2233
  Badge as B,
2079
2234
  Calculator as C,
2080
2235
  DescriptionList as D,
2236
+ FilterChip as F,
2081
2237
  Icon as I,
2082
2238
  NoResults as N,
2083
2239
  Table as T,
2084
2240
  Anchor as a,
2085
- Avatar as b,
2086
- Brand as c,
2087
- Button as d,
2088
- ButtonFloat as e,
2089
- ButtonIcon as f,
2090
- Calendar as g,
2091
- Card as h,
2092
- Text as i,
2093
- Tile as j,
2094
- ImageCircle as k,
2095
- ImageSquare as l,
2096
- ImageRectangle as m,
2097
- BaseImage as n
2241
+ Attribute as b,
2242
+ AttributeList as c,
2243
+ Avatar as d,
2244
+ Brand as e,
2245
+ Button as f,
2246
+ ButtonFloat as g,
2247
+ ButtonIcon as h,
2248
+ Calendar as i,
2249
+ Card as j,
2250
+ Text as k,
2251
+ Tile as l,
2252
+ ImageCircle as m,
2253
+ ImageSquare as n,
2254
+ ImageRectangle as o,
2255
+ BaseImage as p
2098
2256
  };