kaleido-ui 0.1.114 → 0.1.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web/index.cjs +764 -648
- package/dist/web/index.d.cts +67 -1
- package/dist/web/index.d.ts +67 -1
- package/dist/web/index.js +762 -648
- package/package.json +2 -2
package/dist/web/index.cjs
CHANGED
|
@@ -151,7 +151,9 @@ __export(web_exports, {
|
|
|
151
151
|
StatusBadge: () => StatusBadge,
|
|
152
152
|
StatusIconBadge: () => StatusIconBadge,
|
|
153
153
|
StepperNumberInput: () => StepperNumberInput,
|
|
154
|
+
SummaryRows: () => SummaryRows,
|
|
154
155
|
SwapInputCard: () => SwapInputCard,
|
|
156
|
+
SwapStepList: () => SwapStepList,
|
|
155
157
|
Switch: () => Switch,
|
|
156
158
|
SwitchRow: () => SwitchRow,
|
|
157
159
|
Tabs: () => Tabs,
|
|
@@ -790,13 +792,27 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
|
790
792
|
var React5 = __toESM(require("react"), 1);
|
|
791
793
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
792
794
|
var Switch = React5.forwardRef(
|
|
793
|
-
({
|
|
795
|
+
({
|
|
796
|
+
checked = false,
|
|
797
|
+
onCheckedChange,
|
|
798
|
+
disabled = false,
|
|
799
|
+
className,
|
|
800
|
+
id,
|
|
801
|
+
"aria-label": ariaLabel,
|
|
802
|
+
"aria-labelledby": ariaLabelledBy,
|
|
803
|
+
"aria-describedby": ariaDescribedBy
|
|
804
|
+
}, ref) => {
|
|
794
805
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
795
806
|
"button",
|
|
796
807
|
{
|
|
797
808
|
ref,
|
|
809
|
+
id,
|
|
810
|
+
type: "button",
|
|
798
811
|
role: "switch",
|
|
799
812
|
"aria-checked": checked,
|
|
813
|
+
"aria-label": ariaLabel,
|
|
814
|
+
"aria-labelledby": ariaLabelledBy,
|
|
815
|
+
"aria-describedby": ariaDescribedBy,
|
|
800
816
|
disabled,
|
|
801
817
|
onClick: () => onCheckedChange?.(!checked),
|
|
802
818
|
className: cn(
|
|
@@ -1323,7 +1339,7 @@ var DotPagination = React12.forwardRef(
|
|
|
1323
1339
|
...props,
|
|
1324
1340
|
children: Array.from({ length: count2 }).map((_, i) => {
|
|
1325
1341
|
const active = i === index;
|
|
1326
|
-
const
|
|
1342
|
+
const dotClass2 = cn(
|
|
1327
1343
|
"rounded-full transition-all duration-200",
|
|
1328
1344
|
active ? cn("h-2 w-5 shadow-sm", toneClasses[tone]) : "h-2 w-2 bg-white/25",
|
|
1329
1345
|
interactive && "cursor-pointer hover:bg-white/40"
|
|
@@ -1337,7 +1353,7 @@ var DotPagination = React12.forwardRef(
|
|
|
1337
1353
|
"aria-selected": active,
|
|
1338
1354
|
"aria-label": `Page ${i + 1} of ${count2}`,
|
|
1339
1355
|
onClick: interactive ? () => onSelect(i) : void 0,
|
|
1340
|
-
className:
|
|
1356
|
+
className: dotClass2
|
|
1341
1357
|
},
|
|
1342
1358
|
i
|
|
1343
1359
|
);
|
|
@@ -3843,7 +3859,7 @@ var import_react11 = require("react");
|
|
|
3843
3859
|
var import_react_dom = require("react-dom");
|
|
3844
3860
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3845
3861
|
function NetworkMiniBadge({ iconUrl, label }) {
|
|
3846
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: cn(iconBadgeOverlayClass, "overflow-hidden"), children: iconUrl ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("img", { src: iconUrl, alt: label ?? "", className: "h-full w-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "flex h-full w-full items-center justify-center bg-muted text-xxs font-bold uppercase leading-none text-muted-foreground", children: label?.charAt(0) }) });
|
|
3862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: cn(iconBadgeOverlayClass, "overflow-hidden bg-card"), children: iconUrl ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("img", { src: iconUrl, alt: label ?? "", className: "h-full w-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "flex h-full w-full items-center justify-center bg-muted text-xxs font-bold uppercase leading-none text-muted-foreground", children: label?.charAt(0) }) });
|
|
3847
3863
|
}
|
|
3848
3864
|
function readableTagColor(color) {
|
|
3849
3865
|
const raw = color.replace("#", "");
|
|
@@ -5810,10 +5826,108 @@ function SwitchRow({
|
|
|
5810
5826
|
] });
|
|
5811
5827
|
}
|
|
5812
5828
|
|
|
5813
|
-
// src/web/components/
|
|
5829
|
+
// src/web/components/swap-step-list.tsx
|
|
5814
5830
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
5831
|
+
var dotClass = {
|
|
5832
|
+
done: "bg-primary text-background",
|
|
5833
|
+
active: "bg-warning/20 text-warning",
|
|
5834
|
+
pending: "bg-muted/40 text-muted-foreground",
|
|
5835
|
+
failed: "bg-danger/20 text-danger"
|
|
5836
|
+
};
|
|
5837
|
+
var labelClass = {
|
|
5838
|
+
done: "text-foreground",
|
|
5839
|
+
active: "text-foreground",
|
|
5840
|
+
pending: "text-muted-foreground",
|
|
5841
|
+
failed: "text-danger"
|
|
5842
|
+
};
|
|
5843
|
+
function SwapStepList({ steps, className }) {
|
|
5844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { "data-slot": "swap-step-list", className: cn("flex flex-col", className), children: steps.map((step, index) => {
|
|
5845
|
+
const isLast = index === steps.length - 1;
|
|
5846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
5847
|
+
"div",
|
|
5848
|
+
{
|
|
5849
|
+
"data-slot": "swap-step",
|
|
5850
|
+
"data-status": step.status,
|
|
5851
|
+
className: "flex gap-3",
|
|
5852
|
+
children: [
|
|
5853
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex w-5 shrink-0 flex-col items-center", children: [
|
|
5854
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5855
|
+
"span",
|
|
5856
|
+
{
|
|
5857
|
+
"aria-hidden": true,
|
|
5858
|
+
className: cn(
|
|
5859
|
+
"flex size-5 items-center justify-center rounded-full text-xxs font-bold",
|
|
5860
|
+
dotClass[step.status],
|
|
5861
|
+
step.status === "active" && "animate-pulse"
|
|
5862
|
+
),
|
|
5863
|
+
children: step.status === "done" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: "check", className: "text-icon-sm" }) : step.status === "failed" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: "close", className: "text-icon-sm" }) : index + 1
|
|
5864
|
+
}
|
|
5865
|
+
),
|
|
5866
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5867
|
+
"span",
|
|
5868
|
+
{
|
|
5869
|
+
"aria-hidden": true,
|
|
5870
|
+
className: cn(
|
|
5871
|
+
"mt-1 w-0.5 flex-1",
|
|
5872
|
+
step.status === "done" ? "bg-primary/60" : "bg-muted/40"
|
|
5873
|
+
)
|
|
5874
|
+
}
|
|
5875
|
+
)
|
|
5876
|
+
] }),
|
|
5877
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("min-w-0 flex-1", isLast ? "pb-0" : "pb-4"), children: [
|
|
5878
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: cn("text-sm font-medium", labelClass[step.status]), children: step.label }),
|
|
5879
|
+
step.description && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "mt-0.5 text-xs leading-snug text-muted-foreground", children: step.description })
|
|
5880
|
+
] })
|
|
5881
|
+
]
|
|
5882
|
+
},
|
|
5883
|
+
step.id
|
|
5884
|
+
);
|
|
5885
|
+
}) });
|
|
5886
|
+
}
|
|
5887
|
+
|
|
5888
|
+
// src/web/components/summary-rows.tsx
|
|
5889
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
5890
|
+
var valueTone = {
|
|
5891
|
+
default: "text-foreground",
|
|
5892
|
+
primary: "text-primary",
|
|
5893
|
+
warning: "text-warning",
|
|
5894
|
+
danger: "text-danger",
|
|
5895
|
+
success: "text-success"
|
|
5896
|
+
};
|
|
5897
|
+
function SummaryRows({ rows, className }) {
|
|
5898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { "data-slot": "summary-rows", className: cn("space-y-1.5", className), children: rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
5899
|
+
"div",
|
|
5900
|
+
{
|
|
5901
|
+
"data-slot": "summary-row",
|
|
5902
|
+
"data-emphasis": row.emphasis ? "true" : void 0,
|
|
5903
|
+
className: "flex items-center justify-between gap-3 rounded-xl bg-muted/40 px-3 py-2.5",
|
|
5904
|
+
children: [
|
|
5905
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "shrink-0 text-xs text-muted-foreground", children: row.label }),
|
|
5906
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex min-w-0 flex-col items-end", children: [
|
|
5907
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
5908
|
+
"span",
|
|
5909
|
+
{
|
|
5910
|
+
className: cn(
|
|
5911
|
+
"truncate tabular-nums",
|
|
5912
|
+
row.emphasis ? "text-base font-bold" : "text-sm font-medium",
|
|
5913
|
+
row.mono && "font-mono text-xs",
|
|
5914
|
+
valueTone[row.tone ?? "default"]
|
|
5915
|
+
),
|
|
5916
|
+
children: row.value
|
|
5917
|
+
}
|
|
5918
|
+
),
|
|
5919
|
+
row.hint && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "mt-0.5 text-xxs text-muted-foreground", children: row.hint })
|
|
5920
|
+
] })
|
|
5921
|
+
]
|
|
5922
|
+
},
|
|
5923
|
+
index
|
|
5924
|
+
)) });
|
|
5925
|
+
}
|
|
5926
|
+
|
|
5927
|
+
// src/web/components/section-label.tsx
|
|
5928
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
5815
5929
|
function SectionLabel({ children, className }) {
|
|
5816
|
-
return /* @__PURE__ */ (0,
|
|
5930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5817
5931
|
"span",
|
|
5818
5932
|
{
|
|
5819
5933
|
className: cn("text-xxs font-black uppercase tracking-eyebrow-wide text-muted-foreground", className),
|
|
@@ -5823,21 +5937,21 @@ function SectionLabel({ children, className }) {
|
|
|
5823
5937
|
}
|
|
5824
5938
|
|
|
5825
5939
|
// src/web/components/section-header.tsx
|
|
5826
|
-
var
|
|
5940
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
5827
5941
|
function SectionHeader({
|
|
5828
5942
|
children,
|
|
5829
5943
|
right,
|
|
5830
5944
|
as: Tag = "h2",
|
|
5831
5945
|
className
|
|
5832
5946
|
}) {
|
|
5833
|
-
return /* @__PURE__ */ (0,
|
|
5834
|
-
/* @__PURE__ */ (0,
|
|
5947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
|
|
5948
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
|
|
5835
5949
|
right
|
|
5836
5950
|
] });
|
|
5837
5951
|
}
|
|
5838
5952
|
|
|
5839
5953
|
// src/web/components/alert-banner.tsx
|
|
5840
|
-
var
|
|
5954
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
5841
5955
|
var variantStyles = {
|
|
5842
5956
|
error: { container: "bg-danger/40", icon: "text-danger", iconName: "error" },
|
|
5843
5957
|
warning: { container: "bg-warning/40", icon: "text-warning", iconName: "warning" },
|
|
@@ -5846,14 +5960,14 @@ var variantStyles = {
|
|
|
5846
5960
|
};
|
|
5847
5961
|
function AlertBanner({ variant = "info", icon, children, className }) {
|
|
5848
5962
|
const styles = variantStyles[variant];
|
|
5849
|
-
return /* @__PURE__ */ (0,
|
|
5850
|
-
/* @__PURE__ */ (0,
|
|
5851
|
-
/* @__PURE__ */ (0,
|
|
5963
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
|
|
5964
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
|
|
5965
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: cn("text-sm", styles.icon), children })
|
|
5852
5966
|
] });
|
|
5853
5967
|
}
|
|
5854
5968
|
|
|
5855
5969
|
// src/web/components/info-panel.tsx
|
|
5856
|
-
var
|
|
5970
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
5857
5971
|
var toneClass = {
|
|
5858
5972
|
default: {
|
|
5859
5973
|
panel: "bg-card/70",
|
|
@@ -5894,18 +6008,18 @@ function InfoPanel({
|
|
|
5894
6008
|
className
|
|
5895
6009
|
}) {
|
|
5896
6010
|
const styles = toneClass[tone];
|
|
5897
|
-
const renderedIcon = typeof icon === "string" ? /* @__PURE__ */ (0,
|
|
5898
|
-
return /* @__PURE__ */ (0,
|
|
6011
|
+
const renderedIcon = typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: icon, className: cn("mt-0.5 shrink-0 text-icon-xl", styles.icon) }) : icon;
|
|
6012
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: cn("rounded-xl p-4", styles.panel, className), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
5899
6013
|
renderedIcon,
|
|
5900
|
-
/* @__PURE__ */ (0,
|
|
5901
|
-
title && /* @__PURE__ */ (0,
|
|
5902
|
-
/* @__PURE__ */ (0,
|
|
6014
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
6015
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: cn("text-sm font-bold", styles.title), children: title }),
|
|
6016
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
|
|
5903
6017
|
] })
|
|
5904
6018
|
] }) });
|
|
5905
6019
|
}
|
|
5906
6020
|
|
|
5907
6021
|
// src/web/components/info-chip.tsx
|
|
5908
|
-
var
|
|
6022
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
5909
6023
|
var defaultStatusLabel = {
|
|
5910
6024
|
success: "Success",
|
|
5911
6025
|
warning: "Warning",
|
|
@@ -5945,7 +6059,7 @@ function InfoChip({
|
|
|
5945
6059
|
"data-info-kind": dataInfoKind
|
|
5946
6060
|
}) {
|
|
5947
6061
|
const readableStatus = status ? statusLabel ?? defaultStatusLabel[status] : null;
|
|
5948
|
-
return /* @__PURE__ */ (0,
|
|
6062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
5949
6063
|
"div",
|
|
5950
6064
|
{
|
|
5951
6065
|
"data-slot": "info-chip",
|
|
@@ -5957,7 +6071,7 @@ function InfoChip({
|
|
|
5957
6071
|
className
|
|
5958
6072
|
),
|
|
5959
6073
|
children: [
|
|
5960
|
-
leading && /* @__PURE__ */ (0,
|
|
6074
|
+
leading && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5961
6075
|
"span",
|
|
5962
6076
|
{
|
|
5963
6077
|
"aria-hidden": "true",
|
|
@@ -5968,10 +6082,10 @@ function InfoChip({
|
|
|
5968
6082
|
children: leading
|
|
5969
6083
|
}
|
|
5970
6084
|
),
|
|
5971
|
-
/* @__PURE__ */ (0,
|
|
5972
|
-
/* @__PURE__ */ (0,
|
|
5973
|
-
/* @__PURE__ */ (0,
|
|
5974
|
-
/* @__PURE__ */ (0,
|
|
6085
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("dl", { className: "min-w-0 flex-1", children: [
|
|
6086
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("dt", { className: "truncate text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: label }),
|
|
6087
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("dd", { className: "mt-0.5 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1", children: [
|
|
6088
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5975
6089
|
"span",
|
|
5976
6090
|
{
|
|
5977
6091
|
className: cn(
|
|
@@ -5981,7 +6095,7 @@ function InfoChip({
|
|
|
5981
6095
|
children: value
|
|
5982
6096
|
}
|
|
5983
6097
|
),
|
|
5984
|
-
status && /* @__PURE__ */ (0,
|
|
6098
|
+
status && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
5985
6099
|
"span",
|
|
5986
6100
|
{
|
|
5987
6101
|
className: cn(
|
|
@@ -5989,14 +6103,14 @@ function InfoChip({
|
|
|
5989
6103
|
statusToneClass[status]
|
|
5990
6104
|
),
|
|
5991
6105
|
children: [
|
|
5992
|
-
/* @__PURE__ */ (0,
|
|
5993
|
-
/* @__PURE__ */ (0,
|
|
6106
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { "aria-hidden": "true", className: cn("size-1.5 shrink-0 rounded-full", statusDotClass[status]) }),
|
|
6107
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "truncate", children: readableStatus })
|
|
5994
6108
|
]
|
|
5995
6109
|
}
|
|
5996
6110
|
)
|
|
5997
6111
|
] })
|
|
5998
6112
|
] }),
|
|
5999
|
-
onEdit && /* @__PURE__ */ (0,
|
|
6113
|
+
onEdit && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
6000
6114
|
Button,
|
|
6001
6115
|
{
|
|
6002
6116
|
type: "button",
|
|
@@ -6007,7 +6121,7 @@ function InfoChip({
|
|
|
6007
6121
|
"aria-label": editLabel,
|
|
6008
6122
|
title: editLabel,
|
|
6009
6123
|
className: "shrink-0",
|
|
6010
|
-
children: /* @__PURE__ */ (0,
|
|
6124
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "edit", size: "sm", "aria-hidden": "true" })
|
|
6011
6125
|
}
|
|
6012
6126
|
)
|
|
6013
6127
|
]
|
|
@@ -6021,12 +6135,12 @@ function NetworkInfoChip({
|
|
|
6021
6135
|
iconBasePath,
|
|
6022
6136
|
...infoChipProps
|
|
6023
6137
|
}) {
|
|
6024
|
-
return /* @__PURE__ */ (0,
|
|
6138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
6025
6139
|
InfoChip,
|
|
6026
6140
|
{
|
|
6027
6141
|
...infoChipProps,
|
|
6028
6142
|
"data-info-kind": "network",
|
|
6029
|
-
leading: /* @__PURE__ */ (0,
|
|
6143
|
+
leading: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(NetworkBadge, { network, iconBasePath, size: "md" }),
|
|
6030
6144
|
label,
|
|
6031
6145
|
value
|
|
6032
6146
|
}
|
|
@@ -6040,12 +6154,12 @@ function AssetInfoChip({
|
|
|
6040
6154
|
cdnBaseUrl,
|
|
6041
6155
|
...infoChipProps
|
|
6042
6156
|
}) {
|
|
6043
|
-
return /* @__PURE__ */ (0,
|
|
6157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
6044
6158
|
InfoChip,
|
|
6045
6159
|
{
|
|
6046
6160
|
...infoChipProps,
|
|
6047
6161
|
"data-info-kind": "asset",
|
|
6048
|
-
leading: /* @__PURE__ */ (0,
|
|
6162
|
+
leading: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(AssetIcon, { ticker, logoUri, cdnBaseUrl, size: 28 }),
|
|
6049
6163
|
label,
|
|
6050
6164
|
value
|
|
6051
6165
|
}
|
|
@@ -6054,7 +6168,7 @@ function AssetInfoChip({
|
|
|
6054
6168
|
|
|
6055
6169
|
// src/web/components/error-boundary.tsx
|
|
6056
6170
|
var import_react12 = require("react");
|
|
6057
|
-
var
|
|
6171
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
6058
6172
|
var ErrorBoundary = class extends import_react12.Component {
|
|
6059
6173
|
constructor(props) {
|
|
6060
6174
|
super(props);
|
|
@@ -6068,11 +6182,11 @@ var ErrorBoundary = class extends import_react12.Component {
|
|
|
6068
6182
|
}
|
|
6069
6183
|
render() {
|
|
6070
6184
|
if (this.state.hasError) {
|
|
6071
|
-
return this.props.fallback ?? /* @__PURE__ */ (0,
|
|
6072
|
-
/* @__PURE__ */ (0,
|
|
6073
|
-
/* @__PURE__ */ (0,
|
|
6074
|
-
/* @__PURE__ */ (0,
|
|
6075
|
-
/* @__PURE__ */ (0,
|
|
6185
|
+
return this.props.fallback ?? /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
|
|
6186
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
|
|
6187
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
|
|
6188
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
|
|
6189
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
6076
6190
|
"button",
|
|
6077
6191
|
{
|
|
6078
6192
|
onClick: () => {
|
|
@@ -6090,7 +6204,7 @@ var ErrorBoundary = class extends import_react12.Component {
|
|
|
6090
6204
|
};
|
|
6091
6205
|
|
|
6092
6206
|
// src/web/components/recovery-phrase-card.tsx
|
|
6093
|
-
var
|
|
6207
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
6094
6208
|
function RecoveryPhraseCard({
|
|
6095
6209
|
words,
|
|
6096
6210
|
revealed = false,
|
|
@@ -6101,10 +6215,10 @@ function RecoveryPhraseCard({
|
|
|
6101
6215
|
className
|
|
6102
6216
|
}) {
|
|
6103
6217
|
const hasWords = words.length > 0;
|
|
6104
|
-
return /* @__PURE__ */ (0,
|
|
6105
|
-
/* @__PURE__ */ (0,
|
|
6106
|
-
/* @__PURE__ */ (0,
|
|
6107
|
-
hasWords && revealed && onRevealChange && /* @__PURE__ */ (0,
|
|
6218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("section", { className: cn("space-y-2", className), children: [
|
|
6219
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
|
|
6220
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
|
|
6221
|
+
hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
6108
6222
|
Button,
|
|
6109
6223
|
{
|
|
6110
6224
|
type: "button",
|
|
@@ -6113,27 +6227,27 @@ function RecoveryPhraseCard({
|
|
|
6113
6227
|
onClick: () => onRevealChange(!revealed),
|
|
6114
6228
|
className: "h-auto rounded-lg px-2 py-1 text-xs text-muted-foreground hover:text-white",
|
|
6115
6229
|
children: [
|
|
6116
|
-
/* @__PURE__ */ (0,
|
|
6230
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
|
|
6117
6231
|
"Hide"
|
|
6118
6232
|
]
|
|
6119
6233
|
}
|
|
6120
6234
|
)
|
|
6121
6235
|
] }),
|
|
6122
|
-
/* @__PURE__ */ (0,
|
|
6123
|
-
hasWords ? /* @__PURE__ */ (0,
|
|
6236
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "relative", children: [
|
|
6237
|
+
hasWords ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
6124
6238
|
"div",
|
|
6125
6239
|
{
|
|
6126
6240
|
className: cn(
|
|
6127
6241
|
"grid grid-cols-3 gap-2 transition-all duration-300",
|
|
6128
6242
|
!revealed && "pointer-events-none select-none blur-sm"
|
|
6129
6243
|
),
|
|
6130
|
-
children: words.map((word, index) => /* @__PURE__ */ (0,
|
|
6131
|
-
/* @__PURE__ */ (0,
|
|
6132
|
-
/* @__PURE__ */ (0,
|
|
6244
|
+
children: words.map((word, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
|
|
6245
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
|
|
6246
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "font-mono text-sm text-white", children: word })
|
|
6133
6247
|
] }, `${index}-${word}`))
|
|
6134
6248
|
}
|
|
6135
|
-
) : /* @__PURE__ */ (0,
|
|
6136
|
-
hasWords && !revealed && onRevealChange && /* @__PURE__ */ (0,
|
|
6249
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "rounded-xl bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
|
|
6250
|
+
hasWords && !revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
6137
6251
|
Button,
|
|
6138
6252
|
{
|
|
6139
6253
|
type: "button",
|
|
@@ -6141,13 +6255,13 @@ function RecoveryPhraseCard({
|
|
|
6141
6255
|
size: "sm",
|
|
6142
6256
|
onClick: () => onRevealChange(true),
|
|
6143
6257
|
children: [
|
|
6144
|
-
/* @__PURE__ */ (0,
|
|
6258
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
|
|
6145
6259
|
"Tap to reveal"
|
|
6146
6260
|
]
|
|
6147
6261
|
}
|
|
6148
6262
|
) })
|
|
6149
6263
|
] }),
|
|
6150
|
-
hasWords && revealed && onCopy && /* @__PURE__ */ (0,
|
|
6264
|
+
hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
6151
6265
|
Button,
|
|
6152
6266
|
{
|
|
6153
6267
|
type: "button",
|
|
@@ -6156,7 +6270,7 @@ function RecoveryPhraseCard({
|
|
|
6156
6270
|
onClick: onCopy,
|
|
6157
6271
|
className: "w-full",
|
|
6158
6272
|
children: [
|
|
6159
|
-
/* @__PURE__ */ (0,
|
|
6273
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
|
|
6160
6274
|
"Copy to clipboard"
|
|
6161
6275
|
]
|
|
6162
6276
|
}
|
|
@@ -6165,7 +6279,7 @@ function RecoveryPhraseCard({
|
|
|
6165
6279
|
}
|
|
6166
6280
|
|
|
6167
6281
|
// src/web/components/settings-selector-row.tsx
|
|
6168
|
-
var
|
|
6282
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
6169
6283
|
function SettingsSelectorRow({
|
|
6170
6284
|
icon,
|
|
6171
6285
|
title,
|
|
@@ -6174,9 +6288,9 @@ function SettingsSelectorRow({
|
|
|
6174
6288
|
className,
|
|
6175
6289
|
iconClassName
|
|
6176
6290
|
}) {
|
|
6177
|
-
return /* @__PURE__ */ (0,
|
|
6178
|
-
/* @__PURE__ */ (0,
|
|
6179
|
-
/* @__PURE__ */ (0,
|
|
6291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
|
|
6292
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
|
|
6293
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
6180
6294
|
"div",
|
|
6181
6295
|
{
|
|
6182
6296
|
className: cn(
|
|
@@ -6186,17 +6300,17 @@ function SettingsSelectorRow({
|
|
|
6186
6300
|
children: icon
|
|
6187
6301
|
}
|
|
6188
6302
|
),
|
|
6189
|
-
/* @__PURE__ */ (0,
|
|
6190
|
-
/* @__PURE__ */ (0,
|
|
6191
|
-
description && /* @__PURE__ */ (0,
|
|
6303
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
6304
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
|
|
6305
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
|
|
6192
6306
|
] })
|
|
6193
6307
|
] }),
|
|
6194
|
-
/* @__PURE__ */ (0,
|
|
6308
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "shrink-0", children: control })
|
|
6195
6309
|
] });
|
|
6196
6310
|
}
|
|
6197
6311
|
|
|
6198
6312
|
// src/web/components/bottom-sheet.tsx
|
|
6199
|
-
var
|
|
6313
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
6200
6314
|
function BottomSheet({
|
|
6201
6315
|
open,
|
|
6202
6316
|
title,
|
|
@@ -6212,7 +6326,7 @@ function BottomSheet({
|
|
|
6212
6326
|
const handleBackdropClick = (event) => {
|
|
6213
6327
|
if (closeOnBackdrop && event.target === event.currentTarget) onClose?.();
|
|
6214
6328
|
};
|
|
6215
|
-
return /* @__PURE__ */ (0,
|
|
6329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
6216
6330
|
"div",
|
|
6217
6331
|
{
|
|
6218
6332
|
className: cn(
|
|
@@ -6220,7 +6334,7 @@ function BottomSheet({
|
|
|
6220
6334
|
className
|
|
6221
6335
|
),
|
|
6222
6336
|
onClick: handleBackdropClick,
|
|
6223
|
-
children: /* @__PURE__ */ (0,
|
|
6337
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
6224
6338
|
"div",
|
|
6225
6339
|
{
|
|
6226
6340
|
className: cn(
|
|
@@ -6228,13 +6342,13 @@ function BottomSheet({
|
|
|
6228
6342
|
contentClassName
|
|
6229
6343
|
),
|
|
6230
6344
|
children: [
|
|
6231
|
-
/* @__PURE__ */ (0,
|
|
6232
|
-
(title || icon) && /* @__PURE__ */ (0,
|
|
6345
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
|
|
6346
|
+
(title || icon) && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
|
|
6233
6347
|
icon,
|
|
6234
|
-
/* @__PURE__ */ (0,
|
|
6348
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
|
|
6235
6349
|
] }),
|
|
6236
|
-
/* @__PURE__ */ (0,
|
|
6237
|
-
actions && actions.length > 0 && /* @__PURE__ */ (0,
|
|
6350
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
|
|
6351
|
+
actions && actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
6238
6352
|
Button,
|
|
6239
6353
|
{
|
|
6240
6354
|
type: "button",
|
|
@@ -6244,7 +6358,7 @@ function BottomSheet({
|
|
|
6244
6358
|
onClick: action.onClick,
|
|
6245
6359
|
disabled: action.disabled,
|
|
6246
6360
|
children: [
|
|
6247
|
-
action.icon && /* @__PURE__ */ (0,
|
|
6361
|
+
action.icon && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
|
|
6248
6362
|
action.label
|
|
6249
6363
|
]
|
|
6250
6364
|
},
|
|
@@ -6258,7 +6372,7 @@ function BottomSheet({
|
|
|
6258
6372
|
}
|
|
6259
6373
|
|
|
6260
6374
|
// src/web/components/disclosure-card.tsx
|
|
6261
|
-
var
|
|
6375
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
6262
6376
|
function DisclosureCard({
|
|
6263
6377
|
title,
|
|
6264
6378
|
children,
|
|
@@ -6269,8 +6383,8 @@ function DisclosureCard({
|
|
|
6269
6383
|
triggerClassName,
|
|
6270
6384
|
contentClassName
|
|
6271
6385
|
}) {
|
|
6272
|
-
return /* @__PURE__ */ (0,
|
|
6273
|
-
/* @__PURE__ */ (0,
|
|
6386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className, children: [
|
|
6387
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
|
|
6274
6388
|
"button",
|
|
6275
6389
|
{
|
|
6276
6390
|
type: "button",
|
|
@@ -6280,11 +6394,11 @@ function DisclosureCard({
|
|
|
6280
6394
|
triggerClassName
|
|
6281
6395
|
),
|
|
6282
6396
|
children: [
|
|
6283
|
-
/* @__PURE__ */ (0,
|
|
6397
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
6284
6398
|
icon,
|
|
6285
|
-
/* @__PURE__ */ (0,
|
|
6399
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
|
|
6286
6400
|
] }),
|
|
6287
|
-
/* @__PURE__ */ (0,
|
|
6401
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
6288
6402
|
Icon,
|
|
6289
6403
|
{
|
|
6290
6404
|
name: open ? "expand_less" : "expand_more",
|
|
@@ -6294,7 +6408,7 @@ function DisclosureCard({
|
|
|
6294
6408
|
]
|
|
6295
6409
|
}
|
|
6296
6410
|
),
|
|
6297
|
-
open && /* @__PURE__ */ (0,
|
|
6411
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
6298
6412
|
"div",
|
|
6299
6413
|
{
|
|
6300
6414
|
className: cn(
|
|
@@ -6308,7 +6422,7 @@ function DisclosureCard({
|
|
|
6308
6422
|
}
|
|
6309
6423
|
|
|
6310
6424
|
// src/web/components/stepper-number-input.tsx
|
|
6311
|
-
var
|
|
6425
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
6312
6426
|
function StepperNumberInput({
|
|
6313
6427
|
value,
|
|
6314
6428
|
onChange,
|
|
@@ -6325,7 +6439,7 @@ function StepperNumberInput({
|
|
|
6325
6439
|
const bounded = max === void 0 ? boundedMin : Math.min(max, boundedMin);
|
|
6326
6440
|
onChange(Number.isFinite(bounded) ? bounded : min ?? 0);
|
|
6327
6441
|
};
|
|
6328
|
-
return /* @__PURE__ */ (0,
|
|
6442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
6329
6443
|
"div",
|
|
6330
6444
|
{
|
|
6331
6445
|
className: cn(
|
|
@@ -6333,7 +6447,7 @@ function StepperNumberInput({
|
|
|
6333
6447
|
className
|
|
6334
6448
|
),
|
|
6335
6449
|
children: [
|
|
6336
|
-
/* @__PURE__ */ (0,
|
|
6450
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
6337
6451
|
"button",
|
|
6338
6452
|
{
|
|
6339
6453
|
type: "button",
|
|
@@ -6341,10 +6455,10 @@ function StepperNumberInput({
|
|
|
6341
6455
|
disabled: disabled || min !== void 0 && value <= min,
|
|
6342
6456
|
onClick: () => clamp(value - step),
|
|
6343
6457
|
"aria-label": "Decrease",
|
|
6344
|
-
children: /* @__PURE__ */ (0,
|
|
6458
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: "remove", className: "text-icon-md" })
|
|
6345
6459
|
}
|
|
6346
6460
|
),
|
|
6347
|
-
/* @__PURE__ */ (0,
|
|
6461
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
6348
6462
|
"input",
|
|
6349
6463
|
{
|
|
6350
6464
|
type: "number",
|
|
@@ -6361,7 +6475,7 @@ function StepperNumberInput({
|
|
|
6361
6475
|
)
|
|
6362
6476
|
}
|
|
6363
6477
|
),
|
|
6364
|
-
/* @__PURE__ */ (0,
|
|
6478
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
6365
6479
|
"button",
|
|
6366
6480
|
{
|
|
6367
6481
|
type: "button",
|
|
@@ -6369,7 +6483,7 @@ function StepperNumberInput({
|
|
|
6369
6483
|
disabled: disabled || max !== void 0 && value >= max,
|
|
6370
6484
|
onClick: () => clamp(value + step),
|
|
6371
6485
|
"aria-label": "Increase",
|
|
6372
|
-
children: /* @__PURE__ */ (0,
|
|
6486
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: "add", className: "text-icon-md" })
|
|
6373
6487
|
}
|
|
6374
6488
|
)
|
|
6375
6489
|
]
|
|
@@ -6378,7 +6492,7 @@ function StepperNumberInput({
|
|
|
6378
6492
|
}
|
|
6379
6493
|
|
|
6380
6494
|
// src/web/components/metric-card.tsx
|
|
6381
|
-
var
|
|
6495
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
6382
6496
|
var toneClasses2 = {
|
|
6383
6497
|
primary: "bg-primary/10 text-primary",
|
|
6384
6498
|
purple: "bg-network-arkade/10 text-network-arkade",
|
|
@@ -6396,27 +6510,27 @@ function MetricCard({
|
|
|
6396
6510
|
tone = "muted",
|
|
6397
6511
|
className
|
|
6398
6512
|
}) {
|
|
6399
|
-
return /* @__PURE__ */ (0,
|
|
6400
|
-
/* @__PURE__ */ (0,
|
|
6401
|
-
icon && /* @__PURE__ */ (0,
|
|
6402
|
-
/* @__PURE__ */ (0,
|
|
6513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: cn("space-y-1 rounded-xl bg-card/70 p-2.5", className), children: [
|
|
6514
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
6515
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
|
|
6516
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
|
|
6403
6517
|
] }),
|
|
6404
|
-
/* @__PURE__ */ (0,
|
|
6405
|
-
description && /* @__PURE__ */ (0,
|
|
6518
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-sm font-bold tabular-nums text-foreground", children: value }),
|
|
6519
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-xxs text-white/45", children: description })
|
|
6406
6520
|
] });
|
|
6407
6521
|
}
|
|
6408
6522
|
|
|
6409
6523
|
// src/web/components/filter-chip-group.tsx
|
|
6410
|
-
var
|
|
6524
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
6411
6525
|
function FilterChipGroup({
|
|
6412
6526
|
options,
|
|
6413
6527
|
value,
|
|
6414
6528
|
onChange,
|
|
6415
6529
|
className
|
|
6416
6530
|
}) {
|
|
6417
|
-
return /* @__PURE__ */ (0,
|
|
6531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
|
|
6418
6532
|
const active = option.value === value;
|
|
6419
|
-
return /* @__PURE__ */ (0,
|
|
6533
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
6420
6534
|
"button",
|
|
6421
6535
|
{
|
|
6422
6536
|
type: "button",
|
|
@@ -6430,7 +6544,7 @@ function FilterChipGroup({
|
|
|
6430
6544
|
children: [
|
|
6431
6545
|
option.icon,
|
|
6432
6546
|
option.label,
|
|
6433
|
-
option.count !== void 0 && /* @__PURE__ */ (0,
|
|
6547
|
+
option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
6434
6548
|
"span",
|
|
6435
6549
|
{
|
|
6436
6550
|
className: cn(
|
|
@@ -6448,7 +6562,7 @@ function FilterChipGroup({
|
|
|
6448
6562
|
}
|
|
6449
6563
|
|
|
6450
6564
|
// src/web/components/activity-row.tsx
|
|
6451
|
-
var
|
|
6565
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
6452
6566
|
var directionUi = {
|
|
6453
6567
|
inbound: { icon: "south_west", iconClass: "bg-primary/20 text-primary", amountClass: "text-primary", sign: "+" },
|
|
6454
6568
|
outbound: { icon: "north_east", iconClass: "bg-white/10 text-muted-foreground", amountClass: "text-foreground", sign: "-" },
|
|
@@ -6468,29 +6582,29 @@ function ActivityRow({
|
|
|
6468
6582
|
className
|
|
6469
6583
|
}) {
|
|
6470
6584
|
const ui = directionUi[direction];
|
|
6471
|
-
const content = /* @__PURE__ */ (0,
|
|
6472
|
-
/* @__PURE__ */ (0,
|
|
6473
|
-
/* @__PURE__ */ (0,
|
|
6585
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
6586
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
6587
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
6474
6588
|
StatusIconBadge,
|
|
6475
6589
|
{
|
|
6476
6590
|
status,
|
|
6477
|
-
icon: /* @__PURE__ */ (0,
|
|
6591
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: cn("flex size-10 items-center justify-center rounded-xl shadow-inner", ui.iconClass), children: typeof icon === "string" || !icon ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon })
|
|
6478
6592
|
}
|
|
6479
6593
|
),
|
|
6480
|
-
/* @__PURE__ */ (0,
|
|
6481
|
-
/* @__PURE__ */ (0,
|
|
6482
|
-
/* @__PURE__ */ (0,
|
|
6594
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
|
|
6595
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
6596
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
|
|
6483
6597
|
networkBadge
|
|
6484
6598
|
] }),
|
|
6485
|
-
timestamp && /* @__PURE__ */ (0,
|
|
6599
|
+
timestamp && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "mt-1 flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp }) })
|
|
6486
6600
|
] })
|
|
6487
6601
|
] }),
|
|
6488
|
-
/* @__PURE__ */ (0,
|
|
6489
|
-
/* @__PURE__ */ (0,
|
|
6602
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "shrink-0 text-right", children: [
|
|
6603
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
|
|
6490
6604
|
ui.sign,
|
|
6491
6605
|
amount
|
|
6492
6606
|
] }),
|
|
6493
|
-
unit && /* @__PURE__ */ (0,
|
|
6607
|
+
unit && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
|
|
6494
6608
|
] })
|
|
6495
6609
|
] });
|
|
6496
6610
|
const rowClassName = cn(
|
|
@@ -6499,23 +6613,23 @@ function ActivityRow({
|
|
|
6499
6613
|
className
|
|
6500
6614
|
);
|
|
6501
6615
|
if (onClick) {
|
|
6502
|
-
return /* @__PURE__ */ (0,
|
|
6616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
|
|
6503
6617
|
}
|
|
6504
|
-
return /* @__PURE__ */ (0,
|
|
6618
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: rowClassName, children: content });
|
|
6505
6619
|
}
|
|
6506
6620
|
|
|
6507
6621
|
// src/web/components/skeleton.tsx
|
|
6508
|
-
var
|
|
6622
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
6509
6623
|
var toneClass2 = {
|
|
6510
6624
|
primary: "bg-white/10",
|
|
6511
6625
|
secondary: "bg-white/5",
|
|
6512
6626
|
card: "bg-white/[0.06]"
|
|
6513
6627
|
};
|
|
6514
6628
|
function Skeleton({ className, tone = "primary" }) {
|
|
6515
|
-
return /* @__PURE__ */ (0,
|
|
6629
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
|
|
6516
6630
|
}
|
|
6517
6631
|
function ListSkeletonRows({ rows = 3, className, rowClassName }) {
|
|
6518
|
-
return /* @__PURE__ */ (0,
|
|
6632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
6519
6633
|
"div",
|
|
6520
6634
|
{
|
|
6521
6635
|
className: cn(
|
|
@@ -6523,14 +6637,14 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
|
|
|
6523
6637
|
rowClassName
|
|
6524
6638
|
),
|
|
6525
6639
|
children: [
|
|
6526
|
-
/* @__PURE__ */ (0,
|
|
6527
|
-
/* @__PURE__ */ (0,
|
|
6528
|
-
/* @__PURE__ */ (0,
|
|
6529
|
-
/* @__PURE__ */ (0,
|
|
6640
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
|
|
6641
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex-1 space-y-2", children: [
|
|
6642
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Skeleton, { className: "h-3 w-28" }),
|
|
6643
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
|
|
6530
6644
|
] }),
|
|
6531
|
-
/* @__PURE__ */ (0,
|
|
6532
|
-
/* @__PURE__ */ (0,
|
|
6533
|
-
/* @__PURE__ */ (0,
|
|
6645
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
|
|
6646
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Skeleton, { className: "h-3 w-14" }),
|
|
6647
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
|
|
6534
6648
|
] })
|
|
6535
6649
|
]
|
|
6536
6650
|
},
|
|
@@ -6539,7 +6653,7 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
|
|
|
6539
6653
|
}
|
|
6540
6654
|
|
|
6541
6655
|
// src/web/components/secret-reveal-card.tsx
|
|
6542
|
-
var
|
|
6656
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
6543
6657
|
function SecretRevealCard({
|
|
6544
6658
|
value,
|
|
6545
6659
|
revealed,
|
|
@@ -6551,9 +6665,9 @@ function SecretRevealCard({
|
|
|
6551
6665
|
className,
|
|
6552
6666
|
valueClassName
|
|
6553
6667
|
}) {
|
|
6554
|
-
return /* @__PURE__ */ (0,
|
|
6555
|
-
/* @__PURE__ */ (0,
|
|
6556
|
-
/* @__PURE__ */ (0,
|
|
6668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: cn("space-y-3", className), children: [
|
|
6669
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "relative", children: [
|
|
6670
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
6557
6671
|
"p",
|
|
6558
6672
|
{
|
|
6559
6673
|
className: cn(
|
|
@@ -6564,40 +6678,40 @@ function SecretRevealCard({
|
|
|
6564
6678
|
children: value
|
|
6565
6679
|
}
|
|
6566
6680
|
) }),
|
|
6567
|
-
!revealed && /* @__PURE__ */ (0,
|
|
6681
|
+
!revealed && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
6568
6682
|
"button",
|
|
6569
6683
|
{
|
|
6570
6684
|
type: "button",
|
|
6571
6685
|
onClick: () => onRevealChange(true),
|
|
6572
6686
|
className: "flex items-center gap-2 rounded-xl bg-card px-4 py-2 text-sm font-bold text-foreground shadow-lg transition-all hover:bg-accent",
|
|
6573
6687
|
children: [
|
|
6574
|
-
/* @__PURE__ */ (0,
|
|
6688
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
|
|
6575
6689
|
revealLabel
|
|
6576
6690
|
]
|
|
6577
6691
|
}
|
|
6578
6692
|
) })
|
|
6579
6693
|
] }),
|
|
6580
|
-
/* @__PURE__ */ (0,
|
|
6581
|
-
/* @__PURE__ */ (0,
|
|
6694
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
|
|
6695
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
6582
6696
|
"button",
|
|
6583
6697
|
{
|
|
6584
6698
|
type: "button",
|
|
6585
6699
|
onClick: () => onRevealChange(!revealed),
|
|
6586
6700
|
className: "flex flex-1 items-center justify-center gap-2 rounded-xl bg-white/5 py-3 text-sm font-semibold text-muted-foreground transition-all hover:bg-accent hover:text-foreground",
|
|
6587
6701
|
children: [
|
|
6588
|
-
/* @__PURE__ */ (0,
|
|
6702
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
|
|
6589
6703
|
revealed ? hideLabel : revealLabel
|
|
6590
6704
|
]
|
|
6591
6705
|
}
|
|
6592
6706
|
),
|
|
6593
|
-
revealed && onCopy && /* @__PURE__ */ (0,
|
|
6707
|
+
revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
6594
6708
|
"button",
|
|
6595
6709
|
{
|
|
6596
6710
|
type: "button",
|
|
6597
6711
|
onClick: onCopy,
|
|
6598
6712
|
className: "flex flex-1 items-center justify-center gap-2 rounded-xl bg-white/5 py-3 text-sm font-semibold text-muted-foreground transition-all hover:bg-accent hover:text-foreground",
|
|
6599
6713
|
children: [
|
|
6600
|
-
/* @__PURE__ */ (0,
|
|
6714
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
|
|
6601
6715
|
copyLabel
|
|
6602
6716
|
]
|
|
6603
6717
|
}
|
|
@@ -6607,7 +6721,7 @@ function SecretRevealCard({
|
|
|
6607
6721
|
}
|
|
6608
6722
|
|
|
6609
6723
|
// src/web/components/settings-section-card.tsx
|
|
6610
|
-
var
|
|
6724
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
6611
6725
|
function SettingsSectionCard({
|
|
6612
6726
|
title,
|
|
6613
6727
|
description,
|
|
@@ -6616,15 +6730,15 @@ function SettingsSectionCard({
|
|
|
6616
6730
|
className,
|
|
6617
6731
|
bodyClassName
|
|
6618
6732
|
}) {
|
|
6619
|
-
return /* @__PURE__ */ (0,
|
|
6620
|
-
/* @__PURE__ */ (0,
|
|
6621
|
-
/* @__PURE__ */ (0,
|
|
6622
|
-
/* @__PURE__ */ (0,
|
|
6623
|
-
description && /* @__PURE__ */ (0,
|
|
6733
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card/70 p-4", className), children: [
|
|
6734
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
|
|
6735
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
6736
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
|
|
6737
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
|
|
6624
6738
|
] }),
|
|
6625
6739
|
badge
|
|
6626
6740
|
] }),
|
|
6627
|
-
/* @__PURE__ */ (0,
|
|
6741
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: bodyClassName, children })
|
|
6628
6742
|
] });
|
|
6629
6743
|
}
|
|
6630
6744
|
var badgeToneClass = {
|
|
@@ -6636,7 +6750,7 @@ var badgeToneClass = {
|
|
|
6636
6750
|
muted: "border-white/10 bg-white/[0.05] text-white/55"
|
|
6637
6751
|
};
|
|
6638
6752
|
function ToneBadge({ children, tone = "muted", className }) {
|
|
6639
|
-
return /* @__PURE__ */ (0,
|
|
6753
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
6640
6754
|
"span",
|
|
6641
6755
|
{
|
|
6642
6756
|
className: cn(
|
|
@@ -6650,7 +6764,7 @@ function ToneBadge({ children, tone = "muted", className }) {
|
|
|
6650
6764
|
}
|
|
6651
6765
|
|
|
6652
6766
|
// src/web/components/selectable-card.tsx
|
|
6653
|
-
var
|
|
6767
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
6654
6768
|
function SelectableCard({
|
|
6655
6769
|
selected,
|
|
6656
6770
|
onClick,
|
|
@@ -6662,28 +6776,28 @@ function SelectableCard({
|
|
|
6662
6776
|
children,
|
|
6663
6777
|
className
|
|
6664
6778
|
}) {
|
|
6665
|
-
const content = /* @__PURE__ */ (0,
|
|
6666
|
-
/* @__PURE__ */ (0,
|
|
6667
|
-
indicator && /* @__PURE__ */ (0,
|
|
6779
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
|
|
6780
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
|
|
6781
|
+
indicator && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
6668
6782
|
"div",
|
|
6669
6783
|
{
|
|
6670
6784
|
className: cn(
|
|
6671
6785
|
"mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors",
|
|
6672
6786
|
selected ? "border-primary bg-primary" : "border-white/20"
|
|
6673
6787
|
),
|
|
6674
|
-
children: selected && /* @__PURE__ */ (0,
|
|
6788
|
+
children: selected && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "size-2 rounded-full bg-background" })
|
|
6675
6789
|
}
|
|
6676
6790
|
),
|
|
6677
|
-
/* @__PURE__ */ (0,
|
|
6678
|
-
/* @__PURE__ */ (0,
|
|
6679
|
-
/* @__PURE__ */ (0,
|
|
6791
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
6792
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
6793
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
|
|
6680
6794
|
badge
|
|
6681
6795
|
] }),
|
|
6682
|
-
description && /* @__PURE__ */ (0,
|
|
6796
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
|
|
6683
6797
|
children
|
|
6684
6798
|
] })
|
|
6685
6799
|
] }),
|
|
6686
|
-
preview && /* @__PURE__ */ (0,
|
|
6800
|
+
preview && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "shrink-0 text-right", children: preview })
|
|
6687
6801
|
] });
|
|
6688
6802
|
const cardClassName = cn(
|
|
6689
6803
|
"w-full rounded-2xl border p-4 text-left transition-all duration-200",
|
|
@@ -6691,14 +6805,14 @@ function SelectableCard({
|
|
|
6691
6805
|
className
|
|
6692
6806
|
);
|
|
6693
6807
|
if (onClick) {
|
|
6694
|
-
return /* @__PURE__ */ (0,
|
|
6808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
|
|
6695
6809
|
}
|
|
6696
|
-
return /* @__PURE__ */ (0,
|
|
6810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: cardClassName, children: content });
|
|
6697
6811
|
}
|
|
6698
6812
|
|
|
6699
6813
|
// src/web/components/mobile-hero-animation.tsx
|
|
6700
6814
|
var import_react13 = require("react");
|
|
6701
|
-
var
|
|
6815
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
6702
6816
|
var PROTOCOLS = [
|
|
6703
6817
|
{ name: "Bitcoin", network: "Bitcoin", iconSuffix: "bitcoin/bitcoin-logo.svg" },
|
|
6704
6818
|
{ name: "Lightning", network: "LN", iconSuffix: "lightning/lightning.svg" },
|
|
@@ -6757,15 +6871,15 @@ var MobileHeroAnimation = ({
|
|
|
6757
6871
|
}, []);
|
|
6758
6872
|
const anim = !reducedMotion && isVisible;
|
|
6759
6873
|
const scale = size / 280;
|
|
6760
|
-
return /* @__PURE__ */ (0,
|
|
6874
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
|
|
6761
6875
|
"div",
|
|
6762
6876
|
{
|
|
6763
6877
|
ref: containerRef,
|
|
6764
6878
|
className,
|
|
6765
6879
|
style: { position: "relative", width: size, height: size },
|
|
6766
6880
|
children: [
|
|
6767
|
-
/* @__PURE__ */ (0,
|
|
6768
|
-
/* @__PURE__ */ (0,
|
|
6881
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("style", { children: KEYFRAMES }),
|
|
6882
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { style: {
|
|
6769
6883
|
position: "absolute",
|
|
6770
6884
|
top: 0,
|
|
6771
6885
|
left: 0,
|
|
@@ -6774,7 +6888,7 @@ var MobileHeroAnimation = ({
|
|
|
6774
6888
|
transformOrigin: "top left",
|
|
6775
6889
|
transform: scale !== 1 ? `scale(${scale})` : void 0
|
|
6776
6890
|
}, children: [
|
|
6777
|
-
/* @__PURE__ */ (0,
|
|
6891
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
|
|
6778
6892
|
"svg",
|
|
6779
6893
|
{
|
|
6780
6894
|
viewBox: "0 0 280 280",
|
|
@@ -6783,34 +6897,34 @@ var MobileHeroAnimation = ({
|
|
|
6783
6897
|
style: { position: "absolute", inset: 0 },
|
|
6784
6898
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6785
6899
|
children: [
|
|
6786
|
-
/* @__PURE__ */ (0,
|
|
6787
|
-
/* @__PURE__ */ (0,
|
|
6788
|
-
/* @__PURE__ */ (0,
|
|
6789
|
-
/* @__PURE__ */ (0,
|
|
6790
|
-
/* @__PURE__ */ (0,
|
|
6900
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("defs", { children: [
|
|
6901
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
|
|
6902
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
|
|
6903
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
|
|
6904
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
|
|
6791
6905
|
] }),
|
|
6792
|
-
/* @__PURE__ */ (0,
|
|
6793
|
-
/* @__PURE__ */ (0,
|
|
6794
|
-
/* @__PURE__ */ (0,
|
|
6906
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
6907
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
|
|
6908
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
|
|
6795
6909
|
] }),
|
|
6796
|
-
/* @__PURE__ */ (0,
|
|
6797
|
-
/* @__PURE__ */ (0,
|
|
6798
|
-
/* @__PURE__ */ (0,
|
|
6910
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
6911
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
|
|
6912
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
|
|
6799
6913
|
] }),
|
|
6800
|
-
/* @__PURE__ */ (0,
|
|
6801
|
-
/* @__PURE__ */ (0,
|
|
6802
|
-
/* @__PURE__ */ (0,
|
|
6803
|
-
/* @__PURE__ */ (0,
|
|
6804
|
-
/* @__PURE__ */ (0,
|
|
6914
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
|
|
6915
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
|
|
6916
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("feMerge", { children: [
|
|
6917
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("feMergeNode", { in: "blur" }),
|
|
6918
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("feMergeNode", { in: "SourceGraphic" })
|
|
6805
6919
|
] })
|
|
6806
6920
|
] })
|
|
6807
6921
|
] }),
|
|
6808
|
-
/* @__PURE__ */ (0,
|
|
6809
|
-
/* @__PURE__ */ (0,
|
|
6810
|
-
/* @__PURE__ */ (0,
|
|
6922
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("circle", { cx: C, cy: C, r: ORBIT_R, fill: "none", stroke: "#0e9dff", strokeWidth: "1", strokeOpacity: "0.25", opacity: "0.4", children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
6923
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
|
|
6924
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
|
|
6811
6925
|
] }) }),
|
|
6812
|
-
/* @__PURE__ */ (0,
|
|
6813
|
-
/* @__PURE__ */ (0,
|
|
6926
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
|
|
6927
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
6814
6928
|
"g",
|
|
6815
6929
|
{
|
|
6816
6930
|
style: {
|
|
@@ -6828,8 +6942,8 @@ var MobileHeroAnimation = ({
|
|
|
6828
6942
|
const y2 = C + dy * (ORBIT_R - BADGE_HALF);
|
|
6829
6943
|
const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
|
|
6830
6944
|
const dur = `${2 + i * 0.3}s`;
|
|
6831
|
-
return /* @__PURE__ */ (0,
|
|
6832
|
-
/* @__PURE__ */ (0,
|
|
6945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("g", { children: [
|
|
6946
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
6833
6947
|
"line",
|
|
6834
6948
|
{
|
|
6835
6949
|
x1,
|
|
@@ -6840,30 +6954,30 @@ var MobileHeroAnimation = ({
|
|
|
6840
6954
|
strokeWidth: "0.8",
|
|
6841
6955
|
strokeDasharray: "2 4",
|
|
6842
6956
|
opacity: "0.25",
|
|
6843
|
-
children: anim && /* @__PURE__ */ (0,
|
|
6957
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
|
|
6844
6958
|
}
|
|
6845
6959
|
),
|
|
6846
|
-
/* @__PURE__ */ (0,
|
|
6847
|
-
/* @__PURE__ */ (0,
|
|
6848
|
-
/* @__PURE__ */ (0,
|
|
6849
|
-
/* @__PURE__ */ (0,
|
|
6850
|
-
/* @__PURE__ */ (0,
|
|
6960
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
6961
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
|
|
6962
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
|
|
6963
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
|
|
6964
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
|
|
6851
6965
|
] }) })
|
|
6852
6966
|
] }, `line-${i}`);
|
|
6853
6967
|
})
|
|
6854
6968
|
}
|
|
6855
6969
|
),
|
|
6856
|
-
/* @__PURE__ */ (0,
|
|
6857
|
-
/* @__PURE__ */ (0,
|
|
6858
|
-
/* @__PURE__ */ (0,
|
|
6859
|
-
/* @__PURE__ */ (0,
|
|
6970
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
|
|
6971
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
6972
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
|
|
6973
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
|
|
6860
6974
|
] }) }),
|
|
6861
|
-
/* @__PURE__ */ (0,
|
|
6862
|
-
/* @__PURE__ */ (0,
|
|
6863
|
-
/* @__PURE__ */ (0,
|
|
6975
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("circle", { cx: C, cy: C, r: "27", fill: "none", stroke: "url(#mh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
6976
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
|
|
6977
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
|
|
6864
6978
|
] }) }),
|
|
6865
|
-
/* @__PURE__ */ (0,
|
|
6866
|
-
anim && /* @__PURE__ */ (0,
|
|
6979
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("g", { children: [
|
|
6980
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
6867
6981
|
"animateTransform",
|
|
6868
6982
|
{
|
|
6869
6983
|
attributeName: "transform",
|
|
@@ -6875,13 +6989,13 @@ var MobileHeroAnimation = ({
|
|
|
6875
6989
|
additive: "sum"
|
|
6876
6990
|
}
|
|
6877
6991
|
),
|
|
6878
|
-
/* @__PURE__ */ (0,
|
|
6879
|
-
/* @__PURE__ */ (0,
|
|
6880
|
-
/* @__PURE__ */ (0,
|
|
6992
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: hexPath(34), fill: "none", stroke: "url(#mh-gp)", strokeWidth: "1.5", opacity: "0.4", filter: "url(#mh-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
6993
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
|
|
6994
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
|
|
6881
6995
|
] }) })
|
|
6882
6996
|
] }) }),
|
|
6883
|
-
/* @__PURE__ */ (0,
|
|
6884
|
-
anim && /* @__PURE__ */ (0,
|
|
6997
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("g", { children: [
|
|
6998
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
6885
6999
|
"animateTransform",
|
|
6886
7000
|
{
|
|
6887
7001
|
attributeName: "transform",
|
|
@@ -6893,19 +7007,19 @@ var MobileHeroAnimation = ({
|
|
|
6893
7007
|
additive: "sum"
|
|
6894
7008
|
}
|
|
6895
7009
|
),
|
|
6896
|
-
/* @__PURE__ */ (0,
|
|
7010
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
|
|
6897
7011
|
] }) }),
|
|
6898
|
-
/* @__PURE__ */ (0,
|
|
6899
|
-
/* @__PURE__ */ (0,
|
|
6900
|
-
/* @__PURE__ */ (0,
|
|
6901
|
-
/* @__PURE__ */ (0,
|
|
6902
|
-
/* @__PURE__ */ (0,
|
|
6903
|
-
/* @__PURE__ */ (0,
|
|
7012
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
|
|
7013
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
|
|
7014
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
|
|
7015
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
|
|
7016
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M137.149 274.559L68.6274 205.933L137.201 137.306L274.455 137.411L205.776 206.038L274.456 274.559H137.149Z", fill: "#15E99A" }),
|
|
7017
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
|
|
6904
7018
|
] })
|
|
6905
7019
|
]
|
|
6906
7020
|
}
|
|
6907
7021
|
),
|
|
6908
|
-
/* @__PURE__ */ (0,
|
|
7022
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { style: {
|
|
6909
7023
|
position: "absolute",
|
|
6910
7024
|
inset: 0,
|
|
6911
7025
|
width: 280,
|
|
@@ -6916,7 +7030,7 @@ var MobileHeroAnimation = ({
|
|
|
6916
7030
|
const x = C + Math.cos(angle) * ORBIT_R - BADGE_HALF;
|
|
6917
7031
|
const y = C + Math.sin(angle) * ORBIT_R - BADGE_HALF;
|
|
6918
7032
|
const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
|
|
6919
|
-
return /* @__PURE__ */ (0,
|
|
7033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
6920
7034
|
"div",
|
|
6921
7035
|
{
|
|
6922
7036
|
style: {
|
|
@@ -6927,7 +7041,7 @@ var MobileHeroAnimation = ({
|
|
|
6927
7041
|
height: BADGE_SIZE,
|
|
6928
7042
|
animation: anim ? "mha-counter-spin 20s linear infinite" : "none"
|
|
6929
7043
|
},
|
|
6930
|
-
children: /* @__PURE__ */ (0,
|
|
7044
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { style: {
|
|
6931
7045
|
width: "100%",
|
|
6932
7046
|
height: "100%",
|
|
6933
7047
|
borderRadius: "50%",
|
|
@@ -6938,7 +7052,7 @@ var MobileHeroAnimation = ({
|
|
|
6938
7052
|
display: "flex",
|
|
6939
7053
|
alignItems: "center",
|
|
6940
7054
|
justifyContent: "center"
|
|
6941
|
-
}, children: /* @__PURE__ */ (0,
|
|
7055
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
6942
7056
|
"img",
|
|
6943
7057
|
{
|
|
6944
7058
|
src: iconBasePath ? `${iconBasePath}/${protocol.iconSuffix}` : protocolIcons[protocol.network] ?? protocol.iconSuffix,
|
|
@@ -6958,7 +7072,7 @@ var MobileHeroAnimation = ({
|
|
|
6958
7072
|
|
|
6959
7073
|
// src/web/components/kaleidoscope-hero-animation.tsx
|
|
6960
7074
|
var import_react14 = require("react");
|
|
6961
|
-
var
|
|
7075
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
6962
7076
|
var PROTOCOLS2 = [
|
|
6963
7077
|
{ name: "Bitcoin L1", network: "L1", color: "#F7931A", glowColor: "rgba(247,147,26,0.5)" },
|
|
6964
7078
|
{ name: "Lightning", network: "LN", color: "#fbbf24", glowColor: "rgba(251,191,36,0.5)" },
|
|
@@ -7063,13 +7177,13 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7063
7177
|
const angle = Math.PI * 2 * i / 7 - Math.PI / 2;
|
|
7064
7178
|
return { x: c + orbitR * Math.cos(angle), y: c + orbitR * Math.sin(angle) };
|
|
7065
7179
|
});
|
|
7066
|
-
return /* @__PURE__ */ (0,
|
|
7180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7067
7181
|
"div",
|
|
7068
7182
|
{
|
|
7069
7183
|
ref: containerRef,
|
|
7070
7184
|
className: `relative ${className}`,
|
|
7071
7185
|
style: size ? { width: size, height: size } : void 0,
|
|
7072
|
-
children: /* @__PURE__ */ (0,
|
|
7186
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
7073
7187
|
"svg",
|
|
7074
7188
|
{
|
|
7075
7189
|
viewBox: "0 0 500 500",
|
|
@@ -7078,60 +7192,60 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7078
7192
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7079
7193
|
className: "overflow-visible",
|
|
7080
7194
|
children: [
|
|
7081
|
-
/* @__PURE__ */ (0,
|
|
7082
|
-
/* @__PURE__ */ (0,
|
|
7083
|
-
/* @__PURE__ */ (0,
|
|
7084
|
-
/* @__PURE__ */ (0,
|
|
7195
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("defs", { children: [
|
|
7196
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
7197
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
|
|
7198
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
|
|
7085
7199
|
] }),
|
|
7086
|
-
/* @__PURE__ */ (0,
|
|
7087
|
-
/* @__PURE__ */ (0,
|
|
7088
|
-
/* @__PURE__ */ (0,
|
|
7200
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
|
|
7201
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
|
|
7202
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
|
|
7089
7203
|
] }),
|
|
7090
|
-
/* @__PURE__ */ (0,
|
|
7091
|
-
/* @__PURE__ */ (0,
|
|
7092
|
-
/* @__PURE__ */ (0,
|
|
7204
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
|
|
7205
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
|
|
7206
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
|
|
7093
7207
|
] }),
|
|
7094
|
-
/* @__PURE__ */ (0,
|
|
7095
|
-
/* @__PURE__ */ (0,
|
|
7096
|
-
/* @__PURE__ */ (0,
|
|
7208
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
7209
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
|
|
7210
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
|
|
7097
7211
|
] }),
|
|
7098
|
-
/* @__PURE__ */ (0,
|
|
7099
|
-
/* @__PURE__ */ (0,
|
|
7100
|
-
/* @__PURE__ */ (0,
|
|
7212
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
7213
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
|
|
7214
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
|
|
7101
7215
|
] }),
|
|
7102
|
-
/* @__PURE__ */ (0,
|
|
7103
|
-
/* @__PURE__ */ (0,
|
|
7104
|
-
/* @__PURE__ */ (0,
|
|
7216
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
7217
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
|
|
7218
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
|
|
7105
7219
|
] }),
|
|
7106
|
-
/* @__PURE__ */ (0,
|
|
7107
|
-
/* @__PURE__ */ (0,
|
|
7108
|
-
/* @__PURE__ */ (0,
|
|
7109
|
-
/* @__PURE__ */ (0,
|
|
7220
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
|
|
7221
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
|
|
7222
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
|
|
7223
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
|
|
7110
7224
|
] }),
|
|
7111
|
-
/* @__PURE__ */ (0,
|
|
7112
|
-
/* @__PURE__ */ (0,
|
|
7113
|
-
/* @__PURE__ */ (0,
|
|
7114
|
-
/* @__PURE__ */ (0,
|
|
7225
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
|
|
7226
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
|
|
7227
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
|
|
7228
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
|
|
7115
7229
|
] }),
|
|
7116
|
-
/* @__PURE__ */ (0,
|
|
7117
|
-
/* @__PURE__ */ (0,
|
|
7118
|
-
/* @__PURE__ */ (0,
|
|
7119
|
-
/* @__PURE__ */ (0,
|
|
7120
|
-
/* @__PURE__ */ (0,
|
|
7230
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
|
|
7231
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
|
|
7232
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("feMerge", { children: [
|
|
7233
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("feMergeNode", { in: "blur" }),
|
|
7234
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("feMergeNode", { in: "SourceGraphic" })
|
|
7121
7235
|
] })
|
|
7122
7236
|
] }),
|
|
7123
|
-
/* @__PURE__ */ (0,
|
|
7124
|
-
/* @__PURE__ */ (0,
|
|
7125
|
-
/* @__PURE__ */ (0,
|
|
7126
|
-
/* @__PURE__ */ (0,
|
|
7127
|
-
/* @__PURE__ */ (0,
|
|
7237
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
|
|
7238
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
|
|
7239
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("feMerge", { children: [
|
|
7240
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("feMergeNode", { in: "blur" }),
|
|
7241
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("feMergeNode", { in: "SourceGraphic" })
|
|
7128
7242
|
] })
|
|
7129
7243
|
] })
|
|
7130
7244
|
] }),
|
|
7131
|
-
/* @__PURE__ */ (0,
|
|
7132
|
-
/* @__PURE__ */ (0,
|
|
7133
|
-
/* @__PURE__ */ (0,
|
|
7134
|
-
anim && /* @__PURE__ */ (0,
|
|
7245
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
|
|
7246
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: px(20), children: [
|
|
7247
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7248
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7135
7249
|
"animateTransform",
|
|
7136
7250
|
{
|
|
7137
7251
|
attributeName: "transform",
|
|
@@ -7144,14 +7258,14 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7144
7258
|
),
|
|
7145
7259
|
Array.from({ length: 6 }, (_, i) => {
|
|
7146
7260
|
const a = Math.PI / 3 * i;
|
|
7147
|
-
return /* @__PURE__ */ (0,
|
|
7148
|
-
/* @__PURE__ */ (0,
|
|
7149
|
-
/* @__PURE__ */ (0,
|
|
7261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
|
|
7262
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
|
|
7263
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
|
|
7150
7264
|
] }, `ha-${i}`);
|
|
7151
7265
|
}),
|
|
7152
7266
|
Array.from({ length: 6 }, (_, i) => {
|
|
7153
7267
|
const a = Math.PI / 3 * i + Math.PI / 6;
|
|
7154
|
-
return /* @__PURE__ */ (0,
|
|
7268
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7155
7269
|
"path",
|
|
7156
7270
|
{
|
|
7157
7271
|
d: triPath(14),
|
|
@@ -7164,7 +7278,7 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7164
7278
|
}),
|
|
7165
7279
|
Array.from({ length: 12 }, (_, i) => {
|
|
7166
7280
|
const a = Math.PI / 6 * i;
|
|
7167
|
-
return /* @__PURE__ */ (0,
|
|
7281
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7168
7282
|
"circle",
|
|
7169
7283
|
{
|
|
7170
7284
|
cx: c + outerR1 * 0.92 * Math.cos(a),
|
|
@@ -7172,14 +7286,14 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7172
7286
|
r: "1.5",
|
|
7173
7287
|
fill: "url(#kh-grad-a)",
|
|
7174
7288
|
opacity: "0.15",
|
|
7175
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7289
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
|
|
7176
7290
|
},
|
|
7177
7291
|
`od-${i}`
|
|
7178
7292
|
);
|
|
7179
7293
|
})
|
|
7180
7294
|
] }),
|
|
7181
|
-
/* @__PURE__ */ (0,
|
|
7182
|
-
anim && /* @__PURE__ */ (0,
|
|
7295
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7296
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7183
7297
|
"animateTransform",
|
|
7184
7298
|
{
|
|
7185
7299
|
attributeName: "transform",
|
|
@@ -7192,28 +7306,28 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7192
7306
|
),
|
|
7193
7307
|
Array.from({ length: 6 }, (_, i) => {
|
|
7194
7308
|
const a = Math.PI / 3 * i + Math.PI / 6;
|
|
7195
|
-
return /* @__PURE__ */ (0,
|
|
7196
|
-
/* @__PURE__ */ (0,
|
|
7197
|
-
/* @__PURE__ */ (0,
|
|
7309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
|
|
7310
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
|
|
7311
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
|
|
7198
7312
|
] }, `hb-${i}`);
|
|
7199
7313
|
}),
|
|
7200
7314
|
Array.from({ length: 6 }, (_, i) => {
|
|
7201
7315
|
const a = Math.PI / 3 * i;
|
|
7202
|
-
return /* @__PURE__ */ (0,
|
|
7316
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7203
7317
|
"path",
|
|
7204
7318
|
{
|
|
7205
7319
|
d: diamondPath(8, 16),
|
|
7206
7320
|
transform: `translate(${c + outerR2 * 0.85 * Math.cos(a)},${c + outerR2 * 0.85 * Math.sin(a)}) rotate(${i * 60})`,
|
|
7207
7321
|
fill: "url(#kh-grad-b)",
|
|
7208
7322
|
opacity: "0.08",
|
|
7209
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7323
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
|
|
7210
7324
|
},
|
|
7211
7325
|
`db-${i}`
|
|
7212
7326
|
);
|
|
7213
7327
|
})
|
|
7214
7328
|
] }),
|
|
7215
|
-
/* @__PURE__ */ (0,
|
|
7216
|
-
anim && /* @__PURE__ */ (0,
|
|
7329
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7330
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7217
7331
|
"animateTransform",
|
|
7218
7332
|
{
|
|
7219
7333
|
attributeName: "transform",
|
|
@@ -7227,23 +7341,23 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7227
7341
|
Array.from({ length: 12 }, (_, i) => {
|
|
7228
7342
|
const a = Math.PI / 6 * i;
|
|
7229
7343
|
const r = outerR1 * (0.6 + i % 2 * 0.15);
|
|
7230
|
-
return /* @__PURE__ */ (0,
|
|
7344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7231
7345
|
"path",
|
|
7232
7346
|
{
|
|
7233
7347
|
d: triPath(10),
|
|
7234
7348
|
transform: `translate(${c + r * Math.cos(a)},${c + r * Math.sin(a)}) rotate(${i * 30 + 15})`,
|
|
7235
7349
|
fill: "url(#kh-grad-c)",
|
|
7236
7350
|
opacity: "0.05",
|
|
7237
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7351
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
|
|
7238
7352
|
},
|
|
7239
7353
|
`tc-${i}`
|
|
7240
7354
|
);
|
|
7241
7355
|
})
|
|
7242
7356
|
] })
|
|
7243
7357
|
] }),
|
|
7244
|
-
/* @__PURE__ */ (0,
|
|
7245
|
-
/* @__PURE__ */ (0,
|
|
7246
|
-
anim && /* @__PURE__ */ (0,
|
|
7358
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: px(14), children: [
|
|
7359
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7360
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7247
7361
|
"animateTransform",
|
|
7248
7362
|
{
|
|
7249
7363
|
attributeName: "transform",
|
|
@@ -7256,9 +7370,9 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7256
7370
|
),
|
|
7257
7371
|
Array.from({ length: 12 }, (_, i) => {
|
|
7258
7372
|
const a = Math.PI / 6 * i;
|
|
7259
|
-
return /* @__PURE__ */ (0,
|
|
7260
|
-
/* @__PURE__ */ (0,
|
|
7261
|
-
/* @__PURE__ */ (0,
|
|
7373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
|
|
7374
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
|
|
7375
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
|
|
7262
7376
|
] }, `mh-${i}`);
|
|
7263
7377
|
})
|
|
7264
7378
|
] }),
|
|
@@ -7269,7 +7383,7 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7269
7383
|
const y1 = c + midR * Math.sin(a1);
|
|
7270
7384
|
const x2 = c + midR * Math.cos(a2);
|
|
7271
7385
|
const y2 = c + midR * Math.sin(a2);
|
|
7272
|
-
return /* @__PURE__ */ (0,
|
|
7386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7273
7387
|
"path",
|
|
7274
7388
|
{
|
|
7275
7389
|
d: `M${x1},${y1} Q${c},${c} ${x2},${y2}`,
|
|
@@ -7278,17 +7392,17 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7278
7392
|
strokeWidth: "0.5",
|
|
7279
7393
|
strokeDasharray: "3 5",
|
|
7280
7394
|
opacity: "0.1",
|
|
7281
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7395
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
|
|
7282
7396
|
},
|
|
7283
7397
|
`arc-${i}`
|
|
7284
7398
|
);
|
|
7285
7399
|
})
|
|
7286
7400
|
] }),
|
|
7287
|
-
/* @__PURE__ */ (0,
|
|
7288
|
-
/* @__PURE__ */ (0,
|
|
7289
|
-
/* @__PURE__ */ (0,
|
|
7290
|
-
/* @__PURE__ */ (0,
|
|
7291
|
-
anim && /* @__PURE__ */ (0,
|
|
7401
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: px(10), children: [
|
|
7402
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: c, cy: c, r: orbitR, fill: "none", stroke: "rgba(255,255,255,0.05)", strokeWidth: "1", strokeDasharray: "3 5", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
|
|
7403
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
|
|
7404
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7405
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7292
7406
|
"animateTransform",
|
|
7293
7407
|
{
|
|
7294
7408
|
attributeName: "transform",
|
|
@@ -7303,8 +7417,8 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7303
7417
|
const angle = Math.atan2(pos.y - c, pos.x - c);
|
|
7304
7418
|
const dx = Math.cos(angle);
|
|
7305
7419
|
const dy = Math.sin(angle);
|
|
7306
|
-
return /* @__PURE__ */ (0,
|
|
7307
|
-
/* @__PURE__ */ (0,
|
|
7420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7421
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7308
7422
|
"line",
|
|
7309
7423
|
{
|
|
7310
7424
|
x1: c + dx * 52,
|
|
@@ -7315,14 +7429,14 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7315
7429
|
strokeWidth: "0.8",
|
|
7316
7430
|
strokeDasharray: "2 4",
|
|
7317
7431
|
opacity: "0.2",
|
|
7318
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7432
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
|
|
7319
7433
|
}
|
|
7320
7434
|
),
|
|
7321
|
-
/* @__PURE__ */ (0,
|
|
7322
|
-
/* @__PURE__ */ (0,
|
|
7323
|
-
/* @__PURE__ */ (0,
|
|
7324
|
-
/* @__PURE__ */ (0,
|
|
7325
|
-
/* @__PURE__ */ (0,
|
|
7435
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
|
|
7436
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
|
|
7437
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
|
|
7438
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
|
|
7439
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
|
|
7326
7440
|
] }) })
|
|
7327
7441
|
] }, `conn-${i}`);
|
|
7328
7442
|
}),
|
|
@@ -7330,14 +7444,14 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7330
7444
|
const pos = iconPositions[i];
|
|
7331
7445
|
const labelWidth = Math.max(proto.name.length * 5.5 + 10, 32);
|
|
7332
7446
|
const isHovered = hoveredProtocol === proto.name;
|
|
7333
|
-
return /* @__PURE__ */ (0,
|
|
7447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
7334
7448
|
"g",
|
|
7335
7449
|
{
|
|
7336
7450
|
onMouseEnter: () => setHoveredProtocol(proto.name),
|
|
7337
7451
|
onMouseLeave: () => setHoveredProtocol(null),
|
|
7338
7452
|
style: { cursor: "pointer" },
|
|
7339
7453
|
children: [
|
|
7340
|
-
anim && /* @__PURE__ */ (0,
|
|
7454
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7341
7455
|
"animateTransform",
|
|
7342
7456
|
{
|
|
7343
7457
|
attributeName: "transform",
|
|
@@ -7348,7 +7462,7 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7348
7462
|
repeatCount: "indefinite"
|
|
7349
7463
|
}
|
|
7350
7464
|
),
|
|
7351
|
-
/* @__PURE__ */ (0,
|
|
7465
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7352
7466
|
"circle",
|
|
7353
7467
|
{
|
|
7354
7468
|
cx: "0",
|
|
@@ -7358,13 +7472,13 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7358
7472
|
stroke: proto.color,
|
|
7359
7473
|
strokeWidth: "1",
|
|
7360
7474
|
opacity: "0",
|
|
7361
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7362
|
-
/* @__PURE__ */ (0,
|
|
7363
|
-
/* @__PURE__ */ (0,
|
|
7475
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
|
|
7476
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
|
|
7477
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
|
|
7364
7478
|
] })
|
|
7365
7479
|
}
|
|
7366
7480
|
),
|
|
7367
|
-
/* @__PURE__ */ (0,
|
|
7481
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7368
7482
|
"circle",
|
|
7369
7483
|
{
|
|
7370
7484
|
cx: "0",
|
|
@@ -7374,10 +7488,10 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7374
7488
|
stroke: proto.color,
|
|
7375
7489
|
strokeWidth: "1",
|
|
7376
7490
|
opacity: "0.15",
|
|
7377
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7491
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
|
|
7378
7492
|
}
|
|
7379
7493
|
),
|
|
7380
|
-
/* @__PURE__ */ (0,
|
|
7494
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7381
7495
|
"circle",
|
|
7382
7496
|
{
|
|
7383
7497
|
cx: "0",
|
|
@@ -7387,10 +7501,10 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7387
7501
|
stroke: proto.color,
|
|
7388
7502
|
strokeWidth: "1.5",
|
|
7389
7503
|
opacity: "0.25",
|
|
7390
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7504
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
|
|
7391
7505
|
}
|
|
7392
7506
|
),
|
|
7393
|
-
/* @__PURE__ */ (0,
|
|
7507
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7394
7508
|
"circle",
|
|
7395
7509
|
{
|
|
7396
7510
|
cx: "0",
|
|
@@ -7401,8 +7515,8 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7401
7515
|
strokeWidth: "1"
|
|
7402
7516
|
}
|
|
7403
7517
|
),
|
|
7404
|
-
/* @__PURE__ */ (0,
|
|
7405
|
-
/* @__PURE__ */ (0,
|
|
7518
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
|
|
7519
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7406
7520
|
NetworkBadge,
|
|
7407
7521
|
{
|
|
7408
7522
|
network: proto.network,
|
|
@@ -7410,8 +7524,8 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7410
7524
|
className: "w-full h-full"
|
|
7411
7525
|
}
|
|
7412
7526
|
) }),
|
|
7413
|
-
/* @__PURE__ */ (0,
|
|
7414
|
-
/* @__PURE__ */ (0,
|
|
7527
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
|
|
7528
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7415
7529
|
"rect",
|
|
7416
7530
|
{
|
|
7417
7531
|
x: -labelWidth / 2,
|
|
@@ -7425,7 +7539,7 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7425
7539
|
strokeOpacity: 0.4
|
|
7426
7540
|
}
|
|
7427
7541
|
),
|
|
7428
|
-
/* @__PURE__ */ (0,
|
|
7542
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7429
7543
|
"text",
|
|
7430
7544
|
{
|
|
7431
7545
|
x: "0",
|
|
@@ -7445,9 +7559,9 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7445
7559
|
})
|
|
7446
7560
|
] })
|
|
7447
7561
|
] }),
|
|
7448
|
-
/* @__PURE__ */ (0,
|
|
7449
|
-
/* @__PURE__ */ (0,
|
|
7450
|
-
anim && /* @__PURE__ */ (0,
|
|
7562
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: px(5), children: [
|
|
7563
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7564
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7451
7565
|
"animateTransform",
|
|
7452
7566
|
{
|
|
7453
7567
|
attributeName: "transform",
|
|
@@ -7460,28 +7574,28 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7460
7574
|
),
|
|
7461
7575
|
Array.from({ length: 6 }, (_, i) => {
|
|
7462
7576
|
const a = Math.PI / 3 * i;
|
|
7463
|
-
return /* @__PURE__ */ (0,
|
|
7577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7464
7578
|
"path",
|
|
7465
7579
|
{
|
|
7466
7580
|
d: diamondPath(10, 22),
|
|
7467
7581
|
transform: `translate(${c + innerR * Math.cos(a)},${c + innerR * Math.sin(a)}) rotate(${i * 60})`,
|
|
7468
7582
|
fill: "url(#kh-gp)",
|
|
7469
7583
|
opacity: "0.15",
|
|
7470
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7584
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
|
|
7471
7585
|
},
|
|
7472
7586
|
`d-${i}`
|
|
7473
7587
|
);
|
|
7474
7588
|
}),
|
|
7475
7589
|
Array.from({ length: 6 }, (_, i) => {
|
|
7476
7590
|
const a = Math.PI / 3 * i + Math.PI / 6;
|
|
7477
|
-
return /* @__PURE__ */ (0,
|
|
7591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7478
7592
|
"path",
|
|
7479
7593
|
{
|
|
7480
7594
|
d: triPath(8),
|
|
7481
7595
|
transform: `translate(${c + innerR * 0.75 * Math.cos(a)},${c + innerR * 0.75 * Math.sin(a)}) rotate(${i * 60 + 30})`,
|
|
7482
7596
|
fill: "url(#kh-oc)",
|
|
7483
7597
|
opacity: "0.1",
|
|
7484
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7598
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
|
|
7485
7599
|
},
|
|
7486
7600
|
`it-${i}`
|
|
7487
7601
|
);
|
|
@@ -7489,7 +7603,7 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7489
7603
|
Array.from({ length: 12 }, (_, i) => {
|
|
7490
7604
|
const a = Math.PI / 6 * i;
|
|
7491
7605
|
const r = innerR * (i % 2 === 0 ? 0.55 : 0.65);
|
|
7492
|
-
return /* @__PURE__ */ (0,
|
|
7606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7493
7607
|
"circle",
|
|
7494
7608
|
{
|
|
7495
7609
|
cx: c + r * Math.cos(a),
|
|
@@ -7497,14 +7611,14 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7497
7611
|
r: i % 2 === 0 ? 2 : 1.5,
|
|
7498
7612
|
fill: "url(#kh-oc)",
|
|
7499
7613
|
opacity: "0.2",
|
|
7500
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7614
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
|
|
7501
7615
|
},
|
|
7502
7616
|
`id-${i}`
|
|
7503
7617
|
);
|
|
7504
7618
|
})
|
|
7505
7619
|
] }),
|
|
7506
|
-
/* @__PURE__ */ (0,
|
|
7507
|
-
anim && /* @__PURE__ */ (0,
|
|
7620
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7621
|
+
anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7508
7622
|
"animateTransform",
|
|
7509
7623
|
{
|
|
7510
7624
|
attributeName: "transform",
|
|
@@ -7517,27 +7631,27 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7517
7631
|
),
|
|
7518
7632
|
Array.from({ length: 6 }, (_, i) => {
|
|
7519
7633
|
const a = Math.PI / 3 * i + Math.PI / 6;
|
|
7520
|
-
return /* @__PURE__ */ (0,
|
|
7634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7521
7635
|
"path",
|
|
7522
7636
|
{
|
|
7523
7637
|
d: hexPath2(6),
|
|
7524
7638
|
transform: `translate(${c + innerR * 0.42 * Math.cos(a)},${c + innerR * 0.42 * Math.sin(a)})`,
|
|
7525
7639
|
fill: "url(#kh-bp)",
|
|
7526
7640
|
opacity: "0.1",
|
|
7527
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7641
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
|
|
7528
7642
|
},
|
|
7529
7643
|
`ih-${i}`
|
|
7530
7644
|
);
|
|
7531
7645
|
})
|
|
7532
7646
|
] })
|
|
7533
7647
|
] }),
|
|
7534
|
-
/* @__PURE__ */ (0,
|
|
7648
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
|
|
7535
7649
|
const a = Math.PI * 2 * i / 16;
|
|
7536
7650
|
const baseR = 60 + i % 4 * 45;
|
|
7537
7651
|
const x = c + baseR * Math.cos(a);
|
|
7538
7652
|
const y = c + baseR * Math.sin(a);
|
|
7539
7653
|
const colors2 = ["#0e9dff", "#8a5cf6", "#22c55e", "#F7931A", "#06b6d4", "#15E99A"];
|
|
7540
|
-
return /* @__PURE__ */ (0,
|
|
7654
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7541
7655
|
"circle",
|
|
7542
7656
|
{
|
|
7543
7657
|
cx: x,
|
|
@@ -7545,26 +7659,26 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7545
7659
|
r: 1 + i % 3 * 0.5,
|
|
7546
7660
|
fill: colors2[i % colors2.length],
|
|
7547
7661
|
opacity: "0",
|
|
7548
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7549
|
-
/* @__PURE__ */ (0,
|
|
7550
|
-
/* @__PURE__ */ (0,
|
|
7551
|
-
/* @__PURE__ */ (0,
|
|
7662
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
|
|
7663
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
|
|
7664
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "cx", values: `${x};${x + Math.cos(a) * 15}`, dur: `${4 + i % 3 * 1.5}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
|
|
7665
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "cy", values: `${y};${y + Math.sin(a) * 15}`, dur: `${4 + i % 3 * 1.5}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` })
|
|
7552
7666
|
] })
|
|
7553
7667
|
},
|
|
7554
7668
|
`p-${i}`
|
|
7555
7669
|
);
|
|
7556
7670
|
}) }),
|
|
7557
|
-
/* @__PURE__ */ (0,
|
|
7558
|
-
/* @__PURE__ */ (0,
|
|
7559
|
-
/* @__PURE__ */ (0,
|
|
7560
|
-
/* @__PURE__ */ (0,
|
|
7561
|
-
/* @__PURE__ */ (0,
|
|
7671
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { children: [
|
|
7672
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
|
|
7673
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
|
|
7674
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
|
|
7675
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
|
|
7562
7676
|
] }) }),
|
|
7563
|
-
/* @__PURE__ */ (0,
|
|
7564
|
-
/* @__PURE__ */ (0,
|
|
7565
|
-
/* @__PURE__ */ (0,
|
|
7677
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("circle", { cx: c, cy: c, r: "48", fill: "none", stroke: "url(#kh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
|
|
7678
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
|
|
7679
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
|
|
7566
7680
|
] }) }),
|
|
7567
|
-
/* @__PURE__ */ (0,
|
|
7681
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7568
7682
|
"path",
|
|
7569
7683
|
{
|
|
7570
7684
|
d: hexPath2(50),
|
|
@@ -7574,13 +7688,13 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7574
7688
|
strokeWidth: "1.5",
|
|
7575
7689
|
opacity: "0.4",
|
|
7576
7690
|
filter: "url(#kh-glow)",
|
|
7577
|
-
children: anim && /* @__PURE__ */ (0,
|
|
7578
|
-
/* @__PURE__ */ (0,
|
|
7579
|
-
/* @__PURE__ */ (0,
|
|
7691
|
+
children: anim && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
|
|
7692
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
|
|
7693
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
|
|
7580
7694
|
] })
|
|
7581
7695
|
}
|
|
7582
7696
|
),
|
|
7583
|
-
/* @__PURE__ */ (0,
|
|
7697
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7584
7698
|
"path",
|
|
7585
7699
|
{
|
|
7586
7700
|
d: hexPath2(46),
|
|
@@ -7590,21 +7704,21 @@ var KaleidoScopeHeroAnimation = ({
|
|
|
7590
7704
|
strokeWidth: "0.5"
|
|
7591
7705
|
}
|
|
7592
7706
|
),
|
|
7593
|
-
/* @__PURE__ */ (0,
|
|
7594
|
-
/* @__PURE__ */ (0,
|
|
7595
|
-
/* @__PURE__ */ (0,
|
|
7596
|
-
/* @__PURE__ */ (0,
|
|
7597
|
-
/* @__PURE__ */ (0,
|
|
7598
|
-
/* @__PURE__ */ (0,
|
|
7599
|
-
/* @__PURE__ */ (0,
|
|
7600
|
-
/* @__PURE__ */ (0,
|
|
7601
|
-
/* @__PURE__ */ (0,
|
|
7602
|
-
/* @__PURE__ */ (0,
|
|
7603
|
-
/* @__PURE__ */ (0,
|
|
7604
|
-
/* @__PURE__ */ (0,
|
|
7605
|
-
/* @__PURE__ */ (0,
|
|
7606
|
-
/* @__PURE__ */ (0,
|
|
7607
|
-
/* @__PURE__ */ (0,
|
|
7707
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
|
|
7708
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
|
|
7709
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
|
|
7710
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
|
|
7711
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
|
|
7712
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
|
|
7713
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
|
|
7714
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
|
|
7715
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
|
|
7716
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
|
|
7717
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
|
|
7718
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
|
|
7719
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
|
|
7720
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
|
|
7721
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
|
|
7608
7722
|
] })
|
|
7609
7723
|
] })
|
|
7610
7724
|
]
|
|
@@ -7757,7 +7871,7 @@ var colors = {
|
|
|
7757
7871
|
};
|
|
7758
7872
|
|
|
7759
7873
|
// src/web/components/deposit-ui-shared.tsx
|
|
7760
|
-
var
|
|
7874
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
7761
7875
|
var GLOW_ALPHA = "26";
|
|
7762
7876
|
function qrGlowStyle(hex) {
|
|
7763
7877
|
return { boxShadow: `0 0 30px ${hex}${GLOW_ALPHA}` };
|
|
@@ -7774,7 +7888,7 @@ var NETWORK_CONFIG = {
|
|
|
7774
7888
|
// On-chain uses a chain-link glyph rather than the ₿ coin — the coin reads
|
|
7775
7889
|
// as "the BTC asset", whereas this row is specifically the *on-chain* (L1)
|
|
7776
7890
|
// receive rail alongside Lightning/Spark/Arkade, so a chain mark disambiguates.
|
|
7777
|
-
icon: /* @__PURE__ */ (0,
|
|
7891
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
|
|
7778
7892
|
},
|
|
7779
7893
|
lightning: {
|
|
7780
7894
|
label: "Lightning",
|
|
@@ -7784,7 +7898,7 @@ var NETWORK_CONFIG = {
|
|
|
7784
7898
|
border: "border-network-lightning/40",
|
|
7785
7899
|
qrBorder: "border-network-lightning/30",
|
|
7786
7900
|
qrGlow: qrGlowStyle(colors.network.lightning),
|
|
7787
|
-
icon: /* @__PURE__ */ (0,
|
|
7901
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
|
|
7788
7902
|
},
|
|
7789
7903
|
spark: {
|
|
7790
7904
|
label: "Spark",
|
|
@@ -7794,7 +7908,7 @@ var NETWORK_CONFIG = {
|
|
|
7794
7908
|
border: "border-info/40",
|
|
7795
7909
|
qrBorder: "border-info/30",
|
|
7796
7910
|
qrGlow: qrGlowStyle(colors.info),
|
|
7797
|
-
icon: /* @__PURE__ */ (0,
|
|
7911
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
|
|
7798
7912
|
},
|
|
7799
7913
|
arkade: {
|
|
7800
7914
|
label: "Arkade",
|
|
@@ -7804,7 +7918,7 @@ var NETWORK_CONFIG = {
|
|
|
7804
7918
|
border: "border-network-arkade/40",
|
|
7805
7919
|
qrBorder: "border-network-arkade/30",
|
|
7806
7920
|
qrGlow: qrGlowStyle(colors.network.arkade),
|
|
7807
|
-
icon: /* @__PURE__ */ (0,
|
|
7921
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
|
|
7808
7922
|
},
|
|
7809
7923
|
liquid: {
|
|
7810
7924
|
label: "Liquid",
|
|
@@ -7814,7 +7928,7 @@ var NETWORK_CONFIG = {
|
|
|
7814
7928
|
border: "border-network-liquid/40",
|
|
7815
7929
|
qrBorder: "border-network-liquid/30",
|
|
7816
7930
|
qrGlow: qrGlowStyle(colors.network.liquid),
|
|
7817
|
-
icon: /* @__PURE__ */ (0,
|
|
7931
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(LiquidNetworkIcon, { className: "h-3 w-3" })
|
|
7818
7932
|
}
|
|
7819
7933
|
};
|
|
7820
7934
|
var ACCOUNT_META = {
|
|
@@ -7825,14 +7939,14 @@ var ACCOUNT_META = {
|
|
|
7825
7939
|
accentBorder: "border-primary/30",
|
|
7826
7940
|
// Bundled RGB mark (protocolIcons) — a host-served /icons/rgb/... path
|
|
7827
7941
|
// renders as a broken box in consumers that don't ship that asset.
|
|
7828
|
-
icon: /* @__PURE__ */ (0,
|
|
7942
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(RgbNetworkIcon, { className: "h-2.5 w-2.5" })
|
|
7829
7943
|
},
|
|
7830
7944
|
SPARK: {
|
|
7831
7945
|
shortLabel: "Spark",
|
|
7832
7946
|
accentBg: "bg-info/10",
|
|
7833
7947
|
accentText: "text-info",
|
|
7834
7948
|
accentBorder: "border-info/30",
|
|
7835
|
-
icon: /* @__PURE__ */ (0,
|
|
7949
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
7836
7950
|
"img",
|
|
7837
7951
|
{
|
|
7838
7952
|
src: "/icons/spark/Asterisk/Spark Asterisk White.svg",
|
|
@@ -7846,14 +7960,14 @@ var ACCOUNT_META = {
|
|
|
7846
7960
|
accentBg: "bg-network-arkade/10",
|
|
7847
7961
|
accentText: "text-network-arkade",
|
|
7848
7962
|
accentBorder: "border-network-arkade/30",
|
|
7849
|
-
icon: /* @__PURE__ */ (0,
|
|
7963
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
|
|
7850
7964
|
},
|
|
7851
7965
|
LIQUID: {
|
|
7852
7966
|
shortLabel: "Liquid",
|
|
7853
7967
|
accentBg: "bg-network-liquid/10",
|
|
7854
7968
|
accentText: "text-network-liquid",
|
|
7855
7969
|
accentBorder: "border-network-liquid/30",
|
|
7856
|
-
icon: /* @__PURE__ */ (0,
|
|
7970
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(LiquidNetworkIcon, { className: "h-2.5 w-2.5" })
|
|
7857
7971
|
}
|
|
7858
7972
|
};
|
|
7859
7973
|
var METHOD_META = {
|
|
@@ -7870,7 +7984,7 @@ function InvoiceStatusBanner({
|
|
|
7870
7984
|
isInvoiceFailedOrExpired,
|
|
7871
7985
|
invoiceStatus
|
|
7872
7986
|
}) {
|
|
7873
|
-
return /* @__PURE__ */ (0,
|
|
7987
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
7874
7988
|
"div",
|
|
7875
7989
|
{
|
|
7876
7990
|
className: cn(
|
|
@@ -7878,17 +7992,17 @@ function InvoiceStatusBanner({
|
|
|
7878
7992
|
isInvoicePaid ? "bg-primary/10 text-primary" : isInvoiceFailedOrExpired ? "bg-danger/10 text-danger" : "bg-warning/10 text-warning"
|
|
7879
7993
|
),
|
|
7880
7994
|
children: [
|
|
7881
|
-
isInvoicePending && /* @__PURE__ */ (0,
|
|
7882
|
-
/* @__PURE__ */ (0,
|
|
7883
|
-
/* @__PURE__ */ (0,
|
|
7995
|
+
isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
|
|
7996
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
|
|
7997
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: "Waiting for payment..." })
|
|
7884
7998
|
] }),
|
|
7885
|
-
isInvoicePaid && /* @__PURE__ */ (0,
|
|
7886
|
-
/* @__PURE__ */ (0,
|
|
7887
|
-
/* @__PURE__ */ (0,
|
|
7999
|
+
isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
|
|
8000
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
|
|
8001
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: "Payment received!" })
|
|
7888
8002
|
] }),
|
|
7889
|
-
isInvoiceFailedOrExpired && /* @__PURE__ */ (0,
|
|
7890
|
-
/* @__PURE__ */ (0,
|
|
7891
|
-
/* @__PURE__ */ (0,
|
|
8003
|
+
isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
|
|
8004
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
|
|
8005
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { children: [
|
|
7892
8006
|
"Invoice ",
|
|
7893
8007
|
invoiceStatus?.toLowerCase() === "expired" ? "expired" : "failed"
|
|
7894
8008
|
] })
|
|
@@ -7898,20 +8012,20 @@ function InvoiceStatusBanner({
|
|
|
7898
8012
|
);
|
|
7899
8013
|
}
|
|
7900
8014
|
function PaidOverlay() {
|
|
7901
|
-
return /* @__PURE__ */ (0,
|
|
7902
|
-
/* @__PURE__ */ (0,
|
|
7903
|
-
/* @__PURE__ */ (0,
|
|
8015
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
|
|
8016
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
|
|
8017
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
|
|
7904
8018
|
] }) });
|
|
7905
8019
|
}
|
|
7906
8020
|
function CopyIcon({ copied }) {
|
|
7907
|
-
return /* @__PURE__ */ (0,
|
|
8021
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
7908
8022
|
"div",
|
|
7909
8023
|
{
|
|
7910
8024
|
className: cn(
|
|
7911
8025
|
"flex-shrink-0 rounded-lg p-2 transition-all",
|
|
7912
8026
|
copied ? "bg-primary/15 text-primary" : "bg-white/5 text-white/40 group-hover:bg-primary/10 group-hover:text-primary"
|
|
7913
8027
|
),
|
|
7914
|
-
children: copied ? /* @__PURE__ */ (0,
|
|
8028
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "content_copy", size: "sm" })
|
|
7915
8029
|
}
|
|
7916
8030
|
);
|
|
7917
8031
|
}
|
|
@@ -7922,7 +8036,7 @@ function AccountChoiceChip({
|
|
|
7922
8036
|
label
|
|
7923
8037
|
}) {
|
|
7924
8038
|
const meta = ACCOUNT_META[account];
|
|
7925
|
-
return /* @__PURE__ */ (0,
|
|
8039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
7926
8040
|
"button",
|
|
7927
8041
|
{
|
|
7928
8042
|
type: "button",
|
|
@@ -7934,7 +8048,7 @@ function AccountChoiceChip({
|
|
|
7934
8048
|
),
|
|
7935
8049
|
children: [
|
|
7936
8050
|
meta.icon,
|
|
7937
|
-
/* @__PURE__ */ (0,
|
|
8051
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: label ?? meta.shortLabel })
|
|
7938
8052
|
]
|
|
7939
8053
|
}
|
|
7940
8054
|
);
|
|
@@ -7992,8 +8106,8 @@ function NetworkInfoDisclosure({
|
|
|
7992
8106
|
}) {
|
|
7993
8107
|
const [open, setOpen] = (0, import_react15.useState)(false);
|
|
7994
8108
|
if (networks.length === 0) return null;
|
|
7995
|
-
return /* @__PURE__ */ (0,
|
|
7996
|
-
/* @__PURE__ */ (0,
|
|
8109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: cn("overflow-hidden rounded-xl bg-card/70 transition-all", className), children: [
|
|
8110
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
7997
8111
|
"button",
|
|
7998
8112
|
{
|
|
7999
8113
|
type: "button",
|
|
@@ -8001,24 +8115,24 @@ function NetworkInfoDisclosure({
|
|
|
8001
8115
|
"aria-expanded": open,
|
|
8002
8116
|
className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-left transition-colors hover:bg-white/4",
|
|
8003
8117
|
children: [
|
|
8004
|
-
/* @__PURE__ */ (0,
|
|
8005
|
-
/* @__PURE__ */ (0,
|
|
8006
|
-
/* @__PURE__ */ (0,
|
|
8118
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
|
|
8119
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
|
|
8120
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
|
|
8007
8121
|
]
|
|
8008
8122
|
}
|
|
8009
8123
|
),
|
|
8010
|
-
open && /* @__PURE__ */ (0,
|
|
8124
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "space-y-2 px-2.5 pb-2.5 pt-0.5 animate-in fade-in slide-in-from-top-1 duration-200", children: networks.map((network) => {
|
|
8011
8125
|
const info = NETWORK_INFO[network];
|
|
8012
8126
|
const cfg = NETWORK_CONFIG[network];
|
|
8013
|
-
return /* @__PURE__ */ (0,
|
|
8014
|
-
/* @__PURE__ */ (0,
|
|
8015
|
-
/* @__PURE__ */ (0,
|
|
8016
|
-
/* @__PURE__ */ (0,
|
|
8127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1", children: [
|
|
8128
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
8129
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
|
|
8130
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
|
|
8017
8131
|
] }),
|
|
8018
|
-
/* @__PURE__ */ (0,
|
|
8019
|
-
/* @__PURE__ */ (0,
|
|
8020
|
-
/* @__PURE__ */ (0,
|
|
8021
|
-
/* @__PURE__ */ (0,
|
|
8132
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
|
|
8133
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
|
|
8134
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
|
|
8135
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: bullet })
|
|
8022
8136
|
] }, bullet)) })
|
|
8023
8137
|
] }, network);
|
|
8024
8138
|
}) })
|
|
@@ -8032,7 +8146,7 @@ function MethodChoiceChip({
|
|
|
8032
8146
|
onClick
|
|
8033
8147
|
}) {
|
|
8034
8148
|
const meta = METHOD_META[method];
|
|
8035
|
-
return /* @__PURE__ */ (0,
|
|
8149
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
8036
8150
|
"button",
|
|
8037
8151
|
{
|
|
8038
8152
|
type: "button",
|
|
@@ -8045,14 +8159,14 @@ function MethodChoiceChip({
|
|
|
8045
8159
|
),
|
|
8046
8160
|
children: [
|
|
8047
8161
|
meta.label,
|
|
8048
|
-
!enabled && disabledReason && /* @__PURE__ */ (0,
|
|
8162
|
+
!enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
|
|
8049
8163
|
]
|
|
8050
8164
|
}
|
|
8051
8165
|
);
|
|
8052
8166
|
}
|
|
8053
8167
|
|
|
8054
8168
|
// src/web/components/deposit-success-screen.tsx
|
|
8055
|
-
var
|
|
8169
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
8056
8170
|
function DepositSuccessScreen({
|
|
8057
8171
|
handleDone,
|
|
8058
8172
|
displayTicker,
|
|
@@ -8065,20 +8179,20 @@ function DepositSuccessScreen({
|
|
|
8065
8179
|
const isInstant = network === "lightning" || network === "spark";
|
|
8066
8180
|
const title = isInstant ? "Payment Received!" : "Deposit Detected!";
|
|
8067
8181
|
const subtitle = isInstant ? `Your ${displayTicker} has arrived via ${networkLabel}.` : `Incoming deposit detected via ${networkLabel}. Funds will be available after confirmation.`;
|
|
8068
|
-
return /* @__PURE__ */ (0,
|
|
8069
|
-
/* @__PURE__ */ (0,
|
|
8070
|
-
/* @__PURE__ */ (0,
|
|
8071
|
-
/* @__PURE__ */ (0,
|
|
8182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
|
|
8183
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "relative mb-8", children: [
|
|
8184
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
|
|
8185
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "relative flex size-20 items-center justify-center rounded-full bg-primary/15 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
|
|
8072
8186
|
] }),
|
|
8073
|
-
/* @__PURE__ */ (0,
|
|
8074
|
-
/* @__PURE__ */ (0,
|
|
8075
|
-
/* @__PURE__ */ (0,
|
|
8076
|
-
/* @__PURE__ */ (0,
|
|
8077
|
-
/* @__PURE__ */ (0,
|
|
8078
|
-
/* @__PURE__ */ (0,
|
|
8079
|
-
/* @__PURE__ */ (0,
|
|
8187
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
|
|
8188
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
|
|
8189
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "mb-10 flex items-center gap-3 rounded-2xl bg-card/70 px-4 py-3", children: [
|
|
8190
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
|
|
8191
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "text-left", children: [
|
|
8192
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
|
|
8193
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
|
|
8080
8194
|
] }),
|
|
8081
|
-
/* @__PURE__ */ (0,
|
|
8195
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
8082
8196
|
"div",
|
|
8083
8197
|
{
|
|
8084
8198
|
className: cn(
|
|
@@ -8089,27 +8203,27 @@ function DepositSuccessScreen({
|
|
|
8089
8203
|
),
|
|
8090
8204
|
children: [
|
|
8091
8205
|
net.icon,
|
|
8092
|
-
/* @__PURE__ */ (0,
|
|
8206
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { children: networkLabel })
|
|
8093
8207
|
]
|
|
8094
8208
|
}
|
|
8095
8209
|
)
|
|
8096
8210
|
] }),
|
|
8097
|
-
/* @__PURE__ */ (0,
|
|
8098
|
-
/* @__PURE__ */ (0,
|
|
8211
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
|
|
8212
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
|
|
8099
8213
|
"Back to Wallet"
|
|
8100
8214
|
] })
|
|
8101
8215
|
] }) });
|
|
8102
8216
|
}
|
|
8103
8217
|
|
|
8104
8218
|
// src/web/components/deposit-network-default-modal.tsx
|
|
8105
|
-
var
|
|
8219
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
8106
8220
|
var NETWORK_OPTIONS = {
|
|
8107
8221
|
RGB: {
|
|
8108
8222
|
network: "onchain",
|
|
8109
8223
|
account: "RGB",
|
|
8110
8224
|
label: "On-chain / Lightning",
|
|
8111
8225
|
description: "Classic Bitcoin address or Lightning invoice via the RLN node.",
|
|
8112
|
-
icon: /* @__PURE__ */ (0,
|
|
8226
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
|
|
8113
8227
|
accentBg: "bg-network-bitcoin/10",
|
|
8114
8228
|
accentBorder: "border-network-bitcoin/30",
|
|
8115
8229
|
accentText: "text-network-bitcoin"
|
|
@@ -8119,7 +8233,7 @@ var NETWORK_OPTIONS = {
|
|
|
8119
8233
|
account: "SPARK",
|
|
8120
8234
|
label: "Spark",
|
|
8121
8235
|
description: "Receive directly into your Spark account. Fast and free.",
|
|
8122
|
-
icon: /* @__PURE__ */ (0,
|
|
8236
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
|
|
8123
8237
|
accentBg: "bg-info/10",
|
|
8124
8238
|
accentBorder: "border-info/30",
|
|
8125
8239
|
accentText: "text-info"
|
|
@@ -8129,7 +8243,7 @@ var NETWORK_OPTIONS = {
|
|
|
8129
8243
|
account: "ARKADE",
|
|
8130
8244
|
label: "Arkade",
|
|
8131
8245
|
description: "Receive directly into your Arkade account. Low fees, near-instant settlement.",
|
|
8132
|
-
icon: /* @__PURE__ */ (0,
|
|
8246
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
|
|
8133
8247
|
accentBg: "bg-network-arkade/10",
|
|
8134
8248
|
accentBorder: "border-network-arkade/30",
|
|
8135
8249
|
accentText: "text-network-arkade"
|
|
@@ -8141,7 +8255,7 @@ var NETWORK_OPTIONS = {
|
|
|
8141
8255
|
account: "LIQUID",
|
|
8142
8256
|
label: "Liquid",
|
|
8143
8257
|
description: "Receive L-BTC or a Liquid asset (USDt) via a confidential Liquid address.",
|
|
8144
|
-
icon: /* @__PURE__ */ (0,
|
|
8258
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(LiquidNetworkIcon, { className: "h-[18px] w-[18px]" }),
|
|
8145
8259
|
accentBg: "bg-network-liquid/10",
|
|
8146
8260
|
accentBorder: "border-network-liquid/30",
|
|
8147
8261
|
accentText: "text-network-liquid"
|
|
@@ -8156,20 +8270,20 @@ function DepositNetworkDefaultModal({
|
|
|
8156
8270
|
}) {
|
|
8157
8271
|
if (!open) return null;
|
|
8158
8272
|
const options = availableAccounts.map((id) => NETWORK_OPTIONS[id]).filter(Boolean);
|
|
8159
|
-
return /* @__PURE__ */ (0,
|
|
8160
|
-
/* @__PURE__ */ (0,
|
|
8161
|
-
/* @__PURE__ */ (0,
|
|
8162
|
-
/* @__PURE__ */ (0,
|
|
8163
|
-
/* @__PURE__ */ (0,
|
|
8273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-background/80 backdrop-blur-lg", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "w-full space-y-4 rounded-t-2xl bg-card px-4 pb-7 pt-5 animate-in slide-in-from-bottom-4 duration-200", children: [
|
|
8274
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
|
|
8275
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { children: [
|
|
8276
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
|
|
8277
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
|
|
8164
8278
|
"Pick how you would like to receive",
|
|
8165
8279
|
" ",
|
|
8166
|
-
/* @__PURE__ */ (0,
|
|
8280
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
|
|
8167
8281
|
" by default. You can always switch in the deposit screen."
|
|
8168
8282
|
] })
|
|
8169
8283
|
] }),
|
|
8170
|
-
/* @__PURE__ */ (0,
|
|
8284
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "space-y-2", children: options.map((option) => {
|
|
8171
8285
|
const isSuggested = option.account === suggestedAccount;
|
|
8172
|
-
return /* @__PURE__ */ (0,
|
|
8286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
|
|
8173
8287
|
"button",
|
|
8174
8288
|
{
|
|
8175
8289
|
type: "button",
|
|
@@ -8179,7 +8293,7 @@ function DepositNetworkDefaultModal({
|
|
|
8179
8293
|
isSuggested ? option.accentBg : "bg-muted/40 hover:bg-muted/60"
|
|
8180
8294
|
),
|
|
8181
8295
|
children: [
|
|
8182
|
-
/* @__PURE__ */ (0,
|
|
8296
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
8183
8297
|
"div",
|
|
8184
8298
|
{
|
|
8185
8299
|
className: cn(
|
|
@@ -8190,10 +8304,10 @@ function DepositNetworkDefaultModal({
|
|
|
8190
8304
|
children: option.icon
|
|
8191
8305
|
}
|
|
8192
8306
|
),
|
|
8193
|
-
/* @__PURE__ */ (0,
|
|
8194
|
-
/* @__PURE__ */ (0,
|
|
8195
|
-
/* @__PURE__ */ (0,
|
|
8196
|
-
isSuggested && /* @__PURE__ */ (0,
|
|
8307
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8308
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8309
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
|
|
8310
|
+
isSuggested && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
8197
8311
|
"span",
|
|
8198
8312
|
{
|
|
8199
8313
|
className: cn(
|
|
@@ -8205,9 +8319,9 @@ function DepositNetworkDefaultModal({
|
|
|
8205
8319
|
}
|
|
8206
8320
|
)
|
|
8207
8321
|
] }),
|
|
8208
|
-
/* @__PURE__ */ (0,
|
|
8322
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
|
|
8209
8323
|
] }),
|
|
8210
|
-
/* @__PURE__ */ (0,
|
|
8324
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
8211
8325
|
"span",
|
|
8212
8326
|
{
|
|
8213
8327
|
className: cn(
|
|
@@ -8227,7 +8341,7 @@ function DepositNetworkDefaultModal({
|
|
|
8227
8341
|
|
|
8228
8342
|
// src/web/components/btc-unified-receive.tsx
|
|
8229
8343
|
var import_react16 = require("react");
|
|
8230
|
-
var
|
|
8344
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
8231
8345
|
function formatSatsForRow(value) {
|
|
8232
8346
|
if (!value || value <= 0 || !Number.isFinite(value)) return null;
|
|
8233
8347
|
return `${value.toLocaleString("en-US")} sats`;
|
|
@@ -8259,46 +8373,46 @@ function BtcUnifiedReceive({
|
|
|
8259
8373
|
setInvoiceStatus(null);
|
|
8260
8374
|
setAccountReceiveResult(null);
|
|
8261
8375
|
};
|
|
8262
|
-
return /* @__PURE__ */ (0,
|
|
8263
|
-
/* @__PURE__ */ (0,
|
|
8264
|
-
/* @__PURE__ */ (0,
|
|
8265
|
-
/* @__PURE__ */ (0,
|
|
8266
|
-
isInvoicePaid && /* @__PURE__ */ (0,
|
|
8376
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
|
|
8377
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
|
|
8378
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
|
|
8379
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
|
|
8380
|
+
isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(PaidOverlay, {})
|
|
8267
8381
|
] }),
|
|
8268
|
-
/* @__PURE__ */ (0,
|
|
8269
|
-
/* @__PURE__ */ (0,
|
|
8382
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
|
|
8383
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8270
8384
|
Button,
|
|
8271
8385
|
{
|
|
8272
8386
|
variant: "surface",
|
|
8273
8387
|
size: "icon-xl",
|
|
8274
8388
|
"aria-label": `Copy ${accountReceiveResult.qrLabel}`,
|
|
8275
8389
|
onClick: () => void copyToClipboard(accountReceiveResult.qrValue),
|
|
8276
|
-
children: /* @__PURE__ */ (0,
|
|
8390
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
|
|
8277
8391
|
}
|
|
8278
8392
|
),
|
|
8279
|
-
showRegenerate && /* @__PURE__ */ (0,
|
|
8393
|
+
showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8280
8394
|
Button,
|
|
8281
8395
|
{
|
|
8282
8396
|
variant: "surface",
|
|
8283
8397
|
size: "icon-xl",
|
|
8284
8398
|
"aria-label": "New address",
|
|
8285
8399
|
onClick: handleNewAddress,
|
|
8286
|
-
children: /* @__PURE__ */ (0,
|
|
8400
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "refresh", size: "lg" })
|
|
8287
8401
|
}
|
|
8288
8402
|
),
|
|
8289
|
-
/* @__PURE__ */ (0,
|
|
8403
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8290
8404
|
Button,
|
|
8291
8405
|
{
|
|
8292
8406
|
variant: "surface",
|
|
8293
8407
|
size: "icon-xl",
|
|
8294
8408
|
"aria-label": "Edit amount and description",
|
|
8295
8409
|
onClick: () => setShowEdit(true),
|
|
8296
|
-
children: /* @__PURE__ */ (0,
|
|
8410
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "edit", size: "lg" })
|
|
8297
8411
|
}
|
|
8298
8412
|
)
|
|
8299
8413
|
] })
|
|
8300
8414
|
] }),
|
|
8301
|
-
invoiceStatus && /* @__PURE__ */ (0,
|
|
8415
|
+
invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8302
8416
|
InvoiceStatusBanner,
|
|
8303
8417
|
{
|
|
8304
8418
|
isInvoicePending,
|
|
@@ -8307,11 +8421,11 @@ function BtcUnifiedReceive({
|
|
|
8307
8421
|
invoiceStatus
|
|
8308
8422
|
}
|
|
8309
8423
|
),
|
|
8310
|
-
/* @__PURE__ */ (0,
|
|
8311
|
-
/* @__PURE__ */ (0,
|
|
8424
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1.5", children: [
|
|
8425
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
|
|
8312
8426
|
accountReceiveResult.addresses.map((address) => {
|
|
8313
8427
|
const network = NETWORK_CONFIG[address.network];
|
|
8314
|
-
return /* @__PURE__ */ (0,
|
|
8428
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
8315
8429
|
"div",
|
|
8316
8430
|
{
|
|
8317
8431
|
className: cn(
|
|
@@ -8321,35 +8435,35 @@ function BtcUnifiedReceive({
|
|
|
8321
8435
|
style: { borderLeftWidth: 3, borderLeftColor: network.color },
|
|
8322
8436
|
onClick: () => void copyToClipboard(address.value),
|
|
8323
8437
|
children: [
|
|
8324
|
-
/* @__PURE__ */ (0,
|
|
8325
|
-
/* @__PURE__ */ (0,
|
|
8326
|
-
/* @__PURE__ */ (0,
|
|
8327
|
-
/* @__PURE__ */ (0,
|
|
8438
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
|
|
8439
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8440
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
8441
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
|
|
8328
8442
|
(() => {
|
|
8329
8443
|
const amountLabel = formatSatsForRow(address.amountSats);
|
|
8330
|
-
return amountLabel ? /* @__PURE__ */ (0,
|
|
8444
|
+
return amountLabel ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "rounded-full bg-white/10 px-1.5 py-0.5 text-tiny font-bold tabular-nums text-white/70", children: amountLabel }) : null;
|
|
8331
8445
|
})()
|
|
8332
8446
|
] }),
|
|
8333
|
-
/* @__PURE__ */ (0,
|
|
8447
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mt-0.5 truncate font-mono text-tiny text-muted-foreground", children: address.value.length > 50 ? `${address.value.slice(0, 18)}...${address.value.slice(-14)}` : address.value })
|
|
8334
8448
|
] }),
|
|
8335
|
-
/* @__PURE__ */ (0,
|
|
8449
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(CopyIcon, { copied: copied === address.value })
|
|
8336
8450
|
]
|
|
8337
8451
|
},
|
|
8338
8452
|
address.network
|
|
8339
8453
|
);
|
|
8340
8454
|
})
|
|
8341
8455
|
] }),
|
|
8342
|
-
/* @__PURE__ */ (0,
|
|
8456
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8343
8457
|
BottomSheet,
|
|
8344
8458
|
{
|
|
8345
8459
|
open: showEdit,
|
|
8346
8460
|
title: "Edit request",
|
|
8347
|
-
icon: /* @__PURE__ */ (0,
|
|
8461
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "edit", size: "md" }),
|
|
8348
8462
|
onClose: () => setShowEdit(false),
|
|
8349
|
-
children: /* @__PURE__ */ (0,
|
|
8350
|
-
/* @__PURE__ */ (0,
|
|
8351
|
-
/* @__PURE__ */ (0,
|
|
8352
|
-
/* @__PURE__ */ (0,
|
|
8463
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-4", children: [
|
|
8464
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1.5", children: [
|
|
8465
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
|
|
8466
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8353
8467
|
"input",
|
|
8354
8468
|
{
|
|
8355
8469
|
type: "text",
|
|
@@ -8360,14 +8474,14 @@ function BtcUnifiedReceive({
|
|
|
8360
8474
|
inputMode: "decimal"
|
|
8361
8475
|
}
|
|
8362
8476
|
),
|
|
8363
|
-
amount && loading && /* @__PURE__ */ (0,
|
|
8364
|
-
/* @__PURE__ */ (0,
|
|
8477
|
+
amount && loading && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
|
|
8478
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
|
|
8365
8479
|
"Updating invoice..."
|
|
8366
8480
|
] })
|
|
8367
8481
|
] }),
|
|
8368
|
-
onDescriptionChange && /* @__PURE__ */ (0,
|
|
8369
|
-
/* @__PURE__ */ (0,
|
|
8370
|
-
/* @__PURE__ */ (0,
|
|
8482
|
+
onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1.5", children: [
|
|
8483
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
|
|
8484
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
8371
8485
|
"input",
|
|
8372
8486
|
{
|
|
8373
8487
|
type: "text",
|
|
@@ -8378,7 +8492,7 @@ function BtcUnifiedReceive({
|
|
|
8378
8492
|
}
|
|
8379
8493
|
)
|
|
8380
8494
|
] }),
|
|
8381
|
-
/* @__PURE__ */ (0,
|
|
8495
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
|
|
8382
8496
|
] })
|
|
8383
8497
|
}
|
|
8384
8498
|
)
|
|
@@ -8386,7 +8500,7 @@ function BtcUnifiedReceive({
|
|
|
8386
8500
|
}
|
|
8387
8501
|
|
|
8388
8502
|
// src/web/components/deposit-generated-view.tsx
|
|
8389
|
-
var
|
|
8503
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
8390
8504
|
function parseAssetAmount(amountString, asset) {
|
|
8391
8505
|
const value = Number(amountString);
|
|
8392
8506
|
if (!Number.isFinite(value)) return 0;
|
|
@@ -8427,10 +8541,10 @@ function DepositGeneratedView({
|
|
|
8427
8541
|
showRegenerate = true,
|
|
8428
8542
|
onRegenerate
|
|
8429
8543
|
}) {
|
|
8430
|
-
return /* @__PURE__ */ (0,
|
|
8431
|
-
(network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ (0,
|
|
8432
|
-
/* @__PURE__ */ (0,
|
|
8433
|
-
/* @__PURE__ */ (0,
|
|
8544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
|
|
8545
|
+
(network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl bg-card/70 p-2.5", children: [
|
|
8546
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
|
|
8547
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
8434
8548
|
"input",
|
|
8435
8549
|
{
|
|
8436
8550
|
type: "text",
|
|
@@ -8441,16 +8555,16 @@ function DepositGeneratedView({
|
|
|
8441
8555
|
inputMode: "decimal"
|
|
8442
8556
|
}
|
|
8443
8557
|
),
|
|
8444
|
-
amount && /* @__PURE__ */ (0,
|
|
8445
|
-
/* @__PURE__ */ (0,
|
|
8558
|
+
amount && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
8559
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
|
|
8446
8560
|
"Updating ",
|
|
8447
8561
|
network === "arkade" ? "URI" : "invoice",
|
|
8448
8562
|
"..."
|
|
8449
8563
|
] }) : network === "arkade" ? `Unified URI for ${amount} ${getUnitLabel()}` : `Invoice for ${amount} ${getUnitLabel()}` })
|
|
8450
8564
|
] }),
|
|
8451
|
-
network === "lightning" && !isBtc && /* @__PURE__ */ (0,
|
|
8452
|
-
/* @__PURE__ */ (0,
|
|
8453
|
-
/* @__PURE__ */ (0,
|
|
8565
|
+
network === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl bg-card/70 p-2.5", children: [
|
|
8566
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
|
|
8567
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
8454
8568
|
"input",
|
|
8455
8569
|
{
|
|
8456
8570
|
type: "text",
|
|
@@ -8461,25 +8575,25 @@ function DepositGeneratedView({
|
|
|
8461
8575
|
inputMode: "decimal"
|
|
8462
8576
|
}
|
|
8463
8577
|
),
|
|
8464
|
-
amount && /* @__PURE__ */ (0,
|
|
8465
|
-
/* @__PURE__ */ (0,
|
|
8578
|
+
amount && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
8579
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
|
|
8466
8580
|
"Updating invoice..."
|
|
8467
8581
|
] }) : `Invoice for ${amount} ${getUnitLabel()}` }),
|
|
8468
|
-
amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ (0,
|
|
8582
|
+
amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("p", { className: "rounded-lg bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
|
|
8469
8583
|
"Exceeds max: ",
|
|
8470
8584
|
formatAssetAmount(maxDepositAmount, selectedAsset),
|
|
8471
8585
|
" ",
|
|
8472
8586
|
getUnitLabel()
|
|
8473
8587
|
] })
|
|
8474
8588
|
] }),
|
|
8475
|
-
/* @__PURE__ */ (0,
|
|
8476
|
-
/* @__PURE__ */ (0,
|
|
8589
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
|
|
8590
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
8477
8591
|
"div",
|
|
8478
8592
|
{
|
|
8479
8593
|
className: "relative flex flex-col items-center rounded-2xl bg-white p-3.5 transition-all",
|
|
8480
8594
|
style: net.qrGlow,
|
|
8481
8595
|
children: [
|
|
8482
|
-
showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0,
|
|
8596
|
+
showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
8483
8597
|
"div",
|
|
8484
8598
|
{
|
|
8485
8599
|
className: cn(
|
|
@@ -8489,21 +8603,21 @@ function DepositGeneratedView({
|
|
|
8489
8603
|
),
|
|
8490
8604
|
children: [
|
|
8491
8605
|
net.icon,
|
|
8492
|
-
/* @__PURE__ */ (0,
|
|
8606
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: net.label })
|
|
8493
8607
|
]
|
|
8494
8608
|
}
|
|
8495
8609
|
),
|
|
8496
|
-
/* @__PURE__ */ (0,
|
|
8497
|
-
isInvoicePaid && /* @__PURE__ */ (0,
|
|
8610
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(QrCode, { value: address, size: 188 }),
|
|
8611
|
+
isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(PaidOverlay, {}),
|
|
8498
8612
|
loading && !isInvoicePaid && // Loading scrim — sits over the QR while a fresh address/invoice
|
|
8499
8613
|
// is being fetched (e.g. after the New Address button).
|
|
8500
|
-
/* @__PURE__ */ (0,
|
|
8614
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
|
|
8501
8615
|
]
|
|
8502
8616
|
}
|
|
8503
8617
|
),
|
|
8504
8618
|
(() => {
|
|
8505
8619
|
const isAddressCopied = copied === address;
|
|
8506
|
-
return /* @__PURE__ */ (0,
|
|
8620
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
8507
8621
|
"button",
|
|
8508
8622
|
{
|
|
8509
8623
|
type: "button",
|
|
@@ -8516,14 +8630,14 @@ function DepositGeneratedView({
|
|
|
8516
8630
|
void copyToClipboard(address);
|
|
8517
8631
|
},
|
|
8518
8632
|
children: [
|
|
8519
|
-
/* @__PURE__ */ (0,
|
|
8633
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
|
|
8520
8634
|
isAddressCopied ? "Copied" : network === "lightning" ? "Copy Invoice" : "Copy Address"
|
|
8521
8635
|
]
|
|
8522
8636
|
}
|
|
8523
8637
|
);
|
|
8524
8638
|
})()
|
|
8525
8639
|
] }),
|
|
8526
|
-
network === "lightning" && invoiceStatus && /* @__PURE__ */ (0,
|
|
8640
|
+
network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
8527
8641
|
InvoiceStatusBanner,
|
|
8528
8642
|
{
|
|
8529
8643
|
isInvoicePending,
|
|
@@ -8532,7 +8646,7 @@ function DepositGeneratedView({
|
|
|
8532
8646
|
invoiceStatus
|
|
8533
8647
|
}
|
|
8534
8648
|
),
|
|
8535
|
-
/* @__PURE__ */ (0,
|
|
8649
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
8536
8650
|
"div",
|
|
8537
8651
|
{
|
|
8538
8652
|
"data-testid": "deposit-generated-address",
|
|
@@ -8543,16 +8657,16 @@ function DepositGeneratedView({
|
|
|
8543
8657
|
),
|
|
8544
8658
|
onClick: () => void copyToClipboard(address),
|
|
8545
8659
|
children: [
|
|
8546
|
-
/* @__PURE__ */ (0,
|
|
8547
|
-
/* @__PURE__ */ (0,
|
|
8548
|
-
/* @__PURE__ */ (0,
|
|
8549
|
-
/* @__PURE__ */ (0,
|
|
8660
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
|
|
8661
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8662
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
|
|
8663
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "mt-0.5 truncate font-mono text-tiny text-muted-foreground", children: address.length > 50 ? `${address.slice(0, 18)}...${address.slice(-14)}` : address })
|
|
8550
8664
|
] }),
|
|
8551
|
-
/* @__PURE__ */ (0,
|
|
8665
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(CopyIcon, { copied: copied === address })
|
|
8552
8666
|
]
|
|
8553
8667
|
}
|
|
8554
8668
|
),
|
|
8555
|
-
recipientId && /* @__PURE__ */ (0,
|
|
8669
|
+
recipientId && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
8556
8670
|
"div",
|
|
8557
8671
|
{
|
|
8558
8672
|
className: cn(
|
|
@@ -8561,16 +8675,16 @@ function DepositGeneratedView({
|
|
|
8561
8675
|
),
|
|
8562
8676
|
onClick: () => void copyToClipboard(recipientId),
|
|
8563
8677
|
children: [
|
|
8564
|
-
/* @__PURE__ */ (0,
|
|
8565
|
-
/* @__PURE__ */ (0,
|
|
8566
|
-
/* @__PURE__ */ (0,
|
|
8567
|
-
/* @__PURE__ */ (0,
|
|
8678
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
|
|
8679
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8680
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
|
|
8681
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "mt-0.5 truncate font-mono text-tiny text-muted-foreground", children: recipientId.length > 50 ? `${recipientId.slice(0, 18)}...${recipientId.slice(-14)}` : recipientId })
|
|
8568
8682
|
] }),
|
|
8569
|
-
/* @__PURE__ */ (0,
|
|
8683
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(CopyIcon, { copied: copied === recipientId })
|
|
8570
8684
|
]
|
|
8571
8685
|
}
|
|
8572
8686
|
),
|
|
8573
|
-
showRegenerate && /* @__PURE__ */ (0,
|
|
8687
|
+
showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
8574
8688
|
"button",
|
|
8575
8689
|
{
|
|
8576
8690
|
type: "button",
|
|
@@ -8588,7 +8702,7 @@ function DepositGeneratedView({
|
|
|
8588
8702
|
setInvoiceStatus(null);
|
|
8589
8703
|
},
|
|
8590
8704
|
className: "flex size-10 items-center justify-center rounded-full bg-primary/15 text-primary transition-all hover:bg-primary/25 active:scale-[0.98] disabled:opacity-50",
|
|
8591
|
-
children: /* @__PURE__ */ (0,
|
|
8705
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
8592
8706
|
"span",
|
|
8593
8707
|
{
|
|
8594
8708
|
className: cn("material-symbols-outlined text-icon-md", loading && "animate-spin"),
|
|
@@ -8601,7 +8715,7 @@ function DepositGeneratedView({
|
|
|
8601
8715
|
}
|
|
8602
8716
|
|
|
8603
8717
|
// src/web/components/deposit-pre-generation.tsx
|
|
8604
|
-
var
|
|
8718
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
8605
8719
|
var ACCOUNT_TITLES = {
|
|
8606
8720
|
RGB: "RGB & Lightning",
|
|
8607
8721
|
SPARK: "Spark",
|
|
@@ -8647,58 +8761,58 @@ function DepositPreGeneration({
|
|
|
8647
8761
|
}) {
|
|
8648
8762
|
const method = METHOD_META2[currentMethod];
|
|
8649
8763
|
const isRgbOnchain = network === "onchain" && !isBtc;
|
|
8650
|
-
return /* @__PURE__ */ (0,
|
|
8651
|
-
showReceiveSummary && /* @__PURE__ */ (0,
|
|
8652
|
-
/* @__PURE__ */ (0,
|
|
8653
|
-
/* @__PURE__ */ (0,
|
|
8654
|
-
/* @__PURE__ */ (0,
|
|
8655
|
-
/* @__PURE__ */ (0,
|
|
8656
|
-
/* @__PURE__ */ (0,
|
|
8764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-3", children: [
|
|
8765
|
+
showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "rounded-2xl bg-card/70 p-3", children: [
|
|
8766
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
|
|
8767
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
|
|
8768
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
|
|
8769
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-white/45", children: "Asset" }),
|
|
8770
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
|
|
8657
8771
|
] }),
|
|
8658
|
-
/* @__PURE__ */ (0,
|
|
8659
|
-
/* @__PURE__ */ (0,
|
|
8660
|
-
/* @__PURE__ */ (0,
|
|
8772
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
|
|
8773
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-white/45", children: "Destination account" }),
|
|
8774
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
|
|
8661
8775
|
] }),
|
|
8662
|
-
/* @__PURE__ */ (0,
|
|
8663
|
-
/* @__PURE__ */ (0,
|
|
8664
|
-
/* @__PURE__ */ (0,
|
|
8776
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
|
|
8777
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
|
|
8778
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "font-bold text-white", children: method.label })
|
|
8665
8779
|
] }),
|
|
8666
|
-
/* @__PURE__ */ (0,
|
|
8780
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
|
|
8667
8781
|
] })
|
|
8668
8782
|
] }),
|
|
8669
|
-
channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ (0,
|
|
8670
|
-
/* @__PURE__ */ (0,
|
|
8671
|
-
/* @__PURE__ */ (0,
|
|
8783
|
+
channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex items-center gap-2.5 rounded-xl bg-card/70 p-3", children: [
|
|
8784
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
|
|
8785
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
|
|
8672
8786
|
] }),
|
|
8673
|
-
showChannelWarning && /* @__PURE__ */ (0,
|
|
8674
|
-
/* @__PURE__ */ (0,
|
|
8675
|
-
/* @__PURE__ */ (0,
|
|
8787
|
+
showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(AlertBanner, { variant: "warning", children: [
|
|
8788
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
|
|
8789
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
|
|
8676
8790
|
] }),
|
|
8677
|
-
showLiquidityWarning && /* @__PURE__ */ (0,
|
|
8678
|
-
/* @__PURE__ */ (0,
|
|
8679
|
-
/* @__PURE__ */ (0,
|
|
8791
|
+
showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(AlertBanner, { variant: "warning", children: [
|
|
8792
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
|
|
8793
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("p", { className: "text-tiny text-warning/70", children: [
|
|
8680
8794
|
"No channels with inbound capacity for ",
|
|
8681
8795
|
selectedAsset?.ticker ?? "this asset",
|
|
8682
8796
|
"."
|
|
8683
8797
|
] })
|
|
8684
8798
|
] }),
|
|
8685
|
-
isAutoGenerate && loading && /* @__PURE__ */ (0,
|
|
8686
|
-
/* @__PURE__ */ (0,
|
|
8687
|
-
/* @__PURE__ */ (0,
|
|
8688
|
-
/* @__PURE__ */ (0,
|
|
8799
|
+
isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
|
|
8800
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: cn("flex size-16 items-center justify-center rounded-2xl", net.bg), children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
|
|
8801
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-1 text-center", children: [
|
|
8802
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
|
|
8689
8803
|
"Generating ",
|
|
8690
8804
|
network === "lightning" ? "invoice" : "address",
|
|
8691
8805
|
"..."
|
|
8692
8806
|
] }),
|
|
8693
|
-
/* @__PURE__ */ (0,
|
|
8807
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("p", { className: "text-xs text-white/30", children: [
|
|
8694
8808
|
net.label,
|
|
8695
8809
|
" network"
|
|
8696
8810
|
] })
|
|
8697
8811
|
] })
|
|
8698
8812
|
] }),
|
|
8699
|
-
isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0,
|
|
8700
|
-
/* @__PURE__ */ (0,
|
|
8701
|
-
/* @__PURE__ */ (0,
|
|
8813
|
+
isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-1.5", children: [
|
|
8814
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
|
|
8815
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
8702
8816
|
"input",
|
|
8703
8817
|
{
|
|
8704
8818
|
type: "text",
|
|
@@ -8710,15 +8824,15 @@ function DepositPreGeneration({
|
|
|
8710
8824
|
className: "w-full rounded-xl border bg-white/5 px-3 py-2.5 font-mono text-sm text-white transition-all placeholder:text-white/20 focus:border-primary/50 focus:outline-none"
|
|
8711
8825
|
}
|
|
8712
8826
|
),
|
|
8713
|
-
/* @__PURE__ */ (0,
|
|
8827
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-xxs text-white/35", children: "Enter a specific asset ID to receive it, or leave empty to accept any RGB asset to this invoice." })
|
|
8714
8828
|
] }),
|
|
8715
|
-
isRgbOnchain && /* @__PURE__ */ (0,
|
|
8716
|
-
/* @__PURE__ */ (0,
|
|
8717
|
-
/* @__PURE__ */ (0,
|
|
8718
|
-
/* @__PURE__ */ (0,
|
|
8719
|
-
/* @__PURE__ */ (0,
|
|
8829
|
+
isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-2.5 rounded-xl bg-card/70 p-3", children: [
|
|
8830
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
|
|
8831
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8832
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
|
|
8833
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
|
|
8720
8834
|
] }),
|
|
8721
|
-
/* @__PURE__ */ (0,
|
|
8835
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
8722
8836
|
"button",
|
|
8723
8837
|
{
|
|
8724
8838
|
type: "button",
|
|
@@ -8728,7 +8842,7 @@ function DepositPreGeneration({
|
|
|
8728
8842
|
usePrivacy ? "bg-primary" : "bg-white/10"
|
|
8729
8843
|
),
|
|
8730
8844
|
onClick: () => setUsePrivacy(!usePrivacy),
|
|
8731
|
-
children: /* @__PURE__ */ (0,
|
|
8845
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
8732
8846
|
"span",
|
|
8733
8847
|
{
|
|
8734
8848
|
className: cn(
|
|
@@ -8740,8 +8854,8 @@ function DepositPreGeneration({
|
|
|
8740
8854
|
}
|
|
8741
8855
|
)
|
|
8742
8856
|
] }),
|
|
8743
|
-
/* @__PURE__ */ (0,
|
|
8744
|
-
usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0,
|
|
8857
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-tiny leading-relaxed text-white/45", children: usePrivacy ? "Blinded: the sender never sees which UTXO you receive into. Spends one of your colorable UTXOs as the receiving slot." : "Witness: the sender creates the receiving UTXO for you. No colorable UTXO needed, but the sender sees the receiving output." }),
|
|
8858
|
+
usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
|
|
8745
8859
|
"div",
|
|
8746
8860
|
{
|
|
8747
8861
|
className: cn(
|
|
@@ -8749,26 +8863,26 @@ function DepositPreGeneration({
|
|
|
8749
8863
|
colorableUtxoCount > 0 ? "bg-success/10 text-success/80" : "bg-warning/10 text-warning/80"
|
|
8750
8864
|
),
|
|
8751
8865
|
children: [
|
|
8752
|
-
/* @__PURE__ */ (0,
|
|
8753
|
-
/* @__PURE__ */ (0,
|
|
8866
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
|
|
8867
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "font-bold tabular-nums", children: colorableUtxoCount })
|
|
8754
8868
|
]
|
|
8755
8869
|
}
|
|
8756
8870
|
),
|
|
8757
|
-
usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ (0,
|
|
8871
|
+
usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-tiny text-warning/70", children: "None available \u2014 create a colorable UTXO below to receive privately, or switch off privacy to use a witness receive." })
|
|
8758
8872
|
] }),
|
|
8759
|
-
network === "onchain" && !isBtc && /* @__PURE__ */ (0,
|
|
8760
|
-
/* @__PURE__ */ (0,
|
|
8761
|
-
/* @__PURE__ */ (0,
|
|
8873
|
+
network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-1.5", children: [
|
|
8874
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
8875
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
|
|
8762
8876
|
"Amount (",
|
|
8763
8877
|
getUnitLabel(),
|
|
8764
8878
|
") - Optional"
|
|
8765
8879
|
] }),
|
|
8766
|
-
selectedAsset && /* @__PURE__ */ (0,
|
|
8880
|
+
selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("span", { className: "text-xxs text-white/30", children: [
|
|
8767
8881
|
selectedAsset.precision ?? 0,
|
|
8768
8882
|
" decimals"
|
|
8769
8883
|
] })
|
|
8770
8884
|
] }),
|
|
8771
|
-
/* @__PURE__ */ (0,
|
|
8885
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
8772
8886
|
"input",
|
|
8773
8887
|
{
|
|
8774
8888
|
type: "text",
|
|
@@ -8780,18 +8894,18 @@ function DepositPreGeneration({
|
|
|
8780
8894
|
}
|
|
8781
8895
|
)
|
|
8782
8896
|
] }),
|
|
8783
|
-
needsColorableUtxos && /* @__PURE__ */ (0,
|
|
8784
|
-
/* @__PURE__ */ (0,
|
|
8785
|
-
/* @__PURE__ */ (0,
|
|
8897
|
+
needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(AlertBanner, { variant: "warning", children: [
|
|
8898
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
|
|
8899
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-tiny text-warning/70", children: "To receive RGB assets on-chain you need at least one uncolored UTXO. Create some now and the invoice will be generated automatically." })
|
|
8786
8900
|
] }),
|
|
8787
|
-
!isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ (0,
|
|
8788
|
-
/* @__PURE__ */ (0,
|
|
8901
|
+
!isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
|
|
8902
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
|
|
8789
8903
|
"Create Colorable UTXOs"
|
|
8790
|
-
] }) }) : /* @__PURE__ */ (0,
|
|
8791
|
-
/* @__PURE__ */ (0,
|
|
8904
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
|
|
8905
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
|
|
8792
8906
|
"Generating..."
|
|
8793
|
-
] }) : /* @__PURE__ */ (0,
|
|
8794
|
-
/* @__PURE__ */ (0,
|
|
8907
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
|
|
8908
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
|
|
8795
8909
|
"Generate Address"
|
|
8796
8910
|
] }) }))
|
|
8797
8911
|
] });
|
|
@@ -8799,7 +8913,7 @@ function DepositPreGeneration({
|
|
|
8799
8913
|
|
|
8800
8914
|
// src/web/components/deposit-asset-selection.tsx
|
|
8801
8915
|
var import_react17 = require("react");
|
|
8802
|
-
var
|
|
8916
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
8803
8917
|
var ADD_ASSET_SUBTITLE = {
|
|
8804
8918
|
RGB: "RGB asset on Bitcoin",
|
|
8805
8919
|
SPARK: "Spark-native asset",
|
|
@@ -8888,8 +9002,8 @@ function DepositAssetSelection({
|
|
|
8888
9002
|
titleHoverClass: "group-hover:text-network-liquid"
|
|
8889
9003
|
}
|
|
8890
9004
|
].filter((option) => option.enabled);
|
|
8891
|
-
return /* @__PURE__ */ (0,
|
|
8892
|
-
/* @__PURE__ */ (0,
|
|
9005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
|
|
9006
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
8893
9007
|
Button,
|
|
8894
9008
|
{
|
|
8895
9009
|
type: "button",
|
|
@@ -8897,10 +9011,10 @@ function DepositAssetSelection({
|
|
|
8897
9011
|
size: "icon-xl",
|
|
8898
9012
|
onClick: () => setCurrentView("dashboard"),
|
|
8899
9013
|
"aria-label": "Go back",
|
|
8900
|
-
children: /* @__PURE__ */ (0,
|
|
9014
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: "arrow_back", size: "xl" })
|
|
8901
9015
|
}
|
|
8902
9016
|
) }),
|
|
8903
|
-
/* @__PURE__ */ (0,
|
|
9017
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
8904
9018
|
DotPagination,
|
|
8905
9019
|
{
|
|
8906
9020
|
count: 2,
|
|
@@ -8908,8 +9022,8 @@ function DepositAssetSelection({
|
|
|
8908
9022
|
ariaLabel: "Deposit step 1 of 2: select asset"
|
|
8909
9023
|
}
|
|
8910
9024
|
) }),
|
|
8911
|
-
/* @__PURE__ */ (0,
|
|
8912
|
-
/* @__PURE__ */ (0,
|
|
9025
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "relative", children: [
|
|
9026
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
8913
9027
|
Icon,
|
|
8914
9028
|
{
|
|
8915
9029
|
name: "search",
|
|
@@ -8917,7 +9031,7 @@ function DepositAssetSelection({
|
|
|
8917
9031
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-white/30"
|
|
8918
9032
|
}
|
|
8919
9033
|
),
|
|
8920
|
-
/* @__PURE__ */ (0,
|
|
9034
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
8921
9035
|
"input",
|
|
8922
9036
|
{
|
|
8923
9037
|
autoFocus: true,
|
|
@@ -8930,8 +9044,8 @@ function DepositAssetSelection({
|
|
|
8930
9044
|
}
|
|
8931
9045
|
)
|
|
8932
9046
|
] }) }),
|
|
8933
|
-
/* @__PURE__ */ (0,
|
|
8934
|
-
btcAsset && /* @__PURE__ */ (0,
|
|
9047
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
|
|
9048
|
+
btcAsset && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
8935
9049
|
"button",
|
|
8936
9050
|
{
|
|
8937
9051
|
type: "button",
|
|
@@ -8939,28 +9053,28 @@ function DepositAssetSelection({
|
|
|
8939
9053
|
className: "group flex w-full min-w-0 items-center gap-3 overflow-hidden rounded-2xl bg-white/3 px-4 py-3 text-sm transition-all hover:bg-accent",
|
|
8940
9054
|
onClick: () => onSelectAsset(btcAsset),
|
|
8941
9055
|
children: [
|
|
8942
|
-
/* @__PURE__ */ (0,
|
|
8943
|
-
/* @__PURE__ */ (0,
|
|
8944
|
-
/* @__PURE__ */ (0,
|
|
8945
|
-
/* @__PURE__ */ (0,
|
|
9056
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
|
|
9057
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
|
|
9058
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
|
|
9059
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
|
|
8946
9060
|
] }),
|
|
8947
|
-
/* @__PURE__ */ (0,
|
|
8948
|
-
/* @__PURE__ */ (0,
|
|
8949
|
-
/* @__PURE__ */ (0,
|
|
8950
|
-
isSparkConnected && /* @__PURE__ */ (0,
|
|
8951
|
-
isArkadeConnected && /* @__PURE__ */ (0,
|
|
8952
|
-
isLiquidConnected && /* @__PURE__ */ (0,
|
|
9061
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
|
|
9062
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
|
|
9063
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
|
|
9064
|
+
isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
|
|
9065
|
+
isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(NetworkBadge, { network: "Arkade", size: "sm" }),
|
|
9066
|
+
isLiquidConnected && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(NetworkBadge, { network: "Liquid", size: "sm" })
|
|
8953
9067
|
] }),
|
|
8954
|
-
/* @__PURE__ */ (0,
|
|
9068
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "material-symbols-outlined flex-shrink-0 text-icon-md text-white/20 transition-colors group-hover:text-white/50", children: "arrow_forward" })
|
|
8955
9069
|
]
|
|
8956
9070
|
}
|
|
8957
9071
|
),
|
|
8958
|
-
noResults ? /* @__PURE__ */ (0,
|
|
9072
|
+
noResults ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
|
|
8959
9073
|
'No assets match "',
|
|
8960
9074
|
searchQuery,
|
|
8961
9075
|
'"'
|
|
8962
|
-
] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0,
|
|
8963
|
-
/* @__PURE__ */ (0,
|
|
9076
|
+
] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
|
|
9077
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
8964
9078
|
"button",
|
|
8965
9079
|
{
|
|
8966
9080
|
type: "button",
|
|
@@ -8973,17 +9087,17 @@ function DepositAssetSelection({
|
|
|
8973
9087
|
isSearching && "cursor-default"
|
|
8974
9088
|
),
|
|
8975
9089
|
children: [
|
|
8976
|
-
/* @__PURE__ */ (0,
|
|
8977
|
-
/* @__PURE__ */ (0,
|
|
8978
|
-
/* @__PURE__ */ (0,
|
|
8979
|
-
!isSearching && /* @__PURE__ */ (0,
|
|
9090
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
|
|
9091
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "inline-flex size-5 items-center justify-center rounded-full bg-white/10 text-tiny font-bold text-white/70", children: ownedAssetsCount }),
|
|
9092
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex-1" }),
|
|
9093
|
+
!isSearching && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
|
|
8980
9094
|
]
|
|
8981
9095
|
}
|
|
8982
9096
|
),
|
|
8983
|
-
showOwnedAssets && /* @__PURE__ */ (0,
|
|
9097
|
+
showOwnedAssets && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
|
|
8984
9098
|
const protocolBadge = asset.accountId ? PROTOCOL_BADGE[asset.accountId] : null;
|
|
8985
9099
|
const balance = asset.balance ?? 0;
|
|
8986
|
-
return /* @__PURE__ */ (0,
|
|
9100
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
8987
9101
|
"button",
|
|
8988
9102
|
{
|
|
8989
9103
|
type: "button",
|
|
@@ -8991,11 +9105,11 @@ function DepositAssetSelection({
|
|
|
8991
9105
|
className: "group flex w-full min-w-0 items-center gap-3 overflow-hidden rounded-2xl bg-white/3 px-4 py-3 text-sm transition-all hover:bg-accent",
|
|
8992
9106
|
onClick: () => onSelectAsset(asset),
|
|
8993
9107
|
children: [
|
|
8994
|
-
/* @__PURE__ */ (0,
|
|
8995
|
-
/* @__PURE__ */ (0,
|
|
8996
|
-
/* @__PURE__ */ (0,
|
|
8997
|
-
/* @__PURE__ */ (0,
|
|
8998
|
-
protocolBadge && /* @__PURE__ */ (0,
|
|
9108
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
|
|
9109
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
|
|
9110
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
9111
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
|
|
9112
|
+
protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
8999
9113
|
"span",
|
|
9000
9114
|
{
|
|
9001
9115
|
className: cn(
|
|
@@ -9006,36 +9120,36 @@ function DepositAssetSelection({
|
|
|
9006
9120
|
}
|
|
9007
9121
|
)
|
|
9008
9122
|
] }),
|
|
9009
|
-
/* @__PURE__ */ (0,
|
|
9123
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
|
|
9010
9124
|
] }),
|
|
9011
|
-
balance > 0 && /* @__PURE__ */ (0,
|
|
9012
|
-
/* @__PURE__ */ (0,
|
|
9013
|
-
/* @__PURE__ */ (0,
|
|
9125
|
+
balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
|
|
9126
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "text-xs font-bold tabular-nums text-white", children: formatAssetBalance(asset) }),
|
|
9127
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
|
|
9014
9128
|
] }),
|
|
9015
|
-
/* @__PURE__ */ (0,
|
|
9129
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "material-symbols-outlined flex-shrink-0 text-icon-sm text-white/20 transition-colors group-hover:text-white/50", children: "arrow_forward" })
|
|
9016
9130
|
]
|
|
9017
9131
|
},
|
|
9018
9132
|
asset.asset_id
|
|
9019
9133
|
);
|
|
9020
9134
|
}) })
|
|
9021
9135
|
] }) : null,
|
|
9022
|
-
!searchQuery && /* @__PURE__ */ (0,
|
|
9136
|
+
!searchQuery && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
9023
9137
|
"button",
|
|
9024
9138
|
{
|
|
9025
9139
|
type: "button",
|
|
9026
9140
|
onClick: () => setCurrentView("bridge"),
|
|
9027
9141
|
className: "group flex w-full items-center gap-3 rounded-2xl bg-gradient-to-r from-primary/10 to-primary/5 p-3 transition-all hover:from-primary/20 hover:to-primary/10",
|
|
9028
9142
|
children: [
|
|
9029
|
-
/* @__PURE__ */ (0,
|
|
9030
|
-
/* @__PURE__ */ (0,
|
|
9031
|
-
/* @__PURE__ */ (0,
|
|
9032
|
-
/* @__PURE__ */ (0,
|
|
9143
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
|
|
9144
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex-1 text-left", children: [
|
|
9145
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
|
|
9146
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
|
|
9033
9147
|
] }),
|
|
9034
|
-
/* @__PURE__ */ (0,
|
|
9148
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
|
|
9035
9149
|
]
|
|
9036
9150
|
}
|
|
9037
9151
|
) }),
|
|
9038
|
-
!searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0,
|
|
9152
|
+
!searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
9039
9153
|
"button",
|
|
9040
9154
|
{
|
|
9041
9155
|
type: "button",
|
|
@@ -9043,27 +9157,27 @@ function DepositAssetSelection({
|
|
|
9043
9157
|
onClick: () => setShowAddAssetModal(true),
|
|
9044
9158
|
className: "group flex w-full items-center gap-3 rounded-2xl bg-white/3 p-3 transition-all hover:bg-accent",
|
|
9045
9159
|
children: [
|
|
9046
|
-
/* @__PURE__ */ (0,
|
|
9047
|
-
/* @__PURE__ */ (0,
|
|
9048
|
-
/* @__PURE__ */ (0,
|
|
9049
|
-
/* @__PURE__ */ (0,
|
|
9160
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: "add", size: "md", className: "text-primary" }) }),
|
|
9161
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex-1 text-left", children: [
|
|
9162
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
|
|
9163
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
|
|
9050
9164
|
"Receive a new ",
|
|
9051
9165
|
newAssetOptions.map((o) => o.ticker).join(", "),
|
|
9052
9166
|
" asset"
|
|
9053
9167
|
] })
|
|
9054
9168
|
] }),
|
|
9055
|
-
/* @__PURE__ */ (0,
|
|
9169
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
|
|
9056
9170
|
]
|
|
9057
9171
|
}
|
|
9058
9172
|
) })
|
|
9059
9173
|
] }),
|
|
9060
|
-
/* @__PURE__ */ (0,
|
|
9174
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
9061
9175
|
BottomSheet,
|
|
9062
9176
|
{
|
|
9063
9177
|
open: showAddAssetModal,
|
|
9064
9178
|
title: "Add an asset",
|
|
9065
9179
|
onClose: () => setShowAddAssetModal(false),
|
|
9066
|
-
children: /* @__PURE__ */ (0,
|
|
9180
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
|
|
9067
9181
|
"button",
|
|
9068
9182
|
{
|
|
9069
9183
|
type: "button",
|
|
@@ -9077,12 +9191,12 @@ function DepositAssetSelection({
|
|
|
9077
9191
|
handleAddNewAsset(option.account);
|
|
9078
9192
|
},
|
|
9079
9193
|
children: [
|
|
9080
|
-
option.account === "LIQUID" ? /* @__PURE__ */ (0,
|
|
9081
|
-
/* @__PURE__ */ (0,
|
|
9082
|
-
/* @__PURE__ */ (0,
|
|
9083
|
-
/* @__PURE__ */ (0,
|
|
9194
|
+
option.account === "LIQUID" ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-network-liquid/10", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(LiquidNetworkIcon, { className: "size-5" }) }) : /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
|
|
9195
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
9196
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
|
|
9197
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
|
|
9084
9198
|
] }),
|
|
9085
|
-
/* @__PURE__ */ (0,
|
|
9199
|
+
/* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
|
|
9086
9200
|
]
|
|
9087
9201
|
},
|
|
9088
9202
|
option.account
|
|
@@ -9093,7 +9207,7 @@ function DepositAssetSelection({
|
|
|
9093
9207
|
}
|
|
9094
9208
|
|
|
9095
9209
|
// src/web/components/deposit-invoice-generation.tsx
|
|
9096
|
-
var
|
|
9210
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
9097
9211
|
var ACCOUNT_TITLES2 = {
|
|
9098
9212
|
RGB: "RGB & Lightning",
|
|
9099
9213
|
SPARK: "Spark",
|
|
@@ -9252,7 +9366,7 @@ function DepositInvoiceGeneration({
|
|
|
9252
9366
|
if (nextMethod) applyMethodSelection(account, nextMethod);
|
|
9253
9367
|
};
|
|
9254
9368
|
if (depositDetected) {
|
|
9255
|
-
return /* @__PURE__ */ (0,
|
|
9369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9256
9370
|
DepositSuccessScreen,
|
|
9257
9371
|
{
|
|
9258
9372
|
handleDone,
|
|
@@ -9269,15 +9383,15 @@ function DepositInvoiceGeneration({
|
|
|
9269
9383
|
const showChannelWarning = selectedAccount === "RGB" && network === "lightning" && !channelsLoading && channels.length === 0 && !isSparkConnected;
|
|
9270
9384
|
const showLiquidityWarning = !isSparkLightning && network === "lightning" && maxDepositAmount === 0 && !channelsLoading && !isBtc;
|
|
9271
9385
|
const isNewRgbAsset = isNewAsset && assetFamily === "RGB";
|
|
9272
|
-
return /* @__PURE__ */ (0,
|
|
9273
|
-
/* @__PURE__ */ (0,
|
|
9386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
|
|
9387
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Icon, { name: "arrow_back", size: "xl" }) }) }),
|
|
9274
9388
|
(() => {
|
|
9275
9389
|
const hideDestinationRail = isNewAsset && (network === "spark" || network === "arkade");
|
|
9276
9390
|
if (hideDestinationRail) return null;
|
|
9277
|
-
return /* @__PURE__ */ (0,
|
|
9278
|
-
/* @__PURE__ */ (0,
|
|
9279
|
-
/* @__PURE__ */ (0,
|
|
9280
|
-
/* @__PURE__ */ (0,
|
|
9391
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "flex-shrink-0 bg-background px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "space-y-2", children: [
|
|
9392
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { children: [
|
|
9393
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
|
|
9394
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9281
9395
|
AccountChoiceChip,
|
|
9282
9396
|
{
|
|
9283
9397
|
account,
|
|
@@ -9302,9 +9416,9 @@ function DepositInvoiceGeneration({
|
|
|
9302
9416
|
account
|
|
9303
9417
|
)) })
|
|
9304
9418
|
] }),
|
|
9305
|
-
!isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0,
|
|
9306
|
-
/* @__PURE__ */ (0,
|
|
9307
|
-
/* @__PURE__ */ (0,
|
|
9419
|
+
!isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { children: [
|
|
9420
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
|
|
9421
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: methodOptions.map(({ method, enabled, disabledReason }) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9308
9422
|
MethodChoiceChip,
|
|
9309
9423
|
{
|
|
9310
9424
|
method,
|
|
@@ -9318,7 +9432,7 @@ function DepositInvoiceGeneration({
|
|
|
9318
9432
|
] })
|
|
9319
9433
|
] }) });
|
|
9320
9434
|
})(),
|
|
9321
|
-
/* @__PURE__ */ (0,
|
|
9435
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9322
9436
|
BtcUnifiedReceive,
|
|
9323
9437
|
{
|
|
9324
9438
|
btcSelectedAccount,
|
|
@@ -9338,15 +9452,15 @@ function DepositInvoiceGeneration({
|
|
|
9338
9452
|
setAccountReceiveResult,
|
|
9339
9453
|
handleDone
|
|
9340
9454
|
}
|
|
9341
|
-
) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0,
|
|
9342
|
-
/* @__PURE__ */ (0,
|
|
9455
|
+
) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
|
|
9456
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9343
9457
|
"div",
|
|
9344
9458
|
{
|
|
9345
9459
|
className: cn(
|
|
9346
9460
|
"flex size-16 items-center justify-center rounded-2xl",
|
|
9347
9461
|
NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].bg
|
|
9348
9462
|
),
|
|
9349
|
-
children: /* @__PURE__ */ (0,
|
|
9463
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9350
9464
|
"span",
|
|
9351
9465
|
{
|
|
9352
9466
|
className: cn(
|
|
@@ -9358,11 +9472,11 @@ function DepositInvoiceGeneration({
|
|
|
9358
9472
|
)
|
|
9359
9473
|
}
|
|
9360
9474
|
),
|
|
9361
|
-
/* @__PURE__ */ (0,
|
|
9362
|
-
/* @__PURE__ */ (0,
|
|
9363
|
-
/* @__PURE__ */ (0,
|
|
9475
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "space-y-1 text-center", children: [
|
|
9476
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
|
|
9477
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
|
|
9364
9478
|
] })
|
|
9365
|
-
] }) : !address ? /* @__PURE__ */ (0,
|
|
9479
|
+
] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9366
9480
|
DepositPreGeneration,
|
|
9367
9481
|
{
|
|
9368
9482
|
selectedAsset,
|
|
@@ -9386,7 +9500,7 @@ function DepositInvoiceGeneration({
|
|
|
9386
9500
|
onOpenCreateUtxos,
|
|
9387
9501
|
showReceiveSummary: !isNewRgbAsset
|
|
9388
9502
|
}
|
|
9389
|
-
) : /* @__PURE__ */ (0,
|
|
9503
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
9390
9504
|
DepositGeneratedView,
|
|
9391
9505
|
{
|
|
9392
9506
|
network,
|
|
@@ -9540,7 +9654,9 @@ function DepositInvoiceGeneration({
|
|
|
9540
9654
|
StatusBadge,
|
|
9541
9655
|
StatusIconBadge,
|
|
9542
9656
|
StepperNumberInput,
|
|
9657
|
+
SummaryRows,
|
|
9543
9658
|
SwapInputCard,
|
|
9659
|
+
SwapStepList,
|
|
9544
9660
|
Switch,
|
|
9545
9661
|
SwitchRow,
|
|
9546
9662
|
Tabs,
|