kaleido-ui 0.1.76 → 0.1.78

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.
@@ -113,6 +113,7 @@ __export(web_exports, {
113
113
  NetworkBadge: () => NetworkBadge,
114
114
  NetworkInfoDisclosure: () => NetworkInfoDisclosure,
115
115
  NetworkStatusChip: () => NetworkStatusChip,
116
+ NostrNetworkIcon: () => NostrNetworkIcon,
116
117
  NumberInput: () => NumberInput,
117
118
  OptionSelector: () => OptionSelector,
118
119
  PageHeader: () => PageHeader,
@@ -147,6 +148,7 @@ __export(web_exports, {
147
148
  StepperNumberInput: () => StepperNumberInput,
148
149
  SwapInputCard: () => SwapInputCard,
149
150
  Switch: () => Switch,
151
+ SwitchRow: () => SwitchRow,
150
152
  Tabs: () => Tabs,
151
153
  TabsContent: () => TabsContent,
152
154
  TabsList: () => TabsList,
@@ -2163,6 +2165,19 @@ function ArkadeNetworkIcon({
2163
2165
  }
2164
2166
  );
2165
2167
  }
2168
+ function NostrNetworkIcon({
2169
+ className = "size-3.5",
2170
+ alt = "Nostr"
2171
+ }) {
2172
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2173
+ "img",
2174
+ {
2175
+ src: "/icons/nostr-icon.svg",
2176
+ alt,
2177
+ className: cn("object-contain", className)
2178
+ }
2179
+ );
2180
+ }
2166
2181
  function RgbNetworkIcon({ className = "size-3.5", alt = "RGB" }) {
2167
2182
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("img", { src: protocolIcons["RGB20"], alt, className: cn("object-contain", className) });
2168
2183
  }
@@ -2857,7 +2872,10 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
2857
2872
  var SUPPORTED_ACCOUNT_NETWORKS = {
2858
2873
  RGB: ["regtest", "testnet", "signet"],
2859
2874
  SPARK: ["regtest", "mainnet"],
2860
- ARKADE: ["signet", "mainnet"]
2875
+ ARKADE: ["signet", "mainnet"],
2876
+ // Nostr is network-agnostic; mainnet is the placeholder consumers pass
2877
+ // (the network chip is typically hidden for NOSTR rows anyway).
2878
+ NOSTR: ["mainnet"]
2861
2879
  };
2862
2880
  function getAccountNetworkLabel(network) {
2863
2881
  switch (network) {
@@ -2900,6 +2918,9 @@ function AccountHeaderIcons({ accountId }) {
2900
2918
  if (accountId === "SPARK") {
2901
2919
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "flex size-10 items-center justify-center rounded-full bg-info/10 shadow-inner", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "Spark", className: "size-5 object-contain" }) });
2902
2920
  }
2921
+ if (accountId === "NOSTR") {
2922
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "flex size-10 items-center justify-center rounded-full bg-network-arkade/10 shadow-inner", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(NostrNetworkIcon, { className: "size-5" }) });
2923
+ }
2903
2924
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "flex size-10 items-center justify-center rounded-full bg-network-arkade/10 shadow-inner", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "Arkade", className: "size-5 rounded-sm object-contain" }) });
2904
2925
  }
2905
2926
  function getAccountStatusUi(status) {
@@ -3129,7 +3150,8 @@ function ExpandIcon({ expanded }) {
3129
3150
  var ACCOUNT_ACCENT_BG = {
3130
3151
  RGB: "bg-gradient-to-br from-primary/[0.06] via-card to-primary/[0.10]",
3131
3152
  SPARK: "bg-gradient-to-br from-info/[0.06] via-card to-info/[0.10]",
3132
- ARKADE: "bg-gradient-to-br from-network-arkade/[0.06] via-card to-network-arkade/[0.10]"
3153
+ ARKADE: "bg-gradient-to-br from-network-arkade/[0.06] via-card to-network-arkade/[0.10]",
3154
+ NOSTR: "bg-gradient-to-br from-network-arkade/[0.06] via-card to-network-arkade/[0.10]"
3133
3155
  };
3134
3156
  function AccountSettingsRow({
3135
3157
  accountId,
@@ -5473,10 +5495,37 @@ function SettingItem({
5473
5495
  );
5474
5496
  }
5475
5497
 
5476
- // src/web/components/section-label.tsx
5498
+ // src/web/components/switch-row.tsx
5477
5499
  var import_jsx_runtime54 = require("react/jsx-runtime");
5500
+ function SwitchRow({
5501
+ label,
5502
+ description,
5503
+ checked,
5504
+ disabled,
5505
+ onCheckedChange,
5506
+ className
5507
+ }) {
5508
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: cn("flex items-start justify-between gap-3 rounded-xl bg-muted/40 p-3", className), children: [
5509
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "min-w-0", children: [
5510
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-sm font-medium text-foreground", children: label }),
5511
+ description && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "mt-0.5 text-xs leading-snug text-muted-foreground", children: description })
5512
+ ] }),
5513
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5514
+ Switch,
5515
+ {
5516
+ checked,
5517
+ disabled,
5518
+ onCheckedChange,
5519
+ "aria-label": label
5520
+ }
5521
+ )
5522
+ ] });
5523
+ }
5524
+
5525
+ // src/web/components/section-label.tsx
5526
+ var import_jsx_runtime55 = require("react/jsx-runtime");
5478
5527
  function SectionLabel({ children, className }) {
5479
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5528
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
5480
5529
  "span",
5481
5530
  {
5482
5531
  className: cn("text-xxs font-black uppercase tracking-eyebrow-wide text-muted-foreground", className),
@@ -5486,21 +5535,21 @@ function SectionLabel({ children, className }) {
5486
5535
  }
5487
5536
 
5488
5537
  // src/web/components/section-header.tsx
5489
- var import_jsx_runtime55 = require("react/jsx-runtime");
5538
+ var import_jsx_runtime56 = require("react/jsx-runtime");
5490
5539
  function SectionHeader({
5491
5540
  children,
5492
5541
  right,
5493
5542
  as: Tag = "h2",
5494
5543
  className
5495
5544
  }) {
5496
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
5497
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
5545
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
5546
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
5498
5547
  right
5499
5548
  ] });
5500
5549
  }
5501
5550
 
5502
5551
  // src/web/components/alert-banner.tsx
5503
- var import_jsx_runtime56 = require("react/jsx-runtime");
5552
+ var import_jsx_runtime57 = require("react/jsx-runtime");
5504
5553
  var variantStyles = {
5505
5554
  error: { container: "bg-danger/40", icon: "text-danger", iconName: "error" },
5506
5555
  warning: { container: "bg-warning/40", icon: "text-warning", iconName: "warning" },
@@ -5509,14 +5558,14 @@ var variantStyles = {
5509
5558
  };
5510
5559
  function AlertBanner({ variant = "info", icon, children, className }) {
5511
5560
  const styles = variantStyles[variant];
5512
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
5513
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
5514
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: cn("text-sm", styles.icon), children })
5561
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
5562
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
5563
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("text-sm", styles.icon), children })
5515
5564
  ] });
5516
5565
  }
5517
5566
 
5518
5567
  // src/web/components/info-panel.tsx
5519
- var import_jsx_runtime57 = require("react/jsx-runtime");
5568
+ var import_jsx_runtime58 = require("react/jsx-runtime");
5520
5569
  var toneClass = {
5521
5570
  default: {
5522
5571
  panel: "border-white/8 bg-white/[0.03]",
@@ -5557,19 +5606,19 @@ function InfoPanel({
5557
5606
  className
5558
5607
  }) {
5559
5608
  const styles = toneClass[tone];
5560
- const renderedIcon = typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icon, { name: icon, className: cn("mt-0.5 shrink-0 text-icon-xl", styles.icon) }) : icon;
5561
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("rounded-xl border p-4", styles.panel, className), children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-start gap-3", children: [
5609
+ const renderedIcon = typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon, { name: icon, className: cn("mt-0.5 shrink-0 text-icon-xl", styles.icon) }) : icon;
5610
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: cn("rounded-xl border p-4", styles.panel, className), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-start gap-3", children: [
5562
5611
  renderedIcon,
5563
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "min-w-0 flex-1", children: [
5564
- title && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: cn("text-sm font-bold", styles.title), children: title }),
5565
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
5612
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "min-w-0 flex-1", children: [
5613
+ title && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: cn("text-sm font-bold", styles.title), children: title }),
5614
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
5566
5615
  ] })
5567
5616
  ] }) });
5568
5617
  }
5569
5618
 
5570
5619
  // src/web/components/error-boundary.tsx
5571
5620
  var import_react12 = require("react");
5572
- var import_jsx_runtime58 = require("react/jsx-runtime");
5621
+ var import_jsx_runtime59 = require("react/jsx-runtime");
5573
5622
  var ErrorBoundary = class extends import_react12.Component {
5574
5623
  constructor(props) {
5575
5624
  super(props);
@@ -5583,11 +5632,11 @@ var ErrorBoundary = class extends import_react12.Component {
5583
5632
  }
5584
5633
  render() {
5585
5634
  if (this.state.hasError) {
5586
- return this.props.fallback ?? /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
5587
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5588
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5589
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5590
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
5635
+ return this.props.fallback ?? /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
5636
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5637
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5638
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5639
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
5591
5640
  "button",
5592
5641
  {
5593
5642
  onClick: () => {
@@ -5605,7 +5654,7 @@ var ErrorBoundary = class extends import_react12.Component {
5605
5654
  };
5606
5655
 
5607
5656
  // src/web/components/recovery-phrase-card.tsx
5608
- var import_jsx_runtime59 = require("react/jsx-runtime");
5657
+ var import_jsx_runtime60 = require("react/jsx-runtime");
5609
5658
  function RecoveryPhraseCard({
5610
5659
  words,
5611
5660
  revealed = false,
@@ -5616,10 +5665,10 @@ function RecoveryPhraseCard({
5616
5665
  className
5617
5666
  }) {
5618
5667
  const hasWords = words.length > 0;
5619
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("section", { className: cn("space-y-2", className), children: [
5620
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
5621
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5622
- hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5668
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("section", { className: cn("space-y-2", className), children: [
5669
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
5670
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5671
+ hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5623
5672
  Button,
5624
5673
  {
5625
5674
  type: "button",
@@ -5628,27 +5677,27 @@ function RecoveryPhraseCard({
5628
5677
  onClick: () => onRevealChange(!revealed),
5629
5678
  className: "h-auto rounded-lg px-2 py-1 text-xs text-muted-foreground hover:text-white",
5630
5679
  children: [
5631
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
5680
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
5632
5681
  "Hide"
5633
5682
  ]
5634
5683
  }
5635
5684
  )
5636
5685
  ] }),
5637
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "relative", children: [
5638
- hasWords ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
5686
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "relative", children: [
5687
+ hasWords ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5639
5688
  "div",
5640
5689
  {
5641
5690
  className: cn(
5642
5691
  "grid grid-cols-3 gap-2 transition-all duration-300",
5643
5692
  !revealed && "pointer-events-none select-none blur-sm"
5644
5693
  ),
5645
- children: words.map((word, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
5646
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5647
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "font-mono text-sm text-white", children: word })
5694
+ children: words.map((word, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
5695
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5696
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "font-mono text-sm text-white", children: word })
5648
5697
  ] }, `${index}-${word}`))
5649
5698
  }
5650
- ) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "rounded-xl border border-warning/30 bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
5651
- hasWords && !revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5699
+ ) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "rounded-xl border border-warning/30 bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
5700
+ hasWords && !revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5652
5701
  Button,
5653
5702
  {
5654
5703
  type: "button",
@@ -5656,13 +5705,13 @@ function RecoveryPhraseCard({
5656
5705
  size: "sm",
5657
5706
  onClick: () => onRevealChange(true),
5658
5707
  children: [
5659
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
5708
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
5660
5709
  "Tap to reveal"
5661
5710
  ]
5662
5711
  }
5663
5712
  ) })
5664
5713
  ] }),
5665
- hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5714
+ hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5666
5715
  Button,
5667
5716
  {
5668
5717
  type: "button",
@@ -5671,7 +5720,7 @@ function RecoveryPhraseCard({
5671
5720
  onClick: onCopy,
5672
5721
  className: "w-full",
5673
5722
  children: [
5674
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
5723
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
5675
5724
  "Copy to clipboard"
5676
5725
  ]
5677
5726
  }
@@ -5680,7 +5729,7 @@ function RecoveryPhraseCard({
5680
5729
  }
5681
5730
 
5682
5731
  // src/web/components/settings-selector-row.tsx
5683
- var import_jsx_runtime60 = require("react/jsx-runtime");
5732
+ var import_jsx_runtime61 = require("react/jsx-runtime");
5684
5733
  function SettingsSelectorRow({
5685
5734
  icon,
5686
5735
  title,
@@ -5689,9 +5738,9 @@ function SettingsSelectorRow({
5689
5738
  className,
5690
5739
  iconClassName
5691
5740
  }) {
5692
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
5693
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5694
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5741
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
5742
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5743
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
5695
5744
  "div",
5696
5745
  {
5697
5746
  className: cn(
@@ -5701,17 +5750,17 @@ function SettingsSelectorRow({
5701
5750
  children: icon
5702
5751
  }
5703
5752
  ),
5704
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5705
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
5706
- description && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
5753
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5754
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
5755
+ description && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
5707
5756
  ] })
5708
5757
  ] }),
5709
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "shrink-0", children: control })
5758
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "shrink-0", children: control })
5710
5759
  ] });
