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