@leonardaustin/ui 0.7.1 → 0.9.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
@@ -2632,6 +2632,9 @@ var on = {
2632
2632
  return /* @__PURE__ */ v("button", {
2633
2633
  ref: u,
2634
2634
  "data-control-size": d,
2635
+ "data-variant": e,
2636
+ "data-size": t,
2637
+ "data-hide-label": p && !f ? "" : void 0,
2635
2638
  disabled: c || r,
2636
2639
  className: G("ui-sized-control inline-flex items-center justify-center rounded-md font-medium", "font-control", "transition-colors duration-[100ms] ease-out", "cursor-pointer", "disabled:cursor-not-allowed disabled:opacity-40", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", on[e], f ? cn[t] : sn[t], p && !f && dn[p]?.[t], o),
2637
2640
  ...l,
@@ -2754,7 +2757,7 @@ function xn({ options: e, value: t, onChange: n, label: r, placeholder: i = "Sel
2754
2757
  className: G("flex flex-col gap-1.5", a),
2755
2758
  ref: p,
2756
2759
  children: [r && /* @__PURE__ */ _("span", {
2757
- className: "text-text-secondary font-label text-xs font-medium",
2760
+ className: "ui-field-label font-label text-xs font-medium",
2758
2761
  children: r
2759
2762
  }), /* @__PURE__ */ v("div", {
2760
2763
  className: "relative",
@@ -2810,7 +2813,7 @@ function Sn({ min: e, max: t, step: n = 1, value: r, onChange: i, onCommit: a, l
2810
2813
  children: [(o || s) && /* @__PURE__ */ v("div", {
2811
2814
  className: "flex items-center justify-between",
2812
2815
  children: [o && /* @__PURE__ */ _("span", {
2813
- className: "text-text-secondary font-label text-xs font-medium",
2816
+ className: "ui-field-label font-label text-xs font-medium",
2814
2817
  children: o
2815
2818
  }), s && /* @__PURE__ */ _("span", {
2816
2819
  className: "text-text-primary font-data text-xs",
@@ -2864,13 +2867,13 @@ function wn({ checked: e, onChange: t, disabled: n, label: r, className: i }) {
2864
2867
  "aria-checked": e,
2865
2868
  disabled: n,
2866
2869
  onClick: () => t(!e),
2867
- className: G("relative shrink-0 rounded-full border transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", e ? "bg-accent border-accent" : "bg-bg-tertiary border-border", !n && "cursor-pointer"),
2870
+ className: G("relative shrink-0 rounded-full border transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", e ? "bg-accent border-accent" : "bg-bg-tertiary ui-switch-off", !n && "cursor-pointer"),
2868
2871
  style: {
2869
2872
  width: 36,
2870
2873
  height: 20
2871
2874
  },
2872
2875
  children: /* @__PURE__ */ _("span", {
2873
- className: "bg-control-knob absolute top-1/2 rounded-full transition-[left] duration-[100ms]",
2876
+ className: "ui-switch-knob absolute top-1/2 rounded-full transition-[left] duration-[100ms]",
2874
2877
  style: {
2875
2878
  width: 14,
2876
2879
  height: 14,
@@ -3586,6 +3589,12 @@ function Gn({ data: e, columns: t, getRowId: n, onRowClick: r, emptyMessage: a =
3586
3589
  //#endregion
3587
3590
  //#region src/components/ui/Alert.tsx
3588
3591
  var Kn = {
3592
+ neutral: {
3593
+ bg: "bg-bg-hover",
3594
+ border: "border-border",
3595
+ icon: I,
3596
+ iconColor: "text-text-tertiary"
3597
+ },
3589
3598
  success: {
3590
3599
  bg: "bg-green-muted",
3591
3600
  border: "border-green/30",
@@ -3611,26 +3620,31 @@ var Kn = {
3611
3620
  iconColor: "text-blue"
3612
3621
  }
3613
3622
  };
3614
- function qn({ type: e, title: t, children: n, dismissible: r, className: i }) {
3615
- let [a, o] = h(!1);
3616
- if (a) return null;
3617
- let s = Kn[e], c = s.icon;
3623
+ function qn({ type: e, title: t, children: n, dismissible: r, className: i, actions: a, toneBody: o = !1, ...s }) {
3624
+ let [c, l] = h(!1);
3625
+ if (c) return null;
3626
+ let u = Kn[e], d = u.icon, f = e === "neutral" ? "text-text-primary" : u.iconColor;
3618
3627
  return /* @__PURE__ */ v("div", {
3619
- className: G("flex gap-2.5 rounded-md border p-3", s.bg, s.border, i),
3628
+ ...s,
3629
+ className: G("flex gap-2.5 rounded-md border p-3", u.bg, u.border, i),
3620
3630
  children: [
3621
- /* @__PURE__ */ _(c, { className: G("mt-0.5 h-4 w-4 shrink-0", s.iconColor) }),
3631
+ /* @__PURE__ */ _(d, { className: G("mt-0.5 h-4 w-4 shrink-0", u.iconColor) }),
3622
3632
  /* @__PURE__ */ v("div", {
3623
3633
  className: "min-w-0 flex-1",
3624
3634
  children: [t && /* @__PURE__ */ _("p", {
3625
- className: "text-text-primary mb-0.5 text-xs font-semibold",
3635
+ className: G(o ? f : "text-text-primary", "mb-0.5 text-xs font-semibold"),
3626
3636
  children: t
3627
3637
  }), /* @__PURE__ */ _("div", {
3628
- className: "text-text-secondary text-xs",
3638
+ className: G(o ? f : "text-text-secondary", "text-xs"),
3629
3639
  children: n
3630
3640
  })]
3631
3641
  }),
3642
+ a ? /* @__PURE__ */ _("div", {
3643
+ className: "shrink-0 self-center",
3644
+ children: a
3645
+ }) : null,
3632
3646
  r && /* @__PURE__ */ _("button", {
3633
- onClick: () => o(!0),
3647
+ onClick: () => l(!0),
3634
3648
  className: "text-text-tertiary hover:text-text-primary flex h-5 w-5 cursor-pointer items-center justify-center rounded",
3635
3649
  "aria-label": "Dismiss",
3636
3650
  children: /* @__PURE__ */ _(V, { className: "h-3 w-3" })
@@ -3692,6 +3706,8 @@ function Yn({ name: e, meta: t, nameAppend: n, size: r = "sm", className: i }) {
3692
3706
  //#endregion
3693
3707
  //#region src/components/ui/Badge.tsx
3694
3708
  var Xn = {
3709
+ teal: "bg-teal-muted text-teal",
3710
+ rose: "bg-rose-muted text-rose",
3695
3711
  green: "bg-green-muted text-green",
3696
3712
  yellow: "bg-yellow-muted text-yellow",
3697
3713
  red: "bg-red-muted text-red",
@@ -3699,6 +3715,8 @@ var Xn = {
3699
3715
  purple: "bg-purple-muted text-purple",
3700
3716
  gray: "bg-bg-hover text-text-secondary"
3701
3717
  }, Zn = {
3718
+ teal: "bg-teal",
3719
+ rose: "bg-rose",
3702
3720
  green: "bg-green",
3703
3721
  yellow: "bg-yellow",
3704
3722
  red: "bg-red",
@@ -6617,7 +6635,7 @@ function qi({ children: e, className: t, header: n, footer: r, as: i = "div", fl
6617
6635
  children: n
6618
6636
  }),
6619
6637
  /* @__PURE__ */ _("div", {
6620
- className: G(!a && "p-3", o),
6638
+ className: G(!a && "ui-surface-body p-3", o),
6621
6639
  children: e
6622
6640
  }),
6623
6641
  r && /* @__PURE__ */ _("div", {
@@ -6782,7 +6800,7 @@ function ea({ options: e, value: t, onChange: n, onOptionChange: r, placeholder:
6782
6800
  children: [
6783
6801
  a && /* @__PURE__ */ _("span", {
6784
6802
  id: se,
6785
- className: "text-text-secondary font-label text-xs font-medium",
6803
+ className: "ui-field-label font-label text-xs font-medium",
6786
6804
  children: a
6787
6805
  }),
6788
6806
  d && /* @__PURE__ */ _("input", {
@@ -6960,7 +6978,7 @@ function ra({ controlSize: e, label: t, timeZone: n, value: r, onChange: i, plac
6960
6978
  className: "flex flex-col gap-1.5",
6961
6979
  ref: d,
6962
6980
  children: [t && /* @__PURE__ */ _("span", {
6963
- className: "text-text-secondary text-xs font-medium",
6981
+ className: "ui-field-label text-xs font-medium",
6964
6982
  children: t
6965
6983
  }), /* @__PURE__ */ v("div", {
6966
6984
  className: "relative",
@@ -7049,7 +7067,7 @@ function sa({ controlSize: e, label: t, value: n, onChange: r, placeholder: i =
7049
7067
  className: "flex flex-col gap-1.5",
7050
7068
  ref: l,
7051
7069
  children: [t && /* @__PURE__ */ _("span", {
7052
- className: "text-text-secondary text-xs font-medium",
7070
+ className: "ui-field-label text-xs font-medium",
7053
7071
  children: t
7054
7072
  }), /* @__PURE__ */ v("div", {
7055
7073
  className: "relative",
@@ -7246,7 +7264,7 @@ function ma({ controlSize: e, label: t, timeZone: n, value: r, onChange: i, plac
7246
7264
  className: "flex flex-col gap-1.5",
7247
7265
  ref: S,
7248
7266
  children: [t && /* @__PURE__ */ _("span", {
7249
- className: "text-text-secondary text-xs font-medium",
7267
+ className: "ui-field-label text-xs font-medium",
7250
7268
  children: t
7251
7269
  }), /* @__PURE__ */ v("div", {
7252
7270
  className: "relative",
@@ -7456,11 +7474,16 @@ function Sa({ x: e, y: t }) {
7456
7474
  }
7457
7475
  //#endregion
7458
7476
  //#region src/components/ui/Dialog.tsx
7459
- var Ca = "(min-width: 48rem)", wa = "a[href], button, input, select, textarea, label, summary, [contenteditable]:not([contenteditable=\"false\"]), [role=\"button\"], [role=\"link\"], [tabindex]:not([tabindex=\"-1\"])", Ta = {
7477
+ var Ca = {
7478
+ sm: "max-w-[400px]",
7479
+ md: "max-w-[576px]",
7480
+ lg: "max-w-[768px]",
7481
+ xl: "max-w-[1024px]"
7482
+ }, wa = "(min-width: 48rem)", Ta = "a[href], button, input, select, textarea, label, summary, [contenteditable]:not([contenteditable=\"false\"]), [role=\"button\"], [role=\"link\"], [tabindex]:not([tabindex=\"-1\"])", Ea = {
7460
7483
  x: 0,
7461
7484
  y: 0
7462
7485
  };
7463
- function Ea(e) {
7486
+ function Da(e) {
7464
7487
  let t = e.getBoundingClientRect();
7465
7488
  return {
7466
7489
  left: t.left,
@@ -7469,19 +7492,19 @@ function Ea(e) {
7469
7492
  bottom: t.top + e.clientHeight
7470
7493
  };
7471
7494
  }
7472
- var Da = {
7495
+ var Oa = {
7473
7496
  top: "bottom",
7474
7497
  bottom: "top",
7475
7498
  left: "right",
7476
7499
  right: "left"
7477
7500
  };
7478
- function Oa(e, t) {
7501
+ function ka(e, t) {
7479
7502
  return {
7480
7503
  x: e.x + t.x,
7481
7504
  y: e.y + t.y
7482
7505
  };
7483
7506
  }
7484
- function ka(e, t) {
7507
+ function Aa(e, t) {
7485
7508
  let n = t.getBoundingClientRect();
7486
7509
  return {
7487
7510
  left: n.left + e.offsetLeft - t.scrollLeft,
@@ -7490,65 +7513,65 @@ function ka(e, t) {
7490
7513
  height: e.offsetHeight
7491
7514
  };
7492
7515
  }
7493
- function Aa(e, t) {
7516
+ function ja(e, t) {
7494
7517
  if (!(e instanceof HTMLElement) || !e.isConnected) return null;
7495
7518
  let n = e.ownerDocument;
7496
7519
  return e === n.body || e === n.documentElement || t.contains(e) ? null : e.getClientRects().length > 0 ? e : null;
7497
7520
  }
7498
- function ja(e) {
7499
- return e.ownerDocument.defaultView?.matchMedia(Ca).matches ?? !1;
7500
- }
7501
7521
  function Ma(e) {
7522
+ return e.ownerDocument.defaultView?.matchMedia(wa).matches ?? !1;
7523
+ }
7524
+ function Na(e) {
7502
7525
  let t = e.ownerDocument.defaultView;
7503
7526
  return t ? ya(t.getComputedStyle(e).getPropertyValue("--spacing"), parseFloat(t.getComputedStyle(e.ownerDocument.documentElement).fontSize)) : 8;
7504
7527
  }
7505
- function Na({ open: e, draggable: t, remember: n, placement: r, anchorRef: i }, a, o) {
7506
- let s = m(Ta), c = m(Ta), l = m(8), u = m(null), d = m(null), p = m(!1), h = e && t;
7528
+ function Pa({ open: e, draggable: t, remember: n, placement: r, anchorRef: i }, a, o) {
7529
+ let s = m(Ea), c = m(Ea), l = m(8), u = m(null), d = m(null), p = m(!1), h = e && t;
7507
7530
  f(() => {
7508
7531
  let f = a.current, m = h ? o.current : null, g = f?.parentElement, _ = f?.ownerDocument.defaultView, v = r !== "center";
7509
7532
  (!n || !t) && (d.current = null);
7510
7533
  let y = n && m !== null;
7511
7534
  if (!e || !f || !g || !_ || !m && !v) return;
7512
- let b = v ? Aa(f.ownerDocument.activeElement, f) : null, x = () => v ? Aa(i?.current, f) ?? Aa(b, f) : null, S = () => Oa(c.current, m ? s.current : Ta), C = () => {
7535
+ let b = v ? ja(f.ownerDocument.activeElement, f) : null, x = () => v ? ja(i?.current, f) ?? ja(b, f) : null, S = () => ka(c.current, m ? s.current : Ea), C = () => {
7513
7536
  f.style.translate = Sa(S());
7514
7537
  }, w = () => {
7515
- let e = ka(f, g);
7538
+ let e = Aa(f, g);
7516
7539
  if (p.current && d.current) {
7517
7540
  c.current = {
7518
7541
  x: d.current.left - e.left,
7519
7542
  y: d.current.top - e.top
7520
- }, s.current = Ta, f.dataset.placement = "remembered", f.style.transformOrigin = "";
7543
+ }, s.current = Ea, f.dataset.placement = "remembered", f.style.transformOrigin = "";
7521
7544
  return;
7522
7545
  }
7523
- let t = ja(f) ? x() : null, n = v && t ? yn(r, t.getBoundingClientRect(), {
7546
+ let t = Ma(f) ? x() : null, n = v && t ? yn(r, t.getBoundingClientRect(), {
7524
7547
  size: {
7525
7548
  width: e.width,
7526
7549
  height: e.height
7527
7550
  },
7528
- bounds: Ea(g),
7551
+ bounds: Da(g),
7529
7552
  margin: l.current,
7530
7553
  gap: l.current
7531
7554
  }) : null;
7532
7555
  c.current = n ? {
7533
7556
  x: n.left - e.left,
7534
7557
  y: n.top - e.top
7535
- } : Ta, f.dataset.placement = n?.side ?? "center", f.style.transformOrigin = n ? Da[n.side] : "";
7558
+ } : Ea, f.dataset.placement = n?.side ?? "center", f.style.transformOrigin = n ? Oa[n.side] : "";
7536
7559
  }, T = () => {
7537
7560
  let e = s.current;
7538
7561
  if (!m || !p.current && e.x === 0 && e.y === 0) return;
7539
- let t = S(), n = xa(t, t, f.getBoundingClientRect(), m.getBoundingClientRect(), Ea(g), l.current);
7562
+ let t = S(), n = xa(t, t, f.getBoundingClientRect(), m.getBoundingClientRect(), Da(g), l.current);
7540
7563
  if (s.current = {
7541
7564
  x: n.x - c.current.x,
7542
7565
  y: n.y - c.current.y
7543
7566
  }, C(), p.current) {
7544
- let e = ka(f, g);
7567
+ let e = Aa(f, g);
7545
7568
  d.current = {
7546
7569
  left: e.left + n.x,
7547
7570
  top: e.top + n.y
7548
7571
  };
7549
7572
  }
7550
7573
  }, E = () => {
7551
- l.current = Ma(f), ja(f) || (u.current = null, s.current = Ta, p.current = !1, d.current = null), u.current || w(), C(), T();
7574
+ l.current = Na(f), Ma(f) || (u.current = null, s.current = Ea, p.current = !1, d.current = null), u.current || w(), C(), T();
7552
7575
  }, D = 0, O = () => {
7553
7576
  D ||= _.requestAnimationFrame(() => {
7554
7577
  D = 0, E();
@@ -7560,7 +7583,7 @@ function Na({ open: e, draggable: t, remember: n, placement: r, anchorRef: i },
7560
7583
  capture: !0,
7561
7584
  passive: !0
7562
7585
  }), f.addEventListener("animationend", k), A?.observe(f), () => {
7563
- _.cancelAnimationFrame(D), _.removeEventListener("resize", O), _.removeEventListener("scroll", O, { capture: !0 }), f.removeEventListener("animationend", k), A?.disconnect(), u.current = null, c.current = Ta, s.current = Ta, p.current = !1, f.style.translate = "", f.style.transformOrigin = "", delete f.dataset.placement;
7586
+ _.cancelAnimationFrame(D), _.removeEventListener("resize", O), _.removeEventListener("scroll", O, { capture: !0 }), f.removeEventListener("animationend", k), A?.disconnect(), u.current = null, c.current = Ea, s.current = Ea, p.current = !1, f.style.translate = "", f.style.transformOrigin = "", delete f.dataset.placement;
7564
7587
  };
7565
7588
  }, [
7566
7589
  e,
@@ -7575,15 +7598,15 @@ function Na({ open: e, draggable: t, remember: n, placement: r, anchorRef: i },
7575
7598
  let g = (e) => {
7576
7599
  let t = a.current, n = e.currentTarget, r = t?.parentElement;
7577
7600
  if (!t || !r || e.button !== 0 || !e.isPrimary) return;
7578
- let i = e.target.closest(wa);
7579
- i && n.contains(i) || !ja(t) || (e.preventDefault(), n.setPointerCapture(e.pointerId), u.current = {
7601
+ let i = e.target.closest(Ta);
7602
+ i && n.contains(i) || !Ma(t) || (e.preventDefault(), n.setPointerCapture(e.pointerId), u.current = {
7580
7603
  pointerId: e.pointerId,
7581
7604
  startX: e.clientX,
7582
7605
  startY: e.clientY,
7583
- origin: Oa(c.current, s.current),
7606
+ origin: ka(c.current, s.current),
7584
7607
  dialog: t.getBoundingClientRect(),
7585
7608
  handle: n.getBoundingClientRect(),
7586
- bounds: Ea(r),
7609
+ bounds: Da(r),
7587
7610
  margin: l.current,
7588
7611
  moved: !1
7589
7612
  });
@@ -7604,11 +7627,11 @@ function Na({ open: e, draggable: t, remember: n, placement: r, anchorRef: i },
7604
7627
  u.current = null;
7605
7628
  let r = a.current, i = r?.parentElement;
7606
7629
  if (!n || !t.moved || !r || !i) return;
7607
- let o = Oa(c.current, s.current), l = ka(r, i);
7630
+ let o = ka(c.current, s.current), l = Aa(r, i);
7608
7631
  d.current = {
7609
7632
  left: l.left + o.x,
7610
7633
  top: l.top + o.y
7611
- }, c.current = o, s.current = Ta, p.current = !0, r.dataset.placement = "remembered", r.style.transformOrigin = "";
7634
+ }, c.current = o, s.current = Ea, p.current = !0, r.dataset.placement = "remembered", r.style.transformOrigin = "";
7612
7635
  };
7613
7636
  if (h) return {
7614
7637
  onPointerDown: g,
@@ -7618,23 +7641,23 @@ function Na({ open: e, draggable: t, remember: n, placement: r, anchorRef: i },
7618
7641
  onLostPointerCapture: v
7619
7642
  };
7620
7643
  }
7621
- function Pa({ open: e, onClose: t, title: n, children: r, footer: i, className: a, draggable: o = !1, rememberPosition: s = !1, placement: c = "center", anchorRef: d, role: f = "dialog", description: p, "aria-label": h, "aria-describedby": g, initialFocusRef: y, returnFocusRef: b, busy: x = !1, closeOnEscape: S = !0, closeOnOverlayClick: C = !0, hideCloseButton: w = !1 }) {
7622
- let T = an(), E = m(null), D = m(null), O = u(), k = u();
7623
- ft(E, e, {
7624
- initialFocusRef: y,
7625
- returnFocusRef: b
7644
+ function Fa({ open: e, onClose: t, title: n, children: r, footer: i, className: a, size: o = "sm", draggable: s = !1, rememberPosition: c = !1, placement: d = "center", anchorRef: f, role: p = "dialog", description: h, "aria-label": g, "aria-describedby": y, initialFocusRef: b, returnFocusRef: x, busy: S = !1, closeOnEscape: C = !0, closeOnOverlayClick: w = !0, hideCloseButton: T = !1 }) {
7645
+ let E = an(), D = m(null), O = m(null), k = u(), A = u();
7646
+ ft(D, e, {
7647
+ initialFocusRef: b,
7648
+ returnFocusRef: x
7626
7649
  });
7627
- let A = Na({
7650
+ let j = Pa({
7628
7651
  open: e,
7629
- draggable: o,
7630
- remember: s,
7631
- placement: c,
7632
- anchorRef: d
7633
- }, E, D);
7652
+ draggable: s,
7653
+ remember: c,
7654
+ placement: d,
7655
+ anchorRef: f
7656
+ }, D, O);
7634
7657
  return l(() => {
7635
7658
  if (!e) return;
7636
7659
  let n = (e) => {
7637
- e.key === "Escape" && S && !x && (e.preventDefault(), t());
7660
+ e.key === "Escape" && C && !S && (e.preventDefault(), t());
7638
7661
  };
7639
7662
  document.addEventListener("keydown", n);
7640
7663
  let r = document.body.style.overflow;
@@ -7644,43 +7667,43 @@ function Pa({ open: e, onClose: t, title: n, children: r, footer: i, className:
7644
7667
  }, [
7645
7668
  e,
7646
7669
  t,
7647
- S,
7648
- x
7670
+ C,
7671
+ S
7649
7672
  ]), e ? H(/* @__PURE__ */ v("div", {
7650
7673
  className: "fixed inset-0 z-50 flex items-start justify-center overflow-y-auto pt-4 md:pt-[5vh]",
7651
7674
  children: [/* @__PURE__ */ _("div", {
7652
7675
  className: "bg-bg-overlay fixed inset-0",
7653
7676
  onClick: () => {
7654
- C && !x && t();
7677
+ w && !S && t();
7655
7678
  },
7656
7679
  "aria-hidden": "true"
7657
7680
  }), /* @__PURE__ */ v("div", {
7658
- ref: E,
7659
- className: G("relative z-50 mx-1 mb-8 flex w-full max-w-[400px] flex-col", "bg-bg-secondary border-border rounded-lg border", "animate-scale-in shadow-lg", a),
7660
- role: f,
7681
+ ref: D,
7682
+ className: G(`relative z-50 mx-1 mb-8 flex w-full ${Ca[o]} flex-col`, "bg-bg-secondary border-border rounded-lg border", "animate-scale-in shadow-lg", a),
7683
+ role: p,
7661
7684
  tabIndex: -1,
7662
- "aria-busy": x || void 0,
7685
+ "aria-busy": S || void 0,
7663
7686
  "aria-modal": "true",
7664
- "aria-labelledby": n ? O : void 0,
7665
- "aria-label": h ?? (n ? void 0 : "Dialog"),
7666
- "aria-describedby": [p ? k : void 0, g].filter(Boolean).join(" ") || void 0,
7687
+ "aria-labelledby": n ? k : void 0,
7688
+ "aria-label": g ?? (n ? void 0 : "Dialog"),
7689
+ "aria-describedby": [h ? A : void 0, y].filter(Boolean).join(" ") || void 0,
7667
7690
  children: [
7668
- (n || !w || o) && /* @__PURE__ */ v("div", {
7669
- ref: D,
7670
- "data-control-size": T,
7671
- className: G("ui-bar border-border flex shrink-0 items-center justify-between gap-2 border-b px-3 py-2.5", o && "md:cursor-move md:touch-none md:select-none"),
7672
- ...A,
7691
+ (n || !T || s) && /* @__PURE__ */ v("div", {
7692
+ ref: O,
7693
+ "data-control-size": E,
7694
+ className: G("ui-bar border-border flex shrink-0 items-center justify-between gap-2 border-b px-3 py-2.5", s && "md:cursor-move md:touch-none md:select-none"),
7695
+ ...j,
7673
7696
  children: [n && /* @__PURE__ */ _("h3", {
7674
- id: O,
7697
+ id: k,
7675
7698
  className: "text-text-primary min-w-0 text-sm font-medium",
7676
7699
  children: n
7677
- }), !w && /* @__PURE__ */ _(fn, {
7700
+ }), !T && /* @__PURE__ */ _(fn, {
7678
7701
  type: "button",
7679
7702
  variant: "icon",
7680
7703
  size: "sm",
7681
- "aria-disabled": x || void 0,
7704
+ "aria-disabled": S || void 0,
7682
7705
  onClick: () => {
7683
- x || t();
7706
+ S || t();
7684
7707
  },
7685
7708
  className: "ml-auto shrink-0",
7686
7709
  "aria-label": "Close",
@@ -7688,15 +7711,15 @@ function Pa({ open: e, onClose: t, title: n, children: r, footer: i, className:
7688
7711
  })]
7689
7712
  }),
7690
7713
  /* @__PURE__ */ v("div", {
7691
- className: "p-3",
7692
- children: [p && /* @__PURE__ */ _("div", {
7693
- id: k,
7714
+ className: "ui-surface-body p-3",
7715
+ children: [h && /* @__PURE__ */ _("div", {
7716
+ id: A,
7694
7717
  className: "text-text-secondary mb-3 text-xs",
7695
- children: p
7718
+ children: h
7696
7719
  }), r]
7697
7720
  }),
7698
7721
  i && /* @__PURE__ */ _("div", {
7699
- "data-control-size": T,
7722
+ "data-control-size": E,
7700
7723
  className: "ui-bar border-border bg-bg-primary/50 flex shrink-0 flex-col justify-center rounded-b-lg border-t px-3 py-2.5",
7701
7724
  children: i
7702
7725
  })
@@ -7706,7 +7729,7 @@ function Pa({ open: e, onClose: t, title: n, children: r, footer: i, className:
7706
7729
  }
7707
7730
  //#endregion
7708
7731
  //#region src/components/ui/DialogActions.tsx
7709
- function Fa({ onCancel: e, onConfirm: t, cancelLabel: n = "Cancel", confirmLabel: r = "Confirm", confirmVariant: i = "primary", className: a, busy: o = !1, busyLabel: s = "Working…", cancelRef: c, confirmRef: l, confirmDisabled: u = !1 }) {
7732
+ function Ia({ onCancel: e, onConfirm: t, cancelLabel: n = "Cancel", confirmLabel: r = "Confirm", confirmVariant: i = "primary", className: a, busy: o = !1, busyLabel: s = "Working…", cancelRef: c, confirmRef: l, confirmDisabled: u = !1 }) {
7710
7733
  return /* @__PURE__ */ v("div", {
7711
7734
  className: G("flex justify-end gap-2", a),
7712
7735
  "aria-busy": o || void 0,
@@ -7735,7 +7758,7 @@ function Fa({ onCancel: e, onConfirm: t, cancelLabel: n = "Cancel", confirmLabel
7735
7758
  }
7736
7759
  //#endregion
7737
7760
  //#region src/components/ui/DividerLabel.tsx
7738
- function Ia({ children: e, className: t }) {
7761
+ function La({ children: e, className: t }) {
7739
7762
  return /* @__PURE__ */ v("div", {
7740
7763
  className: G("my-6 flex items-center gap-3", t),
7741
7764
  children: [
@@ -7750,7 +7773,7 @@ function Ia({ children: e, className: t }) {
7750
7773
  }
7751
7774
  //#endregion
7752
7775
  //#region src/components/ui/DropdownMenu.tsx
7753
- function La({ trigger: e, items: t, align: n = "right" }) {
7776
+ function Ra({ trigger: e, items: t, align: n = "right" }) {
7754
7777
  let [r, i] = h(!1), [a, o] = h({
7755
7778
  top: 0,
7756
7779
  left: 0,
@@ -7831,7 +7854,7 @@ function La({ trigger: e, items: t, align: n = "right" }) {
7831
7854
  }
7832
7855
  //#endregion
7833
7856
  //#region src/components/ui/EmptyState.tsx
7834
- function Ra({ icon: e, title: t, description: n, action: r, className: i }) {
7857
+ function za({ icon: e, title: t, description: n, action: r, className: i }) {
7835
7858
  return /* @__PURE__ */ v("div", {
7836
7859
  className: G("flex flex-col items-center justify-center px-4 py-12", i),
7837
7860
  children: [
@@ -7856,7 +7879,7 @@ function Ra({ icon: e, title: t, description: n, action: r, className: i }) {
7856
7879
  }
7857
7880
  //#endregion
7858
7881
  //#region src/components/ui/ErrorBoundary.tsx
7859
- var za = class extends e {
7882
+ var Ba = class extends e {
7860
7883
  state = {
7861
7884
  hasError: !1,
7862
7885
  error: null
@@ -7898,8 +7921,8 @@ var za = class extends e {
7898
7921
  };
7899
7922
  //#endregion
7900
7923
  //#region src/components/ui/FilterDropdown.tsx
7901
- function Ba({ icon: e, children: t, items: n, align: r, className: i }) {
7902
- return /* @__PURE__ */ _(La, {
7924
+ function Va({ icon: e, children: t, items: n, align: r, className: i }) {
7925
+ return /* @__PURE__ */ _(Ra, {
7903
7926
  align: r,
7904
7927
  trigger: /* @__PURE__ */ _(Bn, {
7905
7928
  icon: e,
@@ -7911,7 +7934,7 @@ function Ba({ icon: e, children: t, items: n, align: r, className: i }) {
7911
7934
  }
7912
7935
  //#endregion
7913
7936
  //#region src/components/ui/Kbd.tsx
7914
- function Va({ children: e, className: t }) {
7937
+ function Ha({ children: e, className: t }) {
7915
7938
  return /* @__PURE__ */ _("kbd", {
7916
7939
  className: G("text-2xs inline-flex items-center px-1.5 py-0.5 font-mono font-medium", "bg-bg-tertiary text-text-secondary border-border rounded border", t),
7917
7940
  children: e
@@ -7919,22 +7942,63 @@ function Va({ children: e, className: t }) {
7919
7942
  }
7920
7943
  //#endregion
7921
7944
  //#region src/components/ui/LoadingSpinner.tsx
7922
- var Ha = {
7945
+ var Ua = {
7923
7946
  sm: "w-4 h-4",
7924
7947
  md: "w-6 h-6",
7925
7948
  lg: "w-8 h-8"
7926
7949
  };
7927
- function Ua({ className: e, size: t = "md" }) {
7950
+ function Wa({ className: e, size: t = "md" }) {
7928
7951
  return /* @__PURE__ */ _("div", {
7929
7952
  className: G("flex min-h-[200px] items-center justify-center", e),
7930
- children: /* @__PURE__ */ _(L, { className: G("text-accent animate-spin", Ha[t]) })
7953
+ children: /* @__PURE__ */ _(L, { className: G("text-accent animate-spin", Ua[t]) })
7931
7954
  });
7932
7955
  }
7933
7956
  //#endregion
7957
+ //#region src/lib/layout.ts
7958
+ function Ga(e, t, n, r) {
7959
+ let i = typeof t == "object" ? t : { base: t }, a = { [`--ui-${e}-base`]: n(i.base ?? r) };
7960
+ for (let t of [
7961
+ "sm",
7962
+ "md",
7963
+ "lg",
7964
+ "xl"
7965
+ ]) a[`--ui-${e}-${t}`] = i[t] === void 0 ? "initial" : n(i[t]);
7966
+ return a;
7967
+ }
7968
+ function Ka(e) {
7969
+ return typeof e == "number" ? `repeat(${e}, minmax(0, 1fr))` : e;
7970
+ }
7971
+ function qa(e = 0, t, n) {
7972
+ return {
7973
+ "--ui-gap": `calc(var(--spacing) * ${e})`,
7974
+ "--ui-gap-x": t === void 0 ? "initial" : `calc(var(--spacing) * ${t})`,
7975
+ "--ui-gap-y": n === void 0 ? "initial" : `calc(var(--spacing) * ${n})`
7976
+ };
7977
+ }
7978
+ function Ja(e) {
7979
+ return e === "start" || e === "end" ? `flex-${e}` : e;
7980
+ }
7981
+ function Ya(e) {
7982
+ return e === "between" || e === "around" || e === "evenly" ? `space-${e}` : Ja(e);
7983
+ }
7984
+ //#endregion
7934
7985
  //#region src/components/ui/MetadataGrid.tsx
7935
- function Wa({ items: e, labelWidth: n = "100px", className: r }) {
7936
- return /* @__PURE__ */ _("div", {
7937
- className: G("gap-x-3 gap-y-2 text-xs", r),
7986
+ function Xa({ items: e, labelWidth: n = "100px", layout: r = "inline", columns: i = 1, gap: a = 3, className: o }) {
7987
+ return r === "stacked" ? /* @__PURE__ */ _("dl", {
7988
+ className: G("ui-grid text-xs", o),
7989
+ style: {
7990
+ ...Ga("columns", i, Ka, 1),
7991
+ ...qa(a)
7992
+ },
7993
+ children: e.map((e) => /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
7994
+ className: "text-text-tertiary font-label",
7995
+ children: e.label
7996
+ }), /* @__PURE__ */ _("dd", {
7997
+ className: G((typeof e.value == "string" || typeof e.value == "number") && "text-text-primary font-data"),
7998
+ children: e.value
7999
+ })] }, e.label))
8000
+ }) : /* @__PURE__ */ _("div", {
8001
+ className: G("gap-x-3 gap-y-2 text-xs", o),
7938
8002
  style: {
7939
8003
  display: "grid",
7940
8004
  gridTemplateColumns: `${n} 1fr`
@@ -7950,7 +8014,7 @@ function Wa({ items: e, labelWidth: n = "100px", className: r }) {
7950
8014
  }
7951
8015
  //#endregion
7952
8016
  //#region src/components/ui/MetricCard.tsx
7953
- function Ga({ label: e, value: t, sub: n, trend: r, bar: i, icon: a, iconColor: o, className: s }) {
8017
+ function Za({ label: e, value: t, sub: n, trend: r, bar: i, icon: a, iconColor: o, className: s }) {
7954
8018
  let c = r?.tone === "positive" ? "text-green" : r?.tone === "negative" ? "text-red" : "text-text-tertiary";
7955
8019
  return /* @__PURE__ */ v("div", {
7956
8020
  className: G("bg-bg-secondary border-border relative overflow-hidden rounded-md border p-3", s),
@@ -7990,7 +8054,7 @@ function Ga({ label: e, value: t, sub: n, trend: r, bar: i, icon: a, iconColor:
7990
8054
  }
7991
8055
  //#endregion
7992
8056
  //#region src/components/ui/OAuthButton.tsx
7993
- function Ka() {
8057
+ function Qa() {
7994
8058
  return /* @__PURE__ */ v("svg", {
7995
8059
  className: "h-3.5 w-3.5",
7996
8060
  viewBox: "0 0 24 24",
@@ -8015,7 +8079,7 @@ function Ka() {
8015
8079
  ]
8016
8080
  });
8017
8081
  }
8018
- function qa() {
8082
+ function $a() {
8019
8083
  return /* @__PURE__ */ _("svg", {
8020
8084
  className: "h-3.5 w-3.5",
8021
8085
  viewBox: "0 0 24 24",
@@ -8024,25 +8088,25 @@ function qa() {
8024
8088
  children: /* @__PURE__ */ _("path", { d: "M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" })
8025
8089
  });
8026
8090
  }
8027
- var Ja = {
8091
+ var eo = {
8028
8092
  github: "GitHub",
8029
8093
  google: "Google"
8030
- }, Ya = {
8031
- github: qa,
8032
- google: Ka
8094
+ }, to = {
8095
+ github: $a,
8096
+ google: Qa
8033
8097
  };
8034
- function Xa({ provider: e, children: t, ...n }) {
8035
- let r = Ya[e];
8098
+ function no({ provider: e, children: t, ...n }) {
8099
+ let r = to[e];
8036
8100
  return /* @__PURE__ */ v(fn, {
8037
8101
  variant: "secondary",
8038
8102
  size: "md",
8039
8103
  ...n,
8040
- children: [/* @__PURE__ */ _(r, {}), t ?? Ja[e]]
8104
+ children: [/* @__PURE__ */ _(r, {}), t ?? eo[e]]
8041
8105
  });
8042
8106
  }
8043
8107
  //#endregion
8044
8108
  //#region src/components/ui/PageHeader.tsx
8045
- function Za({ title: e, subtitle: t, actions: n, className: r, eyebrow: i, headingLevel: a = 1, wrap: o = !1 }) {
8109
+ function ro({ title: e, subtitle: t, actions: n, className: r, eyebrow: i, headingLevel: a = 1, wrap: o = !1 }) {
8046
8110
  let s = `h${a}`;
8047
8111
  return /* @__PURE__ */ v("div", {
8048
8112
  className: G("flex items-center justify-between gap-3", o && "flex-wrap", r),
@@ -8070,7 +8134,7 @@ function Za({ title: e, subtitle: t, actions: n, className: r, eyebrow: i, headi
8070
8134
  }
8071
8135
  //#endregion
8072
8136
  //#region src/components/ui/PageSection.tsx
8073
- function Qa({ title: e, description: t, actions: n, children: r, as: i = "h2", className: a, headerClassName: o, contentClassName: s }) {
8137
+ function io({ title: e, description: t, actions: n, children: r, as: i = "h2", className: a, headerClassName: o, contentClassName: s }) {
8074
8138
  return /* @__PURE__ */ v("section", {
8075
8139
  className: G("space-y-4", a),
8076
8140
  children: [(e || t || n) && /* @__PURE__ */ v("div", {
@@ -8096,7 +8160,7 @@ function Qa({ title: e, description: t, actions: n, children: r, as: i = "h2", c
8096
8160
  }
8097
8161
  //#endregion
8098
8162
  //#region src/components/ui/PaginationBar.tsx
8099
- var $a = [
8163
+ var ao = [
8100
8164
  {
8101
8165
  value: "10",
8102
8166
  label: "10 per page"
@@ -8110,7 +8174,7 @@ var $a = [
8110
8174
  label: "50 per page"
8111
8175
  }
8112
8176
  ];
8113
- function eo({ page: e, pageSize: t, total: n, pageSizeOptions: r = $a, onPageChange: i, onPageSizeChange: a, className: o }) {
8177
+ function oo({ page: e, pageSize: t, total: n, pageSizeOptions: r = ao, onPageChange: i, onPageSizeChange: a, className: o }) {
8114
8178
  let s = Math.ceil(n / t), c = Math.min((e - 1) * t + 1, n), l = Math.min(e * t, n);
8115
8179
  return /* @__PURE__ */ v("div", {
8116
8180
  className: G("flex items-center justify-between", o),
@@ -8141,7 +8205,7 @@ function eo({ page: e, pageSize: t, total: n, pageSizeOptions: r = $a, onPageCha
8141
8205
  }
8142
8206
  //#endregion
8143
8207
  //#region src/components/ui/useFieldControl.ts
8144
- function to({ id: e, error: t, hint: n, describedBy: r, invalid: i, required: a }) {
8208
+ function so({ id: e, error: t, hint: n, describedBy: r, invalid: i, required: a }) {
8145
8209
  let o = u(), s = c(Ln), l = e ?? s?.id ?? o, d = t ? `${l}-error` : void 0, f = n ? `${l}-hint` : void 0;
8146
8210
  return {
8147
8211
  inputId: l,
@@ -8154,8 +8218,8 @@ function to({ id: e, error: t, hint: n, describedBy: r, invalid: i, required: a
8154
8218
  }
8155
8219
  //#endregion
8156
8220
  //#region src/components/ui/PasswordInput.tsx
8157
- var no = a(({ label: e, error: t, className: n, id: r, hint: i, controlSize: a, required: o, "aria-describedby": s, "aria-invalid": c, ...l }, u) => {
8158
- let d = to({
8221
+ var co = a(({ label: e, error: t, className: n, id: r, hint: i, controlSize: a, required: o, "aria-describedby": s, "aria-invalid": c, ...l }, u) => {
8222
+ let d = so({
8159
8223
  id: r,
8160
8224
  error: t,
8161
8225
  hint: i,
@@ -8175,7 +8239,7 @@ var no = a(({ label: e, error: t, className: n, id: r, hint: i, controlSize: a,
8175
8239
  className: "flex items-center justify-between",
8176
8240
  children: [e && /* @__PURE__ */ _("label", {
8177
8241
  htmlFor: f,
8178
- className: "text-text-secondary text-xs font-medium",
8242
+ className: "ui-field-label text-xs font-medium",
8179
8243
  children: e
8180
8244
  }), t && /* @__PURE__ */ _("p", {
8181
8245
  id: p,
@@ -8207,8 +8271,8 @@ var no = a(({ label: e, error: t, className: n, id: r, hint: i, controlSize: a,
8207
8271
  ]
8208
8272
  });
8209
8273
  });
8210
- no.displayName = "PasswordInput";
8211
- var ro = Object.freeze([
8274
+ co.displayName = "PasswordInput";
8275
+ var lo = Object.freeze([
8212
8276
  {
8213
8277
  label: "At least 8 characters",
8214
8278
  test: (e) => e.length >= 8
@@ -8226,12 +8290,12 @@ var ro = Object.freeze([
8226
8290
  test: (e) => /\d/.test(e)
8227
8291
  }
8228
8292
  ]);
8229
- function io(e, t = ro) {
8293
+ function uo(e, t = lo) {
8230
8294
  return t.every((t) => t.test(e));
8231
8295
  }
8232
8296
  //#endregion
8233
8297
  //#region src/components/ui/PasswordRequirements.tsx
8234
- function ao({ password: e, requirements: t = ro, showWhenEmpty: n = !1, className: r }) {
8298
+ function fo({ password: e, requirements: t = lo, showWhenEmpty: n = !1, className: r }) {
8235
8299
  return !n && e.length === 0 ? null : /* @__PURE__ */ _("ul", {
8236
8300
  "aria-label": "Password requirements",
8237
8301
  className: G("space-y-1", r),
@@ -8258,7 +8322,7 @@ function ao({ password: e, requirements: t = ro, showWhenEmpty: n = !1, classNam
8258
8322
  }
8259
8323
  //#endregion
8260
8324
  //#region src/components/ui/ProfileHeader.tsx
8261
- function oo({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }) {
8325
+ function po({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }) {
8262
8326
  return /* @__PURE__ */ v("div", {
8263
8327
  className: G("flex items-start gap-4", a),
8264
8328
  children: [
@@ -8306,7 +8370,7 @@ function oo({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }
8306
8370
  }
8307
8371
  //#endregion
8308
8372
  //#region src/components/ui/ProseContent.tsx
8309
- function so({ children: e, className: t }) {
8373
+ function mo({ children: e, className: t }) {
8310
8374
  return /* @__PURE__ */ _("div", {
8311
8375
  className: G("ui-prose", t),
8312
8376
  children: e
@@ -8314,21 +8378,21 @@ function so({ children: e, className: t }) {
8314
8378
  }
8315
8379
  //#endregion
8316
8380
  //#region src/lib/qrCode.ts
8317
- var co = class extends RangeError {
8381
+ var ho = class extends RangeError {
8318
8382
  constructor() {
8319
8383
  super("Text is too long to encode as a QR code"), this.name = "QrCapacityError";
8320
8384
  }
8321
- }, lo = {
8385
+ }, go = {
8322
8386
  L: 0,
8323
8387
  M: 1,
8324
8388
  Q: 2,
8325
8389
  H: 3
8326
- }, uo = {
8390
+ }, _o = {
8327
8391
  L: 1,
8328
8392
  M: 0,
8329
8393
  Q: 3,
8330
8394
  H: 2
8331
- }, fo = [
8395
+ }, vo = [
8332
8396
  [
8333
8397
  -1,
8334
8398
  7,
@@ -8501,7 +8565,7 @@ var co = class extends RangeError {
8501
8565
  30,
8502
8566
  30
8503
8567
  ]
8504
- ], po = [
8568
+ ], yo = [
8505
8569
  [
8506
8570
  -1,
8507
8571
  1,
@@ -8675,7 +8739,7 @@ var co = class extends RangeError {
8675
8739
  81
8676
8740
  ]
8677
8741
  ];
8678
- function mo(e) {
8742
+ function bo(e) {
8679
8743
  let t = (16 * e + 128) * e + 64;
8680
8744
  if (e >= 2) {
8681
8745
  let n = Math.floor(e / 7) + 2;
@@ -8683,43 +8747,43 @@ function mo(e) {
8683
8747
  }
8684
8748
  return t;
8685
8749
  }
8686
- function ho(e, t) {
8687
- let n = lo[t];
8688
- return Math.floor(mo(e) / 8) - fo[n][e] * po[n][e];
8750
+ function xo(e, t) {
8751
+ let n = go[t];
8752
+ return Math.floor(bo(e) / 8) - vo[n][e] * yo[n][e];
8689
8753
  }
8690
- function go(e) {
8754
+ function So(e) {
8691
8755
  if (e === 1) return [];
8692
8756
  let t = Math.floor(e / 7) + 2, n = Math.floor((e * 8 + t * 3 + 5) / (t * 4 - 4)) * 2, r = [6];
8693
8757
  for (let i = e * 4 + 17 - 7; r.length < t; i -= n) r.splice(1, 0, i);
8694
8758
  return r;
8695
8759
  }
8696
- function _o(e, t) {
8760
+ function Co(e, t) {
8697
8761
  let n = 0;
8698
8762
  for (let r = 7; r >= 0; r--) n = n << 1 ^ (n >>> 7) * 285, n ^= (t >>> r & 1) * e;
8699
8763
  return n;
8700
8764
  }
8701
- function vo(e) {
8765
+ function wo(e) {
8702
8766
  let t = Array(e).fill(0);
8703
8767
  t[e - 1] = 1;
8704
8768
  let n = 1;
8705
8769
  for (let r = 0; r < e; r++) {
8706
- for (let e = 0; e < t.length; e++) t[e] = _o(t[e], n), e + 1 < t.length && (t[e] ^= t[e + 1]);
8707
- n = _o(n, 2);
8770
+ for (let e = 0; e < t.length; e++) t[e] = Co(t[e], n), e + 1 < t.length && (t[e] ^= t[e + 1]);
8771
+ n = Co(n, 2);
8708
8772
  }
8709
8773
  return t;
8710
8774
  }
8711
- function yo(e, t) {
8775
+ function To(e, t) {
8712
8776
  let n = Array(t.length).fill(0);
8713
8777
  for (let r of e) {
8714
8778
  let e = r ^ n.shift();
8715
8779
  n.push(0), t.forEach((t, r) => {
8716
- n[r] ^= _o(t, e);
8780
+ n[r] ^= Co(t, e);
8717
8781
  });
8718
8782
  }
8719
8783
  return n;
8720
8784
  }
8721
- function bo(e, t, n) {
8722
- let r = ho(t, n) * 8, i = [], a = (e, t) => {
8785
+ function Eo(e, t, n) {
8786
+ let r = xo(t, n) * 8, i = [], a = (e, t) => {
8723
8787
  for (let n = t - 1; n >= 0; n--) i.push(e >>> n & 1);
8724
8788
  };
8725
8789
  a(4, 4), a(e.length, t <= 9 ? 8 : 16);
@@ -8730,12 +8794,12 @@ function bo(e, t, n) {
8730
8794
  for (let e = 0; e < i.length; e += 8) o.push(i.slice(e, e + 8).reduce((e, t) => e << 1 | t));
8731
8795
  return o;
8732
8796
  }
8733
- function xo(e, t, n) {
8734
- let r = lo[n], i = po[r][t], a = fo[r][t], o = Math.floor(mo(t) / 8), s = i - o % i, c = Math.floor(o / i), l = vo(a), u = [];
8797
+ function Do(e, t, n) {
8798
+ let r = go[n], i = yo[r][t], a = vo[r][t], o = Math.floor(bo(t) / 8), s = i - o % i, c = Math.floor(o / i), l = wo(a), u = [];
8735
8799
  for (let t = 0, n = 0; t < i; t++) {
8736
8800
  let r = c - a + (t < s ? 0 : 1), i = e.slice(n, n + r);
8737
8801
  n += r;
8738
- let o = yo(i, l);
8802
+ let o = To(i, l);
8739
8803
  t < s && i.push(0), u.push(i.concat(o));
8740
8804
  }
8741
8805
  let d = [];
@@ -8744,7 +8808,7 @@ function xo(e, t, n) {
8744
8808
  });
8745
8809
  return d;
8746
8810
  }
8747
- var So = class {
8811
+ var Oo = class {
8748
8812
  size;
8749
8813
  modules;
8750
8814
  isFunction;
@@ -8755,7 +8819,7 @@ var So = class {
8755
8819
  this.modules[t][e] = n, this.isFunction[t][e] = !0;
8756
8820
  }
8757
8821
  };
8758
- function Co(e, t) {
8822
+ function ko(e, t) {
8759
8823
  let { size: n } = e;
8760
8824
  for (let t = 0; t < n; t++) e.setFunction(6, t, t % 2 == 0), e.setFunction(t, 6, t % 2 == 0);
8761
8825
  for (let [t, r] of [
@@ -8768,15 +8832,15 @@ function Co(e, t) {
8768
8832
  let c = Math.max(Math.abs(a), Math.abs(i));
8769
8833
  e.setFunction(o, s, c !== 2 && c !== 4);
8770
8834
  }
8771
- let r = go(t), i = r.length - 1;
8835
+ let r = So(t), i = r.length - 1;
8772
8836
  r.forEach((t, n) => {
8773
8837
  r.forEach((r, a) => {
8774
8838
  if (!(n === 0 && a === 0 || n === 0 && a === i || n === i && a === 0)) for (let n = -2; n <= 2; n++) for (let i = -2; i <= 2; i++) e.setFunction(t + i, r + n, Math.max(Math.abs(i), Math.abs(n)) !== 1);
8775
8839
  });
8776
- }), wo(e, "M", 0), To(e, t);
8840
+ }), Ao(e, "M", 0), jo(e, t);
8777
8841
  }
8778
- function wo(e, t, n) {
8779
- let r = uo[t] << 3 | n, i = r;
8842
+ function Ao(e, t, n) {
8843
+ let r = _o[t] << 3 | n, i = r;
8780
8844
  for (let e = 0; e < 10; e++) i = i << 1 ^ (i >>> 9) * 1335;
8781
8845
  let a = (r << 10 | i) ^ 21522, o = (e) => (a >>> e & 1) != 0, { size: s } = e;
8782
8846
  for (let t = 0; t <= 5; t++) e.setFunction(8, t, o(t));
@@ -8786,7 +8850,7 @@ function wo(e, t, n) {
8786
8850
  for (let t = 8; t < 15; t++) e.setFunction(8, s - 15 + t, o(t));
8787
8851
  e.setFunction(8, s - 8, !0);
8788
8852
  }
8789
- function To(e, t) {
8853
+ function jo(e, t) {
8790
8854
  if (t < 7) return;
8791
8855
  let n = t;
8792
8856
  for (let e = 0; e < 12; e++) n = n << 1 ^ (n >>> 11) * 7973;
@@ -8796,7 +8860,7 @@ function To(e, t) {
8796
8860
  e.setFunction(i, a, n), e.setFunction(a, i, n);
8797
8861
  }
8798
8862
  }
8799
- function Eo(e, t) {
8863
+ function Mo(e, t) {
8800
8864
  let { size: n } = e, r = 0;
8801
8865
  for (let i = n - 1; i >= 1; i -= 2) {
8802
8866
  i === 6 && (i = 5);
@@ -8810,7 +8874,7 @@ function Eo(e, t) {
8810
8874
  }
8811
8875
  }
8812
8876
  }
8813
- var Do = [
8877
+ var No = [
8814
8878
  (e, t) => (e + t) % 2 == 0,
8815
8879
  (e, t) => t % 2 == 0,
8816
8880
  (e) => e % 3 == 0,
@@ -8820,10 +8884,10 @@ var Do = [
8820
8884
  (e, t) => (e * t % 2 + e * t % 3) % 2 == 0,
8821
8885
  (e, t) => ((e + t) % 2 + e * t % 3) % 2 == 0
8822
8886
  ];
8823
- function Oo(e, t) {
8824
- for (let n = 0; n < e.size; n++) for (let r = 0; r < e.size; r++) !e.isFunction[n][r] && Do[t](r, n) && (e.modules[n][r] = !e.modules[n][r]);
8887
+ function Po(e, t) {
8888
+ for (let n = 0; n < e.size; n++) for (let r = 0; r < e.size; r++) !e.isFunction[n][r] && No[t](r, n) && (e.modules[n][r] = !e.modules[n][r]);
8825
8889
  }
8826
- var ko = [[
8890
+ var Fo = [[
8827
8891
  !0,
8828
8892
  !1,
8829
8893
  !0,
@@ -8848,12 +8912,12 @@ var ko = [[
8848
8912
  !1,
8849
8913
  !0
8850
8914
  ]];
8851
- function Ao(e) {
8915
+ function Io(e) {
8852
8916
  let t = e.length, n = (t, n, r) => r ? e[t][n] : e[n][t], r = 0;
8853
8917
  for (let e of [!1, !0]) for (let i = 0; i < t; i++) {
8854
8918
  let a = 1;
8855
8919
  for (let o = 1; o <= t; o++) o < t && n(o, i, e) === n(o - 1, i, e) ? a++ : (a >= 5 && (r += 3 + (a - 5)), a = 1);
8856
- for (let a = 0; a + 11 <= t; a++) for (let t of ko) t.every((t, r) => n(a + r, i, e) === t) && (r += 40);
8920
+ for (let a = 0; a + 11 <= t; a++) for (let t of Fo) t.every((t, r) => n(a + r, i, e) === t) && (r += 40);
8857
8921
  }
8858
8922
  for (let n = 0; n < t - 1; n++) for (let i = 0; i < t - 1; i++) {
8859
8923
  let t = e[n][i];
@@ -8862,20 +8926,20 @@ function Ao(e) {
8862
8926
  let i = e.reduce((e, t) => e + t.filter(Boolean).length, 0) * 100 / (t * t);
8863
8927
  return r += Math.floor(Math.abs(i - 50) / 5) * 10, r;
8864
8928
  }
8865
- function jo(e, t = "M") {
8866
- if (!Object.hasOwn(lo, t)) throw RangeError(`Invalid QR error correction level "${t}"; expected L, M, Q or H`);
8929
+ function Lo(e, t = "M") {
8930
+ if (!Object.hasOwn(go, t)) throw RangeError(`Invalid QR error correction level "${t}"; expected L, M, Q or H`);
8867
8931
  let n = new TextEncoder().encode(e), r = 1;
8868
- for (; r <= 40 && !(4 + (r <= 9 ? 8 : 16) + n.length * 8 <= ho(r, t) * 8); r++);
8869
- if (r > 40) throw new co();
8870
- let i = xo(bo(n, r, t), r, t), a = new So(r * 4 + 17);
8871
- Co(a, r), Eo(a, i);
8932
+ for (; r <= 40 && !(4 + (r <= 9 ? 8 : 16) + n.length * 8 <= xo(r, t) * 8); r++);
8933
+ if (r > 40) throw new ho();
8934
+ let i = Do(Eo(n, r, t), r, t), a = new Oo(r * 4 + 17);
8935
+ ko(a, r), Mo(a, i);
8872
8936
  let o = 0, s = Infinity;
8873
8937
  for (let e = 0; e < 8; e++) {
8874
- Oo(a, e), wo(a, t, e);
8875
- let n = Ao(a.modules);
8876
- n < s && (s = n, o = e), Oo(a, e);
8938
+ Po(a, e), Ao(a, t, e);
8939
+ let n = Io(a.modules);
8940
+ n < s && (s = n, o = e), Po(a, e);
8877
8941
  }
8878
- return Oo(a, o), wo(a, t, o), {
8942
+ return Po(a, o), Ao(a, t, o), {
8879
8943
  size: a.size,
8880
8944
  version: r,
8881
8945
  modules: a.modules
@@ -8883,13 +8947,13 @@ function jo(e, t = "M") {
8883
8947
  }
8884
8948
  //#endregion
8885
8949
  //#region src/components/ui/QrCode.tsx
8886
- function Mo({ value: e, errorCorrection: t = "M", size: n = 160, margin: r = 4, "aria-label": i = "QR code", fallback: a = null, className: o }) {
8950
+ function Ro({ value: e, errorCorrection: t = "M", size: n = 160, margin: r = 4, "aria-label": i = "QR code", fallback: a = null, className: o }) {
8887
8951
  let s = p(() => {
8888
8952
  if (!e) return null;
8889
8953
  try {
8890
- return jo(e, t);
8954
+ return Lo(e, t);
8891
8955
  } catch (e) {
8892
- if (e instanceof co) return "too-long";
8956
+ if (e instanceof ho) return "too-long";
8893
8957
  throw e;
8894
8958
  }
8895
8959
  }, [e, t]);
@@ -8923,7 +8987,7 @@ function Mo({ value: e, errorCorrection: t = "M", size: n = 160, margin: r = 4,
8923
8987
  }
8924
8988
  //#endregion
8925
8989
  //#region src/components/ui/SearchInput.tsx
8926
- function No({ value: e, onChange: t, placeholder: n = "Search...", className: r }) {
8990
+ function zo({ value: e, onChange: t, placeholder: n = "Search...", className: r }) {
8927
8991
  return /* @__PURE__ */ v("div", {
8928
8992
  className: G("relative", r),
8929
8993
  children: [/* @__PURE__ */ _(B, { className: "text-text-tertiary absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2" }), /* @__PURE__ */ _("input", {
@@ -8937,8 +9001,8 @@ function No({ value: e, onChange: t, placeholder: n = "Search...", className: r
8937
9001
  }
8938
9002
  //#endregion
8939
9003
  //#region src/components/ui/Select.tsx
8940
- var Po = a(({ label: e, error: t, options: n, className: r, id: i, hint: a, controlSize: o, required: s, "aria-describedby": c, "aria-invalid": l, ...u }, d) => {
8941
- let f = to({
9004
+ var Bo = a(({ label: e, error: t, options: n, className: r, id: i, hint: a, controlSize: o, required: s, "aria-describedby": c, "aria-invalid": l, ...u }, d) => {
9005
+ let f = so({
8942
9006
  id: i,
8943
9007
  error: t,
8944
9008
  hint: a,
@@ -8958,7 +9022,7 @@ var Po = a(({ label: e, error: t, options: n, className: r, id: i, hint: a, cont
8958
9022
  className: "flex items-center justify-between",
8959
9023
  children: [e && /* @__PURE__ */ _("label", {
8960
9024
  htmlFor: p,
8961
- className: "text-text-secondary font-label text-xs font-medium",
9025
+ className: "ui-field-label font-label text-xs font-medium",
8962
9026
  children: e
8963
9027
  }), t && /* @__PURE__ */ _("p", {
8964
9028
  id: m,
@@ -8986,10 +9050,10 @@ var Po = a(({ label: e, error: t, options: n, className: r, id: i, hint: a, cont
8986
9050
  ]
8987
9051
  });
8988
9052
  });
8989
- Po.displayName = "Select";
9053
+ Bo.displayName = "Select";
8990
9054
  //#endregion
8991
9055
  //#region src/components/ui/SettingRow.tsx
8992
- function Fo({ label: e, description: t, action: n, className: r }) {
9056
+ function Vo({ label: e, description: t, action: n, className: r }) {
8993
9057
  return /* @__PURE__ */ v("div", {
8994
9058
  className: G("border-border flex items-center justify-between border-b py-3", r),
8995
9059
  children: [/* @__PURE__ */ v("div", {
@@ -9009,7 +9073,7 @@ function Fo({ label: e, description: t, action: n, className: r }) {
9009
9073
  }
9010
9074
  //#endregion
9011
9075
  //#region src/components/ui/SideSheet.tsx
9012
- function Io({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "right", widthClassName: o = "w-[360px]", className: s, contentClassName: c }) {
9076
+ function Ho({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "right", widthClassName: o = "w-[360px]", className: s, contentClassName: c }) {
9013
9077
  let u = an(), d = m(null);
9014
9078
  return ft(d, e), l(() => {
9015
9079
  if (!e) return;
@@ -9049,7 +9113,7 @@ function Io({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "
9049
9113
  })]
9050
9114
  }),
9051
9115
  /* @__PURE__ */ _("div", {
9052
- className: G("flex-1 overflow-y-auto p-3", c),
9116
+ className: G("ui-surface-body flex-1 overflow-y-auto p-3", c),
9053
9117
  children: r
9054
9118
  }),
9055
9119
  i && /* @__PURE__ */ _("div", {
@@ -9063,41 +9127,41 @@ function Io({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "
9063
9127
  }
9064
9128
  //#endregion
9065
9129
  //#region src/components/ui/SplitPaneLayout.tsx
9066
- function Lo({ children: e, direction: t = "row", className: n }) {
9130
+ function Uo({ children: e, direction: t = "row", className: n }) {
9067
9131
  return /* @__PURE__ */ _("div", {
9068
9132
  className: G("-m-4 md:-m-6", "flex h-[calc(100vh-var(--topbar-height)-var(--bottomnav-height))] gap-0 md:h-[calc(100vh-var(--topbar-height))]", t === "column" && "flex-col", n),
9069
9133
  children: e
9070
9134
  });
9071
9135
  }
9072
- function Ro({ children: e, className: t }) {
9136
+ function Wo({ children: e, className: t }) {
9073
9137
  return /* @__PURE__ */ _("div", {
9074
9138
  className: G("flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden", t),
9075
9139
  children: e
9076
9140
  });
9077
9141
  }
9078
- var zo = Object.assign(Lo, { Main: Ro }), Bo = {
9142
+ var Go = Object.assign(Uo, { Main: Wo }), Ko = {
9079
9143
  active: "bg-green",
9080
9144
  inactive: "bg-text-tertiary",
9081
9145
  pending: "bg-yellow animate-pulse-subtle",
9082
9146
  error: "bg-red"
9083
- }, Vo = {
9147
+ }, qo = {
9084
9148
  active: "text-green",
9085
9149
  inactive: "text-text-tertiary",
9086
9150
  pending: "text-yellow",
9087
9151
  error: "text-red"
9088
9152
  };
9089
- function Ho({ status: e, label: t, className: n }) {
9153
+ function Jo({ status: e, label: t, className: n }) {
9090
9154
  return /* @__PURE__ */ v("span", {
9091
9155
  className: G("inline-flex items-center gap-1.5", n),
9092
- children: [/* @__PURE__ */ _("span", { className: G("h-2 w-2 rounded-full", Bo[e]) }), t && /* @__PURE__ */ _("span", {
9093
- className: G("text-xs", Vo[e]),
9156
+ children: [/* @__PURE__ */ _("span", { className: G("h-2 w-2 rounded-full", Ko[e]) }), t && /* @__PURE__ */ _("span", {
9157
+ className: G("text-xs", qo[e]),
9094
9158
  children: t
9095
9159
  })]
9096
9160
  });
9097
9161
  }
9098
9162
  //#endregion
9099
9163
  //#region src/components/ui/StepProgress.tsx
9100
- function Uo({ steps: e, currentStep: t, className: n }) {
9164
+ function Yo({ steps: e, currentStep: t, className: n }) {
9101
9165
  return /* @__PURE__ */ _("div", {
9102
9166
  className: G("flex items-center justify-between", n),
9103
9167
  children: e.map((n, r) => /* @__PURE__ */ v("div", {
@@ -9124,7 +9188,7 @@ function Uo({ steps: e, currentStep: t, className: n }) {
9124
9188
  }
9125
9189
  //#endregion
9126
9190
  //#region src/components/ui/Tabs.tsx
9127
- function Wo({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
9191
+ function Xo({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
9128
9192
  let [a, o] = h(t || e[0]?.key), s = n ?? a, c = e.some((e) => e.key === s) ? s : e[0]?.key, l = e.find((e) => e.key === c);
9129
9193
  function d(e) {
9130
9194
  n === void 0 && o(e), r?.(e);
@@ -9163,8 +9227,8 @@ function Wo({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
9163
9227
  }
9164
9228
  //#endregion
9165
9229
  //#region src/components/ui/Textarea.tsx
9166
- var Go = a(({ label: e, error: t, showCount: n, maxLength: r, value: i, className: a, id: o, hint: s, controlSize: c, required: l, "aria-describedby": u, "aria-invalid": d, ...f }, p) => {
9167
- let m = to({
9230
+ var Zo = a(({ label: e, error: t, showCount: n, maxLength: r, value: i, className: a, id: o, hint: s, controlSize: c, required: l, "aria-describedby": u, "aria-invalid": d, ...f }, p) => {
9231
+ let m = so({
9168
9232
  id: o,
9169
9233
  error: t,
9170
9234
  hint: s,
@@ -9182,7 +9246,7 @@ var Go = a(({ label: e, error: t, showCount: n, maxLength: r, value: i, classNam
9182
9246
  }),
9183
9247
  e && /* @__PURE__ */ _("label", {
9184
9248
  htmlFor: h,
9185
- className: "text-text-secondary font-label text-xs font-medium",
9249
+ className: "ui-field-label font-label text-xs font-medium",
9186
9250
  children: e
9187
9251
  }),
9188
9252
  /* @__PURE__ */ _("textarea", {
@@ -9215,11 +9279,11 @@ var Go = a(({ label: e, error: t, showCount: n, maxLength: r, value: i, classNam
9215
9279
  ]
9216
9280
  });
9217
9281
  });
9218
- Go.displayName = "Textarea";
9282
+ Zo.displayName = "Textarea";
9219
9283
  //#endregion
9220
9284
  //#region src/components/ui/TextInput.tsx
9221
- var Ko = a(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, hint: o, controlSize: s, required: c, "aria-describedby": l, "aria-invalid": u, ...d }, f) => {
9222
- let p = to({
9285
+ var Qo = a(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, hint: o, controlSize: s, required: c, "aria-describedby": l, "aria-invalid": u, ...d }, f) => {
9286
+ let p = so({
9223
9287
  id: i,
9224
9288
  error: t,
9225
9289
  hint: o,
@@ -9239,7 +9303,7 @@ var Ko = a(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, hin
9239
9303
  className: "flex items-center justify-between",
9240
9304
  children: [e && /* @__PURE__ */ _("label", {
9241
9305
  htmlFor: m,
9242
- className: "text-text-secondary font-label text-xs font-medium",
9306
+ className: "ui-field-label font-label text-xs font-medium",
9243
9307
  children: e
9244
9308
  }), t && /* @__PURE__ */ _("p", {
9245
9309
  id: h,
@@ -9268,10 +9332,10 @@ var Ko = a(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, hin
9268
9332
  ]
9269
9333
  });
9270
9334
  });
9271
- Ko.displayName = "TextInput";
9335
+ Qo.displayName = "TextInput";
9272
9336
  //#endregion
9273
9337
  //#region src/components/ui/Timeline.tsx
9274
- function qo({ items: e, className: t }) {
9338
+ function $o({ items: e, className: t }) {
9275
9339
  return /* @__PURE__ */ _("div", {
9276
9340
  className: G("space-y-0", t),
9277
9341
  children: e.map((t, n) => /* @__PURE__ */ v("div", {
@@ -9294,16 +9358,16 @@ function qo({ items: e, className: t }) {
9294
9358
  }
9295
9359
  //#endregion
9296
9360
  //#region src/components/ui/Tooltip.tsx
9297
- var Jo = {
9361
+ var es = {
9298
9362
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
9299
9363
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
9300
9364
  left: "right-full top-1/2 -translate-y-1/2 mr-2",
9301
9365
  right: "left-full top-1/2 -translate-y-1/2 ml-2"
9302
9366
  };
9303
- function Yo(e, t) {
9367
+ function ts(e, t) {
9304
9368
  return e ? `${e} ${t}` : t;
9305
9369
  }
9306
- function Xo({ content: e, placement: t = "top", children: r }) {
9370
+ function ns({ content: e, placement: t = "top", children: r }) {
9307
9371
  let [i, a] = h(!1), s = u();
9308
9372
  return /* @__PURE__ */ v("div", {
9309
9373
  className: "relative inline-flex",
@@ -9311,9 +9375,9 @@ function Xo({ content: e, placement: t = "top", children: r }) {
9311
9375
  onMouseLeave: () => a(!1),
9312
9376
  onFocus: () => a(!0),
9313
9377
  onBlur: () => a(!1),
9314
- children: [o(r) ? n(r, { "aria-describedby": Yo(r.props["aria-describedby"], s) }) : r, i && /* @__PURE__ */ _("div", {
9378
+ children: [o(r) ? n(r, { "aria-describedby": ts(r.props["aria-describedby"], s) }) : r, i && /* @__PURE__ */ _("div", {
9315
9379
  id: s,
9316
- className: G("text-2xs absolute z-50 px-2 py-1 font-medium whitespace-nowrap", "bg-bg-tertiary text-text-primary border-border rounded border shadow-md", "animate-fade-in pointer-events-none", Jo[t]),
9380
+ className: G("text-2xs absolute z-50 px-2 py-1 font-medium whitespace-nowrap", "bg-bg-tertiary text-text-primary border-border rounded border shadow-md", "animate-fade-in pointer-events-none", es[t]),
9317
9381
  role: "tooltip",
9318
9382
  children: e
9319
9383
  })]
@@ -9321,7 +9385,7 @@ function Xo({ content: e, placement: t = "top", children: r }) {
9321
9385
  }
9322
9386
  //#endregion
9323
9387
  //#region src/components/ui/Toolbar.tsx
9324
- function Zo({ start: e, end: t, children: n, className: r, startClassName: i, endClassName: a }) {
9388
+ function rs({ start: e, end: t, children: n, className: r, startClassName: i, endClassName: a }) {
9325
9389
  return /* @__PURE__ */ v("div", {
9326
9390
  className: G("flex items-center justify-between gap-3", r),
9327
9391
  children: [/* @__PURE__ */ _("div", {
@@ -9335,7 +9399,7 @@ function Zo({ start: e, end: t, children: n, className: r, startClassName: i, en
9335
9399
  }
9336
9400
  //#endregion
9337
9401
  //#region src/components/ui/UploadDropzone.tsx
9338
- var Qo = a(function({ title: e = "Drag and drop files here, or click to browse", description: t, icon: n, multiple: r, disabled: i, onChange: a, onFilesChange: o, className: s, id: c, "aria-describedby": l, ...f }, p) {
9402
+ var is = a(function({ title: e = "Drag and drop files here, or click to browse", description: t, icon: n, multiple: r, disabled: i, onChange: a, onFilesChange: o, className: s, id: c, "aria-describedby": l, ...f }, p) {
9339
9403
  let h = m(null);
9340
9404
  d(p, () => h.current, []);
9341
9405
  let g = u(), y = `${c ?? g}-description`;
@@ -9382,15 +9446,15 @@ var Qo = a(function({ title: e = "Drag and drop files here, or click to browse",
9382
9446
  })
9383
9447
  ]
9384
9448
  });
9385
- }), $o = r({ theme: "dark" });
9449
+ }), as = r({ theme: "dark" });
9386
9450
  //#endregion
9387
9451
  //#region src/hooks/useTheme.ts
9388
- function es() {
9389
- return c($o);
9452
+ function os() {
9453
+ return c(as);
9390
9454
  }
9391
9455
  //#endregion
9392
9456
  //#region src/lib/formatDate.ts
9393
- var ts = [
9457
+ var ss = [
9394
9458
  "Jan",
9395
9459
  "Feb",
9396
9460
  "Mar",
@@ -9404,21 +9468,21 @@ var ts = [
9404
9468
  "Nov",
9405
9469
  "Dec"
9406
9470
  ];
9407
- function ns(e) {
9471
+ function cs(e) {
9408
9472
  return (/* @__PURE__ */ new Date(e + "T00:00:00")).toLocaleDateString("en-US", {
9409
9473
  month: "short",
9410
9474
  day: "numeric",
9411
9475
  year: "numeric"
9412
9476
  });
9413
9477
  }
9414
- function rs(e) {
9478
+ function ls(e) {
9415
9479
  return (/* @__PURE__ */ new Date(e + "T00:00:00")).toLocaleDateString("en-US", {
9416
9480
  month: "long",
9417
9481
  day: "numeric",
9418
9482
  year: "numeric"
9419
9483
  });
9420
9484
  }
9421
- function is(e, t = /* @__PURE__ */ new Date()) {
9485
+ function us(e, t = /* @__PURE__ */ new Date()) {
9422
9486
  let n = t.getTime() - e.getTime(), r = Math.floor(n / 1e3);
9423
9487
  if (r < 60) return "just now";
9424
9488
  let i = Math.floor(r / 60);
@@ -9426,18 +9490,18 @@ function is(e, t = /* @__PURE__ */ new Date()) {
9426
9490
  let a = Math.floor(i / 60);
9427
9491
  if (a < 24) return `${a}h ago`;
9428
9492
  if (Math.floor(a / 24) === 1) return "yesterday";
9429
- let o = `${ts[e.getMonth()]} ${e.getDate()}`;
9493
+ let o = `${ss[e.getMonth()]} ${e.getDate()}`;
9430
9494
  return e.getFullYear() === t.getFullYear() ? o : `${o}, ${e.getFullYear()}`;
9431
9495
  }
9432
9496
  //#endregion
9433
9497
  //#region src/providers/SettingsProvider.tsx
9434
- var as = {
9498
+ var ds = {
9435
9499
  "archivo-expanded": "\"Archivo\", \"Arial Black\", \"Avenir Next Condensed\", \"HelveticaNeue-CondensedBold\", system-ui, sans-serif",
9436
9500
  inter: "\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, sans-serif",
9437
9501
  "jetbrains-mono": "\"JetBrains Mono\", Menlo, Monaco, Consolas, monospace",
9438
9502
  "pt-serif": "\"PT Serif\", Georgia, ui-serif, Cambria, \"Times New Roman\", Times, serif",
9439
9503
  system: "system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
9440
- }, os = {
9504
+ }, fs = {
9441
9505
  purple: {
9442
9506
  base: "#7C5CFC",
9443
9507
  hover: "#6B4AEB",
@@ -9494,43 +9558,43 @@ var as = {
9494
9558
  muted: "rgba(99,102,241,0.15)",
9495
9559
  subtle: "rgba(99,102,241,0.08)"
9496
9560
  }
9497
- }, ss = "leonardaustin-ui-settings", cs = new Set(Object.keys(os)), ls = new Set(Object.keys(Ot)), us = new Set(Object.keys(as)), ds = new Set([
9561
+ }, ps = "leonardaustin-ui-settings", ms = new Set(Object.keys(fs)), hs = new Set(Object.keys(Ot)), gs = new Set(Object.keys(ds)), _s = new Set([
9498
9562
  "light",
9499
9563
  "dark",
9500
9564
  "system"
9501
9565
  ]);
9502
- function fs(e, t, n, r) {
9566
+ function vs(e, t, n, r) {
9503
9567
  return typeof e != "number" || !isFinite(e) ? r : Math.min(n, Math.max(t, e));
9504
9568
  }
9505
- function ps(e) {
9569
+ function ys(e) {
9506
9570
  let t = {};
9507
- if (cs.has(e.accentColor) && (t.accentColor = e.accentColor), ds.has(e.colorMode) && (t.colorMode = e.colorMode), ls.has(e.preferredDarkTheme) && !Ct(e.preferredDarkTheme) && (t.preferredDarkTheme = e.preferredDarkTheme), ls.has(e.preferredLightTheme) && Ct(e.preferredLightTheme) && (t.preferredLightTheme = e.preferredLightTheme), typeof e.sidebarCollapsed == "boolean" && (t.sidebarCollapsed = e.sidebarCollapsed), typeof e.reducedMotion == "boolean" && (t.reducedMotion = e.reducedMotion), typeof e.sidebarWidth == "number" && (t.sidebarWidth = fs(e.sidebarWidth, 160, 400, 220)), e.themeOverrides && typeof e.themeOverrides == "object") {
9571
+ if (ms.has(e.accentColor) && (t.accentColor = e.accentColor), _s.has(e.colorMode) && (t.colorMode = e.colorMode), hs.has(e.preferredDarkTheme) && !Ct(e.preferredDarkTheme) && (t.preferredDarkTheme = e.preferredDarkTheme), hs.has(e.preferredLightTheme) && Ct(e.preferredLightTheme) && (t.preferredLightTheme = e.preferredLightTheme), typeof e.sidebarCollapsed == "boolean" && (t.sidebarCollapsed = e.sidebarCollapsed), typeof e.reducedMotion == "boolean" && (t.reducedMotion = e.reducedMotion), typeof e.sidebarWidth == "number" && (t.sidebarWidth = vs(e.sidebarWidth, 160, 400, 220)), e.themeOverrides && typeof e.themeOverrides == "object") {
9508
9572
  let n = {};
9509
9573
  for (let [t, r] of Object.entries(e.themeOverrides)) {
9510
- if (!ls.has(t) || !r || typeof r != "object") continue;
9574
+ if (!hs.has(t) || !r || typeof r != "object") continue;
9511
9575
  let e = r, i = Ot[t];
9512
9576
  n[t] = {
9513
- uiFont: us.has(e.uiFont) ? e.uiFont : i.uiFont,
9514
- headingFont: us.has(e.headingFont) ? e.headingFont : i.headingFont,
9515
- proseFont: us.has(e.proseFont) ? e.proseFont : i.proseFont,
9516
- controlFont: us.has(e.controlFont) ? e.controlFont : i.controlFont,
9517
- labelFont: us.has(e.labelFont) ? e.labelFont : i.labelFont,
9518
- navigationFont: us.has(e.navigationFont) ? e.navigationFont : i.navigationFont,
9519
- dataFont: us.has(e.dataFont) ? e.dataFont : i.dataFont,
9520
- codeFont: us.has(e.codeFont) ? e.codeFont : i.codeFont,
9521
- fontSize: fs(e.fontSize, 11, 18, i.fontSize),
9522
- borderRadius: fs(e.borderRadius, 0, 16, i.borderRadius),
9523
- borderWidth: fs(e.borderWidth, 1, 3, i.borderWidth),
9524
- tracking: fs(e.tracking, 0, .3, i.tracking),
9525
- lineHeight: fs(e.lineHeight, 1.2, 2, i.lineHeight),
9526
- density: fs(e.density, .18, .32, i.density)
9577
+ uiFont: gs.has(e.uiFont) ? e.uiFont : i.uiFont,
9578
+ headingFont: gs.has(e.headingFont) ? e.headingFont : i.headingFont,
9579
+ proseFont: gs.has(e.proseFont) ? e.proseFont : i.proseFont,
9580
+ controlFont: gs.has(e.controlFont) ? e.controlFont : i.controlFont,
9581
+ labelFont: gs.has(e.labelFont) ? e.labelFont : i.labelFont,
9582
+ navigationFont: gs.has(e.navigationFont) ? e.navigationFont : i.navigationFont,
9583
+ dataFont: gs.has(e.dataFont) ? e.dataFont : i.dataFont,
9584
+ codeFont: gs.has(e.codeFont) ? e.codeFont : i.codeFont,
9585
+ fontSize: vs(e.fontSize, 11, 18, i.fontSize),
9586
+ borderRadius: vs(e.borderRadius, 0, 16, i.borderRadius),
9587
+ borderWidth: vs(e.borderWidth, 1, 3, i.borderWidth),
9588
+ tracking: vs(e.tracking, 0, .3, i.tracking),
9589
+ lineHeight: vs(e.lineHeight, 1.2, 2, i.lineHeight),
9590
+ density: vs(e.density, .18, .32, i.density)
9527
9591
  };
9528
9592
  }
9529
9593
  t.themeOverrides = n;
9530
9594
  }
9531
9595
  return t;
9532
9596
  }
9533
- var ms = {
9597
+ var bs = {
9534
9598
  accentColor: "purple",
9535
9599
  sidebarCollapsed: !1,
9536
9600
  sidebarWidth: 220,
@@ -9540,35 +9604,35 @@ var ms = {
9540
9604
  preferredLightTheme: "light",
9541
9605
  themeOverrides: {}
9542
9606
  };
9543
- function hs(e, t) {
9607
+ function xs(e, t) {
9544
9608
  let n = {
9545
- ...ms,
9546
- ...ps(t ?? {})
9609
+ ...bs,
9610
+ ...ys(t ?? {})
9547
9611
  };
9548
9612
  if (typeof localStorage > "u") return n;
9549
9613
  try {
9550
9614
  let t = localStorage.getItem(e);
9551
9615
  if (t) return {
9552
9616
  ...n,
9553
- ...ps(JSON.parse(t))
9617
+ ...ys(JSON.parse(t))
9554
9618
  };
9555
9619
  } catch (e) {
9556
9620
  console.warn("[SettingsProvider] Failed to load settings:", e);
9557
9621
  }
9558
9622
  return n;
9559
9623
  }
9560
- function gs(e, t) {
9624
+ function Ss(e, t) {
9561
9625
  let n = Ot[e] ?? Ot.dark;
9562
9626
  return t[e] ? {
9563
9627
  ...n,
9564
9628
  ...t[e]
9565
9629
  } : n;
9566
9630
  }
9567
- function _s(e, t) {
9631
+ function Cs(e, t) {
9568
9632
  return e.uiFont === t.uiFont && e.headingFont === t.headingFont && e.proseFont === t.proseFont && e.controlFont === t.controlFont && e.labelFont === t.labelFont && e.navigationFont === t.navigationFont && e.dataFont === t.dataFont && e.codeFont === t.codeFont && e.fontSize === t.fontSize && e.borderRadius === t.borderRadius && e.borderWidth === t.borderWidth && e.tracking === t.tracking && e.lineHeight === t.lineHeight && e.density === t.density;
9569
9633
  }
9570
- function vs({ children: e, storageKey: t = ss, initialSettings: n, forcedTheme: r }) {
9571
- let [i, a] = h(() => hs(t, n)), [o, c] = h(() => typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches);
9634
+ function ws({ children: e, storageKey: t = ps, initialSettings: n, forcedTheme: r }) {
9635
+ let [i, a] = h(() => xs(t, n)), [o, c] = h(() => typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches);
9572
9636
  l(() => {
9573
9637
  if (typeof window > "u") return;
9574
9638
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => c(e.matches);
@@ -9580,9 +9644,9 @@ function vs({ children: e, storageKey: t = ss, initialSettings: n, forcedTheme:
9580
9644
  i.preferredDarkTheme,
9581
9645
  i.preferredLightTheme,
9582
9646
  o
9583
- ]), [d, f] = h(() => gs(u, i.themeOverrides));
9647
+ ]), [d, f] = h(() => Ss(u, i.themeOverrides));
9584
9648
  l(() => {
9585
- f(gs(u, i.themeOverrides));
9649
+ f(Ss(u, i.themeOverrides));
9586
9650
  }, [u]);
9587
9651
  let m = s((e) => {
9588
9652
  a((n) => {
@@ -9599,15 +9663,15 @@ function vs({ children: e, storageKey: t = ss, initialSettings: n, forcedTheme:
9599
9663
  });
9600
9664
  }, [t]);
9601
9665
  l(() => {
9602
- let e = document.documentElement, t = os[i.accentColor];
9666
+ let e = document.documentElement, t = fs[i.accentColor];
9603
9667
  e.style.setProperty("--accent", t.base), e.style.setProperty("--accent-hover", t.hover), e.style.setProperty("--accent-active", t.active), e.style.setProperty("--accent-muted", t.muted), e.style.setProperty("--accent-subtle", t.subtle);
9604
9668
  }, [i.accentColor]), l(() => {
9605
9669
  document.documentElement.classList.toggle("reduced-motion", i.reducedMotion);
9606
9670
  }, [i.reducedMotion]), l(() => {
9607
9671
  let e = document.documentElement, t = d.borderRadius;
9608
- e.style.fontSize = `${d.fontSize / 13 * 100}%`, e.style.setProperty("--font-ui", as[d.uiFont]), e.style.setProperty("--font-heading", as[d.headingFont]), e.style.setProperty("--font-prose", as[d.proseFont]), e.style.setProperty("--font-control", as[d.controlFont]), e.style.setProperty("--font-label", as[d.labelFont]), e.style.setProperty("--font-navigation", as[d.navigationFont]), e.style.setProperty("--font-data", as[d.dataFont]), e.style.setProperty("--font-code", as[d.codeFont]), e.style.setProperty("--ui-radius", t === 0 ? "0" : `${Math.round(t * 2 / 3)}px`), e.style.setProperty("--ui-radius-md", t === 0 ? "0" : `${t}px`), e.style.setProperty("--ui-radius-lg", t === 0 ? "0" : `${Math.round(t * 4 / 3)}px`), e.style.setProperty("--ui-radius-xl", t === 0 ? "0" : `${t * 2}px`), e.style.setProperty("--ui-border-width", `${d.borderWidth}px`), e.style.setProperty("--ui-tracking", `${d.tracking}em`), e.style.setProperty("--ui-line-height", String(d.lineHeight)), e.style.setProperty("--ui-density", `${d.density}rem`);
9672
+ e.style.fontSize = `${d.fontSize / 13 * 100}%`, e.style.setProperty("--font-ui", ds[d.uiFont]), e.style.setProperty("--font-heading", ds[d.headingFont]), e.style.setProperty("--font-prose", ds[d.proseFont]), e.style.setProperty("--font-control", ds[d.controlFont]), e.style.setProperty("--font-label", ds[d.labelFont]), e.style.setProperty("--font-navigation", ds[d.navigationFont]), e.style.setProperty("--font-data", ds[d.dataFont]), e.style.setProperty("--font-code", ds[d.codeFont]), e.style.setProperty("--ui-radius", t === 0 ? "0" : `${Math.round(t * 2 / 3)}px`), e.style.setProperty("--ui-radius-md", t === 0 ? "0" : `${t}px`), e.style.setProperty("--ui-radius-lg", t === 0 ? "0" : `${Math.round(t * 4 / 3)}px`), e.style.setProperty("--ui-radius-xl", t === 0 ? "0" : `${t * 2}px`), e.style.setProperty("--ui-border-width", `${d.borderWidth}px`), e.style.setProperty("--ui-tracking", `${d.tracking}em`), e.style.setProperty("--ui-line-height", String(d.lineHeight)), e.style.setProperty("--ui-density", `${d.density}rem`);
9609
9673
  }, [d]);
9610
- let g = p(() => gs(u, i.themeOverrides), [u, i.themeOverrides]), v = u in i.themeOverrides, y = !_s(d, g), b = s(() => {
9674
+ let g = p(() => Ss(u, i.themeOverrides), [u, i.themeOverrides]), v = u in i.themeOverrides, y = !Cs(d, g), b = s(() => {
9611
9675
  m({ themeOverrides: {
9612
9676
  ...i.themeOverrides,
9613
9677
  [u]: { ...d }
@@ -9731,7 +9795,7 @@ function vs({ children: e, storageKey: t = ss, initialSettings: n, forcedTheme:
9731
9795
  }
9732
9796
  //#endregion
9733
9797
  //#region src/providers/ThemeProvider.tsx
9734
- var ys = {
9798
+ var Ts = {
9735
9799
  dark: "",
9736
9800
  light: "theme-light",
9737
9801
  lightInverted: "theme-light-inverted",
@@ -9741,23 +9805,23 @@ var ys = {
9741
9805
  cyberBrutalLight: "theme-cyber-brutal-light",
9742
9806
  hashiTheme: "theme-hashi"
9743
9807
  };
9744
- function bs({ children: e }) {
9808
+ function Es({ children: e }) {
9745
9809
  let { resolvedTheme: t } = c(Mt);
9746
9810
  return l(() => {
9747
9811
  let e = document.documentElement;
9748
- Object.values(ys).forEach((t) => {
9812
+ Object.values(Ts).forEach((t) => {
9749
9813
  t && e.classList.remove(t);
9750
9814
  });
9751
- let n = ys[t];
9815
+ let n = Ts[t];
9752
9816
  n && e.classList.add(n);
9753
- }, [t]), /* @__PURE__ */ _($o.Provider, {
9817
+ }, [t]), /* @__PURE__ */ _(as.Provider, {
9754
9818
  value: { theme: t },
9755
9819
  children: e
9756
9820
  });
9757
9821
  }
9758
9822
  //#endregion
9759
9823
  //#region src/components/ui/FormField.tsx
9760
- function xs({ id: e, label: t, hint: n, error: r, required: i, optionalLabel: a, children: o, className: s, ...c }) {
9824
+ function Ds({ id: e, label: t, hint: n, error: r, required: i, optionalLabel: a, children: o, className: s, ...c }) {
9761
9825
  let l = u(), d = e ?? l, f = n ? `${d}-hint` : void 0, p = r ? `${d}-error` : void 0, m = {
9762
9826
  id: d,
9763
9827
  "aria-describedby": Rn(f, p),
@@ -9777,7 +9841,7 @@ function xs({ id: e, label: t, hint: n, error: r, required: i, optionalLabel: a,
9777
9841
  children: [
9778
9842
  /* @__PURE__ */ v("label", {
9779
9843
  htmlFor: d,
9780
- className: "text-text-secondary font-label text-xs font-medium",
9844
+ className: "ui-field-label font-label text-xs font-medium",
9781
9845
  children: [
9782
9846
  t,
9783
9847
  i && /* @__PURE__ */ _("span", {
@@ -9802,13 +9866,13 @@ function xs({ id: e, label: t, hint: n, error: r, required: i, optionalLabel: a,
9802
9866
  })
9803
9867
  });
9804
9868
  }
9805
- function Ss({ className: e, ...t }) {
9869
+ function Os({ className: e, ...t }) {
9806
9870
  return /* @__PURE__ */ _("p", {
9807
9871
  ...t,
9808
9872
  className: G("text-text-secondary text-xs", e)
9809
9873
  });
9810
9874
  }
9811
- function Cs({ className: e, ...t }) {
9875
+ function ks({ className: e, ...t }) {
9812
9876
  return /* @__PURE__ */ _("p", {
9813
9877
  ...t,
9814
9878
  className: G("text-red text-xs", e)
@@ -9816,7 +9880,7 @@ function Cs({ className: e, ...t }) {
9816
9880
  }
9817
9881
  //#endregion
9818
9882
  //#region src/components/ui/Fieldset.tsx
9819
- function ws({ id: e, legend: t, hint: n, error: r, children: i, className: a, "aria-describedby": o, ...s }) {
9883
+ function As({ id: e, legend: t, hint: n, error: r, children: i, className: a, "aria-describedby": o, ...s }) {
9820
9884
  let c = u(), l = e ?? c, d = n ? `${l}-hint` : void 0, f = r ? `${l}-error` : void 0, p = Rn(o, d, f);
9821
9885
  return /* @__PURE__ */ v("fieldset", {
9822
9886
  ...s,
@@ -9850,7 +9914,7 @@ function ws({ id: e, legend: t, hint: n, error: r, children: i, className: a, "a
9850
9914
  }
9851
9915
  //#endregion
9852
9916
  //#region src/components/ui/Radio.tsx
9853
- var Ts = a(({ label: e, description: t, controlSize: n, className: r, id: i, "aria-describedby": a, "aria-invalid": o, ...s }, l) => {
9917
+ var js = a(({ label: e, description: t, controlSize: n, className: r, id: i, "aria-describedby": a, "aria-invalid": o, ...s }, l) => {
9854
9918
  let d = u(), f = an(n), p = c(Ln), m = i ?? p?.id ?? d, h = t ? `${m}-description` : void 0;
9855
9919
  return /* @__PURE__ */ v("label", {
9856
9920
  className: G("ui-choice flex items-start gap-2.5", r),
@@ -9873,14 +9937,14 @@ var Ts = a(({ label: e, description: t, controlSize: n, className: r, id: i, "ar
9873
9937
  })]
9874
9938
  });
9875
9939
  });
9876
- Ts.displayName = "Radio";
9877
- function Es({ name: e, id: t, options: n, value: r, onChange: i, required: a, disabled: o, controlSize: s, ...c }) {
9940
+ js.displayName = "Radio";
9941
+ function Ms({ name: e, id: t, options: n, value: r, onChange: i, required: a, disabled: o, controlSize: s, ...c }) {
9878
9942
  let l = u(), d = t ?? l;
9879
- return /* @__PURE__ */ _(ws, {
9943
+ return /* @__PURE__ */ _(As, {
9880
9944
  ...c,
9881
9945
  id: d,
9882
9946
  disabled: o,
9883
- children: n.map((t, n) => /* @__PURE__ */ _(Ts, {
9947
+ children: n.map((t, n) => /* @__PURE__ */ _(js, {
9884
9948
  id: `${d}-${n}`,
9885
9949
  name: e ?? d,
9886
9950
  value: t.value,
@@ -9894,17 +9958,17 @@ function Es({ name: e, id: t, options: n, value: r, onChange: i, required: a, di
9894
9958
  }, t.value))
9895
9959
  });
9896
9960
  }
9897
- var Ds = Object.assign(Ts, { Group: Es }), Os = {
9961
+ var Ns = Object.assign(js, { Group: Ms }), Ps = {
9898
9962
  pending: "Pending",
9899
9963
  uploading: "Uploading",
9900
9964
  processing: "Processing",
9901
9965
  ready: "Ready",
9902
9966
  error: "Upload failed"
9903
9967
  };
9904
- function ks(e) {
9968
+ function Fs(e) {
9905
9969
  return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
9906
9970
  }
9907
- function As({ name: e, size: t, status: n = "ready", statusLabel: r, error: i, onRetry: a, onRemove: o, onDownload: s, downloadHref: c, actionsDisabled: l, className: u, ...d }) {
9971
+ function Is({ name: e, size: t, status: n = "ready", statusLabel: r, error: i, onRetry: a, onRemove: o, onDownload: s, downloadHref: c, actionsDisabled: l, className: u, ...d }) {
9908
9972
  return /* @__PURE__ */ v("li", {
9909
9973
  ...d,
9910
9974
  className: G("ui-attachment-item border-border flex items-center justify-between gap-3 rounded-md border p-3", u),
@@ -9917,7 +9981,7 @@ function As({ name: e, size: t, status: n = "ready", statusLabel: r, error: i, o
9917
9981
  }),
9918
9982
  t !== void 0 && /* @__PURE__ */ _("p", {
9919
9983
  className: "text-text-tertiary text-2xs",
9920
- children: ks(t)
9984
+ children: Fs(t)
9921
9985
  }),
9922
9986
  /* @__PURE__ */ v("div", {
9923
9987
  role: "status",
@@ -9926,7 +9990,7 @@ function As({ name: e, size: t, status: n = "ready", statusLabel: r, error: i, o
9926
9990
  children: [
9927
9991
  e,
9928
9992
  ": ",
9929
- i ?? r ?? Os[n]
9993
+ i ?? r ?? Ps[n]
9930
9994
  ]
9931
9995
  })
9932
9996
  ]
@@ -9968,7 +10032,7 @@ function As({ name: e, size: t, status: n = "ready", statusLabel: r, error: i, o
9968
10032
  })]
9969
10033
  });
9970
10034
  }
9971
- function js({ children: e, className: t, "aria-label": n = "Attachments", ...r }) {
10035
+ function Ls({ children: e, className: t, "aria-label": n = "Attachments", ...r }) {
9972
10036
  return /* @__PURE__ */ _("ul", {
9973
10037
  ...r,
9974
10038
  "aria-label": n,
@@ -9978,7 +10042,7 @@ function js({ children: e, className: t, "aria-label": n = "Attachments", ...r }
9978
10042
  }
9979
10043
  //#endregion
9980
10044
  //#region src/lib/dateParts.ts
9981
- function Ms(e, { required: t = !1, minYear: n = 1900, maxYear: r = 2100 } = {}) {
10045
+ function Rs(e, { required: t = !1, minYear: n = 1900, maxYear: r = 2100 } = {}) {
9982
10046
  let i = [
9983
10047
  e.day,
9984
10048
  e.month,
@@ -10008,10 +10072,10 @@ function Ms(e, { required: t = !1, minYear: n = 1900, maxYear: r = 2100 } = {})
10008
10072
  }
10009
10073
  //#endregion
10010
10074
  //#region src/components/ui/DatePartsInput.tsx
10011
- function Ns({ value: e, onChange: t, label: n, hint: r, error: i, id: a, name: o, disabled: s, required: c, className: d, inputProps: f, minYear: p = 1900, maxYear: g = 2100 }) {
10075
+ function zs({ value: e, onChange: t, label: n, hint: r, error: i, id: a, name: o, disabled: s, required: c, className: d, inputProps: f, minYear: p = 1900, maxYear: g = 2100 }) {
10012
10076
  let y = u(), b = m({}), [x, S] = h(!1);
10013
10077
  if (!Number.isInteger(p) || !Number.isInteger(g) || p < 1 || g > 9999 || p > g) throw RangeError("DatePartsInput requires year bounds between 1 and 9999, with minYear <= maxYear");
10014
- let C = Ms(e, {
10078
+ let C = Rs(e, {
10015
10079
  required: c,
10016
10080
  minYear: p,
10017
10081
  maxYear: g
@@ -10044,7 +10108,7 @@ function Ns({ value: e, onChange: t, label: n, hint: r, error: i, id: a, name: o
10044
10108
  "aria-describedby": A,
10045
10109
  children: [
10046
10110
  /* @__PURE__ */ v("legend", {
10047
- className: "text-text-secondary text-xs font-medium",
10111
+ className: "ui-field-label text-xs font-medium",
10048
10112
  children: [n, c && /* @__PURE__ */ _("span", { children: " (required)" })]
10049
10113
  }),
10050
10114
  r && /* @__PURE__ */ _("p", {
@@ -10060,7 +10124,7 @@ function Ns({ value: e, onChange: t, label: n, hint: r, error: i, id: a, name: o
10060
10124
  "year"
10061
10125
  ].map((n) => /* @__PURE__ */ v("div", {
10062
10126
  className: "ui-date-part",
10063
- children: [/* @__PURE__ */ _(Ko, {
10127
+ children: [/* @__PURE__ */ _(Qo, {
10064
10128
  inputMode: "numeric",
10065
10129
  "data-1p-ignore": "true",
10066
10130
  ...f?.[n],
@@ -10127,7 +10191,7 @@ function Ns({ value: e, onChange: t, label: n, hint: r, error: i, id: a, name: o
10127
10191
  }
10128
10192
  //#endregion
10129
10193
  //#region src/components/ui/Skeleton.tsx
10130
- function Ps({ className: e, width: t, height: n, style: r, ...i }) {
10194
+ function Bs({ className: e, width: t, height: n, style: r, ...i }) {
10131
10195
  return /* @__PURE__ */ _("div", {
10132
10196
  ...i,
10133
10197
  "aria-hidden": "true",
@@ -10141,7 +10205,7 @@ function Ps({ className: e, width: t, height: n, style: r, ...i }) {
10141
10205
  }
10142
10206
  //#endregion
10143
10207
  //#region src/components/ui/NavTabs.tsx
10144
- function Fs({ items: e, activeKey: t, renderLink: n, className: r, "aria-label": i = "Sections", ...a }) {
10208
+ function Vs({ items: e, activeKey: t, renderLink: n, className: r, "aria-label": i = "Sections", ...a }) {
10145
10209
  return /* @__PURE__ */ _("nav", {
10146
10210
  ...a,
10147
10211
  "aria-label": i,
@@ -10165,7 +10229,7 @@ function Fs({ items: e, activeKey: t, renderLink: n, className: r, "aria-label":
10165
10229
  }
10166
10230
  //#endregion
10167
10231
  //#region src/components/ui/CharacterCount.tsx
10168
- function Is({ value: e, maxLength: t, announcementDelay: n = 1e3, className: r, ...i }) {
10232
+ function Hs({ value: e, maxLength: t, announcementDelay: n = 1e3, className: r, ...i }) {
10169
10233
  let a = t - e.length, o = Math.abs(a), s = `${o} ${o === 1 ? "character" : "characters"} ${a < 0 ? "over the limit" : "remaining"}`, [c, u] = h(s);
10170
10234
  return l(() => {
10171
10235
  let e = setTimeout(() => u(s), n);
@@ -10187,7 +10251,7 @@ function Is({ value: e, maxLength: t, announcementDelay: n = 1e3, className: r,
10187
10251
  }
10188
10252
  //#endregion
10189
10253
  //#region src/providers/ControlSizeProvider.tsx
10190
- function Ls({ size: e, children: t }) {
10254
+ function Us({ size: e, children: t }) {
10191
10255
  return /* @__PURE__ */ _(rn.Provider, {
10192
10256
  value: e,
10193
10257
  children: t
@@ -10195,7 +10259,7 @@ function Ls({ size: e, children: t }) {
10195
10259
  }
10196
10260
  //#endregion
10197
10261
  //#region src/components/ui/ProgressBar.tsx
10198
- var Rs = a(function({ label: e, value: t, min: n = 0, max: r = 100, color: i = "accent", striped: a = !1, animated: o = !1, id: s, className: c, ...l }, d) {
10262
+ var Ws = a(function({ label: e, value: t, min: n = 0, max: r = 100, color: i = "accent", striped: a = !1, animated: o = !1, id: s, className: c, ...l }, d) {
10199
10263
  let f = u(), p = s ?? f;
10200
10264
  if (!Number.isFinite(n) || !Number.isFinite(r) || r <= n) throw RangeError("ProgressBar requires a finite max greater than min");
10201
10265
  if (t !== void 0 && !Number.isFinite(t)) throw RangeError("ProgressBar value must be finite");
@@ -10232,4 +10296,138 @@ var Rs = a(function({ label: e, value: t, min: n = 0, max: r = 100, color: i = "
10232
10296
  });
10233
10297
  });
10234
10298
  //#endregion
10235
- export { qn as Alert, Pn as AppShell, He as AreaChart, As as AttachmentItem, js as AttachmentList, Jn as AuthCard, Fn as AuthLayout, Yn as AuthorByline, Lt as Avatar, In as BackLink, Qn as Badge, Ge as BarChart, ut as BottomNav, tn as Breadcrumbs, fn as Button, pt as COMMAND_PALETTE_EVENT, zi as Calendar, Ki as CalendarGrid, qi as Card, Is as CharacterCount, zn as Checkbox, $i as CodeInput, Hn as ColumnPicker, ea as Combobox, vt as CommandPalette, Ls as ControlSizeProvider, Ai as DEFAULT_CALENDAR_LABELS, mt as DEFAULT_COMMAND_PALETTE_SHORTCUT, ta as DangerZone, Ns as DatePartsInput, ra as DatePicker, sa as DateRangePicker, pa as DateTimePicker, va as DetailPanel, Pa as Dialog, Fa as DialogActions, Ia as DividerLabel, qe as DonutChart, La as DropdownMenu, Ra as EmptyState, za as ErrorBoundary, Cs as FieldError, Ss as FieldHint, ws as Fieldset, Bn as FilterButton, Ba as FilterDropdown, xs as FormField, Va as Kbd, Ua as LoadingSpinner, Wa as MetadataGrid, Ga as MetricCard, bt as MobileDrawer, Fs as NavTabs, Xa as OAuthButton, Za as PageHeader, Qa as PageSection, Un as Pagination, eo as PaginationBar, no as PasswordInput, ao as PasswordRequirements, oo as ProfileHeader, Rs as ProgressBar, so as ProseContent, co as QrCapacityError, Mo as QrCode, Je as RadarChart, Ye as RadialBarChart, Ds as Radio, ji as RadioPill, Gn as ResourceTable, No as SearchInput, pn as SectionHeader, Po as Select, xn as SelectDropdown, Fo as SettingRow, Mt as SettingsContext, vs as SettingsProvider, Io as SideSheet, $t as Sidebar, Ps as Skeleton, Sn as Slider, Xe as SparkLine, zo as SplitPaneLayout, rt as StackedBarChart, Ho as StatusDot, Uo as StepProgress, Tn as THEME_MENU_EVENT, Wo as Tabs, Ko as TextInput, Go as Textarea, $o as ThemeContext, On as ThemeMenu, Cn as ThemePreview, bs as ThemeProvider, qo as Timeline, Bt as ToastProvider, wn as Toggle, Zo as Toolbar, Xo as Tooltip, Mn as TopBar, Qo as UploadDropzone, ot as VerticalBarChart, At as accentItems, Q as addDays, or as addMinutes, sr as addMonths, tr as calendarDateFromParts, Z as calendarDateParts, G as cn, Xr as createCalendarDateMath, Tt as darkThemes, mr as dateAtMinutes, ro as defaultPasswordRequirements, dr as differenceInDays, jo as encodeQrCode, Ur as expandAvailabilityRules, kt as fontOptions, rs as formatDateLong, ns as formatDateShort, Mr as formatRangeTitle, is as formatRelative, Or as formatTime, gr as formatTimeOfDay, kr as formatTimeRange, vr as fromDateKey, Hr as getActiveResourceIds, wr as getViewRange, Sr as getVisibleDays, ct as handleAppShellNavigate, Yr as isAllDayLike, st as isAppShellPathActive, Ct as isLightTheme, ur as isSameDay, xr as isTimeGridView, Lr as layoutOverlaps, wt as lightThemes, gt as matchesCommandPaletteShortcut, io as meetsPasswordRequirements, fr as minutesOfDay, lt as navigateToPath, ht as openCommandPalette, En as openThemeMenu, hr as parseTime, Nr as rangesOverlap, Tr as shiftDate, br as snapDate, yr as snapMinutes, Wn as sortRows, ar as startOfDay, lr as startOfMonth, cr as startOfWeek, Ot as themeDefaults, xt as themeItems, _r as toDateKey, nn as useApplyTheme, an as useControlSize, jt as useDismiss, ft as useFocusTrap, Nt as useSettings, es as useTheme, zt as useToast };
10299
+ //#region src/components/ui/Stack.tsx
10300
+ function Gs({ as: e, gap: t = 0, align: n = "stretch", justify: r = "start", className: a, style: o, ...s }) {
10301
+ return i(e ?? "div", {
10302
+ ...s,
10303
+ className: G("ui-stack", a),
10304
+ style: {
10305
+ ...qa(t),
10306
+ "--ui-align": Ja(n),
10307
+ "--ui-justify": Ya(r),
10308
+ ...o
10309
+ }
10310
+ });
10311
+ }
10312
+ //#endregion
10313
+ //#region src/components/ui/Inline.tsx
10314
+ function Ks({ as: e, gap: t = 0, gapX: n, gapY: r, align: a = "stretch", justify: o = "start", wrap: s = !1, inline: c = !1, stackBelow: l, className: u, style: d, ...f }) {
10315
+ return i(e ?? "div", {
10316
+ ...f,
10317
+ className: G("ui-inline", u),
10318
+ style: {
10319
+ ...qa(t, n, r),
10320
+ "--ui-align": Ja(a),
10321
+ "--ui-justify": Ya(o),
10322
+ "--ui-wrap": s ? "wrap" : "nowrap",
10323
+ "--ui-display": c ? "inline-flex" : "flex",
10324
+ ...Ga("direction", l ? {
10325
+ base: "column",
10326
+ [l]: "row"
10327
+ } : "row", (e) => e, "row"),
10328
+ ...d
10329
+ }
10330
+ });
10331
+ }
10332
+ //#endregion
10333
+ //#region src/components/ui/Grid.tsx
10334
+ function qs({ as: e, columns: t = 1, gap: n = 0, gapX: r, gapY: a, align: o = "stretch", justify: s = "stretch", className: c, style: l, ...u }) {
10335
+ return i(e ?? "div", {
10336
+ ...u,
10337
+ className: G("ui-grid", c),
10338
+ style: {
10339
+ ...qa(n, r, a),
10340
+ ...Ga("columns", t, Ka, 1),
10341
+ "--ui-align": o,
10342
+ "--ui-justify": s,
10343
+ ...l
10344
+ }
10345
+ });
10346
+ }
10347
+ //#endregion
10348
+ //#region src/components/ui/GridItem.tsx
10349
+ function Js({ as: e, span: t = 1, className: n, style: r, ...a }) {
10350
+ return i(e ?? "div", {
10351
+ ...a,
10352
+ className: G("ui-grid-item", n),
10353
+ style: {
10354
+ ...Ga("span", t, (e) => `span ${e} / span ${e}`, 1),
10355
+ ...r
10356
+ }
10357
+ });
10358
+ }
10359
+ //#endregion
10360
+ //#region src/components/tables/Table.tsx
10361
+ function Ys({ caption: e, captionHidden: t = !1, stickyHeader: n = !1, maxHeight: r, wrapperClassName: i, wrapperProps: a, className: o, children: s, ...c }) {
10362
+ return /* @__PURE__ */ _("div", {
10363
+ ...a,
10364
+ className: G("ui-table-wrap", a?.className, i),
10365
+ style: {
10366
+ maxHeight: r,
10367
+ ...r ? { overflow: "auto" } : {},
10368
+ ...a?.style
10369
+ },
10370
+ children: /* @__PURE__ */ v("table", {
10371
+ ...c,
10372
+ className: G("ui-table", n && "ui-table-sticky", o),
10373
+ children: [e != null && /* @__PURE__ */ _("caption", {
10374
+ className: G(t && "sr-only"),
10375
+ children: e
10376
+ }), s]
10377
+ })
10378
+ });
10379
+ }
10380
+ function Xs({ className: e, ...t }) {
10381
+ return /* @__PURE__ */ _("thead", {
10382
+ ...t,
10383
+ className: G("ui-table-head", e)
10384
+ });
10385
+ }
10386
+ function Zs({ className: e, ...t }) {
10387
+ return /* @__PURE__ */ _("tbody", {
10388
+ ...t,
10389
+ className: G("ui-table-body", e)
10390
+ });
10391
+ }
10392
+ function Qs({ selected: e, interactive: t = !1, className: n, ...r }) {
10393
+ return /* @__PURE__ */ _("tr", {
10394
+ ...r,
10395
+ "aria-selected": e ?? r["aria-selected"],
10396
+ className: G("ui-table-row", t && "ui-table-interactive", n)
10397
+ });
10398
+ }
10399
+ function $s({ numeric: e = !1, align: t, sort: n, scope: r = "col", className: i, style: a, ...o }) {
10400
+ return /* @__PURE__ */ _("th", {
10401
+ ...o,
10402
+ scope: r,
10403
+ "aria-sort": n ?? o["aria-sort"],
10404
+ className: G("ui-table-header-cell", e && "ui-table-numeric", i),
10405
+ style: {
10406
+ ...t ? { textAlign: t } : {},
10407
+ ...a
10408
+ }
10409
+ });
10410
+ }
10411
+ function ec({ numeric: e = !1, align: t, nowrap: n = !1, className: r, style: i, ...a }) {
10412
+ return /* @__PURE__ */ _("td", {
10413
+ ...a,
10414
+ className: G("ui-table-cell", e && "ui-table-numeric", n && "ui-table-nowrap", r),
10415
+ style: {
10416
+ ...t ? { textAlign: t } : {},
10417
+ ...i
10418
+ }
10419
+ });
10420
+ }
10421
+ function tc({ colSpan: e, children: t, className: n, ...r }) {
10422
+ return /* @__PURE__ */ _("tr", {
10423
+ ...r,
10424
+ className: G("ui-table-empty-row", n),
10425
+ children: /* @__PURE__ */ _("td", {
10426
+ colSpan: e,
10427
+ className: "ui-table-empty-cell",
10428
+ children: t
10429
+ })
10430
+ });
10431
+ }
10432
+ //#endregion
10433
+ export { qn as Alert, Pn as AppShell, He as AreaChart, Is as AttachmentItem, Ls as AttachmentList, Jn as AuthCard, Fn as AuthLayout, Yn as AuthorByline, Lt as Avatar, In as BackLink, Qn as Badge, Ge as BarChart, ut as BottomNav, tn as Breadcrumbs, fn as Button, pt as COMMAND_PALETTE_EVENT, zi as Calendar, Ki as CalendarGrid, qi as Card, Hs as CharacterCount, zn as Checkbox, $i as CodeInput, Hn as ColumnPicker, ea as Combobox, vt as CommandPalette, Us as ControlSizeProvider, Ai as DEFAULT_CALENDAR_LABELS, mt as DEFAULT_COMMAND_PALETTE_SHORTCUT, ta as DangerZone, zs as DatePartsInput, ra as DatePicker, sa as DateRangePicker, pa as DateTimePicker, va as DetailPanel, Fa as Dialog, Ia as DialogActions, La as DividerLabel, qe as DonutChart, Ra as DropdownMenu, za as EmptyState, Ba as ErrorBoundary, ks as FieldError, Os as FieldHint, As as Fieldset, Bn as FilterButton, Va as FilterDropdown, Ds as FormField, qs as Grid, Js as GridItem, Ks as Inline, Ha as Kbd, Wa as LoadingSpinner, Xa as MetadataGrid, Za as MetricCard, bt as MobileDrawer, Vs as NavTabs, no as OAuthButton, ro as PageHeader, io as PageSection, Un as Pagination, oo as PaginationBar, co as PasswordInput, fo as PasswordRequirements, po as ProfileHeader, Ws as ProgressBar, mo as ProseContent, ho as QrCapacityError, Ro as QrCode, Je as RadarChart, Ye as RadialBarChart, Ns as Radio, ji as RadioPill, Gn as ResourceTable, zo as SearchInput, pn as SectionHeader, Bo as Select, xn as SelectDropdown, Vo as SettingRow, Mt as SettingsContext, ws as SettingsProvider, Ho as SideSheet, $t as Sidebar, Bs as Skeleton, Sn as Slider, Xe as SparkLine, Go as SplitPaneLayout, Gs as Stack, rt as StackedBarChart, Jo as StatusDot, Yo as StepProgress, Tn as THEME_MENU_EVENT, Ys as Table, Zs as TableBody, ec as TableCell, tc as TableEmptyRow, Xs as TableHead, $s as TableHeaderCell, Qs as TableRow, Xo as Tabs, Qo as TextInput, Zo as Textarea, as as ThemeContext, On as ThemeMenu, Cn as ThemePreview, Es as ThemeProvider, $o as Timeline, Bt as ToastProvider, wn as Toggle, rs as Toolbar, ns as Tooltip, Mn as TopBar, is as UploadDropzone, ot as VerticalBarChart, At as accentItems, Q as addDays, or as addMinutes, sr as addMonths, tr as calendarDateFromParts, Z as calendarDateParts, G as cn, Xr as createCalendarDateMath, Tt as darkThemes, mr as dateAtMinutes, lo as defaultPasswordRequirements, dr as differenceInDays, Lo as encodeQrCode, Ur as expandAvailabilityRules, kt as fontOptions, ls as formatDateLong, cs as formatDateShort, Mr as formatRangeTitle, us as formatRelative, Or as formatTime, gr as formatTimeOfDay, kr as formatTimeRange, vr as fromDateKey, Hr as getActiveResourceIds, wr as getViewRange, Sr as getVisibleDays, ct as handleAppShellNavigate, Yr as isAllDayLike, st as isAppShellPathActive, Ct as isLightTheme, ur as isSameDay, xr as isTimeGridView, Lr as layoutOverlaps, wt as lightThemes, gt as matchesCommandPaletteShortcut, uo as meetsPasswordRequirements, fr as minutesOfDay, lt as navigateToPath, ht as openCommandPalette, En as openThemeMenu, hr as parseTime, Nr as rangesOverlap, Tr as shiftDate, br as snapDate, yr as snapMinutes, Wn as sortRows, ar as startOfDay, lr as startOfMonth, cr as startOfWeek, Ot as themeDefaults, xt as themeItems, _r as toDateKey, nn as useApplyTheme, an as useControlSize, jt as useDismiss, ft as useFocusTrap, Nt as useSettings, os as useTheme, zt as useToast };