5711
5760
  }
5712
5761
 
5713
5762
  // src/web/components/bottom-sheet.tsx
5714
- var import_jsx_runtime61 = require("react/jsx-runtime");
5763
+ var import_jsx_runtime62 = require("react/jsx-runtime");
5715
5764
  function BottomSheet({
5716
5765
  open,
5717
5766
  title,
@@ -5727,7 +5776,7 @@ function BottomSheet({
5727
5776
  const handleBackdropClick = (event) => {
5728
5777
  if (closeOnBackdrop && event.target === event.currentTarget) onClose?.();
5729
5778
  };
5730
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
5779
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5731
5780
  "div",
5732
5781
  {
5733
5782
  className: cn(
@@ -5735,7 +5784,7 @@ function BottomSheet({
5735
5784
  className
5736
5785
  ),
5737
5786
  onClick: handleBackdropClick,
5738
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
5787
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5739
5788
  "div",
5740
5789
  {
5741
5790
  className: cn(
@@ -5743,13 +5792,13 @@ function BottomSheet({
5743
5792
  contentClassName
5744
5793
  ),
5745
5794
  children: [
5746
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
5747
- (title || icon) && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
5795
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
5796
+ (title || icon) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
5748
5797
  icon,
5749
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
5798
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
5750
5799
  ] }),
5751
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
5752
- actions && actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
5800
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
5801
+ actions && actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5753
5802
  Button,
5754
5803
  {
5755
5804
  type: "button",
@@ -5759,7 +5808,7 @@ function BottomSheet({
5759
5808
  onClick: action.onClick,
5760
5809
  disabled: action.disabled,
5761
5810
  children: [
5762
- action.icon && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
5811
+ action.icon && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
5763
5812
  action.label
5764
5813
  ]
5765
5814
  },
@@ -5773,7 +5822,7 @@ function BottomSheet({
5773
5822
  }
5774
5823
 
5775
5824
  // src/web/components/disclosure-card.tsx
5776
- var import_jsx_runtime62 = require("react/jsx-runtime");
5825
+ var import_jsx_runtime63 = require("react/jsx-runtime");
5777
5826
  function DisclosureCard({
5778
5827
  title,
5779
5828
  children,
@@ -5784,8 +5833,8 @@ function DisclosureCard({
5784
5833
  triggerClassName,
5785
5834
  contentClassName
5786
5835
  }) {
5787
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className, children: [
5788
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5836
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className, children: [
5837
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
5789
5838
  "button",
5790
5839
  {
5791
5840
  type: "button",
@@ -5795,11 +5844,11 @@ function DisclosureCard({
5795
5844
  triggerClassName
5796
5845
  ),
5797
5846
  children: [
5798
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5847
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5799
5848
  icon,
5800
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
5849
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
5801
5850
  ] }),
5802
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5851
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5803
5852
  Icon,
5804
5853
  {
5805
5854
  name: open ? "expand_less" : "expand_more",
@@ -5809,7 +5858,7 @@ function DisclosureCard({
5809
5858
  ]
5810
5859
  }
5811
5860
  ),
5812
- open && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5861
+ open && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5813
5862
  "div",
5814
5863
  {
5815
5864
  className: cn(
@@ -5823,7 +5872,7 @@ function DisclosureCard({
5823
5872
  }
5824
5873
 
5825
5874
  // src/web/components/stepper-number-input.tsx
5826
- var import_jsx_runtime63 = require("react/jsx-runtime");
5875
+ var import_jsx_runtime64 = require("react/jsx-runtime");
5827
5876
  function StepperNumberInput({
5828
5877
  value,
5829
5878
  onChange,
@@ -5840,7 +5889,7 @@ function StepperNumberInput({
5840
5889
  const bounded = max === void 0 ? boundedMin : Math.min(max, boundedMin);
5841
5890
  onChange(Number.isFinite(bounded) ? bounded : min ?? 0);
5842
5891
  };
5843
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
5892
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
5844
5893
  "div",
5845
5894
  {
5846
5895
  className: cn(
@@ -5848,7 +5897,7 @@ function StepperNumberInput({
5848
5897
  className
5849
5898
  ),
5850
5899
  children: [
5851
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5900
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
5852
5901
  "button",
5853
5902
  {
5854
5903
  type: "button",
@@ -5856,10 +5905,10 @@ function StepperNumberInput({
5856
5905
  disabled: disabled || min !== void 0 && value <= min,
5857
5906
  onClick: () => clamp(value - step),
5858
5907
  "aria-label": "Decrease",
5859
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "remove", className: "text-icon-md" })
5908
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "remove", className: "text-icon-md" })
5860
5909
  }
5861
5910
  ),
5862
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5911
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
5863
5912
  "input",
5864
5913
  {
5865
5914
  type: "number",
@@ -5876,7 +5925,7 @@ function StepperNumberInput({
5876
5925
  )
5877
5926
  }
5878
5927
  ),
5879
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5928
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
5880
5929
  "button",
5881
5930
  {
5882
5931
  type: "button",
@@ -5884,7 +5933,7 @@ function StepperNumberInput({
5884
5933
  disabled: disabled || max !== void 0 && value >= max,
5885
5934
  onClick: () => clamp(value + step),
5886
5935
  "aria-label": "Increase",
5887
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "add", className: "text-icon-md" })
5936
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "add", className: "text-icon-md" })
5888
5937
  }
5889
5938
  )
5890
5939
  ]
@@ -5893,7 +5942,7 @@ function StepperNumberInput({
5893
5942
  }
5894
5943
 
5895
5944
  // src/web/components/metric-card.tsx
5896
- var import_jsx_runtime64 = require("react/jsx-runtime");
5945
+ var import_jsx_runtime65 = require("react/jsx-runtime");
5897
5946
  var toneClasses2 = {
5898
5947
  primary: "border-primary/20 bg-primary/10 text-primary",
5899
5948
  purple: "border-network-arkade/20 bg-network-arkade/10 text-network-arkade",
@@ -5911,27 +5960,27 @@ function MetricCard({
5911
5960
  tone = "muted",
5912
5961
  className
5913
5962
  }) {
5914
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: cn("space-y-1 rounded-xl border border-white/8 bg-white/3 p-2.5", className), children: [
5915
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-1.5", children: [
5916
- icon && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
5917
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
5963
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: cn("space-y-1 rounded-xl border border-white/8 bg-white/3 p-2.5", className), children: [
5964
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5", children: [
5965
+ icon && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
5966
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
5918
5967
  ] }),
5919
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "font-mono text-sm font-bold text-foreground", children: value }),
5920
- description && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-xxs text-white/45", children: description })
5968
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "font-mono text-sm font-bold text-foreground", children: value }),
5969
+ description && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-xxs text-white/45", children: description })
5921
5970
  ] });
5922
5971
  }
5923
5972
 
5924
5973
  // src/web/components/filter-chip-group.tsx
5925
- var import_jsx_runtime65 = require("react/jsx-runtime");
5974
+ var import_jsx_runtime66 = require("react/jsx-runtime");
5926
5975
  function FilterChipGroup({
5927
5976
  options,
5928
5977
  value,
5929
5978
  onChange,
5930
5979
  className
5931
5980
  }) {
5932
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
5981
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
5933
5982
  const active = option.value === value;
5934
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
5983
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
5935
5984
  "button",
5936
5985
  {
5937
5986
  type: "button",
@@ -5945,7 +5994,7 @@ function FilterChipGroup({
5945
5994
  children: [
5946
5995
  option.icon,
5947
5996
  option.label,
5948
- option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
5997
+ option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
5949
5998
  "span",
5950
5999
  {
5951
6000
  className: cn(
@@ -5963,7 +6012,7 @@ function FilterChipGroup({
5963
6012
  }
5964
6013
 
5965
6014
  // src/web/components/activity-row.tsx
5966
- var import_jsx_runtime66 = require("react/jsx-runtime");
6015
+ var import_jsx_runtime67 = require("react/jsx-runtime");
5967
6016
  var directionUi = {
5968
6017
  inbound: { icon: "south_west", iconClass: "bg-primary/20 text-primary", amountClass: "text-primary", sign: "+" },
5969
6018
  outbound: { icon: "north_east", iconClass: "bg-white/10 text-muted-foreground", amountClass: "text-foreground", sign: "-" },
@@ -5983,26 +6032,26 @@ function ActivityRow({
5983
6032
  className
5984
6033
  }) {
5985
6034
  const ui = directionUi[direction];
5986
- const content = /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
5987
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
5988
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: cn("flex size-10 shrink-0 items-center justify-center rounded-xl shadow-inner", ui.iconClass), children: typeof icon === "string" || !icon ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon }),
5989
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
5990
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
5991
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
6035
+ const content = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
6036
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
6037
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: cn("flex size-10 shrink-0 items-center justify-center rounded-xl shadow-inner", ui.iconClass), children: typeof icon === "string" || !icon ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon }),
6038
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
6039
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
6040
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
5992
6041
  networkBadge
5993
6042
  ] }),
5994
- (status || timestamp) && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "mt-1 flex items-center gap-2", children: [
5995
- status && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(StatusBadge, { status, className: "px-1.5 py-0.5 text-xxs" }),
5996
- timestamp && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp })
6043
+ (status || timestamp) && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "mt-1 flex items-center gap-2", children: [
6044
+ status && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(StatusBadge, { status, className: "px-1.5 py-0.5 text-xxs" }),
6045
+ timestamp && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp })
5997
6046
  ] })
5998
6047
  ] })
5999
6048
  ] }),
6000
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "shrink-0 text-right", children: [
6001
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
6049
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "shrink-0 text-right", children: [
6050
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
6002
6051
  ui.sign,
6003
6052
  amount
6004
6053
  ] }),
6005
- unit && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
6054
+ unit && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
6006
6055
  ] })
6007
6056
  ] });
6008
6057
  const rowClassName = cn(
@@ -6011,23 +6060,23 @@ function ActivityRow({
6011
6060
  className
6012
6061
  );
6013
6062
  if (onClick) {
6014
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
6063
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
6015
6064
  }
6016
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: rowClassName, children: content });
6065
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: rowClassName, children: content });
6017
6066
  }
6018
6067
 
6019
6068
  // src/web/components/skeleton.tsx
6020
- var import_jsx_runtime67 = require("react/jsx-runtime");
6069
+ var import_jsx_runtime68 = require("react/jsx-runtime");
6021
6070
  var toneClass2 = {
6022
6071
  primary: "bg-white/10",
6023
6072
  secondary: "bg-white/5",
6024
6073
  card: "bg-white/[0.06]"
6025
6074
  };
6026
6075
  function Skeleton({ className, tone = "primary" }) {
6027
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
6076
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
6028
6077
  }
6029
6078
  function ListSkeletonRows({ rows = 3, className, rowClassName }) {
6030
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6079
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6031
6080
  "div",
6032
6081
  {
6033
6082
  className: cn(
@@ -6035,14 +6084,14 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
6035
6084
  rowClassName
6036
6085
  ),
6037
6086
  children: [
6038
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
6039
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex-1 space-y-2", children: [
6040
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { className: "h-3 w-28" }),
6041
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
6087
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
6088
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex-1 space-y-2", children: [
6089
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { className: "h-3 w-28" }),
6090
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
6042
6091
  ] }),
6043
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
6044
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { className: "h-3 w-14" }),
6045
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
6092
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
6093
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { className: "h-3 w-14" }),
6094
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
6046
6095
  ] })
6047
6096
  ]
6048
6097
  },
@@ -6051,7 +6100,7 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
6051
6100
  }
6052
6101
 
6053
6102
  // src/web/components/secret-reveal-card.tsx
6054
- var import_jsx_runtime68 = require("react/jsx-runtime");
6103
+ var import_jsx_runtime69 = require("react/jsx-runtime");
6055
6104
  function SecretRevealCard({
6056
6105
  value,
6057
6106
  revealed,
@@ -6063,9 +6112,9 @@ function SecretRevealCard({
6063
6112
  className,
6064
6113
  valueClassName
6065
6114
  }) {
6066
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: cn("space-y-3", className), children: [
6067
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "relative", children: [
6068
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6115
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: cn("space-y-3", className), children: [
6116
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
6117
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6069
6118
  "p",
6070
6119
  {
6071
6120
  className: cn(
@@ -6076,40 +6125,40 @@ function SecretRevealCard({
6076
6125
  children: value
6077
6126
  }
6078
6127
  ) }),
6079
- !revealed && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6128
+ !revealed && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6080
6129
  "button",
6081
6130
  {
6082
6131
  type: "button",
6083
6132
  onClick: () => onRevealChange(true),
6084
6133
  className: "flex items-center gap-2 rounded-xl border border-white/20 bg-card px-4 py-2 text-sm font-bold text-foreground shadow-lg transition-all hover:bg-accent",
6085
6134
  children: [
6086
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6135
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6087
6136
  revealLabel
6088
6137
  ]
6089
6138
  }
6090
6139
  ) })
6091
6140
  ] }),
