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