@designa8/vibedesign-stripe-deepseek-85ea 0.2.4 → 0.3.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
@@ -103,7 +103,8 @@ var ICON_REGISTRY = {
103
103
  "grip-vertical": { viewBox: "0 0 24 24", nodes: [{ tag: "circle", cx: "9", cy: "12", r: "1" }, { tag: "circle", cx: "9", cy: "5", r: "1" }, { tag: "circle", cx: "9", cy: "19", r: "1" }, { tag: "circle", cx: "15", cy: "12", r: "1" }, { tag: "circle", cx: "15", cy: "5", r: "1" }, { tag: "circle", cx: "15", cy: "19", r: "1" }] },
104
104
  "euro": { viewBox: "0 0 24 24", nodes: [{ tag: "path", d: "M4 10h12" }, { tag: "path", d: "M4 14h9" }, { tag: "path", d: "M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2" }] },
105
105
  "square": { viewBox: "0 0 24 24", nodes: [{ tag: "rect", width: "18", height: "18", x: "3", y: "3", rx: "2" }] },
106
- "eye-off": { viewBox: "0 0 24 24", nodes: [{ tag: "path", d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }, { tag: "path", d: "M14.084 14.158a3 3 0 0 1-4.242-4.242" }, { tag: "path", d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }, { tag: "path", d: "m2 2 20 20" }] }
106
+ "eye-off": { viewBox: "0 0 24 24", nodes: [{ tag: "path", d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }, { tag: "path", d: "M14.084 14.158a3 3 0 0 1-4.242-4.242" }, { tag: "path", d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }, { tag: "path", d: "m2 2 20 20" }] },
107
+ "chart-column": { viewBox: "0 0 24 24", nodes: [{ tag: "path", d: "M3 3v16a2 2 0 0 0 2 2h16" }, { tag: "path", d: "M18 17V9" }, { tag: "path", d: "M13 17V5" }, { tag: "path", d: "M8 17v-3" }] }
107
108
  };
108
109
 
109
110
  // virtual-pkg:src/atoms/Icon/Icon.tsx
@@ -11680,20 +11681,75 @@ var Pagination = React59.forwardRef(
11680
11681
  );
11681
11682
  Pagination.displayName = "Pagination";
11682
11683
 
11684
+ // virtual-pkg:src/atoms/Panel/Panel.tsx
11685
+ import * as React60 from "react";
11686
+ import { jsx as jsx60, jsxs as jsxs57 } from "react/jsx-runtime";
11687
+ var cn51 = (...values) => values.filter(Boolean).join(" ");
11688
+ var Panel = React60.forwardRef(
11689
+ ({
11690
+ title,
11691
+ meta,
11692
+ actions,
11693
+ headingLevel = 2,
11694
+ id,
11695
+ children,
11696
+ className,
11697
+ ...rest
11698
+ }, ref) => {
11699
+ const generatedId = React60.useId();
11700
+ const baseId = id ?? generatedId;
11701
+ const titleId = `${baseId}-title`;
11702
+ const Heading = headingLevel === 3 ? "h3" : "h2";
11703
+ const hasTrailing = Boolean(meta) || Boolean(actions);
11704
+ return /* @__PURE__ */ jsxs57(
11705
+ "section",
11706
+ {
11707
+ ref,
11708
+ id,
11709
+ "aria-labelledby": titleId,
11710
+ className: cn51(
11711
+ "w-full min-w-0 overflow-hidden rounded-xl border border-hairline",
11712
+ "bg-surface p-xl shadow-card",
11713
+ className
11714
+ ),
11715
+ ...rest,
11716
+ children: [
11717
+ /* @__PURE__ */ jsxs57("div", { className: "mb-lg flex min-w-0 flex-wrap items-center justify-between gap-x-md gap-y-sm", children: [
11718
+ /* @__PURE__ */ jsx60(
11719
+ Heading,
11720
+ {
11721
+ id: titleId,
11722
+ className: "min-w-0 truncate text-heading-sm text-ink",
11723
+ children: title
11724
+ }
11725
+ ),
11726
+ hasTrailing ? /* @__PURE__ */ jsxs57("div", { className: "ml-auto flex shrink-0 items-center gap-md", children: [
11727
+ meta ? /* @__PURE__ */ jsx60("span", { className: "whitespace-nowrap text-caption text-muted", children: meta }) : null,
11728
+ actions
11729
+ ] }) : null
11730
+ ] }),
11731
+ /* @__PURE__ */ jsx60("div", { className: "flex min-w-0 flex-col gap-md", children })
11732
+ ]
11733
+ }
11734
+ );
11735
+ }
11736
+ );
11737
+ Panel.displayName = "Panel";
11738
+
11683
11739
  // virtual-pkg:src/atoms/PaymentRoutingCanvas/PaymentRoutingCanvas.tsx
11684
- import * as React63 from "react";
11740
+ import * as React64 from "react";
11685
11741
  import * as ReactDOM10 from "react-dom";
11686
11742
 
11687
11743
  // virtual-pkg:src/atoms/RoutingEdge/RoutingEdge.tsx
11688
- import * as React60 from "react";
11689
- import { jsx as jsx60, jsxs as jsxs57 } from "react/jsx-runtime";
11690
- var cn51 = (...values) => values.filter(Boolean).join(" ");
11744
+ import * as React61 from "react";
11745
+ import { jsx as jsx61, jsxs as jsxs58 } from "react/jsx-runtime";
11746
+ var cn52 = (...values) => values.filter(Boolean).join(" ");
11691
11747
  var toneColor = {
11692
11748
  primary: "var(--color-primary)",
11693
11749
  medium: "var(--color-hairline-strong)",
11694
11750
  light: "var(--color-hairline)"
11695
11751
  };