6092
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex gap-2", children: [
6093
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6141
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex gap-2", children: [
6142
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6094
6143
  "button",
6095
6144
  {
6096
6145
  type: "button",
6097
6146
  onClick: () => onRevealChange(!revealed),
6098
6147
  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",
6099
6148
  children: [
6100
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
6149
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
6101
6150
  revealed ? hideLabel : revealLabel
6102
6151
  ]
6103
6152
  }
6104
6153
  ),
6105
- revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6154
+ revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6106
6155
  "button",
6107
6156
  {
6108
6157
  type: "button",
6109
6158
  onClick: onCopy,
6110
6159
  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",
6111
6160
  children: [
6112
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6161
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6113
6162
  copyLabel
6114
6163
  ]
6115
6164
  }
@@ -6119,7 +6168,7 @@ function SecretRevealCard({
6119
6168
  }
6120
6169
 
6121
6170
  // src/web/components/settings-section-card.tsx
6122
- var import_jsx_runtime69 = require("react/jsx-runtime");
6171
+ var import_jsx_runtime70 = require("react/jsx-runtime");
6123
6172
  function SettingsSectionCard({
6124
6173
  title,
6125
6174
  description,
@@ -6128,15 +6177,15 @@ function SettingsSectionCard({
6128
6177
  className,
6129
6178
  bodyClassName
6130
6179
  }) {
6131
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card p-4", className), children: [
6132
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
6133
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "min-w-0 flex-1", children: [
6134
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
6135
- description && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
6180
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card p-4", className), children: [
6181
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
6182
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "min-w-0 flex-1", children: [
6183
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
6184
+ description && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
6136
6185
  ] }),
6137
6186
  badge
6138
6187
  ] }),
6139
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: bodyClassName, children })
6188
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: bodyClassName, children })
6140
6189
  ] });
6141
6190
  }
6142
6191
  var badgeToneClass = {
@@ -6148,7 +6197,7 @@ var badgeToneClass = {
6148
6197
  muted: "border-white/10 bg-white/[0.05] text-white/55"
6149
6198
  };
6150
6199
  function ToneBadge({ children, tone = "muted", className }) {
6151
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6200
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6152
6201
  "span",
6153
6202
  {
6154
6203
  className: cn(
@@ -6162,7 +6211,7 @@ function ToneBadge({ children, tone = "muted", className }) {
6162
6211
  }
6163
6212
 
6164
6213
  // src/web/components/selectable-card.tsx
6165
- var import_jsx_runtime70 = require("react/jsx-runtime");
6214
+ var import_jsx_runtime71 = require("react/jsx-runtime");
6166
6215
  function SelectableCard({
6167
6216
  selected,
6168
6217
  onClick,
@@ -6174,28 +6223,28 @@ function SelectableCard({
6174
6223
  children,
6175
6224
  className
6176
6225
  }) {
6177
- const content = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
6178
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6179
- indicator && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6226
+ const content = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
6227
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6228
+ indicator && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6180
6229
  "div",
6181
6230
  {
6182
6231
  className: cn(
6183
6232
  "mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors",
6184
6233
  selected ? "border-primary bg-primary" : "border-white/20"
6185
6234
  ),
6186
- children: selected && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "size-2 rounded-full bg-background" })
6235
+ children: selected && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "size-2 rounded-full bg-background" })
6187
6236
  }
6188
6237
  ),
6189
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "min-w-0 flex-1", children: [
6190
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
6191
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
6238
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "min-w-0 flex-1", children: [
6239
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
6240
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
6192
6241
  badge
6193
6242
  ] }),
6194
- description && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6243
+ description && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6195
6244
  children
6196
6245
  ] })
6197
6246
  ] }),
6198
- preview && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "shrink-0 text-right", children: preview })
6247
+ preview && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "shrink-0 text-right", children: preview })
6199
6248
  ] });
6200
6249
  const cardClassName = cn(
6201
6250
  "w-full rounded-2xl border p-4 text-left transition-all duration-200",
@@ -6203,14 +6252,14 @@ function SelectableCard({
6203
6252
  className
6204
6253
  );
6205
6254
  if (onClick) {
6206
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
6255
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
6207
6256
  }
6208
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: cardClassName, children: content });
6257
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: cardClassName, children: content });
6209
6258
  }
6210
6259
 
6211
6260
  // src/web/components/mobile-hero-animation.tsx
6212
6261
  var import_react13 = require("react");
6213
- var import_jsx_runtime71 = require("react/jsx-runtime");
6262
+ var import_jsx_runtime72 = require("react/jsx-runtime");
6214
6263
  var PROTOCOLS = [
6215
6264
  { name: "Bitcoin", network: "Bitcoin", iconSuffix: "bitcoin/bitcoin-logo.svg" },
6216
6265
  { name: "Lightning", network: "LN", iconSuffix: "lightning/lightning.svg" },
@@ -6269,15 +6318,15 @@ var MobileHeroAnimation = ({
6269
6318
  }, []);
6270
6319
  const anim = !reducedMotion && isVisible;
6271
6320
  const scale = size / 280;
6272
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6321
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6273
6322
  "div",
6274
6323
  {
6275
6324
  ref: containerRef,
6276
6325
  className,
6277
6326
  style: { position: "relative", width: size, height: size },
6278
6327
  children: [
6279
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("style", { children: KEYFRAMES }),
6280
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { style: {
6328
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("style", { children: KEYFRAMES }),
6329
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { style: {
6281
6330
  position: "absolute",
6282
6331
  top: 0,
6283
6332
  left: 0,
@@ -6286,7 +6335,7 @@ var MobileHeroAnimation = ({
6286
6335
  transformOrigin: "top left",
6287
6336
  transform: scale !== 1 ? `scale(${scale})` : void 0
6288
6337
  }, children: [
6289
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6338
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6290
6339
  "svg",
6291
6340
  {
6292
6341
  viewBox: "0 0 280 280",
@@ -6295,35 +6344,35 @@ var MobileHeroAnimation = ({
6295
6344
  style: { position: "absolute", inset: 0 },
6296
6345
  xmlns: "http://www.w3.org/2000/svg",
6297
6346
  children: [
6298
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("defs", { children: [
6299
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6300
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6301
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6302
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6347
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("defs", { children: [
6348
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6349
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6350
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6351
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6303
6352
  ] }),
6304
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6305
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6306
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6353
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6354
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6355
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6307
6356
  ] }),
6308
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6309
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6310
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6357
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6358
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6359
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6311
6360
  ] }),
6312
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6313
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6314
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("feMerge", { children: [
6315
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("feMergeNode", { in: "blur" }),
6316
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("feMergeNode", { in: "SourceGraphic" })
6361
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6362
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6363
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("feMerge", { children: [
6364
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "blur" }),
6365
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "SourceGraphic" })
6317
6366
  ] })
6318
6367
  ] })
6319
6368
  ] }),
6320
- /* @__PURE__ */ (0, import_jsx_runtime71.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_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
6321
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
6322
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6369
+ /* @__PURE__ */ (0, import_jsx_runtime72.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_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6370
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
6371
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6323
6372
  ] }) }),
6324
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
6325
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6326
- anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6373
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
6374
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6375
+ anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6327
6376
  "animateTransform",
6328
6377
  {
6329
6378
  attributeName: "transform",
@@ -6344,8 +6393,8 @@ var MobileHeroAnimation = ({
6344
6393
  const y2 = C + dy * (ORBIT_R - BADGE_HALF);
6345
6394
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6346
6395
  const dur = `${2 + i * 0.3}s`;
6347
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6348
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6396
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6397
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6349
6398
  "line",
6350
6399
  {
6351
6400
  x1,
@@ -6356,29 +6405,29 @@ var MobileHeroAnimation = ({
6356
6405
  strokeWidth: "0.8",
6357
6406
  strokeDasharray: "2 4",
6358
6407
  opacity: "0.25",
6359
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6408
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6360
6409
  }
6361
6410
  ),
6362
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
6363
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6364
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6365
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6366
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6411
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6412
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6413
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6414
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6415
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6367
6416
  ] }) })
6368
6417
  ] }, `line-${i}`);
6369
6418
  })
6370
6419
  ] }),
6371
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
6372
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
6373
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6374
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6420
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
6421
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6422
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6423
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6375
6424
  ] }) }),
6376
- /* @__PURE__ */ (0, import_jsx_runtime71.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_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
6377
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6378
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6425
+ /* @__PURE__ */ (0, import_jsx_runtime72.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_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6426
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6427
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6379
6428
  ] }) }),
6380
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6381
- anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6429
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6430
+ anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6382
6431
  "animateTransform",
6383
6432
  {
6384
6433
  attributeName: "transform",
@@ -6390,13 +6439,13 @@ var MobileHeroAnimation = ({
6390
6439
  additive: "sum"
6391
6440
  }
6392
6441
  ),
6393
- /* @__PURE__ */ (0, import_jsx_runtime71.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_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
6394
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6395
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6442
+ /* @__PURE__ */ (0, import_jsx_runtime72.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_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6443
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6444
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6396
6445
  ] }) })
6397
6446
  ] }) }),
6398
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6399
- anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6447
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6448
+ anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6400
6449
  "animateTransform",
6401
6450
  {
6402
6451
  attributeName: "transform",
@@ -6408,19 +6457,19 @@ var MobileHeroAnimation = ({
6408
6457
  additive: "sum"
6409
6458
  }
6410
6459
  ),
6411
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
6460
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
6412
6461
  ] }) }),
6413
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6414
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6415
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6416
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6417
- /* @__PURE__ */ (0, import_jsx_runtime71.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" }),
6418
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6462
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6463
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6464
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6465
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6466
+ /* @__PURE__ */ (0, import_jsx_runtime72.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" }),
6467
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6419
6468
  ] })
6420
6469
  ]
6421
6470
  }
6422
6471
  ),
6423
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { style: {
6472
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { style: {
6424
6473
  position: "absolute",
6425
6474
  inset: 0,
6426
6475
  width: 280,
@@ -6431,7 +6480,7 @@ var MobileHeroAnimation = ({
6431
6480
  const x = C + Math.cos(angle) * ORBIT_R - BADGE_HALF;
6432
6481
  const y = C + Math.sin(angle) * ORBIT_R - BADGE_HALF;
6433
6482
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6434
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6483
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6435
6484
  "div",
6436
6485
  {
6437
6486
  style: {
@@ -6442,7 +6491,7 @@ var MobileHeroAnimation = ({
6442
6491
  height: BADGE_SIZE,
6443
6492
  animation: anim ? "mha-counter-spin 20s linear infinite" : "none"
6444
6493
  },
6445
- children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { style: {
6494
+ children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { style: {
6446
6495
  width: "100%",
6447
6496
  height: "100%",
6448
6497
  borderRadius: "50%",
@@ -6453,7 +6502,7 @@ var MobileHeroAnimation = ({
6453
6502
  display: "flex",
6454
6503
  alignItems: "center",
6455
6504
  justifyContent: "center"
6456
- }, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6505
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6457
6506
  "img",
6458
6507
  {
6459
6508
  src: iconBasePath ? `${iconBasePath}/${protocol.iconSuffix}` : protocolIcons[protocol.network] ?? protocol.iconSuffix,
@@ -6473,7 +6522,7 @@ var MobileHeroAnimation = ({
6473
6522
 
6474
6523
  // src/web/components/kaleidoscope-hero-animation.tsx
6475
6524
  var import_react14 = require("react");
6476
- var import_jsx_runtime72 = require("react/jsx-runtime");
6525
+ var import_jsx_runtime73 = require("react/jsx-runtime");
6477
6526
  var PROTOCOLS2 = [
6478
6527
  { name: "Bitcoin L1", network: "L1", color: "#F7931A", glowColor: "rgba(247,147,26,0.5)" },
6479
6528
  { name: "Lightning", network: "LN", color: "#fbbf24", glowColor: "rgba(251,191,36,0.5)" },
@@ -6578,13 +6627,13 @@ var KaleidoScopeHeroAnimation = ({
6578
6627
  const angle = Math.PI * 2 * i / 7 - Math.PI / 2;
6579
6628
  return { x: c + orbitR * Math.cos(angle), y: c + orbitR * Math.sin(angle) };
6580
6629
  });
6581
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6630
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6582
6631
  "div",
6583
6632
  {
6584
6633
  ref: containerRef,
6585
6634
  className: `relative ${className}`,
6586
6635
  style: size ? { width: size, height: size } : void 0,
6587
- children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6636
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
6588
6637
  "svg",
6589
6638
  {
6590
6639
  viewBox: "0 0 500 500",
@@ -6593,60 +6642,60 @@ var KaleidoScopeHeroAnimation = ({
6593
6642
  xmlns: "http://www.w3.org/2000/svg",
6594
6643
  className: "overflow-visible",
6595
6644
  children: [
6596
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("defs", { children: [
6597
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6598
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
6599
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
6645
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("defs", { children: [
6646
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6647
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
6648
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
6600
6649
  ] }),
6601
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6602
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
6603
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
6650
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6651
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
6652
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
6604
6653
  ] }),
6605
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6606
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
6607
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
6654
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6655
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
6656
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
6608
6657
  ] }),
6609
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6610
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6611
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6658
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6659
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6660
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6612
6661
  ] }),
6613
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6614
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
6615
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
6662
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6663
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
6664
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
6616
6665
  ] }),
6617
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6618
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6619
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6666
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6667
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6668
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6620
6669
  ] }),
6621
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6622
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6623
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6624
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6670
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6671
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6672
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6673
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6625
6674
  ] }),
6626
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6627
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6628
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6629
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6675
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6676
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6677
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6678
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6630
6679
  ] }),
6631
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6632
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6633
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("feMerge", { children: [
6634
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "blur" }),
6635
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "SourceGraphic" })
6680
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6681
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6682
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("feMerge", { children: [
6683
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "blur" }),
6684
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "SourceGraphic" })
6636
6685
  ] })
