kaleido-ui 0.1.109 → 0.1.110

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.
@@ -55,6 +55,7 @@ __export(web_exports, {
55
55
  ArkadeNetworkIcon: () => ArkadeNetworkIcon,
56
56
  AssetCard: () => AssetCard,
57
57
  AssetIcon: () => AssetIcon,
58
+ AssetInfoChip: () => AssetInfoChip,
58
59
  AssetSelector: () => AssetSelector,
59
60
  BalanceBreakdown: () => BalanceBreakdown,
60
61
  BottomNav: () => BottomNav,
@@ -96,6 +97,7 @@ __export(web_exports, {
96
97
  HeadlineGradient: () => HeadlineGradient,
97
98
  Icon: () => Icon,
98
99
  Icons: () => Icons,
100
+ InfoChip: () => InfoChip,
99
101
  InfoPanel: () => InfoPanel,
100
102
  InlineAction: () => InlineAction,
101
103
  InlineSelector: () => InlineSelector,
@@ -112,6 +114,7 @@ __export(web_exports, {
112
114
  MobileHeroAnimation: () => MobileHeroAnimation,
113
115
  NETWORK_CONFIG: () => NETWORK_CONFIG,
114
116
  NetworkBadge: () => NetworkBadge,
117
+ NetworkInfoChip: () => NetworkInfoChip,
115
118
  NetworkInfoDisclosure: () => NetworkInfoDisclosure,
116
119
  NetworkStatusChip: () => NetworkStatusChip,
117
120
  NostrNetworkIcon: () => NostrNetworkIcon,
@@ -5597,7 +5600,6 @@ function PageHeader({
5597
5600
  subtitle,
5598
5601
  right,
5599
5602
  className,
5600
- titleAlign = "center",
5601
5603
  onBack,
5602
5604
  backLabel = "Go back",
5603
5605
  borderClassName
@@ -5614,33 +5616,44 @@ function PageHeader({
5614
5616
  children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icon, { name: "arrow_back", size: "xl" })
5615
5617
  }
5616
5618
  ) : null;
5617
- const resolvedLeft = backButton && left ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex min-w-0 items-center gap-2", children: [
5618
- backButton,
5619
- left
5620
- ] }) : backButton ?? left;
5621
- const titleBlock = title ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: cn("min-w-0", titleAlign === "center" ? "max-w-xs text-center" : "text-left"), children: [
5619
+ const titleBlock = title ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "min-w-0 text-left", children: [
5622
5620
  /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "truncate font-bold text-body text-foreground", children: title }),
5623
5621
  subtitle && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "mt-1 truncate text-xs text-muted-foreground", children: subtitle })
5624
5622
  ] }) : null;
5625
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("header", { className: cn(
5623
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("header", { className: cn(
5626
5624
  "sticky top-0 z-[var(--z-header)] flex min-h-14 shrink-0 items-center bg-background px-4 py-2 shadow-header backdrop-blur-xl",
5627
5625
  borderClassName && "border-b",
5628
5626
  borderClassName,
5629
5627
  className
5630
- ), children: title && titleAlign === "start" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
5631
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
5632
- resolvedLeft,
5633
- titleBlock
5634
- ] }),
5635
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "ml-3 flex shrink-0 items-center justify-end gap-2", children: right })
5636
- ] }) : title ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
5637
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex min-w-0 flex-1 items-center", children: resolvedLeft }),
5638
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "shrink-0", children: titleBlock }),
5639
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex min-w-0 flex-1 items-center justify-end gap-2", children: right })
5640
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
5641
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex shrink-0 items-center", children: resolvedLeft }),
5642
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "ml-auto flex min-w-0 items-center justify-end gap-2", children: right })
5643
- ] }) });
5628
+ ), children: [
5629
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
5630
+ "div",
5631
+ {
5632
+ "data-slot": "page-header-leading",
5633
+ className: cn(
5634
+ "flex min-w-0 items-center",
5635
+ title ? "flex-1 gap-3" : "shrink-0"
5636
+ ),
5637
+ children: [
5638
+ title && left,
5639
+ backButton,
5640
+ !title && left,
5641
+ titleBlock
5642
+ ]
5643
+ }
5644
+ ),
5645
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
5646
+ "div",
5647
+ {
5648
+ "data-slot": "page-header-actions",
5649
+ className: cn(
5650
+ "flex min-w-0 items-center justify-end gap-2",
5651
+ title ? "ml-3 shrink-0" : "ml-auto"
5652
+ ),
5653
+ children: right
5654
+ }
5655
+ )
5656
+ ] });
5644
5657
  }
5645
5658
 
5646
5659
  // src/web/components/extension-page-frame.tsx
@@ -5878,9 +5891,157 @@ function InfoPanel({
5878
5891
  ] }) });
5879
5892
  }
5880
5893
 
5894
+ // src/web/components/info-chip.tsx
5895
+ var import_jsx_runtime60 = require("react/jsx-runtime");
5896
+ var defaultStatusLabel = {
5897
+ success: "Success",
5898
+ warning: "Warning",
5899
+ danger: "Error",
5900
+ info: "Info"
5901
+ };
5902
+ var leadingToneClass = {
5903
+ success: "bg-success/10 text-success",
5904
+ warning: "bg-warning/10 text-warning",
5905
+ danger: "bg-danger/10 text-danger",
5906
+ info: "bg-info/10 text-info"
5907
+ };
5908
+ var statusToneClass = {
5909
+ success: "border-success/25 bg-success/10 text-success",
5910
+ warning: "border-warning/25 bg-warning/10 text-warning",
5911
+ danger: "border-danger/25 bg-danger/10 text-danger",
5912
+ info: "border-info/25 bg-info/10 text-info"
5913
+ };
5914
+ var statusDotClass = {
5915
+ success: "bg-success",
5916
+ warning: "bg-warning",
5917
+ danger: "bg-danger",
5918
+ info: "bg-info"
5919
+ };
5920
+ function InfoChip({
5921
+ leading,
5922
+ label,
5923
+ value,
5924
+ status,
5925
+ statusLabel,
5926
+ onEdit,
5927
+ editLabel,
5928
+ editDisabled,
5929
+ className,
5930
+ valueClassName,
5931
+ "data-testid": dataTestId,
5932
+ "data-info-kind": dataInfoKind
5933
+ }) {
5934
+ const readableStatus = status ? statusLabel ?? defaultStatusLabel[status] : null;
5935
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5936
+ "div",
5937
+ {
5938
+ "data-slot": "info-chip",
5939
+ "data-status": status,
5940
+ "data-info-kind": dataInfoKind,
5941
+ "data-testid": dataTestId,
5942
+ className: cn(
5943
+ "flex w-full max-w-full items-center gap-3 rounded-xl border border-white/10 bg-surface-card px-3 py-2.5",
5944
+ className
5945
+ ),
5946
+ children: [
5947
+ leading && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5948
+ "span",
5949
+ {
5950
+ "aria-hidden": "true",
5951
+ className: cn(
5952
+ "flex size-9 shrink-0 items-center justify-center rounded-full bg-accent text-muted-foreground [&_svg]:size-icon-lg",
5953
+ status && leadingToneClass[status]
5954
+ ),
5955
+ children: leading
5956
+ }
5957
+ ),
5958
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("dl", { className: "min-w-0 flex-1", children: [
5959
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("dt", { className: "truncate text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: label }),
5960
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("dd", { className: "mt-0.5 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1", children: [
5961
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5962
+ "span",
5963
+ {
5964
+ className: cn(
5965
+ "min-w-0 max-w-full [overflow-wrap:anywhere] text-sm font-semibold leading-5 text-foreground",
5966
+ valueClassName
5967
+ ),
5968
+ children: value
5969
+ }
5970
+ ),
5971
+ status && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5972
+ "span",
5973
+ {
5974
+ className: cn(
5975
+ "inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xxs font-bold leading-4",
5976
+ statusToneClass[status]
5977
+ ),
5978
+ children: [
5979
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { "aria-hidden": "true", className: cn("size-1.5 shrink-0 rounded-full", statusDotClass[status]) }),
5980
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "truncate", children: readableStatus })
5981
+ ]
5982
+ }
5983
+ )
5984
+ ] })
5985
+ ] }),
5986
+ onEdit && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5987
+ Button,
5988
+ {
5989
+ type: "button",
5990
+ variant: "ghost",
5991
+ size: "icon-lg",
5992
+ onClick: onEdit,
5993
+ disabled: editDisabled,
5994
+ "aria-label": editLabel,
5995
+ title: editLabel,
5996
+ className: "shrink-0",
5997
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "edit", size: "sm", "aria-hidden": "true" })
5998
+ }
5999
+ )
6000
+ ]
6001
+ }
6002
+ );
6003
+ }
6004
+ function NetworkInfoChip({
6005
+ network,
6006
+ label = "Network",
6007
+ value = network,
6008
+ iconBasePath,
6009
+ ...infoChipProps
6010
+ }) {
6011
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6012
+ InfoChip,
6013
+ {
6014
+ ...infoChipProps,
6015
+ "data-info-kind": "network",
6016
+ leading: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(NetworkBadge, { network, iconBasePath, size: "md" }),
6017
+ label,
6018
+ value
6019
+ }
6020
+ );
6021
+ }
6022
+ function AssetInfoChip({
6023
+ ticker,
6024
+ label = "Asset",
6025
+ value = ticker,
6026
+ logoUri,
6027
+ cdnBaseUrl,
6028
+ ...infoChipProps
6029
+ }) {
6030
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6031
+ InfoChip,
6032
+ {
6033
+ ...infoChipProps,
6034
+ "data-info-kind": "asset",
6035
+ leading: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(AssetIcon, { ticker, logoUri, cdnBaseUrl, size: 28 }),
6036
+ label,
6037
+ value
6038
+ }
6039
+ );
6040
+ }
6041
+
5881
6042
  // src/web/components/error-boundary.tsx
5882
6043
  var import_react12 = require("react");
5883
- var import_jsx_runtime60 = require("react/jsx-runtime");
6044
+ var import_jsx_runtime61 = require("react/jsx-runtime");
5884
6045
  var ErrorBoundary = class extends import_react12.Component {
5885
6046
  constructor(props) {
5886
6047
  super(props);
@@ -5894,11 +6055,11 @@ var ErrorBoundary = class extends import_react12.Component {
5894
6055
  }
5895
6056
  render() {
5896
6057
  if (this.state.hasError) {
5897
- return this.props.fallback ?? /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
5898
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5899
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5900
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5901
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6058
+ return this.props.fallback ?? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
6059
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
6060
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
6061
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
6062
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
5902
6063
  "button",
5903
6064
  {
5904
6065
  onClick: () => {
@@ -5916,7 +6077,7 @@ var ErrorBoundary = class extends import_react12.Component {
5916
6077
  };
5917
6078
 
5918
6079
  // src/web/components/recovery-phrase-card.tsx
5919
- var import_jsx_runtime61 = require("react/jsx-runtime");
6080
+ var import_jsx_runtime62 = require("react/jsx-runtime");
5920
6081
  function RecoveryPhraseCard({
5921
6082
  words,
5922
6083
  revealed = false,
@@ -5927,10 +6088,10 @@ function RecoveryPhraseCard({
5927
6088
  className
5928
6089
  }) {
5929
6090
  const hasWords = words.length > 0;
5930
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("section", { className: cn("space-y-2", className), children: [
5931
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
5932
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5933
- hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6091
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("section", { className: cn("space-y-2", className), children: [
6092
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
6093
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
6094
+ hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5934
6095
  Button,
5935
6096
  {
5936
6097
  type: "button",
@@ -5939,27 +6100,27 @@ function RecoveryPhraseCard({
5939
6100
  onClick: () => onRevealChange(!revealed),
5940
6101
  className: "h-auto rounded-lg px-2 py-1 text-xs text-muted-foreground hover:text-white",
5941
6102
  children: [
5942
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
6103
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
5943
6104
  "Hide"
5944
6105
  ]
5945
6106
  }
5946
6107
  )
5947
6108
  ] }),
5948
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "relative", children: [
5949
- hasWords ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6109
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "relative", children: [
6110
+ hasWords ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5950
6111
  "div",
5951
6112
  {
5952
6113
  className: cn(
5953
6114
  "grid grid-cols-3 gap-2 transition-all duration-300",
5954
6115
  !revealed && "pointer-events-none select-none blur-sm"
5955
6116
  ),
5956
- children: words.map((word, index) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
5957
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5958
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "font-mono text-sm text-white", children: word })
6117
+ children: words.map((word, index) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
6118
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
6119
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "font-mono text-sm text-white", children: word })
5959
6120
  ] }, `${index}-${word}`))
5960
6121
  }
5961
- ) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "rounded-xl bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
5962
- hasWords && !revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6122
+ ) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "rounded-xl bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
6123
+ hasWords && !revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5963
6124
  Button,
5964
6125
  {
5965
6126
  type: "button",
@@ -5967,13 +6128,13 @@ function RecoveryPhraseCard({
5967
6128
  size: "sm",
5968
6129
  onClick: () => onRevealChange(true),
5969
6130
  children: [
5970
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6131
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
5971
6132
  "Tap to reveal"
5972
6133
  ]
5973
6134
  }
5974
6135
  ) })
5975
6136
  ] }),
5976
- hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6137
+ hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5977
6138
  Button,
5978
6139
  {
5979
6140
  type: "button",
@@ -5982,7 +6143,7 @@ function RecoveryPhraseCard({
5982
6143
  onClick: onCopy,
5983
6144
  className: "w-full",
5984
6145
  children: [
5985
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6146
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
5986
6147
  "Copy to clipboard"
5987
6148
  ]
5988
6149
  }
@@ -5991,7 +6152,7 @@ function RecoveryPhraseCard({
5991
6152
  }
5992
6153
 
5993
6154
  // src/web/components/settings-selector-row.tsx
5994
- var import_jsx_runtime62 = require("react/jsx-runtime");
6155
+ var import_jsx_runtime63 = require("react/jsx-runtime");
5995
6156
  function SettingsSelectorRow({
5996
6157
  icon,
5997
6158
  title,
@@ -6000,9 +6161,9 @@ function SettingsSelectorRow({
6000
6161
  className,
6001
6162
  iconClassName
6002
6163
  }) {
6003
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
6004
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6005
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6164
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
6165
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6166
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6006
6167
  "div",
6007
6168
  {
6008
6169
  className: cn(
@@ -6012,17 +6173,17 @@ function SettingsSelectorRow({
6012
6173
  children: icon
6013
6174
  }
6014
6175
  ),
6015
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
6016
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
6017
- description && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
6176
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
6177
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
6178
+ description && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
6018
6179
  ] })
6019
6180
  ] }),
6020
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "shrink-0", children: control })
6181
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "shrink-0", children: control })
6021
6182
  ] });
