@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.cjs CHANGED
@@ -97,6 +97,7 @@ __export(src_exports, {
97
97
  PAYMENT_RANGES: () => PAYMENT_RANGES,
98
98
  PAYMENT_ROWS: () => PAYMENT_ROWS,
99
99
  Pagination: () => Pagination,
100
+ Panel: () => Panel,
100
101
  PaymentRoutingCanvas: () => PaymentRoutingCanvas,
101
102
  PricingTable: () => PricingTable,
102
103
  PricingTableDesktop: () => PricingTableDesktop,
@@ -240,7 +241,8 @@ var ICON_REGISTRY = {
240
241
  "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" }] },
241
242
  "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" }] },
242
243
  "square": { viewBox: "0 0 24 24", nodes: [{ tag: "rect", width: "18", height: "18", x: "3", y: "3", rx: "2" }] },
243
- "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" }] }
244
+ "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" }] },
245
+ "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" }] }
244
246
  };
245
247
 
246
248
  // virtual-pkg:src/atoms/Icon/Icon.tsx
@@ -11817,20 +11819,75 @@ var Pagination = React59.forwardRef(
11817
11819
  );
11818
11820
  Pagination.displayName = "Pagination";
11819
11821
 
11822
+ // virtual-pkg:src/atoms/Panel/Panel.tsx
11823
+ var React60 = __toESM(require("react"));
11824
+ var import_jsx_runtime60 = require("react/jsx-runtime");
11825
+ var cn51 = (...values) => values.filter(Boolean).join(" ");
11826
+ var Panel = React60.forwardRef(
11827
+ ({
11828
+ title,
11829
+ meta,
11830
+ actions,
11831
+ headingLevel = 2,
11832
+ id,
11833
+ children,
11834
+ className,
11835
+ ...rest
11836
+ }, ref) => {
11837
+ const generatedId = React60.useId();
11838
+ const baseId = id ?? generatedId;
11839
+ const titleId = `${baseId}-title`;
11840
+ const Heading = headingLevel === 3 ? "h3" : "h2";
11841
+ const hasTrailing = Boolean(meta) || Boolean(actions);
11842
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
11843
+ "section",
11844
+ {
11845
+ ref,
11846
+ id,
11847
+ "aria-labelledby": titleId,
11848
+ className: cn51(
11849
+ "w-full min-w-0 overflow-hidden rounded-xl border border-hairline",
11850
+ "bg-surface p-xl shadow-card",
11851
+ className
11852
+ ),
11853
+ ...rest,
11854
+ children: [
11855
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "mb-lg flex min-w-0 flex-wrap items-center justify-between gap-x-md gap-y-sm", children: [
11856
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
11857
+ Heading,
11858
+ {
11859
+ id: titleId,
11860
+ className: "min-w-0 truncate text-heading-sm text-ink",
11861
+ children: title
11862
+ }
11863
+ ),
11864
+ hasTrailing ? /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "ml-auto flex shrink-0 items-center gap-md", children: [
11865
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "whitespace-nowrap text-caption text-muted", children: meta }) : null,
11866
+ actions
11867
+ ] }) : null
11868
+ ] }),
11869
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "flex min-w-0 flex-col gap-md", children })
11870
+ ]
11871
+ }
11872
+ );
11873
+ }
11874
+ );
11875
+ Panel.displayName = "Panel";
11876
+
11820
11877
  // virtual-pkg:src/atoms/PaymentRoutingCanvas/PaymentRoutingCanvas.tsx
11821
- var React63 = __toESM(require("react"));
11878
+ var React64 = __toESM(require("react"));
11822
11879
  var ReactDOM10 = __toESM(require("react-dom"));
11823
11880
 
11824
11881
  // virtual-pkg:src/atoms/RoutingEdge/RoutingEdge.tsx
11825
- var React60 = __toESM(require("react"));
11826
- var import_jsx_runtime60 = require("react/jsx-runtime");
11827
- var cn51 = (...values) => values.filter(Boolean).join(" ");
11882
+ var React61 = __toESM(require("react"));
11883
+ var import_jsx_runtime61 = require("react/jsx-runtime");
11884
+ var cn52 = (...values) => values.filter(Boolean).join(" ");
11828
11885
  var toneColor = {
11829
11886
  primary: "var(--color-primary)",
11830
11887
  medium: "var(--color-hairline-strong)",
11831
11888
  light: "var(--color-hairline)"
11832
11889
  };
11833
- var RoutingEdge = React60.forwardRef(
11890
+ var RoutingEdge = React61.forwardRef(
11834
11891
  ({
11835
11892
  from,
11836
11893
  to,
@@ -11852,11 +11909,11 @@ var RoutingEdge = React60.forwardRef(
11852
11909
  const gap = Math.abs(to.y - from.y);
11853
11910
  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;
11854
11911
  const segment = "absolute rounded-full transition-all duration-200 ease-out";
11855
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
11912
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
11856
11913
  "div",
11857
11914
  {
11858
11915
  ref,
11859
- className: cn51(
11916
+ className: cn52(
11860
11917
  "pointer-events-none absolute inset-0",
11861
11918
  isDimmed ? "opacity-50" : "opacity-100",
11862
11919
  "transition-opacity duration-200 ease-out",
@@ -11866,7 +11923,7 @@ var RoutingEdge = React60.forwardRef(
11866
11923
  "data-edge-state": state,
11867
11924
  ...rest,
11868
11925
  children: [
11869
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
11926
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
11870
11927
  "span",
11871
11928
  {
11872
11929
  "aria-hidden": "true",
@@ -11880,7 +11937,7 @@ var RoutingEdge = React60.forwardRef(
11880
11937
  }
11881
11938
  }
11882
11939
  ),
11883
- gap > 0 ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
11940
+ gap > 0 ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
11884
11941
  "span",
11885
11942
  {
11886
11943
  "aria-hidden": "true",
@@ -11894,7 +11951,7 @@ var RoutingEdge = React60.forwardRef(
11894
11951
  }
11895
11952
  }
11896
11953
  ) : null,
11897
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
11954
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
11898
11955
  "span",
11899
11956
  {
11900
11957
  "aria-hidden": "true",
@@ -11908,10 +11965,10 @@ var RoutingEdge = React60.forwardRef(
11908
11965
  }
11909
11966
  }
11910
11967
  ),
11911
- label ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
11968
+ label ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
11912
11969
  "span",
11913
11970
  {
11914
- className: cn51(
11971
+ className: cn52(
11915
11972
  "absolute -translate-x-1/2 -translate-y-1/2 whitespace-nowrap rounded-sm border px-xs py-xxs",
11916
11973
  "text-caption transition duration-200 ease-out",
11917
11974
  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"
@@ -11928,9 +11985,9 @@ var RoutingEdge = React60.forwardRef(
11928
11985
  RoutingEdge.displayName = "RoutingEdge";
11929
11986
 
11930
11987
  // virtual-pkg:src/atoms/RoutingNode/RoutingNode.tsx
11931
- var React61 = __toESM(require("react"));
11932
- var import_jsx_runtime61 = require("react/jsx-runtime");
11933
- var cn52 = (...values) => values.filter(Boolean).join(" ");
11988
+ var React62 = __toESM(require("react"));
11989
+ var import_jsx_runtime62 = require("react/jsx-runtime");
11990
+ var cn53 = (...values) => values.filter(Boolean).join(" ");
11934
11991
  var NODE_WIDTH = "var(--container-node, 228px)";
11935
11992
  var accentByType = {
11936
11993
  source: "bg-primary",
@@ -11956,7 +12013,7 @@ var eyebrowByType2 = {
11956
12013
  processor: "Processor",
11957
12014
  fallback: "Fallback"
11958
12015
  };
11959
- var RoutingNode = React61.forwardRef(
12016
+ var RoutingNode = React62.forwardRef(
11960
12017
  ({
11961
12018
  type,
11962
12019
  title,
@@ -11979,21 +12036,21 @@ var RoutingNode = React61.forwardRef(
11979
12036
  }, ref) => {
11980
12037
  const glyph5 = icon ?? defaultIconByType[type];
11981
12038
  const highlighted = selected || active;
11982
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12039
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
11983
12040
  "div",
11984
12041
  {
11985
12042
  ref,
11986
- className: cn52("group/node relative shrink-0", className),
12043
+ className: cn53("group/node relative shrink-0", className),
11987
12044
  style: { width: NODE_WIDTH, ...style },
11988
12045
  "data-node-type": type,
11989
12046
  "data-selected": selected || void 0,
11990
12047
  "data-active": active || void 0,
11991
12048
  ...rest,
11992
12049
  children: [
11993
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12050
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
11994
12051
  "div",
11995
12052
  {
11996
- className: cn52(
12053
+ className: cn53(
11997
12054
  "flex items-stretch overflow-hidden rounded-md border bg-surface",
11998
12055
  "transition duration-150 ease-out",
11999
12056
  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",
@@ -12001,29 +12058,29 @@ var RoutingNode = React61.forwardRef(
12001
12058
  disabled ? "" : "group-hover/node:border-hairline-strong group-hover/node:shadow-md"
12002
12059
  ),
12003
12060
  children: [
12004
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12061
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12005
12062
  "span",
12006
12063
  {
12007
12064
  "aria-hidden": "true",
12008
- className: cn52("w-xs shrink-0", disabled ? "bg-hairline" : accentByType[type])
12065
+ className: cn53("w-xs shrink-0", disabled ? "bg-hairline" : accentByType[type])
12009
12066
  }
12010
12067
  ),
12011
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-sm p-sm", children: [
12012
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12068
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-sm p-sm", children: [
12069
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12013
12070
  "span",
12014
12071
  {
12015
12072
  "aria-hidden": "true",
12016
- className: cn52(
12073
+ className: cn53(
12017
12074
  "flex size-lg shrink-0 items-center justify-center rounded-xs",
12018
12075
  disabled ? "bg-surface-strong text-muted-soft" : glyphTintByType[type]
12019
12076
  ),
12020
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: glyph5, size: 12, strokeWidth: 1.75 })
12077
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: glyph5, size: 12, strokeWidth: 1.75 })
12021
12078
  }
12022
12079
  ),
12023
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
12024
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-xs", children: [
12025
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "truncate text-micro-cap text-muted", children: eyebrowByType2[type] }),
12026
- unreachable ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12080
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
12081
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-xs", children: [
12082
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "truncate text-micro-cap text-muted", children: eyebrowByType2[type] }),
12083
+ unreachable ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12027
12084
  Icon,
12028
12085
  {
12029
12086
  name: "triangle",
@@ -12033,45 +12090,45 @@ var RoutingNode = React61.forwardRef(
12033
12090
  }
12034
12091
  ) : null
12035
12092
  ] }),
12036
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-body-sm text-ink", children: title }),
12037
- noFallback ? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("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: [
12038
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "triangle", size: 11, strokeWidth: 2, className: "shrink-0" }),
12093
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-body-sm text-ink", children: title }),
12094
+ noFallback ? /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("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: [
12095
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "triangle", size: 11, strokeWidth: 2, className: "shrink-0" }),
12039
12096
  "No fallback"
12040
- ] }) : metric || trailing ? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 items-baseline justify-between gap-xs", children: [
12041
- metric ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "truncate text-caption text-muted", children: metric }) : null,
12042
- trailing ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "shrink-0 text-caption text-muted", children: trailing }) : null
12097
+ ] }) : metric || trailing ? /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex min-w-0 items-baseline justify-between gap-xs", children: [
12098
+ metric ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "truncate text-caption text-muted", children: metric }) : null,
12099
+ trailing ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "shrink-0 text-caption text-muted", children: trailing }) : null
12043
12100
  ] }) : null,
12044
- conflict ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-caption text-semantic-error", children: conflict }) : null
12101
+ conflict ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-caption text-semantic-error", children: conflict }) : null
12045
12102
  ] })
12046
12103
  ] })
12047
12104
  ]
12048
12105
  }
12049
12106
  ),
12050
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12107
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12051
12108
  "span",
12052
12109
  {
12053
12110
  "aria-hidden": "true",
12054
- className: cn52(
12111
+ className: cn53(
12055
12112
  "absolute -left-xs top-1/2 size-sm -translate-y-1/2 rounded-full border-2 transition-colors duration-150 ease-out",
12056
12113
  highlighted ? "border-primary bg-primary" : "border-hairline-strong bg-surface"
12057
12114
  )
12058
12115
  }
12059
12116
  ),
12060
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12117
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12061
12118
  "span",
12062
12119
  {
12063
12120
  "aria-hidden": "true",
12064
- className: cn52(
12121
+ className: cn53(
12065
12122
  "absolute -right-xs top-1/2 size-sm -translate-y-1/2 rounded-full border-2 transition-colors duration-150 ease-out",
12066
12123
  highlighted ? "border-primary bg-primary" : "border-hairline-strong bg-surface"
12067
12124
  )
12068
12125
  }
12069
12126
  ),
12070
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12127
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12071
12128
  "span",
12072
12129
  {
12073
12130
  "aria-hidden": "true",
12074
- className: cn52(
12131
+ className: cn53(
12075
12132
  "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",
12076
12133
  "transition duration-150 ease-out",
12077
12134
  showHint ? "translate-y-0 opacity-100" : "-translate-y-xs opacity-0"
@@ -12079,7 +12136,7 @@ var RoutingNode = React61.forwardRef(
12079
12136
  children: "Press Enter"
12080
12137
  }
12081
12138
  ),
12082
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12139
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12083
12140
  Button,
12084
12141
  {
12085
12142
  variant: "bare",
@@ -12089,7 +12146,7 @@ var RoutingNode = React61.forwardRef(
12089
12146
  "aria-pressed": selected,
12090
12147
  onClick: onNodeSelect,
12091
12148
  className: "absolute inset-0 rounded-md focus-visible:ring-focus-blue focus-visible:ring-offset-0",
12092
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "sr-only", children: title })
12149
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "sr-only", children: title })
12093
12150
  }
12094
12151
  )
12095
12152
  ]