6637
6686
  ] }),
6638
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6639
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6640
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("feMerge", { children: [
6641
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "blur" }),
6642
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "SourceGraphic" })
6687
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6688
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6689
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("feMerge", { children: [
6690
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "blur" }),
6691
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "SourceGraphic" })
6643
6692
  ] })
6644
6693
  ] })
6645
6694
  ] }),
6646
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6647
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(20), children: [
6648
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6649
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6695
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6696
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(20), children: [
6697
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6698
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6650
6699
  "animateTransform",
6651
6700
  {
6652
6701
  attributeName: "transform",
@@ -6659,14 +6708,14 @@ var KaleidoScopeHeroAnimation = ({
6659
6708
  ),
6660
6709
  Array.from({ length: 6 }, (_, i) => {
6661
6710
  const a = Math.PI / 3 * i;
6662
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6663
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6664
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
6711
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6712
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6713
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
6665
6714
  ] }, `ha-${i}`);
6666
6715
  }),
6667
6716
  Array.from({ length: 6 }, (_, i) => {
6668
6717
  const a = Math.PI / 3 * i + Math.PI / 6;
6669
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6718
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6670
6719
  "path",
6671
6720
  {
6672
6721
  d: triPath(14),
@@ -6679,7 +6728,7 @@ var KaleidoScopeHeroAnimation = ({
6679
6728
  }),
6680
6729
  Array.from({ length: 12 }, (_, i) => {
6681
6730
  const a = Math.PI / 6 * i;
6682
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6731
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6683
6732
  "circle",
6684
6733
  {
6685
6734
  cx: c + outerR1 * 0.92 * Math.cos(a),
@@ -6687,14 +6736,14 @@ var KaleidoScopeHeroAnimation = ({
6687
6736
  r: "1.5",
6688
6737
  fill: "url(#kh-grad-a)",
6689
6738
  opacity: "0.15",
6690
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
6739
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
6691
6740
  },
6692
6741
  `od-${i}`
6693
6742
  );
6694
6743
  })
6695
6744
  ] }),
6696
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6697
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6745
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6746
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6698
6747
  "animateTransform",
6699
6748
  {
6700
6749
  attributeName: "transform",
@@ -6707,28 +6756,28 @@ var KaleidoScopeHeroAnimation = ({
6707
6756
  ),
6708
6757
  Array.from({ length: 6 }, (_, i) => {
6709
6758
  const a = Math.PI / 3 * i + Math.PI / 6;
6710
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
6711
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
6712
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
6759
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
6760
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
6761
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
6713
6762
  ] }, `hb-${i}`);
6714
6763
  }),
6715
6764
  Array.from({ length: 6 }, (_, i) => {
6716
6765
  const a = Math.PI / 3 * i;
6717
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6766
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6718
6767
  "path",
6719
6768
  {
6720
6769
  d: diamondPath(8, 16),
6721
6770
  transform: `translate(${c + outerR2 * 0.85 * Math.cos(a)},${c + outerR2 * 0.85 * Math.sin(a)}) rotate(${i * 60})`,
6722
6771
  fill: "url(#kh-grad-b)",
6723
6772
  opacity: "0.08",
6724
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
6773
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
6725
6774
  },
6726
6775
  `db-${i}`
6727
6776
  );
6728
6777
  })
6729
6778
  ] }),
6730
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6731
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6779
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6780
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6732
6781
  "animateTransform",
6733
6782
  {
6734
6783
  attributeName: "transform",
@@ -6742,23 +6791,23 @@ var KaleidoScopeHeroAnimation = ({
6742
6791
  Array.from({ length: 12 }, (_, i) => {
6743
6792
  const a = Math.PI / 6 * i;
6744
6793
  const r = outerR1 * (0.6 + i % 2 * 0.15);
6745
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6794
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6746
6795
  "path",
6747
6796
  {
6748
6797
  d: triPath(10),
6749
6798
  transform: `translate(${c + r * Math.cos(a)},${c + r * Math.sin(a)}) rotate(${i * 30 + 15})`,
6750
6799
  fill: "url(#kh-grad-c)",
6751
6800
  opacity: "0.05",
6752
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
6801
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
6753
6802
  },
6754
6803
  `tc-${i}`
6755
6804
  );
6756
6805
  })
6757
6806
  ] })
6758
6807
  ] }),
6759
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(14), children: [
6760
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6761
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6808
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(14), children: [
6809
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6810
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6762
6811
  "animateTransform",
6763
6812
  {
6764
6813
  attributeName: "transform",
@@ -6771,9 +6820,9 @@ var KaleidoScopeHeroAnimation = ({
6771
6820
  ),
6772
6821
  Array.from({ length: 12 }, (_, i) => {
6773
6822
  const a = Math.PI / 6 * i;
6774
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
6775
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
6776
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
6823
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
6824
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
6825
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
6777
6826
  ] }, `mh-${i}`);
6778
6827
  })
6779
6828
  ] }),
@@ -6784,7 +6833,7 @@ var KaleidoScopeHeroAnimation = ({
6784
6833
  const y1 = c + midR * Math.sin(a1);
6785
6834
  const x2 = c + midR * Math.cos(a2);
6786
6835
  const y2 = c + midR * Math.sin(a2);
6787
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6836
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6788
6837
  "path",
6789
6838
  {
6790
6839
  d: `M${x1},${y1} Q${c},${c} ${x2},${y2}`,
@@ -6793,17 +6842,17 @@ var KaleidoScopeHeroAnimation = ({
6793
6842
  strokeWidth: "0.5",
6794
6843
  strokeDasharray: "3 5",
6795
6844
  opacity: "0.1",
6796
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
6845
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
6797
6846
  },
6798
6847
  `arc-${i}`
6799
6848
  );
6800
6849
  })
6801
6850
  ] }),
6802
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(10), children: [
6803
- /* @__PURE__ */ (0, import_jsx_runtime72.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_runtime72.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
6804
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
6805
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6806
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6851
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(10), children: [
6852
+ /* @__PURE__ */ (0, import_jsx_runtime73.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_runtime73.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
6853
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
6854
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6855
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6807
6856
  "animateTransform",
6808
6857
  {
6809
6858
  attributeName: "transform",
@@ -6818,8 +6867,8 @@ var KaleidoScopeHeroAnimation = ({
6818
6867
  const angle = Math.atan2(pos.y - c, pos.x - c);
6819
6868
  const dx = Math.cos(angle);
6820
6869
  const dy = Math.sin(angle);
6821
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6822
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6870
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6871
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6823
6872
  "line",
6824
6873
  {
6825
6874
  x1: c + dx * 52,
@@ -6830,14 +6879,14 @@ var KaleidoScopeHeroAnimation = ({
6830
6879
  strokeWidth: "0.8",
6831
6880
  strokeDasharray: "2 4",
6832
6881
  opacity: "0.2",
6833
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6882
+ 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" })
6834
6883
  }
6835
6884
  ),
6836
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6837
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6838
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6839
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6840
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
6885
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6886
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6887
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6888
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6889
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
6841
6890
  ] }) })
6842
6891
  ] }, `conn-${i}`);
6843
6892
  }),
@@ -6845,14 +6894,14 @@ var KaleidoScopeHeroAnimation = ({
6845
6894
  const pos = iconPositions[i];
6846
6895
  const labelWidth = Math.max(proto.name.length * 5.5 + 10, 32);
6847
6896
  const isHovered = hoveredProtocol === proto.name;
6848
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6897
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
6849
6898
  "g",
6850
6899
  {
6851
6900
  onMouseEnter: () => setHoveredProtocol(proto.name),
6852
6901
  onMouseLeave: () => setHoveredProtocol(null),
6853
6902
  style: { cursor: "pointer" },
6854
6903
  children: [
6855
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6904
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6856
6905
  "animateTransform",
6857
6906
  {
6858
6907
  attributeName: "transform",
@@ -6863,7 +6912,7 @@ var KaleidoScopeHeroAnimation = ({
6863
6912
  repeatCount: "indefinite"
6864
6913
  }
6865
6914
  ),
6866
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6915
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6867
6916
  "circle",
6868
6917
  {
6869
6918
  cx: "0",
@@ -6873,13 +6922,13 @@ var KaleidoScopeHeroAnimation = ({
6873
6922
  stroke: proto.color,
6874
6923
  strokeWidth: "1",
6875
6924
  opacity: "0",
6876
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6877
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
6878
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
6925
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6926
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
6927
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
6879
6928
  ] })
6880
6929
  }
6881
6930
  ),
6882
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6931
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6883
6932
  "circle",
6884
6933
  {
6885
6934
  cx: "0",
@@ -6889,10 +6938,10 @@ var KaleidoScopeHeroAnimation = ({
6889
6938
  stroke: proto.color,
6890
6939
  strokeWidth: "1",
6891
6940
  opacity: "0.15",
6892
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
6941
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
6893
6942
  }
6894
6943
  ),
6895
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6944
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6896
6945
  "circle",
6897
6946
  {
6898
6947
  cx: "0",
@@ -6902,10 +6951,10 @@ var KaleidoScopeHeroAnimation = ({
6902
6951
  stroke: proto.color,
6903
6952
  strokeWidth: "1.5",
6904
6953
  opacity: "0.25",
6905
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
6954
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
6906
6955
  }
6907
6956
  ),
6908
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6957
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6909
6958
  "circle",
6910
6959
  {
6911
6960
  cx: "0",
@@ -6916,8 +6965,8 @@ var KaleidoScopeHeroAnimation = ({
6916
6965
  strokeWidth: "1"
6917
6966
  }
6918
6967
  ),
6919
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
6920
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6968
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
6969
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6921
6970
  NetworkBadge,
6922
6971
  {
6923
6972
  network: proto.network,
@@ -6925,8 +6974,8 @@ var KaleidoScopeHeroAnimation = ({
6925
6974
  className: "w-full h-full"
6926
6975
  }
6927
6976
  ) }),
6928
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
6929
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6977
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
6978
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6930
6979
  "rect",
6931
6980
  {
6932
6981
  x: -labelWidth / 2,
@@ -6940,7 +6989,7 @@ var KaleidoScopeHeroAnimation = ({
6940
6989
  strokeOpacity: 0.4
6941
6990
  }
6942
6991
  ),
6943
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6992
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6944
6993
  "text",
6945
6994
  {
6946
6995
  x: "0",
@@ -6960,9 +7009,9 @@ var KaleidoScopeHeroAnimation = ({
6960
7009
  })
6961
7010
  ] })
6962
7011
  ] }),
6963
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(5), children: [
6964
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6965
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7012
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(5), children: [
7013
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
7014
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6966
7015
  "animateTransform",
6967
7016
  {
6968
7017
  attributeName: "transform",
@@ -6975,28 +7024,28 @@ var KaleidoScopeHeroAnimation = ({
6975
7024
  ),
6976
7025
  Array.from({ length: 6 }, (_, i) => {
6977
7026
  const a = Math.PI / 3 * i;
6978
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7027
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6979
7028
  "path",
6980
7029
  {
6981
7030
  d: diamondPath(10, 22),
6982
7031
  transform: `translate(${c + innerR * Math.cos(a)},${c + innerR * Math.sin(a)}) rotate(${i * 60})`,
6983
7032
  fill: "url(#kh-gp)",
6984
7033
  opacity: "0.15",
6985
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
7034
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
6986
7035
  },
6987
7036
  `d-${i}`
6988
7037
  );
6989
7038
  }),
6990
7039
  Array.from({ length: 6 }, (_, i) => {
6991
7040
  const a = Math.PI / 3 * i + Math.PI / 6;
6992
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7041
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6993
7042
  "path",
6994
7043
  {
6995
7044
  d: triPath(8),
6996
7045
  transform: `translate(${c + innerR * 0.75 * Math.cos(a)},${c + innerR * 0.75 * Math.sin(a)}) rotate(${i * 60 + 30})`,
6997
7046
  fill: "url(#kh-oc)",
6998
7047
  opacity: "0.1",
6999
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
7048
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
7000
7049
  },
7001
7050
  `it-${i}`
7002
7051
  );
@@ -7004,7 +7053,7 @@ var KaleidoScopeHeroAnimation = ({
7004
7053
  Array.from({ length: 12 }, (_, i) => {
7005
7054
  const a = Math.PI / 6 * i;
7006
7055
  const r = innerR * (i % 2 === 0 ? 0.55 : 0.65);
7007
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7056
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7008
7057
  "circle",
7009
7058
  {
7010
7059
  cx: c + r * Math.cos(a),
@@ -7012,14 +7061,14 @@ var KaleidoScopeHeroAnimation = ({
7012
7061
  r: i % 2 === 0 ? 2 : 1.5,
7013
7062
  fill: "url(#kh-oc)",
7014
7063
  opacity: "0.2",
7015
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
7064
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
7016
7065
  },
7017
7066
  `id-${i}`
7018
7067
  );
7019
7068
  })
7020
7069
  ] }),
7021
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
7022
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7070
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
7071
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7023
7072
  "animateTransform",
7024
7073
  {
7025
7074
  attributeName: "transform",
@@ -7032,27 +7081,27 @@ var KaleidoScopeHeroAnimation = ({
7032
7081
  ),
7033
7082
  Array.from({ length: 6 }, (_, i) => {
7034
7083
  const a = Math.PI / 3 * i + Math.PI / 6;
7035
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7084
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7036
7085
  "path",
7037
7086
  {
7038
7087
  d: hexPath2(6),
7039
7088
  transform: `translate(${c + innerR * 0.42 * Math.cos(a)},${c + innerR * 0.42 * Math.sin(a)})`,
7040
7089
  fill: "url(#kh-bp)",
7041
7090
  opacity: "0.1",
7042
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
7091
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
7043
7092
  },
7044
7093
  `ih-${i}`
7045
7094
  );
7046
7095
  })
7047
7096
  ] })
7048
7097
  ] }),