6022
6183
  }
6023
6184
 
6024
6185
  // src/web/components/bottom-sheet.tsx
6025
- var import_jsx_runtime63 = require("react/jsx-runtime");
6186
+ var import_jsx_runtime64 = require("react/jsx-runtime");
6026
6187
  function BottomSheet({
6027
6188
  open,
6028
6189
  title,
@@ -6038,7 +6199,7 @@ function BottomSheet({
6038
6199
  const handleBackdropClick = (event) => {
6039
6200
  if (closeOnBackdrop && event.target === event.currentTarget) onClose?.();
6040
6201
  };
6041
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6202
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6042
6203
  "div",
6043
6204
  {
6044
6205
  className: cn(
@@ -6046,7 +6207,7 @@ function BottomSheet({
6046
6207
  className
6047
6208
  ),
6048
6209
  onClick: handleBackdropClick,
6049
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
6210
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
6050
6211
  "div",
6051
6212
  {
6052
6213
  className: cn(
@@ -6054,13 +6215,13 @@ function BottomSheet({
6054
6215
  contentClassName
6055
6216
  ),
6056
6217
  children: [
6057
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
6058
- (title || icon) && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
6218
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
6219
+ (title || icon) && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
6059
6220
  icon,
6060
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
6221
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
6061
6222
  ] }),
6062
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
6063
- actions && actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
6223
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
6224
+ actions && actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
6064
6225
  Button,
6065
6226
  {
6066
6227
  type: "button",
@@ -6070,7 +6231,7 @@ function BottomSheet({
6070
6231
  onClick: action.onClick,
6071
6232
  disabled: action.disabled,
6072
6233
  children: [
6073
- action.icon && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
6234
+ action.icon && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
6074
6235
  action.label
6075
6236
  ]
6076
6237
  },
@@ -6084,7 +6245,7 @@ function BottomSheet({
6084
6245
  }
6085
6246
 
6086
6247
  // src/web/components/disclosure-card.tsx
6087
- var import_jsx_runtime64 = require("react/jsx-runtime");
6248
+ var import_jsx_runtime65 = require("react/jsx-runtime");
6088
6249
  function DisclosureCard({
6089
6250
  title,
6090
6251
  children,
@@ -6095,8 +6256,8 @@ function DisclosureCard({
6095
6256
  triggerClassName,
6096
6257
  contentClassName
6097
6258
  }) {
6098
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className, children: [
6099
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
6259
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className, children: [
6260
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
6100
6261
  "button",
6101
6262
  {
6102
6263
  type: "button",
@@ -6106,11 +6267,11 @@ function DisclosureCard({
6106
6267
  triggerClassName
6107
6268
  ),
6108
6269
  children: [
6109
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
6270
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
6110
6271
  icon,
6111
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
6272
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
6112
6273
  ] }),
6113
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6274
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6114
6275
  Icon,
6115
6276
  {
6116
6277
  name: open ? "expand_less" : "expand_more",
@@ -6120,7 +6281,7 @@ function DisclosureCard({
6120
6281
  ]
6121
6282
  }
6122
6283
  ),
6123
- open && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6284
+ open && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6124
6285
  "div",
6125
6286
  {
6126
6287
  className: cn(
@@ -6134,7 +6295,7 @@ function DisclosureCard({
6134
6295
  }
6135
6296
 
6136
6297
  // src/web/components/stepper-number-input.tsx
6137
- var import_jsx_runtime65 = require("react/jsx-runtime");
6298
+ var import_jsx_runtime66 = require("react/jsx-runtime");
6138
6299
  function StepperNumberInput({
6139
6300
  value,
6140
6301
  onChange,
@@ -6151,7 +6312,7 @@ function StepperNumberInput({
6151
6312
  const bounded = max === void 0 ? boundedMin : Math.min(max, boundedMin);
6152
6313
  onChange(Number.isFinite(bounded) ? bounded : min ?? 0);
6153
6314
  };
6154
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
6315
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
6155
6316
  "div",
6156
6317
  {
6157
6318
  className: cn(
@@ -6159,7 +6320,7 @@ function StepperNumberInput({
6159
6320
  className
6160
6321
  ),
6161
6322
  children: [
6162
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6323
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6163
6324
  "button",
6164
6325
  {
6165
6326
  type: "button",
@@ -6167,10 +6328,10 @@ function StepperNumberInput({
6167
6328
  disabled: disabled || min !== void 0 && value <= min,
6168
6329
  onClick: () => clamp(value - step),
6169
6330
  "aria-label": "Decrease",
6170
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Icon, { name: "remove", className: "text-icon-md" })
6331
+ children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: "remove", className: "text-icon-md" })
6171
6332
  }
6172
6333
  ),
6173
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6334
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6174
6335
  "input",
6175
6336
  {
6176
6337
  type: "number",
@@ -6187,7 +6348,7 @@ function StepperNumberInput({
6187
6348
  )
6188
6349
  }
6189
6350
  ),
6190
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
6351
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6191
6352
  "button",
6192
6353
  {
6193
6354
  type: "button",
@@ -6195,7 +6356,7 @@ function StepperNumberInput({
6195
6356
  disabled: disabled || max !== void 0 && value >= max,
6196
6357
  onClick: () => clamp(value + step),
6197
6358
  "aria-label": "Increase",
6198
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Icon, { name: "add", className: "text-icon-md" })
6359
+ children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: "add", className: "text-icon-md" })
6199
6360
  }
6200
6361
  )
6201
6362
  ]
@@ -6204,7 +6365,7 @@ function StepperNumberInput({
6204
6365
  }
6205
6366
 
6206
6367
  // src/web/components/metric-card.tsx
6207
- var import_jsx_runtime66 = require("react/jsx-runtime");
6368
+ var import_jsx_runtime67 = require("react/jsx-runtime");
6208
6369
  var toneClasses2 = {
6209
6370
  primary: "bg-primary/10 text-primary",
6210
6371
  purple: "bg-network-arkade/10 text-network-arkade",
@@ -6222,27 +6383,27 @@ function MetricCard({
6222
6383
  tone = "muted",
6223
6384
  className
6224
6385
  }) {
6225
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: cn("space-y-1 rounded-xl bg-card/70 p-2.5", className), children: [
6226
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center gap-1.5", children: [
6227
- icon && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
6228
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
6386
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: cn("space-y-1 rounded-xl bg-card/70 p-2.5", className), children: [
6387
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-1.5", children: [
6388
+ icon && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
6389
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
6229
6390
  ] }),
6230
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-sm font-bold tabular-nums text-foreground", children: value }),
6231
- description && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-xxs text-white/45", children: description })
6391
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-sm font-bold tabular-nums text-foreground", children: value }),
6392
+ description && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xxs text-white/45", children: description })
6232
6393
  ] });
6233
6394
  }
6234
6395
 
6235
6396
  // src/web/components/filter-chip-group.tsx
6236
- var import_jsx_runtime67 = require("react/jsx-runtime");
6397
+ var import_jsx_runtime68 = require("react/jsx-runtime");
6237
6398
  function FilterChipGroup({
6238
6399
  options,
6239
6400
  value,
6240
6401
  onChange,
6241
6402
  className
6242
6403
  }) {
6243
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
6404
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
6244
6405
  const active = option.value === value;
6245
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6406
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6246
6407
  "button",
6247
6408
  {
6248
6409
  type: "button",
@@ -6256,7 +6417,7 @@ function FilterChipGroup({
6256
6417
  children: [
6257
6418
  option.icon,
6258
6419
  option.label,
6259
- option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6420
+ option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6260
6421
  "span",
6261
6422
  {
6262
6423
  className: cn(
@@ -6274,7 +6435,7 @@ function FilterChipGroup({
6274
6435
  }
6275
6436
 
6276
6437
  // src/web/components/activity-row.tsx
6277
- var import_jsx_runtime68 = require("react/jsx-runtime");
6438
+ var import_jsx_runtime69 = require("react/jsx-runtime");
6278
6439
  var directionUi = {
6279
6440
  inbound: { icon: "south_west", iconClass: "bg-primary/20 text-primary", amountClass: "text-primary", sign: "+" },
6280
6441
  outbound: { icon: "north_east", iconClass: "bg-white/10 text-muted-foreground", amountClass: "text-foreground", sign: "-" },
@@ -6294,29 +6455,29 @@ function ActivityRow({
6294
6455
  className
6295
6456
  }) {
6296
6457
  const ui = directionUi[direction];
6297
- const content = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
6298
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
6299
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6458
+ const content = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
6459
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
6460
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6300
6461
  StatusIconBadge,
6301
6462
  {
6302
6463
  status,
6303
- icon: /* @__PURE__ */ (0, import_jsx_runtime68.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_runtime68.jsx)(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon })
6464
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.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_runtime69.jsx)(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon })
6304
6465
  }
6305
6466
  ),
6306
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
6307
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
6308
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
6467
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
6468
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
6469
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
6309
6470
  networkBadge
6310
6471
  ] }),
6311
- timestamp && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "mt-1 flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp }) })
6472
+ timestamp && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "mt-1 flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp }) })
6312
6473
  ] })
6313
6474
  ] }),
6314
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "shrink-0 text-right", children: [
6315
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
6475
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "shrink-0 text-right", children: [
6476
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
6316
6477
  ui.sign,
6317
6478
  amount
6318
6479
  ] }),
6319
- unit && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
6480
+ unit && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
6320
6481
  ] })
6321
6482
  ] });
6322
6483
  const rowClassName = cn(
@@ -6325,23 +6486,23 @@ function ActivityRow({
6325
6486
  className
6326
6487
  );
6327
6488
  if (onClick) {
6328
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
6489
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
6329
6490
  }
6330
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: rowClassName, children: content });
6491
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: rowClassName, children: content });
6331
6492
  }
6332
6493
 
6333
6494
  // src/web/components/skeleton.tsx
6334
- var import_jsx_runtime69 = require("react/jsx-runtime");
6495
+ var import_jsx_runtime70 = require("react/jsx-runtime");
6335
6496
  var toneClass2 = {
6336
6497
  primary: "bg-white/10",
6337
6498
  secondary: "bg-white/5",
6338
6499
  card: "bg-white/[0.06]"
6339
6500
  };
6340
6501
  function Skeleton({ className, tone = "primary" }) {
6341
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
6502
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
6342
6503
  }
6343
6504
  function ListSkeletonRows({ rows = 3, className, rowClassName }) {
6344
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6505
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
6345
6506
  "div",
6346
6507
  {
6347
6508
  className: cn(
@@ -6349,14 +6510,14 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
6349
6510
  rowClassName
6350
6511
  ),
6351
6512
  children: [
6352
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
6353
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex-1 space-y-2", children: [
6354
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Skeleton, { className: "h-3 w-28" }),
6355
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
6513
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
6514
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex-1 space-y-2", children: [
6515
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Skeleton, { className: "h-3 w-28" }),
6516
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
6356
6517
  ] }),
6357
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
6358
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Skeleton, { className: "h-3 w-14" }),
6359
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
6518
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
6519
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Skeleton, { className: "h-3 w-14" }),
6520
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
6360
6521
  ] })
6361
6522
  ]
6362
6523
  },
@@ -6365,7 +6526,7 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
6365
6526
  }
6366
6527
 
6367
6528
  // src/web/components/secret-reveal-card.tsx