@@ -12100,10 +12157,10 @@ var RoutingNode = React61.forwardRef(
12100
12157
  RoutingNode.displayName = "RoutingNode";
12101
12158
 
12102
12159
  // virtual-pkg:src/atoms/SimulationControls/SimulationControls.tsx
12103
- var React62 = __toESM(require("react"));
12104
- var import_jsx_runtime62 = require("react/jsx-runtime");
12105
- var cn53 = (...values) => values.filter(Boolean).join(" ");
12106
- var SimulationControls = React62.forwardRef(
12160
+ var React63 = __toESM(require("react"));
12161
+ var import_jsx_runtime63 = require("react/jsx-runtime");
12162
+ var cn54 = (...values) => values.filter(Boolean).join(" ");
12163
+ var SimulationControls = React63.forwardRef(
12107
12164
  ({
12108
12165
  running = false,
12109
12166
  on = false,
@@ -12115,12 +12172,12 @@ var SimulationControls = React62.forwardRef(
12115
12172
  className,
12116
12173
  ...rest
12117
12174
  }, ref) => {
12118
- const trackRef = React62.useRef(null);
12119
- const segmentRef = React62.useRef(null);
12120
- const [pill, setPill] = React62.useState(
12175
+ const trackRef = React63.useRef(null);
12176
+ const segmentRef = React63.useRef(null);
12177
+ const [pill, setPill] = React63.useState(
12121
12178
  null
12122
12179
  );
12123
- React62.useEffect(() => {
12180
+ React63.useEffect(() => {
12124
12181
  const measure = () => {
12125
12182
  const track = trackRef.current;
12126
12183
  const segment = segmentRef.current;
@@ -12133,7 +12190,7 @@ var SimulationControls = React62.forwardRef(
12133
12190
  return () => observer.disconnect();
12134
12191
  }, []);
12135
12192
  const armed = on || running;
12136
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
12193
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
12137
12194
  "div",
12138
12195
  {
12139
12196
  ref: (node) => {
@@ -12143,18 +12200,18 @@ var SimulationControls = React62.forwardRef(
12143
12200
  },
12144
12201
  role: "group",
12145
12202
  "aria-label": label,
12146
- className: cn53(
12203
+ className: cn54(
12147
12204
  "relative inline-flex items-center gap-xxs rounded-full border border-hairline bg-surface-soft p-xxs",
12148
12205
  "transition-colors duration-150 ease-out",
12149
12206
  className
12150
12207
  ),
12151
12208
  ...rest,
12152
12209
  children: [
12153
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12210
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
12154
12211
  "span",
12155
12212
  {
12156
12213
  "aria-hidden": "true",
12157
- className: cn53(
12214
+ className: cn54(
12158
12215
  "pointer-events-none absolute bottom-xxs top-xxs rounded-full bg-primary shadow-sm",
12159
12216
  "transition duration-200 ease-out",
12160
12217
  armed ? "opacity-100" : "opacity-0"
@@ -12162,7 +12219,7 @@ var SimulationControls = React62.forwardRef(
12162
12219
  style: { left: pill?.left ?? 0, width: pill?.width ?? 0 }
12163
12220
  }
12164
12221
  ),
12165
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12222
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
12166
12223
  Button,
12167
12224
  {
12168
12225
  variant: "bare",
@@ -12170,14 +12227,14 @@ var SimulationControls = React62.forwardRef(
12170
12227
  onClick: onReplay,
12171
12228
  disabled: running,
12172
12229
  "aria-label": "Replay sample transaction",
12173
- className: cn53(
12230
+ className: cn54(
12174
12231
  "relative z-10 size-7 shrink-0 rounded-full text-body",
12175
12232
  "hover:bg-surface-strong hover:text-ink disabled:hover:bg-transparent"
12176
12233
  ),
12177
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "play", size: 13, strokeWidth: 2 })
12234
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "play", size: 13, strokeWidth: 2 })
12178
12235
  }
12179
12236
  ),
12180
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
12237
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
12181
12238
  Button,
12182
12239
  {
12183
12240
  ref: segmentRef,
@@ -12186,20 +12243,20 @@ var SimulationControls = React62.forwardRef(
12186
12243
  onClick: () => onToggle?.(!on),
12187
12244
  "aria-pressed": armed,
12188
12245
  "aria-label": "Simulation mode",
12189
- className: cn53(
12246
+ className: cn54(
12190
12247
  "relative z-10 shrink-0 rounded-full",
12191
12248
  armed ? "text-on-primary" : "text-muted"
12192
12249
  ),
12193
12250
  children: [
12194
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: running ? "square" : "play", size: 10, strokeWidth: 2.5 }),
12251
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: running ? "square" : "play", size: 10, strokeWidth: 2.5 }),
12195
12252
  "Simulation"
12196
12253
  ]
12197
12254
  }
12198
12255
  ),
12199
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
12256
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
12200
12257
  "span",
12201
12258
  {
12202
- className: cn53(
12259
+ className: cn54(
12203
12260
  "relative z-10 px-sm text-caption",
12204
12261
  armed ? "text-ink" : "text-muted"
12205
12262
  ),
@@ -12219,8 +12276,8 @@ var SimulationControls = React62.forwardRef(
12219
12276
  SimulationControls.displayName = "SimulationControls";
12220
12277
 
12221
12278
  // virtual-pkg:src/atoms/PaymentRoutingCanvas/PaymentRoutingCanvas.tsx
12222
- var import_jsx_runtime63 = require("react/jsx-runtime");
12223
- var cn54 = (...values) => values.filter(Boolean).join(" ");
12279
+ var import_jsx_runtime64 = require("react/jsx-runtime");
12280
+ var cn55 = (...values) => values.filter(Boolean).join(" ");
12224
12281
  var NODE_W = 228;
12225
12282
  var NODE_H = 78;
12226
12283
  var SOURCE_X = 0;
@@ -12387,7 +12444,7 @@ var computeIssues = (nodes, edges) => {
12387
12444
  return issues;
12388
12445
  };
12389
12446
  var sameIds = (a, b) => a.length === b.length && a.every((id, index) => id === b[index]);
12390
- var PaymentRoutingCanvas = React63.forwardRef(
12447
+ var PaymentRoutingCanvas = React64.forwardRef(
12391
12448
  ({
12392
12449
  nodes,
12393
12450
  edges,
@@ -12406,50 +12463,50 @@ var PaymentRoutingCanvas = React63.forwardRef(
12406
12463
  const incomingNodes = nodes ?? DEFAULT_NODES;
12407
12464
  const graphEdges = edges ?? DEFAULT_EDGES;
12408
12465
  const samples = sampleTransaction ?? DEFAULT_SAMPLES;
12409
- const [localNodes, setLocalNodes] = React63.useState(incomingNodes);
12410
- const [panelNodeId, setPanelNodeId] = React63.useState("brand");
12411
- const [panelOpen, setPanelOpen] = React63.useState(true);
12412
- const [zoom, setZoom] = React63.useState(1);
12413
- const [fit, setFit] = React63.useState(1);
12414
- const [planeHeight, setPlaneHeight] = React63.useState(PLANE_H);
12415
- const [pan, setPan] = React63.useState({ x: 0, y: 0 });
12416
- const [issuesOpen, setIssuesOpen] = React63.useState(false);
12417
- const [priority, setPriority] = React63.useState([
12466
+ const [localNodes, setLocalNodes] = React64.useState(incomingNodes);
12467
+ const [panelNodeId, setPanelNodeId] = React64.useState("brand");
12468
+ const [panelOpen, setPanelOpen] = React64.useState(true);
12469
+ const [zoom, setZoom] = React64.useState(1);
12470
+ const [fit, setFit] = React64.useState(1);
12471
+ const [planeHeight, setPlaneHeight] = React64.useState(PLANE_H);
12472
+ const [pan, setPan] = React64.useState({ x: 0, y: 0 });
12473
+ const [issuesOpen, setIssuesOpen] = React64.useState(false);
12474
+ const [priority, setPriority] = React64.useState([
12418
12475
  { id: "p1", label: "Card brand = credit" },
12419
12476
  { id: "p2", label: "Country = DE" },
12420
12477
  { id: "p3", label: "Risk score \u2265 70" }
12421
12478
  ]);
12422
- const [fallbackEnabled, setFallbackEnabled] = React63.useState(true);
12423
- const [sampleIndex, setSampleIndex] = React63.useState(0);
12424
- const [stepIndex, setStepIndex] = React63.useState(2);
12425
- const [replaying, setReplaying] = React63.useState(false);
12426
- const [focusedId, setFocusedId] = React63.useState(null);
12427
- const [anchor, setAnchor] = React63.useState({ top: 0, right: 16 });
12479
+ const [fallbackEnabled, setFallbackEnabled] = React64.useState(true);
12480
+ const [sampleIndex, setSampleIndex] = React64.useState(0);
12481
+ const [stepIndex, setStepIndex] = React64.useState(2);
12482
+ const [replaying, setReplaying] = React64.useState(false);
12483
+ const [focusedId, setFocusedId] = React64.useState(null);
12484
+ const [anchor, setAnchor] = React64.useState({ top: 0, right: 16 });
12428
12485
  const controlledSelection = selectedNodeIds !== void 0;
12429
- const [internalSelection, setInternalSelection] = React63.useState(
12486
+ const [internalSelection, setInternalSelection] = React64.useState(
12430
12487
  () => defaultSelectedNodeIds ?? DEFAULT_SELECTION
12431
12488
  );
12432
12489
  const selection = controlledSelection ? selectedNodeIds : internalSelection;
12433
- const selectionRef = React63.useRef(selection);
12490
+ const selectionRef = React64.useRef(selection);
12434
12491
  selectionRef.current = selection;
12435
- const onSelectionChangeRef = React63.useRef(onSelectionChange);
12492
+ const onSelectionChangeRef = React64.useRef(onSelectionChange);
12436
12493
  onSelectionChangeRef.current = onSelectionChange;
12437
- const [marqueeBox, setMarqueeBox] = React63.useState(null);
12438
- const [marqueeIds, setMarqueeIds] = React63.useState(null);
12439
- const marqueeRef = React63.useRef(null);
12440
- const [modifierHeld, setModifierHeld] = React63.useState(false);
12441
- const rootRef = React63.useRef(null);
12442
- const planeRef = React63.useRef(null);
12443
- const triggerRef = React63.useRef(null);
12444
- const nodeRefs = React63.useRef({});
12445
- const suppressClick = React63.useRef(false);
12446
- const nodeDragActive = React63.useRef(false);
12447
- const nodesRef = React63.useRef(localNodes);
12494
+ const [marqueeBox, setMarqueeBox] = React64.useState(null);
12495
+ const [marqueeIds, setMarqueeIds] = React64.useState(null);
12496
+ const marqueeRef = React64.useRef(null);
12497
+ const [modifierHeld, setModifierHeld] = React64.useState(false);
12498
+ const rootRef = React64.useRef(null);
12499
+ const planeRef = React64.useRef(null);
12500
+ const triggerRef = React64.useRef(null);
12501
+ const nodeRefs = React64.useRef({});
12502
+ const suppressClick = React64.useRef(false);
12503
+ const nodeDragActive = React64.useRef(false);
12504
+ const nodesRef = React64.useRef(localNodes);
12448
12505
  nodesRef.current = localNodes;
12449
- React63.useEffect(() => {
12506
+ React64.useEffect(() => {
12450
12507
  setLocalNodes(incomingNodes);
12451
12508
  }, [incomingNodes]);
12452
- React63.useEffect(() => {
12509
+ React64.useEffect(() => {
12453
12510
  const syncModifier = (event) => setModifierHeld(Boolean(event.metaKey || event.ctrlKey));
12454
12511
  const releaseModifier = () => setModifierHeld(false);
12455
12512
  window.addEventListener("keydown", syncModifier);
@@ -12461,7 +12518,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12461
12518
  window.removeEventListener("blur", releaseModifier);
12462
12519
  };
12463
12520
  }, []);
12464
- React63.useEffect(() => {
12521
+ React64.useEffect(() => {
12465
12522
  const plane = planeRef.current;
12466
12523
  if (!plane) return;
12467
12524
  const measure = () => {
@@ -12482,16 +12539,16 @@ var PaymentRoutingCanvas = React63.forwardRef(
12482
12539
  observer.observe(plane);
12483
12540
  return () => observer.disconnect();
12484
12541
  }, []);
12485
- const issues = React63.useMemo(
12542
+ const issues = React64.useMemo(
12486
12543
  () => computeIssues(localNodes, graphEdges),
12487
12544
  [localNodes, graphEdges]
12488
12545
  );
12489
- React63.useEffect(() => {
12546
+ React64.useEffect(() => {
12490
12547
  onValidationChange?.(issues);
12491
12548
  }, [issues, onValidationChange]);
12492
12549
  const sample = samples[sampleIndex] ?? samples[0];
12493
12550
  const steps = sample?.steps ?? [];
12494
- React63.useEffect(() => {
12551
+ React64.useEffect(() => {
12495
12552
  if (!replaying) return;
12496
12553
  if (stepIndex >= steps.length - 1) {
12497
12554
  setReplaying(false);
@@ -12506,11 +12563,11 @@ var PaymentRoutingCanvas = React63.forwardRef(
12506
12563
  }, 900);
12507
12564
  return () => window.clearTimeout(timer);
12508
12565
  }, [replaying, stepIndex, steps, onSimulationStep]);
12509
- const traversed = React63.useMemo(
12566
+ const traversed = React64.useMemo(
12510
12567
  () => new Set(steps.slice(0, stepIndex + 1).map((step) => step.nodeId)),
12511
12568
  [steps, stepIndex]
12512
12569
  );
12513
- const activeEdges = React63.useMemo(() => {
12570
+ const activeEdges = React64.useMemo(() => {
12514
12571
  const pairs = [];
12515
12572
  for (let index = 0; index < stepIndex; index += 1) {
12516
12573
  const from = steps[index]?.nodeId;
@@ -12519,7 +12576,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12519
12576
  }
12520
12577
  return new Set(pairs);
12521
12578
  }, [steps, stepIndex]);
12522
- const nodeById = React63.useMemo(() => {
12579
+ const nodeById = React64.useMemo(() => {
12523
12580
  const map = /* @__PURE__ */ new Map();
12524
12581
  localNodes.forEach((node) => map.set(node.id, node));
12525
12582
  return map;
@@ -12529,9 +12586,9 @@ var PaymentRoutingCanvas = React63.forwardRef(
12529
12586
  y: node.y + (node.h ?? NODE_H) / 2
12530
12587
  });
12531
12588
  const focusedNode = panelNodeId ? nodeById.get(panelNodeId) : void 0;
12532
- const selectionSet = React63.useMemo(() => new Set(selection), [selection]);
12533
- const marqueeSet = React63.useMemo(() => new Set(marqueeIds ?? []), [marqueeIds]);
12534
- const commitSelection = React63.useCallback(
12589
+ const selectionSet = React64.useMemo(() => new Set(selection), [selection]);
12590
+ const marqueeSet = React64.useMemo(() => new Set(marqueeIds ?? []), [marqueeIds]);
12591
+ const commitSelection = React64.useCallback(
12535
12592
  (next) => {
12536
12593
  const unique = next.filter((id, index) => next.indexOf(id) === index);
12537
12594
  if (sameIds(unique, selectionRef.current)) return;
@@ -12803,7 +12860,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12803
12860
  setIssuesOpen((current) => !current);
12804
12861
  };
12805
12862
  const scale = fit * zoom;
12806
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
12863
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
12807
12864
  "div",
12808
12865
  {
12809
12866
  ref: (node) => {
@@ -12811,20 +12868,20 @@ var PaymentRoutingCanvas = React63.forwardRef(
12811
12868
  if (typeof ref === "function") ref(node);
12812
12869
  else if (ref) ref.current = node;
12813
12870
  },
12814
- className: cn54(
12871
+ className: cn55(
12815
12872
  "flex min-h-0 w-full flex-col overflow-hidden rounded-lg border border-hairline bg-surface shadow-card",
12816
12873
  className
12817
12874
  ),
12818
12875
  "data-simulating": replaying || void 0,
12819
12876
  ...rest,
12820
12877
  children: [
12821
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-b border-hairline px-lg py-md", children: [
12822
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex min-w-0 flex-col gap-xxs", children: [
12823
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-body-md text-ink", children: "Payment routing" }),
12824
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-caption text-muted", children: "12,480 payments \xB7 last 24h" })
12878
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-b border-hairline px-lg py-md", children: [
12879
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex min-w-0 flex-col gap-xxs", children: [
12880
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-body-md text-ink", children: "Payment routing" }),
12881
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-caption text-muted", children: "12,480 payments \xB7 last 24h" })
12825
12882
  ] }),
12826
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-wrap items-center gap-md", children: [
12827
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
12883
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-wrap items-center gap-md", children: [
12884
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12828
12885
  SimulationControls,
12829
12886
  {
12830
12887
  running: replaying,
@@ -12841,7 +12898,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12841
12898
  }
12842
12899
  }
12843
12900
  ),
12844
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
12901
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12845
12902
  Button,
12846
12903
  {
12847
12904
  ref: triggerRef,
@@ -12850,7 +12907,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12850
12907
  "aria-expanded": issuesOpen,
12851
12908
  "aria-controls": "routing-validation-summary",
12852
12909
  onClick: openIssues,
12853
- leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
12910
+ leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12854
12911
  Icon,
12855
12912
  {
12856
12913
  name: issues.length > 0 ? "triangle" : "check",
@@ -12858,7 +12915,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12858
12915
  strokeWidth: 2
12859
12916
  }
12860
12917
  ),
12861
- className: cn54(
12918
+ className: cn55(
12862
12919
  "rounded-full border-transparent",
12863
12920
  issues.length > 0 ? "bg-semantic-error-soft text-semantic-error hover:bg-semantic-error-soft/70" : "bg-semantic-success-soft text-semantic-success"
12864
12921
  ),
@@ -12867,9 +12924,9 @@ var PaymentRoutingCanvas = React63.forwardRef(
12867
12924
  )
12868
12925
  ] })
12869
12926
  ] }),
12870
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex min-h-0 flex-1 items-stretch", children: [
12871
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
12872
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
12927
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex min-h-0 flex-1 items-stretch", children: [
12928
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
12929
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
12873
12930
  "div",
12874
12931
  {
12875
12932
  ref: planeRef,
@@ -12911,7 +12968,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12911
12968
  setPan({ x: 0, y: 0 });
12912
12969
  }
12913
12970
  },
12914
- className: cn54(
12971
+ className: cn55(
12915
12972
  "relative min-h-0 min-w-0 flex-1 overflow-hidden bg-canvas",
12916
12973
  // Held Cmd / Ctrl over the background means "drag to select".
12917
12974
  modifierHeld || marqueeBox ? "cursor-crosshair" : "cursor-grab",
@@ -12925,8 +12982,8 @@ var PaymentRoutingCanvas = React63.forwardRef(
12925
12982
  backgroundSize: "16px 16px"
12926
12983
  },
12927
12984
  children: [
12928
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("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` }),
12929
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
12985
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("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` }),
12986
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
12930
12987
  "div",
12931
12988
  {
12932
12989
  className: "relative",
@@ -12946,7 +13003,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12946
13003
  const unreachable = issueByNode(to.id).some(
12947
13004
  (issue) => issue.kind === "unreachable"
12948
13005
  );
12949
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13006
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12950
13007
  RoutingEdge,
12951
13008
  {
12952
13009
  from: portOf(from, "out"),
@@ -12971,7 +13028,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12971
13028
  );
12972
13029
  const active = traversed.has(node.id);
12973
13030
  const isSelected = selectionSet.has(node.id) || marqueeSet.has(node.id);
12974
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13031
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12975
13032
  "div",
12976
13033
  {
12977
13034
  ref: (element) => {
@@ -12980,7 +13037,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
12980
13037
  className: "absolute",
12981
13038
  style: { left: node.x, top: node.y, width: NODE_W },
12982
13039
  onPointerDown: (event) => beginDrag(event, node),
12983
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13040
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
12984
13041
  RoutingNode,
12985
13042
  {
12986
13043
  type: node.type,
@@ -13028,12 +13085,12 @@ var PaymentRoutingCanvas = React63.forwardRef(
13028
13085
  ]
13029
13086
  }
13030
13087
  ),
13031
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13088
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13032
13089
  "div",
13033
13090
  {
13034
13091
  "aria-hidden": "true",
13035
13092
  "data-state": marqueeBox ? "active" : "idle",
13036
- className: cn54(
13093
+ className: cn55(
13037
13094
  "pointer-events-none absolute rounded-xs border border-dashed border-primary bg-primary/10",
13038
13095
  "transition-opacity duration-150 ease-out",
13039
13096
  marqueeBox ? "opacity-100" : "opacity-0"
@@ -13047,22 +13104,22 @@ var PaymentRoutingCanvas = React63.forwardRef(
13047
13104
  }
13048
13105
  }
13049
13106
  ),
13050
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("ol", { className: "sr-only", children: graphEdges.map((edge) => {
13107
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("ol", { className: "sr-only", children: graphEdges.map((edge) => {
13051
13108
  const from = nodeById.get(edge.from);
13052
13109
  const to = nodeById.get(edge.to);
13053
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("li", { children: `Edge: ${from?.title ?? edge.from} to ${to?.title ?? edge.to}${edge.label ? `, ${edge.label}` : ""}` }, edge.id);
13110
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("li", { children: `Edge: ${from?.title ?? edge.from} to ${to?.title ?? edge.to}${edge.label ? `, ${edge.label}` : ""}` }, edge.id);
13054
13111
  }) })
13055
13112
  ]
13056
13113
  }
13057
13114
  ),
13058
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-t border-hairline px-lg py-md", children: [
13059
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "min-w-0 flex-1 text-caption text-body", children: currentStep ? currentStep.reason : "Replay a sample transaction to watch the path." }),
13060
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex shrink-0 items-center gap-sm", children: [
13061
- settled ? /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("span", { className: "inline-flex items-center gap-xs rounded-full bg-semantic-success-soft px-sm py-xxs text-caption text-semantic-success", children: [
13062
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "check", size: 11, strokeWidth: 2 }),
13115
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex shrink-0 flex-wrap items-center justify-between gap-md border-t border-hairline px-lg py-md", children: [
13116
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "min-w-0 flex-1 text-caption text-body", children: currentStep ? currentStep.reason : "Replay a sample transaction to watch the path." }),
13117
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex shrink-0 items-center gap-sm", children: [
13118
+ settled ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "inline-flex items-center gap-xs rounded-full bg-semantic-success-soft px-sm py-xxs text-caption text-semantic-success", children: [
13119
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "check", size: 11, strokeWidth: 2 }),
13063
13120
  "Settlement"
13064
13121
  ] }) : null,
13065
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13122
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13066
13123
  CanvasMinimap,
13067
13124
  {
13068
13125
  blocks: minimapBlocks,
@@ -13076,8 +13133,8 @@ var PaymentRoutingCanvas = React63.forwardRef(
13076
13133
  }
13077
13134
  }
13078
13135
  ),
13079
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "inline-flex items-center gap-xxs rounded-md border border-hairline bg-surface p-xxs shadow-sm", children: [
13080
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13136
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "inline-flex items-center gap-xxs rounded-md border border-hairline bg-surface p-xxs shadow-sm", children: [
13137
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13081
13138
  Button,
13082
13139
  {
13083
13140
  variant: "bare",
@@ -13085,10 +13142,10 @@ var PaymentRoutingCanvas = React63.forwardRef(
13085
13142
  "aria-label": "Zoom out",
13086
13143
  onClick: () => setZoom((current) => Math.max(current - 0.1, 0.6)),
13087
13144
  className: "size-7 rounded-sm text-body hover:bg-surface-soft",
13088
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "minus", size: 14, strokeWidth: 2 })
13145
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "minus", size: 14, strokeWidth: 2 })
13089
13146
  }
13090
13147
  ),
13091
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13148
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13092
13149
  Button,
13093
13150
  {
13094
13151
  variant: "bare",
@@ -13096,10 +13153,10 @@ var PaymentRoutingCanvas = React63.forwardRef(
13096
13153
  "aria-label": "Zoom in",
13097
13154
  onClick: () => setZoom((current) => Math.min(current + 0.1, 1.6)),
13098
13155
  className: "size-7 rounded-sm text-body hover:bg-surface-soft",
13099
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "plus", size: 14, strokeWidth: 2 })
13156
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "plus", size: 14, strokeWidth: 2 })
13100
13157
  }
13101
13158
  ),
13102
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13159
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13103
13160
  Button,
13104
13161
  {
13105
13162
  variant: "bare",
@@ -13110,19 +13167,19 @@ var PaymentRoutingCanvas = React63.forwardRef(
13110
13167
  setPan({ x: 0, y: 0 });
13111
13168
  },
13112
13169
  className: "size-7 rounded-sm text-body hover:bg-surface-soft",
13113
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "layers", size: 14, strokeWidth: 2 })
13170
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "layers", size: 14, strokeWidth: 2 })
13114
13171
  }
13115
13172
  )
13116
13173
  ] })
13117
13174
  ] })
13118
13175
  ] })
13119
13176
  ] }),
13120
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13177
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13121
13178
  "div",
13122
13179
  {
13123
13180
  className: "flex min-h-0 shrink-0 flex-col self-stretch border-l border-hairline",
13124
13181
  style: { width: PANEL_W },
13125
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13182
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13126
13183
  NodeConfigPanel,
13127
13184
  {
13128
13185
  open: panelOpen,
@@ -13142,7 +13199,7 @@ var PaymentRoutingCanvas = React63.forwardRef(
13142
13199
  )
13143
13200
  ] }),
13144
13201
  ReactDOM10.createPortal(
13145
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
13202
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13146
13203
  "div",
13147
13204
  {
13148
13205
  id: "routing-validation-summary",
@@ -13156,27 +13213,27 @@ var PaymentRoutingCanvas = React63.forwardRef(
13156
13213
  right: anchor.right,
13157
13214
  zIndex: "var(--z-popover, 1300)"
13158
13215
  },
13159
- className: cn54(
13216
+ className: cn55(
13160
13217
  "w-80 origin-top rounded-md border border-hairline bg-surface shadow-modal",
13161
13218
  "transition duration-200 ease-out",
13162
13219
  issuesOpen ? "pointer-events-auto translate-y-0 scale-100 opacity-100" : "pointer-events-none -translate-y-1 scale-95 opacity-0"
13163
13220
  ),
13164
13221
  children: [
13165
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "border-b border-hairline-soft px-md py-sm text-micro-cap text-muted", children: "Validation" }),
13166
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("ul", { className: "max-h-64 overflow-y-auto overscroll-contain p-xs", children: issues.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("li", { className: "px-sm py-sm text-caption text-muted", children: "Every rule resolves to a processor." }) : issues.map((issue) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-start gap-sm rounded-sm px-sm py-sm hover:bg-surface-soft", children: [
13167
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13222
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "border-b border-hairline-soft px-md py-sm text-micro-cap text-muted", children: "Validation" }),
13223
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("ul", { className: "max-h-64 overflow-y-auto overscroll-contain p-xs", children: issues.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("li", { className: "px-sm py-sm text-caption text-muted", children: "Every rule resolves to a processor." }) : issues.map((issue) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-start gap-sm rounded-sm px-sm py-sm hover:bg-surface-soft", children: [
13224
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13168
13225
  Icon,
13169
13226
  {
13170
13227
  name: "triangle",
13171
13228
  size: 12,
13172
13229
  strokeWidth: 2,
13173
- className: cn54(
13230
+ className: cn55(
13174
13231
  "mt-xxs shrink-0",
13175
13232
  issue.kind === "conflict" ? "text-semantic-error" : "text-semantic-warning"
13176
13233
  )
13177
13234
  }
13178
13235
  ),
13179
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "min-w-0 text-caption text-body", children: issue.message })
13236
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "min-w-0 text-caption text-body", children: issue.message })
13180
13237
  ] }) }, issue.id)) })
13181
13238
  ]
13182
13239
  }
@@ -13191,11 +13248,11 @@ var PaymentRoutingCanvas = React63.forwardRef(
13191
13248
  PaymentRoutingCanvas.displayName = "PaymentRoutingCanvas";
13192
13249
 
13193
13250
  // virtual-pkg:src/atoms/PricingTable/PricingTable.tsx
13194
- var React66 = __toESM(require("react"));
13251
+ var React67 = __toESM(require("react"));
13195
13252
 
13196
13253
  // virtual-pkg:src/atoms/PricingTableDesktop/PricingTableDesktop.tsx
13197
- var React64 = __toESM(require("react"));
13198
- var import_jsx_runtime64 = require("react/jsx-runtime");
13254
+ var React65 = __toESM(require("react"));
13255
+ var import_jsx_runtime65 = require("react/jsx-runtime");
13199
13256
  var DEFAULT_TIERS = [
13200
13257
  {
13201
13258
  id: "starter",
@@ -13251,8 +13308,8 @@ var DEFAULT_TIERS = [
13251
13308
  }
13252
13309
  ];
13253
13310
  var TABULAR = { fontFeatureSettings: '"tnum"' };
13254
- var cn55 = (...values) => values.filter(Boolean).join(" ");
13255
- var PricingTableDesktop = React64.forwardRef(
13311
+ var cn56 = (...values) => values.filter(Boolean).join(" ");
13312
+ var PricingTableDesktop = React65.forwardRef(
13256
13313
  ({
13257
13314
  title = "Pricing table",
13258
13315
  subtitle,
@@ -13261,60 +13318,60 @@ var PricingTableDesktop = React64.forwardRef(
13261
13318
  className,
13262
13319
  ...rest
13263
13320
  }, ref) => {
13264
- const headingId = React64.useId();
13265
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13321
+ const headingId = React65.useId();
13322
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
13266
13323
  "section",
13267
13324
  {
13268
13325
  ref,
13269
13326
  "aria-labelledby": headingId,
13270
- className: cn55("w-full bg-canvas px-base py-xl", className),
13327
+ className: cn56("w-full bg-canvas px-base py-xl", className),
13271
13328
  ...rest,
13272
13329
  children: [
13273
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex w-full flex-col gap-sm px-sm pb-lg", children: [
13274
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h2", { id: headingId, className: "text-display-lg text-ink", children: title }),
13275
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-body-md text-muted", children: subtitle }) : null
13330
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex w-full flex-col gap-sm px-sm pb-lg", children: [
13331
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { id: headingId, className: "text-display-lg text-ink", children: title }),
13332
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-body-md text-muted", children: subtitle }) : null
13276
13333
  ] }),
13277
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-full rounded-xl bg-surface-soft p-base lg:p-xl", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("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) => {
13334
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-full rounded-xl bg-surface-soft p-base lg:p-xl", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("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) => {
13278
13335
  const featured = Boolean(tier.featured);
13279
13336
  const tierHeadingId = `${headingId}-${tier.id}`;
13280
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13337
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
13281
13338
  "article",
13282
13339
  {
13283
13340
  "aria-labelledby": tierHeadingId,
13284
13341
  "data-featured": featured ? "true" : void 0,
13285
- className: cn55(
13342
+ className: cn56(
13286
13343
  "flex h-full flex-col rounded-lg border p-lg transition duration-200 ease-out md:col-span-3",
13287
13344
  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"
13288
13345
  ),
13289
13346
  children: [
13290
- tier.badge ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-md flex", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Badge, { variant: "soft", tone: "info", size: "sm", children: tier.badge }) }) : null,
13291
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13347
+ tier.badge ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "mb-md flex", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge, { variant: "soft", tone: "info", size: "sm", children: tier.badge }) }) : null,
13348
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13292
13349
  "h3",
13293
13350
  {
13294
13351
  id: tierHeadingId,
13295
- className: cn55(
13352
+ className: cn56(
13296
13353
  "text-heading-lg",
13297
13354
  featured ? "text-on-primary" : "text-ink"
13298
13355
  ),
13299
13356
  children: tier.name
13300
13357
  }
13301
13358
  ),
13302
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("p", { className: "mt-md flex items-baseline gap-sm whitespace-nowrap", children: [
13303
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13359
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "mt-md flex items-baseline gap-sm whitespace-nowrap", children: [
13360
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13304
13361
  "span",
13305
13362
  {
13306
13363
  style: TABULAR,
13307
- className: cn55(
13364
+ className: cn56(
13308
13365
  "text-display-md",
13309
13366
  featured ? "text-on-primary" : "text-ink"
13310
13367
  ),
13311
13368
  children: tier.price
13312
13369
  }
13313
13370
  ),
13314
- tier.period ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13371
+ tier.period ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
13315
13372
  "span",
13316
13373
  {
13317
- className: cn55(
13374
+ className: cn56(
13318
13375
  "text-body-sm",
13319
13376
  featured ? "text-on-primary/70" : "text-muted"
13320
13377
  ),
@@ -13325,22 +13382,22 @@ var PricingTableDesktop = React64.forwardRef(
13325
13382
  }
13326
13383
  ) : null
13327
13384
  ] }),
13328
- featured ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13385
+ featured ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13329
13386
  "div",
13330
13387
  {
13331
13388
  "aria-hidden": "true",
13332
13389
  className: "my-lg h-px w-full bg-on-primary/20"
13333
13390
  }
13334
- ) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Divider, { decorative: true, className: "my-lg" }),
13335
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("ul", { className: "flex flex-col gap-base", children: tier.features.map((feature) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13391
+ ) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Divider, { decorative: true, className: "my-lg" }),
13392
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("ul", { className: "flex flex-col gap-base", children: tier.features.map((feature) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
13336
13393
  "li",
13337
13394
  {
13338
- className: cn55(
13395
+ className: cn56(
13339
13396
  "flex items-start gap-md text-body-md",
13340
13397
  featured ? "text-on-primary" : "text-body"
13341
13398
  ),
13342
13399
  children: [
13343
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13400
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13344
13401
  Icon,
13345
13402
  {
13346
13403
  name: "check",
@@ -13350,13 +13407,13 @@ var PricingTableDesktop = React64.forwardRef(
13350
13407
  className: "mt-xxs"
13351
13408
  }
13352
13409
  ),
13353
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "min-w-0", children: feature })
13410
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "min-w-0", children: feature })
13354
13411
  ]
13355
13412
  },
13356
13413
  feature
13357
13414
  )) }),
13358
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "mt-auto flex flex-col gap-sm pt-xl", children: [
13359
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13415
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "mt-auto flex flex-col gap-sm pt-xl", children: [
13416
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13360
13417
  Button,
13361
13418
  {
13362
13419
  variant: featured ? "primary" : "outline-brand",
@@ -13367,7 +13424,7 @@ var PricingTableDesktop = React64.forwardRef(
13367
13424
  children: tier.primaryAction
13368
13425
  }
13369
13426
  ),
13370
- tier.secondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13427
+ tier.secondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13371
13428
  Button,
13372
13429
  {
13373
13430
  variant: "inverse-outline",
@@ -13392,8 +13449,8 @@ var PricingTableDesktop = React64.forwardRef(
13392
13449
  PricingTableDesktop.displayName = "PricingTableDesktop";
13393
13450
 
13394
13451
  // virtual-pkg:src/atoms/PricingTableMobile/PricingTableMobile.tsx
13395
- var React65 = __toESM(require("react"));
13396
- var import_jsx_runtime65 = require("react/jsx-runtime");
13452
+ var React66 = __toESM(require("react"));
13453
+ var import_jsx_runtime66 = require("react/jsx-runtime");
13397
13454
  var DEFAULT_PLANS = [
13398
13455
  { id: "starter", name: "Starter", price: "$0.00", period: "mo" },
13399
13456
  { id: "growth", name: "Growth", price: "$49.00", period: "mo" },
@@ -13408,8 +13465,8 @@ var DEFAULT_PLANS = [
13408
13465
  { id: "enterprise", name: "Enterprise", price: "Custom" }
13409
13466
  ];
13410
13467
  var TABULAR2 = { fontFeatureSettings: '"tnum"' };
13411
- var cn56 = (...values) => values.filter(Boolean).join(" ");
13412
- var PricingTableMobile = React65.forwardRef(
13468
+ var cn57 = (...values) => values.filter(Boolean).join(" ");
13469
+ var PricingTableMobile = React66.forwardRef(
13413
13470
  ({
13414
13471
  title,
13415
13472
  subtitle,
@@ -13420,19 +13477,19 @@ var PricingTableMobile = React65.forwardRef(
13420
13477
  className,
13421
13478
  ...rest
13422
13479
  }, ref) => {
13423
- const headingId = React65.useId();
13424
- const [innerSelected, setInnerSelected] = React65.useState(void 0);
13480
+ const headingId = React66.useId();
13481
+ const [innerSelected, setInnerSelected] = React66.useState(void 0);
13425
13482
  const activeId = selectedId ?? innerSelected;
13426
13483
  const handleSelect = (planId) => {
13427
13484
  setInnerSelected(planId);
13428
13485
  onSelect?.(planId);
13429
13486
  };
13430
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ref, className: cn56("w-full", className), ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "mx-auto flex w-full max-w-md flex-col gap-md", children: [
13431
- title || subtitle ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-xxs px-sm pb-xs", children: [
13432
- title ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { id: headingId, className: "text-heading-md text-ink", children: title }) : null,
13433
- subtitle ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-body-sm text-muted", children: subtitle }) : null
13487
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { ref, className: cn57("w-full", className), ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "mx-auto flex w-full max-w-md flex-col gap-md", children: [
13488
+ title || subtitle ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-xxs px-sm pb-xs", children: [
13489
+ title ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("h2", { id: headingId, className: "text-heading-md text-ink", children: title }) : null,
13490
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-body-sm text-muted", children: subtitle }) : null
13434
13491
  ] }) : null,
13435
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13492
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
13436
13493
  "div",
13437
13494
  {
13438
13495
  role: "group",
@@ -13442,7 +13499,7 @@ var PricingTableMobile = React65.forwardRef(
13442
13499
  children: plans.map((plan) => {
13443
13500
  const featured = Boolean(plan.featured);
13444
13501
  const selected = activeId === plan.id;
13445
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
13502
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
13446
13503
  Button,
13447
13504
  {
13448
13505
  variant: "card-row",
@@ -13454,36 +13511,36 @@ var PricingTableMobile = React65.forwardRef(
13454
13511
  onClick: () => handleSelect(plan.id),
13455
13512
  className: "group",
13456
13513
  children: [
13457
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col gap-xs", children: [
13458
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "flex min-w-0 items-center gap-sm", children: [
13459
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13514
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col gap-xs", children: [
13515
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("span", { className: "flex min-w-0 items-center gap-sm", children: [
13516
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
13460
13517
  "span",
13461
13518
  {
13462
- className: cn56(
13519
+ className: cn57(
13463
13520
  "truncate text-body-lg",
13464
13521
  featured ? "text-on-primary" : "text-body"
13465
13522
  ),
13466
13523
  children: plan.name
13467
13524
  }
13468
13525
  ),
13469
- plan.badge ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge, { variant: "soft", tone: "info", size: "sm", children: plan.badge }) : null
13526
+ plan.badge ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Badge, { variant: "soft", tone: "info", size: "sm", children: plan.badge }) : null
13470
13527
  ] }),
13471
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "flex items-baseline gap-xxs whitespace-nowrap", children: [
13472
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13528
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("span", { className: "flex items-baseline gap-xxs whitespace-nowrap", children: [
13529
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
13473
13530
  "span",
13474
13531
  {
13475
13532
  style: TABULAR2,
13476
- className: cn56(
13533
+ className: cn57(
13477
13534
  "text-display-lg",
13478
13535
  featured ? "text-on-primary" : "text-ink"
13479
13536
  ),
13480
13537
  children: plan.price
13481
13538
  }
13482
13539
  ),
13483
- plan.period ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
13540
+ plan.period ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
13484
13541
  "span",
13485
13542
  {
13486
- className: cn56(
13543
+ className: cn57(
13487
13544
  "text-heading-md",
13488
13545
  featured ? "text-on-primary/85" : "text-body"
13489
13546
  ),
@@ -13495,7 +13552,7 @@ var PricingTableMobile = React65.forwardRef(
13495
13552
  ) : null
13496
13553
  ] })
13497
13554
  ] }),
13498
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
13555
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
13499
13556
  Icon,
13500
13557
  {
13501
13558
  name: "chevron-right",
@@ -13518,7 +13575,7 @@ var PricingTableMobile = React65.forwardRef(
13518
13575
  PricingTableMobile.displayName = "PricingTableMobile";
13519
13576
 
13520
13577
  // virtual-pkg:src/atoms/PricingTable/PricingTable.tsx
13521
- var import_jsx_runtime66 = require("react/jsx-runtime");
13578
+ var import_jsx_runtime67 = require("react/jsx-runtime");
13522
13579
  var DEFAULT_TIERS2 = [
13523
13580
  {
13524
13581
  id: "starter",
@@ -13555,7 +13612,7 @@ var DEFAULT_TIERS2 = [
13555
13612
  primaryAction: "Contact sales"
13556
13613
  }
13557
13614
  ];
13558
- var cn57 = (...values) => values.filter(Boolean).join(" ");
13615
+ var cn58 = (...values) => values.filter(Boolean).join(" ");
13559
13616
  var toPlan = (tier) => ({
13560
13617
  id: tier.id,
13561
13618
  name: tier.name,
@@ -13564,7 +13621,7 @@ var toPlan = (tier) => ({
13564
13621
  badge: tier.badge,
13565
13622
  featured: tier.featured
13566
13623
  });
13567
- var PricingTable = React66.forwardRef(
13624
+ var PricingTable = React67.forwardRef(
13568
13625
  ({
13569
13626
  title = "Pricing table",
13570
13627
  subtitle,
@@ -13579,12 +13636,12 @@ var PricingTable = React66.forwardRef(
13579
13636
  className,
13580
13637
  ...rest
13581
13638
  }, ref) => {
13582
- const derivedPlans = React66.useMemo(
13639
+ const derivedPlans = React67.useMemo(
13583
13640
  () => plans ?? tiers.map(toPlan),
13584
13641
  [plans, tiers]
13585
13642
  );
13586
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { ref, className: cn57("w-full", className), ...rest, children: [
13587
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: cn57("hidden w-full md:block", desktopClassName), children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
13643
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { ref, className: cn58("w-full", className), ...rest, children: [
13644
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: cn58("hidden w-full md:block", desktopClassName), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
13588
13645
  PricingTableDesktop,
13589
13646
  {
13590
13647
  title,
@@ -13593,7 +13650,7 @@ var PricingTable = React66.forwardRef(
13593
13650
  onAction
13594
13651
  }
13595
13652
  ) }),
13596
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: cn57("w-full md:hidden", mobileClassName), children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
13653
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: cn58("w-full md:hidden", mobileClassName), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
13597
13654
  PricingTableMobile,
13598
13655
  {
13599
13656
  title,
@@ -13610,10 +13667,10 @@ var PricingTable = React66.forwardRef(
13610
13667
  PricingTable.displayName = "PricingTable";
13611
13668
 
13612
13669
  // virtual-pkg:src/atoms/ProductCard/ProductCard.tsx
13613
- var React67 = __toESM(require("react"));
13614
- var import_jsx_runtime67 = require("react/jsx-runtime");
13615
- var cn58 = (...values) => values.filter(Boolean).join(" ");
13616
- var ProductCard = React67.forwardRef(
13670
+ var React68 = __toESM(require("react"));
13671
+ var import_jsx_runtime68 = require("react/jsx-runtime");
13672
+ var cn59 = (...values) => values.filter(Boolean).join(" ");
13673
+ var ProductCard = React68.forwardRef(
13617
13674
  ({
13618
13675
  title = "Payment link \u2014 Standard",
13619
13676
  status = "Live mode",
@@ -13628,13 +13685,13 @@ var ProductCard = React67.forwardRef(
13628
13685
  className,
13629
13686
  ...rest
13630
13687
  }, ref) => {
13631
- const titleId = React67.useId();
13632
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
13688
+ const titleId = React68.useId();
13689
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
13633
13690
  "article",
13634
13691
  {
13635
13692
  ref,
13636
13693
  "aria-labelledby": titleId,
13637
- className: cn58(
13694
+ className: cn59(
13638
13695
  "flex w-full flex-col rounded-lg border bg-surface p-xl",
13639
13696
  "transition duration-200 ease-out",
13640
13697
  elevated ? "border-hairline-strong shadow-md" : "border-hairline shadow-card",
@@ -13642,14 +13699,14 @@ var ProductCard = React67.forwardRef(
13642
13699
  ),
13643
13700
  ...rest,
13644
13701
  children: [
13645
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
13702
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
13646
13703
  "div",
13647
13704
  {
13648
13705
  "aria-hidden": "true",
13649
13706
  className: "rounded-md bg-gradient-to-b from-surface-soft to-surface-strong p-md",
13650
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "rounded-sm border border-hairline-soft bg-surface p-md shadow-sm", children: [
13651
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-sm", children: [
13652
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
13707
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "rounded-sm border border-hairline-soft bg-surface p-md shadow-sm", children: [
13708
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-sm", children: [
13709
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
13653
13710
  Icon,
13654
13711
  {
13655
13712
  name: icon,
@@ -13658,24 +13715,24 @@ var ProductCard = React67.forwardRef(
13658
13715
  className: "text-primary"
13659
13716
  }
13660
13717
  ),
13661
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "min-w-0 truncate text-body-sm text-ink", children: mockupLabel })
13718
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "min-w-0 truncate text-body-sm text-ink", children: mockupLabel })
13662
13719
  ] }),
13663
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "mt-md flex flex-col gap-sm", children: [
13664
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "h-2 w-full rounded-full bg-skeleton" }),
13665
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "h-2 w-4/5 rounded-full bg-skeleton" }),
13666
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "h-2 w-1/2 rounded-full bg-skeleton" })
13720
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "mt-md flex flex-col gap-sm", children: [
13721
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "h-2 w-full rounded-full bg-skeleton" }),
13722
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "h-2 w-4/5 rounded-full bg-skeleton" }),
13723
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "h-2 w-1/2 rounded-full bg-skeleton" })
13667
13724
  ] }),
13668
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "mt-md block h-5 w-full rounded-full bg-primary" })
13725
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "mt-md block h-5 w-full rounded-full bg-primary" })
13669
13726
  ] })
13670
13727
  }
13671
13728
  ),
13672
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("h3", { id: titleId, className: "mt-lg text-heading-lg text-ink text-balance", children: title }),
13673
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "mt-md", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Badge, { variant: "soft", tone: "info", size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-micro-cap", children: status }) }) }),
13674
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("p", { className: "mt-md flex flex-wrap items-baseline gap-sm", children: [
13675
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-display-md text-ink tabular-nums", children: amount }),
13676
- period ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-body-lg text-muted", children: period }) : null
13729
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("h3", { id: titleId, className: "mt-lg text-heading-lg text-ink text-balance", children: title }),
13730
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "mt-md", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Badge, { variant: "soft", tone: "info", size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-micro-cap", children: status }) }) }),
13731
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("p", { className: "mt-md flex flex-wrap items-baseline gap-sm", children: [
13732
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-display-md text-ink tabular-nums", children: amount }),
13733
+ period ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-body-lg text-muted", children: period }) : null
13677
13734
  ] }),
13678
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "mt-auto pt-xl", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
13735
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "mt-auto pt-xl", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
13679
13736
  Button,
13680
13737
  {
13681
13738
  variant: "primary",
@@ -13694,9 +13751,9 @@ var ProductCard = React67.forwardRef(
13694
13751
  ProductCard.displayName = "ProductCard";
13695
13752
 
13696
13753
  // virtual-pkg:src/atoms/ProductCardGrid/ProductCardGrid.tsx
13697
- var React68 = __toESM(require("react"));
13698
- var import_jsx_runtime68 = require("react/jsx-runtime");
13699
- var cn59 = (...values) => values.filter(Boolean).join(" ");
13754
+ var React69 = __toESM(require("react"));
13755
+ var import_jsx_runtime69 = require("react/jsx-runtime");
13756
+ var cn60 = (...values) => values.filter(Boolean).join(" ");
13700
13757
  var DEFAULT_ITEMS5 = [
13701
13758
  {
13702
13759
  id: "standard",
@@ -13723,7 +13780,7 @@ var DEFAULT_ITEMS5 = [
13723
13780
  icon: "layers"
13724
13781
  }
13725
13782
  ];
13726
- var ProductCardGrid = React68.forwardRef(
13783
+ var ProductCardGrid = React69.forwardRef(
13727
13784
  ({
13728
13785
  heading = "Product card grid",
13729
13786
  description,
@@ -13734,27 +13791,27 @@ var ProductCardGrid = React68.forwardRef(
13734
13791
  className,
13735
13792
  ...rest
13736
13793
  }, ref) => {
13737
- const [internalSelected, setInternalSelected] = React68.useState(defaultSelectedId);
13794
+ const [internalSelected, setInternalSelected] = React69.useState(defaultSelectedId);
13738
13795
  const isControlled = selectedId !== void 0;
13739
13796
  const activeId = isControlled ? selectedId : internalSelected;
13740
- const headingId = React68.useId();
13797
+ const headingId = React69.useId();
13741
13798
  const handleSelect = (id) => {
13742
13799
  if (!isControlled) setInternalSelected(id);
13743
13800
  onSelect?.(id);
13744
13801
  };
13745
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
13802
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
13746
13803
  "section",
13747
13804
  {
13748
13805
  ref,
13749
13806
  "aria-labelledby": headingId,
13750
- className: cn59("w-full rounded-lg", className),
13807
+ className: cn60("w-full rounded-lg", className),
13751
13808
  ...rest,
13752
13809
  children: [
13753
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("h2", { id: headingId, className: "text-display-lg text-ink", children: heading }),
13754
- description ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "mt-sm max-w-2xl text-body-lg text-muted", children: description }) : null,
13755
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "mt-xl grid grid-cols-1 gap-gutter sm:grid-cols-2 md:grid-cols-3", children: items.map((item) => {
13810
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h2", { id: headingId, className: "text-display-lg text-ink", children: heading }),
13811
+ description ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "mt-sm max-w-2xl text-body-lg text-muted", children: description }) : null,
13812
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "mt-xl grid grid-cols-1 gap-gutter sm:grid-cols-2 md:grid-cols-3", children: items.map((item) => {
13756
13813
  const { id, className: itemClassName, ...cardProps } = item;
13757
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
13814
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
13758
13815
  ProductCard,
13759
13816
  {
13760
13817
  ...cardProps,
@@ -13776,9 +13833,9 @@ var ProductCardGrid = React68.forwardRef(
13776
13833
  ProductCardGrid.displayName = "ProductCardGrid";
13777
13834
 
13778
13835
  // virtual-pkg:src/atoms/ProgressBar/ProgressBar.tsx
13779
- var React69 = __toESM(require("react"));
13780
- var import_jsx_runtime69 = require("react/jsx-runtime");
13781
- var cn60 = (...values) => values.filter(Boolean).join(" ");
13836
+ var React70 = __toESM(require("react"));
13837
+ var import_jsx_runtime70 = require("react/jsx-runtime");
13838
+ var cn61 = (...values) => values.filter(Boolean).join(" ");
13782
13839
  var STATE_TEXT = {
13783
13840
  complete: "complete",
13784
13841
  current: "current step",
@@ -13818,7 +13875,7 @@ var segmentStyles = {
13818
13875
  neutral: "bg-hairline-strong"
13819
13876
  };
13820
13877
  var tabular3 = { fontVariantNumeric: "tabular-nums" };
13821
- var ProgressBar = React69.forwardRef(
13878
+ var ProgressBar = React70.forwardRef(
13822
13879
  ({
13823
13880
  variant = "segments",
13824
13881
  steps = [],
@@ -13834,14 +13891,14 @@ var ProgressBar = React69.forwardRef(
13834
13891
  ...rest
13835
13892
  }, ref) => {
13836
13893
  if (variant === "steps") {
13837
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
13894
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
13838
13895
  "div",
13839
13896
  {
13840
13897
  ref,
13841
- className: cn60("flex w-full items-center gap-lg", className),
13898
+ className: cn61("flex w-full items-center gap-lg", className),
13842
13899
  ...rest,
13843
13900
  children: [
13844
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
13901
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13845
13902
  "ol",
13846
13903
  {
13847
13904
  "aria-label": ariaLabel,
@@ -13852,42 +13909,42 @@ var ProgressBar = React69.forwardRef(
13852
13909
  children: steps.map((step, index) => {
13853
13910
  const state = step.state ?? "upcoming";
13854
13911
  const previous = index > 0 ? steps[index - 1] : void 0;
13855
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
13912
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
13856
13913
  "li",
13857
13914
  {
13858
13915
  "aria-current": state === "current" ? "step" : void 0,
13859
13916
  className: "relative flex flex-col items-center",
13860
13917
  children: [
13861
- previous ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
13918
+ previous ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13862
13919
  "span",
13863
13920
  {
13864
13921
  "aria-hidden": "true",
13865
- className: cn60(
13922
+ className: cn61(
13866
13923
  "absolute left-0 right-1/2 top-3.5 h-0.5 -translate-y-1/2 rounded-full transition-colors duration-200 ease-out",
13867
13924
  connectorColor(previous, step)
13868
13925
  )
13869
13926
  }
13870
13927
  ) : null,
13871
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("span", { className: "relative z-10 flex size-7 items-center justify-center", children: [
13872
- state === "current" ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
13928
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "relative z-10 flex size-7 items-center justify-center", children: [
13929
+ state === "current" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13873
13930
  "span",
13874
13931
  {
13875
13932
  "aria-hidden": "true",
13876
13933
  className: "absolute size-6 rounded-full bg-primary/15"
13877
13934
  }
13878
13935
  ) : null,
13879
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: cn60(nodeBase, nodeStyles[state]), children: state === "error" ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "x", size: 10, tone: "on-dark", strokeWidth: 3 }) : null })
13936
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: cn61(nodeBase, nodeStyles[state]), children: state === "error" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Icon, { name: "x", size: 10, tone: "on-dark", strokeWidth: 3 }) : null })
13880
13937
  ] }),
13881
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
13938
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
13882
13939
  "span",
13883
13940
  {
13884
- className: cn60(
13941
+ className: cn61(
13885
13942
  "mt-sm whitespace-nowrap text-center text-body-sm",
13886
13943
  labelStyles[state]
13887
13944
  ),
13888
13945
  children: [
13889
13946
  step.label,
13890
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "sr-only", children: ` (${STATE_TEXT[state]})` })
13947
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "sr-only", children: ` (${STATE_TEXT[state]})` })
13891
13948
  ]
13892
13949
  }
13893
13950
  )
@@ -13898,7 +13955,7 @@ var ProgressBar = React69.forwardRef(
13898
13955
  })
13899
13956
  }
13900
13957
  ),
13901
- status ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "shrink-0 text-micro-cap uppercase tracking-micro-cap text-muted", children: status }) : null
13958
+ status ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "shrink-0 text-micro-cap uppercase tracking-micro-cap text-muted", children: status }) : null
13902
13959
  ]
13903
13960
  }
13904
13961
  );
@@ -13906,20 +13963,20 @@ var ProgressBar = React69.forwardRef(
13906
13963
  const safeTotal = total > 0 ? total : 1;
13907
13964
  const counted = segments.reduce((sum, segment) => sum + segment.value, 0);
13908
13965
  const markerPercent = marker === void 0 ? null : Math.min(100, Math.max(0, marker / safeTotal * 100));
13909
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { ref, className: cn60("flex w-full flex-col", className), ...rest, children: [
13910
- valueLabel || valueDetail ? /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
13966
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { ref, className: cn61("flex w-full flex-col", className), ...rest, children: [
13967
+ valueLabel || valueDetail ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
13911
13968
  "div",
13912
13969
  {
13913
13970
  className: "mb-md flex items-baseline justify-end gap-xs text-right",
13914
13971
  style: tabular3,
13915
13972
  children: [
13916
- valueLabel ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-body-md text-ink", children: valueLabel }) : null,
13917
- valueDetail ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-body-md text-muted", children: valueDetail }) : null
13973
+ valueLabel ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-body-md text-ink", children: valueLabel }) : null,
13974
+ valueDetail ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-body-md text-muted", children: valueDetail }) : null
13918
13975
  ]
13919
13976
  }
13920
13977
  ) : null,
13921
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
13922
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
13978
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "relative", children: [
13979
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13923
13980
  "div",
13924
13981
  {
13925
13982
  role: "progressbar",
@@ -13928,11 +13985,11 @@ var ProgressBar = React69.forwardRef(
13928
13985
  "aria-valuemax": safeTotal,
13929
13986
  "aria-valuenow": counted,
13930
13987
  className: "flex h-3 w-full overflow-hidden rounded-full bg-surface-strong",
13931
- children: segments.map((segment, index) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
13988
+ children: segments.map((segment, index) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13932
13989
  "span",
13933
13990
  {
13934
13991
  "aria-hidden": "true",
13935
- className: cn60(
13992
+ className: cn61(
13936
13993
  "h-full transition-[width,background-color] duration-200 ease-out",
13937
13994
  segmentStyles[segment.tone ?? "primary"]
13938
13995
  ),
@@ -13944,7 +14001,7 @@ var ProgressBar = React69.forwardRef(
13944
14001
  ))
13945
14002
  }
13946
14003
  ),
13947
- markerPercent !== null ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
14004
+ markerPercent !== null ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13948
14005
  "span",
13949
14006
  {
13950
14007
  "aria-hidden": "true",
@@ -13953,26 +14010,26 @@ var ProgressBar = React69.forwardRef(
13953
14010
  }
13954
14011
  ) : null
13955
14012
  ] }),
13956
- showLegend && segments.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("ul", { className: "mt-lg flex list-none flex-wrap items-center gap-x-xl gap-y-sm p-0", children: segments.map((segment, index) => {
14013
+ showLegend && segments.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("ul", { className: "mt-lg flex list-none flex-wrap items-center gap-x-xl gap-y-sm p-0", children: segments.map((segment, index) => {
13957
14014
  const tone = segment.tone ?? "primary";
13958
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
14015
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
13959
14016
  "li",
13960
14017
  {
13961
14018
  className: "flex items-center gap-sm text-body-sm text-body",
13962
14019
  children: [
13963
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
14020
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
13964
14021
  "span",
13965
14022
  {
13966
14023
  "aria-hidden": "true",
13967
- className: cn60(
14024
+ className: cn61(
13968
14025
  "size-2.5 shrink-0 rounded-xs",
13969
14026
  segmentStyles[tone]
13970
14027
  )
13971
14028
  }
13972
14029
  ),
13973
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("span", { children: [
14030
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { children: [
13974
14031
  segment.label,
13975
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ml-xxs text-body", style: tabular3, children: segment.value.toLocaleString("en-US") })
14032
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "ml-xxs text-body", style: tabular3, children: segment.value.toLocaleString("en-US") })
13976
14033
  ] })
13977
14034
  ]
13978
14035
  },
@@ -13985,10 +14042,10 @@ var ProgressBar = React69.forwardRef(
13985
14042
  ProgressBar.displayName = "ProgressBar";
13986
14043
 
13987
14044
  // virtual-pkg:src/atoms/Radio/Radio.tsx
13988
- var React70 = __toESM(require("react"));
13989
- var import_jsx_runtime70 = require("react/jsx-runtime");
13990
- var cn61 = (...values) => values.filter(Boolean).join(" ");
13991
- var Radio = React70.forwardRef(
14045
+ var React71 = __toESM(require("react"));
14046
+ var import_jsx_runtime71 = require("react/jsx-runtime");
14047
+ var cn62 = (...values) => values.filter(Boolean).join(" ");
14048
+ var Radio = React71.forwardRef(
13992
14049
  ({
13993
14050
  label,
13994
14051
  description,
@@ -14004,23 +14061,23 @@ var Radio = React70.forwardRef(
14004
14061
  className,
14005
14062
  ...rest
14006
14063
  }, ref) => {
14007
- const [internalChecked, setInternalChecked] = React70.useState(defaultChecked);
14064
+ const [internalChecked, setInternalChecked] = React71.useState(defaultChecked);
14008
14065
  const isControlled = checked !== void 0;
14009
14066
  const isChecked = isControlled ? Boolean(checked) : internalChecked;
14010
- const generatedId = React70.useId();
14067
+ const generatedId = React71.useId();
14011
14068
  const inputId = id ?? `radio-${generatedId}`;
14012
14069
  const isCard = chrome === "card";
14013
14070
  const handleChange = (event) => {
14014
14071
  if (!isControlled) setInternalChecked(event.target.checked);
14015
14072
  onChange?.(event.target.value, event);
14016
14073
  };
14017
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
14074
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
14018
14075
  "label",
14019
14076
  {
14020
14077
  htmlFor: inputId,
14021
14078
  "data-state": isChecked ? "selected" : "unselected",
14022
14079
  "data-disabled": disabled ? "" : void 0,
14023
- className: cn61(
14080
+ className: cn62(
14024
14081
  "group/radio flex items-center gap-md transition duration-200 ease-out",
14025
14082
  isCard ? "w-full rounded-lg" : "w-auto",
14026
14083
  disabled ? "cursor-not-allowed" : "cursor-pointer",
@@ -14029,16 +14086,16 @@ var Radio = React70.forwardRef(
14029
14086
  className
14030
14087
  ),
14031
14088
  children: [
14032
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
14089
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
14033
14090
  "span",
14034
14091
  {
14035
- className: cn61(
14092
+ className: cn62(
14036
14093
  "relative flex shrink-0 items-center justify-center rounded-full border-2 bg-canvas transition-colors duration-200 ease-out",
14037
14094
  size === "sm" ? "size-4" : "size-5",
14038
14095
  disabled ? "border-hairline" : isChecked ? "border-primary" : invalid ? "border-semantic-error" : "border-hairline-strong group-hover/radio:border-primary-focus"
14039
14096
  ),
14040
14097
  children: [
14041
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
14098
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14042
14099
  "input",
14043
14100
  {
14044
14101
  ref,
@@ -14053,11 +14110,11 @@ var Radio = React70.forwardRef(
14053
14110
  ...rest
14054
14111
  }
14055
14112
  ),
14056
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
14113
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14057
14114
  "span",
14058
14115
  {
14059
14116
  "aria-hidden": "true",
14060
- className: cn61(
14117
+ className: cn62(
14061
14118
  "rounded-full transition duration-200 ease-out",
14062
14119
  size === "sm" ? "size-1.5" : "size-2",
14063
14120
  disabled ? "bg-primary-disabled" : isChecked ? "scale-100 bg-primary opacity-100" : "scale-50 opacity-0"
@@ -14067,21 +14124,21 @@ var Radio = React70.forwardRef(
14067
14124
  ]
14068
14125
  }
14069
14126
  ),
14070
- label || description ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
14071
- label ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
14127
+ label || description ? /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs", children: [
14128
+ label ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14072
14129
  "span",
14073
14130
  {
14074
- className: cn61(
14131
+ className: cn62(
14075
14132
  "text-label truncate transition-colors duration-200 ease-out",
14076
14133
  disabled ? "text-muted" : isChecked ? "text-ink" : "text-body"
14077
14134
  ),
14078
14135
  children: label
14079
14136
  }
14080
14137
  ) : null,
14081
- description ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
14138
+ description ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14082
14139
  "span",
14083
14140
  {
14084
- className: cn61(
14141
+ className: cn62(
14085
14142
  "text-caption truncate transition-colors duration-200 ease-out",
14086
14143
  disabled ? "text-muted-soft" : "text-muted"
14087
14144
  ),
@@ -14089,11 +14146,11 @@ var Radio = React70.forwardRef(
14089
14146
  }
14090
14147
  ) : null
14091
14148
  ] }) : null,
14092
- valueLabel ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
14149
+ valueLabel ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14093
14150
  "span",
14094
14151
  {
14095
14152
  style: { fontVariantNumeric: "tabular-nums" },
14096
- className: cn61(
14153
+ className: cn62(
14097
14154
  "shrink-0 text-label transition-colors duration-200 ease-out",
14098
14155
  disabled ? "text-muted-soft" : isChecked ? "text-ink" : "text-body"
14099
14156
  ),
@@ -14108,9 +14165,9 @@ var Radio = React70.forwardRef(
14108
14165
  Radio.displayName = "Radio";
14109
14166
 
14110
14167
  // virtual-pkg:src/atoms/Rating/Rating.tsx
14111
- var React71 = __toESM(require("react"));
14112
- var import_jsx_runtime71 = require("react/jsx-runtime");
14113
- var cn62 = (...values) => values.filter(Boolean).join(" ");
14168
+ var React72 = __toESM(require("react"));
14169
+ var import_jsx_runtime72 = require("react/jsx-runtime");
14170
+ var cn63 = (...values) => values.filter(Boolean).join(" ");
14114
14171
  var STAR_PX = { sm: 16, md: 20, lg: 30 };
14115
14172
  var STAR_GAP = {
14116
14173
  sm: "gap-xxs",
@@ -14125,14 +14182,14 @@ var SCORE_TEXT = {
14125
14182
  var clamp = (input, min, max) => Math.min(max, Math.max(min, input));
14126
14183
  var formatScore = (input, precision) => input.toFixed(Math.max(0, precision));
14127
14184
  var tabular4 = { fontVariantNumeric: "tabular-nums" };
14128
- var StarGlyph = ({ fill, px }) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
14185
+ var StarGlyph = ({ fill, px }) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
14129
14186
  "span",
14130
14187
  {
14131
14188
  "aria-hidden": "true",
14132
14189
  className: "relative inline-flex shrink-0",
14133
14190
  style: { width: px, height: px },
14134
14191
  children: [
14135
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14192
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14136
14193
  Icon,
14137
14194
  {
14138
14195
  name: "star",
@@ -14141,12 +14198,12 @@ var StarGlyph = ({ fill, px }) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)
14141
14198
  style: { color: "var(--color-hairline-strong)" }
14142
14199
  }
14143
14200
  ),
14144
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14201
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14145
14202
  "span",
14146
14203
  {
14147
14204
  className: "absolute inset-y-0 left-0 overflow-hidden transition-[width] duration-200 ease-out",
14148
14205
  style: { width: `${fill * 100}%` },
14149
- children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14206
+ children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14150
14207
  Icon,
14151
14208
  {
14152
14209
  name: "star",
@@ -14161,7 +14218,7 @@ var StarGlyph = ({ fill, px }) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)
14161
14218
  ]
14162
14219
  }
14163
14220
  );
14164
- var Rating = React71.forwardRef(
14221
+ var Rating = React72.forwardRef(
14165
14222
  ({
14166
14223
  value,
14167
14224
  defaultValue,
@@ -14181,10 +14238,10 @@ var Rating = React71.forwardRef(
14181
14238
  className,
14182
14239
  ...rest
14183
14240
  }, ref) => {
14184
- const [uncontrolled, setUncontrolled] = React71.useState(
14241
+ const [uncontrolled, setUncontrolled] = React72.useState(
14185
14242
  defaultValue ?? value ?? 0
14186
14243
  );
14187
- const [hover, setHover] = React71.useState(null);
14244
+ const [hover, setHover] = React72.useState(null);
14188
14245
  const isControlled = value !== void 0;
14189
14246
  const committed = clamp(isControlled ? value : uncontrolled, 0, max);
14190
14247
  const interactive = !readOnly;
@@ -14223,10 +14280,10 @@ var Rating = React71.forwardRef(
14223
14280
  commit(next);
14224
14281
  };
14225
14282
  const px = STAR_PX[size];
14226
- const starRow = /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14283
+ const starRow = /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14227
14284
  "div",
14228
14285
  {
14229
- className: cn62("inline-flex items-center", STAR_GAP[size]),
14286
+ className: cn63("inline-flex items-center", STAR_GAP[size]),
14230
14287
  ...interactive ? {
14231
14288
  role: "radiogroup",
14232
14289
  "aria-label": label,
@@ -14241,9 +14298,9 @@ var Rating = React71.forwardRef(
14241
14298
  children: Array.from({ length: Math.max(1, max) }, (_, index) => {
14242
14299
  const fill = clamp(shown - index, 0, 1);
14243
14300
  if (!interactive) {
14244
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(StarGlyph, { fill, px }, index);
14301
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(StarGlyph, { fill, px }, index);
14245
14302
  }
14246
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14303
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14247
14304
  Button,
14248
14305
  {
14249
14306
  variant: "bare",
@@ -14256,43 +14313,43 @@ var Rating = React71.forwardRef(
14256
14313
  onMouseEnter: () => setHover(index + 1),
14257
14314
  onFocus: () => setHover(index + 1),
14258
14315
  className: "text-primary focus-visible:ring-focus-blue focus-visible:ring-offset-0",
14259
- children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(StarGlyph, { fill, px })
14316
+ children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(StarGlyph, { fill, px })
14260
14317
  },
14261
14318
  index
14262
14319
  );
14263
14320
  })
14264
14321
  }
14265
14322
  );
14266
- const scoreBlock = showValue || typeof count === "number" ? /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex flex-wrap items-baseline gap-sm", style: tabular4, children: [
14267
- showValue ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14323
+ const scoreBlock = showValue || typeof count === "number" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex flex-wrap items-baseline gap-sm", style: tabular4, children: [
14324
+ showValue ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14268
14325
  "span",
14269
14326
  {
14270
14327
  "aria-hidden": "true",
14271
- className: cn62("text-ink", SCORE_TEXT[size]),
14328
+ className: cn63("text-ink", SCORE_TEXT[size]),
14272
14329
  children: formatScore(shown, precision)
14273
14330
  }
14274
14331
  ) : null,
14275
- typeof count === "number" ? /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { "aria-hidden": "true", className: "text-body-sm text-muted", children: [
14332
+ typeof count === "number" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("span", { "aria-hidden": "true", className: "text-body-sm text-muted", children: [
14276
14333
  "(",
14277
14334
  count.toLocaleString("en-US"),
14278
14335
  ")"
14279
14336
  ] }) : null
14280
14337
  ] }) : null;
14281
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
14338
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
14282
14339
  "div",
14283
14340
  {
14284
14341
  ref,
14285
- className: cn62("flex w-full flex-col items-start", className),
14342
+ className: cn63("flex w-full flex-col items-start", className),
14286
14343
  ...rest,
14287
14344
  children: [
14288
- interactive ? null : /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { className: "sr-only", children: [
14345
+ interactive ? null : /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("span", { className: "sr-only", children: [
14289
14346
  `${formatScore(committed, precision)} out of ${max} stars`,
14290
14347
  typeof count === "number" ? ` from ${count.toLocaleString("en-US")} ${countLabel}` : ""
14291
14348
  ] }),
14292
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
14349
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
14293
14350
  "div",
14294
14351
  {
14295
- className: cn62(
14352
+ className: cn63(
14296
14353
  "flex w-full",
14297
14354
  valuePlacement === "inline" ? "flex-wrap items-center gap-sm" : "flex-col items-start gap-sm"
14298
14355
  ),
@@ -14302,14 +14359,14 @@ var Rating = React71.forwardRef(
14302
14359
  ]
14303
14360
  }
14304
14361
  ),
14305
- caption ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "mt-xs text-body-sm text-muted", children: caption }) : null,
14306
- breakdown && breakdown.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("ul", { className: "mt-lg flex w-full list-none flex-col gap-md p-0", children: breakdown.map((item) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
14362
+ caption ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "mt-xs text-body-sm text-muted", children: caption }) : null,
14363
+ breakdown && breakdown.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("ul", { className: "mt-lg flex w-full list-none flex-col gap-md p-0", children: breakdown.map((item) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
14307
14364
  "li",
14308
14365
  {
14309
14366
  className: "grid grid-cols-[minmax(0,5.5rem)_minmax(0,1fr)_auto] items-center gap-lg",
14310
14367
  children: [
14311
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "truncate text-body-sm text-ink", children: item.label }),
14312
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14368
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "truncate text-body-sm text-ink", children: item.label }),
14369
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14313
14370
  ProgressBar,
14314
14371
  {
14315
14372
  ariaLabel: `${item.label}: ${formatScore(clamp(item.value, 0, max), precision)} out of ${max}`,
@@ -14317,7 +14374,7 @@ var Rating = React71.forwardRef(
14317
14374
  total: max
14318
14375
  }
14319
14376
  ),
14320
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
14377
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14321
14378
  "span",
14322
14379
  {
14323
14380
  className: "text-body-sm text-ink",
@@ -14337,10 +14394,10 @@ var Rating = React71.forwardRef(
14337
14394
  Rating.displayName = "Rating";
14338
14395
 
14339
14396
  // virtual-pkg:src/atoms/SearchBar/SearchBar.tsx
14340
- var React72 = __toESM(require("react"));
14341
- var import_jsx_runtime72 = require("react/jsx-runtime");
14342
- var cn63 = (...values) => values.filter(Boolean).join(" ");
14343
- var SearchBar = React72.forwardRef(
14397
+ var React73 = __toESM(require("react"));
14398
+ var import_jsx_runtime73 = require("react/jsx-runtime");
14399
+ var cn64 = (...values) => values.filter(Boolean).join(" ");
14400
+ var SearchBar = React73.forwardRef(
14344
14401
  ({
14345
14402
  ariaLabel = "Search",
14346
14403
  placeholder = "Search payments",
@@ -14355,7 +14412,7 @@ var SearchBar = React72.forwardRef(
14355
14412
  className,
14356
14413
  ...rest
14357
14414
  }, ref) => {
14358
- const [internalQuery, setInternalQuery] = React72.useState(
14415
+ const [internalQuery, setInternalQuery] = React73.useState(
14359
14416
  defaultValue ?? ""
14360
14417
  );
14361
14418
  const query = value !== void 0 ? value : internalQuery;
@@ -14363,39 +14420,39 @@ var SearchBar = React72.forwardRef(
14363
14420
  if (value === void 0) setInternalQuery(event.target.value);
14364
14421
  onQueryChange?.(event.target.value);
14365
14422
  };
14366
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14423
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14367
14424
  "form",
14368
14425
  {
14369
14426
  role: "search",
14370
- className: cn63("w-full max-w-3xl", className),
14427
+ className: cn64("w-full max-w-3xl", className),
14371
14428
  onSubmit: (event) => {
14372
14429
  event.preventDefault();
14373
14430
  if (disabled) return;
14374
14431
  onSearch?.(query);
14375
14432
  },
14376
14433
  ...rest,
14377
- children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
14434
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
14378
14435
  "div",
14379
14436
  {
14380
- className: cn63(
14437
+ className: cn64(
14381
14438
  "flex w-full items-center gap-sm rounded-xl border bg-surface py-xxs pl-base pr-xxs",
14382
14439
  "transition duration-200 ease-out",
14383
14440
  disabled ? "border-hairline-soft bg-surface-soft" : "border-hairline-strong focus-within:border-primary focus-within:ring-2 focus-within:ring-focus-blue/25",
14384
14441
  forceFocus && !disabled ? "border-primary ring-2 ring-focus-blue/25" : ""
14385
14442
  ),
14386
14443
  children: [
14387
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14444
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14388
14445
  "span",
14389
14446
  {
14390
14447
  "aria-hidden": "true",
14391
- className: cn63(
14448
+ className: cn64(
14392
14449
  "flex shrink-0 items-center pl-xs",
14393
14450
  disabled ? "text-muted-soft" : "text-ink"
14394
14451
  ),
14395
- children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Icon, { name: "search", size: 20, strokeWidth: 1.75 })
14452
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "search", size: 20, strokeWidth: 1.75 })
14396
14453
  }
14397
14454
  ),
14398
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14455
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14399
14456
  Input,
14400
14457
  {
14401
14458
  ref,
@@ -14409,24 +14466,24 @@ var SearchBar = React72.forwardRef(
14409
14466
  disabled,
14410
14467
  autoComplete: "off",
14411
14468
  className: "flex-1",
14412
- inputClassName: cn63(
14469
+ inputClassName: cn64(
14413
14470
  "text-body-lg placeholder:text-muted",
14414
14471
  "[&::-webkit-search-cancel-button]:appearance-none"
14415
14472
  )
14416
14473
  }
14417
14474
  ),
14418
- hint ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14475
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14419
14476
  "span",
14420
14477
  {
14421
14478
  "aria-live": "polite",
14422
- className: cn63(
14479
+ className: cn64(
14423
14480
  "hidden shrink-0 items-center rounded-xl bg-primary-subdued px-md py-xs",
14424
14481
  "text-caption font-weight-label text-primary-on-subdued sm:inline-flex"
14425
14482
  ),
14426
14483
  children: hint
14427
14484
  }
14428
14485
  ) : null,
14429
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
14486
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14430
14487
  Button,
14431
14488
  {
14432
14489
  type: "submit",
@@ -14447,10 +14504,10 @@ var SearchBar = React72.forwardRef(
14447
14504
  SearchBar.displayName = "SearchBar";
14448
14505
 
14449
14506
  // virtual-pkg:src/atoms/SearchResultsList/SearchResultsList.tsx
14450
- var React73 = __toESM(require("react"));
14451
- var import_jsx_runtime73 = require("react/jsx-runtime");
14452
- var cn64 = (...values) => values.filter(Boolean).join(" ");
14453
- var SearchResultsList = React73.forwardRef(
14507
+ var React74 = __toESM(require("react"));
14508
+ var import_jsx_runtime74 = require("react/jsx-runtime");
14509
+ var cn65 = (...values) => values.filter(Boolean).join(" ");
14510
+ var SearchResultsList = React74.forwardRef(
14454
14511
  ({
14455
14512
  title = "Search results list",
14456
14513
  searchLabel = "Search results",
@@ -14470,9 +14527,9 @@ var SearchResultsList = React73.forwardRef(
14470
14527
  className,
14471
14528
  ...rest
14472
14529
  }, ref) => {
14473
- const [internalQuery, setInternalQuery] = React73.useState(defaultQuery);
14530
+ const [internalQuery, setInternalQuery] = React74.useState(defaultQuery);
14474
14531
  const currentQuery = query !== void 0 ? query : internalQuery;
14475
- const [internalFilter, setInternalFilter] = React73.useState(
14532
+ const [internalFilter, setInternalFilter] = React74.useState(
14476
14533
  defaultFilter ?? allFilterId
14477
14534
  );
14478
14535
  const currentFilter = activeFilter !== void 0 ? activeFilter : internalFilter;
@@ -14488,7 +14545,7 @@ var SearchResultsList = React73.forwardRef(
14488
14545
  if (activeFilter === void 0) setInternalFilter(filterId);
14489
14546
  onFilterChange?.(filterId);
14490
14547
  };
14491
- const visibleItems = React73.useMemo(() => {
14548
+ const visibleItems = React74.useMemo(() => {
14492
14549
  const needle = currentQuery.trim().toLowerCase();
14493
14550
  return items.filter((item) => {
14494
14551
  const matchesFilter = currentFilter === allFilterId || !item.filter || item.filter === currentFilter;
@@ -14498,35 +14555,35 @@ var SearchResultsList = React73.forwardRef(
14498
14555
  });
14499
14556
  }, [items, currentQuery, currentFilter, allFilterId]);
14500
14557
  const hasQuery = currentQuery.length > 0;
14501
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
14558
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
14502
14559
  "section",
14503
14560
  {
14504
14561
  ref,
14505
14562
  "aria-label": typeof title === "string" ? title : "Search results",
14506
- className: cn64("flex w-full flex-col gap-lg", className),
14563
+ className: cn65("flex w-full flex-col gap-lg", className),
14507
14564
  ...rest,
14508
14565
  children: [
14509
- title ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("h2", { className: "text-display-lg text-ink", children: title }) : null,
14510
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col gap-sm md:flex-row md:items-center md:gap-md", children: [
14511
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
14566
+ title ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("h2", { className: "text-display-lg text-ink", children: title }) : null,
14567
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-col gap-sm md:flex-row md:items-center md:gap-md", children: [
14568
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
14512
14569
  "div",
14513
14570
  {
14514
- className: cn64(
14571
+ className: cn65(
14515
14572
  "flex w-full items-center gap-sm rounded-xl border bg-surface px-base py-xxs",
14516
14573
  "border-hairline-strong transition duration-200 ease-out",
14517
14574
  "focus-within:border-primary focus-within:ring-2 focus-within:ring-focus-blue/25",
14518
14575
  "md:min-w-0 md:basis-[46%]"
14519
14576
  ),
14520
14577
  children: [
14521
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14578
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14522
14579
  "span",
14523
14580
  {
14524
14581
  "aria-hidden": "true",
14525
14582
  className: "flex shrink-0 items-center text-muted",
14526
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "search", size: 18, strokeWidth: 1.75 })
14583
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "search", size: 18, strokeWidth: 1.75 })
14527
14584
  }
14528
14585
  ),
14529
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14586
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14530
14587
  Input,
14531
14588
  {
14532
14589
  chrome: "embedded",
@@ -14537,13 +14594,13 @@ var SearchResultsList = React73.forwardRef(
14537
14594
  ariaLabel: searchLabel,
14538
14595
  autoComplete: "off",
14539
14596
  className: "min-w-0 flex-1",
14540
- inputClassName: cn64(
14597
+ inputClassName: cn65(
14541
14598
  "text-body-md placeholder:text-muted",
14542
14599
  "[&::-webkit-search-cancel-button]:appearance-none"
14543
14600
  )
14544
14601
  }
14545
14602
  ),
14546
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14603
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14547
14604
  Button,
14548
14605
  {
14549
14606
  variant: "bare",
@@ -14551,18 +14608,18 @@ var SearchResultsList = React73.forwardRef(
14551
14608
  "aria-label": "Clear search",
14552
14609
  disabled: !hasQuery,
14553
14610
  onClick: handleClear,
14554
- className: cn64(
14611
+ className: cn65(
14555
14612
  "text-muted transition duration-200 ease-out",
14556
14613
  "hover:bg-surface-soft hover:text-ink",
14557
14614
  hasQuery ? "opacity-100" : "pointer-events-none opacity-0"
14558
14615
  ),
14559
- leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "x", size: 16, strokeWidth: 2 })
14616
+ leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "x", size: 16, strokeWidth: 2 })
14560
14617
  }
14561
14618
  )
14562
14619
  ]
14563
14620
  }
14564
14621
  ),
14565
- filters.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex flex-wrap items-center gap-sm md:shrink-0", children: filters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14622
+ filters.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "flex flex-wrap items-center gap-sm md:shrink-0", children: filters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14566
14623
  Chip,
14567
14624
  {
14568
14625
  appearance: "outline",
@@ -14574,14 +14631,14 @@ var SearchResultsList = React73.forwardRef(
14574
14631
  filter.id
14575
14632
  )) }) : null
14576
14633
  ] }),
14577
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("p", { "aria-live": "polite", className: "sr-only", children: [
14634
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("p", { "aria-live": "polite", className: "sr-only", children: [
14578
14635
  visibleItems.length,
14579
14636
  " results"
14580
14637
  ] }),
14581
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "overflow-hidden rounded-lg border border-hairline bg-canvas shadow-card", children: visibleItems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("ul", { className: "flex flex-col p-xs", children: visibleItems.map((item, index) => {
14638
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "overflow-hidden rounded-lg border border-hairline bg-canvas shadow-card", children: visibleItems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("ul", { className: "flex flex-col p-xs", children: visibleItems.map((item, index) => {
14582
14639
  const isSelected = item.id === selectedId;
14583
14640
  const isSettled = item.statusKind !== "review";
14584
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("li", { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
14641
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("li", { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
14585
14642
  Button,
14586
14643
  {
14587
14644
  variant: "row",
@@ -14589,42 +14646,42 @@ var SearchResultsList = React73.forwardRef(
14589
14646
  "aria-current": isSelected ? "true" : void 0,
14590
14647
  "data-selected": isSelected || void 0,
14591
14648
  onClick: () => onSelect?.(item),
14592
- className: cn64(
14649
+ className: cn65(
14593
14650
  "py-md",
14594
14651
  index > 0 && "border-t border-hairline-soft",
14595
14652
  "[&>span:first-child]:w-full [&>span:first-child]:justify-start"
14596
14653
  ),
14597
14654
  children: [
14598
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14655
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14599
14656
  "span",
14600
14657
  {
14601
14658
  "aria-hidden": "true",
14602
14659
  className: "flex size-11 shrink-0 items-center justify-center rounded-md border border-hairline bg-canvas text-ink",
14603
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "store", size: 19, strokeWidth: 1.5 })
14660
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "store", size: 19, strokeWidth: 1.5 })
14604
14661
  }
14605
14662
  ),
14606
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs pl-sm", children: [
14607
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "truncate text-label text-ink", children: item.name }),
14608
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "truncate text-body-sm text-muted", children: item.reference })
14663
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col gap-xxs pl-sm", children: [
14664
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-label text-ink", children: item.name }),
14665
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-body-sm text-muted", children: item.reference })
14609
14666
  ] }),
14610
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "hidden w-32 shrink-0 text-body-md text-muted sm:block", children: item.date }),
14611
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "flex w-40 shrink-0 items-center", children: isSettled ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("span", { className: "inline-flex min-w-0 items-center gap-sm text-body-md text-ink", children: [
14612
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
14667
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "hidden w-32 shrink-0 text-body-md text-muted sm:block", children: item.date }),
14668
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "flex w-40 shrink-0 items-center", children: isSettled ? /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "inline-flex min-w-0 items-center gap-sm text-body-md text-ink", children: [
14669
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14613
14670
  "span",
14614
14671
  {
14615
14672
  "aria-hidden": "true",
14616
14673
  className: "size-2 shrink-0 rounded-full bg-primary"
14617
14674
  }
14618
14675
  ),
14619
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "truncate", children: item.status })
14620
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Badge, { variant: "soft", tone: "info", size: "md", children: item.status }) }),
14621
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "w-24 shrink-0 text-right text-body-tabular text-ink", children: item.amount })
14676
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate", children: item.status })
14677
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Badge, { variant: "soft", tone: "info", size: "md", children: item.status }) }),
14678
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "w-24 shrink-0 text-right text-body-tabular text-ink", children: item.amount })
14622
14679
  ]
14623
14680
  }
14624
14681
  ) }, item.id);
14625
- }) }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col items-center gap-xs px-lg py-xxl text-center", children: [
14626
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "text-body-md text-ink", children: emptyLabel ?? "No results found" }),
14627
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "text-body-sm text-muted", children: "Try a different name, reference, or filter." })
14682
+ }) }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-col items-center gap-xs px-lg py-xxl text-center", children: [
14683
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "text-body-md text-ink", children: emptyLabel ?? "No results found" }),
14684
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "text-body-sm text-muted", children: "Try a different name, reference, or filter." })
14628
14685
  ] }) })
14629
14686
  ]
14630
14687
  }
@@ -14634,13 +14691,13 @@ var SearchResultsList = React73.forwardRef(
14634
14691
  SearchResultsList.displayName = "SearchResultsList";
14635
14692
 
14636
14693
  // virtual-pkg:src/atoms/Sidebar/Sidebar.tsx
14637
- var React76 = __toESM(require("react"));
14694
+ var React77 = __toESM(require("react"));
14638
14695
 
14639
14696
  // virtual-pkg:src/atoms/SidebarDesktop/SidebarDesktop.tsx
14640
- var React74 = __toESM(require("react"));
14697
+ var React75 = __toESM(require("react"));
14641
14698
  var ReactDOM11 = __toESM(require("react-dom"));
14642
- var import_jsx_runtime74 = require("react/jsx-runtime");
14643
- var cn65 = (...values) => values.filter(Boolean).join(" ");
14699
+ var import_jsx_runtime75 = require("react/jsx-runtime");
14700
+ var cn66 = (...values) => values.filter(Boolean).join(" ");
14644
14701
  var MENU_GAP2 = 6;
14645
14702
  var MENU_MIN_WIDTH = 224;
14646
14703
  var VIEWPORT_INSET6 = 12;
@@ -14670,7 +14727,7 @@ var SAMPLE_SECONDARY = [
14670
14727
  { id: "team", label: "Team", icon: "group", href: "#team" }
14671
14728
  ];
14672
14729
  var SAMPLE_PLAN = { name: "Pro", price: "$2,400.00 / month", href: "#plan" };
14673
- var glyph3 = (name, size = 16, strokeWidth = 1.75) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14730
+ var glyph3 = (name, size = 16, strokeWidth = 1.75) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14674
14731
  Icon,
14675
14732
  {
14676
14733
  name,
@@ -14699,12 +14756,12 @@ var rowAccessibleName = (label, badge) => {
14699
14756
  var RailBadge = ({
14700
14757
  badge,
14701
14758
  active
14702
- }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14759
+ }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14703
14760
  "span",
14704
14761
  {
14705
14762
  "aria-hidden": "true",
14706
14763
  "data-active": active || void 0,
14707
- className: cn65(
14764
+ className: cn66(
14708
14765
  "ml-auto flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full",
14709
14766
  "bg-primary px-xxs text-caption text-on-primary",
14710
14767
  "data-[active=true]:bg-on-primary data-[active=true]:text-primary"
@@ -14712,13 +14769,13 @@ var RailBadge = ({
14712
14769
  children: badgeText(badge)
14713
14770
  }
14714
14771
  );
14715
- var railGlyph = (item, folded) => /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "relative inline-flex shrink-0 items-center", children: [
14772
+ var railGlyph = (item, folded) => /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "relative inline-flex shrink-0 items-center", children: [
14716
14773
  glyph3(item.icon, 16, 1.75),
14717
- folded && hasBadge(item.badge) ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14774
+ folded && hasBadge(item.badge) ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14718
14775
  "span",
14719
14776
  {
14720
14777
  "aria-hidden": "true",
14721
- className: cn65(
14778
+ className: cn66(
14722
14779
  "pointer-events-none absolute -right-xxs -top-xxs size-2 rounded-full",
14723
14780
  "bg-primary",
14724
14781
  "group-data-[active=true]:bg-on-primary"
@@ -14729,8 +14786,8 @@ var railGlyph = (item, folded) => /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)
14729
14786
  var RowLabel = ({
14730
14787
  folded,
14731
14788
  children
14732
- }) => folded ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "sr-only", children }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate", children });
14733
- var railRowClass = (active, folded) => cn65(
14789
+ }) => folded ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "sr-only", children }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children });
14790
+ var railRowClass = (active, folded) => cn66(
14734
14791
  "group flex w-full cursor-pointer items-center rounded-lg border-0 bg-transparent",
14735
14792
  "text-body-md transition duration-150 ease-out",
14736
14793
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
@@ -14739,7 +14796,7 @@ var railRowClass = (active, folded) => cn65(
14739
14796
  folded ? "justify-center px-md py-sm" : "gap-md px-lg py-sm"
14740
14797
  );
14741
14798
  var isModified = (event) => event.metaKey || event.ctrlKey || event.shiftKey || event.altKey ? true : event.button !== 0;
14742
- var SidebarDesktop = React74.forwardRef(
14799
+ var SidebarDesktop = React75.forwardRef(
14743
14800
  ({
14744
14801
  wordmark = "Nimbus",
14745
14802
  homeHref = "#home",
@@ -14769,27 +14826,27 @@ var SidebarDesktop = React74.forwardRef(
14769
14826
  className,
14770
14827
  ...rest
14771
14828
  }, ref) => {
14772
- const uid = React74.useId().replace(/[^a-zA-Z0-9-]/g, "");
14829
+ const uid = React75.useId().replace(/[^a-zA-Z0-9-]/g, "");
14773
14830
  const primaryNavId = `${uid}-primary`;
14774
14831
  const accountsPanelId = `${uid}-accounts`;
14775
- const triggerRef = React74.useRef(null);
14776
- const panelRef = React74.useRef(null);
14777
- const [internalFolded, setInternalFolded] = React74.useState(defaultFolded);
14832
+ const triggerRef = React75.useRef(null);
14833
+ const panelRef = React75.useRef(null);
14834
+ const [internalFolded, setInternalFolded] = React75.useState(defaultFolded);
14778
14835
  const isFolded = folded !== void 0 ? folded : internalFolded;
14779
14836
  const navItems = items ?? SAMPLE_ITEMS;
14780
14837
  const secondaryNav = secondaryItems ?? SAMPLE_SECONDARY;
14781
14838
  const accountList = accounts ?? SAMPLE_ACCOUNTS;
14782
14839
  const planTile = plan === void 0 ? SAMPLE_PLAN : plan;
14783
- const [internalAccount, setInternalAccount] = React74.useState(
14840
+ const [internalAccount, setInternalAccount] = React75.useState(
14784
14841
  defaultAccountValue ?? accountList[0]?.value
14785
14842
  );
14786
14843
  const selectedAccount = accountValue !== void 0 ? accountValue : internalAccount;
14787
14844
  const currentAccount = accountList.find(
14788
14845
  (account) => account.value === selectedAccount
14789
14846
  );
14790
- const [accountsOpen, setAccountsOpen] = React74.useState(false);
14791
- const [box, setBox] = React74.useState(null);
14792
- const [expandedId, setExpandedId] = React74.useState(
14847
+ const [accountsOpen, setAccountsOpen] = React75.useState(false);
14848
+ const [box, setBox] = React75.useState(null);
14849
+ const [expandedId, setExpandedId] = React75.useState(
14793
14850
  defaultExpandedId
14794
14851
  );
14795
14852
  const setFolded = (next) => {
@@ -14812,7 +14869,7 @@ var SidebarDesktop = React74.forwardRef(
14812
14869
  event.preventDefault();
14813
14870
  }
14814
14871
  };
14815
- const measure = React74.useCallback(() => {
14872
+ const measure = React75.useCallback(() => {
14816
14873
  const trigger = triggerRef.current;
14817
14874
  if (!trigger) {
14818
14875
  return;
@@ -14845,7 +14902,7 @@ var SidebarDesktop = React74.forwardRef(
14845
14902
  );
14846
14903
  setBox({ top: clampedTop, left, width, maxHeight });
14847
14904
  }, []);
14848
- React74.useEffect(() => {
14905
+ React75.useEffect(() => {
14849
14906
  if (!accountsOpen) {
14850
14907
  return;
14851
14908
  }
@@ -14893,7 +14950,7 @@ var SidebarDesktop = React74.forwardRef(
14893
14950
  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";
14894
14951
  const bellLabel = notificationCount > 0 ? `${notificationsLabel}, ${notificationCount} unread` : notificationsLabel;
14895
14952
  const accountsPanel = typeof document === "undefined" ? null : ReactDOM11.createPortal(
14896
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14953
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14897
14954
  "div",
14898
14955
  {
14899
14956
  ref: panelRef,
@@ -14910,7 +14967,7 @@ var SidebarDesktop = React74.forwardRef(
14910
14967
  maxHeight: box?.maxHeight ?? void 0,
14911
14968
  zIndex: "var(--z-popover, 1300)"
14912
14969
  },
14913
- className: cn65(
14970
+ className: cn66(
14914
14971
  "origin-top overflow-y-auto overscroll-contain rounded-lg border border-hairline",
14915
14972
  "bg-surface p-xs shadow-lg transition duration-200 ease-out",
14916
14973
  "data-[state=open]:translate-y-0 data-[state=open]:scale-100 data-[state=open]:opacity-100",
@@ -14918,7 +14975,7 @@ var SidebarDesktop = React74.forwardRef(
14918
14975
  ),
14919
14976
  children: accountList.map((account) => {
14920
14977
  const selected = account.value === selectedAccount;
14921
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14978
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14922
14979
  Button,
14923
14980
  {
14924
14981
  variant: "row",
@@ -14928,8 +14985,8 @@ var SidebarDesktop = React74.forwardRef(
14928
14985
  "data-selected": selected,
14929
14986
  tabIndex: -1,
14930
14987
  onClick: () => chooseAccount(account),
14931
- leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "layers", size: 16, tone: "muted" }),
14932
- trailingIcon: selected ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
14988
+ leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name: "layers", size: 16, tone: "muted" }),
14989
+ trailingIcon: selected ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14933
14990
  Icon,
14934
14991
  {
14935
14992
  name: "check",
@@ -14947,7 +15004,7 @@ var SidebarDesktop = React74.forwardRef(
14947
15004
  ),
14948
15005
  document.body
14949
15006
  );
14950
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15007
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
14951
15008
  "aside",
14952
15009
  {
14953
15010
  ref,
@@ -14955,7 +15012,7 @@ var SidebarDesktop = React74.forwardRef(
14955
15012
  style: {
14956
15013
  width: isFolded ? "var(--container-sidebar-rail, 72px)" : "var(--container-sidebar, 240px)"
14957
15014
  },
14958
- className: cn65(
15015
+ className: cn66(
14959
15016
  "flex h-full min-h-0 shrink-0 flex-col bg-brand-dark text-on-primary",
14960
15017
  "transition-[width] duration-200 ease-out",
14961
15018
  isFolded ? "px-xs" : "px-md",
@@ -14964,31 +15021,31 @@ var SidebarDesktop = React74.forwardRef(
14964
15021
  ),
14965
15022
  ...rest,
14966
15023
  children: [
14967
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15024
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
14968
15025
  "div",
14969
15026
  {
14970
- className: cn65(
15027
+ className: cn66(
14971
15028
  "flex w-full shrink-0 items-center pb-lg",
14972
15029
  isFolded ? "justify-center" : "justify-between gap-sm"
14973
15030
  ),
14974
15031
  children: [
14975
- isFolded ? null : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15032
+ isFolded ? null : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
14976
15033
  "a",
14977
15034
  {
14978
15035
  href: homeHref,
14979
15036
  onClick: navigate({ id: "home", href: homeHref }),
14980
- className: cn65(
15037
+ className: cn66(
14981
15038
  "inline-flex min-w-0 cursor-pointer items-center gap-sm rounded-md px-xs text-on-primary",
14982
15039
  "transition duration-150 ease-out hover:opacity-80",
14983
15040
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue"
14984
15041
  ),
14985
15042
  children: [
14986
15043
  glyph3("slash", 20, 3),
14987
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-body-lg font-weight-label", children: wordmark })
15044
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-body-lg font-weight-label", children: wordmark })
14988
15045
  ]
14989
15046
  }
14990
15047
  ),
14991
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15048
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
14992
15049
  Button,
14993
15050
  {
14994
15051
  variant: "bare",
@@ -14997,7 +15054,7 @@ var SidebarDesktop = React74.forwardRef(
14997
15054
  "aria-expanded": !isFolded,
14998
15055
  "aria-controls": primaryNavId,
14999
15056
  onClick: () => setFolded(!isFolded),
15000
- className: cn65(
15057
+ className: cn66(
15001
15058
  "shrink-0 rounded-md text-on-primary/60",
15002
15059
  "hover:bg-on-primary/10 hover:text-on-primary"
15003
15060
  ),
@@ -15007,7 +15064,7 @@ var SidebarDesktop = React74.forwardRef(
15007
15064
  ]
15008
15065
  }
15009
15066
  ),
15010
- accountList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15067
+ accountList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15011
15068
  Button,
15012
15069
  {
15013
15070
  ref: triggerRef,
@@ -15023,43 +15080,43 @@ var SidebarDesktop = React74.forwardRef(
15023
15080
  setAccountsOpen((previous) => !previous);
15024
15081
  },
15025
15082
  className: "shrink-0",
15026
- trailingIcon: isFolded ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15083
+ trailingIcon: isFolded ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15027
15084
  "span",
15028
15085
  {
15029
15086
  "aria-hidden": "true",
15030
- className: cn65(
15087
+ className: cn66(
15031
15088
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
15032
15089
  accountsOpen ? "rotate-180" : "rotate-0"
15033
15090
  ),
15034
15091
  children: glyph3("chevron-down", 16, 2)
15035
15092
  }
15036
15093
  ),
15037
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15094
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15038
15095
  "span",
15039
15096
  {
15040
- className: cn65("flex min-w-0 items-center", isFolded ? "" : "gap-sm"),
15097
+ className: cn66("flex min-w-0 items-center", isFolded ? "" : "gap-sm"),
15041
15098
  children: [
15042
15099
  glyph3("layers", 16, 1.75),
15043
- isFolded ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "sr-only", children: currentAccount?.label ?? "Choose account" }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
15100
+ isFolded ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "sr-only", children: currentAccount?.label ?? "Choose account" }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
15044
15101
  ]
15045
15102
  }
15046
15103
  )
15047
15104
  }
15048
- ) : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15105
+ ) : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15049
15106
  "div",
15050
15107
  {
15051
- className: cn65(
15108
+ className: cn66(
15052
15109
  "flex w-full shrink-0 items-center rounded-lg bg-on-primary/10 py-sm text-body-md text-on-primary",
15053
15110
  isFolded ? "justify-center px-md" : "gap-sm px-md"
15054
15111
  ),
15055
15112
  children: [
15056
15113
  glyph3("layers", 16, 1.75),
15057
- isFolded ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "sr-only", children: currentAccount?.label }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate", children: currentAccount?.label })
15114
+ isFolded ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "sr-only", children: currentAccount?.label }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: currentAccount?.label })
15058
15115
  ]
15059
15116
  }
15060
15117
  ),
15061
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "mt-lg flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain", children: [
15062
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15118
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "mt-lg flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain", children: [
15119
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15063
15120
  "nav",
15064
15121
  {
15065
15122
  id: primaryNavId,
@@ -15069,7 +15126,7 @@ var SidebarDesktop = React74.forwardRef(
15069
15126
  const active = item.id === activeId;
15070
15127
  const badged = hasBadge(item.badge);
15071
15128
  if (!item.children?.length) {
15072
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15129
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15073
15130
  "a",
15074
15131
  {
15075
15132
  href: item.href ?? `#${item.id}`,
@@ -15080,8 +15137,8 @@ var SidebarDesktop = React74.forwardRef(
15080
15137
  className: railRowClass(active, isFolded),
15081
15138
  children: [
15082
15139
  railGlyph(item, isFolded),
15083
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(RowLabel, { folded: isFolded, children: item.label }),
15084
- !isFolded && badged ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(RailBadge, { badge: item.badge, active }) : null
15140
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(RowLabel, { folded: isFolded, children: item.label }),
15141
+ !isFolded && badged ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(RailBadge, { badge: item.badge, active }) : null
15085
15142
  ]
15086
15143
  },
15087
15144
  item.id
@@ -15089,8 +15146,8 @@ var SidebarDesktop = React74.forwardRef(
15089
15146
  }
15090
15147
  const expanded = expandedId === item.id;
15091
15148
  const subId = `${uid}-${item.id}-sub`;
15092
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-col gap-xxs", children: [
15093
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15149
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex flex-col gap-xxs", children: [
15150
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15094
15151
  Button,
15095
15152
  {
15096
15153
  variant: "rail-row",
@@ -15103,19 +15160,19 @@ var SidebarDesktop = React74.forwardRef(
15103
15160
  onClick: () => toggleExpanded(item.id),
15104
15161
  className: "group",
15105
15162
  leadingIcon: railGlyph(item, isFolded),
15106
- trailingIcon: isFolded ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "flex items-center gap-xs", children: [
15107
- badged ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15163
+ trailingIcon: isFolded ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex items-center gap-xs", children: [
15164
+ badged ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15108
15165
  RailBadge,
15109
15166
  {
15110
15167
  badge: item.badge,
15111
15168
  active
15112
15169
  }
15113
15170
  ) : null,
15114
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15171
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15115
15172
  "span",
15116
15173
  {
15117
15174
  "aria-hidden": "true",
15118
- className: cn65(
15175
+ className: cn66(
15119
15176
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
15120
15177
  expanded ? "rotate-180" : "rotate-0"
15121
15178
  ),
@@ -15123,19 +15180,19 @@ var SidebarDesktop = React74.forwardRef(
15123
15180
  }
15124
15181
  )
15125
15182
  ] }),
15126
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(RowLabel, { folded: isFolded, children: item.label })
15183
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(RowLabel, { folded: isFolded, children: item.label })
15127
15184
  }
15128
15185
  ),
15129
- isFolded ? null : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15186
+ isFolded ? null : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15130
15187
  "div",
15131
15188
  {
15132
15189
  id: subId,
15133
15190
  "data-state": expanded ? "open" : "closed",
15134
- className: cn65(
15191
+ className: cn66(
15135
15192
  "grid transition-[grid-template-rows,opacity] duration-200 ease-out",
15136
15193
  expanded ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
15137
15194
  ),
15138
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("ul", { className: "flex flex-col gap-xxs pb-xs pl-xl pt-xxs", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15195
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("ul", { className: "flex flex-col gap-xxs pb-xs pl-xl pt-xxs", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15139
15196
  "a",
15140
15197
  {
15141
15198
  href: child.href ?? `#${child.id}`,
@@ -15145,7 +15202,7 @@ var SidebarDesktop = React74.forwardRef(
15145
15202
  }),
15146
15203
  tabIndex: expanded ? void 0 : -1,
15147
15204
  className: subRowClass2,
15148
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate", children: child.label })
15205
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: child.label })
15149
15206
  }
15150
15207
  ) }, child.id)) }) })
15151
15208
  }
@@ -15154,7 +15211,7 @@ var SidebarDesktop = React74.forwardRef(
15154
15211
  })
15155
15212
  }
15156
15213
  ),
15157
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "mt-lg shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15214
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "mt-lg shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15158
15215
  Button,
15159
15216
  {
15160
15217
  variant: "inverse-outline",
@@ -15166,17 +15223,17 @@ var SidebarDesktop = React74.forwardRef(
15166
15223
  children: isFolded ? void 0 : primaryActionLabel
15167
15224
  }
15168
15225
  ) }),
15169
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15226
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15170
15227
  "span",
15171
15228
  {
15172
15229
  "aria-hidden": "true",
15173
15230
  className: "mt-lg block h-px shrink-0 bg-on-primary/15"
15174
15231
  }
15175
15232
  ),
15176
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("nav", { "aria-label": "Secondary", className: "mt-lg flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15233
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("nav", { "aria-label": "Secondary", className: "mt-lg flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15177
15234
  const active = item.id === secondaryActiveId;
15178
15235
  const badged = hasBadge(item.badge);
15179
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15236
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15180
15237
  "a",
15181
15238
  {
15182
15239
  href: item.href ?? `#${item.id}`,
@@ -15187,21 +15244,21 @@ var SidebarDesktop = React74.forwardRef(
15187
15244
  className: railRowClass(active, isFolded),
15188
15245
  children: [
15189
15246
  railGlyph(item, isFolded),
15190
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(RowLabel, { folded: isFolded, children: item.label }),
15191
- !isFolded && badged ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(RailBadge, { badge: item.badge, active }) : null
15247
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(RowLabel, { folded: isFolded, children: item.label }),
15248
+ !isFolded && badged ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(RailBadge, { badge: item.badge, active }) : null
15192
15249
  ]
15193
15250
  },
15194
15251
  item.id
15195
15252
  );
15196
15253
  }) })
15197
15254
  ] }),
15198
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "mt-lg shrink-0", children: [
15199
- planTile ? /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15255
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "mt-lg shrink-0", children: [
15256
+ planTile ? /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15200
15257
  "a",
15201
15258
  {
15202
15259
  href: planTile.href ?? "#plan",
15203
15260
  onClick: navigate({ id: "plan", href: planTile.href }),
15204
- className: cn65(
15261
+ className: cn66(
15205
15262
  "flex w-full cursor-pointer items-center rounded-lg bg-on-primary/10",
15206
15263
  "transition duration-150 ease-out hover:bg-on-primary/15",
15207
15264
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
@@ -15209,33 +15266,33 @@ var SidebarDesktop = React74.forwardRef(
15209
15266
  isFolded ? "justify-center p-sm" : "gap-sm p-sm"
15210
15267
  ),
15211
15268
  children: [
15212
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-primary text-on-primary", children: glyph3("chart-bar", 16, 2) }),
15213
- isFolded ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "sr-only", children: `${planTile.name}, ${planTile.price}` }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
15214
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15215
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-body-md text-on-primary", children: planTile.name }),
15216
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-caption text-on-primary/60", children: planTile.price })
15269
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-primary text-on-primary", children: glyph3("chart-bar", 16, 2) }),
15270
+ isFolded ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "sr-only", children: `${planTile.name}, ${planTile.price}` }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
15271
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15272
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-body-md text-on-primary", children: planTile.name }),
15273
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-caption text-on-primary/60", children: planTile.price })
15217
15274
  ] }),
15218
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { "aria-hidden": "true", className: "shrink-0 text-on-primary/60", children: glyph3("arrow-right", 16, 2) })
15275
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { "aria-hidden": "true", className: "shrink-0 text-on-primary/60", children: glyph3("arrow-right", 16, 2) })
15219
15276
  ] })
15220
15277
  ]
15221
15278
  }
15222
15279
  ) : null,
15223
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
15280
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15224
15281
  "div",
15225
15282
  {
15226
- className: cn65(
15283
+ className: cn66(
15227
15284
  "mt-sm flex items-center",
15228
15285
  isFolded ? "justify-center" : "gap-sm pl-xs"
15229
15286
  ),
15230
15287
  children: [
15231
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Avatar, { name: profile.name, src: profile.src, size: "sm" }),
15232
- isFolded ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "sr-only", children: profile.name }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
15233
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15234
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-body-sm text-on-primary", children: profile.name }),
15235
- profile.email ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-caption text-on-primary/60", children: profile.email }) : null
15288
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Avatar, { name: profile.name, src: profile.src, size: "sm" }),
15289
+ isFolded ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "sr-only", children: profile.name }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
15290
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15291
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-body-sm text-on-primary", children: profile.name }),
15292
+ profile.email ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-caption text-on-primary/60", children: profile.email }) : null
15236
15293
  ] }),
15237
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "relative inline-flex shrink-0", children: [
15238
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15294
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "relative inline-flex shrink-0", children: [
15295
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15239
15296
  Button,
15240
15297
  {
15241
15298
  variant: "bare",
@@ -15246,11 +15303,11 @@ var SidebarDesktop = React74.forwardRef(
15246
15303
  children: glyph3("bell", 16, 1.75)
15247
15304
  }
15248
15305
  ),
15249
- notificationCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15306
+ notificationCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15250
15307
  "span",
15251
15308
  {
15252
15309
  "aria-hidden": "true",
15253
- className: cn65(
15310
+ className: cn66(
15254
15311
  "pointer-events-none absolute -right-xxs -top-xxs",
15255
15312
  "flex h-4 min-w-4 items-center justify-center rounded-full",
15256
15313
  "bg-primary px-xxs text-caption text-on-primary"
@@ -15259,7 +15316,7 @@ var SidebarDesktop = React74.forwardRef(
15259
15316
  }
15260
15317
  ) : null
15261
15318
  ] }),
15262
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
15319
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15263
15320
  Button,
15264
15321
  {
15265
15322
  variant: "bare",
@@ -15284,10 +15341,10 @@ var SidebarDesktop = React74.forwardRef(
15284
15341
  SidebarDesktop.displayName = "SidebarDesktop";
15285
15342
 
15286
15343
  // virtual-pkg:src/atoms/SidebarMobile/SidebarMobile.tsx
15287
- var React75 = __toESM(require("react"));
15344
+ var React76 = __toESM(require("react"));
15288
15345
  var import_react_dom4 = require("react-dom");
15289
- var import_jsx_runtime75 = require("react/jsx-runtime");
15290
- var cn66 = (...values) => values.filter(Boolean).join(" ");
15346
+ var import_jsx_runtime76 = require("react/jsx-runtime");
15347
+ var cn67 = (...values) => values.filter(Boolean).join(" ");
15291
15348
  var SAMPLE_ACCOUNTS2 = [
15292
15349
  { value: "acme", label: "Acme Payments" },
15293
15350
  { value: "northwind", label: "Northwind Labs" },
@@ -15314,7 +15371,7 @@ var SAMPLE_SECONDARY2 = [
15314
15371
  { id: "team", label: "Team", icon: "group", href: "#team" }
15315
15372
  ];
15316
15373
  var SAMPLE_PLAN2 = { name: "Pro", price: "$2,400.00 / month", href: "#plan" };
15317
- var glyph4 = (name, size = 18, strokeWidth = 1.75) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name, size, strokeWidth, style: { color: "inherit" } });
15374
+ var glyph4 = (name, size = 18, strokeWidth = 1.75) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name, size, strokeWidth, style: { color: "inherit" } });
15318
15375
  var hasBadge2 = (badge) => {
15319
15376
  if (badge === void 0 || badge === null) {
15320
15377
  return false;
@@ -15335,12 +15392,12 @@ var rowAccessibleName2 = (label, badge) => {
15335
15392
  var NavBadge = ({
15336
15393
  badge,
15337
15394
  active
15338
- }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15395
+ }) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15339
15396
  "span",
15340
15397
  {
15341
15398
  "aria-hidden": "true",
15342
15399
  "data-active": active || void 0,
15343
- className: cn66(
15400
+ className: cn67(
15344
15401
  "ml-auto flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full",
15345
15402
  "bg-primary px-xxs text-caption text-on-primary",
15346
15403
  "data-[active=true]:bg-on-primary data-[active=true]:text-primary"
@@ -15348,14 +15405,14 @@ var NavBadge = ({
15348
15405
  children: badgeText2(badge)
15349
15406
  }
15350
15407
  );
15351
- var rowClass = (active) => cn66(
15408
+ var rowClass = (active) => cn67(
15352
15409
  "flex min-h-10 w-full cursor-pointer items-center gap-md rounded-lg px-md py-sm",
15353
15410
  "text-body-md transition duration-150 ease-out",
15354
15411
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
15355
15412
  "focus-visible:ring-inset",
15356
15413
  active ? "bg-primary text-on-primary hover:bg-primary-hover active:bg-primary-active" : "text-ink hover:bg-surface-soft active:bg-surface-strong"
15357
15414
  );
15358
- var subRowClass = cn66(
15415
+ var subRowClass = cn67(
15359
15416
  "flex min-h-7 w-full cursor-pointer items-center gap-md rounded-md px-md py-xxs",
15360
15417
  "text-body-sm text-body transition duration-150 ease-out",
15361
15418
  "hover:bg-surface-soft hover:text-ink active:bg-surface-strong",
@@ -15363,7 +15420,7 @@ var subRowClass = cn66(
15363
15420
  "focus-visible:ring-inset"
15364
15421
  );
15365
15422
  var isModified2 = (event) => event.metaKey || event.ctrlKey || event.shiftKey || event.altKey ? true : event.button !== 0;
15366
- var SidebarMobile = React75.forwardRef(
15423
+ var SidebarMobile = React76.forwardRef(
15367
15424
  ({
15368
15425
  wordmark = "Nimbus",
15369
15426
  homeHref = "#home",
@@ -15398,31 +15455,31 @@ var SidebarMobile = React75.forwardRef(
15398
15455
  className,
15399
15456
  ...rest
15400
15457
  }, ref) => {
15401
- const uid = React75.useId().replace(/[^a-zA-Z0-9-]/g, "");
15458
+ const uid = React76.useId().replace(/[^a-zA-Z0-9-]/g, "");
15402
15459
  const drawerId = `${uid}-drawer`;
15403
15460
  const accountsPanelId = `${uid}-accounts`;
15404
- const toggleRef = React75.useRef(null);
15405
- const closeRef = React75.useRef(null);
15406
- const triggerRef = React75.useRef(null);
15407
- const panelRef = React75.useRef(null);
15408
- const [internalOpen, setInternalOpen] = React75.useState(defaultOpen);
15461
+ const toggleRef = React76.useRef(null);
15462
+ const closeRef = React76.useRef(null);
15463
+ const triggerRef = React76.useRef(null);
15464
+ const panelRef = React76.useRef(null);
15465
+ const [internalOpen, setInternalOpen] = React76.useState(defaultOpen);
15409
15466
  const isOpen = open !== void 0 ? open : internalOpen;
15410
15467
  const navItems = items ?? SAMPLE_ITEMS2;
15411
15468
  const secondaryNav = secondaryItems ?? SAMPLE_SECONDARY2;
15412
15469
  const accountList = accounts ?? SAMPLE_ACCOUNTS2;
15413
15470
  const planTile = plan === void 0 ? SAMPLE_PLAN2 : plan;
15414
- const [internalAccount, setInternalAccount] = React75.useState(
15471
+ const [internalAccount, setInternalAccount] = React76.useState(
15415
15472
  defaultAccountValue ?? accountList[0]?.value
15416
15473
  );
15417
15474
  const selectedAccount = accountValue !== void 0 ? accountValue : internalAccount;
15418
15475
  const currentAccount = accountList.find(
15419
15476
  (account) => account.value === selectedAccount
15420
15477
  );
15421
- const [accountsOpen, setAccountsOpen] = React75.useState(false);
15422
- const [expandedId, setExpandedId] = React75.useState(
15478
+ const [accountsOpen, setAccountsOpen] = React76.useState(false);
15479
+ const [expandedId, setExpandedId] = React76.useState(
15423
15480
  defaultExpandedId
15424
15481
  );
15425
- const setOpen = React75.useCallback(
15482
+ const setOpen = React76.useCallback(
15426
15483
  (next) => {
15427
15484
  if (open === void 0) {
15428
15485
  setInternalOpen(next);
@@ -15438,8 +15495,8 @@ var SidebarMobile = React75.forwardRef(
15438
15495
  }
15439
15496
  setOpen(false);
15440
15497
  };
15441
- const wasOpen = React75.useRef(isOpen);
15442
- React75.useEffect(() => {
15498
+ const wasOpen = React76.useRef(isOpen);
15499
+ React76.useEffect(() => {
15443
15500
  if (isOpen && !wasOpen.current) {
15444
15501
  closeRef.current?.focus();
15445
15502
  }
@@ -15449,7 +15506,7 @@ var SidebarMobile = React75.forwardRef(
15449
15506
  }
15450
15507
  wasOpen.current = isOpen;
15451
15508
  }, [isOpen]);
15452
- React75.useEffect(() => {
15509
+ React76.useEffect(() => {
15453
15510
  if (!isOpen) {
15454
15511
  return;
15455
15512
  }
@@ -15459,7 +15516,7 @@ var SidebarMobile = React75.forwardRef(
15459
15516
  document.body.style.overflow = overflow;
15460
15517
  };
15461
15518
  }, [isOpen]);
15462
- React75.useEffect(() => {
15519
+ React76.useEffect(() => {
15463
15520
  if (!isOpen) {
15464
15521
  return;
15465
15522
  }
@@ -15507,7 +15564,7 @@ var SidebarMobile = React75.forwardRef(
15507
15564
  };
15508
15565
  const bellLabel = notificationCount > 0 ? `${notificationsLabel}, ${notificationCount} unread` : notificationsLabel;
15509
15566
  const drawer = typeof document === "undefined" ? null : (0, import_react_dom4.createPortal)(
15510
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15567
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
15511
15568
  "div",
15512
15569
  {
15513
15570
  "data-state": isOpen ? "open" : "closed",
@@ -15518,22 +15575,22 @@ var SidebarMobile = React75.forwardRef(
15518
15575
  inset: 0,
15519
15576
  zIndex: "var(--z-modal, 1200)"
15520
15577
  },
15521
- className: cn66(
15578
+ className: cn67(
15522
15579
  "transition-opacity duration-200 ease-out",
15523
15580
  isOpen ? "pointer-events-auto" : "pointer-events-none"
15524
15581
  ),
15525
15582
  children: [
15526
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15583
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15527
15584
  "div",
15528
15585
  {
15529
15586
  "aria-hidden": "true",
15530
- className: cn66(
15587
+ className: cn67(
15531
15588
  "absolute inset-0 bg-scrim/50 transition-opacity duration-200 ease-out",
15532
15589
  isOpen ? "opacity-100" : "opacity-0"
15533
15590
  )
15534
15591
  }
15535
15592
  ),
15536
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15593
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
15537
15594
  "div",
15538
15595
  {
15539
15596
  id: drawerId,
@@ -15542,28 +15599,28 @@ var SidebarMobile = React75.forwardRef(
15542
15599
  "aria-modal": "true",
15543
15600
  "aria-label": menuLabel,
15544
15601
  "data-state": isOpen ? "open" : "closed",
15545
- className: cn66(
15602
+ className: cn67(
15546
15603
  "absolute inset-y-sm left-sm flex w-[86%] flex-col overflow-hidden",
15547
15604
  "max-w-[var(--container-drawer,360px)] rounded-xl bg-surface shadow-modal",
15548
15605
  "transition-[transform,visibility] duration-200 ease-out",
15549
15606
  isOpen ? "visible translate-x-0" : "invisible -translate-x-full"
15550
15607
  ),
15551
15608
  children: [
15552
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex shrink-0 items-center justify-between gap-md px-lg pb-sm pt-md", children: [
15553
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15609
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex shrink-0 items-center justify-between gap-md px-lg pb-sm pt-md", children: [
15610
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15554
15611
  "a",
15555
15612
  {
15556
15613
  href: homeHref,
15557
15614
  onClick: navigate({ id: "home", href: homeHref }),
15558
- className: cn66(
15615
+ className: cn67(
15559
15616
  "inline-flex min-w-0 cursor-pointer items-center rounded-xs",
15560
15617
  "transition duration-150 ease-out hover:opacity-80",
15561
15618
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue"
15562
15619
  ),
15563
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Logo, { size: "md", wordmark })
15620
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Logo, { size: "md", wordmark })
15564
15621
  }
15565
15622
  ),
15566
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15623
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15567
15624
  Button,
15568
15625
  {
15569
15626
  ref: closeRef,
@@ -15576,9 +15633,9 @@ var SidebarMobile = React75.forwardRef(
15576
15633
  }
15577
15634
  )
15578
15635
  ] }),
15579
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-md pb-sm", children: [
15580
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "px-xs", children: [
15581
- accountList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15636
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-md pb-sm", children: [
15637
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "px-xs", children: [
15638
+ accountList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15582
15639
  Button,
15583
15640
  {
15584
15641
  ref: triggerRef,
@@ -15588,37 +15645,37 @@ var SidebarMobile = React75.forwardRef(
15588
15645
  "aria-expanded": accountsOpen,
15589
15646
  "aria-controls": accountsPanelId,
15590
15647
  onClick: () => setAccountsOpen((previous) => !previous),
15591
- trailingIcon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15648
+ trailingIcon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15592
15649
  "span",
15593
15650
  {
15594
15651
  "aria-hidden": "true",
15595
- className: cn66(
15652
+ className: cn67(
15596
15653
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
15597
15654
  accountsOpen ? "rotate-180" : "rotate-0"
15598
15655
  ),
15599
15656
  children: glyph4("chevron-down", 16, 2)
15600
15657
  }
15601
15658
  ),
15602
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex min-w-0 items-center gap-sm", children: [
15659
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { className: "flex min-w-0 items-center gap-sm", children: [
15603
15660
  glyph4("layers", 18, 1.75),
15604
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
15661
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate", children: currentAccount?.label ?? "Choose account" })
15605
15662
  ] })
15606
15663
  }
15607
- ) : /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("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: [
15664
+ ) : /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("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: [
15608
15665
  glyph4("layers", 18, 1.75),
15609
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: currentAccount?.label })
15666
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate", children: currentAccount?.label })
15610
15667
  ] }),
15611
- accountList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15668
+ accountList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15612
15669
  "div",
15613
15670
  {
15614
15671
  id: accountsPanelId,
15615
15672
  "data-state": accountsOpen ? "open" : "closed",
15616
15673
  "aria-hidden": accountsOpen ? void 0 : true,
15617
- className: cn66(
15674
+ className: cn67(
15618
15675
  "grid transition-[grid-template-rows,opacity] duration-200 ease-out",
15619
15676
  accountsOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
15620
15677
  ),
15621
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15678
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15622
15679
  "div",
15623
15680
  {
15624
15681
  role: "listbox",
@@ -15626,7 +15683,7 @@ var SidebarMobile = React75.forwardRef(
15626
15683
  className: "mt-xs flex flex-col gap-xxs rounded-lg border border-hairline bg-surface p-xs shadow-sm",
15627
15684
  children: accountList.map((account) => {
15628
15685
  const selected = account.value === selectedAccount;
15629
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15686
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15630
15687
  Button,
15631
15688
  {
15632
15689
  variant: "row",
@@ -15636,8 +15693,8 @@ var SidebarMobile = React75.forwardRef(
15636
15693
  "data-selected": selected,
15637
15694
  tabIndex: accountsOpen ? void 0 : -1,
15638
15695
  onClick: () => chooseAccount(account),
15639
- leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name: "layers", size: 16, tone: "muted" }),
15640
- trailingIcon: selected ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15696
+ leadingIcon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "layers", size: 16, tone: "muted" }),
15697
+ trailingIcon: selected ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15641
15698
  Icon,
15642
15699
  {
15643
15700
  name: "check",
@@ -15648,7 +15705,7 @@ var SidebarMobile = React75.forwardRef(
15648
15705
  }
15649
15706
  }
15650
15707
  ) : void 0,
15651
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: account.label })
15708
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate", children: account.label })
15652
15709
  },
15653
15710
  account.value
15654
15711
  );
@@ -15658,11 +15715,11 @@ var SidebarMobile = React75.forwardRef(
15658
15715
  }
15659
15716
  ) : null
15660
15717
  ] }),
15661
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("nav", { "aria-label": "Primary", className: "mt-md flex flex-col gap-xxs", children: navItems.map((item) => {
15718
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("nav", { "aria-label": "Primary", className: "mt-md flex flex-col gap-xxs", children: navItems.map((item) => {
15662
15719
  const active = item.id === activeId;
15663
15720
  const badged = hasBadge2(item.badge);
15664
15721
  if (!item.children?.length) {
15665
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15722
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
15666
15723
  "a",
15667
15724
  {
15668
15725
  href: item.href ?? `#${item.id}`,
@@ -15672,8 +15729,8 @@ var SidebarMobile = React75.forwardRef(
15672
15729
  className: rowClass(active),
15673
15730
  children: [
15674
15731
  glyph4(item.icon, 18, 1.75),
15675
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: item.label }),
15676
- badged ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15732
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate", children: item.label }),
15733
+ badged ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15677
15734
  NavBadge,
15678
15735
  {
15679
15736
  badge: item.badge,
@@ -15687,8 +15744,8 @@ var SidebarMobile = React75.forwardRef(
15687
15744
  }
15688
15745
  const expanded = expandedId === item.id;
15689
15746
  const subId = `${uid}-${item.id}-sub`;
15690
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex flex-col gap-xxs", children: [
15691
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15747
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex flex-col gap-xxs", children: [
15748
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15692
15749
  Button,
15693
15750
  {
15694
15751
  variant: "nav-row",
@@ -15700,19 +15757,19 @@ var SidebarMobile = React75.forwardRef(
15700
15757
  onClick: () => toggleExpanded(item.id),
15701
15758
  className: "px-md",
15702
15759
  leadingIcon: glyph4(item.icon, 18, 1.75),
15703
- trailingIcon: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex items-center gap-xs", children: [
15704
- badged ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15760
+ trailingIcon: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { className: "flex items-center gap-xs", children: [
15761
+ badged ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15705
15762
  NavBadge,
15706
15763
  {
15707
15764
  badge: item.badge,
15708
15765
  active
15709
15766
  }
15710
15767
  ) : null,
15711
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15768
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15712
15769
  "span",
15713
15770
  {
15714
15771
  "aria-hidden": "true",
15715
- className: cn66(
15772
+ className: cn67(
15716
15773
  "flex shrink-0 items-center transition-transform duration-200 ease-out",
15717
15774
  expanded ? "rotate-180" : "rotate-0"
15718
15775
  ),
@@ -15720,20 +15777,20 @@ var SidebarMobile = React75.forwardRef(
15720
15777
  }
15721
15778
  )
15722
15779
  ] }),
15723
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-left", children: item.label })
15780
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate text-left", children: item.label })
15724
15781
  }
15725
15782
  ),
15726
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15783
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15727
15784
  "div",
15728
15785
  {
15729
15786
  id: subId,
15730
15787
  "data-state": expanded ? "open" : "closed",
15731
15788
  "aria-hidden": expanded ? void 0 : true,
15732
- className: cn66(
15789
+ className: cn67(
15733
15790
  "grid transition-[grid-template-rows,opacity] duration-200 ease-out",
15734
15791
  expanded ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
15735
15792
  ),
15736
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("ul", { className: "flex flex-col", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15793
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("ul", { className: "flex flex-col", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
15737
15794
  "a",
15738
15795
  {
15739
15796
  href: child.href ?? `#${child.id}`,
@@ -15744,14 +15801,14 @@ var SidebarMobile = React75.forwardRef(
15744
15801
  tabIndex: expanded ? void 0 : -1,
15745
15802
  className: subRowClass,
15746
15803
  children: [
15747
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15804
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15748
15805
  "span",
15749
15806
  {
15750
15807
  "aria-hidden": "true",
15751
15808
  className: "size-4 shrink-0"
15752
15809
  }
15753
15810
  ),
15754
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: child.label })
15811
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate", children: child.label })
15755
15812
  ]
15756
15813
  }
15757
15814
  ) }, child.id)) }) })
@@ -15759,8 +15816,8 @@ var SidebarMobile = React75.forwardRef(
15759
15816
  )
15760
15817
  ] }, item.id);
15761
15818
  }) }),
15762
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Divider, { className: "my-md" }),
15763
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15819
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Divider, { className: "my-md" }),
15820
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15764
15821
  Button,
15765
15822
  {
15766
15823
  variant: "outline-soft",
@@ -15772,11 +15829,11 @@ var SidebarMobile = React75.forwardRef(
15772
15829
  children: primaryActionLabel
15773
15830
  }
15774
15831
  ),
15775
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Divider, { className: "my-md" }),
15776
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("nav", { "aria-label": "Secondary", className: "flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15832
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Divider, { className: "my-md" }),
15833
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("nav", { "aria-label": "Secondary", className: "flex flex-col gap-xxs", children: secondaryNav.map((item) => {
15777
15834
  const active = item.id === secondaryActiveId;
15778
15835
  const badged = hasBadge2(item.badge);
15779
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15836
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
15780
15837
  "a",
15781
15838
  {
15782
15839
  href: item.href ?? `#${item.id}`,
@@ -15786,8 +15843,8 @@ var SidebarMobile = React75.forwardRef(
15786
15843
  className: rowClass(active),
15787
15844
  children: [
15788
15845
  glyph4(item.icon, 18, 1.75),
15789
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate", children: item.label }),
15790
- badged ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15846
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate", children: item.label }),
15847
+ badged ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15791
15848
  NavBadge,
15792
15849
  {
15793
15850
  badge: item.badge,
@@ -15800,14 +15857,14 @@ var SidebarMobile = React75.forwardRef(
15800
15857
  );
15801
15858
  }) })
15802
15859
  ] }),
15803
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex shrink-0 flex-col gap-sm bg-surface px-md pb-md pt-xs", children: [
15860
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex shrink-0 flex-col gap-sm bg-surface px-md pb-md pt-xs", children: [
15804
15861
  mobileDrawerFooter,
15805
- planTile ? /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
15862
+ planTile ? /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
15806
15863
  "a",
15807
15864
  {
15808
15865
  href: planTile.href ?? "#plan",
15809
15866
  onClick: navigate({ id: "plan", href: planTile.href }),
15810
- className: cn66(
15867
+ className: cn67(
15811
15868
  "flex w-full cursor-pointer items-center gap-md rounded-lg bg-primary-subdued",
15812
15869
  "px-md py-sm transition duration-150 ease-out",
15813
15870
  "hover:bg-primary-subdued-hover active:bg-primary-subdued-hover",
@@ -15815,23 +15872,23 @@ var SidebarMobile = React75.forwardRef(
15815
15872
  "focus-visible:ring-inset"
15816
15873
  ),
15817
15874
  children: [
15818
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "flex shrink-0 items-center text-primary-on-subdued", children: glyph4("chart-bar", 18, 2) }),
15819
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15820
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-body-md text-ink", children: planTile.name }),
15821
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-body-tabular text-body", children: planTile.price })
15875
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "flex shrink-0 items-center text-primary-on-subdued", children: glyph4("chart-bar", 18, 2) }),
15876
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15877
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate text-body-md text-ink", children: planTile.name }),
15878
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate text-body-tabular text-body", children: planTile.price })
15822
15879
  ] }),
15823
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "shrink-0 text-primary-on-subdued", children: glyph4("arrow-up-right", 18, 2) })
15880
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "shrink-0 text-primary-on-subdued", children: glyph4("arrow-up-right", 18, 2) })
15824
15881
  ]
15825
15882
  }
15826
15883
  ) : null,
15827
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center gap-sm px-xs", children: [
15828
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Avatar, { name: profile.name, src: profile.src, size: "md" }),
15829
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15830
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-body-md text-ink", children: profile.name }),
15831
- profile.email ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "truncate text-caption text-body", children: profile.email }) : null
15884
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-sm px-xs", children: [
15885
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Avatar, { name: profile.name, src: profile.src, size: "md" }),
15886
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
15887
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate text-body-md text-ink", children: profile.name }),
15888
+ profile.email ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "truncate text-caption text-body", children: profile.email }) : null
15832
15889
  ] }),
15833
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { className: "relative inline-flex shrink-0", children: [
15834
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15890
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { className: "relative inline-flex shrink-0", children: [
15891
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15835
15892
  Button,
15836
15893
  {
15837
15894
  variant: "bare",
@@ -15842,11 +15899,11 @@ var SidebarMobile = React75.forwardRef(
15842
15899
  children: glyph4("bell", 20, 1.75)
15843
15900
  }
15844
15901
  ),
15845
- notificationCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15902
+ notificationCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15846
15903
  "span",
15847
15904
  {
15848
15905
  "aria-hidden": "true",
15849
- className: cn66(
15906
+ className: cn67(
15850
15907
  "pointer-events-none absolute -right-xxs -top-xxs",
15851
15908
  "flex h-4 min-w-4 items-center justify-center rounded-full",
15852
15909
  "bg-primary px-xxs text-caption text-on-primary"
@@ -15855,7 +15912,7 @@ var SidebarMobile = React75.forwardRef(
15855
15912
  }
15856
15913
  ) : null
15857
15914
  ] }),
15858
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15915
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15859
15916
  Button,
15860
15917
  {
15861
15918
  variant: "bare",
@@ -15876,9 +15933,9 @@ var SidebarMobile = React75.forwardRef(
15876
15933
  ),
15877
15934
  document.body
15878
15935
  );
15879
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { ref, className: cn66("w-full", className), ...rest, children: [
15880
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex w-full items-center gap-xs border-b border-hairline bg-surface px-md py-sm", children: [
15881
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15936
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { ref, className: cn67("w-full", className), ...rest, children: [
15937
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex w-full items-center gap-xs border-b border-hairline bg-surface px-md py-sm", children: [
15938
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15882
15939
  Button,
15883
15940
  {
15884
15941
  ref: toggleRef,
@@ -15892,20 +15949,20 @@ var SidebarMobile = React75.forwardRef(
15892
15949
  children: glyph4("menu", 22, 2)
15893
15950
  }
15894
15951
  ),
15895
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
15952
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
15896
15953
  "a",
15897
15954
  {
15898
15955
  href: homeHref,
15899
15956
  onClick: navigate({ id: "home", href: homeHref }),
15900
- className: cn66(
15957
+ className: cn67(
15901
15958
  "inline-flex min-w-0 cursor-pointer items-center rounded-xs",
15902
15959
  "transition duration-150 ease-out hover:opacity-80",
15903
15960
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue"
15904
15961
  ),
15905
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Logo, { size: "md", wordmark })
15962
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Logo, { size: "md", wordmark })
15906
15963
  }
15907
15964
  ),
15908
- mobileActions ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "ml-auto flex shrink-0 items-center gap-xs", children: mobileActions }) : null
15965
+ mobileActions ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "ml-auto flex shrink-0 items-center gap-xs", children: mobileActions }) : null
15909
15966
  ] }),
15910
15967
  drawer
15911
15968
  ] });
@@ -15914,9 +15971,9 @@ var SidebarMobile = React75.forwardRef(
15914
15971
  SidebarMobile.displayName = "SidebarMobile";
15915
15972
 
15916
15973
  // virtual-pkg:src/atoms/Sidebar/Sidebar.tsx
15917
- var import_jsx_runtime76 = require("react/jsx-runtime");
15918
- var cn67 = (...values) => values.filter(Boolean).join(" ");
15919
- var Sidebar = React76.forwardRef(
15974
+ var import_jsx_runtime77 = require("react/jsx-runtime");
15975
+ var cn68 = (...values) => values.filter(Boolean).join(" ");
15976
+ var Sidebar = React77.forwardRef(
15920
15977
  ({
15921
15978
  wordmark,
15922
15979
  homeHref,
@@ -15955,8 +16012,8 @@ var Sidebar = React76.forwardRef(
15955
16012
  mobileClassName,
15956
16013
  className,
15957
16014
  ...rest
15958
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { ref, className: cn67("h-full w-full", className), ...rest, children: [
15959
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "hidden h-full md:block", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
16015
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { ref, className: cn68("h-full w-full", className), ...rest, children: [
16016
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "hidden h-full md:block", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
15960
16017
  SidebarDesktop,
15961
16018
  {
15962
16019
  className: desktopClassName,
@@ -15987,7 +16044,7 @@ var Sidebar = React76.forwardRef(
15987
16044
  onFoldedChange
15988
16045
  }
15989
16046
  ) }),
15990
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
16047
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
15991
16048
  SidebarMobile,
15992
16049
  {
15993
16050
  className: mobileClassName,
@@ -16029,7 +16086,7 @@ Sidebar.displayName = "Sidebar";
16029
16086
 
16030
16087
  // virtual-pkg:src/atoms/Skeleton/Skeleton.tsx
16031
16088
  var import_react6 = __toESM(require("react"));
16032
- var import_jsx_runtime77 = require("react/jsx-runtime");
16089
+ var import_jsx_runtime78 = require("react/jsx-runtime");
16033
16090
  var cx2 = (...parts) => parts.filter(Boolean).join(" ");
16034
16091
  var CARD_ROWS = [
16035
16092
  ["w-[18%]", "w-[24%]", "w-[13%]"],
@@ -16056,7 +16113,7 @@ var Skeleton = import_react6.default.forwardRef(
16056
16113
  let content;
16057
16114
  switch (variant) {
16058
16115
  case "circle":
16059
- content = /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
16116
+ content = /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16060
16117
  "div",
16061
16118
  {
16062
16119
  "aria-hidden": "true",
@@ -16066,7 +16123,7 @@ var Skeleton = import_react6.default.forwardRef(
16066
16123
  break;
16067
16124
  case "text": {
16068
16125
  const count = Math.max(1, lines);
16069
- content = /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { "aria-hidden": "true", className: "flex w-full flex-col gap-sm", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
16126
+ content = /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { "aria-hidden": "true", className: "flex w-full flex-col gap-sm", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16070
16127
  "div",
16071
16128
  {
16072
16129
  className: cx2(
@@ -16080,49 +16137,49 @@ var Skeleton = import_react6.default.forwardRef(
16080
16137
  break;
16081
16138
  }
16082
16139
  case "media":
16083
- content = /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { "aria-hidden": "true", className: "flex w-full items-center gap-md", children: [
16084
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("shrink-0 rounded-full"), "size-xxl") }),
16085
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex w-full flex-col gap-sm", children: [
16086
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("rounded-xs"), "h-sm w-[62%]") }),
16087
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("rounded-xs"), "h-sm w-full") })
16140
+ content = /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { "aria-hidden": "true", className: "flex w-full items-center gap-md", children: [
16141
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("shrink-0 rounded-full"), "size-xxl") }),
16142
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex w-full flex-col gap-sm", children: [
16143
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("rounded-xs"), "h-sm w-[62%]") }),
16144
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("rounded-xs"), "h-sm w-full") })
16088
16145
  ] })
16089
16146
  ] });
16090
16147
  break;
16091
16148
  case "list-row":
16092
- content = /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
16149
+ content = /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
16093
16150
  "div",
16094
16151
  {
16095
16152
  "aria-hidden": "true",
16096
16153
  className: "flex w-full items-center rounded-md border border-hairline bg-surface px-base py-md shadow-card",
16097
16154
  children: [
16098
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("rounded-sm"), "h-md w-[46%]") }),
16099
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "ml-auto flex items-center gap-md", children: [
16100
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "h-lg w-px shrink-0 bg-hairline" }),
16101
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("rounded-sm"), "size-md") }),
16102
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("rounded-sm"), "size-md") })
16155
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("rounded-sm"), "h-md w-[46%]") }),
16156
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "ml-auto flex items-center gap-md", children: [
16157
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "h-lg w-px shrink-0 bg-hairline" }),
16158
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("rounded-sm"), "size-md") }),
16159
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("rounded-sm"), "size-md") })
16103
16160
  ] })
16104
16161
  ]
16105
16162
  }
16106
16163
  );
16107
16164
  break;
16108
16165
  case "card":
16109
- content = /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
16166
+ content = /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16110
16167
  "div",
16111
16168
  {
16112
16169
  "aria-hidden": "true",
16113
16170
  className: "w-full overflow-hidden rounded-lg border border-hairline bg-surface shadow-card",
16114
16171
  children: Array.from({ length: Math.max(1, rows) }).map((_, i) => {
16115
16172
  const [lead, mid, trail] = CARD_ROWS[i % CARD_ROWS.length];
16116
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
16173
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
16117
16174
  "div",
16118
16175
  {
16119
16176
  className: "flex items-center justify-between gap-lg border-b border-hairline-soft px-lg py-md last:border-b-0",
16120
16177
  children: [
16121
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex min-w-0 flex-1 items-center gap-lg", children: [
16122
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", lead) }),
16123
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", mid) })
16178
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex min-w-0 flex-1 items-center gap-lg", children: [
16179
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", lead) }),
16180
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", mid) })
16124
16181
  ] }),
16125
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", trail) })
16182
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cx2(fill("shrink-0 rounded-sm"), "h-md", trail) })
16126
16183
  ]
16127
16184
  },
16128
16185
  i
@@ -16133,7 +16190,7 @@ var Skeleton = import_react6.default.forwardRef(
16133
16190
  break;
16134
16191
  case "bar":
16135
16192
  default:
16136
- content = /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
16193
+ content = /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16137
16194
  "div",
16138
16195
  {
16139
16196
  "aria-hidden": "true",
@@ -16142,7 +16199,7 @@ var Skeleton = import_react6.default.forwardRef(
16142
16199
  );
16143
16200
  break;
16144
16201
  }
16145
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
16202
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16146
16203
  "div",
16147
16204
  {
16148
16205
  ref,
@@ -16159,13 +16216,13 @@ var Skeleton = import_react6.default.forwardRef(
16159
16216
  Skeleton.displayName = "Skeleton";
16160
16217
 
16161
16218
  // virtual-pkg:src/atoms/Slider/Slider.tsx
16162
- var React78 = __toESM(require("react"));
16163
- var import_jsx_runtime78 = require("react/jsx-runtime");
16164
- var cn68 = (...values) => values.filter(Boolean).join(" ");
16219
+ var React79 = __toESM(require("react"));
16220
+ var import_jsx_runtime79 = require("react/jsx-runtime");
16221
+ var cn69 = (...values) => values.filter(Boolean).join(" ");
16165
16222
  var THUMB_PX = 24;
16166
16223
  var TRAVEL_INSET = THUMB_PX / 2;
16167
16224
  var defaultFormat = (value) => value.toLocaleString();
16168
- var Slider = React78.forwardRef(
16225
+ var Slider = React79.forwardRef(
16169
16226
  ({
16170
16227
  value,
16171
16228
  defaultValue,
@@ -16189,12 +16246,12 @@ var Slider = React78.forwardRef(
16189
16246
  "aria-label": ariaLabelProp,
16190
16247
  ...rest
16191
16248
  }, ref) => {
16192
- const generatedId = React78.useId();
16249
+ const generatedId = React79.useId();
16193
16250
  const sliderId = id ?? `slider-${generatedId}`;
16194
- const [internalValue, setInternalValue] = React78.useState(
16251
+ const [internalValue, setInternalValue] = React79.useState(
16195
16252
  defaultValue ?? min
16196
16253
  );
16197
- const [focused, setFocused] = React78.useState(false);
16254
+ const [focused, setFocused] = React79.useState(false);
16198
16255
  const isControlled = value !== void 0;
16199
16256
  const current = isControlled ? Number(value) : internalValue;
16200
16257
  const span = max - min;
@@ -16210,16 +16267,16 @@ var Slider = React78.forwardRef(
16210
16267
  const readout = format(current);
16211
16268
  const thumbLeft = `calc(${TRAVEL_INSET}px + (100% - ${THUMB_PX}px) * ${ratio})`;
16212
16269
  const fillWidth = `calc(${TRAVEL_INSET}px + (100% - ${THUMB_PX}px) * ${ratio})`;
16213
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
16270
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
16214
16271
  "div",
16215
16272
  {
16216
- className: cn68(
16273
+ className: cn69(
16217
16274
  "flex w-full flex-col gap-lg transition-opacity duration-150 ease-out",
16218
16275
  disabled ? "opacity-50" : "",
16219
16276
  className
16220
16277
  ),
16221
16278
  children: [
16222
- label ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16279
+ label ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16223
16280
  Label,
16224
16281
  {
16225
16282
  htmlFor: sliderId,
@@ -16228,11 +16285,11 @@ var Slider = React78.forwardRef(
16228
16285
  children: label
16229
16286
  }
16230
16287
  ) : null,
16231
- showValue ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16288
+ showValue ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16232
16289
  "output",
16233
16290
  {
16234
16291
  htmlFor: sliderId,
16235
- className: cn68(
16292
+ className: cn69(
16236
16293
  "flex min-h-12 w-full items-center rounded-md border bg-surface px-lg py-sm",
16237
16294
  "transition-colors duration-150 ease-out",
16238
16295
  disabled ? "border-hairline-soft" : "border-hairline-strong",
@@ -16243,14 +16300,14 @@ var Slider = React78.forwardRef(
16243
16300
  children: readout
16244
16301
  }
16245
16302
  ) : null,
16246
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex w-full flex-col gap-sm", children: [
16247
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "group relative w-full", children: [
16248
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "pointer-events-none flex h-10 w-full items-center px-sm", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "relative h-1.5 w-full rounded-full bg-surface-strong", children: [
16249
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16303
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex w-full flex-col gap-sm", children: [
16304
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "group relative w-full", children: [
16305
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "pointer-events-none flex h-10 w-full items-center px-sm", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "relative h-1.5 w-full rounded-full bg-surface-strong", children: [
16306
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16250
16307
  "span",
16251
16308
  {
16252
16309
  "aria-hidden": "true",
16253
- className: cn68(
16310
+ className: cn69(
16254
16311
  "absolute left-0 top-0 h-full rounded-full",
16255
16312
  "transition-[width,background-color] duration-150 ease-out",
16256
16313
  disabled ? "bg-primary-disabled" : "bg-primary"
@@ -16258,11 +16315,11 @@ var Slider = React78.forwardRef(
16258
16315
  style: { width: fillWidth }
16259
16316
  }
16260
16317
  ),
16261
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16318
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16262
16319
  "span",
16263
16320
  {
16264
16321
  "aria-hidden": "true",
16265
- className: cn68(
16322
+ className: cn69(
16266
16323
  "absolute top-1/2 size-6 -translate-x-1/2 -translate-y-1/2",
16267
16324
  "rounded-full border-2 bg-canvas shadow-sm",
16268
16325
  "transition duration-150 ease-out",
@@ -16273,7 +16330,7 @@ var Slider = React78.forwardRef(
16273
16330
  }
16274
16331
  )
16275
16332
  ] }) }),
16276
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "absolute inset-0 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
16333
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "absolute inset-0 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16277
16334
  Input,
16278
16335
  {
16279
16336
  ref,
@@ -16299,7 +16356,7 @@ var Slider = React78.forwardRef(
16299
16356
  },
16300
16357
  className: "h-full",
16301
16358
  fieldClassName: "h-10 gap-0",
16302
- inputClassName: cn68(
16359
+ inputClassName: cn69(
16303
16360
  "h-10 w-full appearance-none bg-transparent p-0 opacity-0",
16304
16361
  disabled ? "cursor-not-allowed" : "cursor-pointer"
16305
16362
  ),
@@ -16307,18 +16364,18 @@ var Slider = React78.forwardRef(
16307
16364
  }
16308
16365
  ) })
16309
16366
  ] }),
16310
- showBounds ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
16367
+ showBounds ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
16311
16368
  "div",
16312
16369
  {
16313
- className: cn68(
16370
+ className: cn69(
16314
16371
  "flex w-full items-center justify-between px-sm text-caption",
16315
16372
  disabled ? "text-muted-soft" : "text-muted",
16316
16373
  boundsClassName
16317
16374
  ),
16318
16375
  style: { fontVariantNumeric: "tabular-nums" },
16319
16376
  children: [
16320
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: formatBounds(min) }),
16321
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: formatBounds(max) })
16377
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { children: formatBounds(min) }),
16378
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { children: formatBounds(max) })
16322
16379
  ]
16323
16380
  }
16324
16381
  ) : null
@@ -16331,20 +16388,20 @@ var Slider = React78.forwardRef(
16331
16388
  Slider.displayName = "Slider";
16332
16389
 
16333
16390
  // virtual-pkg:src/atoms/Spinner/Spinner.tsx
16334
- var React79 = __toESM(require("react"));
16335
- var import_jsx_runtime79 = require("react/jsx-runtime");
16336
- var cn69 = (...values) => values.filter(Boolean).join(" ");
16391
+ var React80 = __toESM(require("react"));
16392
+ var import_jsx_runtime80 = require("react/jsx-runtime");
16393
+ var cn70 = (...values) => values.filter(Boolean).join(" ");
16337
16394
  var GEOMETRY = {
16338
16395
  sm: { box: 20, ring: 2, glyph: 11, stroke: 3.25, turn: 0.7 },
16339
16396
  md: { box: 32, ring: 3, glyph: 17, stroke: 2.9, turn: 0.9 },
16340
16397
  lg: { box: 56, ring: 4, glyph: 29, stroke: 2.4, turn: 1.1 }
16341
16398
  };
16342
16399
  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)";
16343
- var Spinner = React79.forwardRef(
16400
+ var Spinner = React80.forwardRef(
16344
16401
  ({ size = "md", status = "loading", message, caption, className, ...rest }, ref) => {
16345
16402
  const { box, ring, glyph: glyph5, stroke, turn } = GEOMETRY[size];
16346
16403
  const hole = `radial-gradient(closest-side, transparent calc(100% - ${ring}px), black calc(100% - ${ring}px))`;
16347
- const indicator = /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
16404
+ const indicator = /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
16348
16405
  "span",
16349
16406
  {
16350
16407
  "aria-hidden": "true",
@@ -16352,10 +16409,10 @@ var Spinner = React79.forwardRef(
16352
16409
  className: "group relative inline-flex shrink-0 items-center justify-center",
16353
16410
  style: { width: box, height: box },
16354
16411
  children: [
16355
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16412
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16356
16413
  "span",
16357
16414
  {
16358
- className: cn69(
16415
+ className: cn70(
16359
16416
  "absolute inset-0 rounded-full",
16360
16417
  "animate-spin motion-reduce:animate-none",
16361
16418
  "transition duration-200 ease-out",
@@ -16369,23 +16426,23 @@ var Spinner = React79.forwardRef(
16369
16426
  }
16370
16427
  }
16371
16428
  ),
16372
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16429
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16373
16430
  "span",
16374
16431
  {
16375
- className: cn69(
16432
+ className: cn70(
16376
16433
  "absolute inset-0 inline-flex items-center justify-center rounded-full",
16377
16434
  "bg-primary text-on-primary",
16378
16435
  "transition duration-200 ease-out",
16379
16436
  "group-data-[status=loading]:scale-90 group-data-[status=loading]:opacity-0"
16380
16437
  ),
16381
- children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
16438
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16382
16439
  Icon,
16383
16440
  {
16384
16441
  name: "check",
16385
16442
  size: glyph5,
16386
16443
  strokeWidth: stroke,
16387
16444
  tone: "on-dark",
16388
- className: cn69(
16445
+ className: cn70(
16389
16446
  "transition duration-200 ease-out",
16390
16447
  "group-data-[status=success]:scale-100 group-data-[status=success]:opacity-100",
16391
16448
  "group-data-[status=loading]:scale-50 group-data-[status=loading]:opacity-0"
@@ -16397,26 +16454,26 @@ var Spinner = React79.forwardRef(
16397
16454
  ]
16398
16455
  }
16399
16456
  );
16400
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
16457
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
16401
16458
  "div",
16402
16459
  {
16403
16460
  ref,
16404
16461
  role: "status",
16405
16462
  "aria-live": "polite",
16406
16463
  "data-status": status,
16407
- className: cn69(
16464
+ className: cn70(
16408
16465
  "inline-flex",
16409
16466
  caption ? "flex-col items-center gap-sm" : "items-center",
16410
16467
  className
16411
16468
  ),
16412
16469
  ...rest,
16413
16470
  children: [
16414
- message ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "inline-flex items-center gap-md", children: [
16471
+ message ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "inline-flex items-center gap-md", children: [
16415
16472
  indicator,
16416
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-body-md text-ink transition-colors duration-200 ease-out", children: message })
16473
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-body-md text-ink transition-colors duration-200 ease-out", children: message })
16417
16474
  ] }) : indicator,
16418
- caption ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-body-sm text-ink", children: caption }) : null,
16419
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "sr-only", children: status === "success" ? caption ?? "Success" : message ?? "Loading" })
16475
+ caption ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-body-sm text-ink", children: caption }) : null,
16476
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "sr-only", children: status === "success" ? caption ?? "Success" : message ?? "Loading" })
16420
16477
  ]
16421
16478
  }
16422
16479
  );
@@ -16425,9 +16482,9 @@ var Spinner = React79.forwardRef(
16425
16482
  Spinner.displayName = "Spinner";
16426
16483
 
16427
16484
  // virtual-pkg:src/atoms/StepperItem/StepperItem.tsx
16428
- var React80 = __toESM(require("react"));
16429
- var import_jsx_runtime80 = require("react/jsx-runtime");
16430
- var cn70 = (...values) => values.filter(Boolean).join(" ");
16485
+ var React81 = __toESM(require("react"));
16486
+ var import_jsx_runtime81 = require("react/jsx-runtime");
16487
+ var cn71 = (...values) => values.filter(Boolean).join(" ");
16431
16488
  var STATUS_TEXT = {
16432
16489
  upcoming: "Upcoming",
16433
16490
  active: "In progress",
@@ -16446,7 +16503,7 @@ var DOT_SKIN = {
16446
16503
  complete: "size-4 bg-primary",
16447
16504
  error: "size-4 bg-semantic-error"
16448
16505
  };
16449
- var StepperItem = React80.forwardRef(
16506
+ var StepperItem = React81.forwardRef(
16450
16507
  ({
16451
16508
  variant = "step",
16452
16509
  status = "upcoming",
@@ -16463,18 +16520,18 @@ var StepperItem = React80.forwardRef(
16463
16520
  const max = progressMax > 0 ? progressMax : 1;
16464
16521
  const value = Math.min(Math.max(progressValue, 0), max);
16465
16522
  const percent = Math.round(value / max * 100);
16466
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
16523
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
16467
16524
  "div",
16468
16525
  {
16469
16526
  ref,
16470
- className: cn70(
16527
+ className: cn71(
16471
16528
  "flex w-full items-center gap-md rounded-xl border border-hairline bg-surface p-base shadow-card",
16472
16529
  className
16473
16530
  ),
16474
16531
  ...rest,
16475
16532
  children: [
16476
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "relative grid size-[4.5rem] shrink-0 place-items-center", children: [
16477
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16533
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "relative grid size-[4.5rem] shrink-0 place-items-center", children: [
16534
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16478
16535
  "span",
16479
16536
  {
16480
16537
  "aria-hidden": "true",
@@ -16484,48 +16541,48 @@ var StepperItem = React80.forwardRef(
16484
16541
  }
16485
16542
  }
16486
16543
  ),
16487
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16544
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16488
16545
  "span",
16489
16546
  {
16490
16547
  "aria-hidden": "true",
16491
16548
  className: "absolute inset-sm rounded-full bg-surface"
16492
16549
  }
16493
16550
  ),
16494
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "relative text-center text-caption text-primary", children: [
16495
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "block whitespace-nowrap", children: [
16551
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "relative text-center text-caption text-primary", children: [
16552
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "block whitespace-nowrap", children: [
16496
16553
  value,
16497
16554
  " of ",
16498
16555
  max
16499
16556
  ] }),
16500
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "block", children: progressUnit })
16557
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "block", children: progressUnit })
16501
16558
  ] })
16502
16559
  ] }),
16503
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "min-w-0 flex-1 text-body-lg text-ink", children: label })
16560
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "min-w-0 flex-1 text-body-lg text-ink", children: label })
16504
16561
  ]
16505
16562
  }
16506
16563
  );
16507
16564
  }
16508
16565
  const dot = DOT_SKIN[status];
16509
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
16566
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
16510
16567
  "div",
16511
16568
  {
16512
16569
  ref,
16513
16570
  "aria-current": status === "active" ? "step" : void 0,
16514
- className: cn70("flex w-full items-stretch gap-md", className),
16571
+ className: cn71("flex w-full items-stretch gap-md", className),
16515
16572
  ...rest,
16516
16573
  children: [
16517
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex w-6 shrink-0 flex-col items-center", children: [
16518
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16574
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex w-6 shrink-0 flex-col items-center", children: [
16575
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16519
16576
  "span",
16520
16577
  {
16521
- className: cn70(
16578
+ className: cn71(
16522
16579
  "grid size-6 shrink-0 place-items-center rounded-full transition-colors duration-200 ease-out",
16523
16580
  RING_SKIN[status]
16524
16581
  ),
16525
- children: dot ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
16582
+ children: dot ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16526
16583
  "span",
16527
16584
  {
16528
- className: cn70(
16585
+ className: cn71(
16529
16586
  "rounded-full transition-colors duration-200 ease-out",
16530
16587
  dot
16531
16588
  )
@@ -16533,12 +16590,12 @@ var StepperItem = React80.forwardRef(
16533
16590
  ) : null
16534
16591
  }
16535
16592
  ),
16536
- connector ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { "aria-hidden": "true", className: "mt-sm w-px flex-1 bg-hairline" }) : null
16593
+ connector ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { "aria-hidden": "true", className: "mt-sm w-px flex-1 bg-hairline" }) : null
16537
16594
  ] }),
16538
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: cn70("min-w-0 flex-1 pt-xl", connector ? "pb-xl" : "pb-0"), children: [
16539
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-body-md text-ink", children: label }),
16540
- meta ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "mt-xxs text-body-tabular text-muted", children: meta }) : null,
16541
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "sr-only", children: STATUS_TEXT[status] })
16595
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: cn71("min-w-0 flex-1 pt-xl", connector ? "pb-xl" : "pb-0"), children: [
16596
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-body-md text-ink", children: label }),
16597
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mt-xxs text-body-tabular text-muted", children: meta }) : null,
16598
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "sr-only", children: STATUS_TEXT[status] })
16542
16599
  ] })
16543
16600
  ]