11696
- var RoutingEdge = React60.forwardRef(
11752
+ var RoutingEdge = React61.forwardRef(
11697
11753
  ({
11698
11754
  from,
11699
11755
  to,
@@ -11715,11 +11771,11 @@ var RoutingEdge = React60.forwardRef(
11715
11771
  const gap = Math.abs(to.y - from.y);
11716
11772
  const fill = (axis) => dashed || isUnreachable ? `repeating-linear-gradient(${axis === "x" ? "90deg" : "180deg"}, ${color} 0 var(--spacing-xs), transparent var(--spacing-xs) var(--spacing-sm))` : color;
11717
11773
  const segment = "absolute rounded-full transition-all duration-200 ease-out";
11718
- return /* @__PURE__ */ jsxs57(
11774
+ return /* @__PURE__ */ jsxs58(
11719
11775
  "div",
11720
11776
  {
11721
11777
  ref,
11722
- className: cn51(
11778
+ className: cn52(
11723
11779
  "pointer-events-none absolute inset-0",
11724
11780
  isDimmed ? "opacity-50" : "opacity-100",
11725
11781
  "transition-opacity duration-200 ease-out",
@@ -11729,7 +11785,7 @@ var RoutingEdge = React60.forwardRef(
11729
11785
  "data-edge-state": state,
11730
11786
  ...rest,
11731
11787
  children: [
11732
- /* @__PURE__ */ jsx60(
11788
+ /* @__PURE__ */ jsx61(
11733
11789
  "span",
11734
11790
  {
11735
11791
  "aria-hidden": "true",
@@ -11743,7 +11799,7 @@ var RoutingEdge = React60.forwardRef(
11743
11799
  }
11744
11800
  }
11745
11801
  ),
11746
- gap > 0 ? /* @__PURE__ */ jsx60(
11802
+ gap > 0 ? /* @__PURE__ */ jsx61(
11747
11803
  "span",
11748
11804
  {
11749
11805
  "aria-hidden": "true",
@@ -11757,7 +11813,7 @@ var RoutingEdge = React60.forwardRef(
11757
11813
  }
11758
11814
  }
11759
11815
  ) : null,
11760
- /* @__PURE__ */ jsx60(
11816
+ /* @__PURE__ */ jsx61(
11761
11817
  "span",
11762
11818
  {
11763
11819
  "aria-hidden": "true",
@@ -11771,10 +11827,10 @@ var RoutingEdge = React60.forwardRef(
11771
11827
  }
11772
11828
  }
11773
11829
  ),
11774
- label ? /* @__PURE__ */ jsx60(
11830
+ label ? /* @__PURE__ */ jsx61(
11775
11831
  "span",
11776
11832
  {
11777
- className: cn51(
11833
+ className: cn52(
11778
11834
  "absolute -translate-x-1/2 -translate-y-1/2 whitespace-nowrap rounded-sm border px-xs py-xxs",
11779
11835
  "text-caption transition duration-200 ease-out",
11780
11836
  isActive ? "border-transparent bg-primary text-on-primary shadow-sm" : isUnreachable ? "border-semantic-error/40 bg-surface text-semantic-error" : "border-hairline-soft bg-surface text-muted"
@@ -11791,9 +11847,9 @@ var RoutingEdge = React60.forwardRef(
11791
11847
  RoutingEdge.displayName = "RoutingEdge";
11792
11848
 
11793
11849
  // virtual-pkg:src/atoms/RoutingNode/RoutingNode.tsx
11794
- import * as React61 from "react";
11795
- import { jsx as jsx61, jsxs as jsxs58 } from "react/jsx-runtime";
11796
- var cn52 = (...values) => values.filter(Boolean).join(" ");
11850
+ import * as React62 from "react";
11851
+ import { jsx as jsx62, jsxs as jsxs59 } from "react/jsx-runtime";
11852
+ var cn53 = (...values) => values.filter(Boolean).join(" ");
11797
11853
  var NODE_WIDTH = "var(--container-node, 228px)";
11798
11854
  var accentByType = {
11799
11855
  source: "bg-primary",
@@ -11819,7 +11875,7 @@ var eyebrowByType2 = {
11819
11875
  processor: "Processor",
11820
11876
  fallback: "Fallback"
11821
11877
  };
11822
- var RoutingNode = React61.forwardRef(
11878
+ var RoutingNode = React62.forwardRef(
11823
11879
  ({
11824
11880
  type,
11825
11881
  title,
@@ -11842,21 +11898,21 @@ var RoutingNode = React61.forwardRef(
11842
11898
  }, ref) => {
11843
11899
  const glyph5 = icon ?? defaultIconByType[type];
11844
11900
  const highlighted = selected || active;
11845
- return /* @__PURE__ */ jsxs58(
11901
+ return /* @__PURE__ */ jsxs59(
11846
11902
  "div",
11847
11903
  {
11848
11904
  ref,
11849
- className: cn52("group/node relative shrink-0", className),
11905
+ className: cn53("group/node relative shrink-0", className),
11850
11906
  style: { width: NODE_WIDTH, ...style },
11851
11907
  "data-node-type": type,
11852
11908
  "data-selected": selected || void 0,
11853
11909
  "data-active": active || void 0,
11854
11910
  ...rest,
11855
11911
  children: [
11856
- /* @__PURE__ */ jsxs58(
11912
+ /* @__PURE__ */ jsxs59(
11857
11913
  "div",
11858
11914
  {
11859
- className: cn52(
11915
+ className: cn53(
11860
11916
  "flex items-stretch overflow-hidden rounded-md border bg-surface",
11861
11917
  "transition duration-150 ease-out",
11862
11918
  disabled ? "border-hairline-soft opacity-50" : selected && unreachable ? "border-dashed border-semantic-warning ring-2 ring-primary" : selected ? "border-primary ring-2 ring-primary" : unreachable ? "border-dashed border-semantic-warning" : active ? "border-primary ring-2 ring-primary/25" : conflict ? "border-semantic-error/50" : "border-hairline",
@@ -11864,29 +11920,29 @@ var RoutingNode = React61.forwardRef(
11864
11920
  disabled ? "" : "group-hover/node:border-hairline-strong group-hover/node:shadow-md"
11865
11921
  ),
11866
11922
  children: [
11867
- /* @__PURE__ */ jsx61(
11923
+ /* @__PURE__ */ jsx62(
11868
11924
  "span",
11869
11925
  {
11870
11926
  "aria-hidden": "true",
11871
- className: cn52("w-xs shrink-0", disabled ? "bg-hairline" : accentByType[type])
11927
+ className: cn53("w-xs shrink-0", disabled ? "bg-hairline" : accentByType[type])
11872
11928
  }
11873
11929
  ),
11874
- /* @__PURE__ */ jsxs58("div", { className: "flex min-w-0 flex-1 items-start gap-sm p-sm", children: [
11875
- /* @__PURE__ */ jsx61(
11930
+ /* @__PURE__ */ jsxs59("div", { className: "flex min-w-0 flex-1 items-start gap-sm p-sm", children: [
11931
+ /* @__PURE__ */ jsx62(
11876
11932
  "span",
11877
11933
  {
11878
11934
  "aria-hidden": "true",
11879
- className: cn52(
11935
+ className: cn53(
11880
11936
  "flex size-lg shrink-0 items-center justify-center rounded-xs",
11881
11937
  disabled ? "bg-surface-strong text-muted-soft" : glyphTintByType[type]
11882
11938
  ),
11883
- children: /* @__PURE__ */ jsx61(Icon, { name: glyph5, size: 12, strokeWidth: 1.75 })
11939
+ children: /* @__PURE__ */ jsx62(Icon, { name: glyph5, size: 12, strokeWidth: 1.75 })
11884
11940
  }
11885
11941
  ),
11886
- /* @__PURE__ */ jsxs58("div", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
11887
- /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-xs", children: [
11888
- /* @__PURE__ */ jsx61("span", { className: "truncate text-micro-cap text-muted", children: eyebrowByType2[type] }),
11889
- unreachable ? /* @__PURE__ */ jsx61(
11942
+ /* @__PURE__ */ jsxs59("div", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
11943
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-xs", children: [
11944
+ /* @__PURE__ */ jsx62("span", { className: "truncate text-micro-cap text-muted", children: eyebrowByType2[type] }),
11945
+ unreachable ? /* @__PURE__ */ jsx62(
11890
11946
  Icon,
11891
11947
  {
11892
11948
  name: "triangle",
@@ -11896,45 +11952,45 @@ var RoutingNode = React61.forwardRef(
11896
11952
  }
11897
11953
  ) : null
11898
11954
  ] }),
11899
- /* @__PURE__ */ jsx61("span", { className: "text-body-sm text-ink", children: title }),
11900
- noFallback ? /* @__PURE__ */ jsxs58("span", { className: "mt-xxs inline-flex items-center gap-xs self-start rounded-xs bg-semantic-warning-soft px-sm py-xxs text-caption text-semantic-warning", children: [
11901
- /* @__PURE__ */ jsx61(Icon, { name: "triangle", size: 11, strokeWidth: 2, className: "shrink-0" }),
11955
+ /* @__PURE__ */ jsx62("span", { className: "text-body-sm text-ink", children: title }),
11956
+ noFallback ? /* @__PURE__ */ jsxs59("span", { className: "mt-xxs inline-flex items-center gap-xs self-start rounded-xs bg-semantic-warning-soft px-sm py-xxs text-caption text-semantic-warning", children: [
11957
+ /* @__PURE__ */ jsx62(Icon, { name: "triangle", size: 11, strokeWidth: 2, className: "shrink-0" }),
11902
11958
  "No fallback"
11903
- ] }) : metric || trailing ? /* @__PURE__ */ jsxs58("div", { className: "flex min-w-0 items-baseline justify-between gap-xs", children: [
11904
- metric ? /* @__PURE__ */ jsx61("span", { className: "truncate text-caption text-muted", children: metric }) : null,
11905
- trailing ? /* @__PURE__ */ jsx61("span", { className: "shrink-0 text-caption text-muted", children: trailing }) : null
11959
+ ] }) : metric || trailing ? /* @__PURE__ */ jsxs59("div", { className: "flex min-w-0 items-baseline justify-between gap-xs", children: [
11960
+ metric ? /* @__PURE__ */ jsx62("span", { className: "truncate text-caption text-muted", children: metric }) : null,
11961
+ trailing ? /* @__PURE__ */ jsx62("span", { className: "shrink-0 text-caption text-muted", children: trailing }) : null
11906
11962
  ] }) : null,
11907
- conflict ? /* @__PURE__ */ jsx61("span", { className: "text-caption text-semantic-error", children: conflict }) : null
11963
+ conflict ? /* @__PURE__ */ jsx62("span", { className: "text-caption text-semantic-error", children: conflict }) : null
11908
11964
  ] })
11909
11965
  ] })
11910
11966
  ]
11911
11967
  }
11912
11968
  ),
11913
- /* @__PURE__ */ jsx61(
11969
+ /* @__PURE__ */ jsx62(
11914
11970
  "span",
11915
11971
  {
11916
11972
  "aria-hidden": "true",
11917
- className: cn52(
11973
+ className: cn53(
11918
11974
  "absolute -left-xs top-1/2 size-sm -translate-y-1/2 rounded-full border-2 transition-colors duration-150 ease-out",
11919
11975
  highlighted ? "border-primary bg-primary" : "border-hairline-strong bg-surface"
11920
11976
  )
11921
11977
  }
11922
11978
  ),
11923
- /* @__PURE__ */ jsx61(
11979
+ /* @__PURE__ */ jsx62(
11924
11980
  "span",
11925
11981
  {
11926
11982
  "aria-hidden": "true",
11927
- className: cn52(
11983
+ className: cn53(
11928
11984
  "absolute -right-xs top-1/2 size-sm -translate-y-1/2 rounded-full border-2 transition-colors duration-150 ease-out",
11929
11985
  highlighted ? "border-primary bg-primary" : "border-hairline-strong bg-surface"
11930
11986
  )
11931
11987
  }
11932
11988
  ),
11933
- /* @__PURE__ */ jsx61(
11989
+ /* @__PURE__ */ jsx62(
11934
11990
  "span",
11935
11991
  {
11936
11992
  "aria-hidden": "true",
11937
- className: cn52(
11993
+ className: cn53(
11938
11994
  "pointer-events-none absolute -top-xl left-md whitespace-nowrap rounded-full bg-primary px-md py-xs text-caption text-on-primary shadow-sm",
11939
11995
  "transition duration-150 ease-out",
11940
11996
  showHint ? "translate-y-0 opacity-100" : "-translate-y-xs opacity-0"
@@ -11942,7 +11998,7 @@ var RoutingNode = React61.forwardRef(
11942
11998
  children: "Press Enter"
11943
11999
  }
11944
12000
  ),
11945
- /* @__PURE__ */ jsx61(
12001
+ /* @__PURE__ */ jsx62(
11946
12002
  Button,
11947
12003
  {
11948
12004
  variant: "bare",
@@ -11952,7 +12008,7 @@ var RoutingNode = React61.forwardRef(
11952
12008
  "aria-pressed": selected,
11953
12009
  onClick: onNodeSelect,
11954
12010
  className: "absolute inset-0 rounded-md focus-visible:ring-focus-blue focus-visible:ring-offset-0",
11955
- children: /* @__PURE__ */ jsx61("span", { className: "sr-only", children: title })
12011
+ children: /* @__PURE__ */ jsx62("span", { className: "sr-only", children: title })
11956
12012
  }
11957
12013
  )
11958
12014
  ]
@@ -11963,10 +12019,10 @@ var RoutingNode = React61.forwardRef(
11963
12019
  RoutingNode.displayName = "RoutingNode";
11964
12020
 
11965
12021
  // virtual-pkg:src/atoms/SimulationControls/SimulationControls.tsx
11966
- import * as React62 from "react";
11967
- import { jsx as jsx62, jsxs as jsxs59 } from "react/jsx-runtime";
11968
- var cn53 = (...values) => values.filter(Boolean).join(" ");
11969
- var SimulationControls = React62.forwardRef(
12022
+ import * as React63 from "react";
12023
+ import { jsx as jsx63, jsxs as jsxs60 } from "react/jsx-runtime";
12024
+ var cn54 = (...values) => values.filter(Boolean).join(" ");
12025
+ var SimulationControls = React63.forwardRef(
11970
12026
  ({
11971
12027
  running = false,
11972
12028
  on = false,
@@ -11978,12 +12034,12 @@ var SimulationControls = React62.forwardRef(
11978
12034
  className,
11979
12035
  ...rest
11980
12036
  }, ref) => {
11981
- const trackRef = React62.useRef(null);
11982
- const segmentRef = React62.useRef(null);
11983
- const [pill, setPill] = React62.useState(
12037
+ const trackRef = React63.useRef(null);
12038
+ const segmentRef = React63.useRef(null);
12039
+ const [pill, setPill] = React63.useState(
11984
12040
  null
11985
12041
  );
11986
- React62.useEffect(() => {
12042
+ React63.useEffect(() => {
11987
12043
  const measure = () => {
11988
12044
  const track = trackRef.current;
11989
12045
  const segment = segmentRef.current;
@@ -11996,7 +12052,7 @@ var SimulationControls = React62.forwardRef(
11996
12052
  return () => observer.disconnect();
11997
12053
  }, []);
11998
12054
  const armed = on || running;
11999
- return /* @__PURE__ */ jsxs59(
12055
+ return /* @__PURE__ */ jsxs60(
12000
12056
  "div",
12001
12057
  {
12002
12058
  ref: (node) => {
@@ -12006,18 +12062,18 @@ var SimulationControls = React62.forwardRef(
12006
12062
  },
12007
12063
  role: "group",
12008
12064
  "aria-label": label,
12009
- className: cn53(
12065
+ className: cn54(
12010
12066
  "relative inline-flex items-center gap-xxs rounded-full border border-hairline bg-surface-soft p-xxs",
12011
12067
  "transition-colors duration-150 ease-out",
12012
12068
  className
12013
12069
  ),
12014
12070
  ...rest,
12015
12071
  children: [
12016
- /* @__PURE__ */ jsx62(
12072
+ /* @__PURE__ */ jsx63(
12017
12073
  "span",
12018
12074
  {
12019
12075
  "aria-hidden": "true",
12020
- className: cn53(
12076
+ className: cn54(
12021
12077
  "pointer-events-none absolute bottom-xxs top-xxs rounded-full bg-primary shadow-sm",
12022
12078
  "transition duration-200 ease-out",
12023
12079
  armed ? "opacity-100" : "opacity-0"
@@ -12025,7 +12081,7 @@ var SimulationControls = React62.forwardRef(
12025
12081
  style: { left: pill?.left ?? 0, width: pill?.width ?? 0 }
12026
12082
  }
12027
12083
  ),
12028
- /* @__PURE__ */ jsx62(
12084
+ /* @__PURE__ */ jsx63(
12029
12085
  Button,
12030
12086
  {
12031
12087
  variant: "bare",
@@ -12033,14 +12089,14 @@ var SimulationControls = React62.forwardRef(
12033
12089
  onClick: onReplay,
12034
12090
  disabled: running,
12035
12091
  "aria-label": "Replay sample transaction",
12036
- className: cn53(
12092
+ className: cn54(
12037
12093
  "relative z-10 size-7 shrink-0 rounded-full text-body",
12038
12094
  "hover:bg-surface-strong hover:text-ink disabled:hover:bg-transparent"
12039
12095
  ),
12040
- children: /* @__PURE__ */ jsx62(Icon, { name: "play", size: 13, strokeWidth: 2 })
12096
+ children: /* @__PURE__ */ jsx63(Icon, { name: "play", size: 13, strokeWidth: 2 })
12041
12097
  }
12042
12098
  ),
12043
- /* @__PURE__ */ jsxs59(
12099
+ /* @__PURE__ */ jsxs60(
12044
12100
  Button,
12045
12101
  {
12046
12102
  ref: segmentRef,
@@ -12049,20 +12105,20 @@ var SimulationControls = React62.forwardRef(
12049
12105
  onClick: () => onToggle?.(!on),
12050
12106
  "aria-pressed": armed,
12051
12107
  "aria-label": "Simulation mode",
12052
- className: cn53(
12108
+ className: cn54(
12053
12109
  "relative z-10 shrink-0 rounded-full",
12054
12110
  armed ? "text-on-primary" : "text-muted"
12055
12111
  ),
12056
12112
  children: [
12057
- /* @__PURE__ */ jsx62(Icon, { name: running ? "square" : "play", size: 10, strokeWidth: 2.5 }),
12113
+ /* @__PURE__ */ jsx63(Icon, { name: running ? "square" : "play", size: 10, strokeWidth: 2.5 }),
12058
12114
  "Simulation"
12059
12115
  ]
12060
12116
  }
12061
12117
  ),
12062
- /* @__PURE__ */ jsxs59(
12118
+ /* @__PURE__ */ jsxs60(
12063
12119
  "span",
12064
12120
  {
12065
- className: cn53(
12121
+ className: cn54(
12066
12122
  "relative z-10 px-sm text-caption",
12067
12123
  armed ? "text-ink" : "text-muted"
12068
12124
  ),
@@ -12082,8 +12138,8 @@ var SimulationControls = React62.forwardRef(
12082
12138
  SimulationControls.displayName = "SimulationControls";
12083
12139
 
12084
12140
  // virtual-pkg:src/atoms/PaymentRoutingCanvas/PaymentRoutingCanvas.tsx
12085
- import { jsx as jsx63, jsxs as jsxs60 } from "react/jsx-runtime";
12086
- var cn54 = (...values) => values.filter(Boolean).join(" ");
12141
+ import { jsx as jsx64, jsxs as jsxs61 } from "react/jsx-runtime";
12142
+ var cn55 = (...values) => values.filter(Boolean).join(" ");
12087
12143
  var NODE_W = 228;
12088
12144
  var NODE_H = 78;
12089
12145
  var SOURCE_X = 0;
@@ -12250,7 +12306,7 @@ var computeIssues = (nodes, edges) => {
12250
12306
  return issues;
12251
12307
  };
12252
12308
  var sameIds = (a, b) => a.length === b.length && a.every((id, index) => id === b[index]);
12253
- var PaymentRoutingCanvas = React63.forwardRef(
12309
+ var PaymentRoutingCanvas = React64.forwardRef(
12254
12310
  ({
12255
12311
  nodes,
12256
12312
  edges,
@@ -12269,50 +12325,50 @@ var PaymentRoutingCanvas = React63.forwardRef(
12269
12325
  const incomingNodes = nodes ?? DEFAULT_NODES;
12270
12326
  const graphEdges = edges ?? DEFAULT_EDGES;
12271
12327
  const samples = sampleTransaction ?? DEFAULT_SAMPLES;
12272
- const [localNodes, setLocalNodes] = React63.useState(incomingNodes);
12273
- const [panelNodeId, setPanelNodeId] = React63.useState("brand");
12274
- const [panelOpen, setPanelOpen] = React63.useState(true);
12275
- const [zoom, setZoom] = React63.useState(1);
12276
- const [fit, setFit] = React63.useState(1);
12277
- const [planeHeight, setPlaneHeight] = React63.useState(PLANE_H);
12278
- const [pan, setPan] = React63.useState({ x: 0, y: 0 });
12279
- const [issuesOpen, setIssuesOpen] = React63.useState(false);
12280
- const [priority, setPriority] = React63.useState([
12328
+ const [localNodes, setLocalNodes] = React64.useState(incomingNodes);
12329
+ const [panelNodeId, setPanelNodeId] = React64.useState("brand");
12330
+ const [panelOpen, setPanelOpen] = React64.useState(true);
12331
+ const [zoom, setZoom] = React64.useState(1);
12332
+ const [fit, setFit] = React64.useState(1);
12333
+ const [planeHeight, setPlaneHeight] = React64.useState(PLANE_H);
12334
+ const [pan, setPan] = React64.useState({ x: 0, y: 0 });
12335
+ const [issuesOpen, setIssuesOpen] = React64.useState(false);
12336
+ const [priority, setPriority] = React64.useState([
12281
12337
  { id: "p1", label: "Card brand = credit" },
12282
12338
  { id: "p2", label: "Country = DE" },
12283
12339
  { id: "p3", label: "Risk score \u2265 70" }
12284
12340
  ]);
12285
- const [fallbackEnabled, setFallbackEnabled] = React63.useState(true);
12286
- const [sampleIndex, setSampleIndex] = React63.useState(0);
12287
- const [stepIndex, setStepIndex] = React63.useState(2);
12288
- const [replaying, setReplaying] = React63.useState(false);
12289
- const [focusedId, setFocusedId] = React63.useState(null);
12290
- const [anchor, setAnchor] = React63.useState({ top: 0, right: 16 });
12341
+ const [fallbackEnabled, setFallbackEnabled] = React64.useState(true);
12342
+ const [sampleIndex, setSampleIndex] = React64.useState(0);
12343
+ const [stepIndex, setStepIndex] = React64.useState(2);
12344
+ const [replaying, setReplaying] = React64.useState(false);
12345
+ const [focusedId, setFocusedId] = React64.useState(null);
12346
+ const [anchor, setAnchor] = React64.useState({ top: 0, right: 16 });
12291
12347
  const controlledSelection = selectedNodeIds !== void 0;
12292
- const [internalSelection, setInternalSelection] = React63.useState(
12348
+ const [internalSelection, setInternalSelection] = React64.useState(
12293
12349
  () => defaultSelectedNodeIds ?? DEFAULT_SELECTION
12294
12350
  );
12295
12351
  const selection = controlledSelection ? selectedNodeIds : internalSelection;
12296
- const selectionRef = React63.useRef(selection);
12352
+ const selectionRef = React64.useRef(selection);
12297
12353
  selectionRef.current = selection;
12298
- const onSelectionChangeRef = React63.useRef(onSelectionChange);
12354
+ const onSelectionChangeRef = React64.useRef(onSelectionChange);
12299
12355
  onSelectionChangeRef.current = onSelectionChange;
12300
- const [marqueeBox, setMarqueeBox] = React63.useState(null);
12301
- const [marqueeIds, setMarqueeIds] = React63.useState(null);
12302
- const marqueeRef = React63.useRef(null);
12303
- const [modifierHeld, setModifierHeld] = React63.useState(false);
12304
- const rootRef = React63.useRef(null);
12305
- const planeRef = React63.useRef(null);
12306
- const triggerRef = React63.useRef(null);
12307
- const nodeRefs = React63.useRef({});
12308
- const suppressClick = React63.useRef(false);
12309
- const nodeDragActive = React63.useRef(false);
12310
- const nodesRef = React63.useRef(localNodes);
12356
+ const [marqueeBox, setMarqueeBox] = React64.useState(null);
12357
+ const [marqueeIds, setMarqueeIds] = React64.useState(null);
12358
+ const marqueeRef = React64.useRef(null);
12359
+ const [modifierHeld, setModifierHeld] = React64.useState(false);
12360
+ const rootRef = React64.useRef(null);
12361
+ const planeRef = React64.useRef(null);
12362
+ const triggerRef = React64.useRef(null);
12363
+ const nodeRefs = React64.useRef({});
12364
+ const suppressClick = React64.useRef(false);
12365
+ const nodeDragActive = React64.useRef(false);
12366
+ const nodesRef = React64.useRef(localNodes);
12311
12367
  nodesRef.current = localNodes;
12312
- React63.useEffect(() => {
12368
+ React64.useEffect(() => {
12313
12369
  setLocalNodes(incomingNodes);
12314
12370
  }, [incomingNodes]);
12315
- React63.useEffect(() => {
12371
+ React64.useEffect(() => {
12316
12372
  const syncModifier = (event) => setModifierHeld(Boolean(event.metaKey || event.ctrlKey));
12317
12373
  const releaseModifier = () => setModifierHeld(false);
12318
12374
  window.addEventListener("keydown", syncModifier);
@@ -12324,7 +12380,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12324
12380
  window.removeEventListener("blur", releaseModifier);
12325
12381
  };
12326
12382
  }, []);
12327
- React63.useEffect(() => {
12383
+ React64.useEffect(() => {
12328
12384
  const plane = planeRef.current;
12329
12385
  if (!plane) return;
12330
12386
  const measure = () => {
@@ -12345,16 +12401,16 @@ var PaymentRoutingCanvas = React63.forwardRef(
12345
12401
  observer.observe(plane);
12346
12402
  return () => observer.disconnect();
12347
12403
  }, []);
12348
- const issues = React63.useMemo(
12404
+ const issues = React64.useMemo(
12349
12405
  () => computeIssues(localNodes, graphEdges),
12350
12406
  [localNodes, graphEdges]
12351
12407
  );
12352
- React63.useEffect(() => {
12408
+ React64.useEffect(() => {
12353
12409
  onValidationChange?.(issues);
12354
12410
  }, [issues, onValidationChange]);
12355
12411
  const sample = samples[sampleIndex] ?? samples[0];
12356
12412
  const steps = sample?.steps ?? [];
12357
- React63.useEffect(() => {
12413
+ React64.useEffect(() => {
12358
12414
  if (!replaying) return;
12359
12415
  if (stepIndex >= steps.length - 1) {
12360
12416
  setReplaying(false);
@@ -12369,11 +12425,11 @@ var PaymentRoutingCanvas = React63.forwardRef(
12369
12425
  }, 900);
12370
12426
  return () => window.clearTimeout(timer);
12371
12427
  }, [replaying, stepIndex, steps, onSimulationStep]);
12372
- const traversed = React63.useMemo(
12428
+ const traversed = React64.useMemo(
12373
12429
  () => new Set(steps.slice(0, stepIndex + 1).map((step) => step.nodeId)),
12374
12430
  [steps, stepIndex]
12375
12431
  );
12376
- const activeEdges = React63.useMemo(() => {
12432
+ const activeEdges = React64.useMemo(() => {
12377
12433
  const pairs = [];
12378
12434
  for (let index = 0; index < stepIndex; index += 1) {
12379
12435
  const from = steps[index]?.nodeId;
@@ -12382,7 +12438,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12382
12438
  }
12383
12439
  return new Set(pairs);
12384
12440
  }, [steps, stepIndex]);
12385
- const nodeById = React63.useMemo(() => {
12441
+ const nodeById = React64.useMemo(() => {
12386
12442
  const map = /* @__PURE__ */ new Map();
12387
12443
  localNodes.forEach((node) => map.set(node.id, node));
12388
12444
  return map;
@@ -12392,9 +12448,9 @@ var PaymentRoutingCanvas = React63.forwardRef(
12392
12448
  y: node.y + (node.h ?? NODE_H) / 2
12393
12449
  });
12394
12450
  const focusedNode = panelNodeId ? nodeById.get(panelNodeId) : void 0;
12395
- const selectionSet = React63.useMemo(() => new Set(selection), [selection]);
12396
- const marqueeSet = React63.useMemo(() => new Set(marqueeIds ?? []), [marqueeIds]);
12397
- const commitSelection = React63.useCallback(
12451
+ const selectionSet = React64.useMemo(() => new Set(selection), [selection]);
12452
+ const marqueeSet = React64.useMemo(() => new Set(marqueeIds ?? []), [marqueeIds]);
12453
+ const commitSelection = React64.useCallback(
12398
12454
  (next) => {
12399
12455
  const unique = next.filter((id, index) => next.indexOf(id) === index);
12400
12456
  if (sameIds(unique, selectionRef.current)) return;
@@ -12666,7 +12722,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12666
12722
  setIssuesOpen((current) => !current);
12667
12723
  };
12668
12724
  const scale = fit * zoom;
12669
- return /* @__PURE__ */ jsxs60(
12725
+ return /* @__PURE__ */ jsxs61(
12670
12726
  "div",
12671
12727
  {
12672
12728
  ref: (node) => {
@@ -12674,20 +12730,20 @@ var PaymentRoutingCanvas = React63.forwardRef(
12674
12730
  if (typeof ref === "function") ref(node);
12675
12731
  else if (ref) ref.current = node;
12676
12732
  },
12677
- className: cn54(
12733
+ className: cn55(
12678
12734
  "flex min-h-0 w-full flex-col overflow-hidden rounded-lg border border-hairline bg-surface shadow-card",
12679
12735
  className
12680
12736
  ),
12681
12737
  "data-simulating": replaying || void 0,
12682
12738
  ...rest,
12683
12739
  children: [
12684
- /* @__PURE__ */ jsxs60("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-b border-hairline px-lg py-md", children: [
12685
- /* @__PURE__ */ jsxs60("div", { className: "flex min-w-0 flex-col gap-xxs", children: [
12686
- /* @__PURE__ */ jsx63("span", { className: "text-body-md text-ink", children: "Payment routing" }),
12687
- /* @__PURE__ */ jsx63("span", { className: "text-caption text-muted", children: "12,480 payments \xB7 last 24h" })
12740
+ /* @__PURE__ */ jsxs61("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-b border-hairline px-lg py-md", children: [
12741
+ /* @__PURE__ */ jsxs61("div", { className: "flex min-w-0 flex-col gap-xxs", children: [
12742
+ /* @__PURE__ */ jsx64("span", { className: "text-body-md text-ink", children: "Payment routing" }),
12743
+ /* @__PURE__ */ jsx64("span", { className: "text-caption text-muted", children: "12,480 payments \xB7 last 24h" })
12688
12744
  ] }),
12689
- /* @__PURE__ */ jsxs60("div", { className: "flex flex-wrap items-center gap-md", children: [
12690
- /* @__PURE__ */ jsx63(
12745
+ /* @__PURE__ */ jsxs61("div", { className: "flex flex-wrap items-center gap-md", children: [
12746
+ /* @__PURE__ */ jsx64(
12691
12747
  SimulationControls,
12692
12748
  {
12693
12749
  running: replaying,
@@ -12704,7 +12760,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12704
12760
  }
12705
12761
  }
12706
12762
  ),
12707
- /* @__PURE__ */ jsx63(
12763
+ /* @__PURE__ */ jsx64(
12708
12764
  Button,
12709
12765
  {
12710
12766
  ref: triggerRef,
@@ -12713,7 +12769,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12713
12769
  "aria-expanded": issuesOpen,
12714
12770
  "aria-controls": "routing-validation-summary",
12715
12771
  onClick: openIssues,
12716
- leadingIcon: /* @__PURE__ */ jsx63(
12772
+ leadingIcon: /* @__PURE__ */ jsx64(
12717
12773
  Icon,
12718
12774
  {
12719
12775
  name: issues.length > 0 ? "triangle" : "check",
@@ -12721,7 +12777,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12721
12777
  strokeWidth: 2
12722
12778
  }
12723
12779
  ),
12724
- className: cn54(
12780
+ className: cn55(
12725
12781
  "rounded-full border-transparent",
12726
12782
  issues.length > 0 ? "bg-semantic-error-soft text-semantic-error hover:bg-semantic-error-soft/70" : "bg-semantic-success-soft text-semantic-success"
12727
12783
  ),
@@ -12730,9 +12786,9 @@ var PaymentRoutingCanvas = React63.forwardRef(
12730
12786
  )
12731
12787
  ] })
12732
12788
  ] }),
12733
- /* @__PURE__ */ jsxs60("div", { className: "flex min-h-0 flex-1 items-stretch", children: [
12734
- /* @__PURE__ */ jsxs60("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
12735
- /* @__PURE__ */ jsxs60(
12789
+ /* @__PURE__ */ jsxs61("div", { className: "flex min-h-0 flex-1 items-stretch", children: [
12790
+ /* @__PURE__ */ jsxs61("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
12791
+ /* @__PURE__ */ jsxs61(
12736
12792
  "div",
12737
12793
  {
12738
12794
  ref: planeRef,
@@ -12774,7 +12830,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12774
12830
  setPan({ x: 0, y: 0 });
12775
12831
  }
12776
12832
  },
12777
- className: cn54(
12833
+ className: cn55(
12778
12834
  "relative min-h-0 min-w-0 flex-1 overflow-hidden bg-canvas",
12779
12835
  // Held Cmd / Ctrl over the background means "drag to select".
12780
12836
  modifierHeld || marqueeBox ? "cursor-crosshair" : "cursor-grab",
@@ -12788,8 +12844,8 @@ var PaymentRoutingCanvas = React63.forwardRef(
12788
12844
  backgroundSize: "16px 16px"
12789
12845
  },
12790
12846
  children: [
12791
- /* @__PURE__ */ jsx63("p", { id: "routing-selection-status", role: "status", "aria-live": "polite", className: "sr-only", children: selection.length === 0 ? "No nodes selected" : `${selection.length} node${selection.length === 1 ? "" : "s"} selected` }),
12792
- /* @__PURE__ */ jsxs60(
12847
+ /* @__PURE__ */ jsx64("p", { id: "routing-selection-status", role: "status", "aria-live": "polite", className: "sr-only", children: selection.length === 0 ? "No nodes selected" : `${selection.length} node${selection.length === 1 ? "" : "s"} selected` }),
12848
+ /* @__PURE__ */ jsxs61(
12793
12849
  "div",
12794
12850
  {
12795
12851
  className: "relative",
@@ -12809,7 +12865,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12809
12865
  const unreachable = issueByNode(to.id).some(
12810
12866
  (issue) => issue.kind === "unreachable"
12811
12867
  );
12812
- return /* @__PURE__ */ jsx63(
12868
+ return /* @__PURE__ */ jsx64(
12813
12869
  RoutingEdge,
12814
12870
  {
12815
12871
  from: portOf(from, "out"),
@@ -12834,7 +12890,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12834
12890
  );
12835
12891
  const active = traversed.has(node.id);
12836
12892
  const isSelected = selectionSet.has(node.id) || marqueeSet.has(node.id);
12837
- return /* @__PURE__ */ jsx63(
12893
+ return /* @__PURE__ */ jsx64(
12838
12894
  "div",
12839
12895
  {
12840
12896
  ref: (element) => {
@@ -12843,7 +12899,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12843
12899
  className: "absolute",
12844
12900
  style: { left: node.x, top: node.y, width: NODE_W },
12845
12901
  onPointerDown: (event) => beginDrag(event, node),
12846
- children: /* @__PURE__ */ jsx63(
12902
+ children: /* @__PURE__ */ jsx64(
12847
12903
  RoutingNode,
12848
12904
  {
12849
12905
  type: node.type,
@@ -12891,12 +12947,12 @@ var PaymentRoutingCanvas = React63.forwardRef(
12891
12947
  ]
12892
12948
  }
12893
12949
  ),
12894
- /* @__PURE__ */ jsx63(
12950
+ /* @__PURE__ */ jsx64(
12895
12951
  "div",
12896
12952
  {
12897
12953
  "aria-hidden": "true",
12898
12954
  "data-state": marqueeBox ? "active" : "idle",
12899
- className: cn54(
12955
+ className: cn55(
12900
12956
  "pointer-events-none absolute rounded-xs border border-dashed border-primary bg-primary/10",
12901
12957
  "transition-opacity duration-150 ease-out",
12902
12958
  marqueeBox ? "opacity-100" : "opacity-0"
@@ -12910,22 +12966,22 @@ var PaymentRoutingCanvas = React63.forwardRef(
12910
12966
  }
12911
12967
  }
12912
12968
  ),
12913
- /* @__PURE__ */ jsx63("ol", { className: "sr-only", children: graphEdges.map((edge) => {
12969
+ /* @__PURE__ */ jsx64("ol", { className: "sr-only", children: graphEdges.map((edge) => {
12914
12970
  const from = nodeById.get(edge.from);
12915
12971
  const to = nodeById.get(edge.to);
12916
- return /* @__PURE__ */ jsx63("li", { children: `Edge: ${from?.title ?? edge.from} to ${to?.title ?? edge.to}${edge.label ? `, ${edge.label}` : ""}` }, edge.id);
12972
+ return /* @__PURE__ */ jsx64("li", { children: `Edge: ${from?.title ?? edge.from} to ${to?.title ?? edge.to}${edge.label ? `, ${edge.label}` : ""}` }, edge.id);
12917
12973
  }) })
12918
12974
  ]
12919
12975
  }
12920
12976
  ),
12921
- /* @__PURE__ */ jsxs60("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-t border-hairline px-lg py-md", children: [
12922
- /* @__PURE__ */ jsx63("p", { className: "min-w-0 flex-1 text-caption text-body", children: currentStep ? currentStep.reason : "Replay a sample transaction to watch the path." }),
12923
- /* @__PURE__ */ jsxs60("div", { className: "flex shrink-0 items-center gap-sm", children: [
12924
- settled ? /* @__PURE__ */ jsxs60("span", { className: "inline-flex items-center gap-xs rounded-full bg-semantic-success-soft px-sm py-xxs text-caption text-semantic-success", children: [
12925
- /* @__PURE__ */ jsx63(Icon, { name: "check", size: 11, strokeWidth: 2 }),
12977
+ /* @__PURE__ */ jsxs61("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-t border-hairline px-lg py-md", children: [
12978
+ /* @__PURE__ */ jsx64("p", { className: "min-w-0 flex-1 text-caption text-body", children: currentStep ? currentStep.reason : "Replay a sample transaction to watch the path." }),
12979
+ /* @__PURE__ */ jsxs61("div", { className: "flex shrink-0 items-center gap-sm", children: [
12980
+ settled ? /* @__PURE__ */ jsxs61("span", { className: "inline-flex items-center gap-xs rounded-full bg-semantic-success-soft px-sm py-xxs text-caption text-semantic-success", children: [
12981
+ /* @__PURE__ */ jsx64(Icon, { name: "check", size: 11, strokeWidth: 2 }),
12926
12982
  "Settlement"
12927
12983
  ] }) : null,
12928
- /* @__PURE__ */ jsx63(
12984
+ /* @__PURE__ */ jsx64(
12929
12985
  CanvasMinimap,
12930
12986
  {
12931
12987
  blocks: minimapBlocks,
@@ -12939,8 +12995,8 @@ var PaymentRoutingCanvas = React63.forwardRef(
12939
12995
  }
12940
12996
  }
12941
12997
  ),
12942
- /* @__PURE__ */ jsxs60("div", { className: "inline-flex items-center gap-xxs rounded-md border border-hairline bg-surface p-xxs shadow-sm", children: [
12943
- /* @__PURE__ */ jsx63(
12998
+ /* @__PURE__ */ jsxs61("div", { className: "inline-flex items-center gap-xxs rounded-md border border-hairline bg-surface p-xxs shadow-sm", children: [
12999
+ /* @__PURE__ */ jsx64(
12944
13000
  Button,
12945
13001
  {
12946
13002
  variant: "bare",
@@ -12948,10 +13004,10 @@ var PaymentRoutingCanvas = React63.forwardRef(
12948
13004
  "aria-label": "Zoom out",
12949
13005
  onClick: () => setZoom((current) => Math.max(current - 0.1, 0.6)),
12950
13006
  className: "size-7 rounded-sm text-body hover:bg-surface-soft",
12951
- children: /* @__PURE__ */ jsx63(Icon, { name: "minus", size: 14, strokeWidth: 2 })
13007
+ children: /* @__PURE__ */ jsx64(Icon, { name: "minus", size: 14, strokeWidth: 2 })
12952
13008
  }
12953
13009
  ),
12954
- /* @__PURE__ */ jsx63(
13010
+ /* @__PURE__ */ jsx64(
12955
13011
  Button,
12956
13012
  {
12957
13013
  variant: "bare",
@@ -12959,10 +13015,10 @@ var PaymentRoutingCanvas = React63.forwardRef(
12959
13015
  "aria-label": "Zoom in",
12960
13016
  onClick: () => setZoom((current) => Math.min(current + 0.1, 1.6)),
12961
13017
  className: "size-7 rounded-sm text-body hover:bg-surface-soft",
12962
- children: /* @__PURE__ */ jsx63(Icon, { name: "plus", size: 14, strokeWidth: 2 })
13018
+ children: /* @__PURE__ */ jsx64(Icon, { name: "plus", size: 14, strokeWidth: 2 })
12963
13019
  }
12964
13020
  ),
12965
- /* @__PURE__ */ jsx63(
13021
+ /* @__PURE__ */ jsx64(
12966
13022
  Button,
12967
13023
  {
12968
13024
  variant: "bare",
@@ -12973,19 +13029,19 @@ var PaymentRoutingCanvas = React63.forwardRef(
12973
13029
  setPan({ x: 0, y: 0 });
12974
13030
  },
12975
13031
  className: "size-7 rounded-sm text-body hover:bg-surface-soft",
12976
- children: /* @__PURE__ */ jsx63(Icon, { name: "layers", size: 14, strokeWidth: 2 })
13032
+ children: /* @__PURE__ */ jsx64(Icon, { name: "layers", size: 14, strokeWidth: 2 })
12977
13033
  }
12978
13034
  )
12979
13035
  ] })
12980
13036
  ] })
12981
13037
  ] })
12982
13038
  ] }),
12983
- /* @__PURE__ */ jsx63(
13039
+ /* @__PURE__ */ jsx64(
12984
13040
  "div",
12985
13041
  {
12986
13042
  className: "flex min-h-0 shrink-0 flex-col self-stretch border-l border-hairline",
12987
13043
  style: { width: PANEL_W },
12988
- children: /* @__PURE__ */ jsx63(
13044
+ children: /* @__PURE__ */ jsx64(
12989
13045
  NodeConfigPanel,
12990
13046
  {
12991
13047
  open: panelOpen,
@@ -13005,7 +13061,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
13005
13061
  )
13006
13062
  ] }),
13007
13063
  ReactDOM10.createPortal(
13008
- /* @__PURE__ */ jsxs60(
13064
+ /* @__PURE__ */ jsxs61(
13009
13065
  "div",
13010
13066
  {
13011
13067
  id: "routing-validation-summary",
@@ -13019,27 +13075,27 @@ var PaymentRoutingCanvas = React63.forwardRef(
13019
13075
  right: anchor.right,
13020
13076
  zIndex: "var(--z-popover, 1300)"
13021
13077
  },
13022
- className: cn54(
13078
+ className: cn55(
13023
13079
  "w-80 origin-top rounded-md border border-hairline bg-surface shadow-modal",
13024
13080
  "transition duration-200 ease-out",
13025
13081
  issuesOpen ? "pointer-events-auto translate-y-0 scale-100 opacity-100" : "pointer-events-none -translate-y-1 scale-95 opacity-0"
13026
13082
  ),
13027
13083
  children: [
13028
- /* @__PURE__ */ jsx63("p", { className: "border-b border-hairline-soft px-md py-sm text-micro-cap text-muted", children: "Validation" }),
13029
- /* @__PURE__ */ jsx63("ul", { className: "max-h-64 overflow-y-auto overscroll-contain p-xs", children: issues.length === 0 ? /* @__PURE__ */ jsx63("li", { className: "px-sm py-sm text-caption text-muted", children: "Every rule resolves to a processor." }) : issues.map((issue) => /* @__PURE__ */ jsx63("li", { children: /* @__PURE__ */ jsxs60("div", { className: "flex items-start gap-sm rounded-sm px-sm py-sm hover:bg-surface-soft", children: [
13030
- /* @__PURE__ */ jsx63(
13084
+ /* @__PURE__ */ jsx64("p", { className: "border-b border-hairline-soft px-md py-sm text-micro-cap text-muted", children: "Validation" }),
13085
+ /* @__PURE__ */ jsx64("ul", { className: "max-h-64 overflow-y-auto overscroll-contain p-xs", children: issues.length === 0 ? /* @__PURE__ */ jsx64("li", { className: "px-sm py-sm text-caption text-muted", children: "Every rule resolves to a processor." }) : issues.map((issue) => /* @__PURE__ */ jsx64("li", { children: /* @__PURE__ */ jsxs61("div", { className: "flex items-start gap-sm rounded-sm px-sm py-sm hover:bg-surface-soft", children: [
13086
+ /* @__PURE__ */ jsx64(
13031
13087
  Icon,
13032
13088
  {
13033
13089
  name: "triangle",
13034
13090
  size: 12,
13035
13091
  strokeWidth: 2,
13036
- className: cn54(
13092
+ className: cn55(
13037
13093
  "mt-xxs shrink-0",
13038
13094
  issue.kind === "conflict" ? "text-semantic-error" : "text-semantic-warning"
13039
13095
  )
13040
13096
  }
13041
13097
  ),
13042
- /* @__PURE__ */ jsx63("span", { className: "min-w-0 text-caption text-body", children: issue.message })
13098
+ /* @__PURE__ */ jsx64("span", { className: "min-w-0 text-caption text-body", children: issue.message })
13043
13099
  ] }) }, issue.id)) })
13044
13100
  ]
13045
13101
  }
@@ -13054,11 +13110,11 @@ var PaymentRoutingCanvas = React63.forwardRef(
13054
13110
  PaymentRoutingCanvas.displayName = "PaymentRoutingCanvas";
13055
13111
 
13056
13112
  // virtual-pkg:src/atoms/PricingTable/PricingTable.tsx
13057
- import * as React66 from "react";
13113
+ import * as React67 from "react";
13058
13114
 
13059
13115
  // virtual-pkg:src/atoms/PricingTableDesktop/PricingTableDesktop.tsx
13060
- import * as React64 from "react";
13061
- import { jsx as jsx64, jsxs as jsxs61 } from "react/jsx-runtime";
13116
+ import * as React65 from "react";
13117
+ import { jsx as jsx65, jsxs as jsxs62 } from "react/jsx-runtime";
13062
13118
  var DEFAULT_TIERS = [
13063
13119
  {
13064
13120
  id: "starter",
@@ -13114,8 +13170,8 @@ var DEFAULT_TIERS = [
13114
13170
  }
13115
13171
  ];
13116
13172
  var TABULAR = { fontFeatureSettings: '"tnum"' };
13117
- var cn55 = (...values) => values.filter(Boolean).join(" ");
13118
- var PricingTableDesktop = React64.forwardRef(
13173
+ var cn56 = (...values) => values.filter(Boolean).join(" ");
13174
+ var PricingTableDesktop = React65.forwardRef(
13119
13175
  ({
13120
13176
  title = "Pricing table",
13121
13177
  subtitle,
@@ -13124,60 +13180,60 @@ var PricingTableDesktop = React64.forwardRef(
13124
13180
  className,
13125
13181
  ...rest
13126
13182
  }, ref) => {
13127
- const headingId = React64.useId();
13128
- return /* @__PURE__ */ jsxs61(
13183
+ const headingId = React65.useId();
13184
+ return /* @__PURE__ */ jsxs62(
13129
13185
  "section",
13130
13186
  {
13131
13187
  ref,
13132
13188
  "aria-labelledby": headingId,
13133
- className: cn55("w-full bg-canvas px-base py-xl", className),
13189
+ className: cn56("w-full bg-canvas px-base py-xl", className),
13134
13190
  ...rest,
13135
13191
  children: [
13136
- /* @__PURE__ */ jsxs61("div", { className: "flex w-full flex-col gap-sm px-sm pb-lg", children: [
13137
- /* @__PURE__ */ jsx64("h2", { id: headingId, className: "text-display-lg text-ink", children: title }),
13138
- subtitle ? /* @__PURE__ */ jsx64("p", { className: "text-body-md text-muted", children: subtitle }) : null
13192
+ /* @__PURE__ */ jsxs62("div", { className: "flex w-full flex-col gap-sm px-sm pb-lg", children: [
13193
+ /* @__PURE__ */ jsx65("h2", { id: headingId, className: "text-display-lg text-ink", children: title }),
13194
+ subtitle ? /* @__PURE__ */ jsx65("p", { className: "text-body-md text-muted", children: subtitle }) : null
13139
13195
  ] }),
13140
- /* @__PURE__ */ jsx64("div", { className: "w-full rounded-xl bg-surface-soft p-base lg:p-xl", children: /* @__PURE__ */ jsx64("div", { className: "grid grid-cols-1 items-stretch gap-base sm:grid-cols-2 md:grid-cols-system md:gap-md lg:gap-xl lg:py-md", children: tiers.map((tier) => {
13196
+ /* @__PURE__ */ jsx65("div", { className: "w-full rounded-xl bg-surface-soft p-base lg:p-xl", children: /* @__PURE__ */ jsx65("div", { className: "grid grid-cols-1 items-stretch gap-base sm:grid-cols-2 md:grid-cols-system md:gap-md lg:gap-xl lg:py-md", children: tiers.map((tier) => {
13141
13197
  const featured = Boolean(tier.featured);
13142
13198
  const tierHeadingId = `${headingId}-${tier.id}`;
13143
- return /* @__PURE__ */ jsxs61(
13199
+ return /* @__PURE__ */ jsxs62(
13144
13200
  "article",
13145
13201
  {
13146
13202
  "aria-labelledby": tierHeadingId,
13147
13203
  "data-featured": featured ? "true" : void 0,
13148
- className: cn55(
13204
+ className: cn56(
13149
13205
  "flex h-full flex-col rounded-lg border p-lg transition duration-200 ease-out md:col-span-3",
13150
13206
  featured ? "border-transparent bg-brand-dark text-on-primary shadow-lg md:-my-md md:py-xxl" : "border-hairline bg-canvas text-ink shadow-sm hover:border-hairline-strong hover:shadow-md"
13151
13207
  ),
13152
13208
  children: [
13153
- tier.badge ? /* @__PURE__ */ jsx64("div", { className: "mb-md flex", children: /* @__PURE__ */ jsx64(Badge, { variant: "soft", tone: "info", size: "sm", children: tier.badge }) }) : null,
13154
- /* @__PURE__ */ jsx64(
13209
+ tier.badge ? /* @__PURE__ */ jsx65("div", { className: "mb-md flex", children: /* @__PURE__ */ jsx65(Badge, { variant: "soft", tone: "info", size: "sm", children: tier.badge }) }) : null,
13210
+ /* @__PURE__ */ jsx65(
13155
13211
  "h3",
13156
13212
  {
13157
13213
  id: tierHeadingId,
13158
- className: cn55(
13214
+ className: cn56(
13159
13215
  "text-heading-lg",
13160
13216
  featured ? "text-on-primary" : "text-ink"
13161
13217
  ),
13162
13218
  children: tier.name
13163
13219
  }
13164
13220
  ),
13165
- /* @__PURE__ */ jsxs61("p", { className: "mt-md flex items-baseline gap-sm whitespace-nowrap", children: [
13166
- /* @__PURE__ */ jsx64(
13221
+ /* @__PURE__ */ jsxs62("p", { className: "mt-md flex items-baseline gap-sm whitespace-nowrap", children: [
13222
+ /* @__PURE__ */ jsx65(
13167
13223
  "span",
13168
13224
  {
13169
13225
  style: TABULAR,
13170
- className: cn55(
13226
+ className: cn56(
13171
13227
  "text-display-md",
13172
13228
  featured ? "text-on-primary" : "text-ink"
13173
13229
  ),
13174
13230
  children: tier.price
13175
13231
  }
13176
13232
  ),
13177
- tier.period ? /* @__PURE__ */ jsxs61(
13233
+ tier.period ? /* @__PURE__ */ jsxs62(
13178
13234
  "span",
13179
13235
  {
13180
- className: cn55(
13236
+ className: cn56(
13181
13237
  "text-body-sm",
13182
13238
  featured ? "text-on-primary/70" : "text-muted"
13183
13239
  ),
@@ -13188,22 +13244,22 @@ var PricingTableDesktop = React64.forwardRef(
13188
13244
  }
13189
13245
  ) : null
13190
13246
  ] }),
13191
- featured ? /* @__PURE__ */ jsx64(
13247
+ featured ? /* @__PURE__ */ jsx65(
13192
13248
  "div",
13193
13249
  {
13194
13250
  "aria-hidden": "true",
13195
13251
  className: "my-lg h-px w-full bg-on-primary/20"
13196
13252
  }
13197
- ) : /* @__PURE__ */ jsx64(Divider, { decorative: true, className: "my-lg" }),
13198
- /* @__PURE__ */ jsx64("ul", { className: "flex flex-col gap-base", children: tier.features.map((feature) => /* @__PURE__ */ jsxs61(
13253
+ ) : /* @__PURE__ */ jsx65(Divider, { decorative: true, className: "my-lg" }),
13254
+ /* @__PURE__ */ jsx65("ul", { className: "flex flex-col gap-base", children: tier.features.map((feature) => /* @__PURE__ */ jsxs62(
13199
13255
  "li",
13200
13256
  {
13201
- className: cn55(
13257
+ className: cn56(
13202
13258
  "flex items-start gap-md text-body-md",
13203
13259
  featured ? "text-on-primary" : "text-body"
13204
13260
  ),
13205
13261
  children: [
13206
- /* @__PURE__ */ jsx64(
13262
+ /* @__PURE__ */ jsx65(
13207
13263
  Icon,
13208
13264
  {
13209
13265
  name: "check",
@@ -13213,13 +13269,13 @@ var PricingTableDesktop = React64.forwardRef(
13213
13269
  className: "mt-xxs"
13214
13270
  }
13215
13271
  ),
13216
- /* @__PURE__ */ jsx64("span", { className: "min-w-0", children: feature })
13272
+ /* @__PURE__ */ jsx65("span", { className: "min-w-0", children: feature })
13217
13273
  ]
13218
13274
  },
13219
13275
  feature
13220
13276
  )) }),
13221
- /* @__PURE__ */ jsxs61("div", { className: "mt-auto flex flex-col gap-sm pt-xl", children: [
13222
- /* @__PURE__ */ jsx64(
13277
+ /* @__PURE__ */ jsxs62("div", { className: "mt-auto flex flex-col gap-sm pt-xl", children: [
13278
+ /* @__PURE__ */ jsx65(
13223
13279
  Button,
13224
13280
  {
13225
13281
  variant: featured ? "primary" : "outline-brand",
@@ -13230,7 +13286,7 @@ var PricingTableDesktop = React64.forwardRef(
13230
13286
  children: tier.primaryAction
13231
13287
  }
13232
13288
  ),
13233
- tier.secondaryAction ? /* @__PURE__ */ jsx64(
13289
+ tier.secondaryAction ? /* @__PURE__ */ jsx65(
13234
13290
  Button,
13235
13291
  {
13236
13292
  variant: "inverse-outline",
@@ -13255,8 +13311,8 @@ var PricingTableDesktop = React64.forwardRef(
13255
13311
  PricingTableDesktop.displayName = "PricingTableDesktop";
13256
13312
 
13257
13313
  // virtual-pkg:src/atoms/PricingTableMobile/PricingTableMobile.tsx
13258
- import * as React65 from "react";
13259
- import { jsx as jsx65, jsxs as jsxs62 } from "react/jsx-runtime";
13314
+ import * as React66 from "react";
13315
+ import { jsx as jsx66, jsxs as jsxs63 } from "react/jsx-runtime";
13260
13316
  var DEFAULT_PLANS = [
13261
13317
  { id: "starter", name: "Starter", price: "$0.00", period: "mo" },
13262
13318
  { id: "growth", name: "Growth", price: "$49.00", period: "mo" },
@@ -13271,8 +13327,8 @@ var DEFAULT_PLANS = [
13271
13327
  { id: "enterprise", name: "Enterprise", price: "Custom" }
13272
13328
  ];
13273
13329
  var TABULAR2 = { fontFeatureSettings: '"tnum"' };
13274
- var cn56 = (...values) => values.filter(Boolean).join(" ");
13275
- var PricingTableMobile = React65.forwardRef(
13330
+ var cn57 = (...values) => values.filter(Boolean).join(" ");
13331
+ var PricingTableMobile = React66.forwardRef(
13276
13332
  ({
13277
13333
  title,
13278
13334
  subtitle,
@@ -13283,19 +13339,19 @@ var PricingTableMobile = React65.forwardRef(
13283
13339
  className,
13284
13340
  ...rest
13285
13341
  }, ref) => {
13286
- const headingId = React65.useId();
13287
- const [innerSelected, setInnerSelected] = React65.useState(void 0);
13342
+ const headingId = React66.useId();
13343
+ const [innerSelected, setInnerSelected] = React66.useState(void 0);
13288
13344
  const activeId = selectedId ?? innerSelected;
13289
13345
  const handleSelect = (planId) => {
13290
13346
  setInnerSelected(planId);
13291
13347
  onSelect?.(planId);
13292
13348
  };
13293
- return /* @__PURE__ */ jsx65("div", { ref, className: cn56("w-full", className), ...rest, children: /* @__PURE__ */ jsxs62("div", { className: "mx-auto flex w-full max-w-md flex-col gap-md", children: [
13294
- title || subtitle ? /* @__PURE__ */ jsxs62("div", { className: "flex flex-col gap-xxs px-sm pb-xs", children: [
13295
- title ? /* @__PURE__ */ jsx65("h2", { id: headingId, className: "text-heading-md text-ink", children: title }) : null,
13296
- subtitle ? /* @__PURE__ */ jsx65("p", { className: "text-body-sm text-muted", children: subtitle }) : null
13349
+ return /* @__PURE__ */ jsx66("div", { ref, className: cn57("w-full", className), ...rest, children: /* @__PURE__ */ jsxs63("div", { className: "mx-auto flex w-full max-w-md flex-col gap-md", children: [
13350
+ title || subtitle ? /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-xxs px-sm pb-xs", children: [
13351
+ title ? /* @__PURE__ */ jsx66("h2", { id: headingId, className: "text-heading-md text-ink", children: title }) : null,
13352
+ subtitle ? /* @__PURE__ */ jsx66("p", { className: "text-body-sm text-muted", children: subtitle }) : null
13297
13353
  ] }) : null,
13298
- /* @__PURE__ */ jsx65(
13354
+ /* @__PURE__ */ jsx66(
13299
13355
  "div",
13300
13356
  {
13301
13357
  role: "group",
@@ -13305,7 +13361,7 @@ var PricingTableMobile = React65.forwardRef(
13305
13361
  children: plans.map((plan) => {
13306
13362
  const featured = Boolean(plan.featured);
13307
13363
  const selected = activeId === plan.id;
13308
- return /* @__PURE__ */ jsxs62(
13364
+ return /* @__PURE__ */ jsxs63(
13309
13365
  Button,
13310
13366
  {
13311
13367
  variant: "card-row",
@@ -13317,36 +13373,36 @@ var PricingTableMobile = React65.forwardRef(
13317
13373
  onClick: () => handleSelect(plan.id),
13318
13374
  className: "group",
13319
13375
  children: [
13320
- /* @__PURE__ */ jsxs62("span", { className: "flex min-w-0 flex-1 flex-col gap-xs", children: [
13321
- /* @__PURE__ */ jsxs62("span", { className: "flex min-w-0 items-center gap-sm", children: [
13322
- /* @__PURE__ */ jsx65(
13376
+ /* @__PURE__ */ jsxs63("span", { className: "flex min-w-0 flex-1 flex-col gap-xs", children: [
13377
+ /* @__PURE__ */ jsxs63("span", { className: "flex min-w-0 items-center gap-sm", children: [
13378
+ /* @__PURE__ */ jsx66(
13323
13379
  "span",
13324
13380
  {
13325
- className: cn56(
13381
+ className: cn57(
13326
13382
  "truncate text-body-lg",
13327
13383
  featured ? "text-on-primary" : "text-body"
13328
13384
  ),
13329
13385
  children: plan.name
13330
13386
  }
13331
13387
  ),
13332
- plan.badge ? /* @__PURE__ */ jsx65(Badge, { variant: "soft", tone: "info", size: "sm", children: plan.badge }) : null
13388
+ plan.badge ? /* @__PURE__ */ jsx66(Badge, { variant: "soft", tone: "info", size: "sm", children: plan.badge }) : null
13333
13389
  ] }),
13334
- /* @__PURE__ */ jsxs62("span", { className: "flex items-baseline gap-xxs whitespace-nowrap", children: [
13335
- /* @__PURE__ */ jsx65(
13390
+ /* @__PURE__ */ jsxs63("span", { className: "flex items-baseline gap-xxs whitespace-nowrap", children: [
13391
+ /* @__PURE__ */ jsx66(
13336
13392
  "span",
13337
13393
  {
13338
13394
  style: TABULAR2,
13339
- className: cn56(
13395
+ className: cn57(
13340
13396
  "text-display-lg",
13341
13397
  featured ? "text-on-primary" : "text-ink"
13342
13398
  ),
13343
13399
  children: plan.price
13344
13400
  }
13345
13401
  ),
13346
- plan.period ? /* @__PURE__ */ jsxs62(
13402
+ plan.period ? /* @__PURE__ */ jsxs63(
13347
13403
  "span",
13348
13404
  {
13349
- className: cn56(
13405
+ className: cn57(
13350
13406
  "text-heading-md",
13351
13407
  featured ? "text-on-primary/85" : "text-body"
13352
13408
  ),
@@ -13358,7 +13414,7 @@ var PricingTableMobile = React65.forwardRef(
13358
13414
  ) : null
13359
13415
  ] })
13360
13416
  ] }),
13361
- /* @__PURE__ */ jsx65(
13417
+ /* @__PURE__ */ jsx66(
13362
13418
  Icon,
13363
13419
  {
13364
13420
  name: "chevron-right",
@@ -13381,7 +13437,7 @@ var PricingTableMobile = React65.forwardRef(
13381
13437
  PricingTableMobile.displayName = "PricingTableMobile";
13382
13438
 
13383
13439
  // virtual-pkg:src/atoms/PricingTable/PricingTable.tsx
13384
- import { jsx as jsx66, jsxs as jsxs63 } from "react/jsx-runtime";
13440
+ import { jsx as jsx67, jsxs as jsxs64 } from "react/jsx-runtime";
13385
13441
  var DEFAULT_TIERS2 = [
13386
13442
  {
13387
13443
  id: "starter",
@@ -13418,7 +13474,7 @@ var DEFAULT_TIERS2 = [
13418
13474
  primaryAction: "Contact sales"
13419
13475
  }
13420
13476
  ];
13421
- var cn57 = (...values) => values.filter(Boolean).join(" ");
13477
+ var cn58 = (...values) => values.filter(Boolean).join(" ");
13422
13478
  var toPlan = (tier) => ({
13423
13479
  id: tier.id,
13424
13480
  name: tier.name,
@@ -13427,7 +13483,7 @@ var toPlan = (tier) => ({
13427
13483
  badge: tier.badge,
13428
13484
  featured: tier.featured
13429
13485
  });
13430
- var PricingTable = React66.forwardRef(
13486
+ var PricingTable = React67.forwardRef(
13431
13487
  ({
13432
13488
  title = "Pricing table",
13433
13489
  subtitle,
@@ -13442,12 +13498,12 @@ var PricingTable = React66.forwardRef(
13442
13498
  className,
13443
13499
  ...rest
13444
13500
  }, ref) => {
13445
- const derivedPlans = React66.useMemo(
13501
+ const derivedPlans = React67.useMemo(
13446
13502
  () => plans ?? tiers.map(toPlan),
13447
13503
  [plans, tiers]
13448
13504
  );
13449
- return /* @__PURE__ */ jsxs63("div", { ref, className: cn57("w-full", className), ...rest, children: [
13450
- /* @__PURE__ */ jsx66("div", { className: cn57("hidden w-full md:block", desktopClassName), children: /* @__PURE__ */ jsx66(
13505
+ return /* @__PURE__ */ jsxs64("div", { ref, className: cn58("w-full", className), ...rest, children: [
13506
+ /* @__PURE__ */ jsx67("div", { className: cn58("hidden w-full md:block", desktopClassName), children: /* @__PURE__ */ jsx67(
13451
13507
  PricingTableDesktop,
13452
13508
  {
13453
13509
  title,
@@ -13456,7 +13512,7 @@ var PricingTable = React66.forwardRef(
13456
13512
  onAction
13457
13513
  }
13458
13514
  ) }),
13459
- /* @__PURE__ */ jsx66("div", { className: cn57("w-full md:hidden", mobileClassName), children: /* @__PURE__ */ jsx66(
13515
+ /* @__PURE__ */ jsx67("div", { className: cn58("w-full md:hidden", mobileClassName), children: /* @__PURE__ */ jsx67(
13460
13516
  PricingTableMobile,
13461
13517
  {
13462
13518
  title,
@@ -13473,10 +13529,10 @@ var PricingTable = React66.forwardRef(
13473
13529
  PricingTable.displayName = "PricingTable";
13474
13530
 
13475
13531
  // virtual-pkg:src/atoms/ProductCard/ProductCard.tsx
13476
- import * as React67 from "react";
13477
- import { jsx as jsx67, jsxs as jsxs64 } from "react/jsx-runtime";
13478
- var cn58 = (...values) => values.filter(Boolean).join(" ");
13479
- var ProductCard = React67.forwardRef(
13532
+ import * as React68 from "react";
13533
+ import { jsx as jsx68, jsxs as jsxs65 } from "react/jsx-runtime";
13534
+ var cn59 = (...values) => values.filter(Boolean).join(" ");
13535
+ var ProductCard = React68.forwardRef(
13480
13536
  ({
13481
13537
  title = "Payment link \u2014 Standard",
13482
13538
  status = "Live mode",
@@ -13491,13 +13547,13 @@ var ProductCard = React67.forwardRef(
13491
13547
  className,
13492
13548
  ...rest
13493
13549
  }, ref) => {
13494
- const titleId = React67.useId();
13495
- return /* @__PURE__ */ jsxs64(
13550
+ const titleId = React68.useId();
13551
+ return /* @__PURE__ */ jsxs65(
13496
13552
  "article",
13497
13553
  {
13498
13554
  ref,
13499
13555
  "aria-labelledby": titleId,
13500
- className: cn58(
13556
+ className: cn59(
13501
13557
  "flex w-full flex-col rounded-lg border bg-surface p-xl",
13502
13558
  "transition duration-200 ease-out",
13503
13559
  elevated ? "border-hairline-strong shadow-md" : "border-hairline shadow-card",
@@ -13505,14 +13561,14 @@ var ProductCard = React67.forwardRef(
13505
13561
  ),
13506
13562
  ...rest,
13507
13563
  children: [
13508
- /* @__PURE__ */ jsx67(
13564
+ /* @__PURE__ */ jsx68(
13509
13565
  "div",
13510
13566
  {
13511
13567
  "aria-hidden": "true",
13512
13568
  className: "rounded-md bg-gradient-to-b from-surface-soft to-surface-strong p-md",
13513
- children: /* @__PURE__ */ jsxs64("div", { className: "rounded-sm border border-hairline-soft bg-surface p-md shadow-sm", children: [
13514
- /* @__PURE__ */ jsxs64("div", { className: "flex items-center gap-sm", children: [
13515
- /* @__PURE__ */ jsx67(
13569
+ children: /* @__PURE__ */ jsxs65("div", { className: "rounded-sm border border-hairline-soft bg-surface p-md shadow-sm", children: [
13570
+ /* @__PURE__ */ jsxs65("div", { className: "flex items-center gap-sm", children: [
13571
+ /* @__PURE__ */ jsx68(
13516
13572
  Icon,
13517
13573
  {
13518
13574
  name: icon,
@@ -13521,24 +13577,24 @@ var ProductCard = React67.forwardRef(
13521
13577
  className: "text-primary"
13522
13578
  }
13523
13579
  ),
13524
- /* @__PURE__ */ jsx67("span", { className: "min-w-0 truncate text-body-sm text-ink", children: mockupLabel })
13580
+ /* @__PURE__ */ jsx68("span", { className: "min-w-0 truncate text-body-sm text-ink", children: mockupLabel })
13525
13581
  ] }),
13526
- /* @__PURE__ */ jsxs64("div", { className: "mt-md flex flex-col gap-sm", children: [
13527
- /* @__PURE__ */ jsx67("span", { className: "h-2 w-full rounded-full bg-skeleton" }),
13528
- /* @__PURE__ */ jsx67("span", { className: "h-2 w-4/5 rounded-full bg-skeleton" }),
13529
- /* @__PURE__ */ jsx67("span", { className: "h-2 w-1/2 rounded-full bg-skeleton" })
13582
+ /* @__PURE__ */ jsxs65("div", { className: "mt-md flex flex-col gap-sm", children: [
13583
+ /* @__PURE__ */ jsx68("span", { className: "h-2 w-full rounded-full bg-skeleton" }),
13584
+ /* @__PURE__ */ jsx68("span", { className: "h-2 w-4/5 rounded-full bg-skeleton" }),
13585
+ /* @__PURE__ */ jsx68("span", { className: "h-2 w-1/2 rounded-full bg-skeleton" })
13530
13586
  ] }),
13531
- /* @__PURE__ */ jsx67("span", { className: "mt-md block h-5 w-full rounded-full bg-primary" })
13587
+ /* @__PURE__ */ jsx68("span", { className: "mt-md block h-5 w-full rounded-full bg-primary" })
13532
13588
  ] })
13533
13589
  }
13534
13590
  ),
13535
- /* @__PURE__ */ jsx67("h3", { id: titleId, className: "mt-lg text-heading-lg text-ink text-balance", children: title }),
13536
- /* @__PURE__ */ jsx67("div", { className: "mt-md", children: /* @__PURE__ */ jsx67(Badge, { variant: "soft", tone: "info", size: "sm", children: /* @__PURE__ */ jsx67("span", { className: "text-micro-cap", children: status }) }) }),
13537
- /* @__PURE__ */ jsxs64("p", { className: "mt-md flex flex-wrap items-baseline gap-sm", children: [
13538
- /* @__PURE__ */ jsx67("span", { className: "text-display-md text-ink tabular-nums", children: amount }),
13539
- period ? /* @__PURE__ */ jsx67("span", { className: "text-body-lg text-muted", children: period }) : null
13591
+ /* @__PURE__ */ jsx68("h3", { id: titleId, className: "mt-lg text-heading-lg text-ink text-balance", children: title }),
13592
+ /* @__PURE__ */ jsx68("div", { className: "mt-md", children: /* @__PURE__ */ jsx68(Badge, { variant: "soft", tone: "info", size: "sm", children: /* @__PURE__ */ jsx68("span", { className: "text-micro-cap", children: status }) }) }),
13593
+ /* @__PURE__ */ jsxs65("p", { className: "mt-md flex flex-wrap items-baseline gap-sm", children: [
13594
+ /* @__PURE__ */ jsx68("span", { className: "text-display-md text-ink tabular-nums", children: amount }),
13595
+ period ? /* @__PURE__ */ jsx68("span", { className: "text-body-lg text-muted", children: period }) : null
13540
13596
  ] }),
13541
- /* @__PURE__ */ jsx67("div", { className: "mt-auto pt-xl", children: /* @__PURE__ */ jsx67(
13597
+ /* @__PURE__ */ jsx68("div", { className: "mt-auto pt-xl", children: /* @__PURE__ */ jsx68(
13542
13598
  Button,
13543
13599
  {
13544
13600
  variant: "primary",
@@ -13557,9 +13613,9 @@ var ProductCard = React67.forwardRef(
13557
13613
  ProductCard.displayName = "ProductCard";
13558
13614
 
13559
13615
  // virtual-pkg:src/atoms/ProductCardGrid/ProductCardGrid.tsx
13560
- import * as React68 from "react";
13561
- import { jsx as jsx68, jsxs as jsxs65 } from "react/jsx-runtime";
13562
- var cn59 = (...values) => values.filter(Boolean).join(" ");
13616
+ import * as React69 from "react";
13617
+ import { jsx as jsx69, jsxs as jsxs66 } from "react/jsx-runtime";
13618
+ var cn60 = (...values) => values.filter(Boolean).join(" ");
13563
13619
  var DEFAULT_ITEMS5 = [
13564
13620
  {
13565
13621
  id: "standard",
@@ -13586,7 +13642,7 @@ var DEFAULT_ITEMS5 = [
13586
13642
  icon: "layers"
13587
13643
  }
13588
13644
  ];
13589
- var ProductCardGrid = React68.forwardRef(
13645
+ var ProductCardGrid = React69.forwardRef(
13590
13646
  ({
13591
13647
  heading = "Product card grid",
13592
13648
  description,
@@ -13597,27 +13653,27 @@ var ProductCardGrid = React68.forwardRef(
13597
13653
  className,
13598
13654
  ...rest
13599
13655
  }, ref) => {
13600
- const [internalSelected, setInternalSelected] = React68.useState(defaultSelectedId);
13656
+ const [internalSelected, setInternalSelected] = React69.useState(defaultSelectedId);
13601
13657
  const isControlled = selectedId !== void 0;
13602
13658
  const activeId = isControlled ? selectedId : internalSelected;
13603
- const headingId = React68.useId();
13659
+ const headingId = React69.useId();
13604
13660
  const handleSelect = (id) => {
13605
13661
  if (!isControlled) setInternalSelected(id);
13606
13662
  onSelect?.(id);
13607
13663
  };
13608
- return /* @__PURE__ */ jsxs65(
13664
+ return /* @__PURE__ */ jsxs66(
13609
13665
  "section",
13610
13666
  {
13611
13667
  ref,
13612
13668
  "aria-labelledby": headingId,
13613
- className: cn59("w-full rounded-lg", className),
13669
+ className: cn60("w-full rounded-lg", className),
13614
13670
  ...rest,
13615
13671
  children: [
13616
- /* @__PURE__ */ jsx68("h2", { id: headingId, className: "text-display-lg text-ink", children: heading }),
13617
- description ? /* @__PURE__ */ jsx68("p", { className: "mt-sm max-w-2xl text-body-lg text-muted", children: description }) : null,
13618
- /* @__PURE__ */ jsx68("div", { className: "mt-xl grid grid-cols-1 gap-gutter sm:grid-cols-2 md:grid-cols-3", children: items.map((item) => {
13672
+ /* @__PURE__ */ jsx69("h2", { id: headingId, className: "text-display-lg text-ink", children: heading }),
13673
+ description ? /* @__PURE__ */ jsx69("p", { className: "mt-sm max-w-2xl text-body-lg text-muted", children: description }) : null,
13674
+ /* @__PURE__ */ jsx69("div", { className: "mt-xl grid grid-cols-1 gap-gutter sm:grid-cols-2 md:grid-cols-3", children: items.map((item) => {
13619
13675
  const { id, className: itemClassName, ...cardProps } = item;
13620
- return /* @__PURE__ */ jsx68(
13676
+ return /* @__PURE__ */ jsx69(
13621
13677
  ProductCard,
13622
13678
  {
13623
13679
  ...cardProps,
@@ -13639,9 +13695,9 @@ var ProductCardGrid = React68.forwardRef(
13639
13695
  ProductCardGrid.displayName = "ProductCardGrid";
13640
13696
 
13641
13697
  // virtual-pkg:src/atoms/ProgressBar/ProgressBar.tsx
13642
- import * as React69 from "react";
13643
- import { jsx as jsx69, jsxs as jsxs66 } from "react/jsx-runtime";
13644
- var cn60 = (...values) => values.filter(Boolean).join(" ");
13698
+ import * as React70 from "react";
13699
+ import { jsx as jsx70, jsxs as jsxs67 } from "react/jsx-runtime";
13700
+ var cn61 = (...values) => values.filter(Boolean).join(" ");
13645
13701
  var STATE_TEXT = {
13646
13702
  complete: "complete",
13647
13703
  current: "current step",
@@ -13681,7 +13737,7 @@ var segmentStyles = {
13681
13737
  neutral: "bg-hairline-strong"
13682
13738
  };
13683
13739
  var tabular3 = { fontVariantNumeric: "tabular-nums" };
13684
- var ProgressBar = React69.forwardRef(
13740
+ var ProgressBar = React70.forwardRef(
13685
13741
  ({
13686
13742
  variant = "segments",
13687
13743
  steps = [],
@@ -13697,14 +13753,14 @@ var ProgressBar = React69.forwardRef(
13697
13753
  ...rest
13698
13754
  }, ref) => {
13699
13755
  if (variant === "steps") {
13700
- return /* @__PURE__ */ jsxs66(
13756
+ return /* @__PURE__ */ jsxs67(
13701
13757
  "div",
13702
13758
  {
13703
13759
  ref,
13704
- className: cn60("flex w-full items-center gap-lg", className),
13760
+ className: cn61("flex w-full items-center gap-lg", className),
13705
13761
  ...rest,
13706
13762
  children: [
13707
- /* @__PURE__ */ jsx69(
13763
+ /* @__PURE__ */ jsx70(
13708
13764
  "ol",
13709
13765
  {
13710
13766
  "aria-label": ariaLabel,
@@ -13715,42 +13771,42 @@ var ProgressBar = React69.forwardRef(
13715
13771
  children: steps.map((step, index) => {
13716
13772
  const state = step.state ?? "upcoming";
13717
13773
  const previous = index > 0 ? steps[index - 1] : void 0;
13718
- return /* @__PURE__ */ jsxs66(
13774
+ return /* @__PURE__ */ jsxs67(
13719
13775
  "li",
13720
13776
  {
13721
13777
  "aria-current": state === "current" ? "step" : void 0,
13722
13778
  className: "relative flex flex-col items-center",
13723
13779
  children: [
13724
- previous ? /* @__PURE__ */ jsx69(
13780
+ previous ? /* @__PURE__ */ jsx70(
13725
13781
  "span",
13726
13782
  {
13727
13783
  "aria-hidden": "true",
13728
- className: cn60(
13784
+ className: cn61(
13729
13785
  "absolute left-0 right-1/2 top-3.5 h-0.5 -translate-y-1/2 rounded-full transition-colors duration-200 ease-out",
13730
13786
  connectorColor(previous, step)
13731
13787
  )
13732
13788
  }
13733
13789
  ) : null,
13734
- /* @__PURE__ */ jsxs66("span", { className: "relative z-10 flex size-7 items-center justify-center", children: [
13735
- state === "current" ? /* @__PURE__ */ jsx69(
13790
+ /* @__PURE__ */ jsxs67("span", { className: "relative z-10 flex size-7 items-center justify-center", children: [
13791
+ state === "current" ? /* @__PURE__ */ jsx70(
13736
13792
  "span",
13737
13793
  {
13738
13794
  "aria-hidden": "true",
13739
13795
  className: "absolute size-6 rounded-full bg-primary/15"
13740
13796
  }
13741
13797
  ) : null,
13742
- /* @__PURE__ */ jsx69("span", { className: cn60(nodeBase, nodeStyles[state]), children: state === "error" ? /* @__PURE__ */ jsx69(Icon, { name: "x", size: 10, tone: "on-dark", strokeWidth: 3 }) : null })
13798
+ /* @__PURE__ */ jsx70("span", { className: cn61(nodeBase, nodeStyles[state]), children: state === "error" ? /* @__PURE__ */ jsx70(Icon, { name: "x", size: 10, tone: "on-dark", strokeWidth: 3 }) : null })
13743
13799
  ] }),
13744
- /* @__PURE__ */ jsxs66(
13800
+ /* @__PURE__ */ jsxs67(
13745
13801
  "span",
13746
13802
  {
13747
- className: cn60(
13803
+ className: cn61(
13748
13804
  "mt-sm whitespace-nowrap text-center text-body-sm",
13749
13805
  labelStyles[state]
13750
13806
  ),
13751
13807
  children: [
13752
13808
  step.label,
13753
- /* @__PURE__ */ jsx69("span", { className: "sr-only", children: ` (${STATE_TEXT[state]})` })
13809
+ /* @__PURE__ */ jsx70("span", { className: "sr-only", children: ` (${STATE_TEXT[state]})` })
13754
13810
  ]
13755
13811
  }
13756
13812
  )
@@ -13761,7 +13817,7 @@ var ProgressBar = React69.forwardRef(
13761
13817
  })
13762
13818
  }
13763
13819
  ),
13764
- status ? /* @__PURE__ */ jsx69("span", { className: "shrink-0 text-micro-cap uppercase tracking-micro-cap text-muted", children: status }) : null
13820
+ status ? /* @__PURE__ */ jsx70("span", { className: "shrink-0 text-micro-cap uppercase tracking-micro-cap text-muted", children: status }) : null
13765
13821
  ]
13766
13822
  }
13767
13823
  );
@@ -13769,20 +13825,20 @@ var ProgressBar = React69.forwardRef(
13769
13825
  const safeTotal = total > 0 ? total : 1;
13770
13826
  const counted = segments.reduce((sum, segment) => sum + segment.value, 0);
13771
13827
  const markerPercent = marker === void 0 ? null : Math.min(100, Math.max(0, marker / safeTotal * 100));
13772
- return /* @__PURE__ */ jsxs66("div", { ref, className: cn60("flex w-full flex-col", className), ...rest, children: [
13773
- valueLabel || valueDetail ? /* @__PURE__ */ jsxs66(
13828
+ return /* @__PURE__ */ jsxs67("div", { ref, className: cn61("flex w-full flex-col", className), ...rest, children: [
13829
+ valueLabel || valueDetail ? /* @__PURE__ */ jsxs67(
13774
13830
  "div",
13775
13831
  {
13776
13832
  className: "mb-md flex items-baseline justify-end gap-xs text-right",
13777
13833
  style: tabular3,
13778
13834
  children: [
13779
- valueLabel ? /* @__PURE__ */ jsx69("span", { className: "text-body-md text-ink", children: valueLabel }) : null,
13780
- valueDetail ? /* @__PURE__ */ jsx69("span", { className: "text-body-md text-muted", children: valueDetail }) : null
13835
+ valueLabel ? /* @__PURE__ */ jsx70("span", { className: "text-body-md text-ink", children: valueLabel }) : null,
13836
+ valueDetail ? /* @__PURE__ */ jsx70("span", { className: "text-body-md text-muted", children: valueDetail }) : null
13781
13837
  ]
13782
13838
  }
13783
13839
  ) : null,
13784
- /* @__PURE__ */ jsxs66("div", { className: "relative", children: [
13785
- /* @__PURE__ */ jsx69(
13840
+ /* @__PURE__ */ jsxs67("div", { className: "relative", children: [
13841
+ /* @__PURE__ */ jsx70(
13786
13842
  "div",
13787
13843
  {
13788
13844
  role: "progressbar",
@@ -13791,11 +13847,11 @@ var ProgressBar = React69.forwardRef(
13791
13847
  "aria-valuemax": safeTotal,
13792
13848
  "aria-valuenow": counted,
13793
13849
  className: "flex h-3 w-full overflow-hidden rounded-full bg-surface-strong",
13794
- children: segments.map((segment, index) => /* @__PURE__ */ jsx69(
13850
+ children: segments.map((segment, index) => /* @__PURE__ */ jsx70(
13795
13851
  "span",
13796
13852
  {
13797
13853
  "aria-hidden": "true",
13798
- className: cn60(
13854
+ className: cn61(
13799
13855
  "h-full transition-[width,background-color] duration-200 ease-out",
13800
13856
  segmentStyles[segment.tone ?? "primary"]
13801
13857
  ),
@@ -13807,7 +13863,7 @@ var ProgressBar = React69.forwardRef(
13807
13863
  ))
13808
13864
  }
13809
13865
  ),
13810
- markerPercent !== null ? /* @__PURE__ */ jsx69(
13866
+ markerPercent !== null ? /* @__PURE__ */ jsx70(
13811
13867
  "span",
13812
13868
  {
13813
13869
  "aria-hidden": "true",
@@ -13816,26 +13872,26 @@ var ProgressBar = React69.forwardRef(
13816
13872
  }
13817
13873
  ) : null
13818
13874
  ] }),
13819
- showLegend && segments.length > 0 ? /* @__PURE__ */ jsx69("ul", { className: "mt-lg flex list-none flex-wrap items-center gap-x-xl gap-y-sm p-0", children: segments.map((segment, index) => {
13875
+ showLegend && segments.length > 0 ? /* @__PURE__ */ jsx70("ul", { className: "mt-lg flex list-none flex-wrap items-center gap-x-xl gap-y-sm p-0", children: segments.map((segment, index) => {
13820
13876
  const tone = segment.tone ?? "primary";
13821
- return /* @__PURE__ */ jsxs66(
13877
+ return /* @__PURE__ */ jsxs67(
13822
13878
  "li",
13823
13879
  {
13824
13880
  className: "flex items-center gap-sm text-body-sm text-body",
13825
13881
  children: [
13826
- /* @__PURE__ */ jsx69(
13882
+ /* @__PURE__ */ jsx70(
13827
13883
  "span",
13828
13884
  {
13829
13885
  "aria-hidden": "true",
13830
- className: cn60(
13886
+ className: cn61(
13831
13887
  "size-2.5 shrink-0 rounded-xs",
13832
13888
  segmentStyles[tone]
13833
13889
  )
13834
13890
  }
13835
13891
  ),
13836
- /* @__PURE__ */ jsxs66("span", { children: [
13892
+ /* @__PURE__ */ jsxs67("span", { children: [
13837
13893
  segment.label,
13838
- /* @__PURE__ */ jsx69("span", { className: "ml-xxs text-body", style: tabular3, children: segment.value.toLocaleString("en-US") })
13894
+ /* @__PURE__ */ jsx70("span", { className: "ml-xxs text-body", style: tabular3, children: segment.value.toLocaleString("en-US") })
13839
13895
  ] })
13840
13896
  ]
13841
13897
  },
@@ -13848,10 +13904,10 @@ var ProgressBar = React69.forwardRef(
13848
13904
  ProgressBar.displayName = "ProgressBar";
13849
13905
 
13850
13906
  // virtual-pkg:src/atoms/Radio/Radio.tsx
13851
- import * as React70 from "react";
13852
- import { jsx as jsx70, jsxs as jsxs67 } from "react/jsx-runtime";
13853
- var cn61 = (...values) => values.filter(Boolean).join(" ");
13854
- var Radio = React70.forwardRef(
13907
+ import * as React71 from "react";
13908
+ import { jsx as jsx71, jsxs as jsxs68 } from "react/jsx-runtime";
13909
+ var cn62 = (...values) => values.filter(Boolean).join(" ");
13910
+ var Radio = React71.forwardRef(
13855
13911
  ({
13856
13912
  label,
13857
13913
  description,
@@ -13867,23 +13923,23 @@ var Radio = React70.forwardRef(
13867
13923
  className,
13868
13924
  ...rest
13869
13925
  }, ref) => {
13870
- const [internalChecked, setInternalChecked] = React70.useState(defaultChecked);
13926
+ const [internalChecked, setInternalChecked] = React71.useState(defaultChecked);
13871
13927
  const isControlled = checked !== void 0;
13872
13928
  const isChecked = isControlled ? Boolean(checked) : internalChecked;
13873
- const generatedId = React70.useId();
13929
+ const generatedId = React71.useId();
13874
13930
  const inputId = id ?? `radio-${generatedId}`;
13875
13931
  const isCard = chrome === "card";
13876
13932
  const handleChange = (event) => {
13877
13933
  if (!isControlled) setInternalChecked(event.target.checked);
13878
13934
  onChange?.(event.target.value, event);
13879
13935
  };
13880
- return /* @__PURE__ */ jsxs67(
13936
+ return /* @__PURE__ */ jsxs68(
13881
13937
  "label",
13882
13938
  {
13883
13939
  htmlFor: inputId,
13884
13940
  "data-state": isChecked ? "selected" : "unselected",
13885
13941
  "data-disabled": disabled ? "" : void 0,
13886
- className: cn61(
13942
+ className: cn62(
13887
13943
  "group/radio flex items-center gap-md transition duration-200 ease-out",
13888
13944
  isCard ? "w-full rounded-lg" : "w-auto",
13889
13945
  disabled ? "cursor-not-allowed" : "cursor-pointer",
@@ -13892,16 +13948,16 @@ var Radio = React70.forwardRef(
13892
13948
  className
13893
13949
  ),
13894
13950
  children: [
13895
- /* @__PURE__ */ jsxs67(
13951
+ /* @__PURE__ */ jsxs68(
13896
13952
  "span",
13897
13953
  {
13898
- className: cn61(
13954
+ className: cn62(
13899
13955
  "relative flex shrink-0 items-center justify-center rounded-full border-2 bg-canvas transition-colors duration-200 ease-out",
13900
13956
  size === "sm" ? "size-4" : "size-5",
13901
13957
  disabled ? "border-hairline" : isChecked ? "border-primary" : invalid ? "border-semantic-error" : "border-hairline-strong group-hover/radio:border-primary-focus"
13902
13958
  ),
13903
13959
  children: [
13904
- /* @__PURE__ */ jsx70(
13960
+ /* @__PURE__ */ jsx71(
13905
13961
  "input",
13906
13962
  {
13907
13963
  ref,
@@ -13916,11 +13972,11 @@ var Radio = React70.forwardRef(
13916
13972
  ...rest
13917
13973
  }
13918
13974
  ),
13919
- /* @__PURE__ */ jsx70(
13975
+ /* @__PURE__ */ jsx71(
13920
13976
  "span",
13921
13977
  {
13922
13978
  "aria-hidden": "true",
13923
- className: cn61(
13979
+ className: cn62(
13924
13980
  "rounded-full transition duration-200 ease-out",
13925
13981
  size === "sm" ? "size-1.5" : "size-2",
13926
13982
  disabled ? "bg-primary-disabled" : isChecked ? "scale-100 bg-primary opacity-100" : "scale-50 opacity-0"
@@ -13930,21 +13986,21 @@ var Radio = React70.forwardRef(
13930
13986
  ]
13931
13987
  }
13932
13988
  ),
13933
- label || description ? /* @__PURE__ */ jsxs67("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
13934
- label ? /* @__PURE__ */ jsx70(
13989
+ label || description ? /* @__PURE__ */ jsxs68("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
13990
+ label ? /* @__PURE__ */ jsx71(
13935
13991
  "span",
13936
13992
  {
13937
- className: cn61(
13993
+ className: cn62(
13938
13994
  "text-label truncate transition-colors duration-200 ease-out",
13939
13995
  disabled ? "text-muted" : isChecked ? "text-ink" : "text-body"
13940
13996
  ),
13941
13997
  children: label
13942
13998
  }
13943
13999
  ) : null,
13944
- description ? /* @__PURE__ */ jsx70(
14000
+ description ? /* @__PURE__ */ jsx71(
13945
14001
  "span",
13946
14002
  {
13947
- className: cn61(
14003
+ className: cn62(
13948
14004
  "text-caption truncate transition-colors duration-200 ease-out",
13949
14005
  disabled ? "text-muted-soft" : "text-muted"
13950
14006
  ),
@@ -13952,11 +14008,11 @@ var Radio = React70.forwardRef(
13952
14008
  }
13953
14009
  ) : null
13954
14010
  ] }) : null,
13955
- valueLabel ? /* @__PURE__ */ jsx70(
14011
+ valueLabel ? /* @__PURE__ */ jsx71(
13956
14012
  "span",
13957
14013
  {
13958
14014
  style: { fontVariantNumeric: "tabular-nums" },
13959
- className: cn61(
14015
+ className: cn62(
13960
14016
  "shrink-0 text-label transition-colors duration-200 ease-out",
13961
14017
  disabled ? "text-muted-soft" : isChecked ? "text-ink" : "text-body"
13962
14018
  ),
@@ -13971,9 +14027,9 @@ var Radio = React70.forwardRef(
13971
14027
  Radio.displayName = "Radio";
13972
14028
 
13973
14029
  // virtual-pkg:src/atoms/Rating/Rating.tsx
13974
- import * as React71 from "react";
13975
- import { jsx as jsx71, jsxs as jsxs68 } from "react/jsx-runtime";
13976
- var cn62 = (...values) => values.filter(Boolean).join(" ");
14030
+ import * as React72 from "react";
14031
+ import { jsx as jsx72, jsxs as jsxs69 } from "react/jsx-runtime";
14032
+ var cn63 = (...values) => values.filter(Boolean).join(" ");
13977
14033
  var STAR_PX = { sm: 16, md: 20, lg: 30 };
13978
14034
  var STAR_GAP = {
13979
14035
  sm: "gap-xxs",
@@ -13988,14 +14044,14 @@ var SCORE_TEXT = {
13988
14044
  var clamp = (input, min, max) => Math.min(max, Math.max(min, input));
13989
14045
  var formatScore = (input, precision) => input.toFixed(Math.max(0, precision));
13990
14046
  var tabular4 = { fontVariantNumeric: "tabular-nums" };
13991
- var StarGlyph = ({ fill, px }) => /* @__PURE__ */ jsxs68(
14047
+ var StarGlyph = ({ fill, px }) => /* @__PURE__ */ jsxs69(
13992
14048
  "span",
13993
14049
  {
13994
14050
  "aria-hidden": "true",
13995
14051
  className: "relative inline-flex shrink-0",
13996
14052
  style: { width: px, height: px },
13997
14053
  children: [
13998
- /* @__PURE__ */ jsx71(
14054
+ /* @__PURE__ */ jsx72(
13999
14055
  Icon,
14000
14056
  {
14001
14057
  name: "star",
@@ -14004,12 +14060,12 @@ var StarGlyph = ({ fill, px }) => /* @__PURE__ */ jsxs68(
14004
14060
  style: { color: "var(--color-hairline-strong)" }
14005
14061
  }
14006
14062
  ),
14007
- /* @__PURE__ */ jsx71(
14063
+ /* @__PURE__ */ jsx72(
14008
14064
  "span",
14009
14065
  {
14010
14066
  className: "absolute inset-y-0 left-0 overflow-hidden transition-[width] duration-200 ease-out",
14011
14067
  style: { width: `${fill * 100}%` },
14012
- children: /* @__PURE__ */ jsx71(
14068
+ children: /* @__PURE__ */ jsx72(
14013
14069
  Icon,
14014
14070
  {
14015
14071
  name: "star",
@@ -14024,7 +14080,7 @@ var StarGlyph = ({ fill, px }) => /* @__PURE__ */ jsxs68(
14024
14080
  ]
14025
14081
  }
14026
14082
  );
14027
- var Rating = React71.forwardRef(
14083
+ var Rating = React72.forwardRef(
14028
14084
  ({
14029
14085
  value,
14030
14086
  defaultValue,
@@ -14044,10 +14100,10 @@ var Rating = React71.forwardRef(
14044
14100
  className,
14045
14101
  ...rest
14046
14102
  }, ref) => {
14047
- const [uncontrolled, setUncontrolled] = React71.useState(
14103
+ const [uncontrolled, setUncontrolled] = React72.useState(
14048
14104
  defaultValue ?? value ?? 0
14049
14105
  );
14050
- const [hover, setHover] = React71.useState(null);
14106
+ const [hover, setHover] = React72.useState(null);
14051
14107
  const isControlled = value !== void 0;
14052
14108
  const committed = clamp(isControlled ? value : uncontrolled, 0, max);
14053
14109
  const interactive = !readOnly;
@@ -14086,10 +14142,10 @@ var Rating = React71.forwardRef(
14086
14142
  commit(next);
14087
14143
  };
14088
14144
  const px = STAR_PX[size];
14089
- const starRow = /* @__PURE__ */ jsx71(
14145
+ const starRow = /* @__PURE__ */ jsx72(
14090
14146
  "div",
14091
14147
  {
14092
- className: cn62("inline-flex items-center", STAR_GAP[size]),
14148
+ className: cn63("inline-flex items-center", STAR_GAP[size]),
14093
14149
  ...interactive ? {
14094
14150
  role: "radiogroup",
14095
14151
  "aria-label": label,
@@ -14104,9 +14160,9 @@ var Rating = React71.forwardRef(
14104
14160
  children: Array.from({ length: Math.max(1, max) }, (_, index) => {
14105
14161
  const fill = clamp(shown - index, 0, 1);
14106
14162
  if (!interactive) {
14107
- return /* @__PURE__ */ jsx71(StarGlyph, { fill, px }, index);
14163
+ return /* @__PURE__ */ jsx72(StarGlyph, { fill, px }, index);
14108
14164
  }
14109
- return /* @__PURE__ */ jsx71(
14165
+ return /* @__PURE__ */ jsx72(
14110
14166
  Button,
14111
14167
  {
14112
14168
  variant: "bare",
@@ -14119,43 +14175,43 @@ var Rating = React71.forwardRef(
14119
14175
  onMouseEnter: () => setHover(index + 1),
14120
14176
  onFocus: () => setHover(index + 1),
14121
14177
  className: "text-primary focus-visible:ring-focus-blue focus-visible:ring-offset-0",
14122
- children: /* @__PURE__ */ jsx71(StarGlyph, { fill, px })
14178
+ children: /* @__PURE__ */ jsx72(StarGlyph, { fill, px })
14123
14179
  },
14124
14180
  index
14125
14181
  );
14126
14182
  })
14127
14183
  }
14128
14184
  );
14129
- const scoreBlock = showValue || typeof count === "number" ? /* @__PURE__ */ jsxs68("div", { className: "flex flex-wrap items-baseline gap-sm", style: tabular4, children: [
14130
- showValue ? /* @__PURE__ */ jsx71(
14185
+ const scoreBlock = showValue || typeof count === "number" ? /* @__PURE__ */ jsxs69("div", { className: "flex flex-wrap items-baseline gap-sm", style: tabular4, children: [
14186
+ showValue ? /* @__PURE__ */ jsx72(
14131
14187
  "span",
14132
14188
  {
14133
14189
  "aria-hidden": "true",
14134
- className: cn62("text-ink", SCORE_TEXT[size]),
14190
+ className: cn63("text-ink", SCORE_TEXT[size]),
14135
14191
  children: formatScore(shown, precision)
14136
14192
  }
14137
14193
  ) : null,
14138
- typeof count === "number" ? /* @__PURE__ */ jsxs68("span", { "aria-hidden": "true", className: "text-body-sm text-muted", children: [
14194
+ typeof count === "number" ? /* @__PURE__ */ jsxs69("span", { "aria-hidden": "true", className: "text-body-sm text-muted", children: [
14139
14195
  "(",
14140
14196
  count.toLocaleString("en-US"),
14141
14197
  ")"
14142
14198
  ] }) : null
14143
14199
  ] }) : null;
14144
- return /* @__PURE__ */ jsxs68(
14200
+ return /* @__PURE__ */ jsxs69(
14145
14201
  "div",
14146
14202
  {
14147
14203
  ref,
14148
- className: cn62("flex w-full flex-col items-start", className),
14204
+ className: cn63("flex w-full flex-col items-start", className),
14149
14205
  ...rest,
14150
14206
  children: [
14151
- interactive ? null : /* @__PURE__ */ jsxs68("span", { className: "sr-only", children: [
14207
+ interactive ? null : /* @__PURE__ */ jsxs69("span", { className: "sr-only", children: [
14152
14208
  `${formatScore(committed, precision)} out of ${max} stars`,
14153
14209
  typeof count === "number" ? ` from ${count.toLocaleString("en-US")} ${countLabel}` : ""
14154
14210
  ] }),
14155
- /* @__PURE__ */ jsxs68(
14211
+ /* @__PURE__ */ jsxs69(
14156
14212
  "div",
14157
14213
  {
14158
- className: cn62(
14214
+ className: cn63(
14159
14215
  "flex w-full",
14160
14216
  valuePlacement === "inline" ? "flex-wrap items-center gap-sm" : "flex-col items-start gap-sm"
14161
14217
  ),
@@ -14165,14 +14221,14 @@ var Rating = React71.forwardRef(
14165
14221
  ]
14166
14222
  }
14167
14223
  ),
14168
- caption ? /* @__PURE__ */ jsx71("p", { className: "mt-xs text-body-sm text-muted", children: caption }) : null,
14169
- breakdown && breakdown.length > 0 ? /* @__PURE__ */ jsx71("ul", { className: "mt-lg flex w-full list-none flex-col gap-md p-0", children: breakdown.map((item) => /* @__PURE__ */ jsxs68(
14224
+ caption ? /* @__PURE__ */ jsx72("p", { className: "mt-xs text-body-sm text-muted", children: caption }) : null,
14225
+ breakdown && breakdown.length > 0 ? /* @__PURE__ */ jsx72("ul", { className: "mt-lg flex w-full list-none flex-col gap-md p-0", children: breakdown.map((item) => /* @__PURE__ */ jsxs69(
14170
14226
  "li",
14171
14227
  {
14172
14228
  className: "grid grid-cols-[minmax(0,5.5rem)_minmax(0,1fr)_auto] items-center gap-lg",
14173
14229
  children: [
14174
- /* @__PURE__ */ jsx71("span", { className: "truncate text-body-sm text-ink", children: item.label }),
14175
- /* @__PURE__ */ jsx71(
14230
+ /* @__PURE__ */ jsx72("span", { className: "truncate text-body-sm text-ink", children: item.label }),
14231
+ /* @__PURE__ */ jsx72(
14176
14232
  ProgressBar,
14177
14233
  {
14178
14234
  ariaLabel: `${item.label}: ${formatScore(clamp(item.value, 0, max), precision)} out of ${max}`,
@@ -14180,7 +14236,7 @@ var Rating = React71.forwardRef(
14180
14236
  total: max
14181
14237
  }
14182
14238
  ),
14183
- /* @__PURE__ */ jsx71(
14239
+ /* @__PURE__ */ jsx72(
14184
14240
  "span",
14185
14241
  {
14186
14242
  className: "text-body-sm text-ink",
@@ -14200,10 +14256,10 @@ var Rating = React71.forwardRef(
14200
14256
  Rating.displayName = "Rating";
14201
14257
 
14202
14258
  // virtual-pkg:src/atoms/SearchBar/SearchBar.tsx
14203
- import * as React72 from "react";
14204
- import { jsx as jsx72, jsxs as jsxs69 } from "react/jsx-runtime";
14205
- var cn63 = (...values) => values.filter(Boolean).join(" ");
14206
- var SearchBar = React72.forwardRef(
14259
+ import * as React73 from "react";
14260
+ import { jsx as jsx73, jsxs as jsxs70 } from "react/jsx-runtime";
14261
+ var cn64 = (...values) => values.filter(Boolean).join(" ");
14262
+ var SearchBar = React73.forwardRef(
14207
14263
  ({
14208
14264
  ariaLabel = "Search",
14209
14265
  placeholder = "Search payments",
@@ -14218,7 +14274,7 @@ var SearchBar = React72.forwardRef(
14218
14274
  className,
14219
14275
  ...rest
14220
14276
  }, ref) => {
14221
- const [internalQuery, setInternalQuery] = React72.useState(
14277
+ const [internalQuery, setInternalQuery] = React73.useState(
14222
14278
  defaultValue ?? ""
14223
14279
  );
14224
14280
  const query = value !== void 0 ? value : internalQuery;
@@ -14226,39 +14282,39 @@ var SearchBar = React72.forwardRef(
14226
14282
  if (value === void 0) setInternalQuery(event.target.value);
14227
14283
  onQueryChange?.(event.target.value);
14228
14284
  };
14229
- return /* @__PURE__ */ jsx72(
14285
+ return /* @__PURE__ */ jsx73(
14230
14286
  "form",
14231
14287
  {
14232
14288
  role: "search",
14233
- className: cn63("w-full max-w-3xl", className),
14289
+ className: cn64("w-full max-w-3xl", className),
14234
14290
  onSubmit: (event) => {
14235
14291
  event.preventDefault();
14236
14292
  if (disabled) return;
14237
14293
  onSearch?.(query);
14238
14294
  },
14239
14295
  ...rest,
14240
- children: /* @__PURE__ */ jsxs69(
14296
+ children: /* @__PURE__ */ jsxs70(
14241
14297
  "div",
14242
14298
  {
14243
- className: cn63(
14299
+ className: cn64(
14244
14300
  "flex w-full items-center gap-sm rounded-xl border bg-surface py-xxs pl-base pr-xxs",
14245
14301
  "transition duration-200 ease-out",
14246
14302
  disabled ? "border-hairline-soft bg-surface-soft" : "border-hairline-strong focus-within:border-primary focus-within:ring-2 focus-within:ring-focus-blue/25",
14247
14303
  forceFocus && !disabled ? "border-primary ring-2 ring-focus-blue/25" : ""
14248
14304
  ),
14249
14305
  children: [
14250
- /* @__PURE__ */ jsx72(
14306
+ /* @__PURE__ */ jsx73(
14251
14307
  "span",
14252
14308
  {
14253
14309
  "aria-hidden": "true",
14254
- className: cn63(
14310
+ className: cn64(
14255
14311
  "flex shrink-0 items-center pl-xs",
14256
14312
  disabled ? "text-muted-soft" : "text-ink"
14257
14313
  ),
14258
- children: /* @__PURE__ */ jsx72(Icon, { name: "search", size: 20, strokeWidth: 1.75 })
14314
+ children: /* @__PURE__ */ jsx73(Icon, { name: "search", size: 20, strokeWidth: 1.75 })
14259
14315
  }
14260
14316
  ),
14261
- /* @__PURE__ */ jsx72(
14317
+ /* @__PURE__ */ jsx73(
14262
14318
  Input,
14263
14319
  {
14264
14320
  ref,
@@ -14272,24 +14328,24 @@ var SearchBar = React72.forwardRef(
14272
14328
  disabled,
14273
14329
  autoComplete: "off",
14274
14330
  className: "flex-1",
14275
- inputClassName: cn63(
14331
+ inputClassName: cn64(
14276
14332
  "text-body-lg placeholder:text-muted",
14277
14333
  "[&::-webkit-search-cancel-button]:appearance-none"
14278
14334
  )
14279
14335
  }
14280
14336
  ),
14281
- hint ? /* @__PURE__ */ jsx72(
14337
+ hint ? /* @__PURE__ */ jsx73(
14282
14338
  "span",
14283
14339
  {
14284
14340
  "aria-live": "polite",
14285
- className: cn63(
14341
+ className: cn64(
14286
14342
  "hidden shrink-0 items-center rounded-xl bg-primary-subdued px-md py-xs",
14287
14343
  "text-caption font-weight-label text-primary-on-subdued sm:inline-flex"
14288
14344
  ),
14289
14345
  children: hint
14290
14346
  }
14291
14347
  ) : null,
14292
- /* @__PURE__ */ jsx72(
14348
+ /* @__PURE__ */ jsx73(
14293
14349
  Button,
14294
14350
  {
14295
14351
  type: "submit",
@@ -14310,10 +14366,10 @@ var SearchBar = React72.forwardRef(
14310
14366
  SearchBar.displayName = "SearchBar";
14311
14367
 
14312
14368
  // virtual-pkg:src/atoms/SearchResultsList/SearchResultsList.tsx
14313
- import * as React73 from "react";
14314
- import { jsx as jsx73, jsxs as jsxs70 } from "react/jsx-runtime";
14315
- var cn64 = (...values) => values.filter(Boolean).join(" ");
14316
- var SearchResultsList = React73.forwardRef(
14369
+ import * as React74 from "react";
14370
+ import { jsx as jsx74, jsxs as jsxs71 } from "react/jsx-runtime";
14371
+ var cn65 = (...values) => values.filter(Boolean).join(" ");
14372
+ var SearchResultsList = React74.forwardRef(
14317
14373
  ({
14318
14374
  title = "Search results list",
14319
14375
  searchLabel = "Search results",
@@ -14333,9 +14389,9 @@ var SearchResultsList = React73.forwardRef(
14333
14389
  className,
14334
14390
  ...rest
14335
14391
  }, ref) => {
14336
- const [internalQuery, setInternalQuery] = React73.useState(defaultQuery);
14392
+ const [internalQuery, setInternalQuery] = React74.useState(defaultQuery);
14337
14393
  const currentQuery = query !== void 0 ? query : internalQuery;
14338
- const [internalFilter, setInternalFilter] = React73.useState(
14394
+ const [internalFilter, setInternalFilter] = React74.useState(
14339
14395
  defaultFilter ?? allFilterId
14340
14396
  );
14341
14397
  const currentFilter = activeFilter !== void 0 ? activeFilter : internalFilter;
@@ -14351,7 +14407,7 @@ var SearchResultsList = React73.forwardRef(
14351
14407
  if (activeFilter === void 0) setInternalFilter(filterId);
14352
14408
  onFilterChange?.(filterId);
14353
14409
  };
14354
- const visibleItems = React73.useMemo(() => {
14410
+ const visibleItems = React74.useMemo(() => {
14355
14411
  const needle = currentQuery.trim().toLowerCase();
14356
14412
  return items.filter((item) => {
14357
14413
  const matchesFilter = currentFilter === allFilterId || !item.filter || item.filter === currentFilter;
@@ -14361,35 +14417,35 @@ var SearchResultsList = React73.forwardRef(
14361
14417
  });
14362
14418
  }, [items, currentQuery, currentFilter, allFilterId]);
14363
14419
  const hasQuery = currentQuery.length > 0;
14364
- return /* @__PURE__ */ jsxs70(
14420
+ return /* @__PURE__ */ jsxs71(
14365
14421
  "section",
14366
14422
  {
14367
14423
  ref,
14368
14424
  "aria-label": typeof title === "string" ? title : "Search results",
14369
- className: cn64("flex w-full flex-col gap-lg", className),
14425
+ className: cn65("flex w-full flex-col gap-lg", className),
14370
14426
  ...rest,
14371
14427
  children: [
14372
- title ? /* @__PURE__ */ jsx73("h2", { className: "text-display-lg text-ink", children: title }) : null,
14373
- /* @__PURE__ */ jsxs70("div", { className: "flex flex-col gap-sm md:flex-row md:items-center md:gap-md", children: [
14374
- /* @__PURE__ */ jsxs70(
14428
+ title ? /* @__PURE__ */ jsx74("h2", { className: "text-display-lg text-ink", children: title }) : null,
14429
+ /* @__PURE__ */ jsxs71("div", { className: "flex flex-col gap-sm md:flex-row md:items-center md:gap-md", children: [
14430
+ /* @__PURE__ */ jsxs71(
14375
14431
  "div",
14376
14432
  {
14377
- className: cn64(
14433
+ className: cn65(
14378
14434
  "flex w-full items-center gap-sm rounded-xl border bg-surface px-base py-xxs",
14379
14435
  "border-hairline-strong transition duration-200 ease-out",
14380
14436
  "focus-within:border-primary focus-within:ring-2 focus-within:ring-focus-blue/25",
14381
14437
  "md:min-w-0 md:basis-[46%]"
14382
14438
  ),
14383
14439
  children: [
14384
- /* @__PURE__ */ jsx73(
14440
+ /* @__PURE__ */ jsx74(
14385
14441
  "span",
14386
14442
  {
14387
14443
  "aria-hidden": "true",
14388
14444
  className: "flex shrink-0 items-center text-muted",
14389
- children: /* @__PURE__ */ jsx73(Icon, { name: "search", size: 18, strokeWidth: 1.75 })
14445
+ children: /* @__PURE__ */ jsx74(Icon, { name: "search", size: 18, strokeWidth: 1.75 })
14390
14446
  }
14391
14447
  ),
14392
- /* @__PURE__ */ jsx73(
14448
+ /* @__PURE__ */ jsx74(
14393
14449
  Input,
14394
14450
  {
14395
14451
  chrome: "embedded",
@@ -14400,13 +14456,13 @@ var SearchResultsList = React73.forwardRef(
14400
14456
  ariaLabel: searchLabel,
14401
14457
  autoComplete: "off",
14402
14458
  className: "min-w-0 flex-1",
14403
- inputClassName: cn64(
14459
+ inputClassName: cn65(
14404
14460
  "text-body-md placeholder:text-muted",
14405
14461
  "[&::-webkit-search-cancel-button]:appearance-none"
14406
14462
  )
14407
14463
  }
14408
14464
  ),
14409
- /* @__PURE__ */ jsx73(
14465
+ /* @__PURE__ */ jsx74(
14410
14466
  Button,
14411
14467
  {
14412
14468
  variant: "bare",
@@ -14414,18 +14470,18 @@ var SearchResultsList = React73.forwardRef(
14414
14470
  "aria-label": "Clear search",
14415
14471
  disabled: !hasQuery,
14416
14472
  onClick: handleClear,
14417
- className: cn64(
14473
+ className: cn65(
14418
14474
  "text-muted transition duration-200 ease-out",
14419
14475
  "hover:bg-surface-soft hover:text-ink",
14420
14476
  hasQuery ? "opacity-100" : "pointer-events-none opacity-0"
14421
14477
  ),
14422
- leadingIcon: /* @__PURE__ */ jsx73(Icon, { name: "x", size: 16, strokeWidth: 2 })
14478
+ leadingIcon: /* @__PURE__ */ jsx74(Icon, { name: "x", size: 16, strokeWidth: 2 })
14423
14479
  }
14424
14480
  )
14425
14481
  ]
14426
14482
  }
14427
14483
  ),
14428
- filters.length > 0 ? /* @__PURE__ */ jsx73("div", { className: "flex flex-wrap items-center gap-sm md:shrink-0", children: filters.map((filter) => /* @__PURE__ */ jsx73(
14484
+ filters.length > 0 ? /* @__PURE__ */ jsx74("div", { className: "flex flex-wrap items-center gap-sm md:shrink-0", children: filters.map((filter) => /* @__PURE__ */ jsx74(
14429
14485
  Chip,
14430
14486
  {
14431
14487
  appearance: "outline",
@@ -14437,14 +14493,14 @@ var SearchResultsList = React73.forwardRef(
14437
14493
  filter.id
14438
14494
  )) }) : null
14439
14495
  ] }),
14440
- /* @__PURE__ */ jsxs70("p", { "aria-live": "polite", className: "sr-only", children: [
14496
+ /* @__PURE__ */ jsxs71("p", { "aria-live": "polite", className: "sr-only", children: [
14441
14497
  visibleItems.length,
14442
14498
  " results"
14443
14499
  ] }),
14444
- /* @__PURE__ */ jsx73("div", { className: "overflow-hidden rounded-lg border border-hairline bg-canvas shadow-card", children: visibleItems.length > 0 ? /* @__PURE__ */ jsx73("ul", { className: "flex flex-col p-xs", children: visibleItems.map((item, index) => {
14500
+ /* @__PURE__ */ jsx74("div", { className: "overflow-hidden rounded-lg border border-hairline bg-canvas shadow-card", children: visibleItems.length > 0 ? /* @__PURE__ */ jsx74("ul", { className: "flex flex-col p-xs", children: visibleItems.map((item, index) => {
14445
14501
  const isSelected = item.id === selectedId;
14446
14502
  const isSettled = item.statusKind !== "review";
14447
- return /* @__PURE__ */ jsx73("li", { className: "flex", children: /* @__PURE__ */ jsxs70(
14503
+ return /* @__PURE__ */ jsx74("li", { className: "flex", children: /* @__PURE__ */ jsxs71(
14448
14504
  Button,
14449
14505
  {
14450
14506
  variant: "row",
@@ -14452,42 +14508,42 @@ var SearchResultsList = React73.forwardRef(
14452
14508
  "aria-current": isSelected ? "true" : void 0,
14453
14509
  "data-selected": isSelected || void 0,
14454
14510
  onClick: () => onSelect?.(item),
14455
- className: cn64(
14511
+ className: cn65(
14456
14512
  "py-md",
14457
14513
  index > 0 && "border-t border-hairline-soft",
14458
14514
  "[&>span:first-child]:w-full [&>span:first-child]:justify-start"
14459
14515
  ),
14460
14516
  children: [
14461
- /* @__PURE__ */ jsx73(
14517
+ /* @__PURE__ */ jsx74(
14462
14518
  "span",
14463
14519
  {
14464
14520
  "aria-hidden": "true",
14465
14521
  className: "flex size-11 shrink-0 items-center justify-center rounded-md border border-hairline bg-canvas text-ink",
14466
- children: /* @__PURE__ */ jsx73(Icon, { name: "store", size: 19, strokeWidth: 1.5 })
14522
+ children: /* @__PURE__ */ jsx74(Icon, { name: "store", size: 19, strokeWidth: 1.5 })
14467
14523
  }
14468
14524
  ),
14469
- /* @__PURE__ */ jsxs70("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs pl-sm", children: [
14470
- /* @__PURE__ */ jsx73("span", { className: "truncate text-label text-ink", children: item.name }),
14471
- /* @__PURE__ */ jsx73("span", { className: "truncate text-body-sm text-muted", children: item.reference })
14525
+ /* @__PURE__ */ jsxs71("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs pl-sm", children: [
14526
+ /* @__PURE__ */ jsx74("span", { className: "truncate text-label text-ink", children: item.name }),
14527
+ /* @__PURE__ */ jsx74("span", { className: "truncate text-body-sm text-muted", children: item.reference })
14472
14528
  ] }),
14473
- /* @__PURE__ */ jsx73("span", { className: "hidden w-32 shrink-0 text-body-md text-muted sm:block", children: item.date }),
14474
- /* @__PURE__ */ jsx73("span", { className: "flex w-40 shrink-0 items-center", children: isSettled ? /* @__PURE__ */ jsxs70("span", { className: "inline-flex min-w-0 items-center gap-sm text-body-md text-ink", children: [
14475
- /* @__PURE__ */ jsx73(
14529
+ /* @__PURE__ */ jsx74("span", { className: "hidden w-32 shrink-0 text-body-md text-muted sm:block", children: item.date }),
14530
+ /* @__PURE__ */ jsx74("span", { className: "flex w-40 shrink-0 items-center", children: isSettled ? /* @__PURE__ */ jsxs71("span", { className: "inline-flex min-w-0 items-center gap-sm text-body-md text-ink", children: [
14531
+ /* @__PURE__ */ jsx74(
14476
14532
  "span",
14477
14533
  {
14478
14534
  "aria-hidden": "true",
14479
14535
  className: "size-2 shrink-0 rounded-full bg-primary"
14480
14536
  }
14481
14537
  ),
14482
- /* @__PURE__ */ jsx73("span", { className: "truncate", children: item.status })
14483
- ] }) : /* @__PURE__ */ jsx73(Badge, { variant: "soft", tone: "info", size: "md", children: item.status }) }),
14484
- /* @__PURE__ */ jsx73("span", { className: "w-24 shrink-0 text-right text-body-tabular text-ink", children: item.amount })
14538
+ /* @__PURE__ */ jsx74("span", { className: "truncate", children: item.status })
14539
+ ] }) : /* @__PURE__ */ jsx74(Badge, { variant: "soft", tone: "info", size: "md", children: item.status }) }),
14540
+ /* @__PURE__ */ jsx74("span", { className: "w-24 shrink-0 text-right text-body-tabular text-ink", children: item.amount })
14485
14541
  ]
14486
14542
  }
14487
14543
  ) }, item.id);
14488
- }) }) : /* @__PURE__ */ jsxs70("div", { className: "flex flex-col items-center gap-xs px-lg py-xxl text-center", children: [
14489
- /* @__PURE__ */ jsx73("p", { className: "text-body-md text-ink", children: emptyLabel ?? "No results found" }),
14490
- /* @__PURE__ */ jsx73("p", { className: "text-body-sm text-muted", children: "Try a different name, reference, or filter." })
14544
+ }) }) : /* @__PURE__ */ jsxs71("div", { className: "flex flex-col items-center gap-xs px-lg py-xxl text-center", children: [
14545
+ /* @__PURE__ */ jsx74("p", { className: "text-body-md text-ink", children: emptyLabel ?? "No results found" }),
14546
+ /* @__PURE__ */ jsx74("p", { className: "text-body-sm text-muted", children: "Try a different name, reference, or filter." })
14491
14547
  ] }) })
14492
14548
  ]
14493
14549
  }
@@ -14497,13 +14553,13 @@ var SearchResultsList = React73.forwardRef(
14497
14553
  SearchResultsList.displayName = "SearchResultsList";
14498
14554
 
14499
14555
  // virtual-pkg:src/atoms/Sidebar/Sidebar.tsx
14500
- import * as React76 from "react";
14556
+ import * as React77 from "react";
14501
14557
 
14502
14558
  // virtual-pkg:src/atoms/SidebarDesktop/SidebarDesktop.tsx
14503
- import * as React74 from "react";
14559
+ import * as React75 from "react";
14504
14560
  import * as ReactDOM11 from "react-dom";
14505
- import { Fragment as Fragment10, jsx as jsx74, jsxs as jsxs71 } from "react/jsx-runtime";
14506
- var cn65 = (...values) => values.filter(Boolean).join(" ");
14561
+ import { Fragment as Fragment10, jsx as jsx75, jsxs as jsxs72 } from "react/jsx-runtime";
14562
+ var cn66 = (...values) => values.filter(Boolean).join(" ");
14507
14563
  var MENU_GAP2 = 6;
14508
14564
  var MENU_MIN_WIDTH = 224;
14509
14565
  var VIEWPORT_INSET6 = 12;
@@ -14533,7 +14589,7 @@ var SAMPLE_SECONDARY = [
14533
14589
  { id: "team", label: "Team", icon: "group", href: "#team" }
14534
14590
  ];
14535
14591
  var SAMPLE_PLAN = { name: "Pro", price: "$2,400.00 / month", href: "#plan" };
14536
- var glyph3 = (name, size = 16, strokeWidth = 1.75) => /* @__PURE__ */ jsx74(
14592
+ var glyph3 = (name, size = 16, strokeWidth = 1.75) => /* @__PURE__ */ jsx75(
14537
14593
  Icon,
14538
14594
  {
14539
14595
  name,
@@ -14562,12 +14618,12 @@ var rowAccessibleName = (label, badge) => {
14562
14618
  var RailBadge = ({
14563
14619
  badge,
14564
14620
  active
14565
- }) => /* @__PURE__ */ jsx74(
14621
+ }) => /* @__PURE__ */ jsx75(
14566
14622
  "span",
14567
14623
  {
14568
14624
  "aria-hidden": "true",
14569
14625
  "data-active": active || void 0,
14570
- className: cn65(
14626
+ className: cn66(
14571
14627
  "ml-auto flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full",
14572
14628
  "bg-primary px-xxs text-caption text-on-primary",
14573
14629
  "data-[active=true]:bg-on-primary data-[active=true]:text-primary"
@@ -14575,13 +14631,13 @@ var RailBadge = ({
14575
14631
  children: badgeText(badge)
14576
14632
  }
14577
14633
  );
14578
- var railGlyph = (item, folded) => /* @__PURE__ */ jsxs71("span", { className: "relative inline-flex shrink-0 items-center", children: [
14634
+ var railGlyph = (item, folded) => /* @__PURE__ */ jsxs72("span", { className: "relative inline-flex shrink-0 items-center", children: [
14579
14635
  glyph3(item.icon, 16, 1.75),
14580
- folded && hasBadge(item.badge) ? /* @__PURE__ */ jsx74(
14636
+ folded && hasBadge(item.badge) ? /* @__PURE__ */ jsx75(
14581
14637
  "span",
14582
14638
  {
14583
14639
  "aria-hidden": "true",
14584
- className: cn65(
14640
+ className: cn66(
14585
14641
  "pointer-events-none absolute -right-xxs -top-xxs size-2 rounded-full",
14586
14642
  "bg-primary",
14587
14643
  "group-data-[active=true]:bg-on-primary"
@@ -14592,8 +14648,8 @@ var railGlyph = (item, folded) => /* @__PURE__ */ jsxs71("span", { className: "r
14592
14648
  var RowLabel = ({
14593
14649
  folded,
14594
14650
  children
14595
- }) => folded ? /* @__PURE__ */ jsx74("span", { className: "sr-only", children }) : /* @__PURE__ */ jsx74("span", { className: "truncate", children });
14596
- var railRowClass = (active, folded) => cn65(
14651
+ }) => folded ? /* @__PURE__ */ jsx75("span", { className: "sr-only", children }) : /* @__PURE__ */ jsx75("span", { className: "truncate", children });
14652
+ var railRowClass = (active, folded) => cn66(
14597
14653
  "group flex w-full cursor-pointer items-center rounded-lg border-0 bg-transparent",
14598
14654
  "text-body-md transition duration-150 ease-out",
14599
14655
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
@@ -14602,7 +14658,7 @@ var railRowClass = (active, folded) => cn65(
14602
14658
  folded ? "justify-center px-md py-sm" : "gap-md px-lg py-sm"
14603
14659
  );
14604
14660
  var isModified = (event) => event.metaKey || event.ctrlKey || event.shiftKey || event.altKey ? true : event.button !== 0;
14605
- var SidebarDesktop = React74.forwardRef(
14661
+ var SidebarDesktop = React75.forwardRef(
14606
14662
  ({
14607
14663
  wordmark = "Nimbus",
14608
14664
  homeHref = "#home",
@@ -14632,27 +14688,27 @@ var SidebarDesktop = React74.forwardRef(
14632
14688
  className,
14633
14689
  ...rest
14634
14690
  }, ref) => {
14635
- const uid = React74.useId().replace(/[^a-zA-Z0-9-]/g, "");
14691
+ const uid = React75.useId().replace(/[^a-zA-Z0-9-]/g, "");
14636
14692
  const primaryNavId = `${uid}-primary`;
14637
14693
  const accountsPanelId = `${uid}-accounts`;
14638
- const triggerRef = React74.useRef(null);
14639
- const panelRef = React74.useRef(null);
14640
- const [internalFolded, setInternalFolded] = React74.useState(defaultFolded);
14694
+ const triggerRef = React75.useRef(null);
14695
+ const panelRef = React75.useRef(null);
14696
+ const [internalFolded, setInternalFolded] = React75.useState(defaultFolded);
14641
14697
  const isFolded = folded !== void 0 ? folded : internalFolded;
14642
14698
  const navItems = items ?? SAMPLE_ITEMS;
14643
14699
  const secondaryNav = secondaryItems ?? SAMPLE_SECONDARY;
14644
14700
  const accountList = accounts ?? SAMPLE_ACCOUNTS;
14645
14701
  const planTile = plan === void 0 ? SAMPLE_PLAN : plan;
14646
- const [internalAccount, setInternalAccount] = React74.useState(
14702
+ const [internalAccount, setInternalAccount] = React75.useState(
14647
14703
  defaultAccountValue ?? accountList[0]?.value
14648
14704
  );
14649
14705
  const selectedAccount = accountValue !== void 0 ? accountValue : internalAccount;
14650
14706
  const currentAccount = accountList.find(
14651
14707
  (account) => account.value === selectedAccount
14652
14708
  );
14653
- const [accountsOpen, setAccountsOpen] = React74.useState(false);
14654
- const [box, setBox] = React74.useState(null);
14655
- const [expandedId, setExpandedId] = React74.useState(
14709
+ const [accountsOpen, setAccountsOpen] = React75.useState(false);
14710
+ const [box, setBox] = React75.useState(null);
14711
+ const [expandedId, setExpandedId] = React75.useState(
14656
14712
  defaultExpandedId
14657
14713
  );
14658
14714
  const setFolded = (next) => {
@@ -14675,7 +14731,7 @@ var SidebarDesktop = React74.forwardRef(
14675
14731
  event.preventDefault();
14676
14732
  }
14677
14733
  };
14678
- const measure = React74.useCallback(() => {
14734
+ const measure = React75.useCallback(() => {
14679
14735
  const trigger = triggerRef.current;
14680
14736
  if (!trigger) {
14681
14737
  return;
@@ -14708,7 +14764,7 @@ var SidebarDesktop = React74.forwardRef(
14708
14764
  );
14709
14765
  setBox({ top: clampedTop, left, width, maxHeight });
14710
14766
  }, []);
14711
- React74.useEffect(() => {
14767
+ React75.useEffect(() => {
14712
14768
  if (!accountsOpen) {
14713
14769
  return;
14714
14770
  }
@@ -14756,7 +14812,7 @@ var SidebarDesktop = React74.forwardRef(
14756
14812
  const subRowClass2 = "flex w-full cursor-pointer items-center rounded-md px-lg py-xs text-body-sm text-on-primary/70 transition duration-150 ease-out hover:bg-on-primary/10 hover:text-on-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue focus-visible:ring-inset";
14757
14813
  const bellLabel = notificationCount > 0 ? `${notificationsLabel}, ${notificationCount} unread` : notificationsLabel;
14758
14814
  const accountsPanel = typeof document === "undefined" ? null : ReactDOM11.createPortal(
14759
- /* @__PURE__ */ jsx74(
14815
+ /* @__PURE__ */ jsx75(
14760
14816
  "div",
14761
14817
  {
14762
14818
  ref: panelRef,
@@ -14773,7 +14829,7 @@ var SidebarDesktop = React74.forwardRef(
14773
14829
  maxHeight: box?.maxHeight ?? void 0,
14774
14830
  zIndex: "var(--z-popover, 1300)"
14775
14831
  },
14776
- className: cn65(
14832
+ className: cn66(
14777
14833
  "origin-top overflow-y-auto overscroll-contain rounded-lg border border-hairline",
14778
14834
  "bg-surface p-xs shadow-lg transition duration-200 ease-out",
14779
14835
  "data-[state=open]:translate-y-0 data-[state=open]:scale-100 data-[state=open]:opacity-100",
@@ -14781,7 +14837,7 @@ var SidebarDesktop = React74.forwardRef(
14781
14837
  ),
14782
14838
  children: accountList.map((account) => {
14783
14839
  const selected = account.value === selectedAccount;
14784
- return /* @__PURE__ */ jsx74(
14840
+ return /* @__PURE__ */ jsx75(
14785
14841
  Button,
14786
14842
  {
14787
14843
  variant: "row",
@@ -14791,8 +14847,8 @@ var SidebarDesktop = React74.forwardRef(
14791
14847
  "data-selected": selected,
14792
14848
  tabIndex: -1,
14793
14849
  onClick: () => chooseAccount(account),
14794
- leadingIcon: /* @__PURE__ */ jsx74(Icon, { name: "layers", size: 16, tone: "muted" }),
14795
- trailingIcon: selected ? /* @__PURE__ */ jsx74(
14850
+ leadingIcon: /* @__PURE__ */ jsx75(Icon, { name: "layers", size: 16, tone: "muted" }),
14851
+ trailingIcon: selected ? /* @__PURE__ */ jsx75(
14796
14852
  Icon,
14797
14853
  {
14798
14854
  name: "check",
@@ -14810,7 +14866,7 @@ var SidebarDesktop = React74.forwardRef(
14810
14866
  ),
14811
14867
  document.body
14812
14868
  );
14813
- return /* @__PURE__ */ jsxs71(
14869
+ return /* @__PURE__ */ jsxs72(
14814
14870
  "aside",
14815
14871
  {
14816
14872
  ref,
@@ -14818,7 +14874,7 @@ var SidebarDesktop = React74.forwardRef(
14818
14874
  style: {
14819
14875
  width: isFolded ? "var(--container-sidebar-rail, 72px)" : "var(--container-sidebar, 240px)"
14820
14876
  },
14821
- className: cn65(
14877
+ className: cn66(
14822
14878
  "flex h-full min-h-0 shrink-0 flex-col bg-brand-dark text-on-primary",
14823
14879
  "transition-[width] duration-200 ease-out",
14824
14880
  isFolded ? "px-xs" : "px-md",
@@ -14827,31 +14883,31 @@ var SidebarDesktop = React74.forwardRef(
14827
14883
  ),
14828
14884
  ...rest,
14829
14885
  children: [
14830
- /* @__PURE__ */ jsxs71(
14886
+ /* @__PURE__ */ jsxs72(
14831
14887
  "div",
14832
14888
  {
14833
- className: cn65(
14889
+ className: cn66(
14834
14890
  "flex w-full shrink-0 items-center pb-lg",
14835
14891
  isFolded ? "justify-center" : "justify-between gap-sm"
14836
14892
  ),
14837
14893
  children: [
14838
- isFolded ? null : /* @__PURE__ */ jsxs71(
14894
+ isFolded ? null : /* @__PURE__ */ jsxs72(
14839
14895
  "a",
14840
14896
  {
14841
14897
  href: homeHref,
14842
14898
  onClick: navigate({ id: "home", href: homeHref }),
14843
- className: cn65(
14899
+ className: cn66(
14844
14900
  "inline-flex min-w-0 cursor-pointer items-center gap-sm rounded-md px-xs text-on-primary",
14845
14901
  "transition duration-150 ease-out hover:opacity-80",
14846
14902
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue"
14847
14903
  ),
14848
14904
  children: [
14849
14905
  glyph3("slash", 20, 3),
14850
- /* @__PURE__ */ jsx74("span", { className: "truncate text-body-lg font-weight-label", children: wordmark })
14906
+ /* @__PURE__ */ jsx75("span", { className: "truncate text-body-lg font-weight-label", children: wordmark })
14851
14907
  ]
14852
14908
  }
14853
14909
  ),
14854
- /* @__PURE__ */ jsx74(
14910
+ /* @__PURE__ */ jsx75(
14855
14911
  Button,
14856
14912
  {
14857
14913
  variant: "bare",
@@ -14860,7 +14916,7 @@ var SidebarDesktop = React74.forwardRef(
14860
14916
  "aria-expanded": !isFolded,
14861
14917
  "aria-controls": primaryNavId,
14862
14918
  onClick: () => setFolded(!isFolded),
14863
- className: cn65(
14919
+ className: cn66(
14864
14920
  "shrink-0 rounded-md text-on-primary/60",
14865
14921
  "hover:bg-on-primary/10 hover:text-on-primary"
14866
14922
  ),
@@ -14870,7 +14926,7 @@ var SidebarDesktop = React74.forwardRef(
14870
14926
  ]
14871
14927
  }
14872
14928
  ),
14873
- accountList.length > 1 ? /* @__PURE__ */ jsx74(
14929
+ accountList.length > 1 ? /* @__PURE__ */ jsx75(
14874
14930
  Button,
14875
14931
  {
14876
14932
  ref: triggerRef,
@@ -14886,43 +14942,43 @@ var SidebarDesktop = React74.forwardRef(
14886
14942
  setAccountsOpen((previous) => !previous);
14887
14943
  },
14888
14944
  className: "shrink-0",
14889
- trailingIcon: isFolded ? void 0 : /* @__PURE__ */ jsx74(
14945
+ trailingIcon: isFolded ? void 0 : /* @__PURE__ */ jsx75(
14890
14946
  "span",
14891
14947
  {
14892
14948
  "aria-hidden": "true",
14893
- className: cn65(
14949
+ className: cn66(
14894
14950
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
14895
14951
  accountsOpen ? "rotate-180" : "rotate-0"
14896
14952
  ),
14897
14953
  children: glyph3("chevron-down", 16, 2)
14898
14954
  }
14899
14955
  ),
14900
- children: /* @__PURE__ */ jsxs71(
14956
+ children: /* @__PURE__ */ jsxs72(
14901
14957
  "span",
14902
14958
  {
14903
- className: cn65("flex min-w-0 items-center", isFolded ? "" : "gap-sm"),
14959
+ className: cn66("flex min-w-0 items-center", isFolded ? "" : "gap-sm"),
14904
14960
  children: [
14905
14961
  glyph3("layers", 16, 1.75),
14906
- isFolded ? /* @__PURE__ */ jsx74("span", { className: "sr-only", children: currentAccount?.label ?? "Choose account" }) : /* @__PURE__ */ jsx74("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
14962
+ isFolded ? /* @__PURE__ */ jsx75("span", { className: "sr-only", children: currentAccount?.label ?? "Choose account" }) : /* @__PURE__ */ jsx75("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
14907
14963
  ]
14908
14964
  }
14909
14965
  )
14910
14966
  }
14911
- ) : /* @__PURE__ */ jsxs71(
14967
+ ) : /* @__PURE__ */ jsxs72(
14912
14968
  "div",
14913
14969
  {
14914
- className: cn65(
14970
+ className: cn66(
14915
14971
  "flex w-full shrink-0 items-center rounded-lg bg-on-primary/10 py-sm text-body-md text-on-primary",
14916
14972
  isFolded ? "justify-center px-md" : "gap-sm px-md"
14917
14973
  ),
14918
14974
  children: [
14919
14975
  glyph3("layers", 16, 1.75),
14920
- isFolded ? /* @__PURE__ */ jsx74("span", { className: "sr-only", children: currentAccount?.label }) : /* @__PURE__ */ jsx74("span", { className: "truncate", children: currentAccount?.label })
14976
+ isFolded ? /* @__PURE__ */ jsx75("span", { className: "sr-only", children: currentAccount?.label }) : /* @__PURE__ */ jsx75("span", { className: "truncate", children: currentAccount?.label })
14921
14977
  ]
14922
14978
  }
14923
14979
  ),
14924
- /* @__PURE__ */ jsxs71("div", { className: "mt-lg flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain", children: [
14925
- /* @__PURE__ */ jsx74(
14980
+ /* @__PURE__ */ jsxs72("div", { className: "mt-lg flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain", children: [
14981
+ /* @__PURE__ */ jsx75(
14926
14982
  "nav",
14927
14983
  {
14928
14984
  id: primaryNavId,
@@ -14932,7 +14988,7 @@ var SidebarDesktop = React74.forwardRef(
14932
14988
  const active = item.id === activeId;
14933
14989
  const badged = hasBadge(item.badge);
14934
14990
  if (!item.children?.length) {
14935
- return /* @__PURE__ */ jsxs71(
14991
+ return /* @__PURE__ */ jsxs72(
14936
14992
  "a",
14937
14993
  {
14938
14994
  href: item.href ?? `#${item.id}`,
@@ -14943,8 +14999,8 @@ var SidebarDesktop = React74.forwardRef(
14943
14999
  className: railRowClass(active, isFolded),
14944
15000
  children: [
14945
15001
  railGlyph(item, isFolded),
14946
- /* @__PURE__ */ jsx74(RowLabel, { folded: isFolded, children: item.label }),
14947
- !isFolded && badged ? /* @__PURE__ */ jsx74(RailBadge, { badge: item.badge, active }) : null
15002
+ /* @__PURE__ */ jsx75(RowLabel, { folded: isFolded, children: item.label }),
15003
+ !isFolded && badged ? /* @__PURE__ */ jsx75(RailBadge, { badge: item.badge, active }) : null
14948
15004
  ]
14949
15005
  },
14950
15006
  item.id
@@ -14952,8 +15008,8 @@ var SidebarDesktop = React74.forwardRef(
14952
15008
  }
14953
15009
  const expanded = expandedId === item.id;
14954
15010
  const subId = `${uid}-${item.id}-sub`;
14955
- return /* @__PURE__ */ jsxs71("div", { className: "flex flex-col gap-xxs", children: [
14956
- /* @__PURE__ */ jsx74(
15011
+ return /* @__PURE__ */ jsxs72("div", { className: "flex flex-col gap-xxs", children: [
15012
+ /* @__PURE__ */ jsx75(
14957
15013
  Button,
14958
15014
  {
14959
15015
  variant: "rail-row",
@@ -14966,19 +15022,19 @@ var SidebarDesktop = React74.forwardRef(
14966
15022
  onClick: () => toggleExpanded(item.id),
14967
15023
  className: "group",
14968
15024
  leadingIcon: railGlyph(item, isFolded),
14969
- trailingIcon: isFolded ? void 0 : /* @__PURE__ */ jsxs71("span", { className: "flex items-center gap-xs", children: [
14970
- badged ? /* @__PURE__ */ jsx74(
15025
+ trailingIcon: isFolded ? void 0 : /* @__PURE__ */ jsxs72("span", { className: "flex items-center gap-xs", children: [
15026
+ badged ? /* @__PURE__ */ jsx75(
14971
15027
  RailBadge,
14972
15028
  {
14973
15029
  badge: item.badge,
14974
15030
  active
14975
15031
  }
14976
15032
  ) : null,
14977
- /* @__PURE__ */ jsx74(
15033
+ /* @__PURE__ */ jsx75(
14978
15034
  "span",
14979
15035
  {
14980
15036
  "aria-hidden": "true",
14981
- className: cn65(
15037
+ className: cn66(
14982
15038
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
14983
15039
  expanded ? "rotate-180" : "rotate-0"
14984
15040
  ),
@@ -14986,19 +15042,19 @@ var SidebarDesktop = React74.forwardRef(
14986
15042
  }
14987
15043
  )
14988
15044
  ] }),
14989
- children: /* @__PURE__ */ jsx74(RowLabel, { folded: isFolded, children: item.label })
15045
+ children: /* @__PURE__ */ jsx75(RowLabel, { folded: isFolded, children: item.label })
14990
15046
  }
14991
15047
  ),
14992
- isFolded ? null : /* @__PURE__ */ jsx74(
15048
+ isFolded ? null : /* @__PURE__ */ jsx75(
14993
15049
  "div",
14994
15050
  {
14995
15051
  id: subId,
14996
15052
  "data-state": expanded ? "open" : "closed",
14997
- className: cn65(
15053
+ className: cn66(
14998
15054
  "grid transition-[grid-template-rows,opacity] duration-200 ease-out",
14999
15055
  expanded ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
15000
15056
  ),
15001
- children: /* @__PURE__ */ jsx74("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx74("ul", { className: "flex flex-col gap-xxs pb-xs pl-xl pt-xxs", children: item.children.map((child) => /* @__PURE__ */ jsx74("li", { children: /* @__PURE__ */ jsx74(
15057
+ children: /* @__PURE__ */ jsx75("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx75("ul", { className: "flex flex-col gap-xxs pb-xs pl-xl pt-xxs", children: item.children.map((child) => /* @__PURE__ */ jsx75("li", { children: /* @__PURE__ */ jsx75(
15002
15058
  "a",
15003
15059
  {
15004
15060
  href: child.href ?? `#${child.id}`,
@@ -15008,7 +15064,7 @@ var SidebarDesktop = React74.forwardRef(
15008
15064
  }),
15009
15065
  tabIndex: expanded ? void 0 : -1,
15010
15066
  className: subRowClass2,
15011
- children: /* @__PURE__ */ jsx74("span", { className: "truncate", children: child.label })
15067
+ children: /* @__PURE__ */ jsx75("span", { className: "truncate", children: child.label })
15012
15068
  }
15013
15069
  ) }, child.id)) }) })
15014
15070
  }
@@ -15017,7 +15073,7 @@ var SidebarDesktop = React74.forwardRef(
15017
15073
  })
15018
15074
  }
15019
15075
  ),
15020
- /* @__PURE__ */ jsx74("div", { className: "mt-lg shrink-0", children: /* @__PURE__ */ jsx74(
15076
+ /* @__PURE__ */ jsx75("div", { className: "mt-lg shrink-0", children: /* @__PURE__ */ jsx75(
15021
15077
  Button,
15022
15078
  {
15023
15079
  variant: "inverse-outline",
@@ -15029,17 +15085,17 @@ var SidebarDesktop = React74.forwardRef(
15029
15085
  children: isFolded ? void 0 : primaryActionLabel
15030
15086
  }
15031
15087
  ) }),
15032
- /* @__PURE__ */ jsx74(
15088
+ /* @__PURE__ */ jsx75(
15033
15089
  "span",
15034
15090
  {
15035
15091
  "aria-hidden": "true",
15036
15092
  className: "mt-lg block h-px shrink-0 bg-on-primary/15"
15037
15093
  }
15038
15094
  ),
15039
- /* @__PURE__ */ jsx74("nav", { "aria-label": "Secondary", className: "mt-lg flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15095
+ /* @__PURE__ */ jsx75("nav", { "aria-label": "Secondary", className: "mt-lg flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15040
15096
  const active = item.id === secondaryActiveId;
15041
15097
  const badged = hasBadge(item.badge);
15042
- return /* @__PURE__ */ jsxs71(
15098
+ return /* @__PURE__ */ jsxs72(
15043
15099
  "a",
15044
15100
  {
15045
15101
  href: item.href ?? `#${item.id}`,
@@ -15050,21 +15106,21 @@ var SidebarDesktop = React74.forwardRef(
15050
15106
  className: railRowClass(active, isFolded),
15051
15107
  children: [
15052
15108
  railGlyph(item, isFolded),
15053
- /* @__PURE__ */ jsx74(RowLabel, { folded: isFolded, children: item.label }),
15054
- !isFolded && badged ? /* @__PURE__ */ jsx74(RailBadge, { badge: item.badge, active }) : null
15109
+ /* @__PURE__ */ jsx75(RowLabel, { folded: isFolded, children: item.label }),
15110
+ !isFolded && badged ? /* @__PURE__ */ jsx75(RailBadge, { badge: item.badge, active }) : null
15055
15111
  ]
15056
15112
  },
15057
15113
  item.id
15058
15114
  );
15059
15115
  }) })
15060
15116
  ] }),
15061
- /* @__PURE__ */ jsxs71("div", { className: "mt-lg shrink-0", children: [
15062
- planTile ? /* @__PURE__ */ jsxs71(
15117
+ /* @__PURE__ */ jsxs72("div", { className: "mt-lg shrink-0", children: [
15118
+ planTile ? /* @__PURE__ */ jsxs72(
15063
15119
  "a",
15064
15120
  {
15065
15121
  href: planTile.href ?? "#plan",
15066
15122
  onClick: navigate({ id: "plan", href: planTile.href }),
15067
- className: cn65(
15123
+ className: cn66(
15068
15124
  "flex w-full cursor-pointer items-center rounded-lg bg-on-primary/10",
15069
15125
  "transition duration-150 ease-out hover:bg-on-primary/15",
15070
15126
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
@@ -15072,33 +15128,33 @@ var SidebarDesktop = React74.forwardRef(
15072
15128
  isFolded ? "justify-center p-sm" : "gap-sm p-sm"
15073
15129
  ),
15074
15130
  children: [
15075
- /* @__PURE__ */ jsx74("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-primary text-on-primary", children: glyph3("chart-bar", 16, 2) }),
15076
- isFolded ? /* @__PURE__ */ jsx74("span", { className: "sr-only", children: `${planTile.name}, ${planTile.price}` }) : /* @__PURE__ */ jsxs71(Fragment10, { children: [
15077
- /* @__PURE__ */ jsxs71("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15078
- /* @__PURE__ */ jsx74("span", { className: "truncate text-body-md text-on-primary", children: planTile.name }),
15079
- /* @__PURE__ */ jsx74("span", { className: "truncate text-caption text-on-primary/60", children: planTile.price })
15131
+ /* @__PURE__ */ jsx75("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-primary text-on-primary", children: glyph3("chart-bar", 16, 2) }),
15132
+ isFolded ? /* @__PURE__ */ jsx75("span", { className: "sr-only", children: `${planTile.name}, ${planTile.price}` }) : /* @__PURE__ */ jsxs72(Fragment10, { children: [
15133
+ /* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15134
+ /* @__PURE__ */ jsx75("span", { className: "truncate text-body-md text-on-primary", children: planTile.name }),
15135
+ /* @__PURE__ */ jsx75("span", { className: "truncate text-caption text-on-primary/60", children: planTile.price })
15080
15136
  ] }),
15081
- /* @__PURE__ */ jsx74("span", { "aria-hidden": "true", className: "shrink-0 text-on-primary/60", children: glyph3("arrow-right", 16, 2) })
15137
+ /* @__PURE__ */ jsx75("span", { "aria-hidden": "true", className: "shrink-0 text-on-primary/60", children: glyph3("arrow-right", 16, 2) })
15082
15138
  ] })
15083
15139
  ]
15084
15140
  }
15085
15141
  ) : null,
15086
- /* @__PURE__ */ jsxs71(
15142
+ /* @__PURE__ */ jsxs72(
15087
15143
  "div",
15088
15144
  {
15089
- className: cn65(
15145
+ className: cn66(
15090
15146
  "mt-sm flex items-center",
15091
15147
  isFolded ? "justify-center" : "gap-sm pl-xs"
15092
15148
  ),
15093
15149
  children: [
15094
- /* @__PURE__ */ jsx74(Avatar, { name: profile.name, src: profile.src, size: "sm" }),
15095
- isFolded ? /* @__PURE__ */ jsx74("span", { className: "sr-only", children: profile.name }) : /* @__PURE__ */ jsxs71(Fragment10, { children: [
15096
- /* @__PURE__ */ jsxs71("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15097
- /* @__PURE__ */ jsx74("span", { className: "truncate text-body-sm text-on-primary", children: profile.name }),
15098
- profile.email ? /* @__PURE__ */ jsx74("span", { className: "truncate text-caption text-on-primary/60", children: profile.email }) : null
15150
+ /* @__PURE__ */ jsx75(Avatar, { name: profile.name, src: profile.src, size: "sm" }),
15151
+ isFolded ? /* @__PURE__ */ jsx75("span", { className: "sr-only", children: profile.name }) : /* @__PURE__ */ jsxs72(Fragment10, { children: [
15152
+ /* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15153
+ /* @__PURE__ */ jsx75("span", { className: "truncate text-body-sm text-on-primary", children: profile.name }),
15154
+ profile.email ? /* @__PURE__ */ jsx75("span", { className: "truncate text-caption text-on-primary/60", children: profile.email }) : null
15099
15155
  ] }),
15100
- /* @__PURE__ */ jsxs71("span", { className: "relative inline-flex shrink-0", children: [
15101
- /* @__PURE__ */ jsx74(
15156
+ /* @__PURE__ */ jsxs72("span", { className: "relative inline-flex shrink-0", children: [
15157
+ /* @__PURE__ */ jsx75(
15102
15158
  Button,
15103
15159
  {
15104
15160
  variant: "bare",
@@ -15109,11 +15165,11 @@ var SidebarDesktop = React74.forwardRef(
15109
15165
  children: glyph3("bell", 16, 1.75)
15110
15166
  }
15111
15167
  ),
15112
- notificationCount > 0 ? /* @__PURE__ */ jsx74(
15168
+ notificationCount > 0 ? /* @__PURE__ */ jsx75(
15113
15169
  "span",
15114
15170
  {
15115
15171
  "aria-hidden": "true",
15116
- className: cn65(
15172
+ className: cn66(
15117
15173
  "pointer-events-none absolute -right-xxs -top-xxs",
15118
15174
  "flex h-4 min-w-4 items-center justify-center rounded-full",
15119
15175
  "bg-primary px-xxs text-caption text-on-primary"
@@ -15122,7 +15178,7 @@ var SidebarDesktop = React74.forwardRef(
15122
15178
  }
15123
15179
  ) : null
15124
15180
  ] }),
15125
- /* @__PURE__ */ jsx74(
15181
+ /* @__PURE__ */ jsx75(
15126
15182
  Button,
15127
15183
  {
15128
15184
  variant: "bare",
@@ -15147,10 +15203,10 @@ var SidebarDesktop = React74.forwardRef(
15147
15203
  SidebarDesktop.displayName = "SidebarDesktop";
15148
15204
 
15149
15205
  // virtual-pkg:src/atoms/SidebarMobile/SidebarMobile.tsx
15150
- import * as React75 from "react";
15206
+ import * as React76 from "react";
15151
15207
  import { createPortal as createPortal15 } from "react-dom";
15152
- import { jsx as jsx75, jsxs as jsxs72 } from "react/jsx-runtime";
15153
- var cn66 = (...values) => values.filter(Boolean).join(" ");
15208
+ import { jsx as jsx76, jsxs as jsxs73 } from "react/jsx-runtime";
15209
+ var cn67 = (...values) => values.filter(Boolean).join(" ");
15154
15210
  var SAMPLE_ACCOUNTS2 = [
15155
15211
  { value: "acme", label: "Acme Payments" },
15156
15212
  { value: "northwind", label: "Northwind Labs" },
@@ -15177,7 +15233,7 @@ var SAMPLE_SECONDARY2 = [
15177
15233
  { id: "team", label: "Team", icon: "group", href: "#team" }
15178
15234
  ];
15179
15235
  var SAMPLE_PLAN2 = { name: "Pro", price: "$2,400.00 / month", href: "#plan" };
15180
- var glyph4 = (name, size = 18, strokeWidth = 1.75) => /* @__PURE__ */ jsx75(Icon, { name, size, strokeWidth, style: { color: "inherit" } });
15236
+ var glyph4 = (name, size = 18, strokeWidth = 1.75) => /* @__PURE__ */ jsx76(Icon, { name, size, strokeWidth, style: { color: "inherit" } });
15181
15237
  var hasBadge2 = (badge) => {
15182
15238
  if (badge === void 0 || badge === null) {
15183
15239
  return false;
@@ -15198,12 +15254,12 @@ var rowAccessibleName2 = (label, badge) => {
15198
15254
  var NavBadge = ({
15199
15255
  badge,
15200
15256
  active
15201
- }) => /* @__PURE__ */ jsx75(
15257
+ }) => /* @__PURE__ */ jsx76(
15202
15258
  "span",
15203
15259
  {
15204
15260
  "aria-hidden": "true",
15205
15261
  "data-active": active || void 0,
15206
- className: cn66(
15262
+ className: cn67(
15207
15263
  "ml-auto flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full",
15208
15264
  "bg-primary px-xxs text-caption text-on-primary",
15209
15265
  "data-[active=true]:bg-on-primary data-[active=true]:text-primary"
@@ -15211,14 +15267,14 @@ var NavBadge = ({
15211
15267
  children: badgeText2(badge)
15212
15268
  }
15213
15269
  );
15214
- var rowClass = (active) => cn66(
15270
+ var rowClass = (active) => cn67(
15215
15271
  "flex min-h-10 w-full cursor-pointer items-center gap-md rounded-lg px-md py-sm",
15216
15272
  "text-body-md transition duration-150 ease-out",
15217
15273
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
15218
15274
  "focus-visible:ring-inset",
15219
15275
  active ? "bg-primary text-on-primary hover:bg-primary-hover active:bg-primary-active" : "text-ink hover:bg-surface-soft active:bg-surface-strong"
15220
15276
  );
15221
- var subRowClass = cn66(
15277
+ var subRowClass = cn67(
15222
15278
  "flex min-h-7 w-full cursor-pointer items-center gap-md rounded-md px-md py-xxs",
15223
15279
  "text-body-sm text-body transition duration-150 ease-out",
15224
15280
  "hover:bg-surface-soft hover:text-ink active:bg-surface-strong",
@@ -15226,7 +15282,7 @@ var subRowClass = cn66(
15226
15282
  "focus-visible:ring-inset"
15227
15283
  );
15228
15284
  var isModified2 = (event) => event.metaKey || event.ctrlKey || event.shiftKey || event.altKey ? true : event.button !== 0;
15229
- var SidebarMobile = React75.forwardRef(
15285
+ var SidebarMobile = React76.forwardRef(
15230
15286
  ({
15231
15287
  wordmark = "Nimbus",
15232
15288
  homeHref = "#home",
@@ -15261,31 +15317,31 @@ var SidebarMobile = React75.forwardRef(
15261
15317
  className,
15262
15318
  ...rest
15263
15319
  }, ref) => {
15264
- const uid = React75.useId().replace(/[^a-zA-Z0-9-]/g, "");
15320
+ const uid = React76.useId().replace(/[^a-zA-Z0-9-]/g, "");
15265
15321
  const drawerId = `${uid}-drawer`;
15266
15322
  const accountsPanelId = `${uid}-accounts`;
15267
- const toggleRef = React75.useRef(null);
15268
- const closeRef = React75.useRef(null);
15269
- const triggerRef = React75.useRef(null);
15270
- const panelRef = React75.useRef(null);
15271
- const [internalOpen, setInternalOpen] = React75.useState(defaultOpen);
15323
+ const toggleRef = React76.useRef(null);
15324
+ const closeRef = React76.useRef(null);
15325
+ const triggerRef = React76.useRef(null);
15326
+ const panelRef = React76.useRef(null);
15327
+ const [internalOpen, setInternalOpen] = React76.useState(defaultOpen);
15272
15328
  const isOpen = open !== void 0 ? open : internalOpen;
15273
15329
  const navItems = items ?? SAMPLE_ITEMS2;
15274
15330
  const secondaryNav = secondaryItems ?? SAMPLE_SECONDARY2;
15275
15331
  const accountList = accounts ?? SAMPLE_ACCOUNTS2;
15276
15332
  const planTile = plan === void 0 ? SAMPLE_PLAN2 : plan;
15277
- const [internalAccount, setInternalAccount] = React75.useState(
15333
+ const [internalAccount, setInternalAccount] = React76.useState(
15278
15334
  defaultAccountValue ?? accountList[0]?.value
15279
15335
  );
15280
15336
  const selectedAccount = accountValue !== void 0 ? accountValue : internalAccount;
15281
15337
  const currentAccount = accountList.find(
15282
15338
  (account) => account.value === selectedAccount
15283
15339
  );
15284
- const [accountsOpen, setAccountsOpen] = React75.useState(false);
15285
- const [expandedId, setExpandedId] = React75.useState(
15340
+ const [accountsOpen, setAccountsOpen] = React76.useState(false);
15341
+ const [expandedId, setExpandedId] = React76.useState(
15286
15342
  defaultExpandedId
15287
15343
  );
15288
- const setOpen = React75.useCallback(
15344
+ const setOpen = React76.useCallback(
15289
15345
  (next) => {
15290
15346
  if (open === void 0) {
15291
15347
  setInternalOpen(next);
@@ -15301,8 +15357,8 @@ var SidebarMobile = React75.forwardRef(
15301
15357
  }
15302
15358
  setOpen(false);
15303
15359
  };
15304
- const wasOpen = React75.useRef(isOpen);
15305
- React75.useEffect(() => {
15360
+ const wasOpen = React76.useRef(isOpen);
15361
+ React76.useEffect(() => {
15306
15362
  if (isOpen && !wasOpen.current) {
15307
15363
  closeRef.current?.focus();
15308
15364
  }
@@ -15312,7 +15368,7 @@ var SidebarMobile = React75.forwardRef(
15312
15368
  }
15313
15369
  wasOpen.current = isOpen;
15314
15370
  }, [isOpen]);
15315
- React75.useEffect(() => {
15371
+ React76.useEffect(() => {
15316
15372
  if (!isOpen) {
15317
15373
  return;
15318
15374
  }
@@ -15322,7 +15378,7 @@ var SidebarMobile = React75.forwardRef(
15322
15378
  document.body.style.overflow = overflow;
15323
15379
  };
15324
15380
  }, [isOpen]);
15325
- React75.useEffect(() => {
15381
+ React76.useEffect(() => {
15326
15382
  if (!isOpen) {
15327
15383
  return;
15328
15384
  }
@@ -15370,7 +15426,7 @@ var SidebarMobile = React75.forwardRef(
15370
15426
  };
15371
15427
  const bellLabel = notificationCount > 0 ? `${notificationsLabel}, ${notificationCount} unread` : notificationsLabel;
15372
15428
  const drawer = typeof document === "undefined" ? null : createPortal15(
15373
- /* @__PURE__ */ jsxs72(
15429
+ /* @__PURE__ */ jsxs73(
15374
15430
  "div",
15375
15431
  {
15376
15432
  "data-state": isOpen ? "open" : "closed",
@@ -15381,22 +15437,22 @@ var SidebarMobile = React75.forwardRef(
15381
15437
  inset: 0,
15382
15438
  zIndex: "var(--z-modal, 1200)"
15383
15439
  },
15384
- className: cn66(
15440
+ className: cn67(
15385
15441
  "transition-opacity duration-200 ease-out",
15386
15442
  isOpen ? "pointer-events-auto" : "pointer-events-none"
15387
15443
  ),
15388
15444
  children: [
15389
- /* @__PURE__ */ jsx75(
15445
+ /* @__PURE__ */ jsx76(
15390
15446
  "div",
15391
15447
  {
15392
15448
  "aria-hidden": "true",
15393
- className: cn66(
15449
+ className: cn67(
15394
15450
  "absolute inset-0 bg-scrim/50 transition-opacity duration-200 ease-out",
15395
15451
  isOpen ? "opacity-100" : "opacity-0"
15396
15452
  )
15397
15453
  }
15398
15454
  ),
15399
- /* @__PURE__ */ jsxs72(
15455
+ /* @__PURE__ */ jsxs73(
15400
15456
  "div",
15401
15457
  {
15402
15458
  id: drawerId,
@@ -15405,28 +15461,28 @@ var SidebarMobile = React75.forwardRef(
15405
15461
  "aria-modal": "true",
15406
15462
  "aria-label": menuLabel,
15407
15463
  "data-state": isOpen ? "open" : "closed",
15408
- className: cn66(
15464
+ className: cn67(
15409
15465
  "absolute inset-y-sm left-sm flex w-[86%] flex-col overflow-hidden",
15410
15466
  "max-w-[var(--container-drawer,360px)] rounded-xl bg-surface shadow-modal",
15411
15467
  "transition-[transform,visibility] duration-200 ease-out",
15412
15468
  isOpen ? "visible translate-x-0" : "invisible -translate-x-full"
15413
15469
  ),
15414
15470
  children: [
15415
- /* @__PURE__ */ jsxs72("div", { className: "flex shrink-0 items-center justify-between gap-md px-lg pb-sm pt-md", children: [
15416
- /* @__PURE__ */ jsx75(
15471
+ /* @__PURE__ */ jsxs73("div", { className: "flex shrink-0 items-center justify-between gap-md px-lg pb-sm pt-md", children: [
15472
+ /* @__PURE__ */ jsx76(
15417
15473
  "a",
15418
15474
  {
15419
15475
  href: homeHref,
15420
15476
  onClick: navigate({ id: "home", href: homeHref }),
15421
- className: cn66(
15477
+ className: cn67(
15422
15478
  "inline-flex min-w-0 cursor-pointer items-center rounded-xs",
15423
15479
  "transition duration-150 ease-out hover:opacity-80",
15424
15480
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue"
15425
15481
  ),
15426
- children: /* @__PURE__ */ jsx75(Logo, { size: "md", wordmark })
15482
+ children: /* @__PURE__ */ jsx76(Logo, { size: "md", wordmark })
15427
15483
  }
15428
15484
  ),
15429
- /* @__PURE__ */ jsx75(
15485
+ /* @__PURE__ */ jsx76(
15430
15486
  Button,
15431
15487
  {
15432
15488
  ref: closeRef,
@@ -15439,9 +15495,9 @@ var SidebarMobile = React75.forwardRef(
15439
15495
  }
15440
15496
  )
15441
15497
  ] }),
15442
- /* @__PURE__ */ jsxs72("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-md pb-sm", children: [
15443
- /* @__PURE__ */ jsxs72("div", { className: "px-xs", children: [
15444
- accountList.length > 1 ? /* @__PURE__ */ jsx75(
15498
+ /* @__PURE__ */ jsxs73("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-md pb-sm", children: [
15499
+ /* @__PURE__ */ jsxs73("div", { className: "px-xs", children: [
15500
+ accountList.length > 1 ? /* @__PURE__ */ jsx76(
15445
15501
  Button,
15446
15502
  {
15447
15503
  ref: triggerRef,
@@ -15451,37 +15507,37 @@ var SidebarMobile = React75.forwardRef(
15451
15507
  "aria-expanded": accountsOpen,
15452
15508
  "aria-controls": accountsPanelId,
15453
15509
  onClick: () => setAccountsOpen((previous) => !previous),
15454
- trailingIcon: /* @__PURE__ */ jsx75(
15510
+ trailingIcon: /* @__PURE__ */ jsx76(
15455
15511
  "span",
15456
15512
  {
15457
15513
  "aria-hidden": "true",
15458
- className: cn66(
15514
+ className: cn67(
15459
15515
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
15460
15516
  accountsOpen ? "rotate-180" : "rotate-0"
15461
15517
  ),
15462
15518
  children: glyph4("chevron-down", 16, 2)
15463
15519
  }
15464
15520
  ),
15465
- children: /* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 items-center gap-sm", children: [
15521
+ children: /* @__PURE__ */ jsxs73("span", { className: "flex min-w-0 items-center gap-sm", children: [
15466
15522
  glyph4("layers", 18, 1.75),
15467
- /* @__PURE__ */ jsx75("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
15523
+ /* @__PURE__ */ jsx76("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
15468
15524
  ] })
15469
15525
  }
15470
- ) : /* @__PURE__ */ jsxs72("div", { className: "flex min-h-10 w-full items-center gap-sm rounded-lg bg-surface-soft px-md py-sm text-body-md text-ink", children: [
15526
+ ) : /* @__PURE__ */ jsxs73("div", { className: "flex min-h-10 w-full items-center gap-sm rounded-lg bg-surface-soft px-md py-sm text-body-md text-ink", children: [
15471
15527
  glyph4("layers", 18, 1.75),
15472
- /* @__PURE__ */ jsx75("span", { className: "truncate", children: currentAccount?.label })
15528
+ /* @__PURE__ */ jsx76("span", { className: "truncate", children: currentAccount?.label })
15473
15529
  ] }),
15474
- accountList.length > 1 ? /* @__PURE__ */ jsx75(
15530
+ accountList.length > 1 ? /* @__PURE__ */ jsx76(
15475
15531
  "div",
15476
15532
  {
15477
15533
  id: accountsPanelId,
15478
15534
  "data-state": accountsOpen ? "open" : "closed",
15479
15535
  "aria-hidden": accountsOpen ? void 0 : true,
15480
- className: cn66(
15536
+ className: cn67(
15481
15537
  "grid transition-[grid-template-rows,opacity] duration-200 ease-out",
15482
15538
  accountsOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
15483
15539
  ),
15484
- children: /* @__PURE__ */ jsx75("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx75(
15540
+ children: /* @__PURE__ */ jsx76("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx76(
15485
15541
  "div",
15486
15542
  {
15487
15543
  role: "listbox",
@@ -15489,7 +15545,7 @@ var SidebarMobile = React75.forwardRef(
15489
15545
  className: "mt-xs flex flex-col gap-xxs rounded-lg border border-hairline bg-surface p-xs shadow-sm",
15490
15546
  children: accountList.map((account) => {
15491
15547
  const selected = account.value === selectedAccount;
15492
- return /* @__PURE__ */ jsx75(
15548
+ return /* @__PURE__ */ jsx76(
15493
15549
  Button,
15494
15550
  {
15495
15551
  variant: "row",
@@ -15499,8 +15555,8 @@ var SidebarMobile = React75.forwardRef(
15499
15555
  "data-selected": selected,
15500
15556
  tabIndex: accountsOpen ? void 0 : -1,
15501
15557
  onClick: () => chooseAccount(account),
15502
- leadingIcon: /* @__PURE__ */ jsx75(Icon, { name: "layers", size: 16, tone: "muted" }),
15503
- trailingIcon: selected ? /* @__PURE__ */ jsx75(
15558
+ leadingIcon: /* @__PURE__ */ jsx76(Icon, { name: "layers", size: 16, tone: "muted" }),
15559
+ trailingIcon: selected ? /* @__PURE__ */ jsx76(
15504
15560
  Icon,
15505
15561
  {
15506
15562
  name: "check",
@@ -15511,7 +15567,7 @@ var SidebarMobile = React75.forwardRef(
15511
15567
  }
15512
15568
  }
15513
15569
  ) : void 0,
15514
- children: /* @__PURE__ */ jsx75("span", { className: "truncate", children: account.label })
15570
+ children: /* @__PURE__ */ jsx76("span", { className: "truncate", children: account.label })
15515
15571
  },
15516
15572
  account.value
15517
15573
  );
@@ -15521,11 +15577,11 @@ var SidebarMobile = React75.forwardRef(
15521
15577
  }
15522
15578
  ) : null
15523
15579
  ] }),
15524
- /* @__PURE__ */ jsx75("nav", { "aria-label": "Primary", className: "mt-md flex flex-col gap-xxs", children: navItems.map((item) => {
15580
+ /* @__PURE__ */ jsx76("nav", { "aria-label": "Primary", className: "mt-md flex flex-col gap-xxs", children: navItems.map((item) => {
15525
15581
  const active = item.id === activeId;
15526
15582
  const badged = hasBadge2(item.badge);
15527
15583
  if (!item.children?.length) {
15528
- return /* @__PURE__ */ jsxs72(
15584
+ return /* @__PURE__ */ jsxs73(
15529
15585
  "a",
15530
15586
  {
15531
15587
  href: item.href ?? `#${item.id}`,
@@ -15535,8 +15591,8 @@ var SidebarMobile = React75.forwardRef(
15535
15591
  className: rowClass(active),
15536
15592
  children: [
15537
15593
  glyph4(item.icon, 18, 1.75),
15538
- /* @__PURE__ */ jsx75("span", { className: "truncate", children: item.label }),
15539
- badged ? /* @__PURE__ */ jsx75(
15594
+ /* @__PURE__ */ jsx76("span", { className: "truncate", children: item.label }),
15595
+ badged ? /* @__PURE__ */ jsx76(
15540
15596
  NavBadge,
15541
15597
  {
15542
15598
  badge: item.badge,
@@ -15550,8 +15606,8 @@ var SidebarMobile = React75.forwardRef(
15550
15606
  }
15551
15607
  const expanded = expandedId === item.id;
15552
15608
  const subId = `${uid}-${item.id}-sub`;
15553
- return /* @__PURE__ */ jsxs72("div", { className: "flex flex-col gap-xxs", children: [
15554
- /* @__PURE__ */ jsx75(
15609
+ return /* @__PURE__ */ jsxs73("div", { className: "flex flex-col gap-xxs", children: [
15610
+ /* @__PURE__ */ jsx76(
15555
15611
  Button,
15556
15612
  {
15557
15613
  variant: "nav-row",
@@ -15563,19 +15619,19 @@ var SidebarMobile = React75.forwardRef(
15563
15619
  onClick: () => toggleExpanded(item.id),
15564
15620
  className: "px-md",
15565
15621
  leadingIcon: glyph4(item.icon, 18, 1.75),
15566
- trailingIcon: /* @__PURE__ */ jsxs72("span", { className: "flex items-center gap-xs", children: [
15567
- badged ? /* @__PURE__ */ jsx75(
15622
+ trailingIcon: /* @__PURE__ */ jsxs73("span", { className: "flex items-center gap-xs", children: [
15623
+ badged ? /* @__PURE__ */ jsx76(
15568
15624
  NavBadge,
15569
15625
  {
15570
15626
  badge: item.badge,
15571
15627
  active
15572
15628
  }
15573
15629
  ) : null,
15574
- /* @__PURE__ */ jsx75(
15630
+ /* @__PURE__ */ jsx76(
15575
15631
  "span",
15576
15632
  {
15577
15633
  "aria-hidden": "true",
15578
- className: cn66(
15634
+ className: cn67(
15579
15635
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
15580
15636
  expanded ? "rotate-180" : "rotate-0"
15581
15637
  ),
@@ -15583,20 +15639,20 @@ var SidebarMobile = React75.forwardRef(
15583
15639
  }
15584
15640
  )
15585
15641
  ] }),
15586
- children: /* @__PURE__ */ jsx75("span", { className: "truncate text-left", children: item.label })
15642
+ children: /* @__PURE__ */ jsx76("span", { className: "truncate text-left", children: item.label })
15587
15643
  }
15588
15644
  ),
15589
- /* @__PURE__ */ jsx75(
15645
+ /* @__PURE__ */ jsx76(
15590
15646
  "div",
15591
15647
  {
15592
15648
  id: subId,
15593
15649
  "data-state": expanded ? "open" : "closed",
15594
15650
  "aria-hidden": expanded ? void 0 : true,
15595
- className: cn66(
15651
+ className: cn67(
15596
15652
  "grid transition-[grid-template-rows,opacity] duration-200 ease-out",
15597
15653
  expanded ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
15598
15654
  ),
15599
- children: /* @__PURE__ */ jsx75("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx75("ul", { className: "flex flex-col", children: item.children.map((child) => /* @__PURE__ */ jsx75("li", { children: /* @__PURE__ */ jsxs72(
15655
+ children: /* @__PURE__ */ jsx76("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx76("ul", { className: "flex flex-col", children: item.children.map((child) => /* @__PURE__ */ jsx76("li", { children: /* @__PURE__ */ jsxs73(
15600
15656
  "a",
15601
15657
  {
15602
15658
  href: child.href ?? `#${child.id}`,
@@ -15607,14 +15663,14 @@ var SidebarMobile = React75.forwardRef(
15607
15663
  tabIndex: expanded ? void 0 : -1,
15608
15664
  className: subRowClass,
15609
15665
  children: [
15610
- /* @__PURE__ */ jsx75(
15666
+ /* @__PURE__ */ jsx76(
15611
15667
  "span",
15612
15668
  {
15613
15669
  "aria-hidden": "true",
15614
15670
  className: "size-4 shrink-0"
15615
15671
  }
15616
15672
  ),
15617
- /* @__PURE__ */ jsx75("span", { className: "truncate", children: child.label })
15673
+ /* @__PURE__ */ jsx76("span", { className: "truncate", children: child.label })
15618
15674
  ]
15619
15675
  }
15620
15676
  ) }, child.id)) }) })
@@ -15622,8 +15678,8 @@ var SidebarMobile = React75.forwardRef(
15622
15678
  )
15623
15679
  ] }, item.id);
15624
15680
  }) }),
15625
- /* @__PURE__ */ jsx75(Divider, { className: "my-md" }),
15626
- /* @__PURE__ */ jsx75(
15681
+ /* @__PURE__ */ jsx76(Divider, { className: "my-md" }),
15682
+ /* @__PURE__ */ jsx76(
15627
15683
  Button,
15628
15684
  {
15629
15685
  variant: "outline-soft",
@@ -15635,11 +15691,11 @@ var SidebarMobile = React75.forwardRef(
15635
15691
  children: primaryActionLabel
15636
15692
  }
15637
15693
  ),
15638
- /* @__PURE__ */ jsx75(Divider, { className: "my-md" }),
15639
- /* @__PURE__ */ jsx75("nav", { "aria-label": "Secondary", className: "flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15694
+ /* @__PURE__ */ jsx76(Divider, { className: "my-md" }),
15695
+ /* @__PURE__ */ jsx76("nav", { "aria-label": "Secondary", className: "flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15640
15696
  const active = item.id === secondaryActiveId;
15641
15697
  const badged = hasBadge2(item.badge);
15642
- return /* @__PURE__ */ jsxs72(
15698
+ return /* @__PURE__ */ jsxs73(
15643
15699
  "a",
15644
15700
  {
15645
15701
  href: item.href ?? `#${item.id}`,
@@ -15649,8 +15705,8 @@ var SidebarMobile = React75.forwardRef(
15649
15705
  className: rowClass(active),
15650
15706
  children: [
15651
15707
  glyph4(item.icon, 18, 1.75),
15652
- /* @__PURE__ */ jsx75("span", { className: "truncate", children: item.label }),
15653
- badged ? /* @__PURE__ */ jsx75(
15708
+ /* @__PURE__ */ jsx76("span", { className: "truncate", children: item.label }),
15709
+ badged ? /* @__PURE__ */ jsx76(
15654
15710
  NavBadge,
15655
15711
  {
15656
15712
  badge: item.badge,
@@ -15663,14 +15719,14 @@ var SidebarMobile = React75.forwardRef(
15663
15719
  );
15664
15720
  }) })
15665
15721
  ] }),
15666
- /* @__PURE__ */ jsxs72("div", { className: "flex shrink-0 flex-col gap-sm bg-surface px-md pb-md pt-xs", children: [
15722
+ /* @__PURE__ */ jsxs73("div", { className: "flex shrink-0 flex-col gap-sm bg-surface px-md pb-md pt-xs", children: [
15667
15723
  mobileDrawerFooter,
15668
- planTile ? /* @__PURE__ */ jsxs72(
15724
+ planTile ? /* @__PURE__ */ jsxs73(
15669
15725
  "a",
15670
15726
  {
15671
15727
  href: planTile.href ?? "#plan",
15672
15728
  onClick: navigate({ id: "plan", href: planTile.href }),
15673
- className: cn66(
15729
+ className: cn67(
15674
15730
  "flex w-full cursor-pointer items-center gap-md rounded-lg bg-primary-subdued",
15675
15731
  "px-md py-sm transition duration-150 ease-out",
15676
15732
  "hover:bg-primary-subdued-hover active:bg-primary-subdued-hover",
@@ -15678,23 +15734,23 @@ var SidebarMobile = React75.forwardRef(
15678
15734
  "focus-visible:ring-inset"
15679
15735
  ),
15680
15736
  children: [
15681
- /* @__PURE__ */ jsx75("span", { className: "flex shrink-0 items-center text-primary-on-subdued", children: glyph4("chart-bar", 18, 2) }),
15682
- /* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15683
- /* @__PURE__ */ jsx75("span", { className: "truncate text-body-md text-ink", children: planTile.name }),
15684
- /* @__PURE__ */ jsx75("span", { className: "truncate text-body-tabular text-body", children: planTile.price })
15737
+ /* @__PURE__ */ jsx76("span", { className: "flex shrink-0 items-center text-primary-on-subdued", children: glyph4("chart-bar", 18, 2) }),
15738
+ /* @__PURE__ */ jsxs73("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15739
+ /* @__PURE__ */ jsx76("span", { className: "truncate text-body-md text-ink", children: planTile.name }),
15740
+ /* @__PURE__ */ jsx76("span", { className: "truncate text-body-tabular text-body", children: planTile.price })
15685
15741
  ] }),
15686
- /* @__PURE__ */ jsx75("span", { className: "shrink-0 text-primary-on-subdued", children: glyph4("arrow-up-right", 18, 2) })
15742
+ /* @__PURE__ */ jsx76("span", { className: "shrink-0 text-primary-on-subdued", children: glyph4("arrow-up-right", 18, 2) })
15687
15743
  ]
15688
15744
  }
15689
15745
  ) : null,
15690
- /* @__PURE__ */ jsxs72("div", { className: "flex items-center gap-sm px-xs", children: [
15691
- /* @__PURE__ */ jsx75(Avatar, { name: profile.name, src: profile.src, size: "md" }),
15692
- /* @__PURE__ */ jsxs72("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15693
- /* @__PURE__ */ jsx75("span", { className: "truncate text-body-md text-ink", children: profile.name }),
15694
- profile.email ? /* @__PURE__ */ jsx75("span", { className: "truncate text-caption text-body", children: profile.email }) : null
15746
+ /* @__PURE__ */ jsxs73("div", { className: "flex items-center gap-sm px-xs", children: [
15747
+ /* @__PURE__ */ jsx76(Avatar, { name: profile.name, src: profile.src, size: "md" }),
15748
+ /* @__PURE__ */ jsxs73("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15749
+ /* @__PURE__ */ jsx76("span", { className: "truncate text-body-md text-ink", children: profile.name }),
15750
+ profile.email ? /* @__PURE__ */ jsx76("span", { className: "truncate text-caption text-body", children: profile.email }) : null
15695
15751
  ] }),
15696
- /* @__PURE__ */ jsxs72("span", { className: "relative inline-flex shrink-0", children: [
15697
- /* @__PURE__ */ jsx75(
15752
+ /* @__PURE__ */ jsxs73("span", { className: "relative inline-flex shrink-0", children: [
15753
+ /* @__PURE__ */ jsx76(
15698
15754
  Button,
15699
15755
  {
15700
15756
  variant: "bare",
@@ -15705,11 +15761,11 @@ var SidebarMobile = React75.forwardRef(
15705
15761
  children: glyph4("bell", 20, 1.75)
15706
15762
  }
15707
15763
  ),
15708
- notificationCount > 0 ? /* @__PURE__ */ jsx75(
15764
+ notificationCount > 0 ? /* @__PURE__ */ jsx76(
15709
15765
  "span",
15710
15766
  {
15711
15767
  "aria-hidden": "true",
15712
- className: cn66(
15768
+ className: cn67(
15713
15769
  "pointer-events-none absolute -right-xxs -top-xxs",
15714
15770
  "flex h-4 min-w-4 items-center justify-center rounded-full",
15715
15771
  "bg-primary px-xxs text-caption text-on-primary"
@@ -15718,7 +15774,7 @@ var SidebarMobile = React75.forwardRef(
15718
15774
  }
15719
15775
  ) : null
15720
15776
  ] }),
15721
- /* @__PURE__ */ jsx75(
15777
+ /* @__PURE__ */ jsx76(
15722
15778
  Button,
15723
15779
  {
15724
15780
  variant: "bare",
@@ -15739,9 +15795,9 @@ var SidebarMobile = React75.forwardRef(
15739
15795
  ),
15740
15796
  document.body
15741
15797
  );
15742
- return /* @__PURE__ */ jsxs72("div", { ref, className: cn66("w-full", className), ...rest, children: [
15743
- /* @__PURE__ */ jsxs72("div", { className: "flex w-full items-center gap-xs border-b border-hairline bg-surface px-md py-sm", children: [
15744
- /* @__PURE__ */ jsx75(
15798
+ return /* @__PURE__ */ jsxs73("div", { ref, className: cn67("w-full", className), ...rest, children: [
15799
+ /* @__PURE__ */ jsxs73("div", { className: "flex w-full items-center gap-xs border-b border-hairline bg-surface px-md py-sm", children: [
15800
+ /* @__PURE__ */ jsx76(
15745
15801
  Button,
15746
15802
  {
15747
15803
  ref: toggleRef,
@@ -15755,20 +15811,20 @@ var SidebarMobile = React75.forwardRef(
15755
15811
  children: glyph4("menu", 22, 2)
15756
15812
  }
15757
15813
  ),
15758
- /* @__PURE__ */ jsx75(
15814
+ /* @__PURE__ */ jsx76(
15759
15815
  "a",
15760
15816
  {
15761
15817
  href: homeHref,
15762
15818
  onClick: navigate({ id: "home", href: homeHref }),
15763
- className: cn66(
15819
+ className: cn67(
15764
15820
  "inline-flex min-w-0 cursor-pointer items-center rounded-xs",
15765
15821
  "transition duration-150 ease-out hover:opacity-80",
15766
15822
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue"
15767
15823
  ),
15768
- children: /* @__PURE__ */ jsx75(Logo, { size: "md", wordmark })
15824
+ children: /* @__PURE__ */ jsx76(Logo, { size: "md", wordmark })
15769
15825
  }
15770
15826
  ),
15771
- mobileActions ? /* @__PURE__ */ jsx75("div", { className: "ml-auto flex shrink-0 items-center gap-xs", children: mobileActions }) : null
15827
+ mobileActions ? /* @__PURE__ */ jsx76("div", { className: "ml-auto flex shrink-0 items-center gap-xs", children: mobileActions }) : null
15772
15828
  ] }),
15773
15829
  drawer
15774
15830
  ] });
@@ -15777,9 +15833,9 @@ var SidebarMobile = React75.forwardRef(
15777
15833
  SidebarMobile.displayName = "SidebarMobile";
15778
15834
 
15779
15835
  // virtual-pkg:src/atoms/Sidebar/Sidebar.tsx
15780
- import { jsx as jsx76, jsxs as jsxs73 } from "react/jsx-runtime";
15781
- var cn67 = (...values) => values.filter(Boolean).join(" ");
15782
- var Sidebar = React76.forwardRef(
15836
+ import { jsx as jsx77, jsxs as jsxs74 } from "react/jsx-runtime";
15837
+ var cn68 = (...values) => values.filter(Boolean).join(" ");
15838
+ var Sidebar = React77.forwardRef(
15783
15839
  ({
15784
15840
  wordmark,
15785
15841
  homeHref,
@@ -15818,8 +15874,8 @@ var Sidebar = React76.forwardRef(
15818
15874
  mobileClassName,
15819
15875
  className,
15820
15876
  ...rest
15821
- }, ref) => /* @__PURE__ */ jsxs73("div", { ref, className: cn67("h-full w-full", className), ...rest, children: [
15822
- /* @__PURE__ */ jsx76("div", { className: "hidden h-full md:block", children: /* @__PURE__ */ jsx76(
15877
+ }, ref) => /* @__PURE__ */ jsxs74("div", { ref, className: cn68("h-full w-full", className), ...rest, children: [
15878
+ /* @__PURE__ */ jsx77("div", { className: "hidden h-full md:block", children: /* @__PURE__ */ jsx77(
15823
15879
  SidebarDesktop,
15824
15880
  {
15825
15881
  className: desktopClassName,
@@ -15850,7 +15906,7 @@ var Sidebar = React76.forwardRef(
15850
15906
  onFoldedChange
15851
15907
  }
15852
15908
  ) }),
15853
- /* @__PURE__ */ jsx76("div", { className: "md:hidden", children: /* @__PURE__ */ jsx76(
15909
+ /* @__PURE__ */ jsx77("div", { className: "md:hidden", children: /* @__PURE__ */ jsx77(
15854
15910
  SidebarMobile,
15855
15911
  {
15856
15912
  className: mobileClassName,
@@ -15891,8 +15947,8 @@ var Sidebar = React76.forwardRef(
15891
15947
  Sidebar.displayName = "Sidebar";
15892
15948
 
15893
15949
  // virtual-pkg:src/atoms/Skeleton/Skeleton.tsx
15894
- import React77 from "react";
15895
- import { jsx as jsx77, jsxs as jsxs74 } from "react/jsx-runtime";
15950
+ import React78 from "react";
15951
+ import { jsx as jsx78, jsxs as jsxs75 } from "react/jsx-runtime";
15896
15952
  var cx2 = (...parts) => parts.filter(Boolean).join(" ");
15897
15953
  var CARD_ROWS = [
15898
15954
  ["w-[18%]", "w-[24%]", "w-[13%]"],
@@ -15901,7 +15957,7 @@ var CARD_ROWS = [
15901
15957
  ["w-[17%]", "w-[24%]", "w-[12%]"],
15902
15958
  ["w-[14%]", "w-[22%]", "w-[14%]"]
15903
15959
  ];
15904
- var Skeleton = React77.forwardRef(
15960
+ var Skeleton = React78.forwardRef(
15905
15961
  ({
15906
15962
  variant = "bar",
15907
15963
  lines = 2,
@@ -15919,7 +15975,7 @@ var Skeleton = React77.forwardRef(
15919
15975
  let content;
15920
15976
  switch (variant) {
15921
15977
  case "circle":
15922
- content = /* @__PURE__ */ jsx77(
15978
+ content = /* @__PURE__ */ jsx78(
15923
15979
  "div",
15924
15980
  {
15925
15981
  "aria-hidden": "true",
@@ -15929,7 +15985,7 @@ var Skeleton = React77.forwardRef(
15929
15985
  break;
15930
15986
  case "text": {
15931
15987
  const count = Math.max(1, lines);
15932
- content = /* @__PURE__ */ jsx77("div", { "aria-hidden": "true", className: "flex w-full flex-col gap-sm", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx77(
15988
+ content = /* @__PURE__ */ jsx78("div", { "aria-hidden": "true", className: "flex w-full flex-col gap-sm", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx78(
15933
15989
  "div",
15934
15990
  {
15935
15991
  className: cx2(
@@ -15943,49 +15999,49 @@ var Skeleton = React77.forwardRef(
15943
15999
  break;
15944
16000
  }
15945
16001
  case "media":
15946
- content = /* @__PURE__ */ jsxs74("div", { "aria-hidden": "true", className: "flex w-full items-center gap-md", children: [
15947
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("shrink-0 rounded-full"), "size-xxl") }),
15948
- /* @__PURE__ */ jsxs74("div", { className: "flex w-full flex-col gap-sm", children: [
15949
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("rounded-xs"), "h-sm w-[62%]") }),
15950
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("rounded-xs"), "h-sm w-full") })
16002
+ content = /* @__PURE__ */ jsxs75("div", { "aria-hidden": "true", className: "flex w-full items-center gap-md", children: [
16003
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("shrink-0 rounded-full"), "size-xxl") }),
16004
+ /* @__PURE__ */ jsxs75("div", { className: "flex w-full flex-col gap-sm", children: [
16005
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("rounded-xs"), "h-sm w-[62%]") }),
16006
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("rounded-xs"), "h-sm w-full") })
15951
16007
  ] })
15952
16008
  ] });
15953
16009
  break;
15954
16010
  case "list-row":
15955
- content = /* @__PURE__ */ jsxs74(
16011
+ content = /* @__PURE__ */ jsxs75(
15956
16012
  "div",
15957
16013
  {
15958
16014
  "aria-hidden": "true",
15959
16015
  className: "flex w-full items-center rounded-md border border-hairline bg-surface px-base py-md shadow-card",
15960
16016
  children: [
15961
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("rounded-sm"), "h-md w-[46%]") }),
15962
- /* @__PURE__ */ jsxs74("div", { className: "ml-auto flex items-center gap-md", children: [
15963
- /* @__PURE__ */ jsx77("div", { className: "h-lg w-px shrink-0 bg-hairline" }),
15964
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("rounded-sm"), "size-md") }),
15965
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("rounded-sm"), "size-md") })
16017
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("rounded-sm"), "h-md w-[46%]") }),
16018
+ /* @__PURE__ */ jsxs75("div", { className: "ml-auto flex items-center gap-md", children: [
16019
+ /* @__PURE__ */ jsx78("div", { className: "h-lg w-px shrink-0 bg-hairline" }),
16020
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("rounded-sm"), "size-md") }),
16021
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("rounded-sm"), "size-md") })
15966
16022
  ] })
15967
16023
  ]
15968
16024
  }
15969
16025
  );
15970
16026
  break;
15971
16027
  case "card":
15972
- content = /* @__PURE__ */ jsx77(
16028
+ content = /* @__PURE__ */ jsx78(
15973
16029
  "div",
15974
16030
  {
15975
16031
  "aria-hidden": "true",
15976
16032
  className: "w-full overflow-hidden rounded-lg border border-hairline bg-surface shadow-card",
15977
16033
  children: Array.from({ length: Math.max(1, rows) }).map((_, i) => {
15978
16034
  const [lead, mid, trail] = CARD_ROWS[i % CARD_ROWS.length];
15979
- return /* @__PURE__ */ jsxs74(
16035
+ return /* @__PURE__ */ jsxs75(
15980
16036
  "div",
15981
16037
  {
15982
16038
  className: "flex items-center justify-between gap-lg border-b border-hairline-soft px-lg py-md last:border-b-0",
15983
16039
  children: [
15984
- /* @__PURE__ */ jsxs74("div", { className: "flex min-w-0 flex-1 items-center gap-lg", children: [
15985
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", lead) }),
15986
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", mid) })
16040
+ /* @__PURE__ */ jsxs75("div", { className: "flex min-w-0 flex-1 items-center gap-lg", children: [
16041
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", lead) }),
16042
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", mid) })
15987
16043
  ] }),
15988
- /* @__PURE__ */ jsx77("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", trail) })
16044
+ /* @__PURE__ */ jsx78("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", trail) })
15989
16045
  ]
15990
16046
  },
15991
16047
  i
@@ -15996,7 +16052,7 @@ var Skeleton = React77.forwardRef(
15996
16052
  break;
15997
16053
  case "bar":
15998
16054
  default:
15999
- content = /* @__PURE__ */ jsx77(
16055
+ content = /* @__PURE__ */ jsx78(
16000
16056
  "div",
16001
16057
  {
16002
16058
  "aria-hidden": "true",
@@ -16005,7 +16061,7 @@ var Skeleton = React77.forwardRef(
16005
16061
  );
16006
16062
  break;
16007
16063
  }
16008
- return /* @__PURE__ */ jsx77(
16064
+ return /* @__PURE__ */ jsx78(
16009
16065
  "div",
16010
16066
  {
16011
16067
  ref,
@@ -16022,13 +16078,13 @@ var Skeleton = React77.forwardRef(
16022
16078
  Skeleton.displayName = "Skeleton";
16023
16079
 
16024
16080
  // virtual-pkg:src/atoms/Slider/Slider.tsx
16025
- import * as React78 from "react";
16026
- import { jsx as jsx78, jsxs as jsxs75 } from "react/jsx-runtime";
16027
- var cn68 = (...values) => values.filter(Boolean).join(" ");
16081
+ import * as React79 from "react";
16082
+ import { jsx as jsx79, jsxs as jsxs76 } from "react/jsx-runtime";
16083
+ var cn69 = (...values) => values.filter(Boolean).join(" ");
16028
16084
  var THUMB_PX = 24;
16029
16085
  var TRAVEL_INSET = THUMB_PX / 2;
16030
16086
  var defaultFormat = (value) => value.toLocaleString();
16031
- var Slider = React78.forwardRef(
16087
+ var Slider = React79.forwardRef(
16032
16088
  ({
16033
16089
  value,
16034
16090
  defaultValue,
@@ -16052,12 +16108,12 @@ var Slider = React78.forwardRef(
16052
16108
  "aria-label": ariaLabelProp,
16053
16109
  ...rest
16054
16110
  }, ref) => {
16055
- const generatedId = React78.useId();
16111
+ const generatedId = React79.useId();
16056
16112
  const sliderId = id ?? `slider-${generatedId}`;
16057
- const [internalValue, setInternalValue] = React78.useState(
16113
+ const [internalValue, setInternalValue] = React79.useState(
16058
16114
  defaultValue ?? min
16059
16115
  );
16060
- const [focused, setFocused] = React78.useState(false);
16116
+ const [focused, setFocused] = React79.useState(false);
16061
16117
  const isControlled = value !== void 0;
16062
16118
  const current = isControlled ? Number(value) : internalValue;
16063
16119
  const span = max - min;
@@ -16073,16 +16129,16 @@ var Slider = React78.forwardRef(
16073
16129
  const readout = format(current);
16074
16130
  const thumbLeft = `calc(${TRAVEL_INSET}px + (100% - ${THUMB_PX}px) * ${ratio})`;
16075
16131
  const fillWidth = `calc(${TRAVEL_INSET}px + (100% - ${THUMB_PX}px) * ${ratio})`;
16076
- return /* @__PURE__ */ jsxs75(
16132
+ return /* @__PURE__ */ jsxs76(
16077
16133
  "div",
16078
16134
  {
16079
- className: cn68(
16135
+ className: cn69(
16080
16136
  "flex w-full flex-col gap-lg transition-opacity duration-150 ease-out",
16081
16137
  disabled ? "opacity-50" : "",
16082
16138
  className
16083
16139
  ),
16084
16140
  children: [
16085
- label ? /* @__PURE__ */ jsx78(
16141
+ label ? /* @__PURE__ */ jsx79(
16086
16142
  Label,
16087
16143
  {
16088
16144
  htmlFor: sliderId,
@@ -16091,11 +16147,11 @@ var Slider = React78.forwardRef(
16091
16147
  children: label
16092
16148
  }
16093
16149
  ) : null,
16094
- showValue ? /* @__PURE__ */ jsx78(
16150
+ showValue ? /* @__PURE__ */ jsx79(
16095
16151
  "output",
16096
16152
  {
16097
16153
  htmlFor: sliderId,
16098
- className: cn68(
16154
+ className: cn69(
16099
16155
  "flex min-h-12 w-full items-center rounded-md border bg-surface px-lg py-sm",
16100
16156
  "transition-colors duration-150 ease-out",
16101
16157
  disabled ? "border-hairline-soft" : "border-hairline-strong",
@@ -16106,14 +16162,14 @@ var Slider = React78.forwardRef(
16106
16162
  children: readout
16107
16163
  }
16108
16164
  ) : null,
16109
- /* @__PURE__ */ jsxs75("div", { className: "flex w-full flex-col gap-sm", children: [
16110
- /* @__PURE__ */ jsxs75("div", { className: "group relative w-full", children: [
16111
- /* @__PURE__ */ jsx78("div", { className: "pointer-events-none flex h-10 w-full items-center px-sm", children: /* @__PURE__ */ jsxs75("div", { className: "relative h-1.5 w-full rounded-full bg-surface-strong", children: [
16112
- /* @__PURE__ */ jsx78(
16165
+ /* @__PURE__ */ jsxs76("div", { className: "flex w-full flex-col gap-sm", children: [
16166
+ /* @__PURE__ */ jsxs76("div", { className: "group relative w-full", children: [
16167
+ /* @__PURE__ */ jsx79("div", { className: "pointer-events-none flex h-10 w-full items-center px-sm", children: /* @__PURE__ */ jsxs76("div", { className: "relative h-1.5 w-full rounded-full bg-surface-strong", children: [
16168
+ /* @__PURE__ */ jsx79(
16113
16169
  "span",
16114
16170
  {
16115
16171
  "aria-hidden": "true",
16116
- className: cn68(
16172
+ className: cn69(
16117
16173
  "absolute left-0 top-0 h-full rounded-full",
16118
16174
  "transition-[width,background-color] duration-150 ease-out",
16119
16175
  disabled ? "bg-primary-disabled" : "bg-primary"
@@ -16121,11 +16177,11 @@ var Slider = React78.forwardRef(
16121
16177
  style: { width: fillWidth }
16122
16178
  }
16123
16179
  ),
16124
- /* @__PURE__ */ jsx78(
16180
+ /* @__PURE__ */ jsx79(
16125
16181
  "span",
16126
16182
  {
16127
16183
  "aria-hidden": "true",
16128
- className: cn68(
16184
+ className: cn69(
16129
16185
  "absolute top-1/2 size-6 -translate-x-1/2 -translate-y-1/2",
16130
16186
  "rounded-full border-2 bg-canvas shadow-sm",
16131
16187
  "transition duration-150 ease-out",
@@ -16136,7 +16192,7 @@ var Slider = React78.forwardRef(
16136
16192
  }
16137
16193
  )
16138
16194
  ] }) }),
16139
- /* @__PURE__ */ jsx78("div", { className: "absolute inset-0 z-10", children: /* @__PURE__ */ jsx78(
16195
+ /* @__PURE__ */ jsx79("div", { className: "absolute inset-0 z-10", children: /* @__PURE__ */ jsx79(
16140
16196
  Input,
16141
16197
  {
16142
16198
  ref,
@@ -16162,7 +16218,7 @@ var Slider = React78.forwardRef(
16162
16218
  },
16163
16219
  className: "h-full",
16164
16220
  fieldClassName: "h-10 gap-0",
16165
- inputClassName: cn68(
16221
+ inputClassName: cn69(
16166
16222
  "h-10 w-full appearance-none bg-transparent p-0 opacity-0",
16167
16223
  disabled ? "cursor-not-allowed" : "cursor-pointer"
16168
16224
  ),
@@ -16170,18 +16226,18 @@ var Slider = React78.forwardRef(
16170
16226
  }
16171
16227
  ) })
16172
16228
  ] }),
16173
- showBounds ? /* @__PURE__ */ jsxs75(
16229
+ showBounds ? /* @__PURE__ */ jsxs76(
16174
16230
  "div",
16175
16231
  {
16176
- className: cn68(
16232
+ className: cn69(
16177
16233
  "flex w-full items-center justify-between px-sm text-caption",
16178
16234
  disabled ? "text-muted-soft" : "text-muted",
16179
16235
  boundsClassName
16180
16236
  ),
16181
16237
  style: { fontVariantNumeric: "tabular-nums" },
16182
16238
  children: [
16183
- /* @__PURE__ */ jsx78("span", { children: formatBounds(min) }),
16184
- /* @__PURE__ */ jsx78("span", { children: formatBounds(max) })
16239
+ /* @__PURE__ */ jsx79("span", { children: formatBounds(min) }),
16240
+ /* @__PURE__ */ jsx79("span", { children: formatBounds(max) })
16185
16241
  ]
16186
16242
  }
16187
16243
  ) : null
@@ -16194,20 +16250,20 @@ var Slider = React78.forwardRef(
16194
16250
  Slider.displayName = "Slider";
16195
16251
 
16196
16252
  // virtual-pkg:src/atoms/Spinner/Spinner.tsx
16197
- import * as React79 from "react";
16198
- import { jsx as jsx79, jsxs as jsxs76 } from "react/jsx-runtime";
16199
- var cn69 = (...values) => values.filter(Boolean).join(" ");
16253
+ import * as React80 from "react";
16254
+ import { jsx as jsx80, jsxs as jsxs77 } from "react/jsx-runtime";
16255
+ var cn70 = (...values) => values.filter(Boolean).join(" ");
16200
16256
  var GEOMETRY = {
16201
16257
  sm: { box: 20, ring: 2, glyph: 11, stroke: 3.25, turn: 0.7 },
16202
16258
  md: { box: 32, ring: 3, glyph: 17, stroke: 2.9, turn: 0.9 },
16203
16259
  lg: { box: 56, ring: 4, glyph: 29, stroke: 2.4, turn: 1.1 }
16204
16260
  };
16205
16261
  var ARC = "conic-gradient(from 0deg, var(--color-hairline) 0deg, var(--color-primary) 62deg, var(--color-primary) 102deg, var(--color-hairline) 158deg, var(--color-hairline) 360deg)";
16206
- var Spinner = React79.forwardRef(
16262
+ var Spinner = React80.forwardRef(
16207
16263
  ({ size = "md", status = "loading", message, caption, className, ...rest }, ref) => {
16208
16264
  const { box, ring, glyph: glyph5, stroke, turn } = GEOMETRY[size];
16209
16265
  const hole = `radial-gradient(closest-side, transparent calc(100% - ${ring}px), black calc(100% - ${ring}px))`;
16210
- const indicator = /* @__PURE__ */ jsxs76(
16266
+ const indicator = /* @__PURE__ */ jsxs77(
16211
16267
  "span",
16212
16268
  {
16213
16269
  "aria-hidden": "true",
@@ -16215,10 +16271,10 @@ var Spinner = React79.forwardRef(
16215
16271
  className: "group relative inline-flex shrink-0 items-center justify-center",
16216
16272
  style: { width: box, height: box },
16217
16273
  children: [
16218
- /* @__PURE__ */ jsx79(
16274
+ /* @__PURE__ */ jsx80(
16219
16275
  "span",
16220
16276
  {
16221
- className: cn69(
16277
+ className: cn70(
16222
16278
  "absolute inset-0 rounded-full",
16223
16279
  "animate-spin motion-reduce:animate-none",
16224
16280
  "transition duration-200 ease-out",
@@ -16232,23 +16288,23 @@ var Spinner = React79.forwardRef(
16232
16288
  }
16233
16289
  }
16234
16290
  ),
16235
- /* @__PURE__ */ jsx79(
16291
+ /* @__PURE__ */ jsx80(
16236
16292
  "span",
16237
16293
  {
16238
- className: cn69(
16294
+ className: cn70(
16239
16295
  "absolute inset-0 inline-flex items-center justify-center rounded-full",
16240
16296
  "bg-primary text-on-primary",
16241
16297
  "transition duration-200 ease-out",
16242
16298
  "group-data-[status=loading]:scale-90 group-data-[status=loading]:opacity-0"
16243
16299
  ),
16244
- children: /* @__PURE__ */ jsx79(
16300
+ children: /* @__PURE__ */ jsx80(
16245
16301
  Icon,
16246
16302
  {
16247
16303
  name: "check",
16248
16304
  size: glyph5,
16249
16305
  strokeWidth: stroke,
16250
16306
  tone: "on-dark",
16251
- className: cn69(
16307
+ className: cn70(
16252
16308
  "transition duration-200 ease-out",
16253
16309
  "group-data-[status=success]:scale-100 group-data-[status=success]:opacity-100",
16254
16310
  "group-data-[status=loading]:scale-50 group-data-[status=loading]:opacity-0"
@@ -16260,26 +16316,26 @@ var Spinner = React79.forwardRef(
16260
16316
  ]
16261
16317
  }
16262
16318
  );
16263
- return /* @__PURE__ */ jsxs76(
16319
+ return /* @__PURE__ */ jsxs77(
16264
16320
  "div",
16265
16321
  {
16266
16322
  ref,
16267
16323
  role: "status",
16268
16324
  "aria-live": "polite",
16269
16325
  "data-status": status,
16270
- className: cn69(
16326
+ className: cn70(
16271
16327
  "inline-flex",
16272
16328
  caption ? "flex-col items-center gap-sm" : "items-center",
16273
16329
  className
16274
16330
  ),
16275
16331
  ...rest,
16276
16332
  children: [
16277
- message ? /* @__PURE__ */ jsxs76("span", { className: "inline-flex items-center gap-md", children: [
16333
+ message ? /* @__PURE__ */ jsxs77("span", { className: "inline-flex items-center gap-md", children: [
16278
16334
  indicator,
16279
- /* @__PURE__ */ jsx79("span", { className: "text-body-md text-ink transition-colors duration-200 ease-out", children: message })
16335
+ /* @__PURE__ */ jsx80("span", { className: "text-body-md text-ink transition-colors duration-200 ease-out", children: message })
16280
16336
  ] }) : indicator,
16281
- caption ? /* @__PURE__ */ jsx79("span", { className: "text-body-sm text-ink", children: caption }) : null,
16282
- /* @__PURE__ */ jsx79("span", { className: "sr-only", children: status === "success" ? caption ?? "Success" : message ?? "Loading" })
16337
+ caption ? /* @__PURE__ */ jsx80("span", { className: "text-body-sm text-ink", children: caption }) : null,
16338
+ /* @__PURE__ */ jsx80("span", { className: "sr-only", children: status === "success" ? caption ?? "Success" : message ?? "Loading" })
16283
16339
  ]
16284
16340
  }
16285
16341
  );
@@ -16288,9 +16344,9 @@ var Spinner = React79.forwardRef(
16288
16344
  Spinner.displayName = "Spinner";
16289
16345
 
16290
16346
  // virtual-pkg:src/atoms/StepperItem/StepperItem.tsx
16291
- import * as React80 from "react";
16292
- import { jsx as jsx80, jsxs as jsxs77 } from "react/jsx-runtime";
16293
- var cn70 = (...values) => values.filter(Boolean).join(" ");
16347
+ import * as React81 from "react";
16348
+ import { jsx as jsx81, jsxs as jsxs78 } from "react/jsx-runtime";
16349
+ var cn71 = (...values) => values.filter(Boolean).join(" ");
16294
16350
  var STATUS_TEXT = {
16295
16351
  upcoming: "Upcoming",
16296
16352
  active: "In progress",
@@ -16309,7 +16365,7 @@ var DOT_SKIN = {
16309
16365
  complete: "size-4 bg-primary",
16310
16366
  error: "size-4 bg-semantic-error"
16311
16367
  };
16312
- var StepperItem = React80.forwardRef(
16368
+ var StepperItem = React81.forwardRef(
16313
16369
  ({
16314
16370
  variant = "step",
16315
16371
  status = "upcoming",
@@ -16326,18 +16382,18 @@ var StepperItem = React80.forwardRef(
16326
16382
  const max = progressMax > 0 ? progressMax : 1;
16327
16383
  const value = Math.min(Math.max(progressValue, 0), max);
16328
16384
  const percent = Math.round(value / max * 100);
16329
- return /* @__PURE__ */ jsxs77(
16385
+ return /* @__PURE__ */ jsxs78(
16330
16386
  "div",
16331
16387
  {
16332
16388
  ref,
16333
- className: cn70(
16389
+ className: cn71(
16334
16390
  "flex w-full items-center gap-md rounded-xl border border-hairline bg-surface p-base shadow-card",
16335
16391
  className
16336
16392
  ),
16337
16393
  ...rest,
16338
16394
  children: [
16339
- /* @__PURE__ */ jsxs77("div", { className: "relative grid size-[4.5rem] shrink-0 place-items-center", children: [
16340
- /* @__PURE__ */ jsx80(
16395
+ /* @__PURE__ */ jsxs78("div", { className: "relative grid size-[4.5rem] shrink-0 place-items-center", children: [
16396
+ /* @__PURE__ */ jsx81(
16341
16397
  "span",
16342
16398
  {
16343
16399
  "aria-hidden": "true",
@@ -16347,48 +16403,48 @@ var StepperItem = React80.forwardRef(
16347
16403
  }
16348
16404
  }
16349
16405
  ),
16350
- /* @__PURE__ */ jsx80(
16406
+ /* @__PURE__ */ jsx81(
16351
16407
  "span",
16352
16408
  {
16353
16409
  "aria-hidden": "true",
16354
16410
  className: "absolute inset-sm rounded-full bg-surface"
16355
16411
  }
16356
16412
  ),
16357
- /* @__PURE__ */ jsxs77("span", { className: "relative text-center text-caption text-primary", children: [
16358
- /* @__PURE__ */ jsxs77("span", { className: "block whitespace-nowrap", children: [
16413
+ /* @__PURE__ */ jsxs78("span", { className: "relative text-center text-caption text-primary", children: [
16414
+ /* @__PURE__ */ jsxs78("span", { className: "block whitespace-nowrap", children: [
16359
16415
  value,
16360
16416
  " of ",
16361
16417
  max
16362
16418
  ] }),
16363
- /* @__PURE__ */ jsx80("span", { className: "block", children: progressUnit })
16419
+ /* @__PURE__ */ jsx81("span", { className: "block", children: progressUnit })
16364
16420
  ] })
16365
16421
  ] }),
16366
- /* @__PURE__ */ jsx80("p", { className: "min-w-0 flex-1 text-body-lg text-ink", children: label })
16422
+ /* @__PURE__ */ jsx81("p", { className: "min-w-0 flex-1 text-body-lg text-ink", children: label })
16367
16423
  ]
16368
16424
  }
16369
16425
  );
16370
16426
  }
16371
16427
  const dot = DOT_SKIN[status];
16372
- return /* @__PURE__ */ jsxs77(
16428
+ return /* @__PURE__ */ jsxs78(
16373
16429
  "div",
16374
16430
  {
16375
16431
  ref,
16376
16432
  "aria-current": status === "active" ? "step" : void 0,
16377
- className: cn70("flex w-full items-stretch gap-md", className),
16433
+ className: cn71("flex w-full items-stretch gap-md", className),
16378
16434
  ...rest,
16379
16435
  children: [
16380
- /* @__PURE__ */ jsxs77("div", { className: "flex w-6 shrink-0 flex-col items-center", children: [
16381
- /* @__PURE__ */ jsx80(
16436
+ /* @__PURE__ */ jsxs78("div", { className: "flex w-6 shrink-0 flex-col items-center", children: [
16437
+ /* @__PURE__ */ jsx81(
16382
16438
  "span",
16383
16439
  {
16384
- className: cn70(
16440
+ className: cn71(
16385
16441
  "grid size-6 shrink-0 place-items-center rounded-full transition-colors duration-200 ease-out",
16386
16442
  RING_SKIN[status]
16387
16443
  ),
16388
- children: dot ? /* @__PURE__ */ jsx80(
16444
+ children: dot ? /* @__PURE__ */ jsx81(
16389
16445
  "span",
16390
16446
  {
16391
- className: cn70(
16447
+ className: cn71(
16392
16448
  "rounded-full transition-colors duration-200 ease-out",
16393
16449
  dot
16394
16450
  )
@@ -16396,12 +16452,12 @@ var StepperItem = React80.forwardRef(
16396
16452
  ) : null
16397
16453
  }
16398
16454
  ),
16399
- connector ? /* @__PURE__ */ jsx80("span", { "aria-hidden": "true", className: "mt-sm w-px flex-1 bg-hairline" }) : null
16455
+ connector ? /* @__PURE__ */ jsx81("span", { "aria-hidden": "true", className: "mt-sm w-px flex-1 bg-hairline" }) : null
16400
16456
  ] }),
16401
- /* @__PURE__ */ jsxs77("div", { className: cn70("min-w-0 flex-1 pt-xl", connector ? "pb-xl" : "pb-0"), children: [
16402
- /* @__PURE__ */ jsx80("p", { className: "text-body-md text-ink", children: label }),
16403
- meta ? /* @__PURE__ */ jsx80("p", { className: "mt-xxs text-body-tabular text-muted", children: meta }) : null,
16404
- /* @__PURE__ */ jsx80("span", { className: "sr-only", children: STATUS_TEXT[status] })
16457
+ /* @__PURE__ */ jsxs78("div", { className: cn71("min-w-0 flex-1 pt-xl", connector ? "pb-xl" : "pb-0"), children: [
16458
+ /* @__PURE__ */ jsx81("p", { className: "text-body-md text-ink", children: label }),
16459
+ meta ? /* @__PURE__ */ jsx81("p", { className: "mt-xxs text-body-tabular text-muted", children: meta }) : null,
16460
+ /* @__PURE__ */ jsx81("span", { className: "sr-only", children: STATUS_TEXT[status] })
16405
16461
  ] })
16406
16462
  ]
16407
16463
  }
@@ -16411,14 +16467,14 @@ var StepperItem = React80.forwardRef(
16411
16467
  StepperItem.displayName = "StepperItem";
16412
16468
 
16413
16469
  // virtual-pkg:src/atoms/Tab/Tab.tsx
16414
- import * as React81 from "react";
16415
- import { jsx as jsx81, jsxs as jsxs78 } from "react/jsx-runtime";
16416
- var cn71 = (...values) => values.filter(Boolean).join(" ");
16470
+ import * as React82 from "react";
16471
+ import { jsx as jsx82, jsxs as jsxs79 } from "react/jsx-runtime";
16472
+ var cn72 = (...values) => values.filter(Boolean).join(" ");
16417
16473
  var pillPadding = {
16418
16474
  sm: "px-xs py-xxs text-caption",
16419
16475
  md: "px-sm py-xxs text-caption"
16420
16476
  };
16421
- var Tab = React81.forwardRef(
16477
+ var Tab = React82.forwardRef(
16422
16478
  ({
16423
16479
  label,
16424
16480
  count,
@@ -16428,7 +16484,7 @@ var Tab = React81.forwardRef(
16428
16484
  disabled = false,
16429
16485
  className,
16430
16486
  ...rest
16431
- }, ref) => /* @__PURE__ */ jsxs78(
16487
+ }, ref) => /* @__PURE__ */ jsxs79(
16432
16488
  Button,
16433
16489
  {
16434
16490
  ref,
@@ -16439,7 +16495,7 @@ var Tab = React81.forwardRef(
16439
16495
  "aria-selected": active,
16440
16496
  disabled,
16441
16497
  "data-active": active || void 0,
16442
- className: cn71(
16498
+ className: cn72(
16443
16499
  "cursor-pointer transition duration-150 ease-out active:scale-[0.98]",
16444
16500
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
16445
16501
  "disabled:cursor-not-allowed disabled:opacity-50",
@@ -16448,20 +16504,20 @@ var Tab = React81.forwardRef(
16448
16504
  ),
16449
16505
  ...rest,
16450
16506
  children: [
16451
- /* @__PURE__ */ jsx81(
16507
+ /* @__PURE__ */ jsx82(
16452
16508
  "span",
16453
16509
  {
16454
- className: cn71(
16510
+ className: cn72(
16455
16511
  "whitespace-nowrap transition-colors duration-150 ease-out",
16456
16512
  size === "sm" ? "text-body-sm" : "text-label"
16457
16513
  ),
16458
16514
  children: label
16459
16515
  }
16460
16516
  ),
16461
- count !== void 0 && count !== null ? /* @__PURE__ */ jsx81(
16517
+ count !== void 0 && count !== null ? /* @__PURE__ */ jsx82(
16462
16518
  "span",
16463
16519
  {
16464
- className: cn71(
16520
+ className: cn72(
16465
16521
  "inline-flex shrink-0 items-center justify-center rounded-full",
16466
16522
  "tabular-nums font-weight-label leading-none",
16467
16523
  "transition-colors duration-150 ease-out",
@@ -16471,11 +16527,11 @@ var Tab = React81.forwardRef(
16471
16527
  children: count
16472
16528
  }
16473
16529
  ) : null,
16474
- indicator ? /* @__PURE__ */ jsx81(
16530
+ indicator ? /* @__PURE__ */ jsx82(
16475
16531
  "span",
16476
16532
  {
16477
16533
  "aria-hidden": "true",
16478
- className: cn71(
16534
+ className: cn72(
16479
16535
  "absolute -left-xs -right-xs bottom-0 rounded-full",
16480
16536
  "transition-colors duration-150 ease-out",
16481
16537
  active ? "h-xxs bg-primary" : "h-px bg-hairline"
@@ -16487,11 +16543,11 @@ var Tab = React81.forwardRef(
16487
16543
  )
16488
16544
  );
16489
16545
  Tab.displayName = "Tab";
16490
- var TabList = React81.forwardRef(
16546
+ var TabList = React82.forwardRef(
16491
16547
  ({ children, className, indicator = true, onKeyDown, ...rest }, ref) => {
16492
- const railRef = React81.useRef(null);
16493
- const [bar, setBar] = React81.useState({ left: 0, width: 0, visible: false });
16494
- const measure = React81.useCallback(() => {
16548
+ const railRef = React82.useRef(null);
16549
+ const [bar, setBar] = React82.useState({ left: 0, width: 0, visible: false });
16550
+ const measure = React82.useCallback(() => {
16495
16551
  const item = railRef.current?.querySelector(
16496
16552
  '[role="tab"][aria-selected="true"]'
16497
16553
  );
@@ -16504,19 +16560,19 @@ var TabList = React81.forwardRef(
16504
16560
  (prev) => prev.left === next.left && prev.width === next.width && prev.visible === next.visible ? prev : next
16505
16561
  );
16506
16562
  }, []);
16507
- React81.useLayoutEffect(() => {
16563
+ React82.useLayoutEffect(() => {
16508
16564
  measure();
16509
16565
  });
16510
- React81.useEffect(() => {
16566
+ React82.useEffect(() => {
16511
16567
  const rail = railRef.current;
16512
16568
  if (!rail || typeof ResizeObserver === "undefined") return;
16513
16569
  const observer = new ResizeObserver(measure);
16514
16570
  observer.observe(rail);
16515
16571
  return () => observer.disconnect();
16516
16572
  }, [measure]);
16517
- const items = React81.Children.map(
16573
+ const items = React82.Children.map(
16518
16574
  children,
16519
- (child) => React81.isValidElement(child) && child.type === Tab ? React81.cloneElement(child, { indicator: false }) : child
16575
+ (child) => React82.isValidElement(child) && child.type === Tab ? React82.cloneElement(child, { indicator: false }) : child
16520
16576
  );
16521
16577
  const handleKeyDown = (event) => {
16522
16578
  onKeyDown?.(event);
@@ -16533,7 +16589,7 @@ var TabList = React81.forwardRef(
16533
16589
  event.preventDefault();
16534
16590
  tabs[next]?.focus();
16535
16591
  };
16536
- return /* @__PURE__ */ jsxs78(
16592
+ return /* @__PURE__ */ jsxs79(
16537
16593
  "div",
16538
16594
  {
16539
16595
  ref: (node) => {
@@ -16541,9 +16597,9 @@ var TabList = React81.forwardRef(
16541
16597
  if (typeof ref === "function") ref(node);
16542
16598
  else if (ref) ref.current = node;
16543
16599
  },
16544
- className: cn71("relative w-full", className),
16600
+ className: cn72("relative w-full", className),
16545
16601
  children: [
16546
- /* @__PURE__ */ jsx81(
16602
+ /* @__PURE__ */ jsx82(
16547
16603
  "div",
16548
16604
  {
16549
16605
  role: "tablist",
@@ -16554,14 +16610,14 @@ var TabList = React81.forwardRef(
16554
16610
  children: items
16555
16611
  }
16556
16612
  ),
16557
- /* @__PURE__ */ jsx81(
16613
+ /* @__PURE__ */ jsx82(
16558
16614
  "span",
16559
16615
  {
16560
16616
  "aria-hidden": "true",
16561
16617
  className: "pointer-events-none absolute inset-x-0 bottom-0 h-px bg-hairline"
16562
16618
  }
16563
16619
  ),
16564
- indicator ? /* @__PURE__ */ jsx81(
16620
+ indicator ? /* @__PURE__ */ jsx82(
16565
16621
  "span",
16566
16622
  {
16567
16623
  "aria-hidden": "true",
@@ -16570,7 +16626,7 @@ var TabList = React81.forwardRef(
16570
16626
  width: bar.width ? `${bar.width}px` : 0,
16571
16627
  opacity: bar.visible ? 1 : 0
16572
16628
  },
16573
- className: cn71(
16629
+ className: cn72(
16574
16630
  "pointer-events-none absolute bottom-0 left-0 h-xxs rounded-full bg-primary",
16575
16631
  "transition-[transform,width,opacity] duration-200 ease-out"
16576
16632
  )
@@ -16584,9 +16640,9 @@ var TabList = React81.forwardRef(
16584
16640
  TabList.displayName = "TabList";
16585
16641
 
16586
16642
  // virtual-pkg:src/atoms/TableHeaderCell/TableHeaderCell.tsx
16587
- import * as React82 from "react";
16588
- import { jsx as jsx82, jsxs as jsxs79 } from "react/jsx-runtime";
16589
- var cn72 = (...values) => values.filter(Boolean).join(" ");
16643
+ import * as React83 from "react";
16644
+ import { jsx as jsx83, jsxs as jsxs80 } from "react/jsx-runtime";
16645
+ var cn73 = (...values) => values.filter(Boolean).join(" ");
16590
16646
  var NEXT_SORT = {
16591
16647
  none: "asc",
16592
16648
  asc: "desc",
@@ -16598,7 +16654,7 @@ var ALIGN_STYLES = {
16598
16654
  right: "justify-end"
16599
16655
  };
16600
16656
  var iconTone = (active) => active ? "var(--color-primary)" : "var(--color-muted)";
16601
- var TableHeaderCell = React82.forwardRef(
16657
+ var TableHeaderCell = React83.forwardRef(
16602
16658
  ({
16603
16659
  label,
16604
16660
  sort,
@@ -16609,7 +16665,7 @@ var TableHeaderCell = React82.forwardRef(
16609
16665
  ...rest
16610
16666
  }, ref) => {
16611
16667
  const isControlled = sort !== void 0;
16612
- const [internalSort, setInternalSort] = React82.useState(defaultSort);
16668
+ const [internalSort, setInternalSort] = React83.useState(defaultSort);
16613
16669
  const current = isControlled ? sort : internalSort;
16614
16670
  const sorted = current !== "none";
16615
16671
  const handleSort = () => {
@@ -16619,15 +16675,15 @@ var TableHeaderCell = React82.forwardRef(
16619
16675
  };
16620
16676
  const ariaSort = current === "asc" ? "ascending" : current === "desc" ? "descending" : "none";
16621
16677
  const accessibleName = current === "asc" ? `${label}, sorted ascending` : current === "desc" ? `${label}, sorted descending` : `Sort by ${label}`;
16622
- return /* @__PURE__ */ jsx82(
16678
+ return /* @__PURE__ */ jsx83(
16623
16679
  "th",
16624
16680
  {
16625
16681
  ref,
16626
16682
  scope: "col",
16627
16683
  "aria-sort": ariaSort,
16628
- className: cn72("w-full p-0 align-middle", className),
16684
+ className: cn73("w-full p-0 align-middle", className),
16629
16685
  ...rest,
16630
- children: /* @__PURE__ */ jsx82(
16686
+ children: /* @__PURE__ */ jsx83(
16631
16687
  Button,
16632
16688
  {
16633
16689
  variant: "band",
@@ -16635,27 +16691,27 @@ var TableHeaderCell = React82.forwardRef(
16635
16691
  "aria-label": accessibleName,
16636
16692
  onClick: handleSort,
16637
16693
  className: ALIGN_STYLES[align],
16638
- trailingIcon: /* @__PURE__ */ jsxs79("span", { className: "relative inline-flex size-5 items-center justify-center", children: [
16639
- /* @__PURE__ */ jsx82(
16694
+ trailingIcon: /* @__PURE__ */ jsxs80("span", { className: "relative inline-flex size-5 items-center justify-center", children: [
16695
+ /* @__PURE__ */ jsx83(
16640
16696
  Icon,
16641
16697
  {
16642
16698
  name: "chevrons-down-up",
16643
16699
  size: 18,
16644
16700
  strokeWidth: 2.25,
16645
- className: cn72(
16701
+ className: cn73(
16646
16702
  "absolute transition duration-200 ease-out",
16647
16703
  sorted ? "scale-75 opacity-0" : "scale-100 opacity-100"
16648
16704
  ),
16649
16705
  style: { color: iconTone(sorted) }
16650
16706
  }
16651
16707
  ),
16652
- /* @__PURE__ */ jsx82(
16708
+ /* @__PURE__ */ jsx83(
16653
16709
  Icon,
16654
16710
  {
16655
16711
  name: "chevron-down",
16656
16712
  size: 20,
16657
16713
  strokeWidth: 2.25,
16658
- className: cn72(
16714
+ className: cn73(
16659
16715
  "absolute transition duration-200 ease-out",
16660
16716
  current === "asc" ? "rotate-180" : "rotate-0",
16661
16717
  sorted ? "scale-100 opacity-100" : "scale-75 opacity-0"
@@ -16664,10 +16720,10 @@ var TableHeaderCell = React82.forwardRef(
16664
16720
  }
16665
16721
  )
16666
16722
  ] }),
16667
- children: /* @__PURE__ */ jsx82(
16723
+ children: /* @__PURE__ */ jsx83(
16668
16724
  "span",
16669
16725
  {
16670
- className: cn72(
16726
+ className: cn73(
16671
16727
  "min-w-0 truncate uppercase",
16672
16728
  "transition-colors duration-150 ease-out",
16673
16729
  sorted ? "text-ink" : "text-muted"
@@ -16684,15 +16740,15 @@ var TableHeaderCell = React82.forwardRef(
16684
16740
  TableHeaderCell.displayName = "TableHeaderCell";
16685
16741
 
16686
16742
  // virtual-pkg:src/atoms/TableRow/TableRow.tsx
16687
- import * as React83 from "react";
16688
- import { jsx as jsx83, jsxs as jsxs80 } from "react/jsx-runtime";
16689
- var cn73 = (...values) => values.filter(Boolean).join(" ");
16743
+ import * as React84 from "react";
16744
+ import { jsx as jsx84, jsxs as jsxs81 } from "react/jsx-runtime";
16745
+ var cn74 = (...values) => values.filter(Boolean).join(" ");
16690
16746
  var dotStyles = {
16691
16747
  live: "bg-primary",
16692
16748
  pending: "bg-semantic-warning",
16693
16749
  failed: "bg-semantic-error"
16694
16750
  };
16695
- var TableRow = React83.forwardRef(
16751
+ var TableRow = React84.forwardRef(
16696
16752
  ({
16697
16753
  merchant,
16698
16754
  date,
@@ -16706,18 +16762,18 @@ var TableRow = React83.forwardRef(
16706
16762
  ...rest
16707
16763
  }, ref) => {
16708
16764
  const isControlled = selected !== void 0;
16709
- const [internalSelected, setInternalSelected] = React83.useState(defaultSelected);
16765
+ const [internalSelected, setInternalSelected] = React84.useState(defaultSelected);
16710
16766
  const isSelected = isControlled ? Boolean(selected) : internalSelected;
16711
16767
  const handleSelectedChange = (next) => {
16712
16768
  if (!isControlled) setInternalSelected(next);
16713
16769
  onSelectedChange?.(next);
16714
16770
  };
16715
- return /* @__PURE__ */ jsxs80(
16771
+ return /* @__PURE__ */ jsxs81(
16716
16772
  "div",
16717
16773
  {
16718
16774
  ref,
16719
16775
  "data-state": isSelected ? "selected" : "default",
16720
- className: cn73(
16776
+ className: cn74(
16721
16777
  "relative flex w-full items-center gap-xl overflow-hidden rounded-lg border py-md pl-lg pr-xl",
16722
16778
  "transition-colors duration-200 ease-out",
16723
16779
  "has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-focus-blue",
@@ -16726,17 +16782,17 @@ var TableRow = React83.forwardRef(
16726
16782
  ),
16727
16783
  ...rest,
16728
16784
  children: [
16729
- /* @__PURE__ */ jsx83(
16785
+ /* @__PURE__ */ jsx84(
16730
16786
  "span",
16731
16787
  {
16732
16788
  "aria-hidden": "true",
16733
- className: cn73(
16789
+ className: cn74(
16734
16790
  "absolute inset-y-0 left-0 w-1 bg-primary transition-opacity duration-200 ease-out",
16735
16791
  isSelected ? "opacity-100" : "opacity-0"
16736
16792
  )
16737
16793
  }
16738
16794
  ),
16739
- /* @__PURE__ */ jsx83(
16795
+ /* @__PURE__ */ jsx84(
16740
16796
  Checkbox,
16741
16797
  {
16742
16798
  chrome: "bare",
@@ -16746,15 +16802,15 @@ var TableRow = React83.forwardRef(
16746
16802
  "aria-label": `Select ${merchant}`
16747
16803
  }
16748
16804
  ),
16749
- /* @__PURE__ */ jsx83("span", { className: "min-w-0 flex-1 truncate text-body-md font-weight-label text-ink", children: merchant }),
16750
- /* @__PURE__ */ jsx83("span", { className: "shrink-0 text-body-md text-muted", children: date }),
16751
- tag ? /* @__PURE__ */ jsx83("span", { className: "inline-flex shrink-0 items-center rounded-full bg-primary-subdued px-sm py-xxs text-caption font-weight-label text-primary-on-subdued", children: tag }) : null,
16752
- status ? /* @__PURE__ */ jsxs80("span", { className: "inline-flex shrink-0 items-center gap-xs rounded-full bg-primary-subdued px-sm py-xxs text-caption font-weight-label text-primary-on-subdued", children: [
16753
- /* @__PURE__ */ jsx83(
16805
+ /* @__PURE__ */ jsx84("span", { className: "min-w-0 flex-1 truncate text-body-md font-weight-label text-ink", children: merchant }),
16806
+ /* @__PURE__ */ jsx84("span", { className: "shrink-0 text-body-md text-muted", children: date }),
16807
+ tag ? /* @__PURE__ */ jsx84("span", { className: "inline-flex shrink-0 items-center rounded-full bg-primary-subdued px-sm py-xxs text-caption font-weight-label text-primary-on-subdued", children: tag }) : null,
16808
+ status ? /* @__PURE__ */ jsxs81("span", { className: "inline-flex shrink-0 items-center gap-xs rounded-full bg-primary-subdued px-sm py-xxs text-caption font-weight-label text-primary-on-subdued", children: [
16809
+ /* @__PURE__ */ jsx84(
16754
16810
  "span",
16755
16811
  {
16756
16812
  "aria-hidden": "true",
16757
- className: cn73(
16813
+ className: cn74(
16758
16814
  "size-1.5 shrink-0 rounded-full",
16759
16815
  dotStyles[status.tone ?? "live"]
16760
16816
  )
@@ -16762,7 +16818,7 @@ var TableRow = React83.forwardRef(
16762
16818
  ),
16763
16819
  status.label
16764
16820
  ] }) : null,
16765
- /* @__PURE__ */ jsx83("span", { className: "shrink-0 text-body-tabular font-weight-label text-ink", children: amount })
16821
+ /* @__PURE__ */ jsx84("span", { className: "shrink-0 text-body-tabular font-weight-label text-ink", children: amount })
16766
16822
  ]
16767
16823
  }
16768
16824
  );
@@ -16771,9 +16827,9 @@ var TableRow = React83.forwardRef(
16771
16827
  TableRow.displayName = "TableRow";
16772
16828
 
16773
16829
  // virtual-pkg:src/atoms/TestimonialBlock/TestimonialBlock.tsx
16774
- import * as React84 from "react";
16775
- import { Fragment as Fragment11, jsx as jsx84, jsxs as jsxs81 } from "react/jsx-runtime";
16776
- var TestimonialBlock = React84.forwardRef(
16830
+ import * as React85 from "react";
16831
+ import { Fragment as Fragment11, jsx as jsx85, jsxs as jsxs82 } from "react/jsx-runtime";
16832
+ var TestimonialBlock = React85.forwardRef(
16777
16833
  ({
16778
16834
  quote,
16779
16835
  name,
@@ -16782,7 +16838,7 @@ var TestimonialBlock = React84.forwardRef(
16782
16838
  hideMark = false,
16783
16839
  className,
16784
16840
  ...rest
16785
- }, ref) => /* @__PURE__ */ jsx84(
16841
+ }, ref) => /* @__PURE__ */ jsx85(
16786
16842
  "figure",
16787
16843
  {
16788
16844
  ref,
@@ -16793,10 +16849,10 @@ var TestimonialBlock = React84.forwardRef(
16793
16849
  className
16794
16850
  ].filter(Boolean).join(" "),
16795
16851
  ...rest,
16796
- children: /* @__PURE__ */ jsxs81("div", { className: "flex flex-col items-start gap-lg md:flex-row md:items-stretch md:gap-0", children: [
16797
- !hideMark ? /* @__PURE__ */ jsxs81(Fragment11, { children: [
16798
- /* @__PURE__ */ jsx84("div", { className: "flex aspect-square shrink-0 items-center justify-center self-center rounded-lg bg-surface-strong p-lg md:mr-xl", children: /* @__PURE__ */ jsx84(Icon, { name: iconName, size: 32, strokeWidth: 1.5 }) }),
16799
- /* @__PURE__ */ jsx84(
16852
+ children: /* @__PURE__ */ jsxs82("div", { className: "flex flex-col items-start gap-lg md:flex-row md:items-stretch md:gap-0", children: [
16853
+ !hideMark ? /* @__PURE__ */ jsxs82(Fragment11, { children: [
16854
+ /* @__PURE__ */ jsx85("div", { className: "flex aspect-square shrink-0 items-center justify-center self-center rounded-lg bg-surface-strong p-lg md:mr-xl", children: /* @__PURE__ */ jsx85(Icon, { name: iconName, size: 32, strokeWidth: 1.5 }) }),
16855
+ /* @__PURE__ */ jsx85(
16800
16856
  "div",
16801
16857
  {
16802
16858
  "aria-hidden": "true",
@@ -16804,8 +16860,8 @@ var TestimonialBlock = React84.forwardRef(
16804
16860
  }
16805
16861
  )
16806
16862
  ] }) : null,
16807
- /* @__PURE__ */ jsxs81("div", { className: "min-w-0 flex-1", children: [
16808
- /* @__PURE__ */ jsx84(
16863
+ /* @__PURE__ */ jsxs82("div", { className: "min-w-0 flex-1", children: [
16864
+ /* @__PURE__ */ jsx85(
16809
16865
  "span",
16810
16866
  {
16811
16867
  "aria-hidden": "true",
@@ -16813,14 +16869,14 @@ var TestimonialBlock = React84.forwardRef(
16813
16869
  children: "\u201C"
16814
16870
  }
16815
16871
  ),
16816
- /* @__PURE__ */ jsxs81("blockquote", { className: "m-0 mt-sm text-display-md text-ink", children: [
16872
+ /* @__PURE__ */ jsxs82("blockquote", { className: "m-0 mt-sm text-display-md text-ink", children: [
16817
16873
  "\u201C",
16818
16874
  quote,
16819
16875
  "\u201D"
16820
16876
  ] }),
16821
- /* @__PURE__ */ jsxs81("figcaption", { className: "mt-lg flex flex-col gap-xxs", children: [
16822
- /* @__PURE__ */ jsx84("span", { className: "text-body-lg text-ink", children: name }),
16823
- role ? /* @__PURE__ */ jsx84("span", { className: "text-body-md text-muted", children: role }) : null
16877
+ /* @__PURE__ */ jsxs82("figcaption", { className: "mt-lg flex flex-col gap-xxs", children: [
16878
+ /* @__PURE__ */ jsx85("span", { className: "text-body-lg text-ink", children: name }),
16879
+ role ? /* @__PURE__ */ jsx85("span", { className: "text-body-md text-muted", children: role }) : null
16824
16880
  ] })
16825
16881
  ] })
16826
16882
  ] })
@@ -16830,15 +16886,15 @@ var TestimonialBlock = React84.forwardRef(
16830
16886
  TestimonialBlock.displayName = "TestimonialBlock";
16831
16887
 
16832
16888
  // virtual-pkg:src/atoms/Textarea/Textarea.tsx
16833
- import * as React85 from "react";
16834
- import { jsx as jsx85, jsxs as jsxs82 } from "react/jsx-runtime";
16835
- var cn74 = (...values) => values.filter(Boolean).join(" ");
16889
+ import * as React86 from "react";
16890
+ import { jsx as jsx86, jsxs as jsxs83 } from "react/jsx-runtime";
16891
+ var cn75 = (...values) => values.filter(Boolean).join(" ");
16836
16892
  var resizeClass = {
16837
16893
  none: "resize-none",
16838
16894
  vertical: "resize-y",
16839
16895
  both: "resize"
16840
16896
  };
16841
- var Textarea = React85.forwardRef(
16897
+ var Textarea = React86.forwardRef(
16842
16898
  ({
16843
16899
  label,
16844
16900
  ariaLabel,
@@ -16865,13 +16921,13 @@ var Textarea = React85.forwardRef(
16865
16921
  "aria-label": ariaLabelProp,
16866
16922
  ...rest
16867
16923
  }, ref) => {
16868
- const generatedId = React85.useId();
16924
+ const generatedId = React86.useId();
16869
16925
  const fieldId = id ?? generatedId;
16870
16926
  const helperId = `${fieldId}-helper`;
16871
16927
  const errorId = `${fieldId}-error`;
16872
16928
  const countId = `${fieldId}-count`;
16873
16929
  const isControlled = value !== void 0;
16874
- const [uncontrolledLength, setUncontrolledLength] = React85.useState(
16930
+ const [uncontrolledLength, setUncontrolledLength] = React86.useState(
16875
16931
  () => String(defaultValue ?? "").length
16876
16932
  );
16877
16933
  const length = isControlled ? String(value ?? "").length : uncontrolledLength;
@@ -16885,7 +16941,7 @@ var Textarea = React85.forwardRef(
16885
16941
  countVisible ? countId : null
16886
16942
  ].filter(Boolean).join(" ") || void 0;
16887
16943
  const isBare = chrome === "none";
16888
- const shell2 = isBare ? "flex w-full flex-col gap-xs transition-colors duration-150 ease-out" : cn74(
16944
+ const shell2 = isBare ? "flex w-full flex-col gap-xs transition-colors duration-150 ease-out" : cn75(
16889
16945
  "flex w-full flex-col gap-xs rounded-lg border px-md py-sm",
16890
16946
  "transition duration-150 ease-out",
16891
16947
  disabled ? "border-hairline-soft bg-surface-strong" : isError ? "border-semantic-error bg-surface" : "border-hairline-strong bg-surface",
@@ -16893,8 +16949,8 @@ var Textarea = React85.forwardRef(
16893
16949
  forceFocus ? isError ? "border-semantic-error ring-1 ring-semantic-error" : "border-primary ring-1 ring-primary" : "",
16894
16950
  readOnly && !disabled ? "bg-surface-soft" : ""
16895
16951
  );
16896
- return /* @__PURE__ */ jsxs82("div", { className: cn74("flex w-full flex-col gap-xs", className), children: [
16897
- label ? /* @__PURE__ */ jsx85(
16952
+ return /* @__PURE__ */ jsxs83("div", { className: cn75("flex w-full flex-col gap-xs", className), children: [
16953
+ label ? /* @__PURE__ */ jsx86(
16898
16954
  Label,
16899
16955
  {
16900
16956
  htmlFor: fieldId,
@@ -16903,8 +16959,8 @@ var Textarea = React85.forwardRef(
16903
16959
  children: label
16904
16960
  }
16905
16961
  ) : null,
16906
- /* @__PURE__ */ jsxs82("div", { className: cn74(shell2, fieldClassName), children: [
16907
- /* @__PURE__ */ jsx85(
16962
+ /* @__PURE__ */ jsxs83("div", { className: cn75(shell2, fieldClassName), children: [
16963
+ /* @__PURE__ */ jsx86(
16908
16964
  "textarea",
16909
16965
  {
16910
16966
  ref,
@@ -16924,7 +16980,7 @@ var Textarea = React85.forwardRef(
16924
16980
  }
16925
16981
  onChange?.(event);
16926
16982
  },
16927
- className: cn74(
16983
+ className: cn75(
16928
16984
  "w-full appearance-none rounded-none border-0 bg-transparent p-0 text-body-md shadow-none ring-0",
16929
16985
  resizeClass[resize],
16930
16986
  "text-ink caret-primary placeholder:text-muted",
@@ -16935,11 +16991,11 @@ var Textarea = React85.forwardRef(
16935
16991
  ...rest
16936
16992
  }
16937
16993
  ),
16938
- countVisible ? /* @__PURE__ */ jsx85(
16994
+ countVisible ? /* @__PURE__ */ jsx86(
16939
16995
  "span",
16940
16996
  {
16941
16997
  id: countId,
16942
- className: cn74(
16998
+ className: cn75(
16943
16999
  "self-end text-caption tabular-nums",
16944
17000
  disabled ? "text-muted-soft" : isError ? "text-semantic-error" : "text-muted",
16945
17001
  countClassName
@@ -16948,12 +17004,12 @@ var Textarea = React85.forwardRef(
16948
17004
  }
16949
17005
  ) : null
16950
17006
  ] }),
16951
- error ? /* @__PURE__ */ jsx85("p", { id: errorId, className: "text-caption text-semantic-error", children: error }) : null,
16952
- helper ? /* @__PURE__ */ jsx85(
17007
+ error ? /* @__PURE__ */ jsx86("p", { id: errorId, className: "text-caption text-semantic-error", children: error }) : null,
17008
+ helper ? /* @__PURE__ */ jsx86(
16953
17009
  "p",
16954
17010
  {
16955
17011
  id: helperId,
16956
- className: cn74(
17012
+ className: cn75(
16957
17013
  "text-caption",
16958
17014
  disabled ? "text-muted-soft" : "text-muted"
16959
17015
  ),
@@ -16966,10 +17022,10 @@ var Textarea = React85.forwardRef(
16966
17022
  Textarea.displayName = "Textarea";
16967
17023
 
16968
17024
  // virtual-pkg:src/atoms/Toast/Toast.tsx
16969
- import * as React86 from "react";
16970
- import { jsx as jsx86, jsxs as jsxs83 } from "react/jsx-runtime";
16971
- var cn75 = (...values) => values.filter(Boolean).join(" ");
16972
- var Toast = React86.forwardRef(
17025
+ import * as React87 from "react";
17026
+ import { jsx as jsx87, jsxs as jsxs84 } from "react/jsx-runtime";
17027
+ var cn76 = (...values) => values.filter(Boolean).join(" ");
17028
+ var Toast = React87.forwardRef(
16973
17029
  ({
16974
17030
  tone = "info",
16975
17031
  title,
@@ -16986,25 +17042,25 @@ var Toast = React86.forwardRef(
16986
17042
  const urgent = tone === "danger";
16987
17043
  const hasDetails = Boolean(details && details.length > 0);
16988
17044
  const hasTrailing = Boolean(action) || Boolean(onDismiss);
16989
- const mark = hideIcon ? null : tone === "neutral" ? /* @__PURE__ */ jsx86(
17045
+ const mark = hideIcon ? null : tone === "neutral" ? /* @__PURE__ */ jsx87(
16990
17046
  "span",
16991
17047
  {
16992
17048
  "aria-hidden": "true",
16993
17049
  className: "-my-base -ml-md w-1 shrink-0 self-stretch rounded-full bg-primary"
16994
17050
  }
16995
- ) : tone === "danger" ? /* @__PURE__ */ jsx86(
17051
+ ) : tone === "danger" ? /* @__PURE__ */ jsx87(
16996
17052
  "span",
16997
17053
  {
16998
17054
  "aria-hidden": "true",
16999
17055
  className: "mt-2 size-2.5 shrink-0 rounded-full bg-semantic-error"
17000
17056
  }
17001
- ) : tone === "success" ? /* @__PURE__ */ jsxs83(
17057
+ ) : tone === "success" ? /* @__PURE__ */ jsxs84(
17002
17058
  "span",
17003
17059
  {
17004
17060
  "aria-hidden": "true",
17005
17061
  className: "mt-0.5 grid size-5 shrink-0 place-items-center text-primary",
17006
17062
  children: [
17007
- /* @__PURE__ */ jsx86("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ jsx86(
17063
+ /* @__PURE__ */ jsx87("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ jsx87(
17008
17064
  Icon,
17009
17065
  {
17010
17066
  name: "circle",
@@ -17013,7 +17069,7 @@ var Toast = React86.forwardRef(
17013
17069
  style: { color: "inherit" }
17014
17070
  }
17015
17071
  ) }),
17016
- /* @__PURE__ */ jsx86("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ jsx86(
17072
+ /* @__PURE__ */ jsx87("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ jsx87(
17017
17073
  Icon,
17018
17074
  {
17019
17075
  name: "check",
@@ -17024,12 +17080,12 @@ var Toast = React86.forwardRef(
17024
17080
  ) })
17025
17081
  ]
17026
17082
  }
17027
- ) : /* @__PURE__ */ jsx86(
17083
+ ) : /* @__PURE__ */ jsx87(
17028
17084
  "span",
17029
17085
  {
17030
17086
  "aria-hidden": "true",
17031
17087
  className: "mt-0.5 inline-flex shrink-0 items-center text-primary",
17032
- children: /* @__PURE__ */ jsx86(
17088
+ children: /* @__PURE__ */ jsx87(
17033
17089
  Icon,
17034
17090
  {
17035
17091
  name: tone === "warning" ? "triangle-alert" : "info",
@@ -17040,7 +17096,7 @@ var Toast = React86.forwardRef(
17040
17096
  )
17041
17097
  }
17042
17098
  );
17043
- const actionNode = action ? urgent ? /* @__PURE__ */ jsx86(
17099
+ const actionNode = action ? urgent ? /* @__PURE__ */ jsx87(
17044
17100
  Button,
17045
17101
  {
17046
17102
  type: "button",
@@ -17050,7 +17106,7 @@ var Toast = React86.forwardRef(
17050
17106
  className: "shrink-0",
17051
17107
  children: action.label
17052
17108
  }
17053
- ) : action.href ? /* @__PURE__ */ jsx86(Link, { href: action.href, size: "md", underline: "always", className: "shrink-0", children: action.label }) : /* @__PURE__ */ jsx86(
17109
+ ) : action.href ? /* @__PURE__ */ jsx87(Link, { href: action.href, size: "md", underline: "always", className: "shrink-0", children: action.label }) : /* @__PURE__ */ jsx87(
17054
17110
  Button,
17055
17111
  {
17056
17112
  type: "button",
@@ -17061,7 +17117,7 @@ var Toast = React86.forwardRef(
17061
17117
  children: action.label
17062
17118
  }
17063
17119
  ) : null;
17064
- return /* @__PURE__ */ jsxs83(
17120
+ return /* @__PURE__ */ jsxs84(
17065
17121
  "div",
17066
17122
  {
17067
17123
  ref,
@@ -17070,7 +17126,7 @@ var Toast = React86.forwardRef(
17070
17126
  "aria-hidden": !open || void 0,
17071
17127
  "data-tone": tone,
17072
17128
  "data-state": open ? "open" : "closed",
17073
- className: cn75(
17129
+ className: cn76(
17074
17130
  "relative flex w-full min-w-0 items-start gap-md rounded-lg border bg-surface py-base shadow-sm",
17075
17131
  "transition duration-200 ease-out",
17076
17132
  "data-[state=open]:translate-y-0 data-[state=open]:opacity-100",
@@ -17082,24 +17138,24 @@ var Toast = React86.forwardRef(
17082
17138
  ...rest,
17083
17139
  children: [
17084
17140
  mark,
17085
- /* @__PURE__ */ jsxs83("div", { className: "flex min-w-0 flex-1 flex-col", children: [
17086
- /* @__PURE__ */ jsx86("p", { className: "text-body-lg font-weight-label break-words text-ink", children: title }),
17087
- description ? /* @__PURE__ */ jsx86("p", { className: "mt-xxs text-body-md break-words text-muted", children: description }) : null,
17088
- hasDetails ? /* @__PURE__ */ jsx86("ul", { className: "mt-sm flex min-w-0 flex-col gap-xxs", children: details.map((detail, index) => /* @__PURE__ */ jsxs83(
17141
+ /* @__PURE__ */ jsxs84("div", { className: "flex min-w-0 flex-1 flex-col", children: [
17142
+ /* @__PURE__ */ jsx87("p", { className: "text-body-lg font-weight-label break-words text-ink", children: title }),
17143
+ description ? /* @__PURE__ */ jsx87("p", { className: "mt-xxs text-body-md break-words text-muted", children: description }) : null,
17144
+ hasDetails ? /* @__PURE__ */ jsx87("ul", { className: "mt-sm flex min-w-0 flex-col gap-xxs", children: details.map((detail, index) => /* @__PURE__ */ jsxs84(
17089
17145
  "li",
17090
17146
  {
17091
17147
  className: "flex min-w-0 gap-sm text-body-sm text-muted",
17092
17148
  children: [
17093
- /* @__PURE__ */ jsx86("span", { "aria-hidden": "true", className: "text-muted-soft", children: "\u2022" }),
17094
- /* @__PURE__ */ jsx86("span", { className: "min-w-0 break-words", children: detail })
17149
+ /* @__PURE__ */ jsx87("span", { "aria-hidden": "true", className: "text-muted-soft", children: "\u2022" }),
17150
+ /* @__PURE__ */ jsx87("span", { className: "min-w-0 break-words", children: detail })
17095
17151
  ]
17096
17152
  },
17097
17153
  index
17098
17154
  )) }) : null
17099
17155
  ] }),
17100
- hasTrailing ? /* @__PURE__ */ jsxs83("div", { className: "ml-auto flex shrink-0 items-center gap-md self-center", children: [
17156
+ hasTrailing ? /* @__PURE__ */ jsxs84("div", { className: "ml-auto flex shrink-0 items-center gap-md self-center", children: [
17101
17157
  actionNode,
17102
- onDismiss ? /* @__PURE__ */ jsx86(
17158
+ onDismiss ? /* @__PURE__ */ jsx87(
17103
17159
  Button,
17104
17160
  {
17105
17161
  type: "button",
@@ -17108,7 +17164,7 @@ var Toast = React86.forwardRef(
17108
17164
  "aria-label": dismissLabel,
17109
17165
  onClick: onDismiss,
17110
17166
  className: "rounded-xs p-xs text-muted-soft transition duration-150 ease-out hover:text-ink",
17111
- children: /* @__PURE__ */ jsx86(
17167
+ children: /* @__PURE__ */ jsx87(
17112
17168
  Icon,
17113
17169
  {
17114
17170
  name: "x",
@@ -17128,9 +17184,9 @@ var Toast = React86.forwardRef(
17128
17184
  Toast.displayName = "Toast";
17129
17185
 
17130
17186
  // virtual-pkg:src/atoms/Tooltip/Tooltip.tsx
17131
- import * as React87 from "react";
17132
- import { jsx as jsx87, jsxs as jsxs84 } from "react/jsx-runtime";
17133
- var cn76 = (...values) => values.filter(Boolean).join(" ");
17187
+ import * as React88 from "react";
17188
+ import { jsx as jsx88, jsxs as jsxs85 } from "react/jsx-runtime";
17189
+ var cn77 = (...values) => values.filter(Boolean).join(" ");
17134
17190
  var sidePosition = {
17135
17191
  top: "bottom-full left-1/2 -translate-x-1/2 mb-sm",
17136
17192
  bottom: "top-full left-1/2 -translate-x-1/2 mt-sm",
@@ -17155,7 +17211,7 @@ var sideOrigin = {
17155
17211
  left: "origin-right",
17156
17212
  right: "origin-left"
17157
17213
  };
17158
- var Tooltip = React87.forwardRef(
17214
+ var Tooltip = React88.forwardRef(
17159
17215
  ({
17160
17216
  children,
17161
17217
  variant = "plain",
@@ -17176,8 +17232,8 @@ var Tooltip = React87.forwardRef(
17176
17232
  onKeyDown,
17177
17233
  ...rest
17178
17234
  }, ref) => {
17179
- const id = React87.useId();
17180
- const [uncontrolledOpen, setUncontrolledOpen] = React87.useState(defaultOpen);
17235
+ const id = React88.useId();
17236
+ const [uncontrolledOpen, setUncontrolledOpen] = React88.useState(defaultOpen);
17181
17237
  const isControlled = open !== void 0;
17182
17238
  const isOpen = isControlled ? Boolean(open) : uncontrolledOpen;
17183
17239
  const setOpenState = (next) => {
@@ -17185,21 +17241,21 @@ var Tooltip = React87.forwardRef(
17185
17241
  if (!isControlled) setUncontrolledOpen(next);
17186
17242
  onOpenChange?.(next);
17187
17243
  };
17188
- const body = children ?? (variant === "stat" ? /* @__PURE__ */ jsxs84("span", { className: "flex items-center justify-between gap-xl", children: [
17189
- /* @__PURE__ */ jsxs84("span", { className: "flex items-center gap-sm", children: [
17190
- /* @__PURE__ */ jsx87(
17244
+ const body = children ?? (variant === "stat" ? /* @__PURE__ */ jsxs85("span", { className: "flex items-center justify-between gap-xl", children: [
17245
+ /* @__PURE__ */ jsxs85("span", { className: "flex items-center gap-sm", children: [
17246
+ /* @__PURE__ */ jsx88(
17191
17247
  "span",
17192
17248
  {
17193
17249
  "aria-hidden": "true",
17194
17250
  className: "size-sm shrink-0 rounded-full bg-primary"
17195
17251
  }
17196
17252
  ),
17197
- /* @__PURE__ */ jsx87("span", { className: "whitespace-nowrap text-body-sm text-muted", children: label })
17253
+ /* @__PURE__ */ jsx88("span", { className: "whitespace-nowrap text-body-sm text-muted", children: label })
17198
17254
  ] }),
17199
- /* @__PURE__ */ jsx87("span", { className: "whitespace-nowrap text-body-sm font-weight-label tabular-nums text-ink", children: value })
17200
- ] }) : variant === "shortcut" ? /* @__PURE__ */ jsxs84("span", { className: "flex items-center justify-between gap-xl", children: [
17201
- /* @__PURE__ */ jsx87("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }),
17202
- /* @__PURE__ */ jsx87("span", { className: "flex items-center gap-xs", children: (keys ?? []).map((key) => /* @__PURE__ */ jsx87(
17255
+ /* @__PURE__ */ jsx88("span", { className: "whitespace-nowrap text-body-sm font-weight-label tabular-nums text-ink", children: value })
17256
+ ] }) : variant === "shortcut" ? /* @__PURE__ */ jsxs85("span", { className: "flex items-center justify-between gap-xl", children: [
17257
+ /* @__PURE__ */ jsx88("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }),
17258
+ /* @__PURE__ */ jsx88("span", { className: "flex items-center gap-xs", children: (keys ?? []).map((key) => /* @__PURE__ */ jsx88(
17203
17259
  "kbd",
17204
17260
  {
17205
17261
  className: "inline-flex h-xl min-w-xl items-center justify-center rounded-sm border border-hairline bg-surface-strong px-xs text-caption text-body",
@@ -17207,15 +17263,15 @@ var Tooltip = React87.forwardRef(
17207
17263
  },
17208
17264
  key
17209
17265
  )) })
17210
- ] }) : /* @__PURE__ */ jsx87("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }));
17211
- const triggerNode = React87.isValidElement(trigger) ? React87.cloneElement(trigger, {
17266
+ ] }) : /* @__PURE__ */ jsx88("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }));
17267
+ const triggerNode = React88.isValidElement(trigger) ? React88.cloneElement(trigger, {
17212
17268
  "aria-describedby": isOpen ? id : void 0
17213
17269
  }) : trigger;
17214
- return /* @__PURE__ */ jsxs84(
17270
+ return /* @__PURE__ */ jsxs85(
17215
17271
  "div",
17216
17272
  {
17217
17273
  ref,
17218
- className: cn76("relative inline-flex items-center", className),
17274
+ className: cn77("relative inline-flex items-center", className),
17219
17275
  style: { zIndex: isOpen ? "var(--z-tooltip, 1500)" : void 0 },
17220
17276
  onMouseEnter: (event) => {
17221
17277
  setOpenState(true);
@@ -17240,14 +17296,14 @@ var Tooltip = React87.forwardRef(
17240
17296
  ...rest,
17241
17297
  children: [
17242
17298
  triggerNode,
17243
- /* @__PURE__ */ jsxs84(
17299
+ /* @__PURE__ */ jsxs85(
17244
17300
  "div",
17245
17301
  {
17246
17302
  id,
17247
17303
  role: "tooltip",
17248
17304
  "data-state": isOpen ? "open" : "closed",
17249
17305
  "aria-hidden": !isOpen,
17250
- className: cn76(
17306
+ className: cn77(
17251
17307
  "absolute w-max max-w-xs rounded-lg border border-hairline bg-surface",
17252
17308
  "px-lg py-md shadow-md",
17253
17309
  "transition duration-200 ease-out",
@@ -17259,11 +17315,11 @@ var Tooltip = React87.forwardRef(
17259
17315
  ),
17260
17316
  children: [
17261
17317
  body,
17262
- /* @__PURE__ */ jsx87(
17318
+ /* @__PURE__ */ jsx88(
17263
17319
  "span",
17264
17320
  {
17265
17321
  "aria-hidden": "true",
17266
- className: cn76(
17322
+ className: cn77(
17267
17323
  "absolute size-md rotate-45 border-hairline bg-surface",
17268
17324
  caretPosition[side],
17269
17325
  caretEdges[side]
@@ -17281,8 +17337,8 @@ var Tooltip = React87.forwardRef(
17281
17337
  Tooltip.displayName = "Tooltip";
17282
17338
 
17283
17339
  // virtual-pkg:src/atoms/Typography/Typography.tsx
17284
- import * as React88 from "react";
17285
- import { jsx as jsx88, jsxs as jsxs85 } from "react/jsx-runtime";
17340
+ import * as React89 from "react";
17341
+ import { jsx as jsx89, jsxs as jsxs86 } from "react/jsx-runtime";
17286
17342
  var SCALE_CLASS = {
17287
17343
  "display-xxl": "text-display-xxl",
17288
17344
  "display-lg": "text-display-lg",
@@ -17350,7 +17406,7 @@ var DEFAULT_TYPE_ROWS = [
17350
17406
  scale: "overline"
17351
17407
  }
17352
17408
  ];
17353
- var Typography = React88.forwardRef(
17409
+ var Typography = React89.forwardRef(
17354
17410
  ({
17355
17411
  title = "Typography",
17356
17412
  rows = DEFAULT_TYPE_ROWS,
@@ -17358,7 +17414,7 @@ var Typography = React88.forwardRef(
17358
17414
  framed = true,
17359
17415
  className,
17360
17416
  ...rest
17361
- }, ref) => /* @__PURE__ */ jsx88(
17417
+ }, ref) => /* @__PURE__ */ jsx89(
17362
17418
  "div",
17363
17419
  {
17364
17420
  ref,
@@ -17369,27 +17425,27 @@ var Typography = React88.forwardRef(
17369
17425
  className
17370
17426
  ].filter(Boolean).join(" "),
17371
17427
  ...rest,
17372
- children: /* @__PURE__ */ jsxs85("div", { className: "grid grid-cols-1 gap-y-xs md:grid-cols-[8.5rem_1px_minmax(0,1fr)] md:gap-y-0", children: [
17373
- /* @__PURE__ */ jsx88("p", { className: "text-label-cap text-ink md:pb-xl md:pr-xl", children: title }),
17374
- /* @__PURE__ */ jsx88("div", { "aria-hidden": "true", className: "hidden md:block" }),
17375
- /* @__PURE__ */ jsx88("div", { "aria-hidden": "true", className: "hidden md:block" }),
17376
- rows.map((row) => /* @__PURE__ */ jsxs85(React88.Fragment, { children: [
17377
- /* @__PURE__ */ jsxs85("div", { className: "flex items-center gap-xs whitespace-nowrap pt-sm md:py-xs md:pr-xl md:pt-0", children: [
17378
- /* @__PURE__ */ jsx88("span", { className: "text-caption text-body", children: row.name }),
17379
- showSpec && row.spec ? /* @__PURE__ */ jsxs85("span", { className: "text-caption text-muted", children: [
17428
+ children: /* @__PURE__ */ jsxs86("div", { className: "grid grid-cols-1 gap-y-xs md:grid-cols-[8.5rem_1px_minmax(0,1fr)] md:gap-y-0", children: [
17429
+ /* @__PURE__ */ jsx89("p", { className: "text-label-cap text-ink md:pb-xl md:pr-xl", children: title }),
17430
+ /* @__PURE__ */ jsx89("div", { "aria-hidden": "true", className: "hidden md:block" }),
17431
+ /* @__PURE__ */ jsx89("div", { "aria-hidden": "true", className: "hidden md:block" }),
17432
+ rows.map((row) => /* @__PURE__ */ jsxs86(React89.Fragment, { children: [
17433
+ /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-xs whitespace-nowrap pt-sm md:py-xs md:pr-xl md:pt-0", children: [
17434
+ /* @__PURE__ */ jsx89("span", { className: "text-caption text-body", children: row.name }),
17435
+ showSpec && row.spec ? /* @__PURE__ */ jsxs86("span", { className: "text-caption text-muted", children: [
17380
17436
  "(",
17381
17437
  row.spec,
17382
17438
  ")"
17383
17439
  ] }) : null
17384
17440
  ] }),
17385
- /* @__PURE__ */ jsx88(
17441
+ /* @__PURE__ */ jsx89(
17386
17442
  "div",
17387
17443
  {
17388
17444
  "aria-hidden": "true",
17389
17445
  className: "hidden self-stretch bg-hairline md:block"
17390
17446
  }
17391
17447
  ),
17392
- /* @__PURE__ */ jsx88(
17448
+ /* @__PURE__ */ jsx89(
17393
17449
  "p",
17394
17450
  {
17395
17451
  className: [
@@ -17407,9 +17463,9 @@ var Typography = React88.forwardRef(
17407
17463
  Typography.displayName = "Typography";
17408
17464
 
17409
17465
  // virtual-pkg:src/atoms/Wizard/Wizard.tsx
17410
- import * as React89 from "react";
17411
- import { jsx as jsx89, jsxs as jsxs86 } from "react/jsx-runtime";
17412
- var cn77 = (...values) => values.filter(Boolean).join(" ");
17466
+ import * as React90 from "react";
17467
+ import { jsx as jsx90, jsxs as jsxs87 } from "react/jsx-runtime";
17468
+ var cn78 = (...values) => values.filter(Boolean).join(" ");
17413
17469
  var statusCopy = {
17414
17470
  complete: "completed",
17415
17471
  current: "current step",
@@ -17425,37 +17481,37 @@ var labelStyles2 = {
17425
17481
  current: "font-weight-label text-ink",
17426
17482
  upcoming: "text-muted"
17427
17483
  };
17428
- var StepRail = ({ steps, currentStep }) => /* @__PURE__ */ jsx89("ol", { className: "flex w-full items-start", children: steps.map((step, index) => {
17484
+ var StepRail = ({ steps, currentStep }) => /* @__PURE__ */ jsx90("ol", { className: "flex w-full items-start", children: steps.map((step, index) => {
17429
17485
  const status = index < currentStep ? "complete" : index === currentStep ? "current" : "upcoming";
17430
17486
  const leadDone = index - 1 >= 0 && index - 1 < currentStep;
17431
17487
  const trailDone = index < currentStep;
17432
- return /* @__PURE__ */ jsxs86(
17488
+ return /* @__PURE__ */ jsxs87(
17433
17489
  "li",
17434
17490
  {
17435
17491
  "aria-current": status === "current" ? "step" : void 0,
17436
17492
  className: "flex min-w-0 flex-1 flex-col items-center gap-sm",
17437
17493
  children: [
17438
- /* @__PURE__ */ jsxs86("div", { className: "flex w-full items-center", children: [
17439
- /* @__PURE__ */ jsx89(
17494
+ /* @__PURE__ */ jsxs87("div", { className: "flex w-full items-center", children: [
17495
+ /* @__PURE__ */ jsx90(
17440
17496
  "span",
17441
17497
  {
17442
17498
  "aria-hidden": "true",
17443
- className: cn77(
17499
+ className: cn78(
17444
17500
  "h-px flex-1 transition-colors duration-200 ease-out",
17445
17501
  index === 0 ? "invisible bg-hairline" : leadDone ? "bg-primary" : "bg-hairline-strong"
17446
17502
  )
17447
17503
  }
17448
17504
  ),
17449
- /* @__PURE__ */ jsx89(
17505
+ /* @__PURE__ */ jsx90(
17450
17506
  "span",
17451
17507
  {
17452
17508
  "aria-hidden": "true",
17453
- className: cn77(
17509
+ className: cn78(
17454
17510
  "flex size-lg shrink-0 items-center justify-center rounded-full",
17455
17511
  "transition-colors duration-200 ease-out",
17456
17512
  nodeStyles2[status]
17457
17513
  ),
17458
- children: status === "complete" ? /* @__PURE__ */ jsx89(
17514
+ children: status === "complete" ? /* @__PURE__ */ jsx90(
17459
17515
  Icon,
17460
17516
  {
17461
17517
  name: "check",
@@ -17466,36 +17522,36 @@ var StepRail = ({ steps, currentStep }) => /* @__PURE__ */ jsx89("ol", { classNa
17466
17522
  ) : null
17467
17523
  }
17468
17524
  ),
17469
- /* @__PURE__ */ jsx89(
17525
+ /* @__PURE__ */ jsx90(
17470
17526
  "span",
17471
17527
  {
17472
17528
  "aria-hidden": "true",
17473
- className: cn77(
17529
+ className: cn78(
17474
17530
  "h-px flex-1 transition-colors duration-200 ease-out",
17475
17531
  index === steps.length - 1 ? "invisible bg-hairline" : trailDone ? "bg-primary" : "bg-hairline-strong"
17476
17532
  )
17477
17533
  }
17478
17534
  )
17479
17535
  ] }),
17480
- /* @__PURE__ */ jsxs86("span", { className: "flex max-w-full min-w-0 flex-col items-center", children: [
17481
- /* @__PURE__ */ jsx89(
17536
+ /* @__PURE__ */ jsxs87("span", { className: "flex max-w-full min-w-0 flex-col items-center", children: [
17537
+ /* @__PURE__ */ jsx90(
17482
17538
  "span",
17483
17539
  {
17484
- className: cn77(
17540
+ className: cn78(
17485
17541
  "max-w-full truncate text-body-sm transition-colors duration-200 ease-out",
17486
17542
  labelStyles2[status]
17487
17543
  ),
17488
17544
  children: step.label
17489
17545
  }
17490
17546
  ),
17491
- /* @__PURE__ */ jsx89("span", { className: "sr-only", children: statusCopy[status] })
17547
+ /* @__PURE__ */ jsx90("span", { className: "sr-only", children: statusCopy[status] })
17492
17548
  ] })
17493
17549
  ]
17494
17550
  },
17495
17551
  step.id
17496
17552
  );
17497
17553
  }) });
17498
- var Wizard = React89.forwardRef(
17554
+ var Wizard = React90.forwardRef(
17499
17555
  ({
17500
17556
  steps,
17501
17557
  currentStep,
@@ -17516,30 +17572,30 @@ var Wizard = React89.forwardRef(
17516
17572
  const index = Math.max(0, Math.min(currentStep, steps.length - 1));
17517
17573
  const eyebrowCopy = eyebrow ?? `Step ${index + 1} (${stateLabel})`;
17518
17574
  const showActions = !hideActions && Boolean(onNext || onBack);
17519
- return /* @__PURE__ */ jsxs86(
17575
+ return /* @__PURE__ */ jsxs87(
17520
17576
  "section",
17521
17577
  {
17522
17578
  ref,
17523
- className: cn77(
17579
+ className: cn78(
17524
17580
  "flex w-full flex-col gap-xl rounded-lg border border-hairline bg-surface p-xl text-ink shadow-sm",
17525
17581
  className
17526
17582
  ),
17527
17583
  ...rest,
17528
17584
  children: [
17529
- /* @__PURE__ */ jsx89("p", { className: "text-label-cap text-muted", children: eyebrowCopy }),
17530
- /* @__PURE__ */ jsx89(StepRail, { steps, currentStep: index }),
17531
- /* @__PURE__ */ jsxs86("div", { className: "flex flex-col gap-lg", children: [
17532
- /* @__PURE__ */ jsxs86("div", { className: "flex flex-col gap-xs", children: [
17533
- /* @__PURE__ */ jsx89("h3", { className: "text-display-md text-ink", children: title }),
17534
- description ? /* @__PURE__ */ jsx89("p", { className: "max-w-prose text-body-md text-body", children: description }) : null
17585
+ /* @__PURE__ */ jsx90("p", { className: "text-label-cap text-muted", children: eyebrowCopy }),
17586
+ /* @__PURE__ */ jsx90(StepRail, { steps, currentStep: index }),
17587
+ /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-lg", children: [
17588
+ /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-xs", children: [
17589
+ /* @__PURE__ */ jsx90("h3", { className: "text-display-md text-ink", children: title }),
17590
+ description ? /* @__PURE__ */ jsx90("p", { className: "max-w-prose text-body-md text-body", children: description }) : null
17535
17591
  ] }),
17536
- children ? /* @__PURE__ */ jsx89("div", { className: "flex flex-col gap-md", children }) : null
17592
+ children ? /* @__PURE__ */ jsx90("div", { className: "flex flex-col gap-md", children }) : null
17537
17593
  ] }),
17538
- showActions ? /* @__PURE__ */ jsxs86("div", { className: "flex flex-col gap-lg", children: [
17539
- /* @__PURE__ */ jsx89(Divider, { tone: "soft", decorative: true }),
17540
- /* @__PURE__ */ jsxs86("div", { className: "flex flex-wrap items-center justify-between gap-md", children: [
17541
- onBack ? /* @__PURE__ */ jsx89(Button, { variant: "outline-soft", size: "md", onClick: onBack, children: backLabel }) : /* @__PURE__ */ jsx89("span", { "aria-hidden": "true" }),
17542
- onNext ? /* @__PURE__ */ jsx89(
17594
+ showActions ? /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-lg", children: [
17595
+ /* @__PURE__ */ jsx90(Divider, { tone: "soft", decorative: true }),
17596
+ /* @__PURE__ */ jsxs87("div", { className: "flex flex-wrap items-center justify-between gap-md", children: [
17597
+ onBack ? /* @__PURE__ */ jsx90(Button, { variant: "outline-soft", size: "md", onClick: onBack, children: backLabel }) : /* @__PURE__ */ jsx90("span", { "aria-hidden": "true" }),
17598
+ onNext ? /* @__PURE__ */ jsx90(
17543
17599
  Button,
17544
17600
  {
17545
17601
  variant: "primary",
@@ -17626,6 +17682,7 @@ export {
17626
17682
  PAYMENT_RANGES,
17627
17683
  PAYMENT_ROWS,
17628
17684
  Pagination,
17685
+ Panel,
17629
17686
  PaymentRoutingCanvas,
17630
17687
  PricingTable,
17631
17688
  PricingTableDesktop,