6368
- var import_jsx_runtime70 = require("react/jsx-runtime");
6529
+ var import_jsx_runtime71 = require("react/jsx-runtime");
6369
6530
  function SecretRevealCard({
6370
6531
  value,
6371
6532
  revealed,
@@ -6377,9 +6538,9 @@ function SecretRevealCard({
6377
6538
  className,
6378
6539
  valueClassName
6379
6540
  }) {
6380
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: cn("space-y-3", className), children: [
6381
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "relative", children: [
6382
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6541
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: cn("space-y-3", className), children: [
6542
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "relative", children: [
6543
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6383
6544
  "p",
6384
6545
  {
6385
6546
  className: cn(
@@ -6390,40 +6551,40 @@ function SecretRevealCard({
6390
6551
  children: value
6391
6552
  }
6392
6553
  ) }),
6393
- !revealed && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
6554
+ !revealed && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6394
6555
  "button",
6395
6556
  {
6396
6557
  type: "button",
6397
6558
  onClick: () => onRevealChange(true),
6398
6559
  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",
6399
6560
  children: [
6400
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6561
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6401
6562
  revealLabel
6402
6563
  ]
6403
6564
  }
6404
6565
  ) })
6405
6566
  ] }),
6406
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex gap-2", children: [
6407
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
6567
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex gap-2", children: [
6568
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6408
6569
  "button",
6409
6570
  {
6410
6571
  type: "button",
6411
6572
  onClick: () => onRevealChange(!revealed),
6412
6573
  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",
6413
6574
  children: [
6414
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
6575
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
6415
6576
  revealed ? hideLabel : revealLabel
6416
6577
  ]
6417
6578
  }
6418
6579
  ),
6419
- revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
6580
+ revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6420
6581
  "button",
6421
6582
  {
6422
6583
  type: "button",
6423
6584
  onClick: onCopy,
6424
6585
  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",
6425
6586
  children: [
6426
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6587
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6427
6588
  copyLabel
6428
6589
  ]
6429
6590
  }
@@ -6433,7 +6594,7 @@ function SecretRevealCard({
6433
6594
  }
6434
6595
 
6435
6596
  // src/web/components/settings-section-card.tsx
6436
- var import_jsx_runtime71 = require("react/jsx-runtime");
6597
+ var import_jsx_runtime72 = require("react/jsx-runtime");
6437
6598
  function SettingsSectionCard({
6438
6599
  title,
6439
6600
  description,
@@ -6442,15 +6603,15 @@ function SettingsSectionCard({
6442
6603
  className,
6443
6604
  bodyClassName
6444
6605
  }) {
6445
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card/70 p-4", className), children: [
6446
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
6447
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "min-w-0 flex-1", children: [
6448
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
6449
- description && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
6606
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card/70 p-4", className), children: [
6607
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
6608
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "min-w-0 flex-1", children: [
6609
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
6610
+ description && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
6450
6611
  ] }),
6451
6612
  badge
6452
6613
  ] }),
6453
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: bodyClassName, children })
6614
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: bodyClassName, children })
6454
6615
  ] });
6455
6616
  }
6456
6617
  var badgeToneClass = {
@@ -6462,7 +6623,7 @@ var badgeToneClass = {
6462
6623
  muted: "border-white/10 bg-white/[0.05] text-white/55"
6463
6624
  };
6464
6625
  function ToneBadge({ children, tone = "muted", className }) {
6465
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6626
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6466
6627
  "span",
6467
6628
  {
6468
6629
  className: cn(
@@ -6476,7 +6637,7 @@ function ToneBadge({ children, tone = "muted", className }) {
6476
6637
  }
6477
6638
 
6478
6639
  // src/web/components/selectable-card.tsx
6479
- var import_jsx_runtime72 = require("react/jsx-runtime");
6640
+ var import_jsx_runtime73 = require("react/jsx-runtime");
6480
6641
  function SelectableCard({
6481
6642
  selected,
6482
6643
  onClick,
@@ -6488,28 +6649,28 @@ function SelectableCard({
6488
6649
  children,
6489
6650
  className
6490
6651
  }) {
6491
- const content = /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
6492
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6493
- indicator && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6652
+ const content = /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
6653
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6654
+ indicator && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6494
6655
  "div",
6495
6656
  {
6496
6657
  className: cn(
6497
6658
  "mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors",
6498
6659
  selected ? "border-primary bg-primary" : "border-white/20"
6499
6660
  ),
6500
- children: selected && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "size-2 rounded-full bg-background" })
6661
+ children: selected && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "size-2 rounded-full bg-background" })
6501
6662
  }
6502
6663
  ),
6503
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "min-w-0 flex-1", children: [
6504
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
6505
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
6664
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "min-w-0 flex-1", children: [
6665
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
6666
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
6506
6667
  badge
6507
6668
  ] }),
6508
- description && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6669
+ description && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6509
6670
  children
6510
6671
  ] })
6511
6672
  ] }),
6512
- preview && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "shrink-0 text-right", children: preview })
6673
+ preview && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "shrink-0 text-right", children: preview })
6513
6674
  ] });
6514
6675
  const cardClassName = cn(
6515
6676
  "w-full rounded-2xl border p-4 text-left transition-all duration-200",
@@ -6517,14 +6678,14 @@ function SelectableCard({
6517
6678
  className
6518
6679
  );
6519
6680
  if (onClick) {
6520
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
6681
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
6521
6682
  }
6522
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: cardClassName, children: content });
6683
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: cardClassName, children: content });
6523
6684
  }
6524
6685
 
6525
6686
  // src/web/components/mobile-hero-animation.tsx
6526
6687
  var import_react13 = require("react");
6527
- var import_jsx_runtime73 = require("react/jsx-runtime");
6688
+ var import_jsx_runtime74 = require("react/jsx-runtime");
6528
6689
  var PROTOCOLS = [
6529
6690
  { name: "Bitcoin", network: "Bitcoin", iconSuffix: "bitcoin/bitcoin-logo.svg" },
6530
6691
  { name: "Lightning", network: "LN", iconSuffix: "lightning/lightning.svg" },
@@ -6583,15 +6744,15 @@ var MobileHeroAnimation = ({
6583
6744
  }, []);
6584
6745
  const anim = !reducedMotion && isVisible;
6585
6746
  const scale = size / 280;
6586
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
6747
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
6587
6748
  "div",
6588
6749
  {
6589
6750
  ref: containerRef,
6590
6751
  className,
6591
6752
  style: { position: "relative", width: size, height: size },
6592
6753
  children: [
6593
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("style", { children: KEYFRAMES }),
6594
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { style: {
6754
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("style", { children: KEYFRAMES }),
6755
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { style: {
6595
6756
  position: "absolute",
6596
6757
  top: 0,
6597
6758
  left: 0,
@@ -6600,7 +6761,7 @@ var MobileHeroAnimation = ({
6600
6761
  transformOrigin: "top left",
6601
6762
  transform: scale !== 1 ? `scale(${scale})` : void 0
6602
6763
  }, children: [
6603
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
6764
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
6604
6765
  "svg",
6605
6766
  {
6606
6767
  viewBox: "0 0 280 280",
@@ -6609,34 +6770,34 @@ var MobileHeroAnimation = ({
6609
6770
  style: { position: "absolute", inset: 0 },
6610
6771
  xmlns: "http://www.w3.org/2000/svg",
6611
6772
  children: [
6612
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("defs", { children: [
6613
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6614
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6615
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6616
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6773
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("defs", { children: [
6774
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6775
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6776
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6777
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6617
6778
  ] }),
6618
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6619
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6620
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6779
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6780
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6781
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6621
6782
  ] }),
6622
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6623
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6624
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6783
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6784
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6785
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6625
6786
  ] }),
6626
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6627
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6628
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("feMerge", { children: [
6629
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "blur" }),
6630
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "SourceGraphic" })
6787
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6788
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6789
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("feMerge", { children: [
6790
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feMergeNode", { in: "blur" }),
6791
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feMergeNode", { in: "SourceGraphic" })
6631
6792
  ] })
6632
6793
  ] })
6633
6794
  ] }),
6634
- /* @__PURE__ */ (0, import_jsx_runtime73.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_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6635
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
6636
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6795
+ /* @__PURE__ */ (0, import_jsx_runtime74.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_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
6796
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
6797
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6637
6798
  ] }) }),
6638
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
6639
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6799
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
6800
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
6640
6801
  "g",
6641
6802
  {
6642
6803
  style: {
@@ -6654,8 +6815,8 @@ var MobileHeroAnimation = ({
6654
6815
  const y2 = C + dy * (ORBIT_R - BADGE_HALF);
6655
6816
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6656
6817
  const dur = `${2 + i * 0.3}s`;
6657
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6658
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6818
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
6819
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
6659
6820
  "line",
6660
6821
  {
6661
6822
  x1,
@@ -6666,30 +6827,30 @@ var MobileHeroAnimation = ({
6666
6827
  strokeWidth: "0.8",
6667
6828
  strokeDasharray: "2 4",
6668
6829
  opacity: "0.25",
6669
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6830
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6670
6831
  }
6671
6832
  ),
6672
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6673
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6674
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6675
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6676
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6833
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
6834
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6835
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6836
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6837
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6677
6838
  ] }) })
6678
6839
  ] }, `line-${i}`);
6679
6840
  })
6680
6841
  }
6681
6842
  ),
6682
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
6683
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6684
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6685
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6843
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
6844
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
6845
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6846
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6686
6847
  ] }) }),
6687
- /* @__PURE__ */ (0, import_jsx_runtime73.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_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6688
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6689
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6848
+ /* @__PURE__ */ (0, import_jsx_runtime74.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_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
6849
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6850
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6690
6851
  ] }) }),
6691
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6692
- anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6852
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
6853
+ anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
6693
6854
  "animateTransform",
6694
6855
  {
6695
6856
  attributeName: "transform",
@@ -6701,13 +6862,13 @@ var MobileHeroAnimation = ({
6701
6862
  additive: "sum"
6702
6863
  }
6703
6864
  ),
6704
- /* @__PURE__ */ (0, import_jsx_runtime73.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_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6705
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6706
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6865
+ /* @__PURE__ */ (0, import_jsx_runtime74.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_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
6866
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6867
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6707
6868
  ] }) })
6708
6869
  ] }) }),
6709
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6710
- anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6870
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
6871
+ anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
6711
6872
  "animateTransform",
6712
6873
  {
6713
6874
  attributeName: "transform",
@@ -6719,19 +6880,19 @@ var MobileHeroAnimation = ({
6719
6880
  additive: "sum"
6720
6881
  }
6721
6882
  ),
6722
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
6883
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
6723
6884
  ] }) }),
6724
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6725
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6726
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6727
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6728
- /* @__PURE__ */ (0, import_jsx_runtime73.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" }),
6729
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6885
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6886
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6887
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6888
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6889
+ /* @__PURE__ */ (0, import_jsx_runtime74.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" }),
6890
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6730
6891
  ] })
6731
6892
  ]
6732
6893
  }
6733
6894
  ),