16544
16601
  }
@@ -16548,14 +16605,14 @@ var StepperItem = React80.forwardRef(
16548
16605
  StepperItem.displayName = "StepperItem";
16549
16606
 
16550
16607
  // virtual-pkg:src/atoms/Tab/Tab.tsx
16551
- var React81 = __toESM(require("react"));
16552
- var import_jsx_runtime81 = require("react/jsx-runtime");
16553
- var cn71 = (...values) => values.filter(Boolean).join(" ");
16608
+ var React82 = __toESM(require("react"));
16609
+ var import_jsx_runtime82 = require("react/jsx-runtime");
16610
+ var cn72 = (...values) => values.filter(Boolean).join(" ");
16554
16611
  var pillPadding = {
16555
16612
  sm: "px-xs py-xxs text-caption",
16556
16613
  md: "px-sm py-xxs text-caption"
16557
16614
  };
16558
- var Tab = React81.forwardRef(
16615
+ var Tab = React82.forwardRef(
16559
16616
  ({
16560
16617
  label,
16561
16618
  count,
@@ -16565,7 +16622,7 @@ var Tab = React81.forwardRef(
16565
16622
  disabled = false,
16566
16623
  className,
16567
16624
  ...rest
16568
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
16625
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
16569
16626
  Button,
16570
16627
  {
16571
16628
  ref,
@@ -16576,7 +16633,7 @@ var Tab = React81.forwardRef(
16576
16633
  "aria-selected": active,
16577
16634
  disabled,
16578
16635
  "data-active": active || void 0,
16579
- className: cn71(
16636
+ className: cn72(
16580
16637
  "cursor-pointer transition duration-150 ease-out active:scale-[0.98]",
16581
16638
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-blue",
16582
16639
  "disabled:cursor-not-allowed disabled:opacity-50",
@@ -16585,20 +16642,20 @@ var Tab = React81.forwardRef(
16585
16642
  ),
16586
16643
  ...rest,
16587
16644
  children: [
16588
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16645
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16589
16646
  "span",
16590
16647
  {
16591
- className: cn71(
16648
+ className: cn72(
16592
16649
  "whitespace-nowrap transition-colors duration-150 ease-out",
16593
16650
  size === "sm" ? "text-body-sm" : "text-label"
16594
16651
  ),
16595
16652
  children: label
16596
16653
  }
16597
16654
  ),
16598
- count !== void 0 && count !== null ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16655
+ count !== void 0 && count !== null ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16599
16656
  "span",
16600
16657
  {
16601
- className: cn71(
16658
+ className: cn72(
16602
16659
  "inline-flex shrink-0 items-center justify-center rounded-full",
16603
16660
  "tabular-nums font-weight-label leading-none",
16604
16661
  "transition-colors duration-150 ease-out",
@@ -16608,11 +16665,11 @@ var Tab = React81.forwardRef(
16608
16665
  children: count
16609
16666
  }
16610
16667
  ) : null,
16611
- indicator ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16668
+ indicator ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16612
16669
  "span",
16613
16670
  {
16614
16671
  "aria-hidden": "true",
16615
- className: cn71(
16672
+ className: cn72(
16616
16673
  "absolute -left-xs -right-xs bottom-0 rounded-full",
16617
16674
  "transition-colors duration-150 ease-out",
16618
16675
  active ? "h-xxs bg-primary" : "h-px bg-hairline"
@@ -16624,11 +16681,11 @@ var Tab = React81.forwardRef(
16624
16681
  )
16625
16682
  );
16626
16683
  Tab.displayName = "Tab";
16627
- var TabList = React81.forwardRef(
16684
+ var TabList = React82.forwardRef(
16628
16685
  ({ children, className, indicator = true, onKeyDown, ...rest }, ref) => {
16629
- const railRef = React81.useRef(null);
16630
- const [bar, setBar] = React81.useState({ left: 0, width: 0, visible: false });
16631
- const measure = React81.useCallback(() => {
16686
+ const railRef = React82.useRef(null);
16687
+ const [bar, setBar] = React82.useState({ left: 0, width: 0, visible: false });
16688
+ const measure = React82.useCallback(() => {
16632
16689
  const item = railRef.current?.querySelector(
16633
16690
  '[role="tab"][aria-selected="true"]'
16634
16691
  );
@@ -16641,19 +16698,19 @@ var TabList = React81.forwardRef(
16641
16698
  (prev) => prev.left === next.left && prev.width === next.width && prev.visible === next.visible ? prev : next
16642
16699
  );
16643
16700
  }, []);
16644
- React81.useLayoutEffect(() => {
16701
+ React82.useLayoutEffect(() => {
16645
16702
  measure();
16646
16703
  });
16647
- React81.useEffect(() => {
16704
+ React82.useEffect(() => {
16648
16705
  const rail = railRef.current;
16649
16706
  if (!rail || typeof ResizeObserver === "undefined") return;
16650
16707
  const observer = new ResizeObserver(measure);
16651
16708
  observer.observe(rail);
16652
16709
  return () => observer.disconnect();
16653
16710
  }, [measure]);
16654
- const items = React81.Children.map(
16711
+ const items = React82.Children.map(
16655
16712
  children,
16656
- (child) => React81.isValidElement(child) && child.type === Tab ? React81.cloneElement(child, { indicator: false }) : child
16713
+ (child) => React82.isValidElement(child) && child.type === Tab ? React82.cloneElement(child, { indicator: false }) : child
16657
16714
  );
16658
16715
  const handleKeyDown = (event) => {
16659
16716
  onKeyDown?.(event);
@@ -16670,7 +16727,7 @@ var TabList = React81.forwardRef(
16670
16727
  event.preventDefault();
16671
16728
  tabs[next]?.focus();
16672
16729
  };
16673
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
16730
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
16674
16731
  "div",
16675
16732
  {
16676
16733
  ref: (node) => {
@@ -16678,9 +16735,9 @@ var TabList = React81.forwardRef(
16678
16735
  if (typeof ref === "function") ref(node);
16679
16736
  else if (ref) ref.current = node;
16680
16737
  },
16681
- className: cn71("relative w-full", className),
16738
+ className: cn72("relative w-full", className),
16682
16739
  children: [
16683
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16740
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16684
16741
  "div",
16685
16742
  {
16686
16743
  role: "tablist",
@@ -16691,14 +16748,14 @@ var TabList = React81.forwardRef(
16691
16748
  children: items
16692
16749
  }
16693
16750
  ),
16694
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16751
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16695
16752
  "span",
16696
16753
  {
16697
16754
  "aria-hidden": "true",
16698
16755
  className: "pointer-events-none absolute inset-x-0 bottom-0 h-px bg-hairline"
16699
16756
  }
16700
16757
  ),
16701
- indicator ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
16758
+ indicator ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16702
16759
  "span",
16703
16760
  {
16704
16761
  "aria-hidden": "true",
@@ -16707,7 +16764,7 @@ var TabList = React81.forwardRef(
16707
16764
  width: bar.width ? `${bar.width}px` : 0,
16708
16765
  opacity: bar.visible ? 1 : 0
16709
16766
  },
16710
- className: cn71(
16767
+ className: cn72(
16711
16768
  "pointer-events-none absolute bottom-0 left-0 h-xxs rounded-full bg-primary",
16712
16769
  "transition-[transform,width,opacity] duration-200 ease-out"
16713
16770
  )
@@ -16721,9 +16778,9 @@ var TabList = React81.forwardRef(
16721
16778
  TabList.displayName = "TabList";
16722
16779
 
16723
16780
  // virtual-pkg:src/atoms/TableHeaderCell/TableHeaderCell.tsx
16724
- var React82 = __toESM(require("react"));
16725
- var import_jsx_runtime82 = require("react/jsx-runtime");
16726
- var cn72 = (...values) => values.filter(Boolean).join(" ");
16781
+ var React83 = __toESM(require("react"));
16782
+ var import_jsx_runtime83 = require("react/jsx-runtime");
16783
+ var cn73 = (...values) => values.filter(Boolean).join(" ");
16727
16784
  var NEXT_SORT = {
16728
16785
  none: "asc",
16729
16786
  asc: "desc",
@@ -16735,7 +16792,7 @@ var ALIGN_STYLES = {
16735
16792
  right: "justify-end"
16736
16793
  };
16737
16794
  var iconTone = (active) => active ? "var(--color-primary)" : "var(--color-muted)";
16738
- var TableHeaderCell = React82.forwardRef(
16795
+ var TableHeaderCell = React83.forwardRef(
16739
16796
  ({
16740
16797
  label,
16741
16798
  sort,
@@ -16746,7 +16803,7 @@ var TableHeaderCell = React82.forwardRef(
16746
16803
  ...rest
16747
16804
  }, ref) => {
16748
16805
  const isControlled = sort !== void 0;
16749
- const [internalSort, setInternalSort] = React82.useState(defaultSort);
16806
+ const [internalSort, setInternalSort] = React83.useState(defaultSort);
16750
16807
  const current = isControlled ? sort : internalSort;
16751
16808
  const sorted = current !== "none";
16752
16809
  const handleSort = () => {
@@ -16756,15 +16813,15 @@ var TableHeaderCell = React82.forwardRef(
16756
16813
  };
16757
16814
  const ariaSort = current === "asc" ? "ascending" : current === "desc" ? "descending" : "none";
16758
16815
  const accessibleName = current === "asc" ? `${label}, sorted ascending` : current === "desc" ? `${label}, sorted descending` : `Sort by ${label}`;
16759
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16816
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16760
16817
  "th",
16761
16818
  {
16762
16819
  ref,
16763
16820
  scope: "col",
16764
16821
  "aria-sort": ariaSort,
16765
- className: cn72("w-full p-0 align-middle", className),
16822
+ className: cn73("w-full p-0 align-middle", className),
16766
16823
  ...rest,
16767
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16824
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16768
16825
  Button,
16769
16826
  {
16770
16827
  variant: "band",
@@ -16772,27 +16829,27 @@ var TableHeaderCell = React82.forwardRef(
16772
16829
  "aria-label": accessibleName,
16773
16830
  onClick: handleSort,
16774
16831
  className: ALIGN_STYLES[align],
16775
- trailingIcon: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { className: "relative inline-flex size-5 items-center justify-center", children: [
16776
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16832
+ trailingIcon: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("span", { className: "relative inline-flex size-5 items-center justify-center", children: [
16833
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16777
16834
  Icon,
16778
16835
  {
16779
16836
  name: "chevrons-down-up",
16780
16837
  size: 18,
16781
16838
  strokeWidth: 2.25,
16782
- className: cn72(
16839
+ className: cn73(
16783
16840
  "absolute transition duration-200 ease-out",
16784
16841
  sorted ? "scale-75 opacity-0" : "scale-100 opacity-100"
16785
16842
  ),
16786
16843
  style: { color: iconTone(sorted) }
16787
16844
  }
16788
16845
  ),
16789
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16846
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16790
16847
  Icon,
16791
16848
  {
16792
16849
  name: "chevron-down",
16793
16850
  size: 20,
16794
16851
  strokeWidth: 2.25,
16795
- className: cn72(
16852
+ className: cn73(
16796
16853
  "absolute transition duration-200 ease-out",
16797
16854
  current === "asc" ? "rotate-180" : "rotate-0",
16798
16855
  sorted ? "scale-100 opacity-100" : "scale-75 opacity-0"
@@ -16801,10 +16858,10 @@ var TableHeaderCell = React82.forwardRef(
16801
16858
  }
16802
16859
  )
16803
16860
  ] }),
16804
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
16861
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16805
16862
  "span",
16806
16863
  {
16807
- className: cn72(
16864
+ className: cn73(
16808
16865
  "min-w-0 truncate uppercase",
16809
16866
  "transition-colors duration-150 ease-out",
16810
16867
  sorted ? "text-ink" : "text-muted"
@@ -16821,15 +16878,15 @@ var TableHeaderCell = React82.forwardRef(
16821
16878
  TableHeaderCell.displayName = "TableHeaderCell";
16822
16879
 
16823
16880
  // virtual-pkg:src/atoms/TableRow/TableRow.tsx
16824
- var React83 = __toESM(require("react"));
16825
- var import_jsx_runtime83 = require("react/jsx-runtime");
16826
- var cn73 = (...values) => values.filter(Boolean).join(" ");
16881
+ var React84 = __toESM(require("react"));
16882
+ var import_jsx_runtime84 = require("react/jsx-runtime");
16883
+ var cn74 = (...values) => values.filter(Boolean).join(" ");
16827
16884
  var dotStyles = {
16828
16885
  live: "bg-primary",
16829
16886
  pending: "bg-semantic-warning",
16830
16887
  failed: "bg-semantic-error"
16831
16888
  };
16832
- var TableRow = React83.forwardRef(
16889
+ var TableRow = React84.forwardRef(
16833
16890
  ({
16834
16891
  merchant,
16835
16892
  date,
@@ -16843,18 +16900,18 @@ var TableRow = React83.forwardRef(
16843
16900
  ...rest
16844
16901
  }, ref) => {
16845
16902
  const isControlled = selected !== void 0;
16846
- const [internalSelected, setInternalSelected] = React83.useState(defaultSelected);
16903
+ const [internalSelected, setInternalSelected] = React84.useState(defaultSelected);
16847
16904
  const isSelected = isControlled ? Boolean(selected) : internalSelected;
16848
16905
  const handleSelectedChange = (next) => {
16849
16906
  if (!isControlled) setInternalSelected(next);
16850
16907
  onSelectedChange?.(next);
16851
16908
  };
16852
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
16909
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
16853
16910
  "div",
16854
16911
  {
16855
16912
  ref,
16856
16913
  "data-state": isSelected ? "selected" : "default",
16857
- className: cn73(
16914
+ className: cn74(
16858
16915
  "relative flex w-full items-center gap-xl overflow-hidden rounded-lg border py-md pl-lg pr-xl",
16859
16916
  "transition-colors duration-200 ease-out",
16860
16917
  "has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-focus-blue",
@@ -16863,17 +16920,17 @@ var TableRow = React83.forwardRef(
16863
16920
  ),
16864
16921
  ...rest,
16865
16922
  children: [
16866
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16923
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
16867
16924
  "span",
16868
16925
  {
16869
16926
  "aria-hidden": "true",
16870
- className: cn73(
16927
+ className: cn74(
16871
16928
  "absolute inset-y-0 left-0 w-1 bg-primary transition-opacity duration-200 ease-out",
16872
16929
  isSelected ? "opacity-100" : "opacity-0"
16873
16930
  )
16874
16931
  }
16875
16932
  ),
16876
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16933
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
16877
16934
  Checkbox,
16878
16935
  {
16879
16936
  chrome: "bare",
@@ -16883,15 +16940,15 @@ var TableRow = React83.forwardRef(
16883
16940
  "aria-label": `Select ${merchant}`
16884
16941
  }
16885
16942
  ),
16886
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "min-w-0 flex-1 truncate text-body-md font-weight-label text-ink", children: merchant }),
16887
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "shrink-0 text-body-md text-muted", children: date }),
16888
- tag ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("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,
16889
- status ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("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: [
16890
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
16943
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "min-w-0 flex-1 truncate text-body-md font-weight-label text-ink", children: merchant }),
16944
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "shrink-0 text-body-md text-muted", children: date }),
16945
+ tag ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("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,
16946
+ status ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("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: [
16947
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
16891
16948
  "span",
16892
16949
  {
16893
16950
  "aria-hidden": "true",
16894
- className: cn73(
16951
+ className: cn74(
16895
16952
  "size-1.5 shrink-0 rounded-full",
16896
16953
  dotStyles[status.tone ?? "live"]
16897
16954
  )
@@ -16899,7 +16956,7 @@ var TableRow = React83.forwardRef(
16899
16956
  ),
16900
16957
  status.label
16901
16958
  ] }) : null,
16902
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "shrink-0 text-body-tabular font-weight-label text-ink", children: amount })
16959
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "shrink-0 text-body-tabular font-weight-label text-ink", children: amount })
16903
16960
  ]
16904
16961
  }
16905
16962
  );
@@ -16908,9 +16965,9 @@ var TableRow = React83.forwardRef(
16908
16965
  TableRow.displayName = "TableRow";
16909
16966
 
16910
16967
  // virtual-pkg:src/atoms/TestimonialBlock/TestimonialBlock.tsx
16911
- var React84 = __toESM(require("react"));
16912
- var import_jsx_runtime84 = require("react/jsx-runtime");
16913
- var TestimonialBlock = React84.forwardRef(
16968
+ var React85 = __toESM(require("react"));
16969
+ var import_jsx_runtime85 = require("react/jsx-runtime");
16970
+ var TestimonialBlock = React85.forwardRef(
16914
16971
  ({
16915
16972
  quote,
16916
16973
  name,
@@ -16919,7 +16976,7 @@ var TestimonialBlock = React84.forwardRef(
16919
16976
  hideMark = false,
16920
16977
  className,
16921
16978
  ...rest
16922
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
16979
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
16923
16980
  "figure",
16924
16981
  {
16925
16982
  ref,
@@ -16930,10 +16987,10 @@ var TestimonialBlock = React84.forwardRef(
16930
16987
  className
16931
16988
  ].filter(Boolean).join(" "),
16932
16989
  ...rest,
16933
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex flex-col items-start gap-lg md:flex-row md:items-stretch md:gap-0", children: [
16934
- !hideMark ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
16935
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("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__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: iconName, size: 32, strokeWidth: 1.5 }) }),
16936
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
16990
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "flex flex-col items-start gap-lg md:flex-row md:items-stretch md:gap-0", children: [
16991
+ !hideMark ? /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(import_jsx_runtime85.Fragment, { children: [
16992
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("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__ */ (0, import_jsx_runtime85.jsx)(Icon, { name: iconName, size: 32, strokeWidth: 1.5 }) }),
16993
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
16937
16994
  "div",
16938
16995
  {
16939
16996
  "aria-hidden": "true",
@@ -16941,8 +16998,8 @@ var TestimonialBlock = React84.forwardRef(
16941
16998
  }
16942
16999
  )
16943
17000
  ] }) : null,
16944
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "min-w-0 flex-1", children: [
16945
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
17001
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "min-w-0 flex-1", children: [
17002
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
16946
17003
  "span",
16947
17004
  {
16948
17005
  "aria-hidden": "true",
@@ -16950,14 +17007,14 @@ var TestimonialBlock = React84.forwardRef(
16950
17007
  children: "\u201C"
16951
17008
  }
16952
17009
  ),
16953
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("blockquote", { className: "m-0 mt-sm text-display-md text-ink", children: [
17010
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("blockquote", { className: "m-0 mt-sm text-display-md text-ink", children: [
16954
17011
  "\u201C",
16955
17012
  quote,
16956
17013
  "\u201D"
16957
17014
  ] }),
16958
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("figcaption", { className: "mt-lg flex flex-col gap-xxs", children: [
16959
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-body-lg text-ink", children: name }),
16960
- role ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-body-md text-muted", children: role }) : null
17015
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("figcaption", { className: "mt-lg flex flex-col gap-xxs", children: [
17016
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "text-body-lg text-ink", children: name }),
17017
+ role ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "text-body-md text-muted", children: role }) : null
16961
17018
  ] })
16962
17019
  ] })
16963
17020
  ] })
@@ -16967,15 +17024,15 @@ var TestimonialBlock = React84.forwardRef(
16967
17024
  TestimonialBlock.displayName = "TestimonialBlock";
16968
17025
 
16969
17026
  // virtual-pkg:src/atoms/Textarea/Textarea.tsx
16970
- var React85 = __toESM(require("react"));
16971
- var import_jsx_runtime85 = require("react/jsx-runtime");
16972
- var cn74 = (...values) => values.filter(Boolean).join(" ");
17027
+ var React86 = __toESM(require("react"));
17028
+ var import_jsx_runtime86 = require("react/jsx-runtime");
17029
+ var cn75 = (...values) => values.filter(Boolean).join(" ");
16973
17030
  var resizeClass = {
16974
17031
  none: "resize-none",
16975
17032
  vertical: "resize-y",
16976
17033
  both: "resize"
16977
17034
  };
16978
- var Textarea = React85.forwardRef(
17035
+ var Textarea = React86.forwardRef(
16979
17036
  ({
16980
17037
  label,
16981
17038
  ariaLabel,
@@ -17002,13 +17059,13 @@ var Textarea = React85.forwardRef(
17002
17059
  "aria-label": ariaLabelProp,
17003
17060
  ...rest
17004
17061
  }, ref) => {
17005
- const generatedId = React85.useId();
17062
+ const generatedId = React86.useId();
17006
17063
  const fieldId = id ?? generatedId;
17007
17064
  const helperId = `${fieldId}-helper`;
17008
17065
  const errorId = `${fieldId}-error`;
17009
17066
  const countId = `${fieldId}-count`;
17010
17067
  const isControlled = value !== void 0;
17011
- const [uncontrolledLength, setUncontrolledLength] = React85.useState(
17068
+ const [uncontrolledLength, setUncontrolledLength] = React86.useState(
17012
17069
  () => String(defaultValue ?? "").length
17013
17070
  );
17014
17071
  const length = isControlled ? String(value ?? "").length : uncontrolledLength;
@@ -17022,7 +17079,7 @@ var Textarea = React85.forwardRef(
17022
17079
  countVisible ? countId : null
17023
17080
  ].filter(Boolean).join(" ") || void 0;
17024
17081
  const isBare = chrome === "none";
17025
- const shell2 = isBare ? "flex w-full flex-col gap-xs transition-colors duration-150 ease-out" : cn74(
17082
+ const shell2 = isBare ? "flex w-full flex-col gap-xs transition-colors duration-150 ease-out" : cn75(
17026
17083
  "flex w-full flex-col gap-xs rounded-lg border px-md py-sm",
17027
17084
  "transition duration-150 ease-out",
17028
17085
  disabled ? "border-hairline-soft bg-surface-strong" : isError ? "border-semantic-error bg-surface" : "border-hairline-strong bg-surface",
@@ -17030,8 +17087,8 @@ var Textarea = React85.forwardRef(
17030
17087
  forceFocus ? isError ? "border-semantic-error ring-1 ring-semantic-error" : "border-primary ring-1 ring-primary" : "",
17031
17088
  readOnly && !disabled ? "bg-surface-soft" : ""
17032
17089
  );
17033
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: cn74("flex w-full flex-col gap-xs", className), children: [
17034
- label ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
17090
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: cn75("flex w-full flex-col gap-xs", className), children: [
17091
+ label ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17035
17092
  Label,
17036
17093
  {
17037
17094
  htmlFor: fieldId,
@@ -17040,8 +17097,8 @@ var Textarea = React85.forwardRef(
17040
17097
  children: label
17041
17098
  }
17042
17099
  ) : null,
17043
- /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: cn74(shell2, fieldClassName), children: [
17044
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
17100
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: cn75(shell2, fieldClassName), children: [
17101
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17045
17102
  "textarea",
17046
17103
  {
17047
17104
  ref,
@@ -17061,7 +17118,7 @@ var Textarea = React85.forwardRef(
17061
17118
  }
17062
17119
  onChange?.(event);
17063
17120
  },
17064
- className: cn74(
17121
+ className: cn75(
17065
17122
  "w-full appearance-none rounded-none border-0 bg-transparent p-0 text-body-md shadow-none ring-0",
17066
17123
  resizeClass[resize],
17067
17124
  "text-ink caret-primary placeholder:text-muted",
@@ -17072,11 +17129,11 @@ var Textarea = React85.forwardRef(
17072
17129
  ...rest
17073
17130
  }
17074
17131
  ),
17075
- countVisible ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
17132
+ countVisible ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17076
17133
  "span",
17077
17134
  {
17078
17135
  id: countId,
17079
- className: cn74(
17136
+ className: cn75(
17080
17137
  "self-end text-caption tabular-nums",
17081
17138
  disabled ? "text-muted-soft" : isError ? "text-semantic-error" : "text-muted",
17082
17139
  countClassName
@@ -17085,12 +17142,12 @@ var Textarea = React85.forwardRef(
17085
17142
  }
17086
17143
  ) : null
17087
17144
  ] }),
17088
- error ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { id: errorId, className: "text-caption text-semantic-error", children: error }) : null,
17089
- helper ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
17145
+ error ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("p", { id: errorId, className: "text-caption text-semantic-error", children: error }) : null,
17146
+ helper ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17090
17147
  "p",
17091
17148
  {
17092
17149
  id: helperId,
17093
- className: cn74(
17150
+ className: cn75(
17094
17151
  "text-caption",
17095
17152
  disabled ? "text-muted-soft" : "text-muted"
17096
17153
  ),
@@ -17103,10 +17160,10 @@ var Textarea = React85.forwardRef(
17103
17160
  Textarea.displayName = "Textarea";
17104
17161
 
17105
17162
  // virtual-pkg:src/atoms/Toast/Toast.tsx
17106
- var React86 = __toESM(require("react"));
17107
- var import_jsx_runtime86 = require("react/jsx-runtime");
17108
- var cn75 = (...values) => values.filter(Boolean).join(" ");
17109
- var Toast = React86.forwardRef(
17163
+ var React87 = __toESM(require("react"));
17164
+ var import_jsx_runtime87 = require("react/jsx-runtime");
17165
+ var cn76 = (...values) => values.filter(Boolean).join(" ");
17166
+ var Toast = React87.forwardRef(
17110
17167
  ({
17111
17168
  tone = "info",
17112
17169
  title,
@@ -17123,25 +17180,25 @@ var Toast = React86.forwardRef(
17123
17180
  const urgent = tone === "danger";
17124
17181
  const hasDetails = Boolean(details && details.length > 0);
17125
17182
  const hasTrailing = Boolean(action) || Boolean(onDismiss);
17126
- const mark = hideIcon ? null : tone === "neutral" ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17183
+ const mark = hideIcon ? null : tone === "neutral" ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17127
17184
  "span",
17128
17185
  {
17129
17186
  "aria-hidden": "true",
17130
17187
  className: "-my-base -ml-md w-1 shrink-0 self-stretch rounded-full bg-primary"
17131
17188
  }
17132
- ) : tone === "danger" ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17189
+ ) : tone === "danger" ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17133
17190
  "span",
17134
17191
  {
17135
17192
  "aria-hidden": "true",
17136
17193
  className: "mt-2 size-2.5 shrink-0 rounded-full bg-semantic-error"
17137
17194
  }
17138
- ) : tone === "success" ? /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
17195
+ ) : tone === "success" ? /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
17139
17196
  "span",
17140
17197
  {
17141
17198
  "aria-hidden": "true",
17142
17199
  className: "mt-0.5 grid size-5 shrink-0 place-items-center text-primary",
17143
17200
  children: [
17144
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17201
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17145
17202
  Icon,
17146
17203
  {
17147
17204
  name: "circle",
@@ -17150,7 +17207,7 @@ var Toast = React86.forwardRef(
17150
17207
  style: { color: "inherit" }
17151
17208
  }
17152
17209
  ) }),
17153
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17210
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "[grid-area:1/1] inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17154
17211
  Icon,
17155
17212
  {
17156
17213
  name: "check",
@@ -17161,12 +17218,12 @@ var Toast = React86.forwardRef(
17161
17218
  ) })
17162
17219
  ]
17163
17220
  }
17164
- ) : /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17221
+ ) : /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17165
17222
  "span",
17166
17223
  {
17167
17224
  "aria-hidden": "true",
17168
17225
  className: "mt-0.5 inline-flex shrink-0 items-center text-primary",
17169
- children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17226
+ children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17170
17227
  Icon,
17171
17228
  {
17172
17229
  name: tone === "warning" ? "triangle-alert" : "info",
@@ -17177,7 +17234,7 @@ var Toast = React86.forwardRef(
17177
17234
  )
17178
17235
  }
17179
17236
  );
17180
- const actionNode = action ? urgent ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17237
+ const actionNode = action ? urgent ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17181
17238
  Button,
17182
17239
  {
17183
17240
  type: "button",
@@ -17187,7 +17244,7 @@ var Toast = React86.forwardRef(
17187
17244
  className: "shrink-0",
17188
17245
  children: action.label
17189
17246
  }
17190
- ) : action.href ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Link, { href: action.href, size: "md", underline: "always", className: "shrink-0", children: action.label }) : /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17247
+ ) : action.href ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Link, { href: action.href, size: "md", underline: "always", className: "shrink-0", children: action.label }) : /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17191
17248
  Button,
17192
17249
  {
17193
17250
  type: "button",
@@ -17198,7 +17255,7 @@ var Toast = React86.forwardRef(
17198
17255
  children: action.label
17199
17256
  }
17200
17257
  ) : null;
17201
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
17258
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
17202
17259
  "div",
17203
17260
  {
17204
17261
  ref,
@@ -17207,7 +17264,7 @@ var Toast = React86.forwardRef(
17207
17264
  "aria-hidden": !open || void 0,
17208
17265
  "data-tone": tone,
17209
17266
  "data-state": open ? "open" : "closed",
17210
- className: cn75(
17267
+ className: cn76(
17211
17268
  "relative flex w-full min-w-0 items-start gap-md rounded-lg border bg-surface py-base shadow-sm",
17212
17269
  "transition duration-200 ease-out",
17213
17270
  "data-[state=open]:translate-y-0 data-[state=open]:opacity-100",
@@ -17219,24 +17276,24 @@ var Toast = React86.forwardRef(
17219
17276
  ...rest,
17220
17277
  children: [
17221
17278
  mark,
17222
- /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
17223
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("p", { className: "text-body-lg font-weight-label break-words text-ink", children: title }),
17224
- description ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("p", { className: "mt-xxs text-body-md break-words text-muted", children: description }) : null,
17225
- hasDetails ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("ul", { className: "mt-sm flex min-w-0 flex-col gap-xxs", children: details.map((detail, index) => /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
17279
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
17280
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("p", { className: "text-body-lg font-weight-label break-words text-ink", children: title }),
17281
+ description ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("p", { className: "mt-xxs text-body-md break-words text-muted", children: description }) : null,
17282
+ hasDetails ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("ul", { className: "mt-sm flex min-w-0 flex-col gap-xxs", children: details.map((detail, index) => /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
17226
17283
  "li",
17227
17284
  {
17228
17285
  className: "flex min-w-0 gap-sm text-body-sm text-muted",
17229
17286
  children: [
17230
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { "aria-hidden": "true", className: "text-muted-soft", children: "\u2022" }),
17231
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "min-w-0 break-words", children: detail })
17287
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { "aria-hidden": "true", className: "text-muted-soft", children: "\u2022" }),
17288
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "min-w-0 break-words", children: detail })
17232
17289
  ]
17233
17290
  },
17234
17291
  index
17235
17292
  )) }) : null
17236
17293
  ] }),
17237
- hasTrailing ? /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "ml-auto flex shrink-0 items-center gap-md self-center", children: [
17294
+ hasTrailing ? /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "ml-auto flex shrink-0 items-center gap-md self-center", children: [
17238
17295
  actionNode,
17239
- onDismiss ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17296
+ onDismiss ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17240
17297
  Button,
17241
17298
  {
17242
17299
  type: "button",
@@ -17245,7 +17302,7 @@ var Toast = React86.forwardRef(
17245
17302
  "aria-label": dismissLabel,
17246
17303
  onClick: onDismiss,
17247
17304
  className: "rounded-xs p-xs text-muted-soft transition duration-150 ease-out hover:text-ink",
17248
- children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
17305
+ children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17249
17306
  Icon,
17250
17307
  {
17251
17308
  name: "x",
@@ -17265,9 +17322,9 @@ var Toast = React86.forwardRef(
17265
17322
  Toast.displayName = "Toast";
17266
17323
 
17267
17324
  // virtual-pkg:src/atoms/Tooltip/Tooltip.tsx
17268
- var React87 = __toESM(require("react"));
17269
- var import_jsx_runtime87 = require("react/jsx-runtime");
17270
- var cn76 = (...values) => values.filter(Boolean).join(" ");
17325
+ var React88 = __toESM(require("react"));
17326
+ var import_jsx_runtime88 = require("react/jsx-runtime");
17327
+ var cn77 = (...values) => values.filter(Boolean).join(" ");
17271
17328
  var sidePosition = {
17272
17329
  top: "bottom-full left-1/2 -translate-x-1/2 mb-sm",
17273
17330
  bottom: "top-full left-1/2 -translate-x-1/2 mt-sm",
@@ -17292,7 +17349,7 @@ var sideOrigin = {
17292
17349
  left: "origin-right",
17293
17350
  right: "origin-left"
17294
17351
  };
17295
- var Tooltip = React87.forwardRef(
17352
+ var Tooltip = React88.forwardRef(
17296
17353
  ({
17297
17354
  children,
17298
17355
  variant = "plain",
@@ -17313,8 +17370,8 @@ var Tooltip = React87.forwardRef(
17313
17370
  onKeyDown,
17314
17371
  ...rest
17315
17372
  }, ref) => {
17316
- const id = React87.useId();
17317
- const [uncontrolledOpen, setUncontrolledOpen] = React87.useState(defaultOpen);
17373
+ const id = React88.useId();
17374
+ const [uncontrolledOpen, setUncontrolledOpen] = React88.useState(defaultOpen);
17318
17375
  const isControlled = open !== void 0;
17319
17376
  const isOpen = isControlled ? Boolean(open) : uncontrolledOpen;
17320
17377
  const setOpenState = (next) => {
@@ -17322,21 +17379,21 @@ var Tooltip = React87.forwardRef(
17322
17379
  if (!isControlled) setUncontrolledOpen(next);
17323
17380
  onOpenChange?.(next);
17324
17381
  };
17325
- const body = children ?? (variant === "stat" ? /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center justify-between gap-xl", children: [
17326
- /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center gap-sm", children: [
17327
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17382
+ const body = children ?? (variant === "stat" ? /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("span", { className: "flex items-center justify-between gap-xl", children: [
17383
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("span", { className: "flex items-center gap-sm", children: [
17384
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
17328
17385
  "span",
17329
17386
  {
17330
17387
  "aria-hidden": "true",
17331
17388
  className: "size-sm shrink-0 rounded-full bg-primary"
17332
17389
  }
17333
17390
  ),
17334
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "whitespace-nowrap text-body-sm text-muted", children: label })
17391
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "whitespace-nowrap text-body-sm text-muted", children: label })
17335
17392
  ] }),
17336
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "whitespace-nowrap text-body-sm font-weight-label tabular-nums text-ink", children: value })
17337
- ] }) : variant === "shortcut" ? /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center justify-between gap-xl", children: [
17338
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }),
17339
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "flex items-center gap-xs", children: (keys ?? []).map((key) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17393
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "whitespace-nowrap text-body-sm font-weight-label tabular-nums text-ink", children: value })
17394
+ ] }) : variant === "shortcut" ? /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("span", { className: "flex items-center justify-between gap-xl", children: [
17395
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }),
17396
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "flex items-center gap-xs", children: (keys ?? []).map((key) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
17340
17397
  "kbd",
17341
17398
  {
17342
17399
  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",
@@ -17344,15 +17401,15 @@ var Tooltip = React87.forwardRef(
17344
17401
  },
17345
17402
  key
17346
17403
  )) })
17347
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }));
17348
- const triggerNode = React87.isValidElement(trigger) ? React87.cloneElement(trigger, {
17404
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "whitespace-nowrap text-body-sm text-ink", children: label }));
17405
+ const triggerNode = React88.isValidElement(trigger) ? React88.cloneElement(trigger, {
17349
17406
  "aria-describedby": isOpen ? id : void 0
17350
17407
  }) : trigger;
17351
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
17408
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
17352
17409
  "div",
17353
17410
  {
17354
17411
  ref,
17355
- className: cn76("relative inline-flex items-center", className),
17412
+ className: cn77("relative inline-flex items-center", className),
17356
17413
  style: { zIndex: isOpen ? "var(--z-tooltip, 1500)" : void 0 },
17357
17414
  onMouseEnter: (event) => {
17358
17415
  setOpenState(true);
@@ -17377,14 +17434,14 @@ var Tooltip = React87.forwardRef(
17377
17434
  ...rest,
17378
17435
  children: [
17379
17436
  triggerNode,
17380
- /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
17437
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
17381
17438
  "div",
17382
17439
  {
17383
17440
  id,
17384
17441
  role: "tooltip",
17385
17442
  "data-state": isOpen ? "open" : "closed",
17386
17443
  "aria-hidden": !isOpen,
17387
- className: cn76(
17444
+ className: cn77(
17388
17445
  "absolute w-max max-w-xs rounded-lg border border-hairline bg-surface",
17389
17446
  "px-lg py-md shadow-md",
17390
17447
  "transition duration-200 ease-out",
@@ -17396,11 +17453,11 @@ var Tooltip = React87.forwardRef(
17396
17453
  ),
17397
17454
  children: [
17398
17455
  body,
17399
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
17456
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
17400
17457
  "span",
17401
17458
  {
17402
17459
  "aria-hidden": "true",
17403
- className: cn76(
17460
+ className: cn77(
17404
17461
  "absolute size-md rotate-45 border-hairline bg-surface",
17405
17462
  caretPosition[side],
17406
17463
  caretEdges[side]
@@ -17418,8 +17475,8 @@ var Tooltip = React87.forwardRef(
17418
17475
  Tooltip.displayName = "Tooltip";
17419
17476
 
17420
17477
  // virtual-pkg:src/atoms/Typography/Typography.tsx
17421
- var React88 = __toESM(require("react"));
17422
- var import_jsx_runtime88 = require("react/jsx-runtime");
17478
+ var React89 = __toESM(require("react"));
17479
+ var import_jsx_runtime89 = require("react/jsx-runtime");
17423
17480
  var SCALE_CLASS = {
17424
17481
  "display-xxl": "text-display-xxl",
17425
17482
  "display-lg": "text-display-lg",
@@ -17487,7 +17544,7 @@ var DEFAULT_TYPE_ROWS = [
17487
17544
  scale: "overline"
17488
17545
  }
17489
17546
  ];
17490
- var Typography = React88.forwardRef(
17547
+ var Typography = React89.forwardRef(
17491
17548
  ({
17492
17549
  title = "Typography",
17493
17550
  rows = DEFAULT_TYPE_ROWS,
@@ -17495,7 +17552,7 @@ var Typography = React88.forwardRef(
17495
17552
  framed = true,
17496
17553
  className,
17497
17554
  ...rest
17498
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
17555
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17499
17556
  "div",
17500
17557
  {
17501
17558
  ref,
@@ -17506,27 +17563,27 @@ var Typography = React88.forwardRef(
17506
17563
  className
17507
17564
  ].filter(Boolean).join(" "),
17508
17565
  ...rest,
17509
- children: /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "grid grid-cols-1 gap-y-xs md:grid-cols-[8.5rem_1px_minmax(0,1fr)] md:gap-y-0", children: [
17510
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("p", { className: "text-label-cap text-ink md:pb-xl md:pr-xl", children: title }),
17511
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { "aria-hidden": "true", className: "hidden md:block" }),
17512
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { "aria-hidden": "true", className: "hidden md:block" }),
17513
- rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(React88.Fragment, { children: [
17514
- /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "flex items-center gap-xs whitespace-nowrap pt-sm md:py-xs md:pr-xl md:pt-0", children: [
17515
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "text-caption text-body", children: row.name }),
17516
- showSpec && row.spec ? /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("span", { className: "text-caption text-muted", children: [
17566
+ children: /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "grid grid-cols-1 gap-y-xs md:grid-cols-[8.5rem_1px_minmax(0,1fr)] md:gap-y-0", children: [
17567
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("p", { className: "text-label-cap text-ink md:pb-xl md:pr-xl", children: title }),
17568
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { "aria-hidden": "true", className: "hidden md:block" }),
17569
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { "aria-hidden": "true", className: "hidden md:block" }),
17570
+ rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(React89.Fragment, { children: [
17571
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex items-center gap-xs whitespace-nowrap pt-sm md:py-xs md:pr-xl md:pt-0", children: [
17572
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "text-caption text-body", children: row.name }),
17573
+ showSpec && row.spec ? /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("span", { className: "text-caption text-muted", children: [
17517
17574
  "(",
17518
17575
  row.spec,
17519
17576
  ")"
17520
17577
  ] }) : null
17521
17578
  ] }),
17522
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
17579
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17523
17580
  "div",
17524
17581
  {
17525
17582
  "aria-hidden": "true",
17526
17583
  className: "hidden self-stretch bg-hairline md:block"
17527
17584
  }
17528
17585
  ),
17529
- /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
17586
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17530
17587
  "p",
17531
17588
  {
17532
17589
  className: [
@@ -17544,9 +17601,9 @@ var Typography = React88.forwardRef(
17544
17601
  Typography.displayName = "Typography";
17545
17602
 
17546
17603
  // virtual-pkg:src/atoms/Wizard/Wizard.tsx
17547
- var React89 = __toESM(require("react"));
17548
- var import_jsx_runtime89 = require("react/jsx-runtime");
17549
- var cn77 = (...values) => values.filter(Boolean).join(" ");
17604
+ var React90 = __toESM(require("react"));
17605
+ var import_jsx_runtime90 = require("react/jsx-runtime");
17606
+ var cn78 = (...values) => values.filter(Boolean).join(" ");
17550
17607
  var statusCopy = {
17551
17608
  complete: "completed",
17552
17609
  current: "current step",
@@ -17562,37 +17619,37 @@ var labelStyles2 = {
17562
17619
  current: "font-weight-label text-ink",
17563
17620
  upcoming: "text-muted"
17564
17621
  };
17565
- var StepRail = ({ steps, currentStep }) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("ol", { className: "flex w-full items-start", children: steps.map((step, index) => {
17622
+ var StepRail = ({ steps, currentStep }) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("ol", { className: "flex w-full items-start", children: steps.map((step, index) => {
17566
17623
  const status = index < currentStep ? "complete" : index === currentStep ? "current" : "upcoming";
17567
17624
  const leadDone = index - 1 >= 0 && index - 1 < currentStep;
17568
17625
  const trailDone = index < currentStep;
17569
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
17626
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
17570
17627
  "li",
17571
17628
  {
17572
17629
  "aria-current": status === "current" ? "step" : void 0,
17573
17630
  className: "flex min-w-0 flex-1 flex-col items-center gap-sm",
17574
17631
  children: [
17575
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex w-full items-center", children: [
17576
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17632
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex w-full items-center", children: [
17633
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
17577
17634
  "span",
17578
17635
  {
17579
17636
  "aria-hidden": "true",
17580
- className: cn77(
17637
+ className: cn78(
17581
17638
  "h-px flex-1 transition-colors duration-200 ease-out",
17582
17639
  index === 0 ? "invisible bg-hairline" : leadDone ? "bg-primary" : "bg-hairline-strong"
17583
17640
  )
17584
17641
  }
17585
17642
  ),
17586
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17643
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
17587
17644
  "span",
17588
17645
  {
17589
17646
  "aria-hidden": "true",
17590
- className: cn77(
17647
+ className: cn78(
17591
17648
  "flex size-lg shrink-0 items-center justify-center rounded-full",
17592
17649
  "transition-colors duration-200 ease-out",
17593
17650
  nodeStyles2[status]
17594
17651
  ),
17595
- children: status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17652
+ children: status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
17596
17653
  Icon,
17597
17654
  {
17598
17655
  name: "check",
@@ -17603,36 +17660,36 @@ var StepRail = ({ steps, currentStep }) => /* @__PURE__ */ (0, import_jsx_runtim
17603
17660
  ) : null
17604
17661
  }
17605
17662
  ),
17606
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17663
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
17607
17664
  "span",
17608
17665
  {
17609
17666
  "aria-hidden": "true",
17610
- className: cn77(
17667
+ className: cn78(
17611
17668
  "h-px flex-1 transition-colors duration-200 ease-out",
17612
17669
  index === steps.length - 1 ? "invisible bg-hairline" : trailDone ? "bg-primary" : "bg-hairline-strong"
17613
17670
  )
17614
17671
  }
17615
17672
  )
17616
17673
  ] }),
17617
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("span", { className: "flex max-w-full min-w-0 flex-col items-center", children: [
17618
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17674
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("span", { className: "flex max-w-full min-w-0 flex-col items-center", children: [
17675
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
17619
17676
  "span",
17620
17677
  {
17621
- className: cn77(
17678
+ className: cn78(
17622
17679
  "max-w-full truncate text-body-sm transition-colors duration-200 ease-out",
17623
17680
  labelStyles2[status]
17624
17681
  ),
17625
17682
  children: step.label
17626
17683
  }
17627
17684
  ),
17628
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "sr-only", children: statusCopy[status] })
17685
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "sr-only", children: statusCopy[status] })
17629
17686
  ] })
17630
17687
  ]
17631
17688
  },
17632
17689
  step.id
17633
17690
  );
17634
17691
  }) });
17635
- var Wizard = React89.forwardRef(
17692
+ var Wizard = React90.forwardRef(
17636
17693
  ({
17637
17694
  steps,
17638
17695
  currentStep,
@@ -17653,30 +17710,30 @@ var Wizard = React89.forwardRef(
17653
17710
  const index = Math.max(0, Math.min(currentStep, steps.length - 1));
17654
17711
  const eyebrowCopy = eyebrow ?? `Step ${index + 1} (${stateLabel})`;
17655
17712
  const showActions = !hideActions && Boolean(onNext || onBack);
17656
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
17713
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
17657
17714
  "section",
17658
17715
  {
17659
17716
  ref,
17660
- className: cn77(
17717
+ className: cn78(
17661
17718
  "flex w-full flex-col gap-xl rounded-lg border border-hairline bg-surface p-xl text-ink shadow-sm",
17662
17719
  className
17663
17720
  ),
17664
17721
  ...rest,
17665
17722
  children: [
17666
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("p", { className: "text-label-cap text-muted", children: eyebrowCopy }),
17667
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(StepRail, { steps, currentStep: index }),
17668
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex flex-col gap-lg", children: [
17669
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex flex-col gap-xs", children: [
17670
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("h3", { className: "text-display-md text-ink", children: title }),
17671
- description ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("p", { className: "max-w-prose text-body-md text-body", children: description }) : null
17723
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("p", { className: "text-label-cap text-muted", children: eyebrowCopy }),
17724
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(StepRail, { steps, currentStep: index }),
17725
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col gap-lg", children: [
17726
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col gap-xs", children: [
17727
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("h3", { className: "text-display-md text-ink", children: title }),
17728
+ description ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("p", { className: "max-w-prose text-body-md text-body", children: description }) : null
17672
17729
  ] }),
17673
- children ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "flex flex-col gap-md", children }) : null
17730
+ children ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "flex flex-col gap-md", children }) : null
17674
17731
  ] }),
17675
- showActions ? /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex flex-col gap-lg", children: [
17676
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Divider, { tone: "soft", decorative: true }),
17677
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex flex-wrap items-center justify-between gap-md", children: [
17678
- onBack ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Button, { variant: "outline-soft", size: "md", onClick: onBack, children: backLabel }) : /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { "aria-hidden": "true" }),
17679
- onNext ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
17732
+ showActions ? /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col gap-lg", children: [
17733
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Divider, { tone: "soft", decorative: true }),
17734
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-wrap items-center justify-between gap-md", children: [
17735
+ onBack ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Button, { variant: "outline-soft", size: "md", onClick: onBack, children: backLabel }) : /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { "aria-hidden": "true" }),
17736
+ onNext ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
17680
17737
  Button,
17681
17738
  {
17682
17739
  variant: "primary",