7049
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
7098
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
7050
7099
  const a = Math.PI * 2 * i / 16;
7051
7100
  const baseR = 60 + i % 4 * 45;
7052
7101
  const x = c + baseR * Math.cos(a);
7053
7102
  const y = c + baseR * Math.sin(a);
7054
7103
  const colors2 = ["#0e9dff", "#8a5cf6", "#22c55e", "#F7931A", "#06b6d4", "#15E99A"];
7055
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7104
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7056
7105
  "circle",
7057
7106
  {
7058
7107
  cx: x,
@@ -7060,26 +7109,26 @@ var KaleidoScopeHeroAnimation = ({
7060
7109
  r: 1 + i % 3 * 0.5,
7061
7110
  fill: colors2[i % colors2.length],
7062
7111
  opacity: "0",
7063
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
7064
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
7065
- /* @__PURE__ */ (0, import_jsx_runtime72.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` }),
7066
- /* @__PURE__ */ (0, import_jsx_runtime72.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` })
7112
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7113
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
7114
+ /* @__PURE__ */ (0, import_jsx_runtime73.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` }),
7115
+ /* @__PURE__ */ (0, import_jsx_runtime73.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` })
7067
7116
  ] })
7068
7117
  },
7069
7118
  `p-${i}`
7070
7119
  );
7071
7120
  }) }),
7072
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
7073
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
7074
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
7075
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
7076
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
7121
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
7122
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
7123
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7124
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
7125
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
7077
7126
  ] }) }),
7078
- /* @__PURE__ */ (0, import_jsx_runtime72.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_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
7079
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
7080
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
7127
+ /* @__PURE__ */ (0, import_jsx_runtime73.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_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7128
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
7129
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
7081
7130
  ] }) }),
7082
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7131
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7083
7132
  "path",
7084
7133
  {
7085
7134
  d: hexPath2(50),
@@ -7089,13 +7138,13 @@ var KaleidoScopeHeroAnimation = ({
7089
7138
  strokeWidth: "1.5",
7090
7139
  opacity: "0.4",
7091
7140
  filter: "url(#kh-glow)",
7092
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
7093
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
7094
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
7141
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7142
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
7143
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
7095
7144
  ] })
7096
7145
  }
7097
7146
  ),
7098
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7147
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7099
7148
  "path",
7100
7149
  {
7101
7150
  d: hexPath2(46),
@@ -7105,21 +7154,21 @@ var KaleidoScopeHeroAnimation = ({
7105
7154
  strokeWidth: "0.5"
7106
7155
  }
7107
7156
  ),
7108
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
7109
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
7110
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
7111
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
7112
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
7113
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
7114
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
7115
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
7116
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
7117
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
7118
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
7119
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
7120
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
7121
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
7122
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
7157
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
7158
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
7159
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
7160
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
7161
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
7162
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
7163
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
7164
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
7165
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
7166
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
7167
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
7168
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
7169
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
7170
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
7171
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
7123
7172
  ] })
7124
7173
  ] })
7125
7174
  ]
@@ -7253,7 +7302,7 @@ var colors = {
7253
7302
  };
7254
7303
 
7255
7304
  // src/web/components/deposit-ui-shared.tsx
7256
- var import_jsx_runtime73 = require("react/jsx-runtime");
7305
+ var import_jsx_runtime74 = require("react/jsx-runtime");
7257
7306
  var GLOW_ALPHA = "26";
7258
7307
  function qrGlowStyle(hex) {
7259
7308
  return { boxShadow: `0 0 30px ${hex}${GLOW_ALPHA}` };
@@ -7270,7 +7319,7 @@ var NETWORK_CONFIG = {
7270
7319
  // On-chain uses a chain-link glyph rather than the ₿ coin — the coin reads
7271
7320
  // as "the BTC asset", whereas this row is specifically the *on-chain* (L1)
7272
7321
  // receive rail alongside Lightning/Spark/Arkade, so a chain mark disambiguates.
7273
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7322
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7274
7323
  },
7275
7324
  lightning: {
7276
7325
  label: "Lightning",
@@ -7280,7 +7329,7 @@ var NETWORK_CONFIG = {
7280
7329
  border: "border-network-lightning/40",
7281
7330
  qrBorder: "border-network-lightning/30",
7282
7331
  qrGlow: qrGlowStyle(colors.network.lightning),
7283
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7332
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7284
7333
  },
7285
7334
  spark: {
7286
7335
  label: "Spark",
@@ -7290,7 +7339,7 @@ var NETWORK_CONFIG = {
7290
7339
  border: "border-info/40",
7291
7340
  qrBorder: "border-info/30",
7292
7341
  qrGlow: qrGlowStyle(colors.info),
7293
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7342
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7294
7343
  },
7295
7344
  arkade: {
7296
7345
  label: "Arkade",
@@ -7300,7 +7349,7 @@ var NETWORK_CONFIG = {
7300
7349
  border: "border-network-arkade/40",
7301
7350
  qrBorder: "border-network-arkade/30",
7302
7351
  qrGlow: qrGlowStyle(colors.network.arkade),
7303
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7352
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7304
7353
  }
7305
7354
  };
7306
7355
  var ACCOUNT_META = {
@@ -7309,14 +7358,14 @@ var ACCOUNT_META = {
7309
7358
  accentBg: "bg-primary/10",
7310
7359
  accentText: "text-primary",
7311
7360
  accentBorder: "border-primary/30",
7312
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/rgb/rgb-logo.svg", alt: "", className: "h-2.5 w-2.5 object-contain" })
7361
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/rgb/rgb-logo.svg", alt: "", className: "h-2.5 w-2.5 object-contain" })
7313
7362
  },
7314
7363
  SPARK: {
7315
7364
  shortLabel: "Spark",
7316
7365
  accentBg: "bg-info/10",
7317
7366
  accentText: "text-info",
7318
7367
  accentBorder: "border-info/30",
7319
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7368
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7320
7369
  "img",
7321
7370
  {
7322
7371
  src: "/icons/spark/Asterisk/Spark Asterisk White.svg",
@@ -7330,7 +7379,7 @@ var ACCOUNT_META = {
7330
7379
  accentBg: "bg-network-arkade/10",
7331
7380
  accentText: "text-network-arkade",
7332
7381
  accentBorder: "border-network-arkade/30",
7333
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7382
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7334
7383
  }
7335
7384
  };
7336
7385
  var METHOD_META = {
@@ -7347,7 +7396,7 @@ function InvoiceStatusBanner({
7347
7396
  isInvoiceFailedOrExpired,
7348
7397
  invoiceStatus
7349
7398
  }) {
7350
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7399
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7351
7400
  "div",
7352
7401
  {
7353
7402
  className: cn(
@@ -7355,17 +7404,17 @@ function InvoiceStatusBanner({
7355
7404
  isInvoicePaid ? "border-primary/30 bg-primary/10 text-primary" : isInvoiceFailedOrExpired ? "border-danger/20 bg-danger/10 text-danger" : "border-warning/20 bg-warning/10 text-warning"
7356
7405
  ),
7357
7406
  children: [
7358
- isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7359
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7360
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Waiting for payment..." })
7407
+ isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7408
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7409
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Waiting for payment..." })
7361
7410
  ] }),
7362
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7363
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7364
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Payment received!" })
7411
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7412
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7413
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Payment received!" })
7365
7414
  ] }),
7366
- isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7367
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7368
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("span", { children: [
7415
+ isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7416
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7417
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { children: [
7369
7418
  "Invoice ",
7370
7419
  invoiceStatus?.toLowerCase() === "expired" ? "expired" : "failed"
7371
7420
  ] })
@@ -7375,20 +7424,20 @@ function InvoiceStatusBanner({
7375
7424
  );
7376
7425
  }
7377
7426
  function PaidOverlay() {
7378
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
7379
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
7380
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7427
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
7428
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
7429
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7381
7430
  ] }) });
7382
7431
  }
7383
7432
  function CopyIcon({ copied }) {
7384
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7433
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7385
7434
  "div",
7386
7435
  {
7387
7436
  className: cn(
7388
7437
  "flex-shrink-0 rounded-lg p-2 transition-all",
7389
7438
  copied ? "bg-primary/15 text-primary" : "bg-white/5 text-white/40 group-hover:bg-primary/10 group-hover:text-primary"
7390
7439
  ),
7391
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "content_copy", size: "sm" })
7440
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "content_copy", size: "sm" })
7392
7441
  }
7393
7442
  );
7394
7443
  }
@@ -7399,7 +7448,7 @@ function AccountChoiceChip({
7399
7448
  label
7400
7449
  }) {
7401
7450
  const meta = ACCOUNT_META[account];
7402
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7451
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7403
7452
  "button",
7404
7453
  {
7405
7454
  type: "button",
@@ -7411,7 +7460,7 @@ function AccountChoiceChip({
7411
7460
  ),
7412
7461
  children: [
7413
7462
  meta.icon,
7414
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: label ?? meta.shortLabel })
7463
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: label ?? meta.shortLabel })
7415
7464
  ]
7416
7465
  }
7417
7466
  );
@@ -7460,8 +7509,8 @@ function NetworkInfoDisclosure({
7460
7509
  }) {
7461
7510
  const [open, setOpen] = (0, import_react15.useState)(false);
7462
7511
  if (networks.length === 0) return null;
7463
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: cn("overflow-hidden rounded-xl border border-white/8 bg-white/3 transition-all", className), children: [
7464
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7512
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: cn("overflow-hidden rounded-xl border border-white/8 bg-white/3 transition-all", className), children: [
7513
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7465
7514
  "button",
7466
7515
  {
7467
7516
  type: "button",
@@ -7469,24 +7518,24 @@ function NetworkInfoDisclosure({
7469
7518
  "aria-expanded": open,
7470
7519
  className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-left transition-colors hover:bg-white/4",
7471
7520
  children: [
7472
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7473
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
7474
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7521
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7522
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
7523
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7475
7524
  ]
7476
7525
  }
7477
7526
  ),
7478
- open && /* @__PURE__ */ (0, import_jsx_runtime73.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) => {
7527
+ open && /* @__PURE__ */ (0, import_jsx_runtime74.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) => {
7479
7528
  const info = NETWORK_INFO[network];
7480
7529
  const cfg = NETWORK_CONFIG[network];
7481
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "space-y-1", children: [
7482
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7483
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
7484
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7530
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "space-y-1", children: [
7531
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7532
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
7533
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7485
7534
  ] }),
7486
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7487
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
7488
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
7489
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: bullet })
7535
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7536
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
7537
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
7538
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: bullet })
7490
7539
  ] }, bullet)) })