6734
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { style: {
6895
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { style: {
6735
6896
  position: "absolute",
6736
6897
  inset: 0,
6737
6898
  width: 280,
@@ -6742,7 +6903,7 @@ var MobileHeroAnimation = ({
6742
6903
  const x = C + Math.cos(angle) * ORBIT_R - BADGE_HALF;
6743
6904
  const y = C + Math.sin(angle) * ORBIT_R - BADGE_HALF;
6744
6905
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6745
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6906
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
6746
6907
  "div",
6747
6908
  {
6748
6909
  style: {
@@ -6753,7 +6914,7 @@ var MobileHeroAnimation = ({
6753
6914
  height: BADGE_SIZE,
6754
6915
  animation: anim ? "mha-counter-spin 20s linear infinite" : "none"
6755
6916
  },
6756
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { style: {
6917
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { style: {
6757
6918
  width: "100%",
6758
6919
  height: "100%",
6759
6920
  borderRadius: "50%",
@@ -6764,7 +6925,7 @@ var MobileHeroAnimation = ({
6764
6925
  display: "flex",
6765
6926
  alignItems: "center",
6766
6927
  justifyContent: "center"
6767
- }, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6928
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
6768
6929
  "img",
6769
6930
  {
6770
6931
  src: iconBasePath ? `${iconBasePath}/${protocol.iconSuffix}` : protocolIcons[protocol.network] ?? protocol.iconSuffix,
@@ -6784,7 +6945,7 @@ var MobileHeroAnimation = ({
6784
6945
 
6785
6946
  // src/web/components/kaleidoscope-hero-animation.tsx
6786
6947
  var import_react14 = require("react");
6787
- var import_jsx_runtime74 = require("react/jsx-runtime");
6948
+ var import_jsx_runtime75 = require("react/jsx-runtime");
6788
6949
  var PROTOCOLS2 = [
6789
6950
  { name: "Bitcoin L1", network: "L1", color: "#F7931A", glowColor: "rgba(247,147,26,0.5)" },
6790
6951
  { name: "Lightning", network: "LN", color: "#fbbf24", glowColor: "rgba(251,191,36,0.5)" },
@@ -6889,13 +7050,13 @@ var KaleidoScopeHeroAnimation = ({
6889
7050
  const angle = Math.PI * 2 * i / 7 - Math.PI / 2;
6890
7051
  return { x: c + orbitR * Math.cos(angle), y: c + orbitR * Math.sin(angle) };
6891
7052
  });
6892
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7053
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
6893
7054
  "div",
6894
7055
  {
6895
7056
  ref: containerRef,
6896
7057
  className: `relative ${className}`,
6897
7058
  style: size ? { width: size, height: size } : void 0,
6898
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7059
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
6899
7060
  "svg",
6900
7061
  {
6901
7062
  viewBox: "0 0 500 500",
@@ -6904,60 +7065,60 @@ var KaleidoScopeHeroAnimation = ({
6904
7065
  xmlns: "http://www.w3.org/2000/svg",
6905
7066
  className: "overflow-visible",
6906
7067
  children: [
6907
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("defs", { children: [
6908
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6909
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
6910
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
7068
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("defs", { children: [
7069
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
7070
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
7071
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
6911
7072
  ] }),
6912
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6913
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
6914
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
7073
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
7074
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
7075
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
6915
7076
  ] }),
6916
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6917
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
6918
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
7077
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
7078
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
7079
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
6919
7080
  ] }),
6920
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6921
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6922
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
7081
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
7082
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
7083
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6923
7084
  ] }),
6924
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6925
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
6926
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
7085
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
7086
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
7087
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
6927
7088
  ] }),
6928
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6929
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6930
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
7089
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
7090
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
7091
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6931
7092
  ] }),
6932
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6933
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6934
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6935
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
7093
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
7094
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
7095
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
7096
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6936
7097
  ] }),
6937
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6938
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6939
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6940
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
7098
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
7099
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
7100
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
7101
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6941
7102
  ] }),
6942
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6943
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6944
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("feMerge", { children: [
6945
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feMergeNode", { in: "blur" }),
6946
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feMergeNode", { in: "SourceGraphic" })
7103
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
7104
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
7105
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("feMerge", { children: [
7106
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("feMergeNode", { in: "blur" }),
7107
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("feMergeNode", { in: "SourceGraphic" })
6947
7108
  ] })
6948
7109
  ] }),
6949
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6950
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6951
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("feMerge", { children: [
6952
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feMergeNode", { in: "blur" }),
6953
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("feMergeNode", { in: "SourceGraphic" })
7110
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
7111
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
7112
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("feMerge", { children: [
7113
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("feMergeNode", { in: "blur" }),
7114
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("feMergeNode", { in: "SourceGraphic" })
6954
7115
  ] })
6955
7116
  ] })
6956
7117
  ] }),
6957
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6958
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: px(20), children: [
6959
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
6960
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7118
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
7119
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: px(20), children: [
7120
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7121
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
6961
7122
  "animateTransform",
6962
7123
  {
6963
7124
  attributeName: "transform",
@@ -6970,14 +7131,14 @@ var KaleidoScopeHeroAnimation = ({
6970
7131
  ),
6971
7132
  Array.from({ length: 6 }, (_, i) => {
6972
7133
  const a = Math.PI / 3 * i;
6973
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6974
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6975
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
7134
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
7135
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
7136
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
6976
7137
  ] }, `ha-${i}`);
6977
7138
  }),
6978
7139
  Array.from({ length: 6 }, (_, i) => {
6979
7140
  const a = Math.PI / 3 * i + Math.PI / 6;
6980
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7141
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
6981
7142
  "path",
6982
7143
  {
6983
7144
  d: triPath(14),
@@ -6990,7 +7151,7 @@ var KaleidoScopeHeroAnimation = ({
6990
7151
  }),
6991
7152
  Array.from({ length: 12 }, (_, i) => {
6992
7153
  const a = Math.PI / 6 * i;
6993
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7154
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
6994
7155
  "circle",
6995
7156
  {
6996
7157
  cx: c + outerR1 * 0.92 * Math.cos(a),
@@ -6998,14 +7159,14 @@ var KaleidoScopeHeroAnimation = ({
6998
7159
  r: "1.5",
6999
7160
  fill: "url(#kh-grad-a)",
7000
7161
  opacity: "0.15",
7001
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
7162
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
7002
7163
  },
7003
7164
  `od-${i}`
7004
7165
  );
7005
7166
  })
7006
7167
  ] }),
7007
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7008
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7168
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7169
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7009
7170
  "animateTransform",
7010
7171
  {
7011
7172
  attributeName: "transform",
@@ -7018,28 +7179,28 @@ var KaleidoScopeHeroAnimation = ({
7018
7179
  ),
7019
7180
  Array.from({ length: 6 }, (_, i) => {
7020
7181
  const a = Math.PI / 3 * i + Math.PI / 6;
7021
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
7022
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
7023
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
7182
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
7183
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
7184
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
7024
7185
  ] }, `hb-${i}`);
7025
7186
  }),
7026
7187
  Array.from({ length: 6 }, (_, i) => {
7027
7188
  const a = Math.PI / 3 * i;
7028
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7189
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7029
7190
  "path",
7030
7191
  {
7031
7192
  d: diamondPath(8, 16),
7032
7193
  transform: `translate(${c + outerR2 * 0.85 * Math.cos(a)},${c + outerR2 * 0.85 * Math.sin(a)}) rotate(${i * 60})`,
7033
7194
  fill: "url(#kh-grad-b)",
7034
7195
  opacity: "0.08",
7035
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
7196
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
7036
7197
  },
7037
7198
  `db-${i}`
7038
7199
  );
7039
7200
  })
7040
7201
  ] }),
7041
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7042
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7202
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7203
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7043
7204
  "animateTransform",
7044
7205
  {
7045
7206
  attributeName: "transform",
@@ -7053,23 +7214,23 @@ var KaleidoScopeHeroAnimation = ({
7053
7214
  Array.from({ length: 12 }, (_, i) => {
7054
7215
  const a = Math.PI / 6 * i;
7055
7216
  const r = outerR1 * (0.6 + i % 2 * 0.15);
7056
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7217
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7057
7218
  "path",
7058
7219
  {
7059
7220
  d: triPath(10),
7060
7221
  transform: `translate(${c + r * Math.cos(a)},${c + r * Math.sin(a)}) rotate(${i * 30 + 15})`,
7061
7222
  fill: "url(#kh-grad-c)",
7062
7223
  opacity: "0.05",
7063
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
7224
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
7064
7225
  },
7065
7226
  `tc-${i}`
7066
7227
  );
7067
7228
  })
7068
7229
  ] })
7069
7230
  ] }),
7070
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: px(14), children: [
7071
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7072
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7231
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: px(14), children: [
7232
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7233
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7073
7234
  "animateTransform",
7074
7235
  {
7075
7236
  attributeName: "transform",
@@ -7082,9 +7243,9 @@ var KaleidoScopeHeroAnimation = ({
7082
7243
  ),
7083
7244
  Array.from({ length: 12 }, (_, i) => {
7084
7245
  const a = Math.PI / 6 * i;
7085
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
7086
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
7087
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
7246
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
7247
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
7248
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
7088
7249
  ] }, `mh-${i}`);
7089
7250
  })
7090
7251
  ] }),
@@ -7095,7 +7256,7 @@ var KaleidoScopeHeroAnimation = ({
7095
7256
  const y1 = c + midR * Math.sin(a1);
7096
7257
  const x2 = c + midR * Math.cos(a2);
7097
7258
  const y2 = c + midR * Math.sin(a2);
7098
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7259
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7099
7260
  "path",
7100
7261
  {
7101
7262
  d: `M${x1},${y1} Q${c},${c} ${x2},${y2}`,
@@ -7104,17 +7265,17 @@ var KaleidoScopeHeroAnimation = ({
7104
7265
  strokeWidth: "0.5",
7105
7266
  strokeDasharray: "3 5",
7106
7267
  opacity: "0.1",
7107
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
7268
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
7108
7269
  },
7109
7270
  `arc-${i}`
7110
7271
  );
7111
7272
  })
7112
7273
  ] }),
7113
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: px(10), children: [
7114
- /* @__PURE__ */ (0, import_jsx_runtime74.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_runtime74.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
7115
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
7116
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7117
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7274
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: px(10), children: [
7275
+ /* @__PURE__ */ (0, import_jsx_runtime75.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_runtime75.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
7276
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
7277
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7278
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7118
7279
  "animateTransform",
7119
7280
  {
7120
7281
  attributeName: "transform",
@@ -7129,8 +7290,8 @@ var KaleidoScopeHeroAnimation = ({
7129
7290
  const angle = Math.atan2(pos.y - c, pos.x - c);
7130
7291
  const dx = Math.cos(angle);
7131
7292
  const dy = Math.sin(angle);
7132
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7133
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7293
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7294
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7134
7295
  "line",
7135
7296
  {
7136
7297
  x1: c + dx * 52,
@@ -7141,14 +7302,14 @@ var KaleidoScopeHeroAnimation = ({
7141
7302
  strokeWidth: "0.8",
7142
7303
  strokeDasharray: "2 4",
7143
7304
  opacity: "0.2",
7144
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
7305
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
7145
7306
  }
7146
7307
  ),
7147
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7148
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
7149
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
7150
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
7151
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
7308
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7309
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
7310
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
7311
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
7312
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
7152
7313
  ] }) })
7153
7314
  ] }, `conn-${i}`);
7154
7315
  }),
@@ -7156,14 +7317,14 @@ var KaleidoScopeHeroAnimation = ({
7156
7317
  const pos = iconPositions[i];
7157
7318
  const labelWidth = Math.max(proto.name.length * 5.5 + 10, 32);
7158
7319
  const isHovered = hoveredProtocol === proto.name;
7159
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7320
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7160
7321
  "g",
7161
7322
  {
7162
7323
  onMouseEnter: () => setHoveredProtocol(proto.name),
7163
7324
  onMouseLeave: () => setHoveredProtocol(null),
7164
7325
  style: { cursor: "pointer" },
7165
7326
  children: [
7166
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7327
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7167
7328
  "animateTransform",
7168
7329
  {
7169
7330
  attributeName: "transform",
@@ -7174,7 +7335,7 @@ var KaleidoScopeHeroAnimation = ({
7174
7335
  repeatCount: "indefinite"
7175
7336
  }
7176
7337
  ),
7177
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7338
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7178
7339
  "circle",
7179
7340
  {
7180
7341
  cx: "0",
@@ -7184,13 +7345,13 @@ var KaleidoScopeHeroAnimation = ({
7184
7345
  stroke: proto.color,
7185
7346
  strokeWidth: "1",
7186
7347
  opacity: "0",
7187
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7188
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
7189
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
7348
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7349
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
7350
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
7190
7351
  ] })
7191
7352
  }
7192
7353
  ),
7193
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7354
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7194
7355
  "circle",
7195
7356
  {
7196
7357
  cx: "0",
@@ -7200,10 +7361,10 @@ var KaleidoScopeHeroAnimation = ({
7200
7361
  stroke: proto.color,
7201
7362
  strokeWidth: "1",
7202
7363
  opacity: "0.15",
7203
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
7364
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
7204
7365
  }
7205
7366
  ),
7206
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7367
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7207
7368
  "circle",
7208
7369
  {
7209
7370
  cx: "0",
@@ -7213,10 +7374,10 @@ var KaleidoScopeHeroAnimation = ({
7213
7374
  stroke: proto.color,
7214
7375
  strokeWidth: "1.5",
7215
7376
  opacity: "0.25",
7216
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
7377
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
7217
7378
  }
7218
7379
  ),
7219
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7380
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7220
7381
  "circle",
7221
7382
  {
7222
7383
  cx: "0",
@@ -7227,8 +7388,8 @@ var KaleidoScopeHeroAnimation = ({
7227
7388
  strokeWidth: "1"
7228
7389
  }
7229
7390
  ),
7230
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
7231
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7391
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
7392
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7232
7393
  NetworkBadge,
7233
7394
  {
7234
7395
  network: proto.network,
@@ -7236,8 +7397,8 @@ var KaleidoScopeHeroAnimation = ({
7236
7397
  className: "w-full h-full"
7237
7398
  }
7238
7399
  ) }),
7239
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
7240
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7400
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
7401
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7241
7402
  "rect",
7242
7403
  {
7243
7404
  x: -labelWidth / 2,
@@ -7251,7 +7412,7 @@ var KaleidoScopeHeroAnimation = ({
7251
7412
  strokeOpacity: 0.4
7252
7413
  }
7253
7414
  ),
7254
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7415
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7255
7416
  "text",
7256
7417
  {
7257
7418
  x: "0",
@@ -7271,9 +7432,9 @@ var KaleidoScopeHeroAnimation = ({
7271
7432
  })
7272
7433
  ] })
7273
7434
  ] }),
7274
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: px(5), children: [
7275
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7276
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7435
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: px(5), children: [
7436
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7437
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7277
7438
  "animateTransform",
7278
7439
  {
7279
7440
  attributeName: "transform",
@@ -7286,28 +7447,28 @@ var KaleidoScopeHeroAnimation = ({
7286
7447
  ),
7287
7448
  Array.from({ length: 6 }, (_, i) => {
7288
7449
  const a = Math.PI / 3 * i;
7289
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7450
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7290
7451
  "path",
7291
7452
  {
7292
7453
  d: diamondPath(10, 22),
7293
7454
  transform: `translate(${c + innerR * Math.cos(a)},${c + innerR * Math.sin(a)}) rotate(${i * 60})`,
7294
7455
  fill: "url(#kh-gp)",
7295
7456
  opacity: "0.15",
7296
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
7457
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
7297
7458
  },
7298
7459
  `d-${i}`
7299
7460
  );
7300
7461
  }),
7301
7462
  Array.from({ length: 6 }, (_, i) => {
7302
7463
  const a = Math.PI / 3 * i + Math.PI / 6;
7303
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7464
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7304
7465
  "path",
7305
7466
  {
7306
7467
  d: triPath(8),
7307
7468
  transform: `translate(${c + innerR * 0.75 * Math.cos(a)},${c + innerR * 0.75 * Math.sin(a)}) rotate(${i * 60 + 30})`,
7308
7469
  fill: "url(#kh-oc)",
7309
7470
  opacity: "0.1",
7310
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
7471
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
7311
7472
  },
7312
7473
  `it-${i}`
7313
7474
  );
@@ -7315,7 +7476,7 @@ var KaleidoScopeHeroAnimation = ({
7315
7476
  Array.from({ length: 12 }, (_, i) => {
7316
7477
  const a = Math.PI / 6 * i;
7317
7478
  const r = innerR * (i % 2 === 0 ? 0.55 : 0.65);
7318
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7479
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7319
7480
  "circle",
7320
7481
  {
7321
7482
  cx: c + r * Math.cos(a),
@@ -7323,14 +7484,14 @@ var KaleidoScopeHeroAnimation = ({
7323
7484
  r: i % 2 === 0 ? 2 : 1.5,
7324
7485
  fill: "url(#kh-oc)",
7325
7486
  opacity: "0.2",
7326
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
7487
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
7327
7488
  },
7328
7489
  `id-${i}`
7329
7490
  );
7330
7491
  })
7331
7492
  ] }),
7332
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7333
- anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7493
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7494
+ anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7334
7495
  "animateTransform",
7335
7496
  {
7336
7497
  attributeName: "transform",
@@ -7343,27 +7504,27 @@ var KaleidoScopeHeroAnimation = ({
7343
7504
  ),
7344
7505
  Array.from({ length: 6 }, (_, i) => {
7345
7506
  const a = Math.PI / 3 * i + Math.PI / 6;
7346
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7507
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7347
7508
  "path",
7348
7509
  {
7349
7510
  d: hexPath2(6),
7350
7511
  transform: `translate(${c + innerR * 0.42 * Math.cos(a)},${c + innerR * 0.42 * Math.sin(a)})`,
7351
7512
  fill: "url(#kh-bp)",
7352
7513
  opacity: "0.1",
7353
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
7514
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
7354
7515
  },
7355
7516
  `ih-${i}`
7356
7517
  );
7357
7518
  })
7358
7519
  ] })
7359
7520
  ] }),
