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