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