7360
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
7521
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
7361
7522
  const a = Math.PI * 2 * i / 16;
7362
7523
  const baseR = 60 + i % 4 * 45;
7363
7524
  const x = c + baseR * Math.cos(a);
7364
7525
  const y = c + baseR * Math.sin(a);
7365
7526
  const colors2 = ["#0e9dff", "#8a5cf6", "#22c55e", "#F7931A", "#06b6d4", "#15E99A"];
7366
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7527
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7367
7528
  "circle",
7368
7529
  {
7369
7530
  cx: x,
@@ -7371,26 +7532,26 @@ var KaleidoScopeHeroAnimation = ({
7371
7532
  r: 1 + i % 3 * 0.5,
7372
7533
  fill: colors2[i % colors2.length],
7373
7534
  opacity: "0",
7374
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7375
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
7376
- /* @__PURE__ */ (0, import_jsx_runtime74.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` }),
7377
- /* @__PURE__ */ (0, import_jsx_runtime74.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` })
7535
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7536
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
7537
+ /* @__PURE__ */ (0, import_jsx_runtime75.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` }),
7538
+ /* @__PURE__ */ (0, import_jsx_runtime75.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` })
7378
7539
  ] })
7379
7540
  },
7380
7541
  `p-${i}`
7381
7542
  );
7382
7543
  }) }),
7383
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { children: [
7384
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
7385
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7386
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
7387
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
7544
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { children: [
7545
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
7546
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7547
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
7548
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
7388
7549
  ] }) }),
7389
- /* @__PURE__ */ (0, import_jsx_runtime74.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_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7390
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
7391
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
7550
+ /* @__PURE__ */ (0, import_jsx_runtime75.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_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7551
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
7552
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
7392
7553
  ] }) }),
7393
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7554
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7394
7555
  "path",
7395
7556
  {
7396
7557
  d: hexPath2(50),
@@ -7400,13 +7561,13 @@ var KaleidoScopeHeroAnimation = ({
7400
7561
  strokeWidth: "1.5",
7401
7562
  opacity: "0.4",
7402
7563
  filter: "url(#kh-glow)",
7403
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7404
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
7405
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
7564
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7565
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
7566
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
7406
7567
  ] })
7407
7568
  }
7408
7569
  ),
7409
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7570
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7410
7571
  "path",
7411
7572
  {
7412
7573
  d: hexPath2(46),
@@ -7416,21 +7577,21 @@ var KaleidoScopeHeroAnimation = ({
7416
7577
  strokeWidth: "0.5"
7417
7578
  }
7418
7579
  ),
7419
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
7420
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
7421
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
7422
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
7423
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
7424
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
7425
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
7426
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
7427
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
7428
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
7429
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
7430
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
7431
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
7432
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
7433
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
7580
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
7581
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
7582
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
7583
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
7584
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
7585
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
7586
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
7587
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
7588
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
7589
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
7590
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
7591
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
7592
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
7593
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
7594
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
7434
7595
  ] })
7435
7596
  ] })
7436
7597
  ]
@@ -7583,7 +7744,7 @@ var colors = {
7583
7744
  };
7584
7745
 
7585
7746
  // src/web/components/deposit-ui-shared.tsx
7586
- var import_jsx_runtime75 = require("react/jsx-runtime");
7747
+ var import_jsx_runtime76 = require("react/jsx-runtime");
7587
7748
  var GLOW_ALPHA = "26";
7588
7749
  function qrGlowStyle(hex) {
7589
7750
  return { boxShadow: `0 0 30px ${hex}${GLOW_ALPHA}` };
@@ -7600,7 +7761,7 @@ var NETWORK_CONFIG = {
7600
7761
  // On-chain uses a chain-link glyph rather than the ₿ coin — the coin reads
7601
7762
  // as "the BTC asset", whereas this row is specifically the *on-chain* (L1)
7602
7763
  // receive rail alongside Lightning/Spark/Arkade, so a chain mark disambiguates.
7603
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7764
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7604
7765
  },
7605
7766
  lightning: {
7606
7767
  label: "Lightning",
@@ -7610,7 +7771,7 @@ var NETWORK_CONFIG = {
7610
7771
  border: "border-network-lightning/40",
7611
7772
  qrBorder: "border-network-lightning/30",
7612
7773
  qrGlow: qrGlowStyle(colors.network.lightning),
7613
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7774
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7614
7775
  },
7615
7776
  spark: {
7616
7777
  label: "Spark",
@@ -7620,7 +7781,7 @@ var NETWORK_CONFIG = {
7620
7781
  border: "border-info/40",
7621
7782
  qrBorder: "border-info/30",
7622
7783
  qrGlow: qrGlowStyle(colors.info),
7623
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7784
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7624
7785
  },
7625
7786
  arkade: {
7626
7787
  label: "Arkade",
@@ -7630,7 +7791,7 @@ var NETWORK_CONFIG = {
7630
7791
  border: "border-network-arkade/40",
7631
7792
  qrBorder: "border-network-arkade/30",
7632
7793
  qrGlow: qrGlowStyle(colors.network.arkade),
7633
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7794
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7634
7795
  },
7635
7796
  liquid: {
7636
7797
  label: "Liquid",
@@ -7640,7 +7801,7 @@ var NETWORK_CONFIG = {
7640
7801
  border: "border-network-liquid/40",
7641
7802
  qrBorder: "border-network-liquid/30",
7642
7803
  qrGlow: qrGlowStyle(colors.network.liquid),
7643
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LiquidNetworkIcon, { className: "h-3 w-3" })
7804
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LiquidNetworkIcon, { className: "h-3 w-3" })
7644
7805
  }
7645
7806
  };
7646
7807
  var ACCOUNT_META = {
@@ -7651,14 +7812,14 @@ var ACCOUNT_META = {
7651
7812
  accentBorder: "border-primary/30",
7652
7813
  // Bundled RGB mark (protocolIcons) — a host-served /icons/rgb/... path
7653
7814
  // renders as a broken box in consumers that don't ship that asset.
7654
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(RgbNetworkIcon, { className: "h-2.5 w-2.5" })
7815
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(RgbNetworkIcon, { className: "h-2.5 w-2.5" })
7655
7816
  },
7656
7817
  SPARK: {
7657
7818
  shortLabel: "Spark",
7658
7819
  accentBg: "bg-info/10",
7659
7820
  accentText: "text-info",
7660
7821
  accentBorder: "border-info/30",
7661
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7822
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7662
7823
  "img",
7663
7824
  {
7664
7825
  src: "/icons/spark/Asterisk/Spark Asterisk White.svg",
@@ -7672,14 +7833,14 @@ var ACCOUNT_META = {
7672
7833
  accentBg: "bg-network-arkade/10",
7673
7834
  accentText: "text-network-arkade",
7674
7835
  accentBorder: "border-network-arkade/30",
7675
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7836
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7676
7837
  },
7677
7838
  LIQUID: {
7678
7839
  shortLabel: "Liquid",
7679
7840
  accentBg: "bg-network-liquid/10",
7680
7841
  accentText: "text-network-liquid",
7681
7842
  accentBorder: "border-network-liquid/30",
7682
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LiquidNetworkIcon, { className: "h-2.5 w-2.5" })
7843
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LiquidNetworkIcon, { className: "h-2.5 w-2.5" })
7683
7844
  }
7684
7845
  };
7685
7846
  var METHOD_META = {
@@ -7696,7 +7857,7 @@ function InvoiceStatusBanner({
7696
7857
  isInvoiceFailedOrExpired,
7697
7858
  invoiceStatus
7698
7859
  }) {
7699
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7860
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7700
7861
  "div",
7701
7862
  {
7702
7863
  className: cn(
@@ -7704,17 +7865,17 @@ function InvoiceStatusBanner({
7704
7865
  isInvoicePaid ? "bg-primary/10 text-primary" : isInvoiceFailedOrExpired ? "bg-danger/10 text-danger" : "bg-warning/10 text-warning"
7705
7866
  ),
7706
7867
  children: [
7707
- isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7708
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7709
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: "Waiting for payment..." })
7868
+ isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
7869
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7870
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: "Waiting for payment..." })
7710
7871
  ] }),
7711
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7712
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7713
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: "Payment received!" })
7872
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
7873
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7874
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: "Payment received!" })
7714
7875
  ] }),
7715
- isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
7716
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7717
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("span", { children: [
7876
+ isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
7877
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7878
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("span", { children: [
7718
7879
  "Invoice ",
7719
7880
  invoiceStatus?.toLowerCase() === "expired" ? "expired" : "failed"
7720
7881
  ] })
@@ -7724,20 +7885,20 @@ function InvoiceStatusBanner({
7724
7885
  );
7725
7886
  }
7726
7887
  function PaidOverlay() {
7727
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
7728
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
7729
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7888
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
7889
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
7890
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7730
7891
  ] }) });
7731
7892
  }
7732
7893
  function CopyIcon({ copied }) {
7733
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7894
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7734
7895
  "div",
7735
7896
  {
7736
7897
  className: cn(
7737
7898
  "flex-shrink-0 rounded-lg p-2 transition-all",
7738
7899
  copied ? "bg-primary/15 text-primary" : "bg-white/5 text-white/40 group-hover:bg-primary/10 group-hover:text-primary"
7739
7900
  ),
7740
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name: "content_copy", size: "sm" })
7901
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "content_copy", size: "sm" })
7741
7902
  }
7742
7903
  );
7743
7904
  }
@@ -7748,7 +7909,7 @@ function AccountChoiceChip({
7748
7909
  label
7749
7910
  }) {
7750
7911
  const meta = ACCOUNT_META[account];
7751
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7912
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7752
7913
  "button",
7753
7914
  {
7754
7915
  type: "button",
@@ -7760,7 +7921,7 @@ function AccountChoiceChip({
7760
7921
  ),
7761
7922
  children: [
7762
7923
  meta.icon,
7763
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: label ?? meta.shortLabel })
7924
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: label ?? meta.shortLabel })
7764
7925
  ]
7765
7926
  }
7766
7927
  );
@@ -7818,8 +7979,8 @@ function NetworkInfoDisclosure({
7818
7979
  }) {
7819
7980
  const [open, setOpen] = (0, import_react15.useState)(false);
7820
7981
  if (networks.length === 0) return null;
7821
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: cn("overflow-hidden rounded-xl bg-card/70 transition-all", className), children: [
7822
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7982
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: cn("overflow-hidden rounded-xl bg-card/70 transition-all", className), children: [
7983
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7823
7984
  "button",
7824
7985
  {
7825
7986
  type: "button",
@@ -7827,24 +7988,24 @@ function NetworkInfoDisclosure({
7827
7988
  "aria-expanded": open,
7828
7989
  className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-left transition-colors hover:bg-white/4",
7829
7990
  children: [
7830
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7831
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
7832
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7991
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7992
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
7993
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7833
7994
  ]
7834
7995
  }
7835
7996
  ),
7836
- open && /* @__PURE__ */ (0, import_jsx_runtime75.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) => {
7997
+ open && /* @__PURE__ */ (0, import_jsx_runtime76.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) => {
7837
7998
  const info = NETWORK_INFO[network];
7838
7999
  const cfg = NETWORK_CONFIG[network];
7839
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "space-y-1", children: [
7840
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7841
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
7842
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
8000
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1", children: [
8001
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-1.5", children: [
8002
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
8003
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7843
8004
  ] }),
7844
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7845
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
7846
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
7847
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: bullet })
8005
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
8006
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
8007
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
8008
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: bullet })
7848
8009
  ] }, bullet)) })