7491
7540
  ] }, network);
7492
7541
  }) })
@@ -7500,7 +7549,7 @@ function MethodChoiceChip({
7500
7549
  onClick
7501
7550
  }) {
7502
7551
  const meta = METHOD_META[method];
7503
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7552
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7504
7553
  "button",
7505
7554
  {
7506
7555
  type: "button",
@@ -7513,14 +7562,14 @@ function MethodChoiceChip({
7513
7562
  ),
7514
7563
  children: [
7515
7564
  meta.label,
7516
- !enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7565
+ !enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7517
7566
  ]
7518
7567
  }
7519
7568
  );
7520
7569
  }
7521
7570
 
7522
7571
  // src/web/components/deposit-success-screen.tsx
7523
- var import_jsx_runtime74 = require("react/jsx-runtime");
7572
+ var import_jsx_runtime75 = require("react/jsx-runtime");
7524
7573
  function DepositSuccessScreen({
7525
7574
  handleDone,
7526
7575
  displayTicker,
@@ -7533,20 +7582,20 @@ function DepositSuccessScreen({
7533
7582
  const isInstant = network === "lightning" || network === "spark";
7534
7583
  const title = isInstant ? "Payment Received!" : "Deposit Detected!";
7535
7584
  const subtitle = isInstant ? `Your ${displayTicker} has arrived via ${networkLabel}.` : `Incoming deposit detected via ${networkLabel}. Funds will be available after confirmation.`;
7536
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
7537
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "relative mb-8", children: [
7538
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7539
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "relative flex size-20 items-center justify-center rounded-full border-2 border-primary/40 bg-primary/10 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
7585
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
7586
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "relative mb-8", children: [
7587
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7588
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "relative flex size-20 items-center justify-center rounded-full border-2 border-primary/40 bg-primary/10 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
7540
7589
  ] }),
7541
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7542
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7543
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "mb-10 flex items-center gap-3 rounded-2xl border bg-white/5 px-4 py-3", children: [
7544
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
7545
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "text-left", children: [
7546
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7547
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7590
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7591
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7592
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "mb-10 flex items-center gap-3 rounded-2xl border bg-white/5 px-4 py-3", children: [
7593
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
7594
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "text-left", children: [
7595
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7596
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7548
7597
  ] }),
7549
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7598
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7550
7599
  "div",
7551
7600
  {
7552
7601
  className: cn(
@@ -7557,27 +7606,27 @@ function DepositSuccessScreen({
7557
7606
  ),
7558
7607
  children: [
7559
7608
  net.icon,
7560
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: networkLabel })
7609
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: networkLabel })
7561
7610
  ]
7562
7611
  }
7563
7612
  )
7564
7613
  ] }),
7565
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7566
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7614
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7615
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7567
7616
  "Back to Wallet"
7568
7617
  ] })
7569
7618
  ] }) });
7570
7619
  }
7571
7620
 
7572
7621
  // src/web/components/deposit-network-default-modal.tsx
7573
- var import_jsx_runtime75 = require("react/jsx-runtime");
7622
+ var import_jsx_runtime76 = require("react/jsx-runtime");
7574
7623
  var NETWORK_OPTIONS = {
7575
7624
  RGB: {
7576
7625
  network: "onchain",
7577
7626
  account: "RGB",
7578
7627
  label: "On-chain / Lightning",
7579
7628
  description: "Classic Bitcoin address or Lightning invoice via the RLN node.",
7580
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7629
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7581
7630
  accentBg: "bg-network-bitcoin/10",
7582
7631
  accentBorder: "border-network-bitcoin/30",
7583
7632
  accentText: "text-network-bitcoin"
@@ -7587,7 +7636,7 @@ var NETWORK_OPTIONS = {
7587
7636
  account: "SPARK",
7588
7637
  label: "Spark",
7589
7638
  description: "Receive directly into your Spark account. Fast and free.",
7590
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7639
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7591
7640
  accentBg: "bg-info/10",
7592
7641
  accentBorder: "border-info/30",
7593
7642
  accentText: "text-info"
@@ -7597,7 +7646,7 @@ var NETWORK_OPTIONS = {
7597
7646
  account: "ARKADE",
7598
7647
  label: "Arkade",
7599
7648
  description: "Receive directly into your Arkade account. Low fees, near-instant settlement.",
7600
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7649
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7601
7650
  accentBg: "bg-network-arkade/10",
7602
7651
  accentBorder: "border-network-arkade/30",
7603
7652
  accentText: "text-network-arkade"
@@ -7612,20 +7661,20 @@ function DepositNetworkDefaultModal({
7612
7661
  }) {
7613
7662
  if (!open) return null;
7614
7663
  const options = availableAccounts.map((id) => NETWORK_OPTIONS[id]).filter(Boolean);
7615
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-black/60 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "w-full space-y-4 rounded-t-2xl border-t border-border bg-background px-4 pb-7 pt-5 animate-in slide-in-from-bottom-4 duration-200", children: [
7616
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
7617
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { children: [
7618
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7619
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7664
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-black/60 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "w-full space-y-4 rounded-t-2xl border-t border-border bg-background px-4 pb-7 pt-5 animate-in slide-in-from-bottom-4 duration-200", children: [
7665
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
7666
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { children: [
7667
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7668
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7620
7669
  "Pick how you would like to receive",
7621
7670
  " ",
7622
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7671
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7623
7672
  " by default. You can always switch in the deposit screen."
7624
7673
  ] })
7625
7674
  ] }),
7626
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "space-y-2", children: options.map((option) => {
7675
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "space-y-2", children: options.map((option) => {
7627
7676
  const isSuggested = option.account === suggestedAccount;
7628
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7677
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7629
7678
  "button",
7630
7679
  {
7631
7680
  type: "button",
@@ -7635,7 +7684,7 @@ function DepositNetworkDefaultModal({
7635
7684
  isSuggested ? cn("border-2", option.accentBorder, option.accentBg) : "border border-white/8 bg-white/4 hover:bg-white/8"
7636
7685
  ),
7637
7686
  children: [
7638
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7687
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7639
7688
  "div",
7640
7689
  {
7641
7690
  className: cn(
@@ -7646,10 +7695,10 @@ function DepositNetworkDefaultModal({
7646
7695
  children: option.icon
7647
7696
  }
7648
7697
  ),
7649
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "min-w-0 flex-1", children: [
7650
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center gap-2", children: [
7651
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
7652
- isSuggested && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7698
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "min-w-0 flex-1", children: [
7699
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-2", children: [
7700
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
7701
+ isSuggested && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7653
7702
  "span",
7654
7703
  {
7655
7704
  className: cn(
@@ -7661,9 +7710,9 @@ function DepositNetworkDefaultModal({
7661
7710
  }
7662
7711
  )
7663
7712
  ] }),
7664
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
7713
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
7665
7714
  ] }),
7666
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7715
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7667
7716
  "span",
7668
7717
  {
7669
7718
  className: cn(
@@ -7683,7 +7732,7 @@ function DepositNetworkDefaultModal({
7683
7732
 
7684
7733
  // src/web/components/btc-unified-receive.tsx
7685
7734
  var import_react16 = require("react");
7686
- var import_jsx_runtime76 = require("react/jsx-runtime");
7735
+ var import_jsx_runtime77 = require("react/jsx-runtime");
7687
7736
  function formatSatsForRow(value) {
7688
7737
  if (!value || value <= 0 || !Number.isFinite(value)) return null;
7689
7738
  return `${value.toLocaleString("en-US")} sats`;
@@ -7715,46 +7764,46 @@ function BtcUnifiedReceive({
7715
7764
  setInvoiceStatus(null);
7716
7765
  setAccountReceiveResult(null);
7717
7766
  };
7718
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7719
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7720
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
7721
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
7722
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(PaidOverlay, {})
7767
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7768
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7769
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
7770
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
7771
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(PaidOverlay, {})
7723
7772
  ] }),
7724
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
7725
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7773
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
7774
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7726
7775
  Button,
7727
7776
  {
7728
7777
  variant: "surface",
7729
7778
  size: "icon-xl",
7730
7779
  "aria-label": `Copy ${accountReceiveResult.qrLabel}`,
7731
7780
  onClick: () => void copyToClipboard(accountReceiveResult.qrValue),
7732
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
7781
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
7733
7782
  }
7734
7783
  ),
7735
- showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7784
+ showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7736
7785
  Button,
7737
7786
  {
7738
7787
  variant: "surface",
7739
7788
  size: "icon-xl",
7740
7789
  "aria-label": "New address",
7741
7790
  onClick: handleNewAddress,
7742
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "refresh", size: "lg" })
7791
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "refresh", size: "lg" })
7743
7792
  }
7744
7793
  ),
7745
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7794
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7746
7795
  Button,
7747
7796
  {
7748
7797
  variant: "surface",
7749
7798
  size: "icon-xl",
7750
7799
  "aria-label": "Edit amount and description",
7751
7800
  onClick: () => setShowEdit(true),
7752
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "edit", size: "lg" })
7801
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "edit", size: "lg" })
7753
7802
  }
7754
7803
  )
7755
7804
  ] })
7756
7805
  ] }),
7757
- invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7806
+ invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7758
7807
  InvoiceStatusBanner,
7759
7808
  {
7760
7809
  isInvoicePending,
@@ -7763,11 +7812,11 @@ function BtcUnifiedReceive({
7763
7812
  invoiceStatus
7764
7813
  }
7765
7814
  ),
7766
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1.5", children: [
7767
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
7815
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-1.5", children: [
7816
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
7768
7817
  accountReceiveResult.addresses.map((address) => {
7769
7818
  const network = NETWORK_CONFIG[address.network];
7770
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7819
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7771
7820
  "div",
7772
7821
  {
7773
7822
  className: cn(
@@ -7777,35 +7826,35 @@ function BtcUnifiedReceive({
7777
7826
  style: { borderLeftWidth: 3, borderLeftColor: network.color },
7778
7827
  onClick: () => void copyToClipboard(address.value),
7779
7828
  children: [
7780
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
7781
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "min-w-0 flex-1", children: [
7782
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7783
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
7829
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
7830
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
7831
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7832
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
7784
7833
  (() => {
7785
7834
  const amountLabel = formatSatsForRow(address.amountSats);
7786
- return amountLabel ? /* @__PURE__ */ (0, import_jsx_runtime76.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;
7835
+ return amountLabel ? /* @__PURE__ */ (0, import_jsx_runtime77.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;
7787
7836
  })()
7788
7837
  ] }),
7789
- /* @__PURE__ */ (0, import_jsx_runtime76.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 })
7838
+ /* @__PURE__ */ (0, import_jsx_runtime77.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 })
7790
7839
  ] }),
7791
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(CopyIcon, { copied: copied === address.value })
7840
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CopyIcon, { copied: copied === address.value })
7792
7841
  ]
7793
7842
  },
7794
7843
  address.network
7795
7844
  );
7796
7845
  })
7797
7846
  ] }),
7798
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7847
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7799
7848
  BottomSheet,
7800
7849
  {
7801
7850
  open: showEdit,
7802
7851
  title: "Edit request",
7803
- icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "edit", size: "md" }),
7852
+ icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "edit", size: "md" }),
7804
7853
  onClose: () => setShowEdit(false),
7805
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-4", children: [
7806
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1.5", children: [
7807
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
7808
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7854
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-4", children: [
7855
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-1.5", children: [
7856
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
7857
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7809
7858
  "input",
7810
7859
  {
7811
7860
  type: "text",
@@ -7816,14 +7865,14 @@ function BtcUnifiedReceive({
7816
7865
  inputMode: "decimal"
7817
7866
  }
7818
7867
  ),
7819
- amount && loading && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
7820
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7868
+ amount && loading && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
7869
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7821
7870
  "Updating invoice..."
7822
7871
  ] })
7823
7872
  ] }),
7824
- onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1.5", children: [
7825
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
7826
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7873
+ onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-1.5", children: [
7874
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
7875
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7827
7876
  "input",
7828
7877
  {
7829
7878
  type: "text",
@@ -7834,7 +7883,7 @@ function BtcUnifiedReceive({
7834
7883
  }
7835
7884
  )
7836
7885
  ] }),
7837
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
7886
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
7838
7887
  ] })
7839
7888
  }
7840
7889
  )
