lucent-ui 0.19.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs as y, jsx as n, Fragment as oe } from "react/jsx-runtime";
2
- import { forwardRef as pe, useState as z, useRef as V, useEffect as X, useCallback as ee, useContext as fe, createContext as ye, useLayoutEffect as se, useId as ve } from "react";
2
+ import { forwardRef as pe, useState as z, useRef as V, useEffect as X, useCallback as ee, useContext as fe, createContext as ye, useLayoutEffect as se, useId as be } from "react";
3
3
  import { createPortal as de } from "react-dom";
4
4
  const _t = {
5
5
  primary: {
@@ -45,12 +45,12 @@ const _t = {
45
45
  lg: { height: "calc(var(--lucent-space-12) * 0.5 + 26px)", padding: "0 var(--lucent-space-5)", fontSize: "var(--lucent-font-size-lg)" }
46
46
  }, Ee = pe(
47
47
  ({ variant: e = "primary", size: t = "md", loading: r = !1, fullWidth: o = !1, spread: a = !1, leftIcon: i, rightIcon: l, chevron: s = !1, disableHoverStyles: c = !1, bordered: d = !0, children: u, disabled: f, style: h, ...m }, T) => {
48
- const v = f ?? r;
48
+ const b = f ?? r;
49
49
  return /* @__PURE__ */ y(
50
50
  "button",
51
51
  {
52
52
  ref: T,
53
- disabled: v,
53
+ disabled: b,
54
54
  "aria-busy": r,
55
55
  style: {
56
56
  display: "inline-flex",
@@ -62,7 +62,7 @@ const _t = {
62
62
  lineHeight: 1,
63
63
  letterSpacing: "0.01em",
64
64
  borderRadius: "var(--lucent-radius-lg)",
65
- cursor: v ? "not-allowed" : "pointer",
65
+ cursor: b ? "not-allowed" : "pointer",
66
66
  width: o ? "100%" : void 0,
67
67
  transition: "background var(--lucent-duration-fast) var(--lucent-easing-default), border-color var(--lucent-duration-fast) var(--lucent-easing-default), box-shadow var(--lucent-duration-fast) var(--lucent-easing-default), transform 80ms var(--lucent-easing-default)",
68
68
  whiteSpace: "nowrap",
@@ -72,7 +72,7 @@ const _t = {
72
72
  ...Yt[t],
73
73
  ..._t[e],
74
74
  ...h,
75
- ...v && {
75
+ ...b && {
76
76
  background: "color-mix(in srgb, var(--lucent-surface-secondary) 70%, var(--lucent-border-default))",
77
77
  color: "color-mix(in srgb, var(--lucent-text-disabled) 50%, var(--lucent-border-default))",
78
78
  borderColor: "transparent"
@@ -81,32 +81,32 @@ const _t = {
81
81
  ...d === !1 && { border: "none" }
82
82
  },
83
83
  onMouseEnter: (p) => {
84
- var b;
85
- !v && !c && Xt(p.currentTarget, e, d), (b = m.onMouseEnter) == null || b.call(m, p);
84
+ var v;
85
+ !b && !c && Xt(p.currentTarget, e, d), (v = m.onMouseEnter) == null || v.call(m, p);
86
86
  },
87
87
  onMouseLeave: (p) => {
88
- var b;
89
- !v && !c && Jt(p.currentTarget, e, d), (b = m.onMouseLeave) == null || b.call(m, p);
88
+ var v;
89
+ !b && !c && Jt(p.currentTarget, e, d), (v = m.onMouseLeave) == null || v.call(m, p);
90
90
  },
91
91
  onMouseDown: (p) => {
92
- var b;
93
- if (!v) {
92
+ var v;
93
+ if (!b) {
94
94
  const x = e === "danger" || e === "danger-outline" || e === "danger-ghost" ? "var(--lucent-danger-default)" : "var(--lucent-accent-default)";
95
95
  p.currentTarget.style.transform = "translateY(1px)", p.currentTarget.style.boxShadow = `0 0 0 2px var(--lucent-surface), 0 0 0 4px ${x}`, p.currentTarget.dataset.pressed = "1";
96
96
  }
97
- (b = m.onMouseDown) == null || b.call(m, p);
97
+ (v = m.onMouseDown) == null || v.call(m, p);
98
98
  },
99
99
  onMouseUp: (p) => {
100
- var b;
101
- p.currentTarget.style.transform = "", p.currentTarget.style.boxShadow = "", delete p.currentTarget.dataset.pressed, (b = m.onMouseUp) == null || b.call(m, p);
100
+ var v;
101
+ p.currentTarget.style.transform = "", p.currentTarget.style.boxShadow = "", delete p.currentTarget.dataset.pressed, (v = m.onMouseUp) == null || v.call(m, p);
102
102
  },
103
103
  onFocus: (p) => {
104
- var b;
105
- p.currentTarget.dataset.pressed || (p.currentTarget.style.boxShadow = "0 0 0 3px var(--lucent-accent-subtle)"), (b = m.onFocus) == null || b.call(m, p);
104
+ var v;
105
+ p.currentTarget.dataset.pressed || (p.currentTarget.style.boxShadow = "0 0 0 3px var(--lucent-accent-subtle)"), (v = m.onFocus) == null || v.call(m, p);
106
106
  },
107
107
  onBlur: (p) => {
108
- var b;
109
- p.currentTarget.style.boxShadow = "", (b = m.onBlur) == null || b.call(m, p);
108
+ var v;
109
+ p.currentTarget.style.boxShadow = "", (v = m.onBlur) == null || v.call(m, p);
110
110
  },
111
111
  ...m,
112
112
  children: [
@@ -146,7 +146,7 @@ function en() {
146
146
  /* @__PURE__ */ n("path", { d: "M12 2a10 10 0 0 1 10 10" })
147
147
  ] });
148
148
  }
149
- const Go = {
149
+ const Qo = {
150
150
  id: "button",
151
151
  name: "Button",
152
152
  tier: "atom",
@@ -332,7 +332,7 @@ const Go = {
332
332
  style: d,
333
333
  ...u
334
334
  }, f) => {
335
- const h = c ?? `lucent-input-${Math.random().toString(36).slice(2, 7)}`, m = !!o, T = !!u.disabled, [v, p] = z(!1), [b, k] = z(!1), x = T ? "transparent" : m ? "var(--lucent-danger-default)" : v ? "var(--lucent-focus-ring)" : b ? "var(--lucent-border-strong)" : "var(--lucent-border-default)", M = v ? `0 0 0 3px ${m ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none", S = {
335
+ const h = c ?? `lucent-input-${Math.random().toString(36).slice(2, 7)}`, m = !!o, T = !!u.disabled, [b, p] = z(!1), [v, k] = z(!1), x = T ? "transparent" : m ? "var(--lucent-danger-default)" : b ? "var(--lucent-focus-ring)" : v ? "var(--lucent-border-strong)" : "var(--lucent-border-default)", M = b ? `0 0 0 3px ${m ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none", S = {
336
336
  display: "flex",
337
337
  alignItems: "center",
338
338
  color: T ? "var(--lucent-text-disabled)" : "var(--lucent-text-secondary)",
@@ -341,7 +341,7 @@ const Go = {
341
341
  whiteSpace: "nowrap",
342
342
  userSelect: "none",
343
343
  flexShrink: 0
344
- }, A = { ...S, paddingLeft: ue[e], paddingRight: "2px" }, L = { ...S, paddingLeft: "2px", paddingRight: ue[e] };
344
+ }, A = { ...S, paddingLeft: ue[e], paddingRight: "2px" }, R = { ...S, paddingLeft: "2px", paddingRight: ue[e] };
345
345
  return /* @__PURE__ */ y("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-1)", width: "100%", ...d }, children: [
346
346
  t && /* @__PURE__ */ n(
347
347
  "label",
@@ -429,7 +429,7 @@ const Go = {
429
429
  alignItems: "center"
430
430
  }, children: i })
431
431
  ] }),
432
- s && /* @__PURE__ */ n("span", { style: L, children: s })
432
+ s && /* @__PURE__ */ n("span", { style: R, children: s })
433
433
  ]
434
434
  }
435
435
  ),
@@ -462,7 +462,7 @@ const Go = {
462
462
  }
463
463
  );
464
464
  ce.displayName = "Input";
465
- const _o = {
465
+ const ei = {
466
466
  id: "input",
467
467
  name: "Input",
468
468
  tier: "atom",
@@ -511,13 +511,13 @@ const _o = {
511
511
  lg: "var(--lucent-space-4)"
512
512
  }, on = pe(
513
513
  ({ label: e, helperText: t, errorText: r, autoResize: o = !1, maxLength: a, showCount: i = !1, size: l = "md", id: s, value: c, onChange: d, disabled: u, style: f, ...h }, m) => {
514
- const T = V(null), v = m ?? T, p = s ?? `lucent-textarea-${Math.random().toString(36).slice(2, 7)}`, b = !!r, k = !!u, x = typeof c == "string" ? c.length : 0;
514
+ const T = V(null), b = m ?? T, p = s ?? `lucent-textarea-${Math.random().toString(36).slice(2, 7)}`, v = !!r, k = !!u, x = typeof c == "string" ? c.length : 0;
515
515
  X(() => {
516
516
  if (!o) return;
517
- const S = v.current;
517
+ const S = b.current;
518
518
  S && (S.style.height = "auto", S.style.height = `${S.scrollHeight}px`);
519
- }, [c, o, v]);
520
- const M = k ? "transparent" : b ? "var(--lucent-danger-default)" : "var(--lucent-border-default)";
519
+ }, [c, o, b]);
520
+ const M = k ? "transparent" : v ? "var(--lucent-danger-default)" : "var(--lucent-border-default)";
521
521
  return /* @__PURE__ */ y("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-1)", width: "100%" }, children: [
522
522
  e && /* @__PURE__ */ n("label", { htmlFor: p, style: {
523
523
  fontSize: an[l],
@@ -528,14 +528,14 @@ const _o = {
528
528
  /* @__PURE__ */ n(
529
529
  "textarea",
530
530
  {
531
- ref: v,
531
+ ref: b,
532
532
  id: p,
533
533
  maxLength: a,
534
534
  value: c,
535
535
  onChange: d,
536
536
  disabled: u,
537
- "aria-invalid": b,
538
- "aria-describedby": b ? `${p}-error` : t ? `${p}-helper` : void 0,
537
+ "aria-invalid": v,
538
+ "aria-describedby": v ? `${p}-error` : t ? `${p}-helper` : void 0,
539
539
  style: {
540
540
  width: "100%",
541
541
  minHeight: "100px",
@@ -559,27 +559,27 @@ const _o = {
559
559
  },
560
560
  onMouseEnter: (S) => {
561
561
  var A;
562
- !k && S.currentTarget !== document.activeElement && (S.currentTarget.style.borderColor = b ? "var(--lucent-danger-default)" : "var(--lucent-border-strong)"), (A = h.onMouseEnter) == null || A.call(h, S);
562
+ !k && S.currentTarget !== document.activeElement && (S.currentTarget.style.borderColor = v ? "var(--lucent-danger-default)" : "var(--lucent-border-strong)"), (A = h.onMouseEnter) == null || A.call(h, S);
563
563
  },
564
564
  onMouseLeave: (S) => {
565
565
  var A;
566
- !k && S.currentTarget !== document.activeElement && (S.currentTarget.style.borderColor = b ? "var(--lucent-danger-default)" : "var(--lucent-border-default)"), (A = h.onMouseLeave) == null || A.call(h, S);
566
+ !k && S.currentTarget !== document.activeElement && (S.currentTarget.style.borderColor = v ? "var(--lucent-danger-default)" : "var(--lucent-border-default)"), (A = h.onMouseLeave) == null || A.call(h, S);
567
567
  },
568
568
  onFocus: (S) => {
569
569
  var A;
570
- k || (S.currentTarget.style.borderColor = b ? "var(--lucent-danger-default)" : "var(--lucent-focus-ring)", S.currentTarget.style.boxShadow = `0 0 0 3px ${b ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}`, (A = h.onFocus) == null || A.call(h, S));
570
+ k || (S.currentTarget.style.borderColor = v ? "var(--lucent-danger-default)" : "var(--lucent-focus-ring)", S.currentTarget.style.boxShadow = `0 0 0 3px ${v ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}`, (A = h.onFocus) == null || A.call(h, S));
571
571
  },
572
572
  onBlur: (S) => {
573
573
  var A;
574
- k || (S.currentTarget.style.borderColor = b ? "var(--lucent-danger-default)" : "var(--lucent-border-default)", S.currentTarget.style.boxShadow = "none", (A = h.onBlur) == null || A.call(h, S));
574
+ k || (S.currentTarget.style.borderColor = v ? "var(--lucent-danger-default)" : "var(--lucent-border-default)", S.currentTarget.style.boxShadow = "none", (A = h.onBlur) == null || A.call(h, S));
575
575
  },
576
576
  ...h
577
577
  }
578
578
  ),
579
579
  /* @__PURE__ */ y("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "flex-start" }, children: [
580
580
  /* @__PURE__ */ y("div", { children: [
581
- b && /* @__PURE__ */ n("span", { id: `${p}-error`, role: "alert", style: { fontSize: "var(--lucent-font-size-sm)", color: "var(--lucent-danger-text)", fontFamily: "var(--lucent-font-family-base)" }, children: r }),
582
- !b && t && /* @__PURE__ */ n("span", { id: `${p}-helper`, style: { fontSize: "var(--lucent-font-size-sm)", color: "var(--lucent-text-secondary)", fontFamily: "var(--lucent-font-family-base)" }, children: t })
581
+ v && /* @__PURE__ */ n("span", { id: `${p}-error`, role: "alert", style: { fontSize: "var(--lucent-font-size-sm)", color: "var(--lucent-danger-text)", fontFamily: "var(--lucent-font-family-base)" }, children: r }),
582
+ !v && t && /* @__PURE__ */ n("span", { id: `${p}-helper`, style: { fontSize: "var(--lucent-font-size-sm)", color: "var(--lucent-text-secondary)", fontFamily: "var(--lucent-font-family-base)" }, children: t })
583
583
  ] }),
584
584
  (i || a) && /* @__PURE__ */ y("span", { style: {
585
585
  fontSize: "var(--lucent-font-size-xs)",
@@ -596,7 +596,7 @@ const _o = {
596
596
  }
597
597
  );
598
598
  on.displayName = "Textarea";
599
- const Yo = {
599
+ const ti = {
600
600
  id: "textarea",
601
601
  name: "Textarea",
602
602
  tier: "atom",
@@ -640,7 +640,7 @@ const Yo = {
640
640
  sm: { fontSize: "var(--lucent-font-size-xs)", padding: "0 var(--lucent-space-2)", height: "18px" },
641
641
  md: { fontSize: "var(--lucent-font-size-sm)", padding: "0 var(--lucent-space-2)", height: "22px" }
642
642
  };
643
- function Ko({ variant: e = "neutral", size: t = "md", dot: r = !1, children: o, style: a }) {
643
+ function ni({ variant: e = "neutral", size: t = "md", dot: r = !1, children: o, style: a }) {
644
644
  const i = sn[e], l = ln[t];
645
645
  return /* @__PURE__ */ y("span", { style: {
646
646
  display: "inline-flex",
@@ -670,7 +670,7 @@ function Ko({ variant: e = "neutral", size: t = "md", dot: r = !1, children: o,
670
670
  o
671
671
  ] });
672
672
  }
673
- const Xo = {
673
+ const ai = {
674
674
  id: "badge",
675
675
  name: "Badge",
676
676
  tier: "atom",
@@ -780,7 +780,7 @@ function un({
780
780
  disabled: d = !1,
781
781
  style: u
782
782
  }) {
783
- const f = cn[t], h = dn[r], [m, T] = z(!1), v = !d && (o || a), p = {
783
+ const f = cn[t], h = dn[r], [m, T] = z(!1), b = !d && (o || a), p = {
784
784
  display: "inline-flex",
785
785
  alignItems: "center",
786
786
  gap: h.gap,
@@ -791,25 +791,25 @@ function un({
791
791
  fontWeight: "var(--lucent-font-weight-medium)",
792
792
  lineHeight: 1,
793
793
  borderRadius: "var(--lucent-radius-lg)",
794
- background: m && v ? f.hoverBg : f.bg,
794
+ background: m && b ? f.hoverBg : f.bg,
795
795
  color: f.color,
796
- border: c ? "1px solid transparent" : `1px solid ${m && v ? f.hoverBorder : f.border}`,
796
+ border: c ? "1px solid transparent" : `1px solid ${m && b ? f.hoverBorder : f.border}`,
797
797
  whiteSpace: "nowrap",
798
798
  boxSizing: "border-box",
799
799
  opacity: d ? 0.5 : 1,
800
- transform: m && v ? "translateY(-1px)" : "none",
801
- boxShadow: m && v ? `0 2px 4px ${f.hoverBorder}22` : "none",
800
+ transform: m && b ? "translateY(-1px)" : "none",
801
+ boxShadow: m && b ? `0 2px 4px ${f.hoverBorder}22` : "none",
802
802
  transition: [
803
803
  "transform var(--lucent-duration-fast) var(--lucent-easing-default)",
804
804
  "box-shadow var(--lucent-duration-fast) var(--lucent-easing-default)",
805
805
  "border-color var(--lucent-duration-fast) var(--lucent-easing-default)",
806
806
  "background var(--lucent-duration-fast) var(--lucent-easing-default)"
807
807
  ].join(", "),
808
- cursor: v ? "pointer" : "default",
808
+ cursor: b ? "pointer" : "default",
809
809
  // Reset button styles when onClick
810
810
  ...a ? { outline: "none" } : {},
811
811
  ...u
812
- }, b = /* @__PURE__ */ y(oe, { children: [
812
+ }, v = /* @__PURE__ */ y(oe, { children: [
813
813
  l && /* @__PURE__ */ n("span", { style: {
814
814
  width: h.dotSize + 2,
815
815
  height: h.dotSize + 2,
@@ -875,11 +875,11 @@ function un({
875
875
  disabled: d,
876
876
  style: p,
877
877
  ...k,
878
- children: b
878
+ children: v
879
879
  }
880
- ) : /* @__PURE__ */ n("span", { style: p, ...k, children: b });
880
+ ) : /* @__PURE__ */ n("span", { style: p, ...k, children: v });
881
881
  }
882
- const Jo = {
882
+ const ri = {
883
883
  id: "chip",
884
884
  name: "Chip",
885
885
  tier: "atom",
@@ -934,7 +934,7 @@ function hn(e, t) {
934
934
  const r = e.trim().split(/\s+/);
935
935
  return r.length === 1 ? (((o = r[0]) == null ? void 0 : o[0]) ?? "").toUpperCase() : ((((a = r[0]) == null ? void 0 : a[0]) ?? "") + (((i = r[r.length - 1]) == null ? void 0 : i[0]) ?? "")).toUpperCase();
936
936
  }
937
- function Zo({ src: e, alt: t, size: r = "md", initials: o, style: a, ...i }) {
937
+ function oi({ src: e, alt: t, size: r = "md", initials: o, style: a, ...i }) {
938
938
  const l = pn[r], s = hn(t, o), c = {
939
939
  width: l,
940
940
  height: l,
@@ -975,7 +975,7 @@ function Zo({ src: e, alt: t, size: r = "md", initials: o, style: a, ...i }) {
975
975
  }
976
976
  );
977
977
  }
978
- const Qo = {
978
+ const ii = {
979
979
  id: "avatar",
980
980
  name: "Avatar",
981
981
  tier: "atom",
@@ -1012,7 +1012,7 @@ const Qo = {
1012
1012
  md: 2,
1013
1013
  lg: 2
1014
1014
  };
1015
- function bn({ size: e = "md", label: t = "Loading…", color: r }) {
1015
+ function vn({ size: e = "md", label: t = "Loading…", color: r }) {
1016
1016
  const o = mn[e], a = gn[e];
1017
1017
  return /* @__PURE__ */ y("span", { role: "status", "aria-label": t, style: { display: "inline-flex", alignItems: "center", justifyContent: "center" }, children: [
1018
1018
  /* @__PURE__ */ y(
@@ -1042,7 +1042,7 @@ function bn({ size: e = "md", label: t = "Loading…", color: r }) {
1042
1042
  /* @__PURE__ */ n("span", { style: { position: "absolute", width: 1, height: 1, overflow: "hidden", clip: "rect(0,0,0,0)", whiteSpace: "nowrap" }, children: t })
1043
1043
  ] });
1044
1044
  }
1045
- const ei = {
1045
+ const si = {
1046
1046
  id: "spinner",
1047
1047
  name: "Spinner",
1048
1048
  tier: "atom",
@@ -1067,7 +1067,7 @@ const ei = {
1067
1067
  notes: 'The visible SVG is aria-hidden. The label is conveyed via a visually-hidden span inside role="status".'
1068
1068
  }
1069
1069
  };
1070
- function ti({ orientation: e = "horizontal", label: t, spacing: r = "var(--lucent-space-4)", style: o }) {
1070
+ function li({ orientation: e = "horizontal", label: t, spacing: r = "var(--lucent-space-4)", style: o }) {
1071
1071
  return e === "vertical" ? /* @__PURE__ */ n(
1072
1072
  "span",
1073
1073
  {
@@ -1122,7 +1122,7 @@ function ti({ orientation: e = "horizontal", label: t, spacing: r = "var(--lucen
1122
1122
  }
1123
1123
  );
1124
1124
  }
1125
- const ni = {
1125
+ const ci = {
1126
1126
  id: "divider",
1127
1127
  name: "Divider",
1128
1128
  tier: "atom",
@@ -1145,7 +1145,7 @@ const ni = {
1145
1145
  role: "separator",
1146
1146
  ariaAttributes: ["aria-orientation", "aria-label"]
1147
1147
  }
1148
- }, vn = { sm: 14, md: 16, lg: 20 }, yn = { sm: "calc(var(--lucent-space-8) * 0.5 + 16px)", md: "calc(var(--lucent-space-10) * 0.5 + 20px)", lg: "calc(var(--lucent-space-12) * 0.5 + 24px)" }, xn = `
1148
+ }, bn = { sm: 14, md: 16, lg: 20 }, yn = { sm: "calc(var(--lucent-space-8) * 0.5 + 16px)", md: "calc(var(--lucent-space-10) * 0.5 + 20px)", lg: "calc(var(--lucent-space-12) * 0.5 + 24px)" }, xn = `
1149
1149
  @keyframes lucent-cb-pop {
1150
1150
  0% { transform: scale(1); }
1151
1151
  35% { transform: scale(0.82); }
@@ -1172,24 +1172,24 @@ const ni = {
1172
1172
  style: u,
1173
1173
  ...f
1174
1174
  }, h) => {
1175
- const m = V(null), T = c ?? `lucent-checkbox-${Math.random().toString(36).slice(2, 7)}`, v = vn[t], p = i !== void 0, [b, k] = z(l ?? !1), [x, M] = z(!1), S = p ? !!i : b, A = V(S), [L, C] = z(0);
1175
+ const m = V(null), T = c ?? `lucent-checkbox-${Math.random().toString(36).slice(2, 7)}`, b = bn[t], p = i !== void 0, [v, k] = z(l ?? !1), [x, M] = z(!1), S = p ? !!i : v, A = V(S), [R, C] = z(0);
1176
1176
  X(() => {
1177
- !s && A.current !== S && (A.current = S, C((R) => R + 1));
1177
+ !s && A.current !== S && (A.current = S, C((L) => L + 1));
1178
1178
  }, [S, s]);
1179
1179
  const D = ee(
1180
- (R) => {
1181
- m.current = R, typeof h == "function" ? h(R) : h && (h.current = R);
1180
+ (L) => {
1181
+ m.current = L, typeof h == "function" ? h(L) : h && (h.current = L);
1182
1182
  },
1183
1183
  [h]
1184
1184
  );
1185
1185
  X(() => {
1186
1186
  m.current && (m.current.indeterminate = r);
1187
1187
  }, [r]);
1188
- const $ = (R) => {
1189
- p || k(R.target.checked), d == null || d(R);
1188
+ const $ = (L) => {
1189
+ p || k(L.target.checked), d == null || d(L);
1190
1190
  }, W = s ? "var(--lucent-text-disabled)" : "var(--lucent-text-on-accent)", w = {
1191
- width: v,
1192
- height: v,
1191
+ width: b,
1192
+ height: b,
1193
1193
  // fixed corner so global radius overrides (e.g. via customizer) don't
1194
1194
  // turn checkboxes into circles. the design spec keeps them slightly
1195
1195
  // rounded regardless of theming.
@@ -1203,7 +1203,7 @@ const ni = {
1203
1203
  flexShrink: 0,
1204
1204
  transition: "background var(--lucent-duration-fast) var(--lucent-easing-default), border-color var(--lucent-duration-fast) var(--lucent-easing-default)",
1205
1205
  // Re-key forces the animation to restart on every toggle.
1206
- animation: L > 0 ? "lucent-cb-pop 220ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards" : void 0
1206
+ animation: R > 0 ? "lucent-cb-pop 220ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards" : void 0
1207
1207
  }, F = /* @__PURE__ */ y(
1208
1208
  "label",
1209
1209
  {
@@ -1225,7 +1225,7 @@ const ni = {
1225
1225
  ref: D,
1226
1226
  type: "checkbox",
1227
1227
  id: T,
1228
- checked: p ? i : b,
1228
+ checked: p ? i : v,
1229
1229
  disabled: s,
1230
1230
  onChange: $,
1231
1231
  style: { position: "absolute", opacity: 0, width: 0, height: 0, margin: 0, pointerEvents: "none" },
@@ -1236,8 +1236,8 @@ const ni = {
1236
1236
  S && !r && /* @__PURE__ */ n(
1237
1237
  "svg",
1238
1238
  {
1239
- width: v - 4,
1240
- height: v - 4,
1239
+ width: b - 4,
1240
+ height: b - 4,
1241
1241
  viewBox: "0 0 10 10",
1242
1242
  fill: "none",
1243
1243
  style: { animation: "lucent-cb-mark 200ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards" },
@@ -1247,15 +1247,15 @@ const ni = {
1247
1247
  r && /* @__PURE__ */ n(
1248
1248
  "svg",
1249
1249
  {
1250
- width: v - 4,
1251
- height: v - 4,
1250
+ width: b - 4,
1251
+ height: b - 4,
1252
1252
  viewBox: "0 0 10 10",
1253
1253
  fill: "none",
1254
1254
  style: { animation: "lucent-cb-mark 200ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards" },
1255
1255
  children: /* @__PURE__ */ n("path", { d: "M2 5H8", stroke: W, strokeWidth: 1.5, strokeLinecap: "round" })
1256
1256
  }
1257
1257
  )
1258
- ] }, L),
1258
+ ] }, R),
1259
1259
  (e || a) && /* @__PURE__ */ y("span", { style: { display: "flex", flexDirection: "column" }, children: [
1260
1260
  e && /* @__PURE__ */ n("span", { style: {
1261
1261
  fontWeight: a ? "var(--lucent-font-weight-medium)" : "var(--lucent-font-weight-regular)",
@@ -1291,9 +1291,9 @@ const ni = {
1291
1291
  cursor: s ? "not-allowed" : "pointer",
1292
1292
  ...u
1293
1293
  },
1294
- onClick: (R) => {
1294
+ onClick: (L) => {
1295
1295
  var N;
1296
- s || R.target === R.currentTarget && ((N = m.current) == null || N.click());
1296
+ s || L.target === L.currentTarget && ((N = m.current) == null || N.click());
1297
1297
  },
1298
1298
  children: F
1299
1299
  }
@@ -1302,7 +1302,7 @@ const ni = {
1302
1302
  }
1303
1303
  );
1304
1304
  yt.displayName = "Checkbox";
1305
- const ai = {
1305
+ const di = {
1306
1306
  id: "checkbox",
1307
1307
  name: "Checkbox",
1308
1308
  tier: "atom",
@@ -1428,11 +1428,11 @@ const Sn = { sm: 14, md: 16, lg: 20 }, Tn = { sm: "calc(var(--lucent-space-8) *
1428
1428
  md: "var(--lucent-font-size-md)",
1429
1429
  lg: "var(--lucent-font-size-md)"
1430
1430
  };
1431
- function ri({ value: e, label: t, size: r = "md", contained: o = !1, helperText: a, disabled: i, id: l, onChange: s, checked: c, style: d, ...u }) {
1432
- const f = fe(xt), h = l ?? `lucent-radio-${Math.random().toString(36).slice(2, 7)}`, m = Sn[r], [T, v] = z(!1), p = i ?? (f == null ? void 0 : f.disabled) ?? !1, b = f ? f.value === e : !!c, k = V(b), [x, M] = z(0);
1431
+ function ui({ value: e, label: t, size: r = "md", contained: o = !1, helperText: a, disabled: i, id: l, onChange: s, checked: c, style: d, ...u }) {
1432
+ const f = fe(xt), h = l ?? `lucent-radio-${Math.random().toString(36).slice(2, 7)}`, m = Sn[r], [T, b] = z(!1), p = i ?? (f == null ? void 0 : f.disabled) ?? !1, v = f ? f.value === e : !!c, k = V(v), [x, M] = z(0);
1433
1433
  X(() => {
1434
- !p && k.current !== b && (k.current = b, M((D) => D + 1));
1435
- }, [b, p]);
1434
+ !p && k.current !== v && (k.current = v, M((D) => D + 1));
1435
+ }, [v, p]);
1436
1436
  const S = (D) => {
1437
1437
  f == null || f.onChange(e), s == null || s(D);
1438
1438
  }, A = {
@@ -1440,14 +1440,14 @@ function ri({ value: e, label: t, size: r = "md", contained: o = !1, helperText:
1440
1440
  height: m / 2,
1441
1441
  borderRadius: "50%",
1442
1442
  background: p ? "var(--lucent-text-disabled)" : "var(--lucent-text-on-accent)",
1443
- animation: b ? "lucent-radio-dot 200ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards" : void 0,
1444
- opacity: b ? 1 : 0
1445
- }, L = {
1443
+ animation: v ? "lucent-radio-dot 200ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards" : void 0,
1444
+ opacity: v ? 1 : 0
1445
+ }, R = {
1446
1446
  width: m,
1447
1447
  height: m,
1448
1448
  borderRadius: "50%",
1449
- border: `1.5px solid ${p ? "transparent" : b ? "var(--lucent-accent-default)" : "var(--lucent-border-strong)"}`,
1450
- background: p ? "var(--lucent-surface-secondary)" : b ? "var(--lucent-accent-default)" : "var(--lucent-surface)",
1449
+ border: `1.5px solid ${p ? "transparent" : v ? "var(--lucent-accent-default)" : "var(--lucent-border-strong)"}`,
1450
+ background: p ? "var(--lucent-surface-secondary)" : v ? "var(--lucent-accent-default)" : "var(--lucent-surface)",
1451
1451
  display: "inline-flex",
1452
1452
  alignItems: "center",
1453
1453
  justifyContent: "center",
@@ -1476,14 +1476,14 @@ function ri({ value: e, label: t, size: r = "md", contained: o = !1, helperText:
1476
1476
  id: h,
1477
1477
  value: e,
1478
1478
  name: (f == null ? void 0 : f.name) ?? u.name,
1479
- checked: b,
1479
+ checked: v,
1480
1480
  disabled: p,
1481
1481
  onChange: S,
1482
1482
  style: { position: "absolute", opacity: 0, width: 0, height: 0, margin: 0, pointerEvents: "none" },
1483
1483
  ...u
1484
1484
  }
1485
1485
  ),
1486
- /* @__PURE__ */ n("span", { "aria-hidden": !0, style: L, children: /* @__PURE__ */ n("span", { style: A }) }, x),
1486
+ /* @__PURE__ */ n("span", { "aria-hidden": !0, style: R, children: /* @__PURE__ */ n("span", { style: A }) }, x),
1487
1487
  t || a ? /* @__PURE__ */ y("span", { style: { display: "flex", flexDirection: "column" }, children: [
1488
1488
  t && /* @__PURE__ */ n("span", { style: {
1489
1489
  fontWeight: a ? "var(--lucent-font-weight-medium)" : "var(--lucent-font-weight-regular)",
@@ -1504,14 +1504,14 @@ function ri({ value: e, label: t, size: r = "md", contained: o = !1, helperText:
1504
1504
  "div",
1505
1505
  {
1506
1506
  onMouseEnter: () => {
1507
- p || v(!0);
1507
+ p || b(!0);
1508
1508
  },
1509
- onMouseLeave: () => v(!1),
1509
+ onMouseLeave: () => b(!1),
1510
1510
  style: {
1511
- border: `1px solid ${b && !p ? "var(--lucent-accent-default)" : T && !p ? "var(--lucent-border-strong)" : "var(--lucent-border-default)"}`,
1511
+ border: `1px solid ${v && !p ? "var(--lucent-accent-default)" : T && !p ? "var(--lucent-border-strong)" : "var(--lucent-border-default)"}`,
1512
1512
  borderRadius: "var(--lucent-radius-lg)",
1513
1513
  ...a ? { padding: "var(--lucent-space-3)" } : { minHeight: Tn[r], padding: "0 var(--lucent-space-3)", display: "flex", alignItems: "center" },
1514
- background: b && !p ? "var(--lucent-accent-subtle)" : "var(--lucent-surface)",
1514
+ background: v && !p ? "var(--lucent-accent-subtle)" : "var(--lucent-surface)",
1515
1515
  transition: "border-color var(--lucent-duration-fast) var(--lucent-easing-default), background var(--lucent-duration-fast) var(--lucent-easing-default)",
1516
1516
  cursor: p ? "not-allowed" : "pointer",
1517
1517
  ...d
@@ -1527,7 +1527,7 @@ function ri({ value: e, label: t, size: r = "md", contained: o = !1, helperText:
1527
1527
  ) : C
1528
1528
  ] });
1529
1529
  }
1530
- function oi({
1530
+ function pi({
1531
1531
  defaultValue: e = "",
1532
1532
  onChange: t,
1533
1533
  ...r
@@ -1544,7 +1544,7 @@ function oi({
1544
1544
  }
1545
1545
  );
1546
1546
  }
1547
- const ii = {
1547
+ const fi = {
1548
1548
  id: "radio",
1549
1549
  name: "Radio",
1550
1550
  tier: "atom",
@@ -1654,7 +1654,7 @@ const ii = {
1654
1654
  100% { transform: scale(1); }
1655
1655
  }
1656
1656
  `;
1657
- function si({
1657
+ function hi({
1658
1658
  label: e,
1659
1659
  size: t = "md",
1660
1660
  checked: r,
@@ -1668,16 +1668,16 @@ function si({
1668
1668
  style: u,
1669
1669
  ...f
1670
1670
  }) {
1671
- const h = c ?? `lucent-toggle-${Math.random().toString(36).slice(2, 7)}`, m = r !== void 0, [T, v] = z(o ?? !1), p = m ? !!r : T, [b, k] = z(!1), x = V(p), [M, S] = z(0), [A, L] = z(!1);
1671
+ const h = c ?? `lucent-toggle-${Math.random().toString(36).slice(2, 7)}`, m = r !== void 0, [T, b] = z(o ?? !1), p = m ? !!r : T, [v, k] = z(!1), x = V(p), [M, S] = z(0), [A, R] = z(!1);
1672
1672
  X(() => {
1673
1673
  if (!s && x.current !== p) {
1674
- x.current = p, S((U) => U + 1), L(!0);
1675
- const N = setTimeout(() => L(!1), 150);
1674
+ x.current = p, S((U) => U + 1), R(!0);
1675
+ const N = setTimeout(() => R(!1), 150);
1676
1676
  return () => clearTimeout(N);
1677
1677
  }
1678
1678
  }, [p, s]);
1679
1679
  const { track: [C, D], thumb: $ } = Mn[t], W = p ? C - $ - 2 : 2, w = (N) => {
1680
- m || v(N.target.checked), d == null || d(N);
1680
+ m || b(N.target.checked), d == null || d(N);
1681
1681
  }, F = /* @__PURE__ */ y(
1682
1682
  "span",
1683
1683
  {
@@ -1722,7 +1722,7 @@ function si({
1722
1722
  )
1723
1723
  ]
1724
1724
  }
1725
- ), R = /* @__PURE__ */ y(
1725
+ ), L = /* @__PURE__ */ y(
1726
1726
  "label",
1727
1727
  {
1728
1728
  style: {
@@ -1778,7 +1778,7 @@ function si({
1778
1778
  },
1779
1779
  onMouseLeave: () => k(!1),
1780
1780
  style: {
1781
- border: `1px solid ${p && !s ? "var(--lucent-accent-default)" : b && !s ? "var(--lucent-border-strong)" : "var(--lucent-border-default)"}`,
1781
+ border: `1px solid ${p && !s ? "var(--lucent-accent-default)" : v && !s ? "var(--lucent-border-strong)" : "var(--lucent-border-default)"}`,
1782
1782
  borderRadius: "var(--lucent-radius-lg)",
1783
1783
  ...i ? { padding: "var(--lucent-space-3)" } : { minHeight: In[t], padding: "0 var(--lucent-space-3)", display: "flex", alignItems: "center" },
1784
1784
  background: p && !s ? "var(--lucent-accent-subtle)" : "var(--lucent-surface)",
@@ -1792,12 +1792,12 @@ function si({
1792
1792
  U == null || U.click();
1793
1793
  }
1794
1794
  },
1795
- children: R
1795
+ children: L
1796
1796
  }
1797
- ) : R
1797
+ ) : L
1798
1798
  ] });
1799
1799
  }
1800
- const li = {
1800
+ const mi = {
1801
1801
  id: "toggle",
1802
1802
  name: "Toggle",
1803
1803
  tier: "atom",
@@ -1902,7 +1902,7 @@ const li = {
1902
1902
  lg: "var(--lucent-space-3)"
1903
1903
  }, wt = pe(
1904
1904
  ({ options: e, size: t = "md", label: r, helperText: o, errorText: a, placeholder: i, disabled: l, id: s, style: c, ...d }, u) => {
1905
- const f = s ?? `lucent-select-${Math.random().toString(36).slice(2, 7)}`, h = !!a, m = !!l, [T, v] = z(!1), [p, b] = z(!1), k = m ? "transparent" : h ? "var(--lucent-danger-default)" : T ? "var(--lucent-focus-ring)" : p ? "var(--lucent-border-strong)" : "var(--lucent-border-default)", x = T ? `0 0 0 3px ${h ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none";
1905
+ const f = s ?? `lucent-select-${Math.random().toString(36).slice(2, 7)}`, h = !!a, m = !!l, [T, b] = z(!1), [p, v] = z(!1), k = m ? "transparent" : h ? "var(--lucent-danger-default)" : T ? "var(--lucent-focus-ring)" : p ? "var(--lucent-border-strong)" : "var(--lucent-border-default)", x = T ? `0 0 0 3px ${h ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none";
1906
1906
  return /* @__PURE__ */ y("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-1)", width: "100%", ...c }, children: [
1907
1907
  r && /* @__PURE__ */ n(
1908
1908
  "label",
@@ -1936,9 +1936,9 @@ const li = {
1936
1936
  ].join(", ")
1937
1937
  },
1938
1938
  onMouseEnter: () => {
1939
- m || b(!0);
1939
+ m || v(!0);
1940
1940
  },
1941
- onMouseLeave: () => b(!1),
1941
+ onMouseLeave: () => v(!1),
1942
1942
  children: [
1943
1943
  /* @__PURE__ */ y(
1944
1944
  "select",
@@ -1965,14 +1965,14 @@ const li = {
1965
1965
  },
1966
1966
  onFocus: (M) => {
1967
1967
  var S;
1968
- m || v(!0), (S = d.onFocus) == null || S.call(d, M);
1968
+ m || b(!0), (S = d.onFocus) == null || S.call(d, M);
1969
1969
  },
1970
1970
  onBlur: (M) => {
1971
1971
  var S;
1972
- v(!1), (S = d.onBlur) == null || S.call(d, M);
1972
+ b(!1), (S = d.onBlur) == null || S.call(d, M);
1973
1973
  },
1974
1974
  onMouseDown: () => {
1975
- m || v(!0);
1975
+ m || b(!0);
1976
1976
  },
1977
1977
  ...d,
1978
1978
  children: [
@@ -2028,7 +2028,7 @@ const li = {
2028
2028
  }
2029
2029
  );
2030
2030
  wt.displayName = "Select";
2031
- const ci = {
2031
+ const gi = {
2032
2032
  id: "select",
2033
2033
  name: "Select",
2034
2034
  tier: "atom",
@@ -2133,13 +2133,13 @@ const ci = {
2133
2133
  warning: { bg: "var(--lucent-warning-subtle)", color: "var(--lucent-warning-text)", border: "var(--lucent-warning-subtle)", dismissHover: "var(--lucent-warning-default)" },
2134
2134
  danger: { bg: "var(--lucent-danger-subtle)", color: "var(--lucent-danger-text)", border: "var(--lucent-danger-subtle)", dismissHover: "var(--lucent-danger-default)" },
2135
2135
  info: { bg: "var(--lucent-info-subtle)", color: "var(--lucent-info-text)", border: "var(--lucent-info-subtle)", dismissHover: "var(--lucent-info-default)" }
2136
- }, Bn = {
2136
+ }, qn = {
2137
2137
  sm: { fontSize: "var(--lucent-font-size-xs)", height: "20px", padding: "0 var(--lucent-space-3)", iconSize: 10, gap: "var(--lucent-space-1)" },
2138
2138
  md: { fontSize: "var(--lucent-font-size-sm)", height: "24px", padding: "0 var(--lucent-space-3)", iconSize: 12, gap: "var(--lucent-space-1)" },
2139
2139
  lg: { fontSize: "var(--lucent-font-size-md)", height: "28px", padding: "0 var(--lucent-space-4)", iconSize: 14, gap: "var(--lucent-space-2)" }
2140
2140
  };
2141
- function di({ children: e, variant: t = "neutral", size: r = "md", onDismiss: o, disabled: a }) {
2142
- const i = En[t], l = Bn[r], [s, c] = z(!1), d = !a && o;
2141
+ function vi({ children: e, variant: t = "neutral", size: r = "md", onDismiss: o, disabled: a }) {
2142
+ const i = En[t], l = qn[r], [s, c] = z(!1), d = !a && o;
2143
2143
  return /* @__PURE__ */ y(
2144
2144
  "span",
2145
2145
  {
@@ -2208,7 +2208,7 @@ function di({ children: e, variant: t = "neutral", size: r = "md", onDismiss: o,
2208
2208
  }
2209
2209
  );
2210
2210
  }
2211
- const ui = {
2211
+ const bi = {
2212
2212
  id: "tag",
2213
2213
  name: "Tag",
2214
2214
  tier: "atom",
@@ -2265,12 +2265,12 @@ const ui = {
2265
2265
  notes: 'The dismiss button has aria-label="Dismiss" and is keyboard-focusable.',
2266
2266
  keyboardInteractions: ["Enter / Space — activates the dismiss button when focused"]
2267
2267
  }
2268
- }, Q = 5, qn = {
2268
+ }, Q = 5, Bn = {
2269
2269
  top: { bottom: "100%", left: "50%", transform: "translateX(-50%)", marginBottom: Q + 3 },
2270
2270
  bottom: { top: "100%", left: "50%", transform: "translateX(-50%)", marginTop: Q + 3 },
2271
2271
  left: { right: "100%", top: "50%", transform: "translateY(-50%)", marginRight: Q + 3 },
2272
2272
  right: { left: "100%", top: "50%", transform: "translateY(-50%)", marginLeft: Q + 3 }
2273
- }, Ln = {
2273
+ }, Rn = {
2274
2274
  top: {
2275
2275
  bottom: -Q,
2276
2276
  left: "50%",
@@ -2300,7 +2300,7 @@ const ui = {
2300
2300
  borderColor: "transparent var(--lucent-text-primary) transparent transparent"
2301
2301
  }
2302
2302
  };
2303
- function pi({ content: e, children: t, placement: r = "top", delay: o = 300 }) {
2303
+ function yi({ content: e, children: t, placement: r = "top", delay: o = 300 }) {
2304
2304
  const [a, i] = z(!1), l = V(null), s = () => {
2305
2305
  l.current = setTimeout(() => i(!0), o);
2306
2306
  }, c = () => {
@@ -2322,7 +2322,7 @@ function pi({ content: e, children: t, placement: r = "top", delay: o = 300 }) {
2322
2322
  role: "tooltip",
2323
2323
  style: {
2324
2324
  position: "absolute",
2325
- ...qn[r],
2325
+ ...Bn[r],
2326
2326
  background: "var(--lucent-text-primary)",
2327
2327
  color: "var(--lucent-bg-base)",
2328
2328
  padding: "5px 10px",
@@ -2347,7 +2347,7 @@ function pi({ content: e, children: t, placement: r = "top", delay: o = 300 }) {
2347
2347
  width: 0,
2348
2348
  height: 0,
2349
2349
  borderStyle: "solid",
2350
- ...Ln[r]
2350
+ ...Rn[r]
2351
2351
  }
2352
2352
  }
2353
2353
  )
@@ -2358,7 +2358,7 @@ function pi({ content: e, children: t, placement: r = "top", delay: o = 300 }) {
2358
2358
  }
2359
2359
  ) : /* @__PURE__ */ n(oe, { children: t });
2360
2360
  }
2361
- const fi = {
2361
+ const xi = {
2362
2362
  id: "tooltip",
2363
2363
  name: "Tooltip",
2364
2364
  tier: "atom",
@@ -2407,15 +2407,15 @@ const fi = {
2407
2407
  ariaAttributes: ['role="tooltip"'],
2408
2408
  notes: 'The tooltip is shown on both hover and focus, making it accessible to keyboard users. Content is exposed via role="tooltip".'
2409
2409
  }
2410
- }, Rn = {
2410
+ }, Ln = {
2411
2411
  xs: 12,
2412
2412
  sm: 14,
2413
2413
  md: 16,
2414
2414
  lg: 20,
2415
2415
  xl: 24
2416
2416
  };
2417
- function hi({ children: e, size: t = "md", label: r, color: o, style: a }) {
2418
- const i = Rn[t];
2417
+ function wi({ children: e, size: t = "md", label: r, color: o, style: a }) {
2418
+ const i = Ln[t];
2419
2419
  return /* @__PURE__ */ n(
2420
2420
  "span",
2421
2421
  {
@@ -2436,7 +2436,7 @@ function hi({ children: e, size: t = "md", label: r, color: o, style: a }) {
2436
2436
  }
2437
2437
  );
2438
2438
  }
2439
- const mi = {
2439
+ const ki = {
2440
2440
  id: "icon",
2441
2441
  name: "Icon",
2442
2442
  tier: "atom",
@@ -2546,7 +2546,7 @@ function _({
2546
2546
  };
2547
2547
  return /* @__PURE__ */ n(e, { style: f, ...u, children: c });
2548
2548
  }
2549
- const gi = {
2549
+ const Si = {
2550
2550
  id: "text",
2551
2551
  name: "Text",
2552
2552
  tier: "atom",
@@ -2644,7 +2644,7 @@ const gi = {
2644
2644
  notes: 'The rendered element determines the implicit ARIA role. Use heading elements (h1–h6) for document headings so screen readers can navigate the page structure. Use `as="label"` with `htmlFor` to associate labels with form controls. Decorative text needs no additional ARIA.'
2645
2645
  }
2646
2646
  };
2647
- function bi({
2647
+ function Ti({
2648
2648
  children: e,
2649
2649
  href: t,
2650
2650
  isActive: r = !1,
@@ -2790,7 +2790,7 @@ const On = { sm: "3px", md: "4px", lg: "5px" }, Hn = { sm: "14px", md: "18px", l
2790
2790
  cursor: not-allowed;
2791
2791
  }
2792
2792
  `;
2793
- function vi({
2793
+ function Ci({
2794
2794
  label: e,
2795
2795
  showValue: t = !1,
2796
2796
  size: r = "md",
@@ -2805,9 +2805,9 @@ function vi({
2805
2805
  style: f,
2806
2806
  ...h
2807
2807
  }) {
2808
- const m = d ?? `lucent-slider-${Math.random().toString(36).slice(2, 7)}`, T = l !== void 0, [v, p] = z(
2808
+ const m = d ?? `lucent-slider-${Math.random().toString(36).slice(2, 7)}`, T = l !== void 0, [b, p] = z(
2809
2809
  s ?? Math.round((o + a) / 2)
2810
- ), b = T ? l : v, k = `${(b - o) / (a - o) * 100}%`, x = (M) => {
2810
+ ), v = T ? l : b, k = `${(v - o) / (a - o) * 100}%`, x = (M) => {
2811
2811
  T || p(Number(M.target.value)), u == null || u(M);
2812
2812
  };
2813
2813
  return /* @__PURE__ */ y(oe, { children: [
@@ -2854,7 +2854,7 @@ function vi({
2854
2854
  color: c ? "var(--lucent-text-disabled)" : "var(--lucent-text-secondary)",
2855
2855
  fontVariantNumeric: "tabular-nums"
2856
2856
  },
2857
- children: b
2857
+ children: v
2858
2858
  }
2859
2859
  )
2860
2860
  ]
@@ -2870,7 +2870,7 @@ function vi({
2870
2870
  max: a,
2871
2871
  step: i,
2872
2872
  disabled: c,
2873
- value: T ? l : v,
2873
+ value: T ? l : b,
2874
2874
  onChange: x,
2875
2875
  style: {
2876
2876
  "--ls-track-h": On[r],
@@ -2885,7 +2885,7 @@ function vi({
2885
2885
  )
2886
2886
  ] });
2887
2887
  }
2888
- const yi = {
2888
+ const Ii = {
2889
2889
  id: "slider",
2890
2890
  name: "Slider",
2891
2891
  tier: "atom",
@@ -2991,7 +2991,7 @@ function Un() {
2991
2991
  function Gn() {
2992
2992
  return /* @__PURE__ */ n("svg", { width: 13, height: 13, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: /* @__PURE__ */ n("path", { d: "M20 6L9 17l-5-5" }) });
2993
2993
  }
2994
- function xi({
2994
+ function Mi({
2995
2995
  code: e,
2996
2996
  language: t,
2997
2997
  tabs: r,
@@ -3000,13 +3000,13 @@ function xi({
3000
3000
  showCopyButton: i = !0,
3001
3001
  style: l
3002
3002
  }) {
3003
- var b, k;
3004
- const s = !!(r != null && r.length), [c, d] = z(0), [u, f] = z(!1), h = s ? ((b = r[c]) == null ? void 0 : b.code) ?? "" : e ?? "", m = s ? (k = r[c]) == null ? void 0 : k.language : t, T = async () => {
3003
+ var v, k;
3004
+ const s = !!(r != null && r.length), [c, d] = z(0), [u, f] = z(!1), h = s ? ((v = r[c]) == null ? void 0 : v.code) ?? "" : e ?? "", m = s ? (k = r[c]) == null ? void 0 : k.language : t, T = async () => {
3005
3005
  try {
3006
3006
  await navigator.clipboard.writeText(h), f(!0), setTimeout(() => f(!1), jn);
3007
3007
  } catch {
3008
3008
  }
3009
- }, v = {
3009
+ }, b = {
3010
3010
  display: "inline-flex",
3011
3011
  alignItems: "center",
3012
3012
  gap: "var(--lucent-space-1)",
@@ -3025,7 +3025,7 @@ function xi({
3025
3025
  {
3026
3026
  onClick: T,
3027
3027
  "aria-label": u ? "Copied!" : "Copy code",
3028
- style: v,
3028
+ style: b,
3029
3029
  onMouseEnter: (x) => {
3030
3030
  u || (x.currentTarget.style.background = "var(--lucent-surface-secondary)", x.currentTarget.style.color = "var(--lucent-text-primary)");
3031
3031
  },
@@ -3205,7 +3205,7 @@ function xi({
3205
3205
  }
3206
3206
  );
3207
3207
  }
3208
- const wi = {
3208
+ const Di = {
3209
3209
  id: "code-block",
3210
3210
  name: "CodeBlock",
3211
3211
  tier: "atom",
@@ -3381,7 +3381,7 @@ xe.Body = Kn;
3381
3381
  xe.Foot = Xn;
3382
3382
  xe.Row = Jn;
3383
3383
  xe.Cell = Zn;
3384
- const ki = {
3384
+ const zi = {
3385
3385
  id: "table",
3386
3386
  name: "Table",
3387
3387
  tier: "atom",
@@ -3496,10 +3496,10 @@ function kt({
3496
3496
  id: s,
3497
3497
  style: c
3498
3498
  }) {
3499
- var b;
3499
+ var v;
3500
3500
  const [d, u] = z(
3501
- r ?? ((b = e[0]) == null ? void 0 : b.value) ?? ""
3502
- ), f = t !== void 0 ? t : d, h = V(null), [m, T] = z(null), v = V(!1);
3501
+ r ?? ((v = e[0]) == null ? void 0 : v.value) ?? ""
3502
+ ), f = t !== void 0 ? t : d, h = V(null), [m, T] = z(null), b = V(!1);
3503
3503
  se(() => {
3504
3504
  const k = h.current;
3505
3505
  if (!k) return;
@@ -3508,8 +3508,8 @@ function kt({
3508
3508
  S && (T({
3509
3509
  left: S.offsetLeft,
3510
3510
  width: S.offsetWidth,
3511
- animate: v.current
3512
- }), v.current = !0);
3511
+ animate: b.current
3512
+ }), b.current = !0);
3513
3513
  };
3514
3514
  x();
3515
3515
  const M = new ResizeObserver(x);
@@ -3685,7 +3685,7 @@ const ze = pe(({
3685
3685
  );
3686
3686
  });
3687
3687
  ze.displayName = "ColorSwatch";
3688
- function Be(e, t, r) {
3688
+ function qe(e, t, r) {
3689
3689
  return Math.max(t, Math.min(r, e));
3690
3690
  }
3691
3691
  function oa(e, t, r) {
@@ -3724,7 +3724,7 @@ function St(e) {
3724
3724
  };
3725
3725
  }
3726
3726
  function _e({ r: e, g: t, b: r, a: o }) {
3727
- const a = (l) => Be(Math.round(l), 0, 255).toString(16).padStart(2, "0"), i = `#${a(e)}${a(t)}${a(r)}`;
3727
+ const a = (l) => qe(Math.round(l), 0, 255).toString(16).padStart(2, "0"), i = `#${a(e)}${a(t)}${a(r)}`;
3728
3728
  return o < 1 ? `${i}${a(Math.round(o * 255))}` : i;
3729
3729
  }
3730
3730
  function Tt({ h: e, s: t, v: r, a: o }) {
@@ -3777,7 +3777,7 @@ const la = [
3777
3777
  ].join(", ");
3778
3778
  function st({ value: e, min: t, max: r, onChange: o, trackStyle: a, formatTooltip: i }) {
3779
3779
  const l = V(null), [s, c] = z(!1), d = ee((f) => {
3780
- const h = l.current.getBoundingClientRect(), m = Be((f.clientX - h.left) / h.width, 0, 1);
3780
+ const h = l.current.getBoundingClientRect(), m = qe((f.clientX - h.left) / h.width, 0, 1);
3781
3781
  o(t + m * (r - t));
3782
3782
  }, [t, r, o]), u = (e - t) / (r - t) * 100;
3783
3783
  return /* @__PURE__ */ n(
@@ -3851,13 +3851,13 @@ function ua({
3851
3851
  style: d
3852
3852
  }) {
3853
3853
  var P, j;
3854
- const u = o === "sm" ? 24 : 40, f = ve(), h = c ?? f, [m, T] = z(!1), [v, p] = z("hex"), [b, k] = z(0), [x, M] = z(() => {
3854
+ const u = o === "sm" ? 24 : 40, f = be(), h = c ?? f, [m, T] = z(!1), [b, p] = z("hex"), [v, k] = z(0), [x, M] = z(() => {
3855
3855
  const g = e ? ke(e) ?? { r: 0, g: 0, b: 0, a: 1 } : { r: 0, g: 0, b: 0, a: 1 };
3856
3856
  return re(g);
3857
- }), [S, A] = z(() => we(x).slice(1).toUpperCase()), L = V(null), C = V(null), D = V(null), [$, W] = z({ top: 0, left: 0 });
3857
+ }), [S, A] = z(() => we(x).slice(1).toUpperCase()), R = V(null), C = V(null), D = V(null), [$, W] = z({ top: 0, left: 0 });
3858
3858
  se(() => {
3859
- if (!m || !L.current) return;
3860
- const g = L.current.getBoundingClientRect();
3859
+ if (!m || !R.current) return;
3860
+ const g = R.current.getBoundingClientRect();
3861
3861
  let E = g.left;
3862
3862
  const O = g.bottom + 8;
3863
3863
  if (D.current) {
@@ -3874,7 +3874,7 @@ function ua({
3874
3874
  const g = (E) => {
3875
3875
  var Y, H;
3876
3876
  const O = E.target;
3877
- (Y = L.current) != null && Y.contains(O) || (H = D.current) != null && H.contains(O) || T(!1);
3877
+ (Y = R.current) != null && Y.contains(O) || (H = D.current) != null && H.contains(O) || T(!1);
3878
3878
  };
3879
3879
  return document.addEventListener("mousedown", g), () => document.removeEventListener("mousedown", g);
3880
3880
  }, [m]);
@@ -3883,25 +3883,25 @@ function ua({
3883
3883
  const E = we(g);
3884
3884
  A(E.slice(1).toUpperCase()), t == null || t(E);
3885
3885
  }, [t]), F = ee((g) => {
3886
- const E = C.current.getBoundingClientRect(), O = Math.round(Be((g.clientX - E.left) / E.width, 0, 1) * 100), Y = Math.round((1 - Be((g.clientY - E.top) / E.height, 0, 1)) * 100);
3886
+ const E = C.current.getBoundingClientRect(), O = Math.round(qe((g.clientX - E.left) / E.width, 0, 1) * 100), Y = Math.round((1 - qe((g.clientY - E.top) / E.height, 0, 1)) * 100);
3887
3887
  w({ ...x, s: O, v: Y });
3888
- }, [x, w]), R = ee(async () => {
3888
+ }, [x, w]), L = ee(async () => {
3889
3889
  if ("EyeDropper" in window)
3890
3890
  try {
3891
3891
  const g = await new window.EyeDropper().open(), E = ke(g.sRGBHex);
3892
3892
  E && w(re(E));
3893
3893
  } catch {
3894
3894
  }
3895
- }, [w]), N = Tt(x), U = sa(N.r, N.g, N.b), Z = we(x), J = we({ ...x, a: 1 }), q = Math.round(x.a * 100), I = [
3895
+ }, [w]), N = Tt(x), U = sa(N.r, N.g, N.b), Z = we(x), J = we({ ...x, a: 1 }), B = Math.round(x.a * 100), I = [
3896
3896
  { id: "hex", label: "Hex" },
3897
3897
  { id: "rgb", label: "RGB" },
3898
3898
  { id: "hsl", label: "HSL" },
3899
3899
  { id: "hsb", label: "HSB" }
3900
- ], B = typeof window < "u" && "EyeDropper" in window;
3900
+ ], q = typeof window < "u" && "EyeDropper" in window;
3901
3901
  return /* @__PURE__ */ y(
3902
3902
  "div",
3903
3903
  {
3904
- ref: L,
3904
+ ref: R,
3905
3905
  style: { display: "inline-flex", flexDirection: a ? "row" : "column", alignItems: a ? "center" : void 0, gap: "var(--lucent-space-1)", position: "relative", ...d },
3906
3906
  children: [
3907
3907
  /* @__PURE__ */ n("style", { children: `
@@ -4066,20 +4066,20 @@ function ua({
4066
4066
  kt,
4067
4067
  {
4068
4068
  size: "sm",
4069
- value: v,
4069
+ value: b,
4070
4070
  onChange: (g) => p(g),
4071
4071
  options: I.map(({ id: g, label: E }) => ({ value: g, label: E }))
4072
4072
  }
4073
4073
  ),
4074
- v === "hex" && /* @__PURE__ */ y("div", { style: { display: "flex", gap: 6, alignItems: "center" }, children: [
4074
+ b === "hex" && /* @__PURE__ */ y("div", { style: { display: "flex", gap: 6, alignItems: "center" }, children: [
4075
4075
  /* @__PURE__ */ n(
4076
4076
  Ee,
4077
4077
  {
4078
4078
  variant: "secondary",
4079
4079
  size: "sm",
4080
- onClick: R,
4081
- disabled: !B,
4082
- title: B ? "Pick color from screen" : "Not supported in this browser",
4080
+ onClick: L,
4081
+ disabled: !q,
4082
+ title: q ? "Pick color from screen" : "Not supported in this browser",
4083
4083
  leftIcon: /* @__PURE__ */ n(da, {}),
4084
4084
  style: { flexShrink: 0, paddingLeft: 8, paddingRight: 8 }
4085
4085
  }
@@ -4111,7 +4111,7 @@ function ua({
4111
4111
  size: "sm",
4112
4112
  type: "number",
4113
4113
  suffix: "%",
4114
- value: q,
4114
+ value: B,
4115
4115
  min: 0,
4116
4116
  max: 100,
4117
4117
  onChange: (g) => {
@@ -4123,16 +4123,16 @@ function ua({
4123
4123
  }
4124
4124
  )
4125
4125
  ] }),
4126
- v === "rgb" && /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6 }, children: [
4126
+ b === "rgb" && /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6 }, children: [
4127
4127
  { label: "R", val: N.r, max: 255, fn: (g) => w(re({ ...N, r: g })) },
4128
4128
  { label: "G", val: N.g, max: 255, fn: (g) => w(re({ ...N, g })) },
4129
4129
  { label: "B", val: N.b, max: 255, fn: (g) => w(re({ ...N, b: g })) },
4130
- { label: "A", val: q, max: 100, fn: (g) => w({ ...x, a: g / 100 }) }
4130
+ { label: "A", val: B, max: 100, fn: (g) => w({ ...x, a: g / 100 }) }
4131
4131
  ].map(({ label: g, val: E, max: O, fn: Y }) => /* @__PURE__ */ n(ce, { size: "sm", type: "number", prefix: g, value: E, min: 0, max: O, onChange: (H) => {
4132
4132
  const G = +H.target.value;
4133
4133
  !isNaN(G) && G >= 0 && G <= O && Y(G);
4134
4134
  }, className: "lucent-cp-field", style: { flex: 1 } }, g)) }),
4135
- v === "hsl" && /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6 }, children: [
4135
+ b === "hsl" && /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6 }, children: [
4136
4136
  { label: "H", val: U.h, max: 360, fn: (g) => {
4137
4137
  const { r: E, g: O, b: Y } = Ae(g, U.s, U.l);
4138
4138
  w(re({ r: E, g: O, b: Y, a: x.a }));
@@ -4145,16 +4145,16 @@ function ua({
4145
4145
  const { r: E, g: O, b: Y } = Ae(U.h, U.s, g);
4146
4146
  w(re({ r: E, g: O, b: Y, a: x.a }));
4147
4147
  } },
4148
- { label: "A", val: q, max: 100, fn: (g) => w({ ...x, a: g / 100 }) }
4148
+ { label: "A", val: B, max: 100, fn: (g) => w({ ...x, a: g / 100 }) }
4149
4149
  ].map(({ label: g, val: E, max: O, fn: Y }) => /* @__PURE__ */ n(ce, { size: "sm", type: "number", prefix: g, value: E, min: 0, max: O, onChange: (H) => {
4150
4150
  const G = +H.target.value;
4151
4151
  !isNaN(G) && G >= 0 && G <= O && Y(G);
4152
4152
  }, className: "lucent-cp-field", style: { flex: 1 } }, g)) }),
4153
- v === "hsb" && /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6 }, children: [
4153
+ b === "hsb" && /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6 }, children: [
4154
4154
  { label: "H", val: x.h, max: 360, fn: (g) => w({ ...x, h: g }) },
4155
4155
  { label: "S", val: x.s, max: 100, fn: (g) => w({ ...x, s: g }) },
4156
4156
  { label: "B", val: x.v, max: 100, fn: (g) => w({ ...x, v: g }) },
4157
- { label: "A", val: q, max: 100, fn: (g) => w({ ...x, a: g / 100 }) }
4157
+ { label: "A", val: B, max: 100, fn: (g) => w({ ...x, a: g / 100 }) }
4158
4158
  ].map(({ label: g, val: E, max: O, fn: Y }) => /* @__PURE__ */ n(ce, { size: "sm", type: "number", prefix: g, value: E, min: 0, max: O, onChange: (H) => {
4159
4159
  const G = +H.target.value;
4160
4160
  !isNaN(G) && G >= 0 && G <= O && Y(G);
@@ -4164,7 +4164,7 @@ function ua({
4164
4164
  wt,
4165
4165
  {
4166
4166
  size: "sm",
4167
- value: String(b),
4167
+ value: String(v),
4168
4168
  onChange: (g) => k(Number(g.target.value)),
4169
4169
  options: l.map((g, E) => ({ value: String(E), label: g.label }))
4170
4170
  }
@@ -4175,7 +4175,7 @@ function ua({
4175
4175
  color: "var(--lucent-text-secondary)",
4176
4176
  fontFamily: "var(--lucent-font-family-base)"
4177
4177
  }, children: (P = l[0]) == null ? void 0 : P.label }),
4178
- /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6, flexWrap: "wrap" }, children: (((j = l[b]) == null ? void 0 : j.colors) ?? []).map((g) => {
4178
+ /* @__PURE__ */ n("div", { style: { display: "flex", gap: 6, flexWrap: "wrap" }, children: (((j = l[v]) == null ? void 0 : j.colors) ?? []).map((g) => {
4179
4179
  const E = Je(g).toLowerCase() === Z.slice(0, 7).toLowerCase();
4180
4180
  return /* @__PURE__ */ n(
4181
4181
  ze,
@@ -4199,7 +4199,7 @@ function ua({
4199
4199
  );
4200
4200
  }
4201
4201
  ua.displayName = "ColorPicker";
4202
- const Si = {
4202
+ const Ai = {
4203
4203
  id: "color-picker",
4204
4204
  name: "ColorPicker",
4205
4205
  tier: "atom",
@@ -4306,7 +4306,7 @@ const Si = {
4306
4306
  "Tab — moves through format tabs and input fields within the popover"
4307
4307
  ]
4308
4308
  }
4309
- }, Ti = {
4309
+ }, Ei = {
4310
4310
  id: "color-swatch",
4311
4311
  name: "ColorSwatch",
4312
4312
  tier: "atom",
@@ -4341,7 +4341,7 @@ const Si = {
4341
4341
  ariaAttributes: ["title (tooltip)"],
4342
4342
  keyboardInteractions: ["Enter / Space — triggers onClick"]
4343
4343
  }
4344
- }, Ci = {
4344
+ }, qi = {
4345
4345
  id: "segmented-control",
4346
4346
  name: "SegmentedControl",
4347
4347
  tier: "atom",
@@ -4438,8 +4438,414 @@ const Si = {
4438
4438
  "Click — selects an option"
4439
4439
  ]
4440
4440
  }
4441
+ }, pa = {
4442
+ start: "flex-start",
4443
+ center: "center",
4444
+ end: "flex-end",
4445
+ stretch: "stretch",
4446
+ baseline: "baseline"
4447
+ }, fa = {
4448
+ start: "flex-start",
4449
+ center: "center",
4450
+ end: "flex-end",
4451
+ between: "space-between",
4452
+ around: "space-around"
4441
4453
  };
4442
- function Ii({
4454
+ function Bi({
4455
+ gap: e = "4",
4456
+ align: t = "stretch",
4457
+ justify: r = "start",
4458
+ as: o = "div",
4459
+ wrap: a = !1,
4460
+ children: i,
4461
+ style: l,
4462
+ ...s
4463
+ }) {
4464
+ const c = {
4465
+ display: "flex",
4466
+ flexDirection: "column",
4467
+ gap: `var(--lucent-space-${e})`,
4468
+ alignItems: pa[t],
4469
+ justifyContent: fa[r],
4470
+ ...a && { flexWrap: "wrap" },
4471
+ ...l
4472
+ };
4473
+ return /* @__PURE__ */ n(o, { style: c, ...s, children: i });
4474
+ }
4475
+ const Ri = {
4476
+ id: "stack",
4477
+ name: "Stack",
4478
+ tier: "atom",
4479
+ domain: "neutral",
4480
+ specVersion: "0.1",
4481
+ description: "Vertical flex layout primitive that spaces children using design-system gap tokens.",
4482
+ designIntent: "Stack is the primary vertical layout container. Use it any time you need to arrange elements in a column with consistent spacing — form fields, card content, page sections, sidebar navigation. The gap prop maps to spacing tokens (--lucent-space-*), enforcing consistent vertical rhythm without manual margin management. Prefer Stack over raw inline flex styles for maintainability and readability. Use Row (the horizontal counterpart) when items should flow left-to-right. Stack does not add padding — wrap it in a Card or apply padding on a parent container instead.",
4483
+ props: [
4484
+ {
4485
+ name: "gap",
4486
+ type: "enum",
4487
+ required: !1,
4488
+ default: "4",
4489
+ description: "Spacing between children. Maps to --lucent-space-{n} tokens.",
4490
+ enumValues: ["0", "1", "2", "3", "4", "5", "6", "8", "10", "12", "16", "20", "24"]
4491
+ },
4492
+ {
4493
+ name: "align",
4494
+ type: "enum",
4495
+ required: !1,
4496
+ default: "stretch",
4497
+ description: 'Cross-axis alignment (alignItems). "stretch" fills the container width.',
4498
+ enumValues: ["start", "center", "end", "stretch", "baseline"]
4499
+ },
4500
+ {
4501
+ name: "justify",
4502
+ type: "enum",
4503
+ required: !1,
4504
+ default: "start",
4505
+ description: "Main-axis distribution (justifyContent).",
4506
+ enumValues: ["start", "center", "end", "between", "around"]
4507
+ },
4508
+ {
4509
+ name: "as",
4510
+ type: "enum",
4511
+ required: !1,
4512
+ default: "div",
4513
+ description: "HTML element to render. Use semantic elements when appropriate (nav for navigation, form for forms).",
4514
+ enumValues: ["div", "section", "nav", "form", "fieldset", "ul", "ol"]
4515
+ },
4516
+ {
4517
+ name: "wrap",
4518
+ type: "boolean",
4519
+ required: !1,
4520
+ default: "false",
4521
+ description: "Whether children should wrap to the next line when they exceed the container width."
4522
+ },
4523
+ {
4524
+ name: "children",
4525
+ type: "ReactNode",
4526
+ required: !0,
4527
+ description: "The elements to arrange vertically."
4528
+ },
4529
+ {
4530
+ name: "style",
4531
+ type: "object",
4532
+ required: !1,
4533
+ description: "Inline style overrides. Applied after computed layout styles."
4534
+ },
4535
+ {
4536
+ name: "className",
4537
+ type: "string",
4538
+ required: !1,
4539
+ description: "CSS class name passthrough."
4540
+ }
4541
+ ],
4542
+ usageExamples: [
4543
+ {
4544
+ title: "Form layout",
4545
+ code: `<Stack gap="4">
4546
+ <FormField label="Name"><Input /></FormField>
4547
+ <FormField label="Email"><Input type="email" /></FormField>
4548
+ <Button variant="primary">Submit</Button>
4549
+ </Stack>`
4550
+ },
4551
+ {
4552
+ title: "Card content",
4553
+ code: `<Card padding="lg">
4554
+ <Stack gap="3">
4555
+ <Text as="h3" size="lg" weight="semibold">Title</Text>
4556
+ <Text size="sm" color="secondary">Description goes here.</Text>
4557
+ <Button variant="outline" size="sm">Learn more</Button>
4558
+ </Stack>
4559
+ </Card>`
4560
+ },
4561
+ {
4562
+ title: "Tight spacing",
4563
+ code: `<Stack gap="1">
4564
+ <Text size="sm" weight="medium">Label</Text>
4565
+ <Text size="xs" color="secondary">Helper text</Text>
4566
+ </Stack>`
4567
+ },
4568
+ {
4569
+ title: "Centered content",
4570
+ code: `<Stack gap="4" align="center" justify="center" style={{ minHeight: 200 }}>
4571
+ <Spinner />
4572
+ <Text color="secondary">Loading...</Text>
4573
+ </Stack>`
4574
+ },
4575
+ {
4576
+ title: "Semantic nav",
4577
+ code: `<Stack as="nav" gap="1">
4578
+ <NavLink href="/home">Home</NavLink>
4579
+ <NavLink href="/settings">Settings</NavLink>
4580
+ </Stack>`
4581
+ }
4582
+ ],
4583
+ compositionGraph: [],
4584
+ accessibility: {
4585
+ notes: "Stack renders a <div> by default, which has no implicit ARIA role. Use the `as` prop to render semantic elements (nav, section, form) when the content has a specific structural purpose. Add aria-label or aria-labelledby when using landmark elements."
4586
+ }
4587
+ }, ha = {
4588
+ start: "flex-start",
4589
+ center: "center",
4590
+ end: "flex-end",
4591
+ stretch: "stretch",
4592
+ baseline: "baseline"
4593
+ }, ma = {
4594
+ start: "flex-start",
4595
+ center: "center",
4596
+ end: "flex-end",
4597
+ between: "space-between",
4598
+ around: "space-around"
4599
+ };
4600
+ function Li({
4601
+ gap: e = "3",
4602
+ align: t = "center",
4603
+ justify: r = "start",
4604
+ as: o = "div",
4605
+ wrap: a = !1,
4606
+ children: i,
4607
+ style: l,
4608
+ ...s
4609
+ }) {
4610
+ const c = {
4611
+ display: "flex",
4612
+ flexDirection: "row",
4613
+ gap: `var(--lucent-space-${e})`,
4614
+ alignItems: ha[t],
4615
+ justifyContent: ma[r],
4616
+ ...a && { flexWrap: "wrap" },
4617
+ ...l
4618
+ };
4619
+ return /* @__PURE__ */ n(o, { style: c, ...s, children: i });
4620
+ }
4621
+ const Pi = {
4622
+ id: "row",
4623
+ name: "Row",
4624
+ tier: "atom",
4625
+ domain: "neutral",
4626
+ specVersion: "0.1",
4627
+ description: "Horizontal flex layout primitive that spaces children using design-system gap tokens.",
4628
+ designIntent: 'Row is the primary horizontal layout container. Use it any time you need to arrange elements side by side — button groups, label-value pairs, icon + text combos, toolbar actions. Default align is "center" (vertical centering), which is the most common horizontal layout need. Use justify="between" for space-between patterns like a header with title on the left and actions on the right. Set wrap=true when items should flow to the next line on narrow screens. Row does not add padding — wrap it in a Card or apply padding on a parent container instead. For vertical arrangement, use Stack instead.',
4629
+ props: [
4630
+ {
4631
+ name: "gap",
4632
+ type: "enum",
4633
+ required: !1,
4634
+ default: "3",
4635
+ description: "Spacing between children. Maps to --lucent-space-{n} tokens.",
4636
+ enumValues: ["0", "1", "2", "3", "4", "5", "6", "8", "10", "12", "16", "20", "24"]
4637
+ },
4638
+ {
4639
+ name: "align",
4640
+ type: "enum",
4641
+ required: !1,
4642
+ default: "center",
4643
+ description: 'Cross-axis alignment (alignItems). "center" vertically centers items, which is the most common need.',
4644
+ enumValues: ["start", "center", "end", "stretch", "baseline"]
4645
+ },
4646
+ {
4647
+ name: "justify",
4648
+ type: "enum",
4649
+ required: !1,
4650
+ default: "start",
4651
+ description: 'Main-axis distribution (justifyContent). Use "between" for label/action pairs.',
4652
+ enumValues: ["start", "center", "end", "between", "around"]
4653
+ },
4654
+ {
4655
+ name: "as",
4656
+ type: "enum",
4657
+ required: !1,
4658
+ default: "div",
4659
+ description: "HTML element to render. Use semantic elements when appropriate (nav for navigation, form for forms).",
4660
+ enumValues: ["div", "section", "nav", "form", "fieldset", "ul", "ol"]
4661
+ },
4662
+ {
4663
+ name: "wrap",
4664
+ type: "boolean",
4665
+ required: !1,
4666
+ default: "false",
4667
+ description: "Whether children should wrap to the next line when they exceed the container width."
4668
+ },
4669
+ {
4670
+ name: "children",
4671
+ type: "ReactNode",
4672
+ required: !0,
4673
+ description: "The elements to arrange horizontally."
4674
+ },
4675
+ {
4676
+ name: "style",
4677
+ type: "object",
4678
+ required: !1,
4679
+ description: "Inline style overrides. Applied after computed layout styles."
4680
+ },
4681
+ {
4682
+ name: "className",
4683
+ type: "string",
4684
+ required: !1,
4685
+ description: "CSS class name passthrough."
4686
+ }
4687
+ ],
4688
+ usageExamples: [
4689
+ {
4690
+ title: "Settings toggle",
4691
+ code: `<Row gap="3" justify="between">
4692
+ <Text size="sm">Push notifications</Text>
4693
+ <Toggle />
4694
+ </Row>`
4695
+ },
4696
+ {
4697
+ title: "Button group",
4698
+ code: `<Row gap="2">
4699
+ <Button variant="primary">Save</Button>
4700
+ <Button variant="outline">Cancel</Button>
4701
+ </Row>`
4702
+ },
4703
+ {
4704
+ title: "Stats row",
4705
+ code: `<Row gap="6" wrap>
4706
+ <Stack gap="1">
4707
+ <Text size="2xl" weight="bold">1,234</Text>
4708
+ <Text size="xs" color="secondary">Users</Text>
4709
+ </Stack>
4710
+ <Stack gap="1">
4711
+ <Text size="2xl" weight="bold">56.7%</Text>
4712
+ <Text size="xs" color="secondary">Conversion</Text>
4713
+ </Stack>
4714
+ </Row>`
4715
+ },
4716
+ {
4717
+ title: "Icon + text",
4718
+ code: `<Row gap="2" align="center">
4719
+ <Icon name="check" size={16} />
4720
+ <Text size="sm" color="success">Verified</Text>
4721
+ </Row>`
4722
+ },
4723
+ {
4724
+ title: "Header with actions",
4725
+ code: `<Row justify="between">
4726
+ <Text as="h2" size="xl" weight="semibold">Dashboard</Text>
4727
+ <Row gap="2">
4728
+ <Button variant="outline" size="sm">Export</Button>
4729
+ <Button variant="primary" size="sm">New report</Button>
4730
+ </Row>
4731
+ </Row>`
4732
+ }
4733
+ ],
4734
+ compositionGraph: [],
4735
+ accessibility: {
4736
+ notes: 'Row renders a <div> by default, which has no implicit ARIA role. Use the `as` prop to render semantic elements (nav, section) when the content has a specific structural purpose. For toolbar patterns, consider adding role="toolbar" via the role prop.'
4737
+ }
4738
+ }, ga = {
4739
+ sm: { height: 4, radius: "var(--lucent-radius-sm)" },
4740
+ md: { height: 8, radius: "var(--lucent-radius-md)" },
4741
+ lg: { height: 12, radius: "var(--lucent-radius-md)" }
4742
+ }, va = {
4743
+ accent: "var(--lucent-accent-default)",
4744
+ success: "var(--lucent-success-default)",
4745
+ warning: "var(--lucent-warning-default)",
4746
+ danger: "var(--lucent-danger-default)"
4747
+ };
4748
+ function ba(e, t, r, o, a) {
4749
+ return o !== void 0 && a !== void 0 ? o <= a ? e >= a ? "danger" : e >= o ? "warning" : "success" : e <= a ? "danger" : e <= o ? "warning" : "success" : o !== void 0 ? o <= t / 2 ? e <= o ? "warning" : r ?? "accent" : e >= o ? "warning" : r ?? "accent" : a !== void 0 ? a <= t / 2 ? e <= a ? "danger" : r ?? "accent" : e >= a ? "danger" : r ?? "accent" : r ?? "accent";
4750
+ }
4751
+ function Fi({
4752
+ value: e,
4753
+ max: t = 100,
4754
+ variant: r,
4755
+ size: o = "md",
4756
+ warnAt: a,
4757
+ dangerAt: i,
4758
+ label: l,
4759
+ style: s
4760
+ }) {
4761
+ const c = Math.max(0, Math.min(e, t)), d = t > 0 ? c / t * 100 : 0, u = ba(c, t, r, a, i), f = ga[o], h = va[u], m = l === !0 ? `${Math.round(d)}%` : l || null;
4762
+ return /* @__PURE__ */ y(
4763
+ "div",
4764
+ {
4765
+ style: {
4766
+ display: "flex",
4767
+ alignItems: "center",
4768
+ gap: "var(--lucent-space-3)",
4769
+ fontFamily: "var(--lucent-font-family-base)",
4770
+ ...s
4771
+ },
4772
+ children: [
4773
+ /* @__PURE__ */ n(
4774
+ "div",
4775
+ {
4776
+ role: "progressbar",
4777
+ "aria-valuenow": c,
4778
+ "aria-valuemin": 0,
4779
+ "aria-valuemax": t,
4780
+ style: {
4781
+ flex: 1,
4782
+ height: f.height,
4783
+ borderRadius: f.radius,
4784
+ background: "var(--lucent-surface-secondary)",
4785
+ overflow: "hidden"
4786
+ },
4787
+ children: /* @__PURE__ */ n(
4788
+ "div",
4789
+ {
4790
+ style: {
4791
+ width: `${d}%`,
4792
+ height: "100%",
4793
+ borderRadius: f.radius,
4794
+ background: h,
4795
+ transition: "width var(--lucent-duration-base) var(--lucent-easing-default), background var(--lucent-duration-base) var(--lucent-easing-default)"
4796
+ }
4797
+ }
4798
+ )
4799
+ }
4800
+ ),
4801
+ m != null && /* @__PURE__ */ n(
4802
+ "span",
4803
+ {
4804
+ style: {
4805
+ fontSize: "var(--lucent-font-size-sm)",
4806
+ fontWeight: "var(--lucent-font-weight-medium)",
4807
+ color: "var(--lucent-text-secondary)",
4808
+ whiteSpace: "nowrap",
4809
+ flexShrink: 0
4810
+ },
4811
+ children: m
4812
+ }
4813
+ )
4814
+ ]
4815
+ }
4816
+ );
4817
+ }
4818
+ const Ni = {
4819
+ id: "progress",
4820
+ name: "Progress",
4821
+ tier: "atom",
4822
+ domain: "neutral",
4823
+ specVersion: "0.1",
4824
+ description: "A horizontal bar indicating completion, progress, or resource usage.",
4825
+ designIntent: 'Use Progress to visualise a bounded numeric value — task completion, disk usage, health bars, etc. Set warnAt/dangerAt thresholds for automatic colour shifts instead of hardcoding variants. Ascending thresholds (warnAt < dangerAt) suit "high is bad" metrics like CPU; descending thresholds (warnAt > dangerAt) suit "low is bad" metrics like battery.',
4826
+ props: [
4827
+ { name: "value", type: "number", required: !0, description: "Current progress value." },
4828
+ { name: "max", type: "number", required: !1, default: "100", description: "Maximum value." },
4829
+ { name: "variant", type: "enum", required: !1, default: "accent", description: "Colour variant. Overridden when thresholds are set.", enumValues: ["accent", "success", "warning", "danger"] },
4830
+ { name: "size", type: "enum", required: !1, default: "md", description: "Bar height.", enumValues: ["sm", "md", "lg"] },
4831
+ { name: "warnAt", type: "number", required: !1, description: "Value at which variant auto-switches to warning." },
4832
+ { name: "dangerAt", type: "number", required: !1, description: "Value at which variant auto-switches to danger." },
4833
+ { name: "label", type: "union", required: !1, description: "true shows percentage; ReactNode shows custom label." }
4834
+ ],
4835
+ usageExamples: [
4836
+ { title: "Basic", code: "<Progress value={60} />" },
4837
+ { title: "With label", code: "<Progress value={42} label />" },
4838
+ { title: "Thresholds", code: "<Progress value={85} warnAt={70} dangerAt={90} label />" },
4839
+ { title: "Danger variant", code: '<Progress value={95} variant="danger" size="lg" label />' }
4840
+ ],
4841
+ compositionGraph: [],
4842
+ accessibility: {
4843
+ role: "progressbar",
4844
+ ariaAttributes: ["aria-valuenow", "aria-valuemin", "aria-valuemax"],
4845
+ notes: "Uses native progressbar role. Add aria-label on the wrapping element for screen-reader context."
4846
+ }
4847
+ };
4848
+ function $i({
4443
4849
  label: e,
4444
4850
  htmlFor: t,
4445
4851
  required: r = !1,
@@ -4458,7 +4864,7 @@ function Ii({
4458
4864
  s && /* @__PURE__ */ n(_, { size: "xs", color: c, lineHeight: "tight", children: s })
4459
4865
  ] });
4460
4866
  }
4461
- const Mi = {
4867
+ const Wi = {
4462
4868
  id: "form-field",
4463
4869
  name: "FormField",
4464
4870
  tier: "molecule",
@@ -4544,11 +4950,11 @@ const Mi = {
4544
4950
  ariaAttributes: ["aria-required", "aria-describedby"],
4545
4951
  notes: 'Link the wrapped control to an error message using aria-describedby on the control and a matching id on the error element for full screen reader support. The required asterisk is aria-hidden; set aria-required="true" on the control itself.'
4546
4952
  }
4547
- }, pa = { sm: 14, md: 18, lg: 20 }, fa = { sm: "sm", md: "md", lg: "md" }, ha = { sm: "var(--lucent-space-1)", md: "var(--lucent-space-2)", lg: "var(--lucent-space-2)" }, ma = ({ size: e = 16 }) => /* @__PURE__ */ y("svg", { width: e, height: e, viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
4953
+ }, ya = { sm: 14, md: 18, lg: 20 }, xa = { sm: "sm", md: "md", lg: "md" }, wa = { sm: "var(--lucent-space-1)", md: "var(--lucent-space-2)", lg: "var(--lucent-space-2)" }, ka = ({ size: e = 16 }) => /* @__PURE__ */ y("svg", { width: e, height: e, viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
4548
4954
  /* @__PURE__ */ n("circle", { cx: "6.5", cy: "6.5", r: "4", stroke: "currentColor", strokeWidth: "1.5" }),
4549
4955
  /* @__PURE__ */ n("path", { d: "M9.5 9.5L13 13", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
4550
- ] }), ga = () => /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M3 3L11 11M11 3L3 11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) });
4551
- function Di({
4956
+ ] }), Sa = () => /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M3 3L11 11M11 3L3 11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) });
4957
+ function Oi({
4552
4958
  value: e,
4553
4959
  onChange: t,
4554
4960
  placeholder: r = "Search…",
@@ -4563,26 +4969,26 @@ function Di({
4563
4969
  id: f,
4564
4970
  style: h
4565
4971
  }) {
4566
- const [m, T] = z(!1), [v, p] = z(null), b = V(null), k = V(null), x = V(null), [M, S] = z({ top: 0, left: 0, width: 0 }), A = m && s.length > 0;
4972
+ const [m, T] = z(!1), [b, p] = z(null), v = V(null), k = V(null), x = V(null), [M, S] = z({ top: 0, left: 0, width: 0 }), A = m && s.length > 0;
4567
4973
  se(() => {
4568
4974
  if (!A || !k.current) return;
4569
4975
  const w = k.current.getBoundingClientRect();
4570
4976
  S({ top: w.bottom + 4, left: w.left, width: w.width });
4571
4977
  }, [A]);
4572
- const L = () => {
4978
+ const R = () => {
4573
4979
  t("");
4574
4980
  }, C = (w) => {
4575
4981
  c == null || c(w), T(!1);
4576
4982
  }, D = () => {
4577
- b.current = setTimeout(() => T(!1), 150);
4983
+ v.current = setTimeout(() => T(!1), 150);
4578
4984
  }, $ = () => {
4579
- b.current && clearTimeout(b.current), T(!0);
4580
- }, W = d ? /* @__PURE__ */ n(bn, { size: "sm" }) : e ? /* @__PURE__ */ n(
4985
+ v.current && clearTimeout(v.current), T(!0);
4986
+ }, W = d ? /* @__PURE__ */ n(vn, { size: "sm" }) : e ? /* @__PURE__ */ n(
4581
4987
  "button",
4582
4988
  {
4583
4989
  type: "button",
4584
4990
  "aria-label": "Clear search",
4585
- onClick: L,
4991
+ onClick: R,
4586
4992
  style: {
4587
4993
  display: "flex",
4588
4994
  alignItems: "center",
@@ -4599,7 +5005,7 @@ function Di({
4599
5005
  onMouseLeave: (w) => {
4600
5006
  w.currentTarget.style.color = "var(--lucent-text-secondary)";
4601
5007
  },
4602
- children: /* @__PURE__ */ n(ga, {})
5008
+ children: /* @__PURE__ */ n(Sa, {})
4603
5009
  }
4604
5010
  ) : null;
4605
5011
  return /* @__PURE__ */ y("div", { ref: k, style: { ...h }, children: [
@@ -4613,7 +5019,7 @@ function Di({
4613
5019
  onChange: (w) => t(w.target.value),
4614
5020
  placeholder: r,
4615
5021
  disabled: u,
4616
- leftElement: /* @__PURE__ */ n(ma, { size: pa[o] }),
5022
+ leftElement: /* @__PURE__ */ n(ka, { size: ya[o] }),
4617
5023
  rightElement: W ?? void 0,
4618
5024
  onFocus: $,
4619
5025
  onBlur: D,
@@ -4640,7 +5046,7 @@ function Di({
4640
5046
  border: "1px solid color-mix(in srgb, var(--lucent-accent-default) 15%, var(--lucent-border-default))",
4641
5047
  borderRadius: "var(--lucent-radius-lg)",
4642
5048
  boxShadow: "0 0 24px -4px color-mix(in srgb, var(--lucent-accent-default) 12%, transparent), var(--lucent-shadow-md)",
4643
- padding: ha[o]
5049
+ padding: wa[o]
4644
5050
  },
4645
5051
  children: s.map((w, F) => /* @__PURE__ */ n(
4646
5052
  "div",
@@ -4654,10 +5060,10 @@ function Di({
4654
5060
  padding: "var(--lucent-space-2)",
4655
5061
  borderRadius: "var(--lucent-radius-md)",
4656
5062
  cursor: "pointer",
4657
- background: v === F ? "color-mix(in srgb, var(--lucent-accent-default) 20%, var(--lucent-surface-secondary))" : "transparent",
5063
+ background: b === F ? "color-mix(in srgb, var(--lucent-accent-default) 20%, var(--lucent-surface-secondary))" : "transparent",
4658
5064
  transition: "background var(--lucent-duration-fast) var(--lucent-easing-default)"
4659
5065
  },
4660
- children: /* @__PURE__ */ n(_, { as: "span", size: fa[o], children: w.label })
5066
+ children: /* @__PURE__ */ n(_, { as: "span", size: xa[o], children: w.label })
4661
5067
  },
4662
5068
  w.id
4663
5069
  ))
@@ -4667,7 +5073,7 @@ function Di({
4667
5073
  )
4668
5074
  ] });
4669
5075
  }
4670
- const zi = {
5076
+ const Hi = {
4671
5077
  id: "search-input",
4672
5078
  name: "SearchInput",
4673
5079
  tier: "molecule",
@@ -4789,7 +5195,7 @@ const [results, setResults] = useState([]);
4789
5195
  keyboardInteractions: ["Enter to select focused result", "Escape to close dropdown"],
4790
5196
  notes: 'The results list uses role="listbox" with role="option" items. For full keyboard navigation (arrow keys to move between results), wire up onKeyDown on the Input and manage an activeIndex state.'
4791
5197
  }
4792
- }, Ct = ye("0"), ba = {
5198
+ }, Ct = ye("0"), Ta = {
4793
5199
  none: { py: "0", px: "0" },
4794
5200
  sm: { py: "var(--lucent-space-2)", px: "var(--lucent-space-3)" },
4795
5201
  md: { py: "var(--lucent-space-4)", px: "var(--lucent-space-5)" },
@@ -4799,17 +5205,17 @@ const [results, setResults] = useState([]);
4799
5205
  sm: "var(--lucent-shadow-sm)",
4800
5206
  md: "var(--lucent-shadow-md)",
4801
5207
  lg: "var(--lucent-shadow-lg)"
4802
- }, va = {
5208
+ }, Ca = {
4803
5209
  none: "var(--lucent-radius-none)",
4804
5210
  sm: "var(--lucent-radius-sm)",
4805
5211
  md: "var(--lucent-radius-md)",
4806
5212
  lg: "var(--lucent-radius-lg)"
4807
- }, ya = {
5213
+ }, Ia = {
4808
5214
  success: "var(--lucent-success-default)",
4809
5215
  warning: "var(--lucent-warning-default)",
4810
5216
  danger: "var(--lucent-danger-default)",
4811
5217
  info: "var(--lucent-info-default)"
4812
- }, xa = {
5218
+ }, Ma = {
4813
5219
  ghost: {
4814
5220
  background: "transparent",
4815
5221
  border: "none",
@@ -4840,22 +5246,22 @@ const [results, setResults] = useState([]);
4840
5246
  shadowDefault: "none",
4841
5247
  dividers: !1
4842
5248
  }
4843
- }, wa = [
5249
+ }, Da = [
4844
5250
  "transform 80ms var(--lucent-easing-default)",
4845
5251
  "box-shadow var(--lucent-duration-fast) var(--lucent-easing-default)",
4846
5252
  "border-color var(--lucent-duration-fast) var(--lucent-easing-default)",
4847
5253
  "background var(--lucent-duration-fast) var(--lucent-easing-default)"
4848
- ].join(", "), ka = "0 4px 14px -2px var(--lucent-accent-subtle)", Sa = "0 0 0 3px var(--lucent-accent-subtle)", Ta = "0 0 0 2px var(--lucent-surface), 0 0 0 4px var(--lucent-accent-default)", Ca = "0 0 0 3px var(--lucent-accent-subtle)";
5254
+ ].join(", "), za = "0 4px 14px -2px var(--lucent-accent-subtle)", Aa = "0 0 0 3px var(--lucent-accent-subtle)", Ea = "0 0 0 2px var(--lucent-surface), 0 0 0 4px var(--lucent-accent-default)", qa = "0 0 0 3px var(--lucent-accent-subtle)";
4849
5255
  function he(...e) {
4850
5256
  const t = e.filter(
4851
5257
  (r) => r != null && r !== "none" && r !== "var(--lucent-shadow-none)"
4852
5258
  );
4853
5259
  return t.length > 0 ? t.join(", ") : void 0;
4854
5260
  }
4855
- function Ia(e, t, r) {
5261
+ function Ba(e, t, r) {
4856
5262
  return !t || r ? e.background : e.background === "transparent" ? "var(--lucent-accent-subtle)" : `color-mix(in srgb, var(--lucent-accent-default) 6%, ${e.background})`;
4857
5263
  }
4858
- function Ai({
5264
+ function Vi({
4859
5265
  variant: e = "outline",
4860
5266
  header: t,
4861
5267
  footer: r,
@@ -4871,15 +5277,15 @@ function Ai({
4871
5277
  disabled: h,
4872
5278
  status: m,
4873
5279
  selected: T,
4874
- media: v
5280
+ media: b
4875
5281
  }) {
4876
- const p = xa[e], b = e === "combo", k = i ?? (b ? "md" : p.shadowDefault), { py: x, px: M } = ba[a], S = `${x} ${M}`, A = va[l], L = d != null, C = c != null || L, D = (h ?? !1) && C, $ = L ? "a" : C ? "button" : "div", [W, w] = z(!1), [F, R] = z(!1), [N, U] = z(!1), Z = (T ?? !1) && !D, J = Z ? Ca : void 0, q = Ia(p, T ?? !1, D);
5282
+ const p = Ma[e], v = e === "combo", k = i ?? (v ? "md" : p.shadowDefault), { py: x, px: M } = Ta[a], S = `${x} ${M}`, A = Ca[l], R = d != null, C = c != null || R, D = (h ?? !1) && C, $ = R ? "a" : C ? "button" : "div", [W, w] = z(!1), [F, L] = z(!1), [N, U] = z(!1), Z = (T ?? !1) && !D, J = Z ? qa : void 0, B = Ba(p, T ?? !1, D);
4877
5283
  let I;
4878
- b ? I = J : C && !D ? N ? I = he(Ta, J) : F ? I = he(Sa, J) : W ? I = he(ka, Se[k], J) : I = he(Se[k], J) : I = he(Se[k], J);
4879
- const B = {
5284
+ v ? I = J : C && !D ? N ? I = he(Ea, J) : F ? I = he(Aa, J) : W ? I = he(za, Se[k], J) : I = he(Se[k], J) : I = he(Se[k], J);
5285
+ const q = {
4880
5286
  display: "flex",
4881
5287
  flexDirection: "column",
4882
- background: q,
5288
+ background: B,
4883
5289
  border: p.border,
4884
5290
  borderRadius: A,
4885
5291
  // Outer box-shadow rings (selected, focus) get clipped by overflow:hidden,
@@ -4895,18 +5301,18 @@ function Ai({
4895
5301
  ...C && {
4896
5302
  cursor: D ? "not-allowed" : "pointer",
4897
5303
  outline: "none",
4898
- transition: wa
5304
+ transition: Da
4899
5305
  },
4900
5306
  // Button UA reset
4901
- ...C && !L && {
5307
+ ...C && !R && {
4902
5308
  padding: 0,
4903
5309
  font: "inherit",
4904
5310
  textAlign: "inherit",
4905
5311
  width: "100%",
4906
- background: q
5312
+ background: B
4907
5313
  },
4908
5314
  // Link reset
4909
- ...L && {
5315
+ ...R && {
4910
5316
  textDecoration: "none",
4911
5317
  color: "inherit"
4912
5318
  },
@@ -4920,7 +5326,7 @@ function Ai({
4920
5326
  return /* @__PURE__ */ y(
4921
5327
  $,
4922
5328
  {
4923
- style: B,
5329
+ style: q,
4924
5330
  ...C && !D ? {
4925
5331
  onMouseEnter: () => w(!0),
4926
5332
  onMouseLeave: () => {
@@ -4928,25 +5334,25 @@ function Ai({
4928
5334
  },
4929
5335
  onMouseDown: () => U(!0),
4930
5336
  onMouseUp: () => U(!1),
4931
- onFocus: () => R(!0),
5337
+ onFocus: () => L(!0),
4932
5338
  onBlur: () => {
4933
- R(!1), U(!1);
5339
+ L(!1), U(!1);
4934
5340
  }
4935
5341
  } : {},
4936
- ...L && {
5342
+ ...R && {
4937
5343
  href: D ? void 0 : d,
4938
5344
  ...u !== void 0 && { target: u },
4939
5345
  ...f !== void 0 && { rel: f }
4940
5346
  },
4941
- ...!L && C && {
5347
+ ...!R && C && {
4942
5348
  type: "button",
4943
5349
  ...D && { disabled: !0 }
4944
5350
  },
4945
5351
  ...c !== void 0 && !D && { onClick: c },
4946
5352
  ...C && T !== void 0 && { "aria-pressed": T },
4947
- ...L && D && { "aria-disabled": !0 },
5353
+ ...R && D && { "aria-disabled": !0 },
4948
5354
  children: [
4949
- v != null && /* @__PURE__ */ n("div", { style: { lineHeight: 0 }, children: v }),
5355
+ b != null && /* @__PURE__ */ n("div", { style: { lineHeight: 0 }, children: b }),
4950
5356
  m != null && /* @__PURE__ */ n(
4951
5357
  "div",
4952
5358
  {
@@ -4957,7 +5363,7 @@ function Ai({
4957
5363
  left: 0,
4958
5364
  bottom: 0,
4959
5365
  width: 3,
4960
- background: ya[m],
5366
+ background: Ia[m],
4961
5367
  zIndex: 1
4962
5368
  }
4963
5369
  }
@@ -4978,7 +5384,7 @@ function Ai({
4978
5384
  style: {
4979
5385
  padding: S,
4980
5386
  flex: 1,
4981
- ...b ? {
5387
+ ...v ? {
4982
5388
  background: "var(--lucent-surface)",
4983
5389
  border: "1px solid var(--lucent-border-default)",
4984
5390
  borderRadius: A,
@@ -5004,7 +5410,7 @@ function Ai({
5004
5410
  }
5005
5411
  );
5006
5412
  }
5007
- function Ei({ children: e, style: t }) {
5413
+ function ji({ children: e, style: t }) {
5008
5414
  const r = fe(Ct);
5009
5415
  return /* @__PURE__ */ n(
5010
5416
  "div",
@@ -5020,7 +5426,7 @@ function Ei({ children: e, style: t }) {
5020
5426
  }
5021
5427
  );
5022
5428
  }
5023
- const Bi = {
5429
+ const Ui = {
5024
5430
  id: "card",
5025
5431
  name: "Card",
5026
5432
  tier: "molecule",
@@ -5230,30 +5636,30 @@ const Bi = {
5230
5636
  accessibility: {
5231
5637
  notes: "Non-interactive cards have no implicit ARIA role — wrap in <section> or <article> if needed. Interactive cards with onClick render as <button> with focus ring. Interactive cards with href render as <a> with focus ring. Selected cards set aria-pressed on the interactive element. The status accent bar is aria-hidden (decorative). Media slot images should include alt text."
5232
5638
  }
5233
- }, Ma = {
5639
+ }, Ra = {
5234
5640
  info: { bg: "var(--lucent-info-subtle)", border: "var(--lucent-info-default)", iconColor: "var(--lucent-info-text)", textColor: "info" },
5235
5641
  success: { bg: "var(--lucent-success-subtle)", border: "var(--lucent-success-default)", iconColor: "var(--lucent-success-text)", textColor: "success" },
5236
5642
  warning: { bg: "var(--lucent-warning-subtle)", border: "var(--lucent-warning-default)", iconColor: "var(--lucent-warning-text)", textColor: "warning" },
5237
5643
  danger: { bg: "var(--lucent-danger-subtle)", border: "var(--lucent-danger-default)", iconColor: "var(--lucent-danger-text)", textColor: "danger" }
5238
- }, Da = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5644
+ }, La = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5239
5645
  /* @__PURE__ */ n("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
5240
5646
  /* @__PURE__ */ n("path", { d: "M8 5.5V8.5M8 10.5V11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
5241
- ] }), za = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5647
+ ] }), Pa = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5242
5648
  /* @__PURE__ */ n("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
5243
5649
  /* @__PURE__ */ n("path", { d: "M5 8L7 10L11 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
5244
- ] }), Aa = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5650
+ ] }), Fa = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5245
5651
  /* @__PURE__ */ n("path", { d: "M8 2L14.5 13H1.5L8 2Z", stroke: "currentColor", strokeWidth: "1.5", strokeLinejoin: "round" }),
5246
5652
  /* @__PURE__ */ n("path", { d: "M8 6V9M8 11V11.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
5247
- ] }), Ea = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5653
+ ] }), Na = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
5248
5654
  /* @__PURE__ */ n("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
5249
5655
  /* @__PURE__ */ n("path", { d: "M5.5 5.5L10.5 10.5M10.5 5.5L5.5 10.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
5250
- ] }), Ba = {
5251
- info: /* @__PURE__ */ n(Da, {}),
5252
- success: /* @__PURE__ */ n(za, {}),
5253
- warning: /* @__PURE__ */ n(Aa, {}),
5254
- danger: /* @__PURE__ */ n(Ea, {})
5255
- }, qa = () => /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M3 3L11 11M11 3L3 11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) });
5256
- function qi({
5656
+ ] }), $a = {
5657
+ info: /* @__PURE__ */ n(La, {}),
5658
+ success: /* @__PURE__ */ n(Pa, {}),
5659
+ warning: /* @__PURE__ */ n(Fa, {}),
5660
+ danger: /* @__PURE__ */ n(Na, {})
5661
+ }, Wa = () => /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M3 3L11 11M11 3L3 11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) });
5662
+ function Gi({
5257
5663
  variant: e = "info",
5258
5664
  title: t,
5259
5665
  children: r,
@@ -5261,7 +5667,7 @@ function qi({
5261
5667
  icon: a,
5262
5668
  style: i
5263
5669
  }) {
5264
- const l = Ma[e], s = a ?? Ba[e];
5670
+ const l = Ra[e], s = a ?? $a[e];
5265
5671
  return /* @__PURE__ */ y(
5266
5672
  "div",
5267
5673
  {
@@ -5319,14 +5725,14 @@ function qi({
5319
5725
  onMouseLeave: (c) => {
5320
5726
  c.currentTarget.style.opacity = "0.7";
5321
5727
  },
5322
- children: /* @__PURE__ */ n(qa, {})
5728
+ children: /* @__PURE__ */ n(Wa, {})
5323
5729
  }
5324
5730
  )
5325
5731
  ]
5326
5732
  }
5327
5733
  );
5328
5734
  }
5329
- const Li = {
5735
+ const _i = {
5330
5736
  id: "alert",
5331
5737
  name: "Alert",
5332
5738
  tier: "molecule",
@@ -5401,7 +5807,7 @@ const Li = {
5401
5807
  notes: 'role="alert" causes screen readers to announce the content immediately when rendered. For non-urgent status messages, consider using role="status" instead by overriding via style/wrapper.'
5402
5808
  }
5403
5809
  };
5404
- function Ri({
5810
+ function Yi({
5405
5811
  illustration: e,
5406
5812
  title: t,
5407
5813
  description: r,
@@ -5444,7 +5850,7 @@ function Ri({
5444
5850
  }
5445
5851
  );
5446
5852
  }
5447
- const Pi = {
5853
+ const Ki = {
5448
5854
  id: "empty-state",
5449
5855
  name: "EmptyState",
5450
5856
  tier: "molecule",
@@ -5515,11 +5921,11 @@ const Pi = {
5515
5921
  accessibility: {
5516
5922
  notes: "The title renders as an h3 by default. If EmptyState appears inside a section with its own heading hierarchy, override by passing a Text component as part of a custom layout. Ensure the action element has a descriptive label for screen readers."
5517
5923
  }
5518
- }, La = {
5924
+ }, Oa = {
5519
5925
  text: "1em",
5520
5926
  circle: 40,
5521
5927
  rectangle: 40
5522
- }, Ra = {
5928
+ }, Ha = {
5523
5929
  text: "var(--lucent-radius-sm)",
5524
5930
  circle: "var(--lucent-radius-full)",
5525
5931
  rectangle: "var(--lucent-radius-md)"
@@ -5548,7 +5954,7 @@ function lt({
5548
5954
  }
5549
5955
  );
5550
5956
  }
5551
- function Fi({
5957
+ function Xi({
5552
5958
  variant: e = "rectangle",
5553
5959
  width: t = "100%",
5554
5960
  height: r,
@@ -5557,7 +5963,7 @@ function Fi({
5557
5963
  radius: i,
5558
5964
  style: l
5559
5965
  }) {
5560
- const s = r ?? La[e], c = i ?? Ra[e], d = a ? /* @__PURE__ */ n("style", { children: `
5966
+ const s = r ?? Oa[e], c = i ?? Ha[e], d = a ? /* @__PURE__ */ n("style", { children: `
5561
5967
  @keyframes lucent-skeleton-shimmer {
5562
5968
  0% { background-position: 200% 0; }
5563
5969
  100% { background-position: -200% 0; }
@@ -5589,7 +5995,7 @@ function Fi({
5589
5995
  )
5590
5996
  ] });
5591
5997
  }
5592
- const Ni = {
5998
+ const Ji = {
5593
5999
  id: "skeleton",
5594
6000
  name: "Skeleton",
5595
6001
  tier: "molecule",
@@ -5676,7 +6082,7 @@ const Ni = {
5676
6082
  notes: 'Wrap loading regions with aria-busy="true" on the container so screen readers know content is loading. Individual Skeleton elements are presentational and do not need ARIA attributes themselves.'
5677
6083
  }
5678
6084
  };
5679
- function $i({ items: e, separator: t = "/", style: r }) {
6085
+ function Zi({ items: e, separator: t = "/", style: r }) {
5680
6086
  return /* @__PURE__ */ n("nav", { "aria-label": "Breadcrumb", style: r, children: /* @__PURE__ */ n(
5681
6087
  "ol",
5682
6088
  {
@@ -5742,30 +6148,30 @@ function $i({ items: e, separator: t = "/", style: r }) {
5742
6148
  }
5743
6149
  ) });
5744
6150
  }
5745
- function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "underline", style: i }) {
5746
- var q;
5747
- const l = r !== void 0, [s, c] = z(t ?? ((q = e[0]) == null ? void 0 : q.value) ?? ""), d = l ? r : s, [u, f] = z(null), h = V([]), [m, T] = z(null), v = V(!1), p = a === "pills", b = V(null), k = V(null), x = V(null), [M, S] = z(e.length), [A, L] = z(!1), [C, D] = z(!1), [$, W] = z(null), w = e.slice(0, M), F = e.slice(M), R = F.length > 0, N = F.some((I) => I.value === d), U = () => {
6151
+ function Qi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "underline", style: i }) {
6152
+ var B;
6153
+ const l = r !== void 0, [s, c] = z(t ?? ((B = e[0]) == null ? void 0 : B.value) ?? ""), d = l ? r : s, [u, f] = z(null), h = V([]), [m, T] = z(null), b = V(!1), p = a === "pills", v = V(null), k = V(null), x = V(null), [M, S] = z(e.length), [A, R] = z(!1), [C, D] = z(!1), [$, W] = z(null), w = e.slice(0, M), F = e.slice(M), L = F.length > 0, N = F.some((I) => I.value === d), U = () => {
5748
6154
  if (N) {
5749
6155
  T(null);
5750
6156
  return;
5751
6157
  }
5752
- const I = e.findIndex((P, j) => j < M && P.value === d), B = h.current[I];
5753
- if (B) {
6158
+ const I = e.findIndex((P, j) => j < M && P.value === d), q = h.current[I];
6159
+ if (q) {
5754
6160
  if (p) {
5755
- const P = B.querySelector("span");
6161
+ const P = q.querySelector("span");
5756
6162
  if (!P) return;
5757
- T({ left: P.offsetLeft + B.offsetLeft, width: P.offsetWidth, animate: v.current });
6163
+ T({ left: P.offsetLeft + q.offsetLeft, width: P.offsetWidth, animate: b.current });
5758
6164
  } else
5759
- T({ left: B.offsetLeft, width: B.offsetWidth, animate: v.current });
5760
- v.current = !0;
6165
+ T({ left: q.offsetLeft, width: q.offsetWidth, animate: b.current });
6166
+ b.current = !0;
5761
6167
  }
5762
6168
  };
5763
6169
  se(() => {
5764
6170
  U(), document.fonts.ready.then(U);
5765
6171
  }, [d, M, p]), X(() => {
5766
- const I = b.current;
6172
+ const I = v.current;
5767
6173
  if (!I) return;
5768
- const B = () => {
6174
+ const q = () => {
5769
6175
  const E = I.clientWidth, O = 70;
5770
6176
  let Y = 0, H = 0;
5771
6177
  for (let G = 0; G < e.length; G++) {
@@ -5793,25 +6199,25 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5793
6199
  let P;
5794
6200
  (() => {
5795
6201
  P = requestAnimationFrame(() => {
5796
- P = requestAnimationFrame(B);
6202
+ P = requestAnimationFrame(q);
5797
6203
  });
5798
6204
  })();
5799
- const g = new ResizeObserver(B);
6205
+ const g = new ResizeObserver(q);
5800
6206
  return g.observe(I), () => {
5801
6207
  g.disconnect(), cancelAnimationFrame(P);
5802
6208
  };
5803
6209
  }, [e]), X(() => {
5804
6210
  if (!A) return;
5805
- const I = (B) => {
5806
- x.current && !x.current.contains(B.target) && k.current && !k.current.contains(B.target) && (L(!1), W(null));
6211
+ const I = (q) => {
6212
+ x.current && !x.current.contains(q.target) && k.current && !k.current.contains(q.target) && (R(!1), W(null));
5807
6213
  };
5808
6214
  return document.addEventListener("mousedown", I), () => document.removeEventListener("mousedown", I);
5809
6215
  }, [A]);
5810
6216
  const Z = (I) => {
5811
6217
  l || c(I), o == null || o(I);
5812
- }, J = (I, B) => {
6218
+ }, J = (I, q) => {
5813
6219
  var E;
5814
- const P = w.map((O, Y) => O.disabled ? -1 : Y).filter((O) => O !== -1), j = P.indexOf(B);
6220
+ const P = w.map((O, Y) => O.disabled ? -1 : Y).filter((O) => O !== -1), j = P.indexOf(q);
5815
6221
  let g = -1;
5816
6222
  I.key === "ArrowRight" && (g = P[(j + 1) % P.length] ?? -1), I.key === "ArrowLeft" && (g = P[(j - 1 + P.length) % P.length] ?? -1), I.key === "Home" && (g = P[0] ?? -1), I.key === "End" && (g = P[P.length - 1] ?? -1), g !== -1 && (I.preventDefault(), (E = h.current[g]) == null || E.focus(), Z(w[g].value));
5817
6223
  };
@@ -5819,7 +6225,7 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5819
6225
  /* @__PURE__ */ y(
5820
6226
  "div",
5821
6227
  {
5822
- ref: b,
6228
+ ref: v,
5823
6229
  role: "tablist",
5824
6230
  style: {
5825
6231
  position: "relative",
@@ -5832,13 +6238,13 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5832
6238
  }
5833
6239
  },
5834
6240
  children: [
5835
- e.map((I, B) => {
5836
- const P = B < M, j = I.value === d, g = I.disabled ?? !1;
6241
+ e.map((I, q) => {
6242
+ const P = q < M, j = I.value === d, g = I.disabled ?? !1;
5837
6243
  return /* @__PURE__ */ y(
5838
6244
  "button",
5839
6245
  {
5840
6246
  ref: (E) => {
5841
- h.current[B] = E;
6247
+ h.current[q] = E;
5842
6248
  },
5843
6249
  role: "tab",
5844
6250
  "aria-selected": j,
@@ -5849,9 +6255,9 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5849
6255
  onClick: () => {
5850
6256
  g || Z(I.value);
5851
6257
  },
5852
- onKeyDown: (E) => J(E, B),
6258
+ onKeyDown: (E) => J(E, q),
5853
6259
  onMouseEnter: () => {
5854
- !g && P && f(B);
6260
+ !g && P && f(q);
5855
6261
  },
5856
6262
  onMouseLeave: () => f(null),
5857
6263
  style: {
@@ -5876,10 +6282,10 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5876
6282
  display: "block",
5877
6283
  padding: "var(--lucent-space-1) var(--lucent-space-3)",
5878
6284
  borderRadius: "var(--lucent-radius-md)",
5879
- background: !p && u === B && !j && !g ? "var(--lucent-surface-secondary)" : "transparent",
6285
+ background: !p && u === q && !j && !g ? "var(--lucent-surface-secondary)" : "transparent",
5880
6286
  transition: "background var(--lucent-duration-fast) var(--lucent-easing-default)"
5881
6287
  }, children: I.label }),
5882
- p && u === B && !j && !g && P && /* @__PURE__ */ n(
6288
+ p && u === q && !j && !g && P && /* @__PURE__ */ n(
5883
6289
  "span",
5884
6290
  {
5885
6291
  "aria-hidden": !0,
@@ -5901,11 +6307,11 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5901
6307
  I.value
5902
6308
  );
5903
6309
  }),
5904
- R && /* @__PURE__ */ n(
6310
+ L && /* @__PURE__ */ n(
5905
6311
  "button",
5906
6312
  {
5907
6313
  ref: k,
5908
- onClick: () => L((I) => !I),
6314
+ onClick: () => R((I) => !I),
5909
6315
  onMouseEnter: () => D(!0),
5910
6316
  onMouseLeave: () => D(!1),
5911
6317
  style: {
@@ -5959,7 +6365,7 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5959
6365
  ]
5960
6366
  }
5961
6367
  ),
5962
- R && A && /* @__PURE__ */ n(
6368
+ L && A && /* @__PURE__ */ n(
5963
6369
  "div",
5964
6370
  {
5965
6371
  ref: x,
@@ -5976,17 +6382,17 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
5976
6382
  padding: "var(--lucent-space-1) 0",
5977
6383
  minWidth: 140
5978
6384
  },
5979
- children: F.map((I, B) => {
5980
- const P = I.value === d, j = I.disabled ?? !1, g = $ === B;
6385
+ children: F.map((I, q) => {
6386
+ const P = I.value === d, j = I.disabled ?? !1, g = $ === q;
5981
6387
  return /* @__PURE__ */ n(
5982
6388
  "button",
5983
6389
  {
5984
6390
  disabled: j,
5985
6391
  onClick: () => {
5986
- j || (Z(I.value), L(!1));
6392
+ j || (Z(I.value), R(!1));
5987
6393
  },
5988
6394
  onMouseEnter: () => {
5989
- j || W(B);
6395
+ j || W(q);
5990
6396
  },
5991
6397
  onMouseLeave: () => W(null),
5992
6398
  style: {
@@ -6026,33 +6432,33 @@ function Wi({ tabs: e, defaultValue: t, value: r, onChange: o, variant: a = "und
6026
6432
  ))
6027
6433
  ] });
6028
6434
  }
6029
- const Pa = `
6435
+ const Va = `
6030
6436
  @keyframes lucent-collapsible-open {
6031
6437
  from { opacity: 0; transform: translateY(-4px); }
6032
6438
  to { opacity: 1; transform: translateY(0); }
6033
6439
  }
6034
6440
  `;
6035
- function Oi({ trigger: e, children: t, defaultOpen: r = !1, open: o, onOpenChange: a, style: i }) {
6441
+ function es({ trigger: e, children: t, defaultOpen: r = !1, open: o, onOpenChange: a, style: i }) {
6036
6442
  const l = o !== void 0, [s, c] = z(r), d = l ? o : s, u = V(null), [f, h] = z(d ? void 0 : 0), m = V(!1);
6037
6443
  X(() => {
6038
- const v = u.current;
6039
- if (v)
6444
+ const b = u.current;
6445
+ if (b)
6040
6446
  if (d) {
6041
- const p = v.scrollHeight;
6447
+ const p = b.scrollHeight;
6042
6448
  h(p), m.current = !0;
6043
- const b = setTimeout(() => {
6449
+ const v = setTimeout(() => {
6044
6450
  h(void 0), m.current = !1;
6045
6451
  }, 220);
6046
- return () => clearTimeout(b);
6452
+ return () => clearTimeout(v);
6047
6453
  } else
6048
- h(v.scrollHeight), v.getBoundingClientRect(), h(0);
6454
+ h(b.scrollHeight), b.getBoundingClientRect(), h(0);
6049
6455
  }, [d]);
6050
6456
  const T = () => {
6051
- const v = !d;
6052
- l || c(v), a == null || a(v);
6457
+ const b = !d;
6458
+ l || c(b), a == null || a(b);
6053
6459
  };
6054
6460
  return /* @__PURE__ */ y(oe, { children: [
6055
- /* @__PURE__ */ n("style", { children: Pa }),
6461
+ /* @__PURE__ */ n("style", { children: Va }),
6056
6462
  /* @__PURE__ */ y("div", { style: { display: "flex", flexDirection: "column", fontFamily: "var(--lucent-font-family-base)", fontSize: "var(--lucent-font-size-md)", ...i }, children: [
6057
6463
  /* @__PURE__ */ y(
6058
6464
  "button",
@@ -6075,7 +6481,7 @@ function Oi({ trigger: e, children: t, defaultOpen: r = !1, open: o, onOpenChang
6075
6481
  },
6076
6482
  children: [
6077
6483
  /* @__PURE__ */ n("span", { style: { flex: 1 }, children: e }),
6078
- /* @__PURE__ */ n(Fa, { open: d })
6484
+ /* @__PURE__ */ n(ja, { open: d })
6079
6485
  ]
6080
6486
  }
6081
6487
  ),
@@ -6104,7 +6510,7 @@ function Oi({ trigger: e, children: t, defaultOpen: r = !1, open: o, onOpenChang
6104
6510
  ] })
6105
6511
  ] });
6106
6512
  }
6107
- function Fa({ open: e }) {
6513
+ function ja({ open: e }) {
6108
6514
  return /* @__PURE__ */ n(
6109
6515
  "svg",
6110
6516
  {
@@ -6127,11 +6533,11 @@ function Fa({ open: e }) {
6127
6533
  }
6128
6534
  );
6129
6535
  }
6130
- const ge = "lucent-pl-no-scrollbar", Na = `.${ge}{scrollbar-width:none}.${ge}::-webkit-scrollbar{display:none}`;
6536
+ const ge = "lucent-pl-no-scrollbar", Ua = `.${ge}{scrollbar-width:none}.${ge}::-webkit-scrollbar{display:none}`;
6131
6537
  function Te(e) {
6132
6538
  return typeof e == "number" ? `${e}px` : e;
6133
6539
  }
6134
- function Hi({
6540
+ function ts({
6135
6541
  children: e,
6136
6542
  header: t,
6137
6543
  sidebar: r,
@@ -6147,7 +6553,7 @@ function Hi({
6147
6553
  mainStyle: h,
6148
6554
  style: m
6149
6555
  }) {
6150
- const T = Te(a), v = Te(o), p = Te(s), b = Te(u), k = f === "bgBase" ? "var(--lucent-bg-base)" : f === "bgSubtle" ? "var(--lucent-bg-subtle)" : "var(--lucent-surface)";
6556
+ const T = Te(a), b = Te(o), p = Te(s), v = Te(u), k = f === "bgBase" ? "var(--lucent-bg-base)" : f === "bgSubtle" ? "var(--lucent-bg-subtle)" : "var(--lucent-surface)";
6151
6557
  return /* @__PURE__ */ y(
6152
6558
  "div",
6153
6559
  {
@@ -6161,7 +6567,7 @@ function Hi({
6161
6567
  ...m
6162
6568
  },
6163
6569
  children: [
6164
- /* @__PURE__ */ n("style", { children: Na }),
6570
+ /* @__PURE__ */ n("style", { children: Ua }),
6165
6571
  t != null && /* @__PURE__ */ n(
6166
6572
  "div",
6167
6573
  {
@@ -6180,7 +6586,7 @@ function Hi({
6180
6586
  {
6181
6587
  className: ge,
6182
6588
  style: {
6183
- width: i ? 0 : v,
6589
+ width: i ? 0 : b,
6184
6590
  flexShrink: 0,
6185
6591
  overflow: "hidden",
6186
6592
  overflowY: i ? "hidden" : "auto",
@@ -6229,7 +6635,7 @@ function Hi({
6229
6635
  {
6230
6636
  style: {
6231
6637
  flexShrink: 0,
6232
- height: b,
6638
+ height: v,
6233
6639
  zIndex: 10,
6234
6640
  background: k
6235
6641
  },
@@ -6240,7 +6646,7 @@ function Hi({
6240
6646
  }
6241
6647
  );
6242
6648
  }
6243
- function $a({ state: e }) {
6649
+ function Ga({ state: e }) {
6244
6650
  return /* @__PURE__ */ y(
6245
6651
  "svg",
6246
6652
  {
@@ -6283,7 +6689,7 @@ function ct({ dir: e }) {
6283
6689
  }
6284
6690
  ) });
6285
6691
  }
6286
- function Vi({
6692
+ function ns({
6287
6693
  columns: e,
6288
6694
  rows: t,
6289
6695
  pageSize: r = 10,
@@ -6293,36 +6699,36 @@ function Vi({
6293
6699
  emptyState: l,
6294
6700
  style: s
6295
6701
  }) {
6296
- const [c, d] = z(null), [u, f] = z(0), [h, m] = z(null), [T, v] = z({}), p = o !== void 0, b = p ? o : u, k = e.some((w) => w.filterable), x = k ? t.filter((w) => e.every((F) => {
6702
+ const [c, d] = z(null), [u, f] = z(0), [h, m] = z(null), [T, b] = z({}), p = o !== void 0, v = p ? o : u, k = e.some((w) => w.filterable), x = k ? t.filter((w) => e.every((F) => {
6297
6703
  if (!F.filterable) return !0;
6298
- const R = T[F.key];
6299
- if (!R || R.length === 0) return !0;
6704
+ const L = T[F.key];
6705
+ if (!L || L.length === 0) return !0;
6300
6706
  const N = String(w[F.key] ?? "");
6301
- return R.includes(N);
6707
+ return L.includes(N);
6302
6708
  })) : t, M = c ? [...x].sort((w, F) => {
6303
- const R = w[c.key], N = F[c.key], U = String(R ?? "").localeCompare(String(N ?? ""), void 0, { numeric: !0 });
6709
+ const L = w[c.key], N = F[c.key], U = String(L ?? "").localeCompare(String(N ?? ""), void 0, { numeric: !0 });
6304
6710
  return c.dir === "asc" ? U : -U;
6305
- }) : x, S = r > 0 ? M.slice(b * r, (b + 1) * r) : M, A = r > 0 ? Math.max(1, Math.ceil(M.length / r)) : 1, L = (w) => {
6711
+ }) : x, S = r > 0 ? M.slice(v * r, (v + 1) * r) : M, A = r > 0 ? Math.max(1, Math.ceil(M.length / r)) : 1, R = (w) => {
6306
6712
  p || f(w), a == null || a(w);
6307
6713
  }, C = (w) => {
6308
6714
  d((F) => !F || F.key !== w ? { key: w, dir: "asc" } : F.dir === "asc" ? { key: w, dir: "desc" } : null), p || f(0), a == null || a(0);
6309
6715
  }, D = (w, F) => {
6310
- const R = { ...T, [w]: F };
6311
- F.length === 0 && delete R[w], v(R), p || f(0), a == null || a(0), i == null || i(R);
6716
+ const L = { ...T, [w]: F };
6717
+ F.length === 0 && delete L[w], b(L), p || f(0), a == null || a(0), i == null || i(L);
6312
6718
  }, $ = () => {
6313
- v({}), p || f(0), a == null || a(0), i == null || i({});
6719
+ b({}), p || f(0), a == null || a(0), i == null || i({});
6314
6720
  }, W = [];
6315
6721
  if (A <= 7)
6316
6722
  for (let w = 0; w < A; w++) W.push(w);
6317
6723
  else {
6318
- W.push(0), b > 2 && W.push("…");
6319
- for (let w = Math.max(1, b - 1); w <= Math.min(A - 2, b + 1); w++)
6724
+ W.push(0), v > 2 && W.push("…");
6725
+ for (let w = Math.max(1, v - 1); w <= Math.min(A - 2, v + 1); w++)
6320
6726
  W.push(w);
6321
- b < A - 3 && W.push("…"), W.push(A - 1);
6727
+ v < A - 3 && W.push("…"), W.push(A - 1);
6322
6728
  }
6323
6729
  return /* @__PURE__ */ y("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-3)", ...s }, children: [
6324
6730
  k && /* @__PURE__ */ n("div", { style: { position: "relative", zIndex: 1 }, children: /* @__PURE__ */ n(
6325
- Wa,
6731
+ _a,
6326
6732
  {
6327
6733
  columns: e,
6328
6734
  rows: t,
@@ -6361,7 +6767,7 @@ function Vi({
6361
6767
  },
6362
6768
  children: /* @__PURE__ */ y("span", { style: { display: "inline-flex", alignItems: "center", gap: "var(--lucent-space-1)" }, children: [
6363
6769
  w.header,
6364
- w.sortable && /* @__PURE__ */ n($a, { state: F })
6770
+ w.sortable && /* @__PURE__ */ n(Ga, { state: F })
6365
6771
  ] })
6366
6772
  },
6367
6773
  w.key
@@ -6384,18 +6790,18 @@ function Vi({
6384
6790
  background: h === F ? "var(--lucent-surface-secondary)" : "var(--lucent-surface)",
6385
6791
  transition: "background var(--lucent-duration-fast) var(--lucent-easing-default)"
6386
6792
  },
6387
- children: e.map((R) => /* @__PURE__ */ n(
6793
+ children: e.map((L) => /* @__PURE__ */ n(
6388
6794
  "td",
6389
6795
  {
6390
6796
  style: {
6391
6797
  padding: "var(--lucent-space-3) var(--lucent-space-4)",
6392
6798
  color: "var(--lucent-text-primary)",
6393
- textAlign: R.align ?? "left",
6799
+ textAlign: L.align ?? "left",
6394
6800
  verticalAlign: "middle"
6395
6801
  },
6396
- children: R.render ? R.render(w, F) : String(w[R.key] ?? "")
6802
+ children: L.render ? L.render(w, F) : String(w[L.key] ?? "")
6397
6803
  },
6398
- R.key
6804
+ L.key
6399
6805
  ))
6400
6806
  },
6401
6807
  F
@@ -6408,13 +6814,13 @@ function Vi({
6408
6814
  gap: "var(--lucent-space-3)",
6409
6815
  flexWrap: "wrap"
6410
6816
  }, children: [
6411
- /* @__PURE__ */ n(_, { color: "secondary", size: "sm", children: M.length === 0 ? `0 rows${t.length > 0 ? ` (filtered from ${t.length})` : ""}` : M.length === 1 ? `1 row${M.length < t.length ? ` (filtered from ${t.length})` : ""}` : `${b * r + 1}–${Math.min((b + 1) * r, M.length)} of ${M.length} rows${M.length < t.length ? ` (filtered from ${t.length})` : ""}` }),
6817
+ /* @__PURE__ */ n(_, { color: "secondary", size: "sm", children: M.length === 0 ? `0 rows${t.length > 0 ? ` (filtered from ${t.length})` : ""}` : M.length === 1 ? `1 row${M.length < t.length ? ` (filtered from ${t.length})` : ""}` : `${v * r + 1}–${Math.min((v + 1) * r, M.length)} of ${M.length} rows${M.length < t.length ? ` (filtered from ${t.length})` : ""}` }),
6412
6818
  /* @__PURE__ */ y("div", { style: { display: "flex", alignItems: "center", gap: "var(--lucent-space-1)" }, children: [
6413
6819
  /* @__PURE__ */ n(
6414
6820
  We,
6415
6821
  {
6416
- onClick: () => L(b - 1),
6417
- disabled: b === 0,
6822
+ onClick: () => R(v - 1),
6823
+ disabled: v === 0,
6418
6824
  "aria-label": "Previous page",
6419
6825
  children: /* @__PURE__ */ n(ct, { dir: "left" })
6420
6826
  }
@@ -6427,10 +6833,10 @@ function Vi({
6427
6833
  }, children: "…" }, `ellipsis-${F}`) : /* @__PURE__ */ n(
6428
6834
  We,
6429
6835
  {
6430
- onClick: () => L(w),
6431
- active: w === b,
6836
+ onClick: () => R(w),
6837
+ active: w === v,
6432
6838
  "aria-label": `Page ${w + 1}`,
6433
- "aria-current": w === b ? "page" : void 0,
6839
+ "aria-current": w === v ? "page" : void 0,
6434
6840
  children: w + 1
6435
6841
  },
6436
6842
  w
@@ -6439,8 +6845,8 @@ function Vi({
6439
6845
  /* @__PURE__ */ n(
6440
6846
  We,
6441
6847
  {
6442
- onClick: () => L(b + 1),
6443
- disabled: b >= A - 1,
6848
+ onClick: () => R(v + 1),
6849
+ disabled: v >= A - 1,
6444
6850
  "aria-label": "Next page",
6445
6851
  children: /* @__PURE__ */ n(ct, { dir: "right" })
6446
6852
  }
@@ -6449,7 +6855,7 @@ function Vi({
6449
6855
  ] })
6450
6856
  ] });
6451
6857
  }
6452
- function Wa({
6858
+ function _a({
6453
6859
  columns: e,
6454
6860
  rows: t,
6455
6861
  filters: r,
@@ -6463,7 +6869,7 @@ function Wa({
6463
6869
  new Set(t.map((d) => String(d[s.key] ?? "")))
6464
6870
  ).sort();
6465
6871
  return /* @__PURE__ */ n(
6466
- Oa,
6872
+ Ya,
6467
6873
  {
6468
6874
  label: s.header,
6469
6875
  values: c,
@@ -6495,7 +6901,7 @@ function Wa({
6495
6901
  )
6496
6902
  ] });
6497
6903
  }
6498
- function Oa({
6904
+ function Ya({
6499
6905
  label: e,
6500
6906
  values: t,
6501
6907
  value: r,
@@ -6513,14 +6919,14 @@ function Oa({
6513
6919
  }, 0);
6514
6920
  const p = (k) => {
6515
6921
  u.current && !u.current.contains(k.target) && i(!1);
6516
- }, b = (k) => {
6922
+ }, v = (k) => {
6517
6923
  k.key === "Escape" && i(!1);
6518
6924
  };
6519
- return document.addEventListener("mousedown", p), document.addEventListener("keydown", b), () => {
6520
- document.removeEventListener("mousedown", p), document.removeEventListener("keydown", b);
6925
+ return document.addEventListener("mousedown", p), document.addEventListener("keydown", v), () => {
6926
+ document.removeEventListener("mousedown", p), document.removeEventListener("keydown", v);
6521
6927
  };
6522
6928
  }, [a]);
6523
- const m = c ? t.filter((p) => p.toLowerCase().includes(c.toLowerCase())) : t, T = (p) => o(r.includes(p) ? r.filter((b) => b !== p) : [...r, p]), v = r.length === 0 ? null : r.length === 1 ? /* @__PURE__ */ y("span", { style: { color: "var(--lucent-text-secondary)", fontWeight: "var(--lucent-font-weight-regular)" }, children: [
6929
+ const m = c ? t.filter((p) => p.toLowerCase().includes(c.toLowerCase())) : t, T = (p) => o(r.includes(p) ? r.filter((v) => v !== p) : [...r, p]), b = r.length === 0 ? null : r.length === 1 ? /* @__PURE__ */ y("span", { style: { color: "var(--lucent-text-secondary)", fontWeight: "var(--lucent-font-weight-regular)" }, children: [
6524
6930
  ": ",
6525
6931
  r[0]
6526
6932
  ] }) : /* @__PURE__ */ y("span", { style: { color: "var(--lucent-accent-default)" }, children: [
@@ -6555,7 +6961,7 @@ function Oa({
6555
6961
  },
6556
6962
  children: [
6557
6963
  e,
6558
- v,
6964
+ b,
6559
6965
  /* @__PURE__ */ n(
6560
6966
  "svg",
6561
6967
  {
@@ -6634,7 +7040,7 @@ function Oa({
6634
7040
  fontSize: "var(--lucent-font-size-xs)",
6635
7041
  textAlign: "center"
6636
7042
  }, children: "No results" }) : m.map((p) => /* @__PURE__ */ n(
6637
- Ha,
7043
+ Ka,
6638
7044
  {
6639
7045
  label: p,
6640
7046
  isSelected: r.includes(p),
@@ -6645,7 +7051,7 @@ function Oa({
6645
7051
  ] })
6646
7052
  ] });
6647
7053
  }
6648
- function Ha({ label: e, isSelected: t, onClick: r }) {
7054
+ function Ka({ label: e, isSelected: t, onClick: r }) {
6649
7055
  const [o, a] = z(!1);
6650
7056
  return /* @__PURE__ */ y(
6651
7057
  "button",
@@ -6726,7 +7132,7 @@ function We({
6726
7132
  }
6727
7133
  );
6728
7134
  }
6729
- const ji = {
7135
+ const as = {
6730
7136
  id: "data-table",
6731
7137
  name: "DataTable",
6732
7138
  tier: "molecule",
@@ -6835,18 +7241,18 @@ const ji = {
6835
7241
  keyboardInteractions: ["Tab to pagination controls", "Enter/Space to activate buttons"],
6836
7242
  notes: 'Column headers with sortable:true are interactive buttons with aria-sort reflecting the current sort direction. Pagination buttons include aria-label and aria-current="page" for the active page.'
6837
7243
  }
6838
- }, Va = `
7244
+ }, Xa = `
6839
7245
  @keyframes lucent-palette-in {
6840
7246
  from { opacity: 0; transform: scale(0.96) translateY(-8px); }
6841
7247
  to { opacity: 1; transform: scale(1) translateY(0); }
6842
7248
  }
6843
7249
  `;
6844
- function ja(e, t) {
7250
+ function Ja(e, t) {
6845
7251
  var o;
6846
7252
  const r = t.toLowerCase();
6847
7253
  return e.label.toLowerCase().includes(r) || (((o = e.description) == null ? void 0 : o.toLowerCase().includes(r)) ?? !1);
6848
7254
  }
6849
- function Ui({
7255
+ function rs({
6850
7256
  commands: e,
6851
7257
  placeholder: t = "Search commands…",
6852
7258
  shortcutKey: r = "k",
@@ -6854,37 +7260,37 @@ function Ui({
6854
7260
  onOpenChange: a,
6855
7261
  style: i
6856
7262
  }) {
6857
- const l = o !== void 0, [s, c] = z(!1), d = l ? o : s, [u, f] = z(""), [h, m] = z(0), T = V(null), v = V(null), p = V(!1);
7263
+ const l = o !== void 0, [s, c] = z(!1), d = l ? o : s, [u, f] = z(""), [h, m] = z(0), T = V(null), b = V(null), p = V(!1);
6858
7264
  if (!p.current) {
6859
7265
  const C = document.createElement("style");
6860
- C.textContent = Va, document.head.appendChild(C), p.current = !0;
7266
+ C.textContent = Xa, document.head.appendChild(C), p.current = !0;
6861
7267
  }
6862
- const b = ee((C) => {
7268
+ const v = ee((C) => {
6863
7269
  l || c(C), a == null || a(C);
6864
7270
  }, [l, a]);
6865
7271
  X(() => {
6866
7272
  const C = (D) => {
6867
- (D.metaKey || D.ctrlKey) && D.key === r && (D.preventDefault(), b(!d));
7273
+ (D.metaKey || D.ctrlKey) && D.key === r && (D.preventDefault(), v(!d));
6868
7274
  };
6869
7275
  return window.addEventListener("keydown", C), () => window.removeEventListener("keydown", C);
6870
- }, [d, r, b]), X(() => {
7276
+ }, [d, r, v]), X(() => {
6871
7277
  d && (f(""), m(0), setTimeout(() => {
6872
7278
  var C;
6873
7279
  return (C = T.current) == null ? void 0 : C.focus();
6874
7280
  }, 10));
6875
7281
  }, [d]);
6876
- const k = u ? e.filter((C) => ja(C, u)) : e, x = k.filter((C) => !C.disabled);
7282
+ const k = u ? e.filter((C) => Ja(C, u)) : e, x = k.filter((C) => !C.disabled);
6877
7283
  X(() => {
6878
- const C = v.current;
7284
+ const C = b.current;
6879
7285
  if (!C) return;
6880
7286
  const D = C.querySelector('[data-active="true"]');
6881
7287
  D == null || D.scrollIntoView({ block: "nearest" });
6882
7288
  }, [h]);
6883
7289
  const M = (C) => {
6884
- C.disabled || (C.onSelect(), b(!1));
7290
+ C.disabled || (C.onSelect(), v(!1));
6885
7291
  }, S = (C) => {
6886
7292
  if (C.key === "Escape") {
6887
- b(!1);
7293
+ v(!1);
6888
7294
  return;
6889
7295
  }
6890
7296
  if (C.key === "ArrowDown")
@@ -6901,14 +7307,14 @@ function Ui({
6901
7307
  D && D.group === C.group ? D.items.push(C) : A.push({ group: C.group, items: [C] });
6902
7308
  }
6903
7309
  if (!d) return null;
6904
- let L = 0;
7310
+ let R = 0;
6905
7311
  return /* @__PURE__ */ n(
6906
7312
  "div",
6907
7313
  {
6908
7314
  role: "dialog",
6909
7315
  "aria-label": "Command palette",
6910
7316
  "aria-modal": "true",
6911
- onClick: () => b(!1),
7317
+ onClick: () => v(!1),
6912
7318
  style: {
6913
7319
  position: "fixed",
6914
7320
  inset: 0,
@@ -6986,7 +7392,7 @@ function Ui({
6986
7392
  {
6987
7393
  id: "lucent-command-list",
6988
7394
  role: "listbox",
6989
- ref: v,
7395
+ ref: b,
6990
7396
  style: { maxHeight: 360, overflowY: "auto", padding: "var(--lucent-space-1) var(--lucent-space-2)" },
6991
7397
  children: k.length === 0 ? /* @__PURE__ */ n("div", { style: { padding: "var(--lucent-space-8)", textAlign: "center" }, children: /* @__PURE__ */ y(_, { color: "secondary", children: [
6992
7398
  'No results for "',
@@ -7000,7 +7406,7 @@ function Ui({
7000
7406
  D.map((W) => {
7001
7407
  const w = W.disabled ?? !1;
7002
7408
  let F = !1;
7003
- return w || (F = L === h, L++), /* @__PURE__ */ y(
7409
+ return w || (F = R === h, R++), /* @__PURE__ */ y(
7004
7410
  "div",
7005
7411
  {
7006
7412
  role: "option",
@@ -7010,8 +7416,8 @@ function Ui({
7010
7416
  onClick: () => M(W),
7011
7417
  onMouseEnter: () => {
7012
7418
  if (!w) {
7013
- const R = x.indexOf(W);
7014
- R !== -1 && m(R);
7419
+ const L = x.indexOf(W);
7420
+ L !== -1 && m(L);
7015
7421
  }
7016
7422
  },
7017
7423
  style: {
@@ -7059,7 +7465,7 @@ function Ui({
7059
7465
  }
7060
7466
  );
7061
7467
  }
7062
- const Gi = {
7468
+ const os = {
7063
7469
  id: "command-palette",
7064
7470
  name: "CommandPalette",
7065
7471
  tier: "overlay",
@@ -7141,15 +7547,15 @@ const Gi = {
7141
7547
  keyboardInteractions: ["⌘K / Ctrl+K to open", "↑↓ to navigate", "Enter to select", "Escape to close"],
7142
7548
  notes: 'The backdrop and panel use role="dialog" with aria-modal="true". The input is role="searchbox". The result list is role="listbox" with role="option" items. Focus is moved to the search input on open.'
7143
7549
  }
7144
- }, Ua = {
7550
+ }, Za = {
7145
7551
  sm: "calc(var(--lucent-space-8) * 0.5 + 16px + 2px)",
7146
7552
  md: "calc(var(--lucent-space-10) * 0.5 + 20px + 2px)",
7147
7553
  lg: "calc(var(--lucent-space-12) * 0.5 + 24px + 2px)"
7148
- }, Ga = {
7554
+ }, Qa = {
7149
7555
  sm: "var(--lucent-font-size-sm)",
7150
7556
  md: "var(--lucent-font-size-md)",
7151
7557
  lg: "var(--lucent-font-size-lg)"
7152
- }, _a = {
7558
+ }, er = {
7153
7559
  sm: "var(--lucent-space-1) var(--lucent-space-2)",
7154
7560
  md: "var(--lucent-space-1) var(--lucent-space-2)",
7155
7561
  lg: "var(--lucent-space-2) var(--lucent-space-3)"
@@ -7161,8 +7567,8 @@ const Gi = {
7161
7567
  sm: "var(--lucent-font-size-sm)",
7162
7568
  md: "var(--lucent-font-size-sm)",
7163
7569
  lg: "var(--lucent-font-size-md)"
7164
- }, dt = { sm: "sm", md: "md", lg: "lg" }, Ya = { sm: "sm", md: "md", lg: "lg" };
7165
- function _i({
7570
+ }, dt = { sm: "sm", md: "md", lg: "lg" }, tr = { sm: "sm", md: "md", lg: "lg" };
7571
+ function is({
7166
7572
  options: e,
7167
7573
  value: t,
7168
7574
  defaultValue: r = [],
@@ -7176,39 +7582,39 @@ function _i({
7176
7582
  errorText: u,
7177
7583
  style: f
7178
7584
  }) {
7179
- const h = t !== void 0, [m, T] = z(r), v = h ? t : m, [p, b] = z(!1), [k, x] = z(""), [M, S] = z(0), [A, L] = z(!1), C = V(null), D = V(null), $ = V(null), W = V(null), [w, F] = z({ top: 0, left: 0, width: 0 }), R = ve();
7585
+ const h = t !== void 0, [m, T] = z(r), b = h ? t : m, [p, v] = z(!1), [k, x] = z(""), [M, S] = z(0), [A, R] = z(!1), C = V(null), D = V(null), $ = V(null), W = V(null), [w, F] = z({ top: 0, left: 0, width: 0 }), L = be();
7180
7586
  X(() => {
7181
7587
  if (!p) return;
7182
7588
  const g = (E) => {
7183
7589
  var O, Y;
7184
- !((O = C.current) != null && O.contains(E.target)) && !((Y = W.current) != null && Y.contains(E.target)) && (b(!1), x(""));
7590
+ !((O = C.current) != null && O.contains(E.target)) && !((Y = W.current) != null && Y.contains(E.target)) && (v(!1), x(""));
7185
7591
  };
7186
7592
  return document.addEventListener("mousedown", g), () => document.removeEventListener("mousedown", g);
7187
7593
  }, [p]), se(() => {
7188
7594
  if (!p || !$.current) return;
7189
7595
  const g = $.current.getBoundingClientRect();
7190
7596
  F({ top: g.bottom + 4, left: g.left, width: g.width });
7191
- }, [p, v, k]);
7597
+ }, [p, b, k]);
7192
7598
  const N = (g) => {
7193
- const E = v.includes(g) ? v.filter((O) => O !== g) : l !== void 0 && v.length >= l ? v : [...v, g];
7599
+ const E = b.includes(g) ? b.filter((O) => O !== g) : l !== void 0 && b.length >= l ? b : [...b, g];
7194
7600
  h || T(E), o == null || o(E);
7195
7601
  }, U = (g) => {
7196
- const E = v.filter((O) => O !== g);
7602
+ const E = b.filter((O) => O !== g);
7197
7603
  h || T(E), o == null || o(E);
7198
7604
  }, Z = e.filter(
7199
7605
  (g) => g.label.toLowerCase().includes(k.toLowerCase())
7200
7606
  ), J = (g) => {
7201
7607
  if (g.key === "Escape") {
7202
- b(!1), x("");
7608
+ v(!1), x("");
7203
7609
  return;
7204
7610
  }
7205
- if (g.key === "ArrowDown" && (g.preventDefault(), b(!0), S((E) => Math.min(E + 1, Z.length - 1))), g.key === "ArrowUp" && (g.preventDefault(), S((E) => Math.max(E - 1, 0))), g.key === "Enter") {
7611
+ if (g.key === "ArrowDown" && (g.preventDefault(), v(!0), S((E) => Math.min(E + 1, Z.length - 1))), g.key === "ArrowUp" && (g.preventDefault(), S((E) => Math.max(E - 1, 0))), g.key === "Enter") {
7206
7612
  g.preventDefault();
7207
7613
  const E = Z[M];
7208
7614
  E && !E.disabled && N(E.value);
7209
7615
  }
7210
- g.key === "Backspace" && k === "" && v.length > 0 && U(v[v.length - 1]);
7211
- }, q = l !== void 0 && v.length >= l, I = !!u, B = i ? "var(--lucent-border-default)" : I ? "var(--lucent-danger-default)" : A ? "var(--lucent-focus-ring)" : "var(--lucent-border-default)", P = A ? `0 0 0 3px ${I ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none", j = `lucent-multiselect-${ve()}`;
7616
+ g.key === "Backspace" && k === "" && b.length > 0 && U(b[b.length - 1]);
7617
+ }, B = l !== void 0 && b.length >= l, I = !!u, q = i ? "var(--lucent-border-default)" : I ? "var(--lucent-danger-default)" : A ? "var(--lucent-focus-ring)" : "var(--lucent-border-default)", P = A ? `0 0 0 3px ${I ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none", j = `lucent-multiselect-${be()}`;
7212
7618
  return /* @__PURE__ */ y("div", { ref: C, style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-1)", ...f }, children: [
7213
7619
  c && /* @__PURE__ */ n(
7214
7620
  "label",
@@ -7229,27 +7635,27 @@ function _i({
7229
7635
  {
7230
7636
  onClick: () => {
7231
7637
  var g;
7232
- i || (b(!0), (g = D.current) == null || g.focus());
7638
+ i || (v(!0), (g = D.current) == null || g.focus());
7233
7639
  },
7234
7640
  style: {
7235
7641
  display: "flex",
7236
7642
  flexWrap: "wrap",
7237
7643
  alignItems: "center",
7238
7644
  gap: Ce[s],
7239
- minHeight: Ua[s],
7645
+ minHeight: Za[s],
7240
7646
  boxSizing: "border-box",
7241
- padding: _a[s],
7647
+ padding: er[s],
7242
7648
  borderRadius: "var(--lucent-radius-lg)",
7243
- border: `1px solid ${B}`,
7649
+ border: `1px solid ${q}`,
7244
7650
  background: i ? "var(--lucent-surface-secondary)" : "var(--lucent-surface)",
7245
7651
  cursor: i ? "not-allowed" : "text",
7246
7652
  transition: "border-color var(--lucent-duration-fast) var(--lucent-easing-default), box-shadow var(--lucent-duration-fast) var(--lucent-easing-default)",
7247
7653
  boxShadow: P
7248
7654
  },
7249
7655
  children: [
7250
- v.map((g) => {
7656
+ b.map((g) => {
7251
7657
  const E = e.find((O) => O.value === g);
7252
- return E ? /* @__PURE__ */ n(un, { size: Ya[s], onDismiss: () => U(g), disabled: i, children: E.label }, g) : null;
7658
+ return E ? /* @__PURE__ */ n(un, { size: tr[s], onDismiss: () => U(g), disabled: i, children: E.label }, g) : null;
7253
7659
  }),
7254
7660
  /* @__PURE__ */ n(
7255
7661
  "input",
@@ -7258,15 +7664,15 @@ function _i({
7258
7664
  ref: D,
7259
7665
  value: k,
7260
7666
  onChange: (g) => {
7261
- x(g.target.value), b(!0), S(0);
7667
+ x(g.target.value), v(!0), S(0);
7262
7668
  },
7263
7669
  onKeyDown: J,
7264
- onFocus: () => L(!0),
7265
- onBlur: () => L(!1),
7670
+ onFocus: () => R(!0),
7671
+ onBlur: () => R(!1),
7266
7672
  disabled: i,
7267
- placeholder: v.length === 0 ? a : "",
7673
+ placeholder: b.length === 0 ? a : "",
7268
7674
  "aria-autocomplete": "list",
7269
- "aria-controls": R,
7675
+ "aria-controls": L,
7270
7676
  "aria-expanded": p,
7271
7677
  "aria-describedby": I ? `${j}-error` : d ? `${j}-helper` : void 0,
7272
7678
  role: "combobox",
@@ -7277,10 +7683,10 @@ function _i({
7277
7683
  outline: "none",
7278
7684
  background: "transparent",
7279
7685
  fontFamily: "var(--lucent-font-family-base)",
7280
- fontSize: Ga[s],
7686
+ fontSize: Qa[s],
7281
7687
  color: i ? "var(--lucent-text-disabled)" : "var(--lucent-text-primary)",
7282
7688
  cursor: i ? "not-allowed" : "text",
7283
- padding: v.length === 0 ? "2px 0 2px var(--lucent-space-1)" : "2px 0"
7689
+ padding: b.length === 0 ? "2px 0 2px var(--lucent-space-1)" : "2px 0"
7284
7690
  }
7285
7691
  }
7286
7692
  )
@@ -7292,7 +7698,7 @@ function _i({
7292
7698
  "div",
7293
7699
  {
7294
7700
  ref: W,
7295
- id: R,
7701
+ id: L,
7296
7702
  role: "listbox",
7297
7703
  "aria-multiselectable": "true",
7298
7704
  style: {
@@ -7313,7 +7719,7 @@ function _i({
7313
7719
  },
7314
7720
  children: [
7315
7721
  Z.length === 0 ? /* @__PURE__ */ n("div", { style: { padding: "var(--lucent-space-2)" }, children: /* @__PURE__ */ n(_, { color: "secondary", size: dt[s], children: "No options" }) }) : Z.map((g, E) => {
7316
- const O = v.includes(g.value), Y = E === M, H = g.disabled ?? !1, G = q && !O;
7722
+ const O = b.includes(g.value), Y = E === M, H = g.disabled ?? !1, G = B && !O;
7317
7723
  return /* @__PURE__ */ y(
7318
7724
  "div",
7319
7725
  {
@@ -7352,7 +7758,7 @@ function _i({
7352
7758
  g.value
7353
7759
  );
7354
7760
  }),
7355
- q && /* @__PURE__ */ n("div", { style: {
7761
+ B && /* @__PURE__ */ n("div", { style: {
7356
7762
  padding: "var(--lucent-space-2)",
7357
7763
  borderTop: "1px solid var(--lucent-border-subtle)"
7358
7764
  }, children: /* @__PURE__ */ y(_, { size: s === "lg" ? "sm" : "xs", color: "secondary", children: [
@@ -7393,7 +7799,7 @@ function _i({
7393
7799
  )
7394
7800
  ] });
7395
7801
  }
7396
- const Yi = {
7802
+ const ss = {
7397
7803
  id: "multi-select",
7398
7804
  name: "MultiSelect",
7399
7805
  tier: "molecule",
@@ -7498,22 +7904,22 @@ const Yi = {
7498
7904
  notes: 'The input carries role="combobox" with aria-expanded and aria-controls pointing to the listbox. Each option has role="option" with aria-selected. Remove buttons on tags have descriptive aria-label.'
7499
7905
  }
7500
7906
  };
7501
- function Ka(e, t) {
7907
+ function nr(e, t) {
7502
7908
  return new Date(e, t + 1, 0).getDate();
7503
7909
  }
7504
- function Xa(e, t) {
7910
+ function ar(e, t) {
7505
7911
  return new Date(e, t, 1).getDay();
7506
7912
  }
7507
- function qe(e, t) {
7913
+ function Be(e, t) {
7508
7914
  return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
7509
7915
  }
7510
- function Le(e, t) {
7916
+ function Re(e, t) {
7511
7917
  return new Date(e.getFullYear(), e.getMonth(), e.getDate()) < new Date(t.getFullYear(), t.getMonth(), t.getDate());
7512
7918
  }
7513
7919
  function ut(e, t) {
7514
7920
  return new Date(e.getFullYear(), e.getMonth(), e.getDate()) > new Date(t.getFullYear(), t.getMonth(), t.getDate());
7515
7921
  }
7516
- const Ja = [
7922
+ const rr = [
7517
7923
  "January",
7518
7924
  "February",
7519
7925
  "March",
@@ -7526,11 +7932,11 @@ const Ja = [
7526
7932
  "October",
7527
7933
  "November",
7528
7934
  "December"
7529
- ], Za = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
7530
- function be(e) {
7935
+ ], or = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
7936
+ function ve(e) {
7531
7937
  return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
7532
7938
  }
7533
- const Qa = { sm: "calc(var(--lucent-space-8) * 0.5 + 18px)", md: "calc(var(--lucent-space-10) * 0.5 + 22px)", lg: "calc(var(--lucent-space-12) * 0.5 + 26px)" }, er = {
7939
+ const ir = { sm: "calc(var(--lucent-space-8) * 0.5 + 18px)", md: "calc(var(--lucent-space-10) * 0.5 + 22px)", lg: "calc(var(--lucent-space-12) * 0.5 + 26px)" }, sr = {
7534
7940
  sm: "var(--lucent-font-size-sm)",
7535
7941
  md: "var(--lucent-font-size-md)",
7536
7942
  lg: "var(--lucent-font-size-md)"
@@ -7538,17 +7944,17 @@ const Qa = { sm: "calc(var(--lucent-space-8) * 0.5 + 18px)", md: "calc(var(--luc
7538
7944
  sm: "var(--lucent-font-size-sm)",
7539
7945
  md: "var(--lucent-font-size-sm)",
7540
7946
  lg: "var(--lucent-font-size-md)"
7541
- }, tr = {
7947
+ }, lr = {
7542
7948
  sm: "var(--lucent-space-3)",
7543
7949
  md: "var(--lucent-space-4)",
7544
7950
  lg: "var(--lucent-space-4)"
7545
- }, nr = {
7951
+ }, cr = {
7546
7952
  sm: "var(--lucent-space-2)",
7547
7953
  md: "calc((var(--lucent-space-2) + var(--lucent-space-3)) / 2)",
7548
7954
  lg: "var(--lucent-space-3)"
7549
- }, ar = { sm: 28, md: 32, lg: 38 }, rr = { sm: "var(--lucent-font-size-xs)", md: "var(--lucent-font-size-sm)", lg: "var(--lucent-font-size-md)" }, or = { sm: "xs", md: "sm", lg: "md" }, ir = { sm: "xs", md: "xs", lg: "sm" }, sr = { sm: 24, md: 28, lg: 32 }, lr = { sm: 14, md: 16, lg: 18 }, It = { sm: "var(--lucent-space-3)", md: "var(--lucent-space-4)", lg: "var(--lucent-space-5)" }, Ye = { sm: 220, md: 260, lg: 300 };
7955
+ }, dr = { sm: 28, md: 32, lg: 38 }, ur = { sm: "var(--lucent-font-size-xs)", md: "var(--lucent-font-size-sm)", lg: "var(--lucent-font-size-md)" }, pr = { sm: "xs", md: "sm", lg: "md" }, fr = { sm: "xs", md: "xs", lg: "sm" }, hr = { sm: 24, md: 28, lg: 32 }, mr = { sm: 14, md: 16, lg: 18 }, It = { sm: "var(--lucent-space-3)", md: "var(--lucent-space-4)", lg: "var(--lucent-space-5)" }, Ye = { sm: 220, md: 260, lg: 300 };
7550
7956
  function pt({ dir: e, onClick: t, disabled: r, size: o = "md" }) {
7551
- const [a, i] = z(!1), l = sr[o], s = lr[o];
7957
+ const [a, i] = z(!1), l = hr[o], s = mr[o];
7552
7958
  return /* @__PURE__ */ n(
7553
7959
  "button",
7554
7960
  {
@@ -7598,64 +8004,64 @@ function Ke({
7598
8004
  onDayHover: u,
7599
8005
  size: f = "md"
7600
8006
  }) {
7601
- const h = Ka(e, t), m = Xa(e, t), [T, v] = z(null), p = [
8007
+ const h = nr(e, t), m = ar(e, t), [T, b] = z(null), p = [
7602
8008
  ...Array(m).fill(null),
7603
- ...Array.from({ length: h }, (b, k) => k + 1)
8009
+ ...Array.from({ length: h }, (v, k) => k + 1)
7604
8010
  ];
7605
8011
  for (; p.length % 7 !== 0; ) p.push(null);
7606
8012
  return /* @__PURE__ */ y("div", { children: [
7607
8013
  /* @__PURE__ */ y("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: "var(--lucent-space-3)" }, children: [
7608
8014
  /* @__PURE__ */ n(pt, { dir: "prev", onClick: s, size: f }),
7609
- /* @__PURE__ */ y(_, { weight: "medium", size: or[f], children: [
7610
- Ja[t],
8015
+ /* @__PURE__ */ y(_, { weight: "medium", size: pr[f], children: [
8016
+ rr[t],
7611
8017
  " ",
7612
8018
  e
7613
8019
  ] }),
7614
8020
  /* @__PURE__ */ n(pt, { dir: "next", onClick: c, size: f })
7615
8021
  ] }),
7616
- /* @__PURE__ */ n("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: 2, marginBottom: "var(--lucent-space-1)" }, children: Za.map((b) => /* @__PURE__ */ n("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ n(_, { size: ir[f], color: "secondary", children: b }) }, b)) }),
7617
- /* @__PURE__ */ n("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: 2 }, children: p.map((b, k) => {
7618
- if (!b) return /* @__PURE__ */ n("div", {}, k);
7619
- const x = new Date(e, t, b), M = r ? qe(x, r) : !1, S = qe(x, o), A = (a ? Le(x, a) : !1) || (i ? ut(x, i) : !1);
7620
- let L = !1;
7621
- return d != null && d.start && (d != null && d.end) && (L = !Le(x, d.start) && !ut(x, d.end)), /* @__PURE__ */ n(
8022
+ /* @__PURE__ */ n("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: 2, marginBottom: "var(--lucent-space-1)" }, children: or.map((v) => /* @__PURE__ */ n("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ n(_, { size: fr[f], color: "secondary", children: v }) }, v)) }),
8023
+ /* @__PURE__ */ n("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: 2 }, children: p.map((v, k) => {
8024
+ if (!v) return /* @__PURE__ */ n("div", {}, k);
8025
+ const x = new Date(e, t, v), M = r ? Be(x, r) : !1, S = Be(x, o), A = (a ? Re(x, a) : !1) || (i ? ut(x, i) : !1);
8026
+ let R = !1;
8027
+ return d != null && d.start && (d != null && d.end) && (R = !Re(x, d.start) && !ut(x, d.end)), /* @__PURE__ */ n(
7622
8028
  "button",
7623
8029
  {
7624
8030
  type: "button",
7625
8031
  disabled: A,
7626
8032
  onClick: () => !A && l(x),
7627
8033
  onMouseEnter: () => {
7628
- v(b), u == null || u(x);
8034
+ b(v), u == null || u(x);
7629
8035
  },
7630
8036
  onMouseLeave: () => {
7631
- v(null), u == null || u(null);
8037
+ b(null), u == null || u(null);
7632
8038
  },
7633
- "aria-label": be(x),
8039
+ "aria-label": ve(x),
7634
8040
  "aria-pressed": M,
7635
8041
  style: {
7636
8042
  display: "flex",
7637
8043
  alignItems: "center",
7638
8044
  justifyContent: "center",
7639
- height: ar[f],
8045
+ height: dr[f],
7640
8046
  width: "100%",
7641
8047
  border: S && !M ? "1px solid var(--lucent-border-strong)" : "1px solid transparent",
7642
8048
  borderRadius: "var(--lucent-radius-md)",
7643
- background: M ? "var(--lucent-accent-default)" : L ? "var(--lucent-accent-subtle)" : T === b && !A ? "color-mix(in srgb, var(--lucent-accent-default) 20%, var(--lucent-surface-secondary))" : "transparent",
8049
+ background: M ? "var(--lucent-accent-default)" : R ? "var(--lucent-accent-subtle)" : T === v && !A ? "color-mix(in srgb, var(--lucent-accent-default) 20%, var(--lucent-surface-secondary))" : "transparent",
7644
8050
  color: M ? "var(--lucent-text-on-accent)" : A ? "var(--lucent-text-disabled)" : "var(--lucent-text-primary)",
7645
- fontSize: rr[f],
8051
+ fontSize: ur[f],
7646
8052
  fontFamily: "var(--lucent-font-family-base)",
7647
8053
  fontWeight: S ? "var(--lucent-font-weight-medium)" : "var(--lucent-font-weight-regular)",
7648
8054
  cursor: A ? "not-allowed" : "pointer",
7649
8055
  transition: "background var(--lucent-duration-fast)"
7650
8056
  },
7651
- children: b
8057
+ children: v
7652
8058
  },
7653
8059
  k
7654
8060
  );
7655
8061
  }) })
7656
8062
  ] });
7657
8063
  }
7658
- function Ki({
8064
+ function ls({
7659
8065
  value: e,
7660
8066
  defaultValue: t,
7661
8067
  onChange: r,
@@ -7669,26 +8075,26 @@ function Ki({
7669
8075
  errorText: u,
7670
8076
  style: f
7671
8077
  }) {
7672
- const h = e !== void 0, [m, T] = z(t), v = h ? e : m, p = !!u, b = a, k = `lucent-datepicker-${Math.random().toString(36).slice(2, 7)}`, x = /* @__PURE__ */ new Date(), [M, S] = z((v ?? x).getFullYear()), [A, L] = z((v ?? x).getMonth()), [C, D] = z(!1), [$, W] = z(!1), w = V(null), F = V(null), [R, N] = z({ top: 0, left: 0 });
8078
+ const h = e !== void 0, [m, T] = z(t), b = h ? e : m, p = !!u, v = a, k = `lucent-datepicker-${Math.random().toString(36).slice(2, 7)}`, x = /* @__PURE__ */ new Date(), [M, S] = z((b ?? x).getFullYear()), [A, R] = z((b ?? x).getMonth()), [C, D] = z(!1), [$, W] = z(!1), w = V(null), F = V(null), [L, N] = z({ top: 0, left: 0 });
7673
8079
  X(() => {
7674
8080
  if (!C) return;
7675
- const B = (P) => {
8081
+ const q = (P) => {
7676
8082
  var j, g;
7677
8083
  !((j = w.current) != null && j.contains(P.target)) && !((g = F.current) != null && g.contains(P.target)) && D(!1);
7678
8084
  };
7679
- return document.addEventListener("mousedown", B), () => document.removeEventListener("mousedown", B);
8085
+ return document.addEventListener("mousedown", q), () => document.removeEventListener("mousedown", q);
7680
8086
  }, [C]), se(() => {
7681
8087
  if (!C || !w.current) return;
7682
- const B = w.current.getBoundingClientRect();
7683
- N({ top: B.bottom + 4, left: B.left });
8088
+ const q = w.current.getBoundingClientRect();
8089
+ N({ top: q.bottom + 4, left: q.left });
7684
8090
  }, [C]);
7685
- const U = (B) => {
7686
- h || T(B), r == null || r(B), D(!1);
8091
+ const U = (q) => {
8092
+ h || T(q), r == null || r(q), D(!1);
7687
8093
  }, Z = () => {
7688
- A === 0 ? (L(11), S((B) => B - 1)) : L((B) => B - 1);
8094
+ A === 0 ? (R(11), S((q) => q - 1)) : R((q) => q - 1);
7689
8095
  }, J = () => {
7690
- A === 11 ? (L(0), S((B) => B + 1)) : L((B) => B + 1);
7691
- }, q = b ? "transparent" : p ? "var(--lucent-danger-default)" : $ ? "var(--lucent-focus-ring)" : "var(--lucent-border-default)", I = $ ? `0 0 0 3px ${p ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none";
8096
+ A === 11 ? (R(0), S((q) => q + 1)) : R((q) => q + 1);
8097
+ }, B = v ? "transparent" : p ? "var(--lucent-danger-default)" : $ ? "var(--lucent-focus-ring)" : "var(--lucent-border-default)", I = $ ? `0 0 0 3px ${p ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none";
7692
8098
  return /* @__PURE__ */ y("div", { ref: w, style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-1)", ...f }, children: [
7693
8099
  c && /* @__PURE__ */ n(
7694
8100
  "label",
@@ -7697,7 +8103,7 @@ function Ki({
7697
8103
  style: {
7698
8104
  fontSize: He[s],
7699
8105
  fontWeight: "var(--lucent-font-weight-medium)",
7700
- color: b ? "var(--lucent-text-disabled)" : "var(--lucent-text-primary)",
8106
+ color: v ? "var(--lucent-text-disabled)" : "var(--lucent-text-primary)",
7701
8107
  fontFamily: "var(--lucent-font-family-base)"
7702
8108
  },
7703
8109
  children: c
@@ -7709,7 +8115,7 @@ function Ki({
7709
8115
  type: "button",
7710
8116
  id: k,
7711
8117
  disabled: a,
7712
- onClick: () => !a && D((B) => !B),
8118
+ onClick: () => !a && D((q) => !q),
7713
8119
  onFocus: () => W(!0),
7714
8120
  onBlur: () => W(!1),
7715
8121
  "aria-haspopup": "dialog",
@@ -7718,19 +8124,19 @@ function Ki({
7718
8124
  style: {
7719
8125
  display: "flex",
7720
8126
  alignItems: "center",
7721
- gap: nr[s],
8127
+ gap: cr[s],
7722
8128
  width: "100%",
7723
- height: Qa[s],
8129
+ height: ir[s],
7724
8130
  boxSizing: "border-box",
7725
- padding: `0 ${tr[s]}`,
8131
+ padding: `0 ${lr[s]}`,
7726
8132
  borderRadius: "var(--lucent-radius-lg)",
7727
- border: `1px solid ${q}`,
8133
+ border: `1px solid ${B}`,
7728
8134
  boxShadow: I,
7729
- background: b ? "var(--lucent-surface-secondary)" : "var(--lucent-surface)",
7730
- color: v ? "var(--lucent-text-primary)" : "var(--lucent-text-secondary)",
8135
+ background: v ? "var(--lucent-surface-secondary)" : "var(--lucent-surface)",
8136
+ color: b ? "var(--lucent-text-primary)" : "var(--lucent-text-secondary)",
7731
8137
  fontFamily: "var(--lucent-font-family-base)",
7732
- fontSize: er[s],
7733
- cursor: b ? "not-allowed" : "pointer",
8138
+ fontSize: sr[s],
8139
+ cursor: v ? "not-allowed" : "pointer",
7734
8140
  outline: "none",
7735
8141
  transition: [
7736
8142
  "border-color var(--lucent-duration-fast) var(--lucent-easing-default)",
@@ -7743,7 +8149,7 @@ function Ki({
7743
8149
  /* @__PURE__ */ n("path", { d: "M1 6h12", stroke: "currentColor", strokeWidth: "1.3" }),
7744
8150
  /* @__PURE__ */ n("path", { d: "M4 1v2M10 1v2", stroke: "currentColor", strokeWidth: "1.3", strokeLinecap: "round" })
7745
8151
  ] }),
7746
- /* @__PURE__ */ n("span", { style: { flex: 1, textAlign: "left" }, children: v ? be(v) : o })
8152
+ /* @__PURE__ */ n("span", { style: { flex: 1, textAlign: "left" }, children: b ? ve(b) : o })
7747
8153
  ]
7748
8154
  }
7749
8155
  ),
@@ -7779,8 +8185,8 @@ function Ki({
7779
8185
  "aria-label": "Date picker",
7780
8186
  style: {
7781
8187
  position: "fixed",
7782
- top: R.top,
7783
- left: R.left,
8188
+ top: L.top,
8189
+ left: L.left,
7784
8190
  zIndex: 1e3,
7785
8191
  background: "color-mix(in srgb, var(--lucent-surface-overlay) 85%, transparent)",
7786
8192
  backdropFilter: "blur(6px)",
@@ -7796,7 +8202,7 @@ function Ki({
7796
8202
  {
7797
8203
  year: M,
7798
8204
  month: A,
7799
- ...v !== void 0 && { selected: v },
8205
+ ...b !== void 0 && { selected: b },
7800
8206
  today: x,
7801
8207
  ...i !== void 0 && { min: i },
7802
8208
  ...l !== void 0 && { max: l },
@@ -7812,7 +8218,7 @@ function Ki({
7812
8218
  )
7813
8219
  ] });
7814
8220
  }
7815
- const Xi = {
8221
+ const cs = {
7816
8222
  id: "date-picker",
7817
8223
  name: "DatePicker",
7818
8224
  tier: "molecule",
@@ -7923,15 +8329,15 @@ const Xi = {
7923
8329
  keyboardInteractions: ["Enter/Space to open calendar", "Click day to select", "Escape closes popover (click outside)"],
7924
8330
  notes: 'The calendar popover is role="dialog". Each day button has aria-label with the full date and aria-pressed for selected state. Full arrow-key navigation within the calendar grid is a planned enhancement.'
7925
8331
  }
7926
- }, cr = { sm: "calc(var(--lucent-space-8) * 0.5 + 18px)", md: "calc(var(--lucent-space-10) * 0.5 + 22px)", lg: "calc(var(--lucent-space-12) * 0.5 + 26px)" }, dr = {
8332
+ }, gr = { sm: "calc(var(--lucent-space-8) * 0.5 + 18px)", md: "calc(var(--lucent-space-10) * 0.5 + 22px)", lg: "calc(var(--lucent-space-12) * 0.5 + 26px)" }, vr = {
7927
8333
  sm: "var(--lucent-font-size-sm)",
7928
8334
  md: "var(--lucent-font-size-md)",
7929
8335
  lg: "var(--lucent-font-size-md)"
7930
- }, ur = {
8336
+ }, br = {
7931
8337
  sm: "var(--lucent-space-3)",
7932
8338
  md: "var(--lucent-space-4)",
7933
8339
  lg: "var(--lucent-space-4)"
7934
- }, pr = {
8340
+ }, yr = {
7935
8341
  sm: "var(--lucent-space-2)",
7936
8342
  md: "calc((var(--lucent-space-2) + var(--lucent-space-3)) / 2)",
7937
8343
  lg: "var(--lucent-space-3)"
@@ -7940,10 +8346,10 @@ const Xi = {
7940
8346
  md: "var(--lucent-font-size-sm)",
7941
8347
  lg: "var(--lucent-font-size-md)"
7942
8348
  };
7943
- function fr(e, t) {
7944
- return e ? qe(e.start, e.end) ? be(e.start) : `${be(e.start)} → ${be(e.end)}` : t;
8349
+ function xr(e, t) {
8350
+ return e ? Be(e.start, e.end) ? ve(e.start) : `${ve(e.start)} → ${ve(e.end)}` : t;
7945
8351
  }
7946
- function Ji({
8352
+ function ds({
7947
8353
  value: e,
7948
8354
  defaultValue: t,
7949
8355
  onChange: r,
@@ -7957,24 +8363,24 @@ function Ji({
7957
8363
  errorText: u,
7958
8364
  style: f
7959
8365
  }) {
7960
- const h = e !== void 0, [m, T] = z(t), v = h ? e : m, p = !!u, b = a, k = `lucent-daterangepicker-${Math.random().toString(36).slice(2, 7)}`, [x, M] = z(null), [S, A] = z(null), L = /* @__PURE__ */ new Date(), [C, D] = z(((v == null ? void 0 : v.start) ?? L).getFullYear()), [$, W] = z(((v == null ? void 0 : v.start) ?? L).getMonth()), w = $ === 11 ? 0 : $ + 1, F = $ === 11 ? C + 1 : C, [R, N] = z(!1), [U, Z] = z(!1), J = V(null), q = V(null), [I, B] = z({ top: 0, left: 0 });
8366
+ const h = e !== void 0, [m, T] = z(t), b = h ? e : m, p = !!u, v = a, k = `lucent-daterangepicker-${Math.random().toString(36).slice(2, 7)}`, [x, M] = z(null), [S, A] = z(null), R = /* @__PURE__ */ new Date(), [C, D] = z(((b == null ? void 0 : b.start) ?? R).getFullYear()), [$, W] = z(((b == null ? void 0 : b.start) ?? R).getMonth()), w = $ === 11 ? 0 : $ + 1, F = $ === 11 ? C + 1 : C, [L, N] = z(!1), [U, Z] = z(!1), J = V(null), B = V(null), [I, q] = z({ top: 0, left: 0 });
7961
8367
  X(() => {
7962
- if (!R) return;
8368
+ if (!L) return;
7963
8369
  const H = (G) => {
7964
8370
  var ae, ne;
7965
- !((ae = J.current) != null && ae.contains(G.target)) && !((ne = q.current) != null && ne.contains(G.target)) && (N(!1), M(null));
8371
+ !((ae = J.current) != null && ae.contains(G.target)) && !((ne = B.current) != null && ne.contains(G.target)) && (N(!1), M(null));
7966
8372
  };
7967
8373
  return document.addEventListener("mousedown", H), () => document.removeEventListener("mousedown", H);
7968
- }, [R]), se(() => {
7969
- if (!R || !J.current) return;
8374
+ }, [L]), se(() => {
8375
+ if (!L || !J.current) return;
7970
8376
  const H = J.current.getBoundingClientRect();
7971
- B({ top: H.bottom + 4, left: H.left });
7972
- }, [R]);
8377
+ q({ top: H.bottom + 4, left: H.left });
8378
+ }, [L]);
7973
8379
  const P = (H) => {
7974
8380
  if (!x)
7975
8381
  M(H);
7976
8382
  else {
7977
- const [G, ae] = Le(H, x) || qe(H, x) ? [H, x] : [x, H], ne = { start: G, end: ae };
8383
+ const [G, ae] = Re(H, x) || Be(H, x) ? [H, x] : [x, H], ne = { start: G, end: ae };
7978
8384
  h || T(ne), r == null || r(ne), M(null), N(!1);
7979
8385
  }
7980
8386
  }, j = () => {
@@ -7984,10 +8390,10 @@ function Ji({
7984
8390
  };
7985
8391
  let E;
7986
8392
  if (x && S) {
7987
- const [H, G] = Le(S, x) ? [S, x] : [x, S];
8393
+ const [H, G] = Re(S, x) ? [S, x] : [x, S];
7988
8394
  E = { start: H, end: G };
7989
- } else x ? E = { start: x, end: x } : v && (E = { start: v.start, end: v.end });
7990
- const O = b ? "transparent" : p ? "var(--lucent-danger-default)" : U ? "var(--lucent-focus-ring)" : "var(--lucent-border-default)", Y = U ? `0 0 0 3px ${p ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none";
8395
+ } else x ? E = { start: x, end: x } : b && (E = { start: b.start, end: b.end });
8396
+ const O = v ? "transparent" : p ? "var(--lucent-danger-default)" : U ? "var(--lucent-focus-ring)" : "var(--lucent-border-default)", Y = U ? `0 0 0 3px ${p ? "var(--lucent-danger-subtle)" : "var(--lucent-accent-subtle)"}` : "none";
7991
8397
  return /* @__PURE__ */ y("div", { ref: J, style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-1)", ...f }, children: [
7992
8398
  c && /* @__PURE__ */ n(
7993
8399
  "label",
@@ -7996,7 +8402,7 @@ function Ji({
7996
8402
  style: {
7997
8403
  fontSize: Ve[s],
7998
8404
  fontWeight: "var(--lucent-font-weight-medium)",
7999
- color: b ? "var(--lucent-text-disabled)" : "var(--lucent-text-primary)",
8405
+ color: v ? "var(--lucent-text-disabled)" : "var(--lucent-text-primary)",
8000
8406
  fontFamily: "var(--lucent-font-family-base)"
8001
8407
  },
8002
8408
  children: c
@@ -8012,24 +8418,24 @@ function Ji({
8012
8418
  onFocus: () => Z(!0),
8013
8419
  onBlur: () => Z(!1),
8014
8420
  "aria-haspopup": "dialog",
8015
- "aria-expanded": R,
8421
+ "aria-expanded": L,
8016
8422
  "aria-invalid": p,
8017
8423
  style: {
8018
8424
  display: "flex",
8019
8425
  alignItems: "center",
8020
- gap: pr[s],
8426
+ gap: yr[s],
8021
8427
  width: "100%",
8022
- height: cr[s],
8428
+ height: gr[s],
8023
8429
  boxSizing: "border-box",
8024
- padding: `0 ${ur[s]}`,
8430
+ padding: `0 ${br[s]}`,
8025
8431
  borderRadius: "var(--lucent-radius-lg)",
8026
8432
  border: `1px solid ${O}`,
8027
8433
  boxShadow: Y,
8028
- background: b ? "var(--lucent-surface-secondary)" : "var(--lucent-surface)",
8029
- color: v ? "var(--lucent-text-primary)" : "var(--lucent-text-secondary)",
8434
+ background: v ? "var(--lucent-surface-secondary)" : "var(--lucent-surface)",
8435
+ color: b ? "var(--lucent-text-primary)" : "var(--lucent-text-secondary)",
8030
8436
  fontFamily: "var(--lucent-font-family-base)",
8031
- fontSize: dr[s],
8032
- cursor: b ? "not-allowed" : "pointer",
8437
+ fontSize: vr[s],
8438
+ cursor: v ? "not-allowed" : "pointer",
8033
8439
  outline: "none",
8034
8440
  transition: [
8035
8441
  "border-color var(--lucent-duration-fast) var(--lucent-easing-default)",
@@ -8042,7 +8448,7 @@ function Ji({
8042
8448
  /* @__PURE__ */ n("path", { d: "M1 6h12", stroke: "currentColor", strokeWidth: "1.3" }),
8043
8449
  /* @__PURE__ */ n("path", { d: "M4 1v2M10 1v2", stroke: "currentColor", strokeWidth: "1.3", strokeLinecap: "round" })
8044
8450
  ] }),
8045
- /* @__PURE__ */ n("span", { style: { flex: 1, textAlign: "left" }, children: fr(v, o) })
8451
+ /* @__PURE__ */ n("span", { style: { flex: 1, textAlign: "left" }, children: xr(b, o) })
8046
8452
  ]
8047
8453
  }
8048
8454
  ),
@@ -8069,11 +8475,11 @@ function Ji({
8069
8475
  children: d
8070
8476
  }
8071
8477
  ),
8072
- R && de(
8478
+ L && de(
8073
8479
  /* @__PURE__ */ y(
8074
8480
  "div",
8075
8481
  {
8076
- ref: q,
8482
+ ref: B,
8077
8483
  role: "dialog",
8078
8484
  "aria-label": "Date range picker",
8079
8485
  style: {
@@ -8097,8 +8503,8 @@ function Ji({
8097
8503
  {
8098
8504
  year: C,
8099
8505
  month: $,
8100
- ...(v == null ? void 0 : v.start) !== void 0 && { selected: v.start },
8101
- today: L,
8506
+ ...(b == null ? void 0 : b.start) !== void 0 && { selected: b.start },
8507
+ today: R,
8102
8508
  ...i !== void 0 && { min: i },
8103
8509
  ...l !== void 0 && { max: l },
8104
8510
  onSelect: P,
@@ -8115,8 +8521,8 @@ function Ji({
8115
8521
  {
8116
8522
  year: F,
8117
8523
  month: w,
8118
- ...(v == null ? void 0 : v.end) !== void 0 && { selected: v.end },
8119
- today: L,
8524
+ ...(b == null ? void 0 : b.end) !== void 0 && { selected: b.end },
8525
+ today: R,
8120
8526
  ...i !== void 0 && { min: i },
8121
8527
  ...l !== void 0 && { max: l },
8122
8528
  onSelect: P,
@@ -8132,15 +8538,15 @@ function Ji({
8132
8538
  ),
8133
8539
  document.body
8134
8540
  ),
8135
- x && R && /* @__PURE__ */ n("div", { style: { position: "absolute", top: "calc(100% + var(--lucent-space-1))", left: 0, zIndex: 1001, pointerEvents: "none" } }),
8136
- x && R && /* @__PURE__ */ n("div", { style: {
8541
+ x && L && /* @__PURE__ */ n("div", { style: { position: "absolute", top: "calc(100% + var(--lucent-space-1))", left: 0, zIndex: 1001, pointerEvents: "none" } }),
8542
+ x && L && /* @__PURE__ */ n("div", { style: {
8137
8543
  position: "absolute",
8138
8544
  bottom: -24,
8139
8545
  left: 0
8140
8546
  }, children: /* @__PURE__ */ n(_, { size: "xs", color: "secondary", children: "Now pick the end date" }) })
8141
8547
  ] });
8142
8548
  }
8143
- const Zi = {
8549
+ const us = {
8144
8550
  id: "date-range-picker",
8145
8551
  name: "DateRangePicker",
8146
8552
  tier: "molecule",
@@ -8251,10 +8657,10 @@ const Zi = {
8251
8657
  function Xe(e) {
8252
8658
  return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
8253
8659
  }
8254
- function hr() {
8660
+ function wr() {
8255
8661
  return Math.random().toString(36).slice(2);
8256
8662
  }
8257
- function mr({
8663
+ function kr({
8258
8664
  item: e,
8259
8665
  onRemove: t
8260
8666
  }) {
@@ -8316,7 +8722,7 @@ function mr({
8316
8722
  )
8317
8723
  ] });
8318
8724
  }
8319
- function Qi({
8725
+ function ps({
8320
8726
  accept: e,
8321
8727
  multiple: t = !1,
8322
8728
  maxSize: r,
@@ -8326,7 +8732,7 @@ function Qi({
8326
8732
  disabled: l = !1,
8327
8733
  style: s
8328
8734
  }) {
8329
- const c = o !== void 0, [d, u] = z([]), f = c ? o : d, [h, m] = z(!1), [T, v] = z(!1), p = V(null), b = ee((S) => {
8735
+ const c = o !== void 0, [d, u] = z([]), f = c ? o : d, [h, m] = z(!1), [T, b] = z(!1), p = V(null), v = ee((S) => {
8330
8736
  if (!S || l) return;
8331
8737
  const A = [];
8332
8738
  for (const C of Array.from(S)) {
@@ -8335,18 +8741,18 @@ function Qi({
8335
8741
  continue;
8336
8742
  }
8337
8743
  if (!t && f.length + A.length >= 1) break;
8338
- A.push({ id: hr(), file: C });
8744
+ A.push({ id: wr(), file: C });
8339
8745
  }
8340
8746
  if (A.length === 0) return;
8341
- const L = t ? [...f, ...A] : A;
8342
- c || u(L), a == null || a(L);
8747
+ const R = t ? [...f, ...A] : A;
8748
+ c || u(R), a == null || a(R);
8343
8749
  }, [l, f, c, r, t, a, i]), k = (S) => {
8344
- const A = f.filter((L) => L.id !== S);
8750
+ const A = f.filter((R) => R.id !== S);
8345
8751
  c || u(A), a == null || a(A);
8346
8752
  }, x = (S) => {
8347
- S.preventDefault(), m(!1), b(S.dataTransfer.files);
8753
+ S.preventDefault(), m(!1), v(S.dataTransfer.files);
8348
8754
  }, M = (S) => {
8349
- b(S.target.files), S.target.value = "";
8755
+ v(S.target.files), S.target.value = "";
8350
8756
  };
8351
8757
  return /* @__PURE__ */ y("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-3)", ...s }, children: [
8352
8758
  /* @__PURE__ */ y(
@@ -8364,8 +8770,8 @@ function Qi({
8364
8770
  var A;
8365
8771
  (S.key === "Enter" || S.key === " ") && (S.preventDefault(), (A = p.current) == null || A.click());
8366
8772
  },
8367
- onFocus: () => v(!0),
8368
- onBlur: () => v(!1),
8773
+ onFocus: () => b(!0),
8774
+ onBlur: () => b(!1),
8369
8775
  onDragOver: (S) => {
8370
8776
  S.preventDefault(), l || m(!0);
8371
8777
  },
@@ -8424,10 +8830,10 @@ function Qi({
8424
8830
  ]
8425
8831
  }
8426
8832
  ),
8427
- f.length > 0 && /* @__PURE__ */ n("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-2)" }, children: f.map((S) => /* @__PURE__ */ n(mr, { item: S, onRemove: k }, S.id)) })
8833
+ f.length > 0 && /* @__PURE__ */ n("div", { style: { display: "flex", flexDirection: "column", gap: "var(--lucent-space-2)" }, children: f.map((S) => /* @__PURE__ */ n(kr, { item: S, onRemove: k }, S.id)) })
8428
8834
  ] });
8429
8835
  }
8430
- const es = {
8836
+ const fs = {
8431
8837
  id: "file-upload",
8432
8838
  name: "FileUpload",
8433
8839
  tier: "molecule",
@@ -8525,23 +8931,23 @@ const handleChange = async (updated: UploadFile[]) => {
8525
8931
  keyboardInteractions: ["Enter/Space to open file picker", "Tab to focus drop zone"],
8526
8932
  notes: 'The drop zone has role="button" with tabIndex=0 and responds to Enter/Space. Remove buttons on file rows have aria-label including the filename.'
8527
8933
  }
8528
- }, gr = {
8934
+ }, Sr = {
8529
8935
  default: "var(--lucent-border-strong)",
8530
8936
  success: "var(--lucent-success-default)",
8531
8937
  warning: "var(--lucent-warning-default)",
8532
8938
  danger: "var(--lucent-danger-default)",
8533
8939
  info: "var(--lucent-info-default)"
8534
- }, br = {
8940
+ }, Tr = {
8535
8941
  default: "var(--lucent-surface-secondary)",
8536
8942
  success: "var(--lucent-success-subtle)",
8537
8943
  warning: "var(--lucent-warning-subtle)",
8538
8944
  danger: "var(--lucent-danger-subtle)",
8539
8945
  info: "var(--lucent-info-subtle)"
8540
8946
  };
8541
- function vr({ status: e }) {
8947
+ function Cr({ status: e }) {
8542
8948
  return e === "success" ? /* @__PURE__ */ n("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": !0, children: /* @__PURE__ */ n("path", { d: "M2 5l2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) : e === "danger" ? /* @__PURE__ */ n("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": !0, children: /* @__PURE__ */ n("path", { d: "M2 2l6 6M8 2L2 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) : e === "warning" ? /* @__PURE__ */ n("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": !0, children: /* @__PURE__ */ n("path", { d: "M5 2v4M5 7.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) : null;
8543
8949
  }
8544
- function ts({ items: e, style: t }) {
8950
+ function hs({ items: e, style: t }) {
8545
8951
  return /* @__PURE__ */ n(
8546
8952
  "ol",
8547
8953
  {
@@ -8554,7 +8960,7 @@ function ts({ items: e, style: t }) {
8554
8960
  ...t
8555
8961
  },
8556
8962
  children: e.map((r, o) => {
8557
- const a = r.status ?? "default", i = gr[a], l = br[a], s = o === e.length - 1;
8963
+ const a = r.status ?? "default", i = Sr[a], l = Tr[a], s = o === e.length - 1;
8558
8964
  return /* @__PURE__ */ y(
8559
8965
  "li",
8560
8966
  {
@@ -8583,7 +8989,7 @@ function ts({ items: e, style: t }) {
8583
8989
  color: i,
8584
8990
  flexShrink: 0,
8585
8991
  zIndex: 1
8586
- }, children: r.icon ?? /* @__PURE__ */ n(vr, { status: a }) }),
8992
+ }, children: r.icon ?? /* @__PURE__ */ n(Cr, { status: a }) }),
8587
8993
  !s && /* @__PURE__ */ n("div", { style: {
8588
8994
  flex: 1,
8589
8995
  width: 2,
@@ -8611,7 +9017,7 @@ function ts({ items: e, style: t }) {
8611
9017
  }
8612
9018
  );
8613
9019
  }
8614
- const ns = {
9020
+ const ms = {
8615
9021
  id: "timeline",
8616
9022
  name: "Timeline",
8617
9023
  tier: "molecule",
@@ -8665,7 +9071,7 @@ const ns = {
8665
9071
  keyboardInteractions: ["Standard document flow — no interactive elements unless custom icons include them"],
8666
9072
  notes: "Timeline is a semantic <ol> with <li> items. It is non-interactive by default. If items contain interactive elements (links, buttons), those elements carry their own keyboard behaviour."
8667
9073
  }
8668
- }, je = 120, yr = `
9074
+ }, je = 120, Ir = `
8669
9075
  @keyframes lucent-menu-in {
8670
9076
  from { opacity: 0; transform: scale(0.97) translateY(-2px); }
8671
9077
  to { opacity: 1; transform: scale(1) translateY(0); }
@@ -8678,20 +9084,20 @@ const ns = {
8678
9084
  sm: "var(--lucent-space-2)",
8679
9085
  md: "var(--lucent-space-2)",
8680
9086
  lg: "var(--lucent-space-3)"
8681
- }, xr = {
9087
+ }, Mr = {
8682
9088
  sm: "sm",
8683
9089
  md: "md",
8684
9090
  lg: "lg"
8685
- }, wr = {
9091
+ }, Dr = {
8686
9092
  sm: "xs",
8687
9093
  md: "sm",
8688
9094
  lg: "md"
8689
- }, kr = {
9095
+ }, zr = {
8690
9096
  sm: 12,
8691
9097
  md: 14,
8692
9098
  lg: 16
8693
9099
  }, Qe = ye(null), Ie = 4;
8694
- function Sr(e, t, r) {
9100
+ function Ar(e, t, r) {
8695
9101
  const o = t.offsetWidth, a = t.offsetHeight, i = window.innerWidth, l = window.innerHeight;
8696
9102
  let s = 0, c = 0, d = r;
8697
9103
  const u = {
@@ -8704,7 +9110,7 @@ function Sr(e, t, r) {
8704
9110
  let f = "top left";
8705
9111
  return d.startsWith("top") ? f = d.endsWith("-end") ? "bottom right" : d.endsWith("-start") ? "bottom left" : "bottom center" : d.startsWith("bottom") ? f = d.endsWith("-end") ? "top right" : d.endsWith("-start") ? "top left" : "top center" : d === "left" ? f = "center right" : d === "right" && (f = "center left"), { top: s, left: c, transformOrigin: f };
8706
9112
  }
8707
- function as({
9113
+ function gs({
8708
9114
  onSelect: e,
8709
9115
  children: t,
8710
9116
  icon: r,
@@ -8716,11 +9122,11 @@ function as({
8716
9122
  }) {
8717
9123
  const c = fe(Qe), d = V(-1);
8718
9124
  d.current === -1 && c && (d.current = c.getItemIndex(), c.registerItem(d.current, a));
8719
- const u = c ? c.activeIndex === d.current : !1, f = (c == null ? void 0 : c.size) ?? "md", h = Ze[f], m = xr[f], T = kr[f], v = () => {
9125
+ const u = c ? c.activeIndex === d.current : !1, f = (c == null ? void 0 : c.size) ?? "md", h = Ze[f], m = Mr[f], T = zr[f], b = () => {
8720
9126
  a || (e(), c == null || c.close());
8721
9127
  }, p = () => {
8722
9128
  !a && c && c.setActiveIndex(d.current);
8723
- }, b = a ? "var(--lucent-text-disabled)" : i ? "var(--lucent-danger-text)" : "var(--lucent-text-primary)";
9129
+ }, v = a ? "var(--lucent-text-disabled)" : i ? "var(--lucent-danger-text)" : "var(--lucent-text-primary)";
8724
9130
  return /* @__PURE__ */ y(
8725
9131
  "div",
8726
9132
  {
@@ -8729,7 +9135,7 @@ function as({
8729
9135
  "aria-disabled": a || void 0,
8730
9136
  "data-active": u || void 0,
8731
9137
  tabIndex: -1,
8732
- onClick: v,
9138
+ onClick: b,
8733
9139
  onMouseEnter: p,
8734
9140
  style: {
8735
9141
  display: "flex",
@@ -8751,7 +9157,7 @@ function as({
8751
9157
  display: "flex",
8752
9158
  color: a ? "var(--lucent-text-disabled)" : i ? "var(--lucent-danger-text)" : "var(--lucent-text-secondary)"
8753
9159
  }, children: r }),
8754
- /* @__PURE__ */ n("span", { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ n(_, { size: m, style: { color: b }, children: t }) }),
9160
+ /* @__PURE__ */ n("span", { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ n(_, { size: m, style: { color: v }, children: t }) }),
8755
9161
  o && /* @__PURE__ */ n(_, { size: f === "lg" ? "sm" : "xs", style: { color: "var(--lucent-text-secondary)", flexShrink: 0 }, children: o }),
8756
9162
  l && /* @__PURE__ */ n("span", { style: {
8757
9163
  flexShrink: 0,
@@ -8762,7 +9168,7 @@ function as({
8762
9168
  }
8763
9169
  );
8764
9170
  }
8765
- function rs({ style: e }) {
9171
+ function vs({ style: e }) {
8766
9172
  return /* @__PURE__ */ n(
8767
9173
  "div",
8768
9174
  {
@@ -8776,14 +9182,14 @@ function rs({ style: e }) {
8776
9182
  }
8777
9183
  );
8778
9184
  }
8779
- function os({ label: e, children: t, style: r }) {
9185
+ function bs({ label: e, children: t, style: r }) {
8780
9186
  const o = fe(Qe), a = (o == null ? void 0 : o.size) ?? "md", i = Ze[a];
8781
9187
  return /* @__PURE__ */ y("div", { role: "group", "aria-label": e, style: r, children: [
8782
- /* @__PURE__ */ n("div", { style: { padding: `${i} ${i} var(--lucent-space-1)` }, children: /* @__PURE__ */ n(_, { size: wr[a], color: "secondary", weight: "medium", children: e }) }),
9188
+ /* @__PURE__ */ n("div", { style: { padding: `${i} ${i} var(--lucent-space-1)` }, children: /* @__PURE__ */ n(_, { size: Dr[a], color: "secondary", weight: "medium", children: e }) }),
8783
9189
  t
8784
9190
  ] });
8785
9191
  }
8786
- function is({
9192
+ function ys({
8787
9193
  trigger: e,
8788
9194
  children: t,
8789
9195
  placement: r = "bottom-start",
@@ -8793,106 +9199,106 @@ function is({
8793
9199
  portalContainer: l,
8794
9200
  style: s
8795
9201
  }) {
8796
- const c = a !== void 0, [d, u] = z(!1), f = c ? a : d, [h, m] = z(!1), [T, v] = z("idle"), p = V(null), b = V(null), k = V(null), x = V(!1), [M, S] = z(null), A = V(0), L = V(/* @__PURE__ */ new Map()), [C, D] = z(-1);
9202
+ const c = a !== void 0, [d, u] = z(!1), f = c ? a : d, [h, m] = z(!1), [T, b] = z("idle"), p = V(null), v = V(null), k = V(null), x = V(!1), [M, S] = z(null), A = V(0), R = V(/* @__PURE__ */ new Map()), [C, D] = z(-1);
8797
9203
  if (!x.current && typeof document < "u") {
8798
- const q = document.createElement("style");
8799
- q.textContent = yr, document.head.appendChild(q), x.current = !0;
9204
+ const B = document.createElement("style");
9205
+ B.textContent = Ir, document.head.appendChild(B), x.current = !0;
8800
9206
  }
8801
9207
  X(() => {
8802
9208
  if (f)
8803
- A.current = 0, L.current.clear(), m(!0), v("entering");
9209
+ A.current = 0, R.current.clear(), m(!0), b("entering");
8804
9210
  else if (h) {
8805
- v("exiting");
8806
- const q = setTimeout(() => {
8807
- m(!1), v("idle");
9211
+ b("exiting");
9212
+ const B = setTimeout(() => {
9213
+ m(!1), b("idle");
8808
9214
  }, je);
8809
- return () => clearTimeout(q);
9215
+ return () => clearTimeout(B);
8810
9216
  }
8811
9217
  }, [f]);
8812
- const $ = ee((q) => {
8813
- c || u(q), i == null || i(q);
9218
+ const $ = ee((B) => {
9219
+ c || u(B), i == null || i(B);
8814
9220
  }, [c, i]), W = ee(() => {
8815
- const q = k.current;
8816
- q && (q.querySelector("button, [tabindex]") ?? q).focus();
9221
+ const B = k.current;
9222
+ B && (B.querySelector("button, [tabindex]") ?? B).focus();
8817
9223
  }, []), w = ee(() => {
8818
9224
  $(!1), W();
8819
9225
  }, [$, W]);
8820
9226
  se(() => {
8821
9227
  if (!h || T !== "entering" || !p.current) return;
8822
- const q = requestAnimationFrame(() => {
8823
- const I = b.current, B = p.current;
8824
- if (!I || !B) return;
8825
- const P = B.getBoundingClientRect();
8826
- S(Sr(P, I, r));
9228
+ const B = requestAnimationFrame(() => {
9229
+ const I = v.current, q = p.current;
9230
+ if (!I || !q) return;
9231
+ const P = q.getBoundingClientRect();
9232
+ S(Ar(P, I, r));
8827
9233
  });
8828
- return () => cancelAnimationFrame(q);
9234
+ return () => cancelAnimationFrame(B);
8829
9235
  }, [h, T, r]), X(() => {
8830
9236
  if (!h || T !== "entering") return;
8831
- const q = setTimeout(() => {
8832
- const B = Array.from(L.current.entries()).sort((P, j) => P[0] - j[0]).find(([, P]) => !P.disabled);
8833
- D(B ? B[0] : -1);
9237
+ const B = setTimeout(() => {
9238
+ const q = Array.from(R.current.entries()).sort((P, j) => P[0] - j[0]).find(([, P]) => !P.disabled);
9239
+ D(q ? q[0] : -1);
8834
9240
  }, 0);
8835
- return () => clearTimeout(q);
9241
+ return () => clearTimeout(B);
8836
9242
  }, [h, T]), X(() => {
8837
9243
  if (!f) return;
8838
- const q = (B) => {
9244
+ const B = (q) => {
8839
9245
  var j, g;
8840
- const P = B.target;
8841
- (j = p.current) != null && j.contains(P) || (g = b.current) != null && g.contains(P) || w();
9246
+ const P = q.target;
9247
+ (j = p.current) != null && j.contains(P) || (g = v.current) != null && g.contains(P) || w();
8842
9248
  }, I = requestAnimationFrame(() => {
8843
- document.addEventListener("mousedown", q);
9249
+ document.addEventListener("mousedown", B);
8844
9250
  });
8845
9251
  return () => {
8846
- cancelAnimationFrame(I), document.removeEventListener("mousedown", q);
9252
+ cancelAnimationFrame(I), document.removeEventListener("mousedown", B);
8847
9253
  };
8848
9254
  }, [f, w]), X(() => {
8849
9255
  if (!f) return;
8850
- let q = !1;
9256
+ let B = !1;
8851
9257
  const I = setTimeout(() => {
8852
- q = !0;
8853
- }, 50), B = () => {
8854
- q && w();
9258
+ B = !0;
9259
+ }, 50), q = () => {
9260
+ B && w();
8855
9261
  };
8856
- return window.addEventListener("scroll", B, { passive: !0, capture: !0 }), () => {
8857
- clearTimeout(I), window.removeEventListener("scroll", B, { capture: !0 });
9262
+ return window.addEventListener("scroll", q, { passive: !0, capture: !0 }), () => {
9263
+ clearTimeout(I), window.removeEventListener("scroll", q, { capture: !0 });
8858
9264
  };
8859
9265
  }, [f, w]);
8860
- const F = ee(() => Array.from(L.current.entries()).filter(([, q]) => !q.disabled).map(([q]) => q).sort((q, I) => q - I), []), R = ee((q) => {
9266
+ const F = ee(() => Array.from(R.current.entries()).filter(([, B]) => !B.disabled).map(([B]) => B).sort((B, I) => B - I), []), L = ee((B) => {
8861
9267
  if (!f) return;
8862
9268
  const I = F();
8863
9269
  if (I.length !== 0)
8864
- switch (q.key) {
9270
+ switch (B.key) {
8865
9271
  case "Escape":
8866
- q.preventDefault(), w();
9272
+ B.preventDefault(), w();
8867
9273
  break;
8868
9274
  case "ArrowDown": {
8869
- q.preventDefault(), D((B) => {
8870
- const P = I.indexOf(B);
9275
+ B.preventDefault(), D((q) => {
9276
+ const P = I.indexOf(q);
8871
9277
  return P < I.length - 1 ? I[P + 1] : I[0];
8872
9278
  });
8873
9279
  break;
8874
9280
  }
8875
9281
  case "ArrowUp": {
8876
- q.preventDefault(), D((B) => {
8877
- const P = I.indexOf(B);
9282
+ B.preventDefault(), D((q) => {
9283
+ const P = I.indexOf(q);
8878
9284
  return P > 0 ? I[P - 1] : I[I.length - 1];
8879
9285
  });
8880
9286
  break;
8881
9287
  }
8882
9288
  case "Home": {
8883
- q.preventDefault(), D(I[0]);
9289
+ B.preventDefault(), D(I[0]);
8884
9290
  break;
8885
9291
  }
8886
9292
  case "End": {
8887
- q.preventDefault(), D(I[I.length - 1]);
9293
+ B.preventDefault(), D(I[I.length - 1]);
8888
9294
  break;
8889
9295
  }
8890
9296
  case "Enter":
8891
9297
  case " ": {
8892
- q.preventDefault();
8893
- const B = b.current;
8894
- if (B) {
8895
- const P = B.querySelector('[data-active="true"]');
9298
+ B.preventDefault();
9299
+ const q = v.current;
9300
+ if (q) {
9301
+ const P = q.querySelector('[data-active="true"]');
8896
9302
  P == null || P.click();
8897
9303
  }
8898
9304
  break;
@@ -8905,31 +9311,31 @@ function is({
8905
9311
  }, [f, w, F]);
8906
9312
  X(() => {
8907
9313
  if (f)
8908
- return document.addEventListener("keydown", R), () => document.removeEventListener("keydown", R);
8909
- }, [f, R]), X(() => {
9314
+ return document.addEventListener("keydown", L), () => document.removeEventListener("keydown", L);
9315
+ }, [f, L]), X(() => {
8910
9316
  if (!f) return;
8911
- const q = b.current;
8912
- if (!q) return;
8913
- const I = q.querySelector('[data-active="true"]');
9317
+ const B = v.current;
9318
+ if (!B) return;
9319
+ const I = B.querySelector('[data-active="true"]');
8914
9320
  I == null || I.scrollIntoView({ block: "nearest" });
8915
9321
  }, [C, f]);
8916
9322
  const N = () => {
8917
9323
  $(!f);
8918
- }, U = (q) => {
8919
- (q.key === "Enter" || q.key === " " || q.key === "ArrowDown") && (q.preventDefault(), f || $(!0)), q.key === "ArrowUp" && (q.preventDefault(), f || ($(!0), setTimeout(() => {
9324
+ }, U = (B) => {
9325
+ (B.key === "Enter" || B.key === " " || B.key === "ArrowDown") && (B.preventDefault(), f || $(!0)), B.key === "ArrowUp" && (B.preventDefault(), f || ($(!0), setTimeout(() => {
8920
9326
  const I = F();
8921
9327
  I.length > 0 && D(I[I.length - 1]);
8922
9328
  }, 0)));
8923
9329
  }, Z = {
8924
9330
  activeIndex: C,
8925
9331
  setActiveIndex: D,
8926
- registerItem: (q, I) => {
8927
- L.current.set(q, { disabled: I });
9332
+ registerItem: (B, I) => {
9333
+ R.current.set(B, { disabled: I });
8928
9334
  },
8929
9335
  close: w,
8930
9336
  getItemIndex: () => A.current++,
8931
9337
  size: o
8932
- }, J = ve();
9338
+ }, J = be();
8933
9339
  return /* @__PURE__ */ y(oe, { children: [
8934
9340
  /* @__PURE__ */ n(
8935
9341
  "span",
@@ -8955,7 +9361,7 @@ function is({
8955
9361
  /* @__PURE__ */ n(Qe.Provider, { value: Z, children: /* @__PURE__ */ n(
8956
9362
  "div",
8957
9363
  {
8958
- ref: b,
9364
+ ref: v,
8959
9365
  id: J,
8960
9366
  role: "menu",
8961
9367
  style: {
@@ -8986,7 +9392,7 @@ function is({
8986
9392
  )
8987
9393
  ] });
8988
9394
  }
8989
- const ss = {
9395
+ const xs = {
8990
9396
  id: "menu",
8991
9397
  name: "Menu",
8992
9398
  tier: "molecule",
@@ -9219,45 +9625,45 @@ const ss = {
9219
9625
  notes: 'Focus returns to the trigger element after the menu is dismissed via Escape or selection. Disabled items are skipped during keyboard navigation and have aria-disabled. Selected items use role="menuitemcheckbox" with aria-checked for screen reader announcement. The popover is portaled to document.body (or portalContainer) but remains semantically linked to the trigger via aria-controls.'
9220
9626
  }
9221
9627
  }, Mt = ye(null);
9222
- function ls() {
9628
+ function ws() {
9223
9629
  const e = fe(Mt);
9224
9630
  if (!e) throw new Error("useToast must be used inside <ToastProvider>");
9225
9631
  return e;
9226
9632
  }
9227
- const Tr = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9633
+ const Er = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9228
9634
  /* @__PURE__ */ n("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
9229
9635
  /* @__PURE__ */ n("path", { d: "M8 5.5V8.5M8 10.5V11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
9230
- ] }), Cr = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9636
+ ] }), qr = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9231
9637
  /* @__PURE__ */ n("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
9232
9638
  /* @__PURE__ */ n("path", { d: "M5 8L7 10L11 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
9233
- ] }), Ir = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9639
+ ] }), Br = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9234
9640
  /* @__PURE__ */ n("path", { d: "M8 2L14.5 13H1.5L8 2Z", stroke: "currentColor", strokeWidth: "1.5", strokeLinejoin: "round" }),
9235
9641
  /* @__PURE__ */ n("path", { d: "M8 6V9M8 11V11.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
9236
- ] }), Mr = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9642
+ ] }), Rr = () => /* @__PURE__ */ y("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
9237
9643
  /* @__PURE__ */ n("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
9238
9644
  /* @__PURE__ */ n("path", { d: "M5.5 5.5L10.5 10.5M10.5 5.5L5.5 10.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
9239
- ] }), Dr = () => /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M3 3L11 11M11 3L3 11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }), zr = {
9240
- info: /* @__PURE__ */ n(Tr, {}),
9241
- success: /* @__PURE__ */ n(Cr, {}),
9242
- warning: /* @__PURE__ */ n(Ir, {}),
9243
- danger: /* @__PURE__ */ n(Mr, {})
9244
- }, Ar = {
9645
+ ] }), Lr = () => /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M3 3L11 11M11 3L3 11", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }), Pr = {
9646
+ info: /* @__PURE__ */ n(Er, {}),
9647
+ success: /* @__PURE__ */ n(qr, {}),
9648
+ warning: /* @__PURE__ */ n(Br, {}),
9649
+ danger: /* @__PURE__ */ n(Rr, {})
9650
+ }, Fr = {
9245
9651
  default: { border: "var(--lucent-border-default)", iconColor: "var(--lucent-text-secondary)" },
9246
9652
  info: { border: "var(--lucent-info-default)", iconColor: "var(--lucent-info-text)" },
9247
9653
  success: { border: "var(--lucent-success-default)", iconColor: "var(--lucent-success-text)" },
9248
9654
  warning: { border: "var(--lucent-warning-default)", iconColor: "var(--lucent-warning-text)" },
9249
9655
  danger: { border: "var(--lucent-danger-default)", iconColor: "var(--lucent-danger-text)" }
9250
9656
  };
9251
- let Er = 0;
9252
- function Br() {
9253
- return `lucent-toast-${++Er}`;
9657
+ let Nr = 0;
9658
+ function $r() {
9659
+ return `lucent-toast-${++Nr}`;
9254
9660
  }
9255
9661
  function Dt(e) {
9256
9662
  return e.startsWith("top");
9257
9663
  }
9258
- const qr = 200, Lr = 8, Rr = 0.04, Pr = 0.2, Fr = 3, Nr = 356;
9664
+ const Wr = 200, Or = 8, Hr = 0.04, Vr = 0.2, jr = 3, Ur = 356;
9259
9665
  function ft({ entry: e, onDismiss: t, hideContent: r, fixedHeight: o }) {
9260
- const { id: a, title: i, description: l, variant: s, action: c, icon: d } = e, u = Ar[s], f = d ?? (s !== "default" ? zr[s] : null), h = (c == null ? void 0 : c.style) ?? "button";
9666
+ const { id: a, title: i, description: l, variant: s, action: c, icon: d } = e, u = Fr[s], f = d ?? (s !== "default" ? Pr[s] : null), h = (c == null ? void 0 : c.style) ?? "button";
9261
9667
  return /* @__PURE__ */ n(
9262
9668
  "div",
9263
9669
  {
@@ -9271,7 +9677,7 @@ function ft({ entry: e, onDismiss: t, hideContent: r, fixedHeight: o }) {
9271
9677
  borderRadius: "var(--lucent-radius-lg)",
9272
9678
  boxShadow: r ? "none" : "var(--lucent-shadow-lg)",
9273
9679
  boxSizing: "border-box",
9274
- width: Nr,
9680
+ width: Ur,
9275
9681
  maxWidth: "calc(100vw - var(--lucent-space-8))",
9276
9682
  fontFamily: "var(--lucent-font-family-base)",
9277
9683
  transition: "height var(--lucent-duration-base) var(--lucent-easing-emphasized), box-shadow var(--lucent-duration-base) var(--lucent-easing-default)",
@@ -9294,10 +9700,10 @@ function ft({ entry: e, onDismiss: t, hideContent: r, fixedHeight: o }) {
9294
9700
  /* @__PURE__ */ n(_, { as: "span", size: "sm", weight: "semibold", color: "primary", lineHeight: "tight", children: i }),
9295
9701
  l && /* @__PURE__ */ n(_, { as: "span", size: "sm", color: "secondary", lineHeight: "base", style: { whiteSpace: "pre-line" }, children: l })
9296
9702
  ] }),
9297
- c && h === "button" && /* @__PURE__ */ n($r, { label: c.label, onClick: () => {
9703
+ c && h === "button" && /* @__PURE__ */ n(Gr, { label: c.label, onClick: () => {
9298
9704
  c.onClick(), t(a);
9299
9705
  } }),
9300
- c && h === "link" && /* @__PURE__ */ n(Wr, { label: c.label, iconColor: u.iconColor, onClick: () => {
9706
+ c && h === "link" && /* @__PURE__ */ n(_r, { label: c.label, iconColor: u.iconColor, onClick: () => {
9301
9707
  c.onClick(), t(a);
9302
9708
  } }),
9303
9709
  /* @__PURE__ */ n(
@@ -9324,7 +9730,7 @@ function ft({ entry: e, onDismiss: t, hideContent: r, fixedHeight: o }) {
9324
9730
  onMouseLeave: (m) => {
9325
9731
  r || (m.currentTarget.style.opacity = "0.6");
9326
9732
  },
9327
- children: /* @__PURE__ */ n(Dr, {})
9733
+ children: /* @__PURE__ */ n(Lr, {})
9328
9734
  }
9329
9735
  )
9330
9736
  ]
@@ -9333,7 +9739,7 @@ function ft({ entry: e, onDismiss: t, hideContent: r, fixedHeight: o }) {
9333
9739
  }
9334
9740
  );
9335
9741
  }
9336
- function $r({ label: e, onClick: t }) {
9742
+ function Gr({ label: e, onClick: t }) {
9337
9743
  return /* @__PURE__ */ n(
9338
9744
  "button",
9339
9745
  {
@@ -9364,7 +9770,7 @@ function $r({ label: e, onClick: t }) {
9364
9770
  }
9365
9771
  );
9366
9772
  }
9367
- function Wr({ label: e, iconColor: t, onClick: r }) {
9773
+ function _r({ label: e, iconColor: t, onClick: r }) {
9368
9774
  return /* @__PURE__ */ n(
9369
9775
  "button",
9370
9776
  {
@@ -9388,17 +9794,17 @@ function Wr({ label: e, iconColor: t, onClick: r }) {
9388
9794
  }
9389
9795
  );
9390
9796
  }
9391
- const ht = "var(--lucent-space-6)", Or = 40, Hr = 120;
9392
- function Vr(e) {
9797
+ const ht = "var(--lucent-space-6)", Yr = 40, Kr = 120;
9798
+ function Xr(e) {
9393
9799
  const t = {
9394
9800
  position: "fixed",
9395
9801
  zIndex: 9999,
9396
9802
  pointerEvents: "none",
9397
9803
  boxSizing: "border-box"
9398
9804
  };
9399
- return Dt(e) ? t.top = Or : t.top = `calc(100vh - ${Hr}px)`, e.endsWith("left") ? t.left = ht : e.endsWith("right") ? t.right = ht : (t.left = "50%", t.transform = "translateX(-50%)"), t;
9805
+ return Dt(e) ? t.top = Yr : t.top = `calc(100vh - ${Kr}px)`, e.endsWith("left") ? t.left = ht : e.endsWith("right") ? t.right = ht : (t.left = "50%", t.transform = "translateX(-50%)"), t;
9400
9806
  }
9401
- function jr({ toasts: e, position: t, onDismiss: r, portalContainer: o }) {
9807
+ function Jr({ toasts: e, position: t, onDismiss: r, portalContainer: o }) {
9402
9808
  const [a, i] = z(!1), [l, s] = z(void 0), c = ee((p) => {
9403
9809
  p && s(p.offsetHeight);
9404
9810
  }, []), d = Dt(t), u = e.filter((p) => p.phase !== "exiting"), f = e.filter((p) => p.phase === "exiting");
@@ -9411,7 +9817,7 @@ function jr({ toasts: e, position: t, onDismiss: r, portalContainer: o }) {
9411
9817
  h.current = setTimeout(() => {
9412
9818
  i(!1), h.current = null;
9413
9819
  }, 150);
9414
- }, []), v = /* @__PURE__ */ n("div", { style: Vr(t), children: /* @__PURE__ */ n(
9820
+ }, []), b = /* @__PURE__ */ n("div", { style: Xr(t), children: /* @__PURE__ */ n(
9415
9821
  "div",
9416
9822
  {
9417
9823
  onMouseEnter: m,
@@ -9426,8 +9832,8 @@ function jr({ toasts: e, position: t, onDismiss: r, portalContainer: o }) {
9426
9832
  marginTop: a && !d ? l ?? 0 : 0,
9427
9833
  transition: "transform var(--lucent-duration-base) var(--lucent-easing-emphasized), margin var(--lucent-duration-base) var(--lucent-easing-emphasized), gap var(--lucent-duration-base) var(--lucent-easing-emphasized)"
9428
9834
  }, children: [
9429
- u.map((p, b) => {
9430
- const k = u.length - 1 - b, x = !a && k > Fr, M = k * Lr, S = d ? M : -M, A = a ? 1 : 1 - k * Rr, L = a ? 1 : Math.max(0, 1 - k * Pr), C = p.phase === "entering", D = k === 0, $ = !a && !D;
9835
+ u.map((p, v) => {
9836
+ const k = u.length - 1 - v, x = !a && k > jr, M = k * Or, S = d ? M : -M, A = a ? 1 : 1 - k * Hr, R = a ? 1 : Math.max(0, 1 - k * Vr), C = p.phase === "entering", D = k === 0, $ = !a && !D;
9431
9837
  return /* @__PURE__ */ n(
9432
9838
  "div",
9433
9839
  {
@@ -9444,7 +9850,7 @@ function jr({ toasts: e, position: t, onDismiss: r, portalContainer: o }) {
9444
9850
  ...!a && !D && (d ? { bottom: 0 } : { top: 0 }),
9445
9851
  zIndex: 100 - k,
9446
9852
  transform: C ? `translateY(${d ? "-20px" : "20px"}) scale(0.96)` : a ? void 0 : `translateY(${S}px) scaleX(${A})`,
9447
- opacity: C || p.phase === "exiting" ? 0 : L,
9853
+ opacity: C || p.phase === "exiting" ? 0 : R,
9448
9854
  transformOrigin: d ? "bottom center" : "top center",
9449
9855
  transition: C ? "none" : "transform var(--lucent-duration-base) var(--lucent-easing-emphasized), opacity var(--lucent-duration-base) var(--lucent-easing-default)",
9450
9856
  pointerEvents: x ? "none" : "auto",
@@ -9485,9 +9891,9 @@ function jr({ toasts: e, position: t, onDismiss: r, portalContainer: o }) {
9485
9891
  ] })
9486
9892
  }
9487
9893
  ) });
9488
- return de(v, o ?? document.body);
9894
+ return de(b, o ?? document.body);
9489
9895
  }
9490
- function cs({
9896
+ function ks({
9491
9897
  children: e,
9492
9898
  position: t = "bottom-right",
9493
9899
  duration: r = 5e3,
@@ -9500,9 +9906,9 @@ function cs({
9500
9906
  return !h || h.phase === "exiting" ? f : f.map((m) => m.id === u ? { ...m, phase: "exiting" } : m);
9501
9907
  }), setTimeout(() => {
9502
9908
  l((f) => f.filter((h) => h.id !== u));
9503
- }, qr);
9909
+ }, Wr);
9504
9910
  }, []), c = ee((u) => {
9505
- const f = Br(), h = {
9911
+ const f = $r(), h = {
9506
9912
  id: f,
9507
9913
  title: u.title,
9508
9914
  variant: u.variant ?? "default",
@@ -9513,11 +9919,11 @@ function cs({
9513
9919
  phase: "entering"
9514
9920
  };
9515
9921
  return l((m) => {
9516
- const T = [...m, h], v = T.filter((p) => p.phase !== "exiting");
9517
- if (v.length > o) {
9518
- const p = v.slice(0, v.length - o);
9519
- for (const b of p)
9520
- setTimeout(() => s(b.id), 0);
9922
+ const T = [...m, h], b = T.filter((p) => p.phase !== "exiting");
9923
+ if (b.length > o) {
9924
+ const p = b.slice(0, b.length - o);
9925
+ for (const v of p)
9926
+ setTimeout(() => s(v.id), 0);
9521
9927
  }
9522
9928
  return T;
9523
9929
  }), requestAnimationFrame(() => {
@@ -9541,7 +9947,7 @@ function cs({
9541
9947
  return /* @__PURE__ */ y(Mt.Provider, { value: d, children: [
9542
9948
  e,
9543
9949
  i.length > 0 && /* @__PURE__ */ n(
9544
- jr,
9950
+ Jr,
9545
9951
  {
9546
9952
  toasts: i,
9547
9953
  position: t,
@@ -9551,7 +9957,7 @@ function cs({
9551
9957
  )
9552
9958
  ] });
9553
9959
  }
9554
- const ds = {
9960
+ const Ss = {
9555
9961
  id: "toast",
9556
9962
  name: "Toast",
9557
9963
  tier: "molecule",
@@ -9748,7 +10154,7 @@ dismiss(id);`
9748
10154
  ],
9749
10155
  notes: 'Each toast uses role="status" with aria-live="polite" so screen readers announce the content without interrupting the current task. This is appropriate for non-urgent status messages like "Changes saved" or "Profile updated". For truly urgent errors that must interrupt the user, consider wrapping the ToastProvider output in a role="alert" region or using the Alert component instead. The dismiss button carries aria-label="Dismiss" for screen reader clarity. Stacked toasts behind the front toast are marked aria-hidden="true" to prevent screen readers from announcing duplicate or hidden content. When the stack expands on hover, aria-hidden is removed so all toasts become accessible.'
9750
10156
  }
9751
- }, Ur = {
10157
+ }, Zr = {
9752
10158
  fontFamilyBase: '"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
9753
10159
  fontFamilyMono: '"DM Mono", "Fira Code", "Cascadia Code", monospace',
9754
10160
  fontFamilyDisplay: '"Georama", "DM Sans", sans-serif',
@@ -9769,7 +10175,7 @@ dismiss(id);`
9769
10175
  letterSpacingTight: "-0.02em",
9770
10176
  letterSpacingBase: "0em",
9771
10177
  letterSpacingWide: "0.04em"
9772
- }, Gr = {
10178
+ }, Qr = {
9773
10179
  space0: "0px",
9774
10180
  space1: "0.25rem",
9775
10181
  space2: "0.5rem",
@@ -9783,38 +10189,38 @@ dismiss(id);`
9783
10189
  space16: "4rem",
9784
10190
  space20: "5rem",
9785
10191
  space24: "6rem"
9786
- }, _r = {
10192
+ }, eo = {
9787
10193
  radiusNone: "0px",
9788
10194
  radiusSm: "0.25rem",
9789
10195
  radiusMd: "0.375rem",
9790
10196
  radiusLg: "0.5rem",
9791
10197
  radiusXl: "0.75rem",
9792
10198
  radiusFull: "9999px"
9793
- }, Yr = {
10199
+ }, to = {
9794
10200
  durationFast: "100ms",
9795
10201
  durationBase: "200ms",
9796
10202
  durationSlow: "350ms",
9797
10203
  easingDefault: "cubic-bezier(0.4, 0, 0.2, 1)",
9798
10204
  easingEmphasized: "cubic-bezier(0.2, 0, 0, 1)",
9799
10205
  easingDecelerate: "cubic-bezier(0, 0, 0.2, 1)"
9800
- }, Kr = {
10206
+ }, no = {
9801
10207
  shadowNone: "none",
9802
10208
  shadowSm: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
9803
10209
  shadowMd: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
9804
10210
  shadowLg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
9805
10211
  shadowXl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"
9806
- }, Xr = {
10212
+ }, ao = {
9807
10213
  shadowNone: "none",
9808
10214
  shadowSm: "0 1px 2px 0 rgb(0 0 0 / 0.3)",
9809
10215
  shadowMd: "0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4)",
9810
10216
  shadowLg: "0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.4)",
9811
10217
  shadowXl: "0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.5)"
9812
10218
  }, Fe = {
9813
- ...Ur,
9814
- ...Gr,
9815
- ..._r,
9816
- ...Yr,
9817
- ...Kr,
10219
+ ...Zr,
10220
+ ...Qr,
10221
+ ...eo,
10222
+ ...to,
10223
+ ...no,
9818
10224
  // Backgrounds — page/layout layer only
9819
10225
  bgBase: "#ffffff",
9820
10226
  bgSubtle: "#f9fafb",
@@ -9863,16 +10269,16 @@ dismiss(id);`
9863
10269
  // Focus
9864
10270
  focusRing: "#111827"
9865
10271
  };
9866
- function Jr(e) {
10272
+ function ro(e) {
9867
10273
  const t = parseInt(e.slice(1, 3), 16), r = parseInt(e.slice(3, 5), 16), o = parseInt(e.slice(5, 7), 16);
9868
10274
  return { r: t, g: r, b: o };
9869
10275
  }
9870
- function Zr({ r: e, g: t, b: r }) {
10276
+ function oo({ r: e, g: t, b: r }) {
9871
10277
  const o = (a) => a.toString(16).padStart(2, "0");
9872
10278
  return `#${o(e)}${o(t)}${o(r)}`;
9873
10279
  }
9874
10280
  function le(e) {
9875
- const { r: t, g: r, b: o } = Jr(e), a = t / 255, i = r / 255, l = o / 255, s = Math.max(a, i, l), c = Math.min(a, i, l);
10281
+ const { r: t, g: r, b: o } = ro(e), a = t / 255, i = r / 255, l = o / 255, s = Math.max(a, i, l), c = Math.min(a, i, l);
9876
10282
  let d = 0, u = 0;
9877
10283
  const f = (s + c) / 2;
9878
10284
  if (s !== c) {
@@ -9896,17 +10302,17 @@ function ie(e, t, r) {
9896
10302
  e = (e % 360 + 360) % 360, t = Math.min(1, Math.max(0, t)), r = Math.min(1, Math.max(0, r));
9897
10303
  const o = (1 - Math.abs(2 * r - 1)) * t, a = o * (1 - Math.abs(e / 60 % 2 - 1)), i = r - o / 2;
9898
10304
  let l = 0, s = 0, c = 0;
9899
- return e < 60 ? (l = o, s = a) : e < 120 ? (l = a, s = o) : e < 180 ? (s = o, c = a) : e < 240 ? (s = a, c = o) : e < 300 ? (l = a, c = o) : (l = o, c = a), Zr({ r: Math.round((l + i) * 255), g: Math.round((s + i) * 255), b: Math.round((c + i) * 255) });
10305
+ return e < 60 ? (l = o, s = a) : e < 120 ? (l = a, s = o) : e < 180 ? (s = o, c = a) : e < 240 ? (s = a, c = o) : e < 300 ? (l = a, c = o) : (l = o, c = a), oo({ r: Math.round((l + i) * 255), g: Math.round((s + i) * 255), b: Math.round((c + i) * 255) });
9900
10306
  }
9901
10307
  function K(e, t) {
9902
10308
  const [r, o, a] = le(e);
9903
10309
  return ie(r, o, Math.min(1, Math.max(0, a + t)));
9904
10310
  }
9905
- const Qr = 222, eo = 0.12;
10311
+ const io = 222, so = 0.12;
9906
10312
  function zt(e, t) {
9907
- return t < 0.04 ? [Qr, eo] : [e, t];
10313
+ return t < 0.04 ? [io, so] : [e, t];
9908
10314
  }
9909
- function to(e) {
10315
+ function lo(e) {
9910
10316
  const [t, r, o] = le(e), [a, i] = zt(t, r);
9911
10317
  return ie(a, i, Math.max(0.04, Math.min(0.2, 0.07 + (1 - o))));
9912
10318
  }
@@ -9922,13 +10328,13 @@ function me(e) {
9922
10328
  const [t, r, o] = le(e);
9923
10329
  return ie(t, r, Math.max(0.02, Math.min(0.98, 1 - o)));
9924
10330
  }
9925
- function no(e) {
9926
- const t = to(e.bgBase), [r, o, a] = le(t), i = (l) => ie(r, o, Math.min(0.25, a + l));
10331
+ function co(e) {
10332
+ const t = lo(e.bgBase), [r, o, a] = le(t), i = (l) => ie(r, o, Math.min(0.25, a + l));
9927
10333
  return {
9928
10334
  // ── Non-color tokens: carry over from light unchanged ──────────────────
9929
10335
  ...e,
9930
10336
  // ── Shadows: dark variants have higher opacity for visibility ───────────
9931
- ...Xr,
10337
+ ...ao,
9932
10338
  // ── Backgrounds ─────────────────────────────────────────────────────────
9933
10339
  bgBase: t,
9934
10340
  bgSubtle: i(0.02),
@@ -9977,60 +10383,60 @@ function no(e) {
9977
10383
  focusRing: me(e.focusRing)
9978
10384
  };
9979
10385
  }
9980
- const At = no(Fe);
9981
- function ao(e) {
10386
+ const At = co(Fe);
10387
+ function uo(e) {
9982
10388
  return "--lucent-" + e.replace(/([A-Z])/g, (t) => `-${t.toLowerCase()}`).replace(/([a-z])(\d)/g, (t, r, o) => `${r}-${o}`);
9983
10389
  }
9984
- function ro(e, t = ":root") {
9985
- const r = Object.entries(e).map(([o, a]) => ` ${ao(o)}: ${a};`).join(`
10390
+ function po(e, t = ":root") {
10391
+ const r = Object.entries(e).map(([o, a]) => ` ${uo(o)}: ${a};`).join(`
9986
10392
  `);
9987
10393
  return `${t} {
9988
10394
  ${r}
9989
10395
  }`;
9990
10396
  }
9991
- function oo(e) {
10397
+ function fo(e) {
9992
10398
  const t = parseInt(e.slice(1, 3), 16) / 255, r = parseInt(e.slice(3, 5), 16) / 255, o = parseInt(e.slice(5, 7), 16) / 255, a = (i) => i <= 0.03928 ? i / 12.92 : Math.pow((i + 0.055) / 1.055, 2.4);
9993
10399
  return 0.2126 * a(t) + 0.7152 * a(r) + 0.0722 * a(o);
9994
10400
  }
9995
- const io = 0.2126729, so = 0.7151522, lo = 0.072175, co = 0.56, uo = 0.57, po = 0.65, fo = 0.62, mt = 0.022, ho = 1.414, mo = 1.14, go = 1.14, gt = 0.027, bt = 0.027;
9996
- function vt(e) {
10401
+ const ho = 0.2126729, mo = 0.7151522, go = 0.072175, vo = 0.56, bo = 0.57, yo = 0.65, xo = 0.62, mt = 0.022, wo = 1.414, ko = 1.14, So = 1.14, gt = 0.027, vt = 0.027;
10402
+ function bt(e) {
9997
10403
  const t = parseInt(e.slice(1, 3), 16) / 255, r = parseInt(e.slice(3, 5), 16) / 255, o = parseInt(e.slice(5, 7), 16) / 255, a = Math.pow(t, 2.4), i = Math.pow(r, 2.4), l = Math.pow(o, 2.4);
9998
- let s = io * a + so * i + lo * l;
9999
- return s < 0 && (s = 0), s < mt ? s + Math.pow(mt - s, ho) : s;
10404
+ let s = ho * a + mo * i + go * l;
10405
+ return s < 0 && (s = 0), s < mt ? s + Math.pow(mt - s, wo) : s;
10000
10406
  }
10001
- function Re(e, t) {
10002
- const r = vt(e), o = vt(t);
10407
+ function Le(e, t) {
10408
+ const r = bt(e), o = bt(t);
10003
10409
  let a;
10004
10410
  if (r > o) {
10005
- const i = (Math.pow(r, co) - Math.pow(o, uo)) * mo;
10411
+ const i = (Math.pow(r, vo) - Math.pow(o, bo)) * ko;
10006
10412
  a = i < gt ? 0 : i - gt;
10007
10413
  } else {
10008
- const i = (Math.pow(r, po) - Math.pow(o, fo)) * go;
10009
- a = i > -bt ? 0 : i + bt;
10414
+ const i = (Math.pow(r, yo) - Math.pow(o, xo)) * So;
10415
+ a = i > -vt ? 0 : i + vt;
10010
10416
  }
10011
10417
  return a * 100;
10012
10418
  }
10013
10419
  function Et(e) {
10014
- const t = Math.abs(Re(e, "#ffffff")), r = Math.abs(Re(e, "#000000"));
10420
+ const t = Math.abs(Le(e, "#ffffff")), r = Math.abs(Le(e, "#000000"));
10015
10421
  return t >= r ? "#ffffff" : "#000000";
10016
10422
  }
10017
- function bo(e, t, r = 60) {
10018
- if (Math.abs(Re(e, t)) >= r) return e;
10423
+ function To(e, t, r = 60) {
10424
+ if (Math.abs(Le(e, t)) >= r) return e;
10019
10425
  const o = parseInt(e.slice(1, 3), 16) / 255, a = parseInt(e.slice(3, 5), 16) / 255, i = parseInt(e.slice(5, 7), 16) / 255, l = Math.max(o, a, i), s = Math.min(o, a, i);
10020
10426
  let c = 0, d = 0, u = (l + s) / 2;
10021
10427
  if (l !== s) {
10022
10428
  const m = l - s;
10023
10429
  d = u > 0.5 ? m / (2 - l - s) : m / (l + s), l === o ? c = ((a - i) / m + (a < i ? 6 : 0)) / 6 : l === a ? c = ((i - o) / m + 2) / 6 : c = ((o - a) / m + 4) / 6;
10024
10430
  }
10025
- const h = oo(t) > 0.5 ? -5e-3 : 5e-3;
10431
+ const h = fo(t) > 0.5 ? -5e-3 : 5e-3;
10026
10432
  for (let m = 0; m < 100; m++) {
10027
10433
  u = Math.min(1, Math.max(0, u + h));
10028
- const T = vo(c, d, u);
10029
- if (Math.abs(Re(T, t)) >= r) return T;
10434
+ const T = Co(c, d, u);
10435
+ if (Math.abs(Le(T, t)) >= r) return T;
10030
10436
  }
10031
10437
  return e;
10032
10438
  }
10033
- function vo(e, t, r) {
10439
+ function Co(e, t, r) {
10034
10440
  const o = (c, d, u) => (u < 0 && (u += 1), u > 1 && (u -= 1), u < 0.16666666666666666 ? c + (d - c) * 6 * u : u < 0.5 ? d : u < 0.6666666666666666 ? c + (d - c) * (0.6666666666666666 - u) * 6 : c);
10035
10441
  let a, i, l;
10036
10442
  if (t === 0)
@@ -10042,7 +10448,7 @@ function vo(e, t, r) {
10042
10448
  const s = (c) => Math.round(c * 255).toString(16).padStart(2, "0");
10043
10449
  return `#${s(a)}${s(i)}${s(l)}`;
10044
10450
  }
10045
- function yo(e, t) {
10451
+ function Io(e, t) {
10046
10452
  const [r, o, a] = le(e);
10047
10453
  return t ? ie(r, o * 0.3, Math.min(1, a + (1 - a) * 0.85)) : ie(r, o, Math.min(0.25, a + 0.04));
10048
10454
  }
@@ -10058,16 +10464,16 @@ function De(e, t) {
10058
10464
  const [r, o] = le(e);
10059
10465
  return ie(r, o, t ? Pe.text.light : Pe.text.dark);
10060
10466
  }
10061
- function Bt(e, t, r) {
10467
+ function qt(e, t, r) {
10062
10468
  const o = {}, a = r === "light";
10063
10469
  if ("borderDefault" in e && ("borderSubtle" in e || (o.borderSubtle = K(t.borderDefault, a ? 0.05 : -0.02)), "borderStrong" in e || (o.borderStrong = K(t.borderDefault, a ? -0.27 : 0.19))), "bgBase" in e && ("bgSubtle" in e || (o.bgSubtle = K(t.bgBase, a ? -0.02 : 0.02)), "surfaceTint" in e || (o.surfaceTint = K(t.bgBase, a ? -0.04 : 0.03)), !("surface" in e))) {
10064
- const i = yo(t.bgBase, a);
10470
+ const i = Io(t.bgBase, a);
10065
10471
  o.surface = i, "surfaceSecondary" in e || (o.surfaceSecondary = K(i, a ? -0.04 : 0.03)), "surfaceRaised" in e || (o.surfaceRaised = K(i, a ? 0 : 0.06)), "surfaceOverlay" in e || (o.surfaceOverlay = K(i, a ? 0 : 0.06));
10066
10472
  }
10067
10473
  return "surface" in e && ("surfaceSecondary" in e || (o.surfaceSecondary = K(t.surface, a ? -0.04 : 0.03)), "surfaceRaised" in e || (o.surfaceRaised = K(t.surface, a ? 0 : 0.06)), "surfaceOverlay" in e || (o.surfaceOverlay = K(t.surface, a ? 0 : 0.06))), "textPrimary" in e && ("textSecondary" in e || (o.textSecondary = K(t.textPrimary, a ? 0.2 : -0.15)), "textDisabled" in e || (o.textDisabled = K(t.textPrimary, a ? 0.35 : -0.4))), "accentDefault" in e && ("accentHover" in e || (o.accentHover = K(t.accentDefault, a ? 0.05 : -0.07)), "accentActive" in e || (o.accentActive = K(t.accentDefault, a ? 0.13 : -0.14)), "accentSubtle" in e || (o.accentSubtle = K(t.accentDefault, a ? 0.85 : -0.6))), "successDefault" in e && ("successSubtle" in e || (o.successSubtle = Me(t.successDefault, a)), "successText" in e || (o.successText = De(t.successDefault, a))), "warningDefault" in e && ("warningSubtle" in e || (o.warningSubtle = Me(t.warningDefault, a)), "warningText" in e || (o.warningText = De(t.warningDefault, a))), "dangerDefault" in e && ("dangerHover" in e || (o.dangerHover = K(t.dangerDefault, a ? 0.05 : -0.07)), "dangerSubtle" in e || (o.dangerSubtle = Me(t.dangerDefault, a)), "dangerText" in e || (o.dangerText = De(t.dangerDefault, a))), "infoDefault" in e && ("infoSubtle" in e || (o.infoSubtle = Me(t.infoDefault, a)), "infoText" in e || (o.infoText = De(t.infoDefault, a))), o;
10068
10474
  }
10069
- function qt(e, t = "light") {
10070
- const o = { ...t === "dark" ? At : Fe, ...e }, a = Bt(e, o, t), i = t === "light" ? K(o.accentDefault, -0.15) : K(o.accentDefault, 0.15);
10475
+ function Bt(e, t = "light") {
10476
+ const o = { ...t === "dark" ? At : Fe, ...e }, a = qt(e, o, t), i = t === "light" ? K(o.accentDefault, -0.15) : K(o.accentDefault, 0.15);
10071
10477
  return {
10072
10478
  ...o,
10073
10479
  ...a,
@@ -10075,7 +10481,7 @@ function qt(e, t = "light") {
10075
10481
  accentBorder: i
10076
10482
  };
10077
10483
  }
10078
- const Lt = {
10484
+ const Rt = {
10079
10485
  name: "default",
10080
10486
  light: {
10081
10487
  bgBase: "#ffffff",
@@ -10097,7 +10503,7 @@ const Lt = {
10097
10503
  dangerDefault: "#ef4444",
10098
10504
  infoDefault: "#3b82f6"
10099
10505
  }
10100
- }, xo = {
10506
+ }, Mo = {
10101
10507
  name: "brand",
10102
10508
  light: {
10103
10509
  bgBase: "#fffefb",
@@ -10119,7 +10525,7 @@ const Lt = {
10119
10525
  dangerDefault: "#ef4444",
10120
10526
  infoDefault: "#3b82f6"
10121
10527
  }
10122
- }, Rt = {
10528
+ }, Lt = {
10123
10529
  name: "indigo",
10124
10530
  light: {
10125
10531
  bgBase: "#fdfcff",
@@ -10141,7 +10547,7 @@ const Lt = {
10141
10547
  dangerDefault: "#ef4444",
10142
10548
  infoDefault: "#3b82f6"
10143
10549
  }
10144
- }, wo = {
10550
+ }, Do = {
10145
10551
  name: "violet",
10146
10552
  light: {
10147
10553
  bgBase: "#fdfcfe",
@@ -10163,7 +10569,7 @@ const Lt = {
10163
10569
  dangerDefault: "#ef4444",
10164
10570
  infoDefault: "#3b82f6"
10165
10571
  }
10166
- }, ko = {
10572
+ }, zo = {
10167
10573
  name: "emerald",
10168
10574
  light: {
10169
10575
  bgBase: "#fbfefc",
@@ -10185,7 +10591,7 @@ const Lt = {
10185
10591
  dangerDefault: "#ef4444",
10186
10592
  infoDefault: "#3b82f6"
10187
10593
  }
10188
- }, So = {
10594
+ }, Ao = {
10189
10595
  name: "teal",
10190
10596
  light: {
10191
10597
  bgBase: "#fbfefd",
@@ -10229,7 +10635,7 @@ const Lt = {
10229
10635
  dangerDefault: "#ef4444",
10230
10636
  infoDefault: "#3b82f6"
10231
10637
  }
10232
- }, To = {
10638
+ }, Eo = {
10233
10639
  name: "coral",
10234
10640
  light: {
10235
10641
  bgBase: "#fffcfb",
@@ -10251,7 +10657,7 @@ const Lt = {
10251
10657
  dangerDefault: "#ef4444",
10252
10658
  infoDefault: "#3b82f6"
10253
10659
  }
10254
- }, Co = {
10660
+ }, qo = {
10255
10661
  name: "amber",
10256
10662
  light: {
10257
10663
  bgBase: "#fffefb",
@@ -10273,7 +10679,7 @@ const Lt = {
10273
10679
  dangerDefault: "#ef4444",
10274
10680
  infoDefault: "#3b82f6"
10275
10681
  }
10276
- }, Io = {
10682
+ }, Bo = {
10277
10683
  name: "ocean",
10278
10684
  light: {
10279
10685
  bgBase: "#fbfdff",
@@ -10295,7 +10701,7 @@ const Lt = {
10295
10701
  dangerDefault: "#ef4444",
10296
10702
  infoDefault: "#3b82f6"
10297
10703
  }
10298
- }, Mo = {
10704
+ }, Ro = {
10299
10705
  name: "slate",
10300
10706
  light: {
10301
10707
  bgBase: "#fafbfc",
@@ -10317,7 +10723,7 @@ const Lt = {
10317
10723
  dangerDefault: "#ef4444",
10318
10724
  infoDefault: "#3b82f6"
10319
10725
  }
10320
- }, Do = {
10726
+ }, Lo = {
10321
10727
  name: "sage",
10322
10728
  light: {
10323
10729
  bgBase: "#fbfcfb",
@@ -10468,77 +10874,77 @@ const Lt = {
10468
10874
  shadowLg: "rgba(0, 0, 0, 0.3) 0px 8px 24px, rgba(0, 0, 0, 0.25) 0px 16px 48px",
10469
10875
  shadowXl: "rgba(0, 0, 0, 0.35) 0px 12px 32px, rgba(0, 0, 0, 0.3) 0px 24px 64px"
10470
10876
  }
10471
- }, zo = {
10877
+ }, Po = {
10472
10878
  name: "modern",
10473
- palette: Rt,
10879
+ palette: Lt,
10474
10880
  shape: Nt,
10475
10881
  density: Ot,
10476
10882
  shadow: jt
10477
- }, Ao = {
10883
+ }, Fo = {
10478
10884
  name: "enterprise",
10479
- palette: Lt,
10885
+ palette: Rt,
10480
10886
  shape: Ft,
10481
10887
  density: Wt,
10482
10888
  shadow: Vt
10483
- }, Eo = {
10889
+ }, No = {
10484
10890
  name: "playful",
10485
10891
  palette: Pt,
10486
10892
  shape: $t,
10487
10893
  density: Ht,
10488
10894
  shadow: Ut
10489
- }, Bo = {
10490
- default: Lt,
10491
- brand: xo,
10492
- indigo: Rt,
10493
- violet: wo,
10494
- emerald: ko,
10495
- teal: So,
10895
+ }, $o = {
10896
+ default: Rt,
10897
+ brand: Mo,
10898
+ indigo: Lt,
10899
+ violet: Do,
10900
+ emerald: zo,
10901
+ teal: Ao,
10496
10902
  rose: Pt,
10497
- coral: To,
10498
- amber: Co,
10499
- ocean: Io,
10500
- slate: Mo,
10501
- sage: Do
10502
- }, qo = {
10903
+ coral: Eo,
10904
+ amber: qo,
10905
+ ocean: Bo,
10906
+ slate: Ro,
10907
+ sage: Lo
10908
+ }, Wo = {
10503
10909
  sharp: Ft,
10504
10910
  rounded: Nt,
10505
10911
  pill: $t
10506
- }, Lo = {
10912
+ }, Oo = {
10507
10913
  compact: Wt,
10508
10914
  default: Ot,
10509
10915
  spacious: Ht
10510
- }, Ro = {
10916
+ }, Ho = {
10511
10917
  flat: Vt,
10512
10918
  subtle: jt,
10513
10919
  elevated: Ut
10514
- }, Po = {
10515
- modern: zo,
10516
- enterprise: Ao,
10517
- playful: Eo
10920
+ }, Vo = {
10921
+ modern: Po,
10922
+ enterprise: Fo,
10923
+ playful: No
10518
10924
  };
10519
- function Fo(e) {
10520
- return typeof e == "string" ? Bo[e] : e;
10925
+ function jo(e) {
10926
+ return typeof e == "string" ? $o[e] : e;
10521
10927
  }
10522
- function No(e) {
10523
- return typeof e == "string" ? qo[e] : e;
10928
+ function Uo(e) {
10929
+ return typeof e == "string" ? Wo[e] : e;
10524
10930
  }
10525
- function $o(e) {
10526
- return typeof e == "string" ? Lo[e] : e;
10931
+ function Go(e) {
10932
+ return typeof e == "string" ? Oo[e] : e;
10527
10933
  }
10528
- function Wo(e) {
10529
- return typeof e == "string" ? Ro[e] : e;
10934
+ function _o(e) {
10935
+ return typeof e == "string" ? Ho[e] : e;
10530
10936
  }
10531
- function Oo(e, t) {
10937
+ function Yo(e, t) {
10532
10938
  let r, o, a, i;
10533
10939
  if (typeof e == "string") {
10534
- const s = Po[e];
10940
+ const s = Vo[e];
10535
10941
  if (!s) return {};
10536
10942
  r = s.palette, o = s.shape, a = s.density, i = s.shadow;
10537
10943
  } else
10538
- e.palette !== void 0 && (r = Fo(e.palette)), e.shape !== void 0 && (o = No(e.shape)), e.density !== void 0 && (a = $o(e.density)), e.shadow !== void 0 && (i = Wo(e.shadow));
10944
+ e.palette !== void 0 && (r = jo(e.palette)), e.shape !== void 0 && (o = Uo(e.shape)), e.density !== void 0 && (a = Go(e.density)), e.shadow !== void 0 && (i = _o(e.shadow));
10539
10945
  const l = {};
10540
10946
  if (r) {
10541
- const s = qt(r[t], t);
10947
+ const s = Bt(r[t], t);
10542
10948
  Object.assign(l, s);
10543
10949
  }
10544
10950
  return o && Object.assign(l, o.tokens), a && Object.assign(l, a.tokens), i && Object.assign(l, i[t]), l;
@@ -10547,34 +10953,34 @@ const Gt = ye({
10547
10953
  theme: "light",
10548
10954
  tokens: Fe
10549
10955
  });
10550
- function us({
10956
+ function Ts({
10551
10957
  theme: e = "light",
10552
10958
  preset: t,
10553
10959
  tokens: r,
10554
10960
  anchors: o,
10555
10961
  children: a
10556
10962
  }) {
10557
- const i = ve().replace(/:/g, ""), l = t ? Oo(t, e) : void 0, s = (() => {
10963
+ const i = be().replace(/:/g, ""), l = t ? Yo(t, e) : void 0, s = (() => {
10558
10964
  if (o) {
10559
- const p = qt(o, e);
10965
+ const p = Bt(o, e);
10560
10966
  if (l) {
10561
- const b = {};
10967
+ const v = {};
10562
10968
  for (const [k, x] of Object.entries(l))
10563
- (k.startsWith("space") || k.startsWith("radius") || k.startsWith("shadow") || k.startsWith("duration") || k.startsWith("easing")) && (b[k] = x);
10564
- return { ...p, ...b };
10969
+ (k.startsWith("space") || k.startsWith("radius") || k.startsWith("shadow") || k.startsWith("duration") || k.startsWith("easing")) && (v[k] = x);
10970
+ return { ...p, ...v };
10565
10971
  }
10566
10972
  return p;
10567
10973
  }
10568
- const d = e === "dark" ? At : Fe, u = l ? { ...l, ...r } : r, f = u ? { ...d, ...u } : d, h = u ? Bt(u, f, e) : {}, m = (u == null ? void 0 : u.accentBorder) ?? (e === "light" ? K(f.accentDefault, -0.15) : K(f.accentDefault, 0.15)), T = (u == null ? void 0 : u.textOnAccent) ?? Et(f.accentDefault), v = bo(f.accentDefault, T);
10974
+ const d = e === "dark" ? At : Fe, u = l ? { ...l, ...r } : r, f = u ? { ...d, ...u } : d, h = u ? qt(u, f, e) : {}, m = (u == null ? void 0 : u.accentBorder) ?? (e === "light" ? K(f.accentDefault, -0.15) : K(f.accentDefault, 0.15)), T = (u == null ? void 0 : u.textOnAccent) ?? Et(f.accentDefault), b = To(f.accentDefault, T);
10569
10975
  return {
10570
10976
  ...f,
10571
10977
  ...h,
10572
- accentDefault: v,
10978
+ accentDefault: b,
10573
10979
  textOnAccent: T,
10574
10980
  accentBorder: m
10575
10981
  };
10576
10982
  })(), c = `html { font-size: 14px; }
10577
- ` + ro(s, ":root");
10983
+ ` + po(s, ":root");
10578
10984
  return se(() => {
10579
10985
  let d = document.getElementById(`lucent-tokens-${i}`);
10580
10986
  return d || (d = document.createElement("style"), d.id = `lucent-tokens-${i}`, document.head.appendChild(d)), d.textContent = c, () => {
@@ -10583,10 +10989,10 @@ function us({
10583
10989
  };
10584
10990
  }, [i, c]), /* @__PURE__ */ n(Gt.Provider, { value: { theme: e, tokens: s }, children: a });
10585
10991
  }
10586
- function ps() {
10992
+ function Cs() {
10587
10993
  return fe(Gt);
10588
10994
  }
10589
- const fs = {
10995
+ const Is = {
10590
10996
  bgBase: {
10591
10997
  description: "Main page/canvas background. The lowest elevation layer — everything sits on top of this. When bgBase is customized, `surface` and `surfaceTint` are auto-derived so the entire card elevation hierarchy (ghost → outline → filled → elevated → combo) adapts automatically.",
10592
10998
  lightGuidance: "Near-white. Typically #ffffff or a very faint tint (L > 0.96).",
@@ -10641,7 +11047,7 @@ const fs = {
10641
11047
  darkGuidance: "Slightly lighter than light-mode. createTheme() handles this automatically.",
10642
11048
  derives: ["infoSubtle", "infoText"]
10643
11049
  }
10644
- }, hs = {
11050
+ }, Ms = {
10645
11051
  id: "lucent-provider",
10646
11052
  name: "LucentProvider",
10647
11053
  tier: "provider",
@@ -10821,7 +11227,7 @@ const myTheme = createTheme({
10821
11227
  }
10822
11228
  ],
10823
11229
  compositionGraph: []
10824
- }, ms = {
11230
+ }, Ds = {
10825
11231
  accentDefault: "#e9c96b",
10826
11232
  accentHover: "#ddb84e",
10827
11233
  accentActive: "#c9a33b",
@@ -10831,7 +11237,7 @@ const myTheme = createTheme({
10831
11237
  function te(e, t) {
10832
11238
  return { field: e, message: t };
10833
11239
  }
10834
- function Ho(e) {
11240
+ function Ko(e) {
10835
11241
  const t = [];
10836
11242
  if (typeof e != "object" || e === null)
10837
11243
  return { valid: !1, errors: [te("manifest", "Must be a non-null object")] };
@@ -10848,8 +11254,8 @@ function Ho(e) {
10848
11254
  (typeof s.title != "string" || s.title === "") && t.push(te(`${c}.title`, "Must be a non-empty string")), (typeof s.code != "string" || s.code === "") && t.push(te(`${c}.code`, "Must be a non-empty string"));
10849
11255
  }) : t.push(te("usageExamples", "Must be an array")), Array.isArray(r.compositionGraph) || t.push(te("compositionGraph", "Must be an array (empty array is fine for atoms)")), typeof r.specVersion == "string" && !/^\d+\.\d+$/.test(r.specVersion) && t.push(te("specVersion", 'Must be "MAJOR.MINOR" format, e.g. "0.1"')), { valid: t.length === 0, errors: t };
10850
11256
  }
10851
- function gs(e) {
10852
- const t = Ho(e);
11257
+ function zs(e) {
11258
+ const t = Ko(e);
10853
11259
  if (!t.valid) {
10854
11260
  const r = t.errors.map((o) => ` ${o.field}: ${o.message}`).join(`
10855
11261
  `);
@@ -10857,133 +11263,139 @@ function gs(e) {
10857
11263
  ${r}`);
10858
11264
  }
10859
11265
  }
10860
- function bs(e) {
11266
+ function As(e) {
10861
11267
  if (typeof e != "object" || e === null) return !1;
10862
11268
  const t = e;
10863
11269
  return typeof t.name == "string" && typeof t.type == "string" && typeof t.required == "boolean" && typeof t.description == "string";
10864
11270
  }
10865
- const vs = "1.0", ys = "0.1.0";
11271
+ const Es = "1.0", qs = "0.1.0";
10866
11272
  export {
10867
- qi as Alert,
10868
- Li as AlertManifest,
10869
- Zo as Avatar,
10870
- Qo as AvatarManifest,
10871
- Ko as Badge,
10872
- Xo as BadgeManifest,
10873
- $i as Breadcrumb,
11273
+ Gi as Alert,
11274
+ _i as AlertManifest,
11275
+ oi as Avatar,
11276
+ ii as AvatarManifest,
11277
+ ni as Badge,
11278
+ ai as BadgeManifest,
11279
+ Zi as Breadcrumb,
10874
11280
  Ee as Button,
10875
- Go as ButtonManifest,
10876
- Jo as CHIP_MANIFEST,
10877
- Si as COLOR_PICKER_MANIFEST,
10878
- Ti as COLOR_SWATCH_MANIFEST,
10879
- Gi as COMMAND_PALETTE_MANIFEST,
10880
- Ai as Card,
10881
- Ei as CardBleed,
10882
- Bi as CardManifest,
11281
+ Qo as ButtonManifest,
11282
+ ri as CHIP_MANIFEST,
11283
+ Ai as COLOR_PICKER_MANIFEST,
11284
+ Ei as COLOR_SWATCH_MANIFEST,
11285
+ os as COMMAND_PALETTE_MANIFEST,
11286
+ Vi as Card,
11287
+ ji as CardBleed,
11288
+ Ui as CardManifest,
10883
11289
  yt as Checkbox,
10884
- ai as CheckboxManifest,
11290
+ di as CheckboxManifest,
10885
11291
  un as Chip,
10886
- xi as CodeBlock,
10887
- wi as CodeBlockManifest,
10888
- Oi as Collapsible,
11292
+ Mi as CodeBlock,
11293
+ Di as CodeBlockManifest,
11294
+ es as Collapsible,
10889
11295
  ua as ColorPicker,
10890
11296
  ze as ColorSwatch,
10891
- Ui as CommandPalette,
10892
- ji as DATA_TABLE_MANIFEST,
10893
- Xi as DATE_PICKER_MANIFEST,
10894
- Zi as DATE_RANGE_PICKER_MANIFEST,
10895
- Vi as DataTable,
10896
- Ki as DatePicker,
10897
- Ji as DateRangePicker,
10898
- ti as Divider,
10899
- ni as DividerManifest,
10900
- Ri as EmptyState,
10901
- Pi as EmptyStateManifest,
10902
- es as FILE_UPLOAD_MANIFEST,
10903
- Qi as FileUpload,
10904
- Ii as FormField,
10905
- Mi as FormFieldManifest,
10906
- hi as Icon,
10907
- mi as IconManifest,
11297
+ rs as CommandPalette,
11298
+ as as DATA_TABLE_MANIFEST,
11299
+ cs as DATE_PICKER_MANIFEST,
11300
+ us as DATE_RANGE_PICKER_MANIFEST,
11301
+ ns as DataTable,
11302
+ ls as DatePicker,
11303
+ ds as DateRangePicker,
11304
+ li as Divider,
11305
+ ci as DividerManifest,
11306
+ Yi as EmptyState,
11307
+ Ki as EmptyStateManifest,
11308
+ fs as FILE_UPLOAD_MANIFEST,
11309
+ ps as FileUpload,
11310
+ $i as FormField,
11311
+ Wi as FormFieldManifest,
11312
+ wi as Icon,
11313
+ ki as IconManifest,
10908
11314
  ce as Input,
10909
- _o as InputManifest,
10910
- ys as LUCENT_UI_VERSION,
10911
- us as LucentProvider,
10912
- hs as LucentProviderManifest,
10913
- vs as MANIFEST_SPEC_VERSION,
10914
- Yi as MULTI_SELECT_MANIFEST,
10915
- is as Menu,
10916
- os as MenuGroup,
10917
- as as MenuItem,
10918
- ss as MenuManifest,
10919
- rs as MenuSeparator,
10920
- _i as MultiSelect,
10921
- bi as NavLink,
10922
- Hi as PageLayout,
10923
- ri as Radio,
11315
+ ei as InputManifest,
11316
+ qs as LUCENT_UI_VERSION,
11317
+ Ts as LucentProvider,
11318
+ Ms as LucentProviderManifest,
11319
+ Es as MANIFEST_SPEC_VERSION,
11320
+ ss as MULTI_SELECT_MANIFEST,
11321
+ ys as Menu,
11322
+ bs as MenuGroup,
11323
+ gs as MenuItem,
11324
+ xs as MenuManifest,
11325
+ vs as MenuSeparator,
11326
+ is as MultiSelect,
11327
+ Ti as NavLink,
11328
+ ts as PageLayout,
11329
+ Fi as Progress,
11330
+ Ni as ProgressManifest,
11331
+ ui as Radio,
10924
11332
  kn as RadioGroup,
10925
- oi as RadioGroupUncontrolled,
10926
- ii as RadioManifest,
10927
- Ci as SEGMENTED_CONTROL_MANIFEST,
10928
- Di as SearchInput,
10929
- zi as SearchInputManifest,
11333
+ pi as RadioGroupUncontrolled,
11334
+ fi as RadioManifest,
11335
+ Li as Row,
11336
+ Pi as RowManifest,
11337
+ qi as SEGMENTED_CONTROL_MANIFEST,
11338
+ Oi as SearchInput,
11339
+ Hi as SearchInputManifest,
10930
11340
  kt as SegmentedControl,
10931
11341
  wt as Select,
10932
- ci as SelectManifest,
10933
- Fi as Skeleton,
10934
- Ni as SkeletonManifest,
10935
- vi as Slider,
10936
- yi as SliderManifest,
10937
- bn as Spinner,
10938
- ei as SpinnerManifest,
10939
- ns as TIMELINE_MANIFEST,
11342
+ gi as SelectManifest,
11343
+ Xi as Skeleton,
11344
+ Ji as SkeletonManifest,
11345
+ Ci as Slider,
11346
+ Ii as SliderManifest,
11347
+ vn as Spinner,
11348
+ si as SpinnerManifest,
11349
+ Bi as Stack,
11350
+ Ri as StackManifest,
11351
+ ms as TIMELINE_MANIFEST,
10940
11352
  xe as Table,
10941
- ki as TableManifest,
10942
- Wi as Tabs,
10943
- di as Tag,
10944
- ui as TagManifest,
11353
+ zi as TableManifest,
11354
+ Qi as Tabs,
11355
+ vi as Tag,
11356
+ bi as TagManifest,
10945
11357
  _ as Text,
10946
- gi as TextManifest,
11358
+ Si as TextManifest,
10947
11359
  on as Textarea,
10948
- Yo as TextareaManifest,
10949
- fs as ThemeAnchorsSpec,
10950
- ts as Timeline,
10951
- ds as ToastManifest,
10952
- cs as ToastProvider,
10953
- si as Toggle,
10954
- li as ToggleManifest,
10955
- pi as Tooltip,
10956
- fi as TooltipManifest,
10957
- gs as assertManifest,
10958
- xo as brandPalette,
10959
- ms as brandTokens,
11360
+ ti as TextareaManifest,
11361
+ Is as ThemeAnchorsSpec,
11362
+ hs as Timeline,
11363
+ Ss as ToastManifest,
11364
+ ks as ToastProvider,
11365
+ hi as Toggle,
11366
+ mi as ToggleManifest,
11367
+ yi as Tooltip,
11368
+ xi as TooltipManifest,
11369
+ zs as assertManifest,
11370
+ Mo as brandPalette,
11371
+ Ds as brandTokens,
10960
11372
  Wt as compactDensity,
10961
- qt as createTheme,
11373
+ Bt as createTheme,
10962
11374
  At as darkTokens,
10963
11375
  Ot as defaultDensity,
10964
- Lt as defaultPalette,
10965
- no as deriveDarkFromLight,
10966
- Bt as deriveTokens,
11376
+ Rt as defaultPalette,
11377
+ co as deriveDarkFromLight,
11378
+ qt as deriveTokens,
10967
11379
  Ut as elevatedShadow,
10968
- ko as emeraldPalette,
10969
- Ao as enterprisePreset,
11380
+ zo as emeraldPalette,
11381
+ Fo as enterprisePreset,
10970
11382
  Vt as flatShadow,
10971
11383
  Et as getContrastText,
10972
- Rt as indigoPalette,
10973
- bs as isValidPropDescriptor,
11384
+ Lt as indigoPalette,
11385
+ As as isValidPropDescriptor,
10974
11386
  Fe as lightTokens,
10975
- ro as makeLibraryCSS,
10976
- zo as modernPreset,
10977
- Io as oceanPalette,
11387
+ po as makeLibraryCSS,
11388
+ Po as modernPreset,
11389
+ Bo as oceanPalette,
10978
11390
  $t as pillShape,
10979
- Eo as playfulPreset,
10980
- Oo as resolvePreset,
11391
+ No as playfulPreset,
11392
+ Yo as resolvePreset,
10981
11393
  Pt as rosePalette,
10982
11394
  Nt as roundedShape,
10983
11395
  Ft as sharpShape,
10984
11396
  Ht as spaciousDensity,
10985
11397
  jt as subtleShadow,
10986
- ps as useLucent,
10987
- ls as useToast,
10988
- Ho as validateManifest
11398
+ Cs as useLucent,
11399
+ ws as useToast,
11400
+ Ko as validateManifest
10989
11401
  };