7849
8010
  ] }, network);
7850
8011
  }) })
@@ -7858,7 +8019,7 @@ function MethodChoiceChip({
7858
8019
  onClick
7859
8020
  }) {
7860
8021
  const meta = METHOD_META[method];
7861
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
8022
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7862
8023
  "button",
7863
8024
  {
7864
8025
  type: "button",
@@ -7871,14 +8032,14 @@ function MethodChoiceChip({
7871
8032
  ),
7872
8033
  children: [
7873
8034
  meta.label,
7874
- !enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
8035
+ !enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7875
8036
  ]
7876
8037
  }
7877
8038
  );
7878
8039
  }
7879
8040
 
7880
8041
  // src/web/components/deposit-success-screen.tsx
7881
- var import_jsx_runtime76 = require("react/jsx-runtime");
8042
+ var import_jsx_runtime77 = require("react/jsx-runtime");
7882
8043
  function DepositSuccessScreen({
7883
8044
  handleDone,
7884
8045
  displayTicker,
@@ -7891,20 +8052,20 @@ function DepositSuccessScreen({
7891
8052
  const isInstant = network === "lightning" || network === "spark";
7892
8053
  const title = isInstant ? "Payment Received!" : "Deposit Detected!";
7893
8054
  const subtitle = isInstant ? `Your ${displayTicker} has arrived via ${networkLabel}.` : `Incoming deposit detected via ${networkLabel}. Funds will be available after confirmation.`;
7894
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
7895
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "relative mb-8", children: [
7896
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7897
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "relative flex size-20 items-center justify-center rounded-full bg-primary/15 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
8055
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
8056
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "relative mb-8", children: [
8057
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
8058
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "relative flex size-20 items-center justify-center rounded-full bg-primary/15 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
7898
8059
  ] }),
7899
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7900
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7901
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "mb-10 flex items-center gap-3 rounded-2xl bg-card/70 px-4 py-3", children: [
7902
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
7903
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "text-left", children: [
7904
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7905
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
8060
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
8061
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
8062
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "mb-10 flex items-center gap-3 rounded-2xl bg-card/70 px-4 py-3", children: [
8063
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
8064
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "text-left", children: [
8065
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
8066
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7906
8067
  ] }),
7907
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
8068
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7908
8069
  "div",
7909
8070
  {
7910
8071
  className: cn(
@@ -7915,27 +8076,27 @@ function DepositSuccessScreen({
7915
8076
  ),
7916
8077
  children: [
7917
8078
  net.icon,
7918
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: networkLabel })
8079
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { children: networkLabel })
7919
8080
  ]
7920
8081
  }
7921
8082
  )
7922
8083
  ] }),
7923
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7924
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
8084
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
8085
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7925
8086
  "Back to Wallet"
7926
8087
  ] })
7927
8088
  ] }) });
7928
8089
  }
7929
8090
 
7930
8091
  // src/web/components/deposit-network-default-modal.tsx
7931
- var import_jsx_runtime77 = require("react/jsx-runtime");
8092
+ var import_jsx_runtime78 = require("react/jsx-runtime");
7932
8093
  var NETWORK_OPTIONS = {
7933
8094
  RGB: {
7934
8095
  network: "onchain",
7935
8096
  account: "RGB",
7936
8097
  label: "On-chain / Lightning",
7937
8098
  description: "Classic Bitcoin address or Lightning invoice via the RLN node.",
7938
- icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
8099
+ icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7939
8100
  accentBg: "bg-network-bitcoin/10",
7940
8101
  accentBorder: "border-network-bitcoin/30",
7941
8102
  accentText: "text-network-bitcoin"
@@ -7945,7 +8106,7 @@ var NETWORK_OPTIONS = {
7945
8106
  account: "SPARK",
7946
8107
  label: "Spark",
7947
8108
  description: "Receive directly into your Spark account. Fast and free.",
7948
- icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
8109
+ icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7949
8110
  accentBg: "bg-info/10",
7950
8111
  accentBorder: "border-info/30",
7951
8112
  accentText: "text-info"
@@ -7955,7 +8116,7 @@ var NETWORK_OPTIONS = {
7955
8116
  account: "ARKADE",
7956
8117
  label: "Arkade",
7957
8118
  description: "Receive directly into your Arkade account. Low fees, near-instant settlement.",
7958
- icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
8119
+ icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7959
8120
  accentBg: "bg-network-arkade/10",
7960
8121
  accentBorder: "border-network-arkade/30",
7961
8122
  accentText: "text-network-arkade"
@@ -7967,7 +8128,7 @@ var NETWORK_OPTIONS = {
7967
8128
  account: "LIQUID",
7968
8129
  label: "Liquid",
7969
8130
  description: "Receive L-BTC or a Liquid asset (USDt) via a confidential Liquid address.",
7970
- icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(LiquidNetworkIcon, { className: "h-[18px] w-[18px]" }),
8131
+ icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(LiquidNetworkIcon, { className: "h-[18px] w-[18px]" }),
7971
8132
  accentBg: "bg-network-liquid/10",
7972
8133
  accentBorder: "border-network-liquid/30",
7973
8134
  accentText: "text-network-liquid"
@@ -7982,20 +8143,20 @@ function DepositNetworkDefaultModal({
7982
8143
  }) {
7983
8144
  if (!open) return null;
7984
8145
  const options = availableAccounts.map((id) => NETWORK_OPTIONS[id]).filter(Boolean);
7985
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-background/80 backdrop-blur-lg", children: /* @__PURE__ */ (0, import_jsx_runtime77.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: [
7986
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
7987
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { children: [
7988
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7989
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
8146
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-background/80 backdrop-blur-lg", children: /* @__PURE__ */ (0, import_jsx_runtime78.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: [
8147
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
8148
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { children: [
8149
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
8150
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7990
8151
  "Pick how you would like to receive",
7991
8152
  " ",
7992
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
8153
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7993
8154
  " by default. You can always switch in the deposit screen."
7994
8155
  ] })
7995
8156
  ] }),
7996
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "space-y-2", children: options.map((option) => {
8157
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "space-y-2", children: options.map((option) => {
7997
8158
  const isSuggested = option.account === suggestedAccount;
7998
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
8159
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7999
8160
  "button",
8000
8161
  {
8001
8162
  type: "button",
@@ -8005,7 +8166,7 @@ function DepositNetworkDefaultModal({
8005
8166
  isSuggested ? option.accentBg : "bg-muted/40 hover:bg-muted/60"
8006
8167
  ),
8007
8168
  children: [
8008
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8169
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8009
8170
  "div",
8010
8171
  {
8011
8172
  className: cn(
@@ -8016,10 +8177,10 @@ function DepositNetworkDefaultModal({
8016
8177
  children: option.icon
8017
8178
  }
8018
8179
  ),
8019
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
8020
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center gap-2", children: [
8021
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
8022
- isSuggested && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8180
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8181
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center gap-2", children: [
8182
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
8183
+ isSuggested && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8023
8184
  "span",
8024
8185
  {
8025
8186
  className: cn(
@@ -8031,9 +8192,9 @@ function DepositNetworkDefaultModal({
8031
8192
  }
8032
8193
  )
8033
8194
  ] }),
8034
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
8195
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
8035
8196
  ] }),
8036
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8197
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8037
8198
  "span",
8038
8199
  {
8039
8200
  className: cn(
@@ -8053,7 +8214,7 @@ function DepositNetworkDefaultModal({
8053
8214
 
8054
8215
  // src/web/components/btc-unified-receive.tsx
8055
8216
  var import_react16 = require("react");
8056
- var import_jsx_runtime78 = require("react/jsx-runtime");
8217
+ var import_jsx_runtime79 = require("react/jsx-runtime");
8057
8218
  function formatSatsForRow(value) {
8058
8219
  if (!value || value <= 0 || !Number.isFinite(value)) return null;
8059
8220
  return `${value.toLocaleString("en-US")} sats`;
@@ -8085,46 +8246,46 @@ function BtcUnifiedReceive({
8085
8246
  setInvoiceStatus(null);
8086
8247
  setAccountReceiveResult(null);
8087
8248
  };
8088
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
8089
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
8090
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
8091
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
8092
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PaidOverlay, {})
8249
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
8250
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
8251
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
8252
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
8253
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(PaidOverlay, {})
8093
8254
  ] }),
8094
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
8095
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8255
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
8256
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8096
8257
  Button,
8097
8258
  {
8098
8259
  variant: "surface",
8099
8260
  size: "icon-xl",
8100
8261
  "aria-label": `Copy ${accountReceiveResult.qrLabel}`,
8101
8262
  onClick: () => void copyToClipboard(accountReceiveResult.qrValue),
8102
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
8263
+ children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
8103
8264
  }
8104
8265
  ),
8105
- showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8266
+ showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8106
8267
  Button,
8107
8268
  {
8108
8269
  variant: "surface",
8109
8270
  size: "icon-xl",
8110
8271
  "aria-label": "New address",
8111
8272
  onClick: handleNewAddress,
8112
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "refresh", size: "lg" })
8273
+ children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "refresh", size: "lg" })
8113
8274
  }
8114
8275
  ),
8115
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8276
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8116
8277
  Button,
8117
8278
  {
8118
8279
  variant: "surface",
8119
8280
  size: "icon-xl",
8120
8281
  "aria-label": "Edit amount and description",
8121
8282
  onClick: () => setShowEdit(true),
8122
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "edit", size: "lg" })
8283
+ children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "edit", size: "lg" })
8123
8284
  }
8124
8285
  )
8125
8286
  ] })
8126
8287
  ] }),
8127
- invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8288
+ invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8128
8289
  InvoiceStatusBanner,
8129
8290
  {
8130
8291
  isInvoicePending,
@@ -8133,11 +8294,11 @@ function BtcUnifiedReceive({
8133
8294
  invoiceStatus
8134
8295
  }
8135
8296
  ),
8136
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8137
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
8297
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8298
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
8138
8299
  accountReceiveResult.addresses.map((address) => {
8139
8300
  const network = NETWORK_CONFIG[address.network];
8140
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
8301
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8141
8302
  "div",
8142
8303
  {
8143
8304
  className: cn(
@@ -8147,35 +8308,35 @@ function BtcUnifiedReceive({
8147
8308
  style: { borderLeftWidth: 3, borderLeftColor: network.color },
8148
8309
  onClick: () => void copyToClipboard(address.value),
8149
8310
  children: [
8150
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
8151
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8152
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center gap-1.5", children: [
8153
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
8311
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
8312
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8313
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center gap-1.5", children: [
8314
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
8154
8315
  (() => {
8155
8316
  const amountLabel = formatSatsForRow(address.amountSats);
8156
- return amountLabel ? /* @__PURE__ */ (0, import_jsx_runtime78.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;
8317
+ return amountLabel ? /* @__PURE__ */ (0, import_jsx_runtime79.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;
8157
8318
  })()
8158
8319
  ] }),
8159
- /* @__PURE__ */ (0, import_jsx_runtime78.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 })
8320
+ /* @__PURE__ */ (0, import_jsx_runtime79.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 })
8160
8321
  ] }),
8161
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CopyIcon, { copied: copied === address.value })
8322
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CopyIcon, { copied: copied === address.value })
8162
8323
  ]
8163
8324
  },
8164
8325
  address.network
8165
8326
  );
8166
8327
  })
8167
8328
  ] }),
8168
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8329
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8169
8330
  BottomSheet,
8170
8331
  {
8171
8332
  open: showEdit,
8172
8333
  title: "Edit request",
8173
- icon: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "edit", size: "md" }),
8334
+ icon: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "edit", size: "md" }),
8174
8335
  onClose: () => setShowEdit(false),
8175
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-4", children: [
8176
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8177
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
8178
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8336
+ children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-4", children: [
8337
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8338
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
8339
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8179
8340
  "input",
8180
8341
  {
8181
8342
  type: "text",
@@ -8186,14 +8347,14 @@ function BtcUnifiedReceive({
8186
8347
  inputMode: "decimal"
8187
8348
  }
8188
8349
  ),
8189
- amount && loading && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
8190
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
8350
+ amount && loading && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
8351
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
8191
8352
  "Updating invoice..."
8192
8353
  ] })
8193
8354
  ] }),
8194
- onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8195
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
8196
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8355
+ onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8356
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
8357
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8197
8358
  "input",
8198
8359
  {
8199
8360
  type: "text",
@@ -8204,7 +8365,7 @@ function BtcUnifiedReceive({
8204
8365
  }
8205
8366
  )
8206
8367
  ] }),
8207
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
8368
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
8208
8369
  ] })
8209
8370
  }
8210
8371
  )