@@ -7842,7 +7891,7 @@ function BtcUnifiedReceive({
7842
7891
  }
7843
7892
 
7844
7893
  // src/web/components/deposit-generated-view.tsx
7845
- var import_jsx_runtime77 = require("react/jsx-runtime");
7894
+ var import_jsx_runtime78 = require("react/jsx-runtime");
7846
7895
  function parseAssetAmount(amountString, asset) {
7847
7896
  const value = Number(amountString);
7848
7897
  if (!Number.isFinite(value)) return 0;
@@ -7883,10 +7932,10 @@ function DepositGeneratedView({
7883
7932
  showRegenerate = true,
7884
7933
  onRegenerate
7885
7934
  }) {
7886
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7887
- (network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7888
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7889
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7935
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7936
+ (network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7937
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7938
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7890
7939
  "input",
7891
7940
  {
7892
7941
  type: "text",
@@ -7897,16 +7946,16 @@ function DepositGeneratedView({
7897
7946
  inputMode: "decimal"
7898
7947
  }
7899
7948
  ),
7900
- amount && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("span", { className: "flex items-center gap-1", children: [
7901
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7949
+ amount && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "flex items-center gap-1", children: [
7950
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7902
7951
  "Updating ",
7903
7952
  network === "arkade" ? "URI" : "invoice",
7904
7953
  "..."
7905
7954
  ] }) : network === "arkade" ? `Unified URI for ${amount} ${getUnitLabel()}` : `Invoice for ${amount} ${getUnitLabel()}` })
7906
7955
  ] }),
7907
- network === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7908
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7909
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7956
+ network === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7957
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7958
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7910
7959
  "input",
7911
7960
  {
7912
7961
  type: "text",
@@ -7917,19 +7966,19 @@ function DepositGeneratedView({
7917
7966
  inputMode: "decimal"
7918
7967
  }
7919
7968
  ),
7920
- amount && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("span", { className: "flex items-center gap-1", children: [
7921
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7969
+ amount && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "flex items-center gap-1", children: [
7970
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7922
7971
  "Updating invoice..."
7923
7972
  ] }) : `Invoice for ${amount} ${getUnitLabel()}` }),
7924
- amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("p", { className: "rounded-lg border border-danger/20 bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
7973
+ amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "rounded-lg border border-danger/20 bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
7925
7974
  "Exceeds max: ",
7926
7975
  formatAssetAmount(maxDepositAmount, selectedAsset),
7927
7976
  " ",
7928
7977
  getUnitLabel()
7929
7978
  ] })
7930
7979
  ] }),
7931
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7932
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7980
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7981
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7933
7982
  "div",
7934
7983
  {
7935
7984
  className: cn(
@@ -7938,7 +7987,7 @@ function DepositGeneratedView({
7938
7987
  ),
7939
7988
  style: net.qrGlow,
7940
7989
  children: [
7941
- showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7990
+ showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7942
7991
  "div",
7943
7992
  {
7944
7993
  className: cn(
@@ -7948,21 +7997,21 @@ function DepositGeneratedView({
7948
7997
  ),
7949
7998
  children: [
7950
7999
  net.icon,
7951
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { children: net.label })
8000
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: net.label })
7952
8001
  ]
7953
8002
  }
7954
8003
  ),
7955
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(QrCode, { value: address, size: 188 }),
7956
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(PaidOverlay, {}),
8004
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(QrCode, { value: address, size: 188 }),
8005
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PaidOverlay, {}),
7957
8006
  loading && !isInvoicePaid && // Loading scrim — sits over the QR while a fresh address/invoice
7958
8007
  // is being fetched (e.g. after the New Address button).
7959
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
8008
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
7960
8009
  ]
7961
8010
  }
7962
8011
  ),
7963
8012
  (() => {
7964
8013
  const isAddressCopied = copied === address;
7965
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
8014
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7966
8015
  "button",
7967
8016
  {
7968
8017
  type: "button",
@@ -7975,14 +8024,14 @@ function DepositGeneratedView({
7975
8024
  void copyToClipboard(address);
7976
8025
  },
7977
8026
  children: [
7978
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
8027
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
7979
8028
  isAddressCopied ? "Copied" : network === "lightning" ? "Copy Invoice" : "Copy Address"
7980
8029
  ]
7981
8030
  }
7982
8031
  );
7983
8032
  })()
7984
8033
  ] }),
7985
- network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8034
+ network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7986
8035
  InvoiceStatusBanner,
7987
8036
  {
7988
8037
  isInvoicePending,
@@ -7991,7 +8040,7 @@ function DepositGeneratedView({
7991
8040
  invoiceStatus
7992
8041
  }
7993
8042
  ),
7994
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
8043
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7995
8044
  "div",
7996
8045
  {
7997
8046
  "data-testid": "deposit-generated-address",
@@ -8004,16 +8053,16 @@ function DepositGeneratedView({
8004
8053
  style: { borderLeftWidth: 3, borderLeftColor: net.color },
8005
8054
  onClick: () => void copyToClipboard(address),
8006
8055
  children: [
8007
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
8008
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
8009
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
8010
- /* @__PURE__ */ (0, import_jsx_runtime77.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 })
8056
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
8057
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8058
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
8059
+ /* @__PURE__ */ (0, import_jsx_runtime78.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 })
8011
8060
  ] }),
8012
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CopyIcon, { copied: copied === address })
8061
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CopyIcon, { copied: copied === address })
8013
8062
  ]
8014
8063
  }
8015
8064
  ),
8016
- recipientId && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
8065
+ recipientId && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
8017
8066
  "div",
8018
8067
  {
8019
8068
  className: cn(
@@ -8023,16 +8072,16 @@ function DepositGeneratedView({
8023
8072
  style: { borderLeftWidth: 3, borderLeftColor: "var(--primary)" },
8024
8073
  onClick: () => void copyToClipboard(recipientId),
8025
8074
  children: [
8026
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
8027
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
8028
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
8029
- /* @__PURE__ */ (0, import_jsx_runtime77.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 })
8075
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
8076
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8077
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
8078
+ /* @__PURE__ */ (0, import_jsx_runtime78.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 })
8030
8079
  ] }),
8031
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CopyIcon, { copied: copied === recipientId })
8080
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CopyIcon, { copied: copied === recipientId })
8032
8081
  ]
8033
8082
  }
8034
8083
  ),
8035
- showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8084
+ showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8036
8085
  "button",
8037
8086
  {
8038
8087
  type: "button",
@@ -8050,7 +8099,7 @@ function DepositGeneratedView({
8050
8099
  setInvoiceStatus(null);
8051
8100
  },
8052
8101
  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",
8053
- children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8102
+ children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8054
8103
  "span",
8055
8104
  {
8056
8105
  className: cn("material-symbols-outlined text-icon-md", loading && "animate-spin"),
@@ -8063,7 +8112,7 @@ function DepositGeneratedView({
8063
8112
  }
8064
8113
 
8065
8114
  // src/web/components/deposit-pre-generation.tsx
8066
- var import_jsx_runtime78 = require("react/jsx-runtime");
8115
+ var import_jsx_runtime79 = require("react/jsx-runtime");
8067
8116
  var ACCOUNT_TITLES = {
8068
8117
  RGB: "RGB & Lightning",
8069
8118
  SPARK: "Spark",
@@ -8108,58 +8157,58 @@ function DepositPreGeneration({
8108
8157
  }) {
8109
8158
  const method = METHOD_META2[currentMethod];
8110
8159
  const isRgbOnchain = network === "onchain" && !isBtc;
8111
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-3", children: [
8112
- showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "rounded-2xl border border-white/8 bg-white/4 p-3", children: [
8113
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
8114
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
8115
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8116
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-white/45", children: "Asset" }),
8117
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
8160
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-3", children: [
8161
+ showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "rounded-2xl border border-white/8 bg-white/4 p-3", children: [
8162
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
8163
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
8164
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8165
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-white/45", children: "Asset" }),
8166
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
8118
8167
  ] }),
8119
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8120
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-white/45", children: "Destination account" }),
8121
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
8168
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8169
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-white/45", children: "Destination account" }),
8170
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
8122
8171
  ] }),
8123
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8124
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
8125
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-bold text-white", children: method.label })
8172
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8173
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
8174
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold text-white", children: method.label })
8126
8175
  ] }),
8127
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
8176
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
8128
8177
  ] })
8129
8178
  ] }),
8130
- channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center gap-2.5 rounded-xl border bg-card p-3", children: [
8131
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
8132
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
8179
+ channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center gap-2.5 rounded-xl border bg-card p-3", children: [
8180
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
8181
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
8133
8182
  ] }),
8134
- showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(AlertBanner, { variant: "warning", children: [
8135
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
8136
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
8183
+ showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(AlertBanner, { variant: "warning", children: [
8184
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
8185
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
8137
8186
  ] }),
8138
- showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(AlertBanner, { variant: "warning", children: [
8139
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
8140
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-tiny text-warning/70", children: [
8187
+ showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(AlertBanner, { variant: "warning", children: [
8188
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
8189
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-tiny text-warning/70", children: [
8141
8190
  "No channels with inbound capacity for ",
8142
8191
  selectedAsset?.ticker ?? "this asset",
8143
8192
  "."
8144
8193
  ] })
8145
8194
  ] }),
8146
- isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8147
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: cn("flex size-16 items-center justify-center rounded-2xl border", net.bg, net.border), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
8148
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1 text-center", children: [
8149
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
8195
+ isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8196
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("flex size-16 items-center justify-center rounded-2xl border", net.bg, net.border), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
8197
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1 text-center", children: [
8198
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
8150
8199
  "Generating ",
8151
8200
  network === "lightning" ? "invoice" : "address",
8152
8201
  "..."
8153
8202
  ] }),
8154
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-xs text-white/30", children: [
8203
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-xs text-white/30", children: [
8155
8204
  net.label,
8156
8205
  " network"
8157
8206
  ] })
8158
8207
  ] })
8159
8208
  ] }),
8160
- isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8161
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8162
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8209
+ isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8210
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8211
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8163
8212
  "input",
8164
8213
  {
8165
8214
  type: "text",
@@ -8171,15 +8220,15 @@ function DepositPreGeneration({
8171
8220
  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"
8172
8221
  }
8173
8222
  ),
8174
- /* @__PURE__ */ (0, import_jsx_runtime78.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." })
8223
+ /* @__PURE__ */ (0, import_jsx_runtime79.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." })
8175
8224
  ] }),
8176
- isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-2.5 rounded-xl border bg-card p-3", children: [
8177
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8178
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8179
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8180
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8225
+ isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-2.5 rounded-xl border bg-card p-3", children: [
8226
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8227
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8228
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8229
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8181
8230
  ] }),
8182
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8231
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8183
8232
  "button",
8184
8233
  {
8185
8234
  type: "button",
@@ -8189,7 +8238,7 @@ function DepositPreGeneration({
8189
8238
  usePrivacy ? "bg-primary" : "bg-white/10"
8190
8239
  ),
8191
8240
  onClick: () => setUsePrivacy(!usePrivacy),
8192
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8241
+ children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8193
8242
  "span",
8194
8243
  {
8195
8244
  className: cn(
@@ -8201,8 +8250,8 @@ function DepositPreGeneration({
8201
8250
  }
8202
8251
  )
8203
8252
  ] }),
8204
- /* @__PURE__ */ (0, import_jsx_runtime78.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." }),
8205
- usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
8253
+ /* @__PURE__ */ (0, import_jsx_runtime79.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." }),
8254
+ usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8206
8255
  "div",
8207
8256
  {
8208
8257
  className: cn(
@@ -8210,26 +8259,26 @@ function DepositPreGeneration({
8210
8259
  colorableUtxoCount > 0 ? "border-success/20 bg-success/5 text-success/80" : "border-warning/20 bg-warning/5 text-warning/80"
8211
8260
  ),
8212
8261
  children: [
8213
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8214
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-mono font-bold", children: colorableUtxoCount })
8262
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8263
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-mono font-bold", children: colorableUtxoCount })
8215
8264
  ]
8216
8265
  }
8217
8266
  ),
8218
- usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ (0, import_jsx_runtime78.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." })
8267
+ usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ (0, import_jsx_runtime79.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." })
8219
8268
  ] }),
8220
- network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8221
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between", children: [
8222
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8269
+ network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8270
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between", children: [
8271
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8223
8272
  "Amount (",
8224
8273
  getUnitLabel(),
8225
8274
  ") - Optional"
8226
8275
  ] }),
8227
- selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "text-xxs text-white/30", children: [
8276
+ selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "text-xxs text-white/30", children: [
8228
8277
  selectedAsset.precision ?? 0,
8229
8278
  " decimals"
8230
8279
  ] })
8231
8280
  ] }),
8232
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8281
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8233
8282
  "input",
8234
8283
  {
8235
8284
  type: "text",
@@ -8241,18 +8290,18 @@ function DepositPreGeneration({
8241
8290
  }
8242
8291
  )
8243
8292
  ] }),
8244
- needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(AlertBanner, { variant: "warning", children: [
8245
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8246
- /* @__PURE__ */ (0, import_jsx_runtime78.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." })
8293
+ needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(AlertBanner, { variant: "warning", children: [
8294
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8295
+ /* @__PURE__ */ (0, import_jsx_runtime79.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." })
8247
8296
  ] }),
8248
- !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8249
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8297
+ !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8298
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8250
8299
  "Create Colorable UTXOs"
8251
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8252
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8300
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8301
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8253
8302
  "Generating..."
8254
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8255
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8303
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8304
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8256
8305
  "Generate Address"
8257
8306
  ] }) }))