@@ -8212,7 +8373,7 @@ function BtcUnifiedReceive({
8212
8373
  }
8213
8374
 
8214
8375
  // src/web/components/deposit-generated-view.tsx
8215
- var import_jsx_runtime79 = require("react/jsx-runtime");
8376
+ var import_jsx_runtime80 = require("react/jsx-runtime");
8216
8377
  function parseAssetAmount(amountString, asset) {
8217
8378
  const value = Number(amountString);
8218
8379
  if (!Number.isFinite(value)) return 0;
@@ -8253,10 +8414,10 @@ function DepositGeneratedView({
8253
8414
  showRegenerate = true,
8254
8415
  onRegenerate
8255
8416
  }) {
8256
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
8257
- (network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl bg-card/70 p-2.5", children: [
8258
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
8259
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8417
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
8418
+ (network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl bg-card/70 p-2.5", children: [
8419
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
8420
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8260
8421
  "input",
8261
8422
  {
8262
8423
  type: "text",
@@ -8267,16 +8428,16 @@ function DepositGeneratedView({
8267
8428
  inputMode: "decimal"
8268
8429
  }
8269
8430
  ),
8270
- amount && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "flex items-center gap-1", children: [
8271
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
8431
+ amount && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "flex items-center gap-1", children: [
8432
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
8272
8433
  "Updating ",
8273
8434
  network === "arkade" ? "URI" : "invoice",
8274
8435
  "..."
8275
8436
  ] }) : network === "arkade" ? `Unified URI for ${amount} ${getUnitLabel()}` : `Invoice for ${amount} ${getUnitLabel()}` })
8276
8437
  ] }),
8277
- network === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl bg-card/70 p-2.5", children: [
8278
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
8279
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8438
+ network === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl bg-card/70 p-2.5", children: [
8439
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
8440
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8280
8441
  "input",
8281
8442
  {
8282
8443
  type: "text",
@@ -8287,25 +8448,25 @@ function DepositGeneratedView({
8287
8448
  inputMode: "decimal"
8288
8449
  }
8289
8450
  ),
8290
- amount && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "flex items-center gap-1", children: [
8291
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
8451
+ amount && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "flex items-center gap-1", children: [
8452
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
8292
8453
  "Updating invoice..."
8293
8454
  ] }) : `Invoice for ${amount} ${getUnitLabel()}` }),
8294
- amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "rounded-lg bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
8455
+ amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "rounded-lg bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
8295
8456
  "Exceeds max: ",
8296
8457
  formatAssetAmount(maxDepositAmount, selectedAsset),
8297
8458
  " ",
8298
8459
  getUnitLabel()
8299
8460
  ] })
8300
8461
  ] }),
8301
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
8302
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8462
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
8463
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8303
8464
  "div",
8304
8465
  {
8305
8466
  className: "relative flex flex-col items-center rounded-2xl bg-white p-3.5 transition-all",
8306
8467
  style: net.qrGlow,
8307
8468
  children: [
8308
- showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8469
+ showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8309
8470
  "div",
8310
8471
  {
8311
8472
  className: cn(
@@ -8315,21 +8476,21 @@ function DepositGeneratedView({
8315
8476
  ),
8316
8477
  children: [
8317
8478
  net.icon,
8318
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { children: net.label })
8479
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { children: net.label })
8319
8480
  ]
8320
8481
  }
8321
8482
  ),
8322
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(QrCode, { value: address, size: 188 }),
8323
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(PaidOverlay, {}),
8483
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(QrCode, { value: address, size: 188 }),
8484
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(PaidOverlay, {}),
8324
8485
  loading && !isInvoicePaid && // Loading scrim — sits over the QR while a fresh address/invoice
8325
8486
  // is being fetched (e.g. after the New Address button).
8326
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
8487
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
8327
8488
  ]
8328
8489
  }
8329
8490
  ),
8330
8491
  (() => {
8331
8492
  const isAddressCopied = copied === address;
8332
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8493
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8333
8494
  "button",
8334
8495
  {
8335
8496
  type: "button",
@@ -8342,14 +8503,14 @@ function DepositGeneratedView({
8342
8503
  void copyToClipboard(address);
8343
8504
  },
8344
8505
  children: [
8345
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
8506
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
8346
8507
  isAddressCopied ? "Copied" : network === "lightning" ? "Copy Invoice" : "Copy Address"
8347
8508
  ]
8348
8509
  }
8349
8510
  );
8350
8511
  })()
8351
8512
  ] }),
8352
- network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8513
+ network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8353
8514
  InvoiceStatusBanner,
8354
8515
  {
8355
8516
  isInvoicePending,
@@ -8358,7 +8519,7 @@ function DepositGeneratedView({
8358
8519
  invoiceStatus
8359
8520
  }
8360
8521
  ),
8361
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8522
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8362
8523
  "div",
8363
8524
  {
8364
8525
  "data-testid": "deposit-generated-address",
@@ -8369,16 +8530,16 @@ function DepositGeneratedView({
8369
8530
  ),
8370
8531
  onClick: () => void copyToClipboard(address),
8371
8532
  children: [
8372
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
8373
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8374
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
8375
- /* @__PURE__ */ (0, import_jsx_runtime79.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 })
8533
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
8534
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1", children: [
8535
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
8536
+ /* @__PURE__ */ (0, import_jsx_runtime80.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 })
8376
8537
  ] }),
8377
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CopyIcon, { copied: copied === address })
8538
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CopyIcon, { copied: copied === address })
8378
8539
  ]
8379
8540
  }
8380
8541
  ),
8381
- recipientId && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8542
+ recipientId && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8382
8543
  "div",
8383
8544
  {
8384
8545
  className: cn(
@@ -8387,16 +8548,16 @@ function DepositGeneratedView({
8387
8548
  ),
8388
8549
  onClick: () => void copyToClipboard(recipientId),
8389
8550
  children: [
8390
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
8391
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8392
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
8393
- /* @__PURE__ */ (0, import_jsx_runtime79.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 })
8551
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
8552
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1", children: [
8553
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
8554
+ /* @__PURE__ */ (0, import_jsx_runtime80.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 })
8394
8555
  ] }),
8395
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(CopyIcon, { copied: copied === recipientId })
8556
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CopyIcon, { copied: copied === recipientId })
8396
8557
  ]
8397
8558
  }
8398
8559
  ),
8399
- showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8560
+ showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8400
8561
  "button",
8401
8562
  {
8402
8563
  type: "button",
@@ -8414,7 +8575,7 @@ function DepositGeneratedView({
8414
8575
  setInvoiceStatus(null);
8415
8576
  },
8416
8577
  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",
8417
- children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8578
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8418
8579
  "span",
8419
8580
  {
8420
8581
  className: cn("material-symbols-outlined text-icon-md", loading && "animate-spin"),
@@ -8427,7 +8588,7 @@ function DepositGeneratedView({
8427
8588
  }
8428
8589
 
8429
8590
  // src/web/components/deposit-pre-generation.tsx
8430
- var import_jsx_runtime80 = require("react/jsx-runtime");
8591
+ var import_jsx_runtime81 = require("react/jsx-runtime");
8431
8592
  var ACCOUNT_TITLES = {
8432
8593
  RGB: "RGB & Lightning",
8433
8594
  SPARK: "Spark",
@@ -8473,58 +8634,58 @@ function DepositPreGeneration({
8473
8634
  }) {
8474
8635
  const method = METHOD_META2[currentMethod];
8475
8636
  const isRgbOnchain = network === "onchain" && !isBtc;
8476
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-3", children: [
8477
- showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "rounded-2xl bg-card/70 p-3", children: [
8478
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
8479
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
8480
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8481
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-white/45", children: "Asset" }),
8482
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
8637
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-3", children: [
8638
+ showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "rounded-2xl bg-card/70 p-3", children: [
8639
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
8640
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
8641
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8642
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "text-white/45", children: "Asset" }),
8643
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
8483
8644
  ] }),
8484
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8485
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-white/45", children: "Destination account" }),
8486
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
8645
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8646
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "text-white/45", children: "Destination account" }),
8647
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
8487
8648
  ] }),
8488
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8489
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
8490
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "font-bold text-white", children: method.label })
8649
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8650
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
8651
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "font-bold text-white", children: method.label })
8491
8652
  ] }),
8492
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
8653
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
8493
8654
  ] })
8494
8655
  ] }),
8495
- channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center gap-2.5 rounded-xl bg-card/70 p-3", children: [
8496
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
8497
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
8656
+ channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center gap-2.5 rounded-xl bg-card/70 p-3", children: [
8657
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
8658
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
8498
8659
  ] }),
8499
- showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(AlertBanner, { variant: "warning", children: [
8500
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
8501
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
8660
+ showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(AlertBanner, { variant: "warning", children: [
8661
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
8662
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
8502
8663
  ] }),
8503
- showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(AlertBanner, { variant: "warning", children: [
8504
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
8505
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "text-tiny text-warning/70", children: [
8664
+ showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(AlertBanner, { variant: "warning", children: [
8665
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
8666
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("p", { className: "text-tiny text-warning/70", children: [
8506
8667
  "No channels with inbound capacity for ",
8507
8668
  selectedAsset?.ticker ?? "this asset",
8508
8669
  "."
8509
8670
  ] })
8510
8671
  ] }),
8511
- isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8512
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: cn("flex size-16 items-center justify-center rounded-2xl", net.bg), children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
8513
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1 text-center", children: [
8514
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
8672
+ isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8673
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn("flex size-16 items-center justify-center rounded-2xl", net.bg), children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
8674
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1 text-center", children: [
8675
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
8515
8676
  "Generating ",
8516
8677
  network === "lightning" ? "invoice" : "address",
8517
8678
  "..."
8518
8679
  ] }),
8519
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "text-xs text-white/30", children: [
8680
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("p", { className: "text-xs text-white/30", children: [
8520
8681
  net.label,
8521
8682
  " network"
8522
8683
  ] })
8523
8684
  ] })
8524
8685
  ] }),
8525
- isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1.5", children: [
8526
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8527
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8686
+ isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1.5", children: [
8687
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8688
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8528
8689
  "input",
8529
8690
  {
8530
8691
  type: "text",
@@ -8536,15 +8697,15 @@ function DepositPreGeneration({
8536
8697
  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"
8537
8698
  }
8538
8699
  ),
8539
- /* @__PURE__ */ (0, import_jsx_runtime80.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." })
8700
+ /* @__PURE__ */ (0, import_jsx_runtime81.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." })
8540
8701
  ] }),
8541
- isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-2.5 rounded-xl bg-card/70 p-3", children: [
8542
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8543
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1", children: [
8544
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8545
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8702
+ isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-2.5 rounded-xl bg-card/70 p-3", children: [
8703
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8704
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "min-w-0 flex-1", children: [
8705
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8706
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8546
8707
  ] }),
8547
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8708
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8548
8709
  "button",
8549
8710
  {
8550
8711
  type: "button",
@@ -8554,7 +8715,7 @@ function DepositPreGeneration({
8554
8715
  usePrivacy ? "bg-primary" : "bg-white/10"
8555
8716
  ),
8556
8717
  onClick: () => setUsePrivacy(!usePrivacy),
8557
- children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8718
+ children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8558
8719
  "span",
8559
8720
  {
8560
8721
  className: cn(
@@ -8566,8 +8727,8 @@ function DepositPreGeneration({
8566
8727
  }
8567
8728
  )
8568
8729
  ] }),
8569
- /* @__PURE__ */ (0, import_jsx_runtime80.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." }),
8570
- usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8730
+ /* @__PURE__ */ (0, import_jsx_runtime81.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." }),
8731
+ usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
8571
8732
  "div",
8572
8733
  {
8573
8734
  className: cn(
@@ -8575,26 +8736,26 @@ function DepositPreGeneration({
8575
8736
  colorableUtxoCount > 0 ? "bg-success/10 text-success/80" : "bg-warning/10 text-warning/80"
8576
8737
  ),
8577
8738
  children: [
8578
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8579
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "font-bold tabular-nums", children: colorableUtxoCount })
8739
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8740
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "font-bold tabular-nums", children: colorableUtxoCount })
8580
8741
  ]
8581
8742
  }
8582
8743
  ),
8583
- usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ (0, import_jsx_runtime80.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." })
8744
+ usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ (0, import_jsx_runtime81.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." })
8584
8745
  ] }),
8585
- network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1.5", children: [
8586
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-center justify-between", children: [
8587
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8746
+ network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1.5", children: [
8747
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center justify-between", children: [
8748
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8588
8749
  "Amount (",
8589
8750
  getUnitLabel(),
8590
8751
  ") - Optional"
8591
8752
  ] }),
8592
- selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "text-xxs text-white/30", children: [
8753
+ selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "text-xxs text-white/30", children: [
8593
8754
  selectedAsset.precision ?? 0,
8594
8755
  " decimals"
8595
8756
  ] })
8596
8757
  ] }),
8597
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8758
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8598
8759
  "input",
8599
8760
  {
8600
8761
  type: "text",
@@ -8606,18 +8767,18 @@ function DepositPreGeneration({
8606
8767
  }
8607
8768
  )
8608
8769
  ] }),
8609
- needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(AlertBanner, { variant: "warning", children: [
8610
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8611
- /* @__PURE__ */ (0, import_jsx_runtime80.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." })
8770
+ needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(AlertBanner, { variant: "warning", children: [
8771
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8772
+ /* @__PURE__ */ (0, import_jsx_runtime81.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." })
8612
8773
  ] }),
8613
- !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8614
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8774
+ !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8775
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8615
8776
  "Create Colorable UTXOs"
8616
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8617
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8777
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8778
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8618
8779
  "Generating..."
8619
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8620
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8780
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8781
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8621
8782
  "Generate Address"
8622
8783
  ] }) }))
8623
8784
  ] });
@@ -8625,7 +8786,7 @@ function DepositPreGeneration({
8625
8786
 
8626
8787
  // src/web/components/deposit-asset-selection.tsx
8627
8788
  var import_react17 = require("react");
8628
- var import_jsx_runtime81 = require("react/jsx-runtime");
8789
+ var import_jsx_runtime82 = require("react/jsx-runtime");
8629
8790
  var ADD_ASSET_SUBTITLE = {
8630
8791
  RGB: "RGB asset on Bitcoin",
8631
8792
  SPARK: "Spark-native asset",
@@ -8714,8 +8875,8 @@ function DepositAssetSelection({
8714
8875
  titleHoverClass: "group-hover:text-network-liquid"
8715
8876
  }
8716
8877
  ].filter((option) => option.enabled);
8717
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8718
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8878
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8879
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8719
8880
  Button,
8720
8881
  {
8721
8882
  type: "button",
@@ -8723,10 +8884,10 @@ function DepositAssetSelection({
8723
8884
  size: "icon-xl",
8724
8885
  onClick: () => setCurrentView("dashboard"),
8725
8886
  "aria-label": "Go back",
8726
- children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "arrow_back", size: "xl" })
8887
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "arrow_back", size: "xl" })
8727
8888
  }
8728
8889
  ) }),
8729
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8890
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8730
8891
  DotPagination,
8731
8892
  {
8732
8893
  count: 2,
@@ -8734,8 +8895,8 @@ function DepositAssetSelection({
8734
8895
  ariaLabel: "Deposit step 1 of 2: select asset"
8735
8896
  }
8736
8897
  ) }),
8737
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "relative", children: [
8738
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8898
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "relative", children: [
8899
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8739
8900
  Icon,
8740
8901
  {
8741
8902
  name: "search",
@@ -8743,7 +8904,7 @@ function DepositAssetSelection({
8743
8904
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-white/30"
8744
8905
  }
8745
8906
  ),
8746
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8907
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8747
8908
  "input",
8748
8909
  {
8749
8910
  autoFocus: true,
@@ -8756,8 +8917,8 @@ function DepositAssetSelection({
8756
8917
  }
8757
8918
  )
8758
8919
  ] }) }),
8759
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8760
- btcAsset && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
8920
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8921
+ btcAsset && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
8761
8922
  "button",
8762
8923
  {
8763
8924
  type: "button",
@@ -8765,28 +8926,28 @@ function DepositAssetSelection({
8765
8926
  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",
8766
8927
  onClick: () => onSelectAsset(btcAsset),
8767
8928
  children: [
8768
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8769
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8770
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8771
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8929
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8930
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8931
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8932
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8772
8933
  ] }),
8773
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
8774
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
8775
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
8776
- isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
8777
- isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(NetworkBadge, { network: "Arkade", size: "sm" }),
8778
- isLiquidConnected && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(NetworkBadge, { network: "Liquid", size: "sm" })
8934
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
8935
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
8936
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
8937
+ isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
8938
+ isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NetworkBadge, { network: "Arkade", size: "sm" }),
8939
+ isLiquidConnected && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NetworkBadge, { network: "Liquid", size: "sm" })
8779
8940
  ] }),
8780
- /* @__PURE__ */ (0, import_jsx_runtime81.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" })
8941
+ /* @__PURE__ */ (0, import_jsx_runtime82.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" })
8781
8942
  ]
8782
8943
  }
8783
8944
  ),
8784
- noResults ? /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
8945
+ noResults ? /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
8785
8946
  'No assets match "',
8786
8947
  searchQuery,
8787
8948
  '"'
8788
- ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
8789
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
8949
+ ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
8950
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
8790
8951
  "button",
8791
8952
  {
8792
8953
  type: "button",
@@ -8799,17 +8960,17 @@ function DepositAssetSelection({
8799
8960
  isSearching && "cursor-default"
8800
8961
  ),
8801
8962
  children: [
8802
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8803
- /* @__PURE__ */ (0, import_jsx_runtime81.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 }),
8804
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex-1" }),
8805
- !isSearching && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8963
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8964
+ /* @__PURE__ */ (0, import_jsx_runtime82.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 }),
8965
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex-1" }),
8966
+ !isSearching && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8806
8967
  ]
8807
8968
  }
8808
8969
  ),
8809
- showOwnedAssets && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
8970
+ showOwnedAssets && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
8810
8971
  const protocolBadge = asset.accountId ? PROTOCOL_BADGE[asset.accountId] : null;
8811
8972
  const balance = asset.balance ?? 0;
8812
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
8973
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
8813
8974
  "button",
8814
8975
  {
8815
8976
  type: "button",
@@ -8817,11 +8978,11 @@ function DepositAssetSelection({
8817
8978
  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",
8818
8979
  onClick: () => onSelectAsset(asset),
8819
8980
  children: [
8820
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8821
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8822
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8823
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
8824
- protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8981
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8982
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8983
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8984
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
8985
+ protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8825
8986
  "span",
8826
8987
  {
8827
8988
  className: cn(
@@ -8832,36 +8993,36 @@ function DepositAssetSelection({
8832
8993
  }
8833
8994
  )
8834
8995
  ] }),
8835
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8996
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8836
8997
  ] }),
8837
- balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
8838
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "text-xs font-bold tabular-nums text-white", children: formatAssetBalance(asset) }),
8839
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8998
+ balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
8999
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "text-xs font-bold tabular-nums text-white", children: formatAssetBalance(asset) }),
9000
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8840
9001
  ] }),
8841
- /* @__PURE__ */ (0, import_jsx_runtime81.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" })
9002
+ /* @__PURE__ */ (0, import_jsx_runtime82.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" })
8842
9003
  ]
8843
9004
  },
8844
9005
  asset.asset_id
8845
9006
  );
8846
9007
  }) })
8847
9008
  ] }) : null,
8848
- !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
9009
+ !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
8849
9010
  "button",
8850
9011
  {
8851
9012
  type: "button",
8852
9013
  onClick: () => setCurrentView("bridge"),
8853
9014
  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",
8854
9015
  children: [
8855
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
8856
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex-1 text-left", children: [
8857
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
8858
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
9016
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
9017
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex-1 text-left", children: [
9018
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
9019
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8859
9020
  ] }),
8860
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
9021
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8861
9022
  ]
8862
9023
  }
8863
9024
  ) }),
8864
- !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
9025
+ !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
8865
9026
  "button",
8866
9027
  {
8867
9028
  type: "button",
@@ -8869,27 +9030,27 @@ function DepositAssetSelection({
8869
9030
  onClick: () => setShowAddAssetModal(true),
8870
9031
  className: "group flex w-full items-center gap-3 rounded-2xl bg-white/3 p-3 transition-all hover:bg-accent",
8871
9032
  children: [
8872
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "add", size: "md", className: "text-primary" }) }),
8873
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex-1 text-left", children: [
8874
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8875
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
9033
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "add", size: "md", className: "text-primary" }) }),
9034
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex-1 text-left", children: [
9035
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
9036
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
8876
9037
  "Receive a new ",
8877
9038
  newAssetOptions.map((o) => o.ticker).join(", "),
8878
9039
  " asset"
8879
9040
  ] })
8880
9041
  ] }),
8881
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
9042
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8882
9043
  ]
8883
9044
  }
8884
9045
  ) })
8885
9046
  ] }),
8886
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
9047
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8887
9048
  BottomSheet,
8888
9049
  {
8889
9050
  open: showAddAssetModal,
8890
9051
  title: "Add an asset",
8891
9052
  onClose: () => setShowAddAssetModal(false),
8892
- children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
9053
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
8893
9054
  "button",
8894
9055
  {
8895
9056
  type: "button",
@@ -8903,12 +9064,12 @@ function DepositAssetSelection({
8903
9064
  handleAddNewAsset(option.account);
8904
9065
  },
8905
9066
  children: [
8906
- option.account === "LIQUID" ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-network-liquid/10", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(LiquidNetworkIcon, { className: "size-5" }) }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8907
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "min-w-0 flex-1", children: [
8908
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8909
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
9067
+ option.account === "LIQUID" ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-network-liquid/10", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(LiquidNetworkIcon, { className: "size-5" }) }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
9068
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "min-w-0 flex-1", children: [
9069
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
9070
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8910
9071
  ] }),
8911
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
9072
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8912
9073
  ]
8913
9074
  },
8914
9075
  option.account
@@ -8919,7 +9080,7 @@ function DepositAssetSelection({
8919
9080
  }
8920
9081
 
8921
9082
  // src/web/components/deposit-invoice-generation.tsx
8922
- var import_jsx_runtime82 = require("react/jsx-runtime");
9083
+ var import_jsx_runtime83 = require("react/jsx-runtime");
8923
9084
  var ACCOUNT_TITLES2 = {
8924
9085
  RGB: "RGB & Lightning",
8925
9086
  SPARK: "Spark",
@@ -9078,7 +9239,7 @@ function DepositInvoiceGeneration({
9078
9239
  if (nextMethod) applyMethodSelection(account, nextMethod);
9079
9240
  };
9080
9241
  if (depositDetected) {
9081
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9242
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9082
9243
  DepositSuccessScreen,
9083
9244
  {
9084
9245
  handleDone,
@@ -9095,15 +9256,15 @@ function DepositInvoiceGeneration({
9095
9256
  const showChannelWarning = selectedAccount === "RGB" && network === "lightning" && !channelsLoading && channels.length === 0 && !isSparkConnected;
9096
9257
  const showLiquidityWarning = !isSparkLightning && network === "lightning" && maxDepositAmount === 0 && !channelsLoading && !isBtc;
9097
9258
  const isNewRgbAsset = isNewAsset && assetFamily === "RGB";
9098
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
9099
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "arrow_back", size: "xl" }) }) }),
9259
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
9260
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: "arrow_back", size: "xl" }) }) }),
9100
9261
  (() => {
9101
9262
  const hideDestinationRail = isNewAsset && (network === "spark" || network === "arkade");
9102
9263
  if (hideDestinationRail) return null;
9103
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex-shrink-0 bg-background px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "space-y-2", children: [
9104
- /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
9105
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
9106
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9264
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "flex-shrink-0 bg-background px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-2", children: [
9265
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { children: [
9266
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
9267
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9107
9268
  AccountChoiceChip,
9108
9269
  {
9109
9270
  account,
@@ -9128,9 +9289,9 @@ function DepositInvoiceGeneration({
9128
9289
  account
9129
9290
  )) })
9130
9291
  ] }),
9131
- !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
9132
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
9133
- /* @__PURE__ */ (0, import_jsx_runtime82.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_runtime82.jsx)(
9292
+ !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { children: [
9293
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
9294
+ /* @__PURE__ */ (0, import_jsx_runtime83.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_runtime83.jsx)(
9134
9295
  MethodChoiceChip,
9135
9296
  {
9136
9297
  method,
@@ -9144,7 +9305,7 @@ function DepositInvoiceGeneration({
9144
9305
  ] })
9145
9306
  ] }) });
9146
9307
  })(),
9147
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9308
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9148
9309
  BtcUnifiedReceive,
9149
9310
  {
9150
9311
  btcSelectedAccount,
@@ -9164,15 +9325,15 @@ function DepositInvoiceGeneration({
9164
9325
  setAccountReceiveResult,
9165
9326
  handleDone
9166
9327
  }
9167
- ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
9168
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9328
+ ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
9329
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9169
9330
  "div",
9170
9331
  {
9171
9332
  className: cn(
9172
9333
  "flex size-16 items-center justify-center rounded-2xl",
9173
9334
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].bg
9174
9335
  ),
9175
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9336
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9176
9337
  "span",
9177
9338
  {
9178
9339
  className: cn(
@@ -9184,11 +9345,11 @@ function DepositInvoiceGeneration({
9184
9345
  )
9185
9346
  }
9186
9347
  ),
9187
- /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "space-y-1 text-center", children: [
9188
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
9189
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
9348
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "space-y-1 text-center", children: [
9349
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
9350
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
9190
9351
  ] })
9191
- ] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9352
+ ] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9192
9353
  DepositPreGeneration,
9193
9354
  {
9194
9355
  selectedAsset,
@@ -9212,7 +9373,7 @@ function DepositInvoiceGeneration({
9212
9373
  onOpenCreateUtxos,
9213
9374
  showReceiveSummary: !isNewRgbAsset
9214
9375
  }
9215
- ) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
9376
+ ) : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
9216
9377
  DepositGeneratedView,
9217
9378
  {
9218
9379
  network,
@@ -9270,6 +9431,7 @@ function DepositInvoiceGeneration({
9270
9431
  ArkadeNetworkIcon,
9271
9432
  AssetCard,
9272
9433
  AssetIcon,
9434
+ AssetInfoChip,
9273
9435
  AssetSelector,
9274
9436
  BalanceBreakdown,
9275
9437
  BottomNav,
@@ -9311,6 +9473,7 @@ function DepositInvoiceGeneration({
9311
9473
  HeadlineGradient,
9312
9474
  Icon,
9313
9475
  Icons,
9476
+ InfoChip,
9314
9477
  InfoPanel,
9315
9478
  InlineAction,
9316
9479
  InlineSelector,
@@ -9327,6 +9490,7 @@ function DepositInvoiceGeneration({
9327
9490
  MobileHeroAnimation,
9328
9491
  NETWORK_CONFIG,
9329
9492
  NetworkBadge,
9493
+ NetworkInfoChip,
9330
9494
  NetworkInfoDisclosure,
9331
9495
  NetworkStatusChip,
9332
9496
  NostrNetworkIcon,