8258
8307
  ] });
@@ -8260,7 +8309,7 @@ function DepositPreGeneration({
8260
8309
 
8261
8310
  // src/web/components/deposit-asset-selection.tsx
8262
8311
  var import_react17 = require("react");
8263
- var import_jsx_runtime79 = require("react/jsx-runtime");
8312
+ var import_jsx_runtime80 = require("react/jsx-runtime");
8264
8313
  var ADD_ASSET_SUBTITLE = {
8265
8314
  RGB: "RGB asset on Bitcoin",
8266
8315
  SPARK: "Spark-native asset",
@@ -8337,8 +8386,8 @@ function DepositAssetSelection({
8337
8386
  titleHoverClass: "group-hover:text-network-arkade"
8338
8387
  }
8339
8388
  ].filter((option) => option.enabled);
8340
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8341
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8389
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8390
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8342
8391
  Button,
8343
8392
  {
8344
8393
  type: "button",
@@ -8346,10 +8395,10 @@ function DepositAssetSelection({
8346
8395
  size: "icon-xl",
8347
8396
  onClick: () => setCurrentView("dashboard"),
8348
8397
  "aria-label": "Go back",
8349
- children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "arrow_back", size: "xl" })
8398
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "arrow_back", size: "xl" })
8350
8399
  }
8351
8400
  ) }),
8352
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8401
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8353
8402
  DotPagination,
8354
8403
  {
8355
8404
  count: 2,
@@ -8357,8 +8406,8 @@ function DepositAssetSelection({
8357
8406
  ariaLabel: "Deposit step 1 of 2: select asset"
8358
8407
  }
8359
8408
  ) }),
8360
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "relative", children: [
8361
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8409
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "relative", children: [
8410
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8362
8411
  Icon,
8363
8412
  {
8364
8413
  name: "search",
@@ -8366,7 +8415,7 @@ function DepositAssetSelection({
8366
8415
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-white/30"
8367
8416
  }
8368
8417
  ),
8369
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8418
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8370
8419
  "input",
8371
8420
  {
8372
8421
  autoFocus: true,
@@ -8379,8 +8428,8 @@ function DepositAssetSelection({
8379
8428
  }
8380
8429
  )
8381
8430
  ] }) }),
8382
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8383
- btcAsset && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8431
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8432
+ btcAsset && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8384
8433
  "button",
8385
8434
  {
8386
8435
  type: "button",
@@ -8388,27 +8437,27 @@ function DepositAssetSelection({
8388
8437
  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",
8389
8438
  onClick: () => onSelectAsset(btcAsset),
8390
8439
  children: [
8391
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8392
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8393
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8394
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8440
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8441
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8442
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8443
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8395
8444
  ] }),
8396
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
8397
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
8398
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
8399
- isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
8400
- isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "Arkade", size: "sm" })
8445
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
8446
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
8447
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
8448
+ isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
8449
+ isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "Arkade", size: "sm" })
8401
8450
  ] }),
8402
- /* @__PURE__ */ (0, import_jsx_runtime79.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" })
8451
+ /* @__PURE__ */ (0, import_jsx_runtime80.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" })
8403
8452
  ]
8404
8453
  }
8405
8454
  ),
8406
- noResults ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
8455
+ noResults ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
8407
8456
  'No assets match "',
8408
8457
  searchQuery,
8409
8458
  '"'
8410
- ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
8411
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8459
+ ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
8460
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8412
8461
  "button",
8413
8462
  {
8414
8463
  type: "button",
@@ -8421,17 +8470,17 @@ function DepositAssetSelection({
8421
8470
  isSearching && "cursor-default"
8422
8471
  ),
8423
8472
  children: [
8424
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8425
- /* @__PURE__ */ (0, import_jsx_runtime79.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 }),
8426
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex-1" }),
8427
- !isSearching && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8473
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8474
+ /* @__PURE__ */ (0, import_jsx_runtime80.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 }),
8475
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex-1" }),
8476
+ !isSearching && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8428
8477
  ]
8429
8478
  }
8430
8479
  ),
8431
- showOwnedAssets && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
8480
+ showOwnedAssets && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
8432
8481
  const protocolBadge = asset.accountId ? PROTOCOL_BADGE[asset.accountId] : null;
8433
8482
  const balance = asset.balance ?? 0;
8434
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8483
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8435
8484
  "button",
8436
8485
  {
8437
8486
  type: "button",
@@ -8439,11 +8488,11 @@ function DepositAssetSelection({
8439
8488
  className: "group flex w-full min-w-0 items-center gap-3 overflow-hidden rounded-2xl border border-white/8 bg-white/3 px-4 py-3 text-sm transition-all hover:border-border hover:bg-accent",
8440
8489
  onClick: () => onSelectAsset(asset),
8441
8490
  children: [
8442
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8443
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8444
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8445
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
8446
- protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8491
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8492
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8493
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8494
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
8495
+ protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8447
8496
  "span",
8448
8497
  {
8449
8498
  className: cn(
@@ -8454,36 +8503,36 @@ function DepositAssetSelection({
8454
8503
  }
8455
8504
  )
8456
8505
  ] }),
8457
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8506
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8458
8507
  ] }),
8459
- balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
8460
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "font-mono text-xs font-bold text-white", children: formatAssetBalance(asset) }),
8461
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8508
+ balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
8509
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "font-mono text-xs font-bold text-white", children: formatAssetBalance(asset) }),
8510
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8462
8511
  ] }),
8463
- /* @__PURE__ */ (0, import_jsx_runtime79.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" })
8512
+ /* @__PURE__ */ (0, import_jsx_runtime80.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" })
8464
8513
  ]
8465
8514
  },
8466
8515
  asset.asset_id
8467
8516
  );
8468
8517
  }) })
8469
8518
  ] }) : null,
8470
- !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8519
+ !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8471
8520
  "button",
8472
8521
  {
8473
8522
  type: "button",
8474
8523
  onClick: () => setCurrentView("bridge"),
8475
8524
  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",
8476
8525
  children: [
8477
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
8478
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-1 text-left", children: [
8479
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
8480
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8526
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
8527
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-1 text-left", children: [
8528
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
8529
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8481
8530
  ] }),
8482
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8531
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8483
8532
  ]
8484
8533
  }
8485
8534
  ) }),
8486
- !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8535
+ !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8487
8536
  "button",
8488
8537
  {
8489
8538
  type: "button",
@@ -8491,27 +8540,27 @@ function DepositAssetSelection({
8491
8540
  onClick: () => setShowAddAssetModal(true),
8492
8541
  className: "group flex w-full items-center gap-3 rounded-2xl border border-white/8 bg-white/3 p-3 transition-all hover:border-border hover:bg-accent",
8493
8542
  children: [
8494
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "add", size: "md", className: "text-primary" }) }),
8495
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-1 text-left", children: [
8496
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8497
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
8543
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "add", size: "md", className: "text-primary" }) }),
8544
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-1 text-left", children: [
8545
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8546
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
8498
8547
  "Receive a new ",
8499
8548
  newAssetOptions.map((o) => o.ticker).join(", "),
8500
8549
  " asset"
8501
8550
  ] })
8502
8551
  ] }),
8503
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8552
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8504
8553
  ]
8505
8554
  }
8506
8555
  ) })
8507
8556
  ] }),
8508
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8557
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8509
8558
  BottomSheet,
8510
8559
  {
8511
8560
  open: showAddAssetModal,
8512
8561
  title: "Add an asset",
8513
8562
  onClose: () => setShowAddAssetModal(false),
8514
- children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8563
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8515
8564
  "button",
8516
8565
  {
8517
8566
  type: "button",
@@ -8525,12 +8574,12 @@ function DepositAssetSelection({
8525
8574
  handleAddNewAsset(option.account);
8526
8575
  },
8527
8576
  children: [
8528
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8529
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8530
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8531
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8577
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8578
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1", children: [
8579
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8580
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8532
8581
  ] }),
8533
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8582
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8534
8583
  ]
8535
8584
  },
8536
8585
  option.account
@@ -8541,7 +8590,7 @@ function DepositAssetSelection({
8541
8590
  }
8542
8591
 
8543
8592
  // src/web/components/deposit-invoice-generation.tsx
8544
- var import_jsx_runtime80 = require("react/jsx-runtime");
8593
+ var import_jsx_runtime81 = require("react/jsx-runtime");
8545
8594
  var ACCOUNT_TITLES2 = {
8546
8595
  RGB: "RGB & Lightning",
8547
8596
  SPARK: "Spark",
@@ -8696,7 +8745,7 @@ function DepositInvoiceGeneration({
8696
8745
  if (nextMethod) applyMethodSelection(account, nextMethod);
8697
8746
  };
8698
8747
  if (depositDetected) {
8699
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8748
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8700
8749
  DepositSuccessScreen,
8701
8750
  {
8702
8751
  handleDone,
@@ -8713,15 +8762,15 @@ function DepositInvoiceGeneration({
8713
8762
  const showChannelWarning = selectedAccount === "RGB" && network === "lightning" && !channelsLoading && channels.length === 0 && !isSparkConnected;
8714
8763
  const showLiquidityWarning = !isSparkLightning && network === "lightning" && maxDepositAmount === 0 && !channelsLoading && !isBtc;
8715
8764
  const isNewRgbAsset = isNewAsset && assetFamily === "RGB";
8716
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8717
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "arrow_back", size: "xl" }) }) }),
8765
+ 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: [
8766
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: "arrow_back", size: "xl" }) }) }),
8718
8767
  (() => {
8719
8768
  const hideDestinationRail = isNewAsset && (network === "spark" || network === "arkade");
8720
8769
  if (hideDestinationRail) return null;
8721
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex-shrink-0 border-b border-border bg-background px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-2", children: [
8722
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { children: [
8723
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
8724
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8770
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex-shrink-0 border-b border-border bg-background px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-2", children: [
8771
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { children: [
8772
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
8773
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8725
8774
  AccountChoiceChip,
8726
8775
  {
8727
8776
  account,
@@ -8746,9 +8795,9 @@ function DepositInvoiceGeneration({
8746
8795
  account
8747
8796
  )) })
8748
8797
  ] }),
8749
- !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { children: [
8750
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
8751
- /* @__PURE__ */ (0, import_jsx_runtime80.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_runtime80.jsx)(
8798
+ !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { children: [
8799
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
8800
+ /* @__PURE__ */ (0, import_jsx_runtime81.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_runtime81.jsx)(
8752
8801
  MethodChoiceChip,
8753
8802
  {
8754
8803
  method,
@@ -8762,7 +8811,7 @@ function DepositInvoiceGeneration({
8762
8811
  ] })
8763
8812
  ] }) });
8764
8813
  })(),
8765
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8814
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8766
8815
  BtcUnifiedReceive,
8767
8816
  {
8768
8817
  btcSelectedAccount,
@@ -8782,8 +8831,8 @@ function DepositInvoiceGeneration({
8782
8831
  setAccountReceiveResult,
8783
8832
  handleDone
8784
8833
  }
8785
- ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8786
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8834
+ ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8835
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8787
8836
  "div",
8788
8837
  {
8789
8838
  className: cn(
@@ -8791,7 +8840,7 @@ function DepositInvoiceGeneration({
8791
8840
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].bg,
8792
8841
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].border
8793
8842
  ),
8794
- children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8843
+ children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8795
8844
  "span",
8796
8845
  {
8797
8846
  className: cn(
@@ -8803,11 +8852,11 @@ function DepositInvoiceGeneration({
8803
8852
  )
8804
8853
  }
8805
8854
  ),
8806
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1 text-center", children: [
8807
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
8808
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
8855
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1 text-center", children: [
8856
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
8857
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
8809
8858
  ] })
8810
- ] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8859
+ ] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8811
8860
  DepositPreGeneration,
8812
8861
  {
8813
8862
  selectedAsset,
@@ -8831,7 +8880,7 @@ function DepositInvoiceGeneration({
8831
8880
  onOpenCreateUtxos,
8832
8881
  showReceiveSummary: !isNewRgbAsset
8833
8882
  }
8834
- ) : /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8883
+ ) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8835
8884
  DepositGeneratedView,
8836
8885
  {
8837
8886
  network,
@@ -8947,6 +8996,7 @@ function DepositInvoiceGeneration({
8947
8996
  NetworkBadge,
8948
8997
  NetworkInfoDisclosure,
8949
8998
  NetworkStatusChip,
8999
+ NostrNetworkIcon,
8950
9000
  NumberInput,
8951
9001
  OptionSelector,
8952
9002
  PageHeader,
@@ -8981,6 +9031,7 @@ function DepositInvoiceGeneration({
8981
9031
  StepperNumberInput,
8982
9032
  SwapInputCard,
8983
9033
  Switch,
9034
+ SwitchRow,
8984
9035
  Tabs,
8985
9036
  TabsContent,
8986
9037
  TabsList,