kaleido-ui 0.1.75 → 0.1.77

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.
@@ -147,6 +147,7 @@ __export(web_exports, {
147
147
  StepperNumberInput: () => StepperNumberInput,
148
148
  SwapInputCard: () => SwapInputCard,
149
149
  Switch: () => Switch,
150
+ SwitchRow: () => SwitchRow,
150
151
  Tabs: () => Tabs,
151
152
  TabsContent: () => TabsContent,
152
153
  TabsList: () => TabsList,
@@ -4765,9 +4766,17 @@ function WithdrawAmountInput({
4765
4766
  feeRate,
4766
4767
  setFeeRate,
4767
4768
  feeRates,
4769
+ feeRateMode,
4770
+ setFeeRateMode,
4771
+ customFeeRate,
4772
+ setCustomFeeRate,
4773
+ effectiveFeeRateSatPerVb,
4774
+ estimatedFee,
4768
4775
  donation,
4769
4776
  setDonation
4770
4777
  }) {
4778
+ const customFeeEnabled = typeof setFeeRateMode === "function";
4779
+ const activeFeeMode = feeRateMode ?? feeRate;
4771
4780
  const unitLabel = selectedAssetId === "BTC" ? "sats" : selectedAssetTicker ?? "units";
4772
4781
  const showAmountInput = addressType === "bitcoin" || addressType === "spark" || addressType === "arkade" || addressType === "lightning-address" || addressType === "lnurl-pay" || addressType === "rgb" && !decodedRgbInvoice?.assignment?.value || addressType === "lightning" && !decodedLnInvoice?.amount && !decodedLnInvoice?.asset_amount;
4773
4782
  const enteredNum = parseFloat(amount.replace(/[^\d.-]/g, "") || "0") || 0;
@@ -4846,7 +4855,58 @@ function WithdrawAmountInput({
4846
4855
  ] }),
4847
4856
  (addressType === "bitcoin" || addressType === "rgb") && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "space-y-2", children: [
4848
4857
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("label", { className: "ml-1 text-xs font-bold uppercase tracking-wider text-muted-foreground", children: "Fee Rate" }),
4849
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "grid grid-cols-3 gap-3", children: ["slow", "normal", "fast"].map((rate) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
4858
+ customFeeEnabled ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
4859
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "grid grid-cols-4 gap-2", children: ["slow", "normal", "fast", "custom"].map((mode) => {
4860
+ const selected = activeFeeMode === mode;
4861
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
4862
+ "button",
4863
+ {
4864
+ type: "button",
4865
+ onClick: () => {
4866
+ setFeeRateMode?.(mode);
4867
+ if (mode !== "custom") setFeeRate(mode);
4868
+ },
4869
+ className: `group relative overflow-hidden rounded-xl border px-2 py-3 shadow-sm transition-all active:scale-[0.98] ${selected ? "border-primary/40 bg-primary/10" : "border-border bg-card/40 hover:border-primary/40"}`,
4870
+ children: [
4871
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
4872
+ "span",
4873
+ {
4874
+ className: `block text-xs font-bold capitalize ${selected ? "text-primary" : "text-muted-foreground group-hover:text-primary"}`,
4875
+ children: mode
4876
+ }
4877
+ ),
4878
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
4879
+ "span",
4880
+ {
4881
+ className: `mt-0.5 block text-xxs font-medium ${selected ? "text-primary/70" : "text-white/40 group-hover:text-white/70"}`,
4882
+ children: mode === "custom" ? "sat/vB" : `${feeRates[mode]} sat/vB`
4883
+ }
4884
+ )
4885
+ ]
4886
+ },
4887
+ mode
4888
+ );
4889
+ }) }),
4890
+ activeFeeMode === "custom" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
4891
+ "input",
4892
+ {
4893
+ type: "text",
4894
+ inputMode: "decimal",
4895
+ placeholder: `${feeRates[feeRate]} (${feeRate})`,
4896
+ value: customFeeRate ?? "",
4897
+ onChange: (event) => setCustomFeeRate?.(event.target.value.replace(/[^\d.]/g, "")),
4898
+ className: "w-full rounded-xl bg-card px-4 py-3 text-sm text-white shadow-inner transition-all focus:outline focus:outline-2 focus:outline-primary/50"
4899
+ }
4900
+ ),
4901
+ typeof estimatedFee === "number" && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("p", { className: "ml-1 text-xs text-muted-foreground", children: [
4902
+ "Using ",
4903
+ effectiveFeeRateSatPerVb,
4904
+ " sat/vB \xB7 ~",
4905
+ estimatedFee.toLocaleString(),
4906
+ " ",
4907
+ "sats est. fee"
4908
+ ] })
4909
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "grid grid-cols-3 gap-3", children: ["slow", "normal", "fast"].map((rate) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
4850
4910
  "button",
4851
4911
  {
4852
4912
  type: "button",
@@ -5414,10 +5474,37 @@ function SettingItem({
5414
5474
  );
5415
5475
  }
5416
5476
 
5417
- // src/web/components/section-label.tsx
5477
+ // src/web/components/switch-row.tsx
5418
5478
  var import_jsx_runtime54 = require("react/jsx-runtime");
5479
+ function SwitchRow({
5480
+ label,
5481
+ description,
5482
+ checked,
5483
+ disabled,
5484
+ onCheckedChange,
5485
+ className
5486
+ }) {
5487
+ 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: [
5488
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "min-w-0", children: [
5489
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-sm font-medium text-foreground", children: label }),
5490
+ description && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "mt-0.5 text-xs leading-snug text-muted-foreground", children: description })
5491
+ ] }),
5492
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5493
+ Switch,
5494
+ {
5495
+ checked,
5496
+ disabled,
5497
+ onCheckedChange,
5498
+ "aria-label": label
5499
+ }
5500
+ )
5501
+ ] });
5502
+ }
5503
+
5504
+ // src/web/components/section-label.tsx
5505
+ var import_jsx_runtime55 = require("react/jsx-runtime");
5419
5506
  function SectionLabel({ children, className }) {
5420
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5507
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
5421
5508
  "span",
5422
5509
  {
5423
5510
  className: cn("text-xxs font-black uppercase tracking-eyebrow-wide text-muted-foreground", className),
@@ -5427,21 +5514,21 @@ function SectionLabel({ children, className }) {
5427
5514
  }
5428
5515
 
5429
5516
  // src/web/components/section-header.tsx
5430
- var import_jsx_runtime55 = require("react/jsx-runtime");
5517
+ var import_jsx_runtime56 = require("react/jsx-runtime");
5431
5518
  function SectionHeader({
5432
5519
  children,
5433
5520
  right,
5434
5521
  as: Tag = "h2",
5435
5522
  className
5436
5523
  }) {
5437
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
5438
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
5524
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
5525
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
5439
5526
  right
5440
5527
  ] });
5441
5528
  }
5442
5529
 
5443
5530
  // src/web/components/alert-banner.tsx
5444
- var import_jsx_runtime56 = require("react/jsx-runtime");
5531
+ var import_jsx_runtime57 = require("react/jsx-runtime");
5445
5532
  var variantStyles = {
5446
5533
  error: { container: "bg-danger/40", icon: "text-danger", iconName: "error" },
5447
5534
  warning: { container: "bg-warning/40", icon: "text-warning", iconName: "warning" },
@@ -5450,14 +5537,14 @@ var variantStyles = {
5450
5537
  };
5451
5538
  function AlertBanner({ variant = "info", icon, children, className }) {
5452
5539
  const styles = variantStyles[variant];
5453
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
5454
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
5455
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: cn("text-sm", styles.icon), children })
5540
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
5541
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
5542
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("text-sm", styles.icon), children })
5456
5543
  ] });
5457
5544
  }
5458
5545
 
5459
5546
  // src/web/components/info-panel.tsx
5460
- var import_jsx_runtime57 = require("react/jsx-runtime");
5547
+ var import_jsx_runtime58 = require("react/jsx-runtime");
5461
5548
  var toneClass = {
5462
5549
  default: {
5463
5550
  panel: "border-white/8 bg-white/[0.03]",
@@ -5498,19 +5585,19 @@ function InfoPanel({
5498
5585
  className
5499
5586
  }) {
5500
5587
  const styles = toneClass[tone];
5501
- 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;
5502
- 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: [
5588
+ 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;
5589
+ 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: [
5503
5590
  renderedIcon,
5504
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "min-w-0 flex-1", children: [
5505
- title && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: cn("text-sm font-bold", styles.title), children: title }),
5506
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
5591
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "min-w-0 flex-1", children: [
5592
+ title && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: cn("text-sm font-bold", styles.title), children: title }),
5593
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
5507
5594
  ] })
5508
5595
  ] }) });
5509
5596
  }
5510
5597
 
5511
5598
  // src/web/components/error-boundary.tsx
5512
5599
  var import_react12 = require("react");
5513
- var import_jsx_runtime58 = require("react/jsx-runtime");
5600
+ var import_jsx_runtime59 = require("react/jsx-runtime");
5514
5601
  var ErrorBoundary = class extends import_react12.Component {
5515
5602
  constructor(props) {
5516
5603
  super(props);
@@ -5524,11 +5611,11 @@ var ErrorBoundary = class extends import_react12.Component {
5524
5611
  }
5525
5612
  render() {
5526
5613
  if (this.state.hasError) {
5527
- 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: [
5528
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5529
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5530
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5531
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
5614
+ 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: [
5615
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5616
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5617
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5618
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
5532
5619
  "button",
5533
5620
  {
5534
5621
  onClick: () => {
@@ -5546,7 +5633,7 @@ var ErrorBoundary = class extends import_react12.Component {
5546
5633
  };
5547
5634
 
5548
5635
  // src/web/components/recovery-phrase-card.tsx
5549
- var import_jsx_runtime59 = require("react/jsx-runtime");
5636
+ var import_jsx_runtime60 = require("react/jsx-runtime");
5550
5637
  function RecoveryPhraseCard({
5551
5638
  words,
5552
5639
  revealed = false,
@@ -5557,10 +5644,10 @@ function RecoveryPhraseCard({
5557
5644
  className
5558
5645
  }) {
5559
5646
  const hasWords = words.length > 0;
5560
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("section", { className: cn("space-y-2", className), children: [
5561
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
5562
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5563
- hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5647
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("section", { className: cn("space-y-2", className), children: [
5648
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-center justify-between px-0.5", children: [
5649
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5650
+ hasWords && revealed && onRevealChange && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5564
5651
  Button,
5565
5652
  {
5566
5653
  type: "button",
@@ -5569,27 +5656,27 @@ function RecoveryPhraseCard({
5569
5656
  onClick: () => onRevealChange(!revealed),
5570
5657
  className: "h-auto rounded-lg px-2 py-1 text-xs text-muted-foreground hover:text-white",
5571
5658
  children: [
5572
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
5659
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "visibility_off", className: "text-icon-md" }),
5573
5660
  "Hide"
5574
5661
  ]
5575
5662
  }
5576
5663
  )
5577
5664
  ] }),
5578
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "relative", children: [
5579
- hasWords ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
5665
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "relative", children: [
5666
+ hasWords ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5580
5667
  "div",
5581
5668
  {
5582
5669
  className: cn(
5583
5670
  "grid grid-cols-3 gap-2 transition-all duration-300",
5584
5671
  !revealed && "pointer-events-none select-none blur-sm"
5585
5672
  ),
5586
- 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: [
5587
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5588
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "font-mono text-sm text-white", children: word })
5673
+ 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: [
5674
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5675
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "font-mono text-sm text-white", children: word })
5589
5676
  ] }, `${index}-${word}`))
5590
5677
  }
5591
- ) : /* @__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 }),
5592
- 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)(
5678
+ ) : /* @__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 }),
5679
+ 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)(
5593
5680
  Button,
5594
5681
  {
5595
5682
  type: "button",
@@ -5597,13 +5684,13 @@ function RecoveryPhraseCard({
5597
5684
  size: "sm",
5598
5685
  onClick: () => onRevealChange(true),
5599
5686
  children: [
5600
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
5687
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
5601
5688
  "Tap to reveal"
5602
5689
  ]
5603
5690
  }
5604
5691
  ) })
5605
5692
  ] }),
5606
- hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
5693
+ hasWords && revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
5607
5694
  Button,
5608
5695
  {
5609
5696
  type: "button",
@@ -5612,7 +5699,7 @@ function RecoveryPhraseCard({
5612
5699
  onClick: onCopy,
5613
5700
  className: "w-full",
5614
5701
  children: [
5615
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
5702
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
5616
5703
  "Copy to clipboard"
5617
5704
  ]
5618
5705
  }
@@ -5621,7 +5708,7 @@ function RecoveryPhraseCard({
5621
5708
  }
5622
5709
 
5623
5710
  // src/web/components/settings-selector-row.tsx
5624
- var import_jsx_runtime60 = require("react/jsx-runtime");
5711
+ var import_jsx_runtime61 = require("react/jsx-runtime");
5625
5712
  function SettingsSelectorRow({
5626
5713
  icon,
5627
5714
  title,
@@ -5630,9 +5717,9 @@ function SettingsSelectorRow({
5630
5717
  className,
5631
5718
  iconClassName
5632
5719
  }) {
5633
- 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: [
5634
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5635
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
5720
+ 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: [
5721
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5722
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
5636
5723
  "div",
5637
5724
  {
5638
5725
  className: cn(
@@ -5642,17 +5729,17 @@ function SettingsSelectorRow({
5642
5729
  children: icon
5643
5730
  }
5644
5731
  ),
5645
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5646
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
5647
- description && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
5732
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5733
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
5734
+ description && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
5648
5735
  ] })
5649
5736
  ] }),
5650
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "shrink-0", children: control })
5737
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "shrink-0", children: control })
5651
5738
  ] });
5652
5739
  }
5653
5740
 
5654
5741
  // src/web/components/bottom-sheet.tsx
5655
- var import_jsx_runtime61 = require("react/jsx-runtime");
5742
+ var import_jsx_runtime62 = require("react/jsx-runtime");
5656
5743
  function BottomSheet({
5657
5744
  open,
5658
5745
  title,
@@ -5668,7 +5755,7 @@ function BottomSheet({
5668
5755
  const handleBackdropClick = (event) => {
5669
5756
  if (closeOnBackdrop && event.target === event.currentTarget) onClose?.();
5670
5757
  };
5671
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
5758
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5672
5759
  "div",
5673
5760
  {
5674
5761
  className: cn(
@@ -5676,7 +5763,7 @@ function BottomSheet({
5676
5763
  className
5677
5764
  ),
5678
5765
  onClick: handleBackdropClick,
5679
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
5766
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5680
5767
  "div",
5681
5768
  {
5682
5769
  className: cn(
@@ -5684,13 +5771,13 @@ function BottomSheet({
5684
5771
  contentClassName
5685
5772
  ),
5686
5773
  children: [
5687
- /* @__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" }) }),
5688
- (title || icon) && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
5774
+ /* @__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" }) }),
5775
+ (title || icon) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "mt-4 flex items-center gap-2", children: [
5689
5776
  icon,
5690
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
5777
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm font-bold text-foreground", children: title })
5691
5778
  ] }),
5692
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
5693
- 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)(
5779
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: cn((title || icon) && "mt-3"), children }),
5780
+ 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)(
5694
5781
  Button,
5695
5782
  {
5696
5783
  type: "button",
@@ -5700,7 +5787,7 @@ function BottomSheet({
5700
5787
  onClick: action.onClick,
5701
5788
  disabled: action.disabled,
5702
5789
  children: [
5703
- action.icon && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
5790
+ action.icon && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: action.icon, className: "text-icon-md" }),
5704
5791
  action.label
5705
5792
  ]
5706
5793
  },
@@ -5714,7 +5801,7 @@ function BottomSheet({
5714
5801
  }
5715
5802
 
5716
5803
  // src/web/components/disclosure-card.tsx
5717
- var import_jsx_runtime62 = require("react/jsx-runtime");
5804
+ var import_jsx_runtime63 = require("react/jsx-runtime");
5718
5805
  function DisclosureCard({
5719
5806
  title,
5720
5807
  children,
@@ -5725,8 +5812,8 @@ function DisclosureCard({
5725
5812
  triggerClassName,
5726
5813
  contentClassName
5727
5814
  }) {
5728
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className, children: [
5729
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
5815
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className, children: [
5816
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
5730
5817
  "button",
5731
5818
  {
5732
5819
  type: "button",
@@ -5736,11 +5823,11 @@ function DisclosureCard({
5736
5823
  triggerClassName
5737
5824
  ),
5738
5825
  children: [
5739
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5826
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5740
5827
  icon,
5741
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
5828
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "truncate text-xs font-bold text-foreground", children: title })
5742
5829
  ] }),
5743
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5830
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5744
5831
  Icon,
5745
5832
  {
5746
5833
  name: open ? "expand_less" : "expand_more",
@@ -5750,7 +5837,7 @@ function DisclosureCard({
5750
5837
  ]
5751
5838
  }
5752
5839
  ),
5753
- open && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
5840
+ open && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5754
5841
  "div",
5755
5842
  {
5756
5843
  className: cn(
@@ -5764,7 +5851,7 @@ function DisclosureCard({
5764
5851
  }
5765
5852
 
5766
5853
  // src/web/components/stepper-number-input.tsx
5767
- var import_jsx_runtime63 = require("react/jsx-runtime");
5854
+ var import_jsx_runtime64 = require("react/jsx-runtime");
5768
5855
  function StepperNumberInput({
5769
5856
  value,
5770
5857
  onChange,
@@ -5781,7 +5868,7 @@ function StepperNumberInput({
5781
5868
  const bounded = max === void 0 ? boundedMin : Math.min(max, boundedMin);
5782
5869
  onChange(Number.isFinite(bounded) ? bounded : min ?? 0);
5783
5870
  };
5784
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
5871
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
5785
5872
  "div",
5786
5873
  {
5787
5874
  className: cn(
@@ -5789,7 +5876,7 @@ function StepperNumberInput({
5789
5876
  className
5790
5877
  ),
5791
5878
  children: [
5792
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5879
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
5793
5880
  "button",
5794
5881
  {
5795
5882
  type: "button",
@@ -5797,10 +5884,10 @@ function StepperNumberInput({
5797
5884
  disabled: disabled || min !== void 0 && value <= min,
5798
5885
  onClick: () => clamp(value - step),
5799
5886
  "aria-label": "Decrease",
5800
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "remove", className: "text-icon-md" })
5887
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "remove", className: "text-icon-md" })
5801
5888
  }
5802
5889
  ),
5803
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5890
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
5804
5891
  "input",
5805
5892
  {
5806
5893
  type: "number",
@@ -5817,7 +5904,7 @@ function StepperNumberInput({
5817
5904
  )
5818
5905
  }
5819
5906
  ),
5820
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
5907
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
5821
5908
  "button",
5822
5909
  {
5823
5910
  type: "button",
@@ -5825,7 +5912,7 @@ function StepperNumberInput({
5825
5912
  disabled: disabled || max !== void 0 && value >= max,
5826
5913
  onClick: () => clamp(value + step),
5827
5914
  "aria-label": "Increase",
5828
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icon, { name: "add", className: "text-icon-md" })
5915
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: "add", className: "text-icon-md" })
5829
5916
  }
5830
5917
  )
5831
5918
  ]
@@ -5834,7 +5921,7 @@ function StepperNumberInput({
5834
5921
  }
5835
5922
 
5836
5923
  // src/web/components/metric-card.tsx
5837
- var import_jsx_runtime64 = require("react/jsx-runtime");
5924
+ var import_jsx_runtime65 = require("react/jsx-runtime");
5838
5925
  var toneClasses2 = {
5839
5926
  primary: "border-primary/20 bg-primary/10 text-primary",
5840
5927
  purple: "border-network-arkade/20 bg-network-arkade/10 text-network-arkade",
@@ -5852,27 +5939,27 @@ function MetricCard({
5852
5939
  tone = "muted",
5853
5940
  className
5854
5941
  }) {
5855
- 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: [
5856
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-1.5", children: [
5857
- 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 }),
5858
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
5942
+ 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: [
5943
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1.5", children: [
5944
+ 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 }),
5945
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
5859
5946
  ] }),
5860
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "font-mono text-sm font-bold text-foreground", children: value }),
5861
- description && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-xxs text-white/45", children: description })
5947
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "font-mono text-sm font-bold text-foreground", children: value }),
5948
+ description && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-xxs text-white/45", children: description })
5862
5949
  ] });
5863
5950
  }
5864
5951
 
5865
5952
  // src/web/components/filter-chip-group.tsx
5866
- var import_jsx_runtime65 = require("react/jsx-runtime");
5953
+ var import_jsx_runtime66 = require("react/jsx-runtime");
5867
5954
  function FilterChipGroup({
5868
5955
  options,
5869
5956
  value,
5870
5957
  onChange,
5871
5958
  className
5872
5959
  }) {
5873
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
5960
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
5874
5961
  const active = option.value === value;
5875
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
5962
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
5876
5963
  "button",
5877
5964
  {
5878
5965
  type: "button",
@@ -5886,7 +5973,7 @@ function FilterChipGroup({
5886
5973
  children: [
5887
5974
  option.icon,
5888
5975
  option.label,
5889
- option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
5976
+ option.count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
5890
5977
  "span",
5891
5978
  {
5892
5979
  className: cn(
@@ -5904,7 +5991,7 @@ function FilterChipGroup({
5904
5991
  }
5905
5992
 
5906
5993
  // src/web/components/activity-row.tsx
5907
- var import_jsx_runtime66 = require("react/jsx-runtime");
5994
+ var import_jsx_runtime67 = require("react/jsx-runtime");
5908
5995
  var directionUi = {
5909
5996
  inbound: { icon: "south_west", iconClass: "bg-primary/20 text-primary", amountClass: "text-primary", sign: "+" },
5910
5997
  outbound: { icon: "north_east", iconClass: "bg-white/10 text-muted-foreground", amountClass: "text-foreground", sign: "-" },
@@ -5924,26 +6011,26 @@ function ActivityRow({
5924
6011
  className
5925
6012
  }) {
5926
6013
  const ui = directionUi[direction];
5927
- const content = /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
5928
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
5929
- /* @__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 }),
5930
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
5931
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
5932
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
6014
+ const content = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
6015
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
6016
+ /* @__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 }),
6017
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex min-w-0 flex-col", children: [
6018
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
6019
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
5933
6020
  networkBadge
5934
6021
  ] }),
5935
- (status || timestamp) && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "mt-1 flex items-center gap-2", children: [
5936
- status && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(StatusBadge, { status, className: "px-1.5 py-0.5 text-xxs" }),
5937
- timestamp && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp })
6022
+ (status || timestamp) && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "mt-1 flex items-center gap-2", children: [
6023
+ status && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(StatusBadge, { status, className: "px-1.5 py-0.5 text-xxs" }),
6024
+ timestamp && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-xxs text-muted-foreground", children: timestamp })
5938
6025
  ] })
5939
6026
  ] })
5940
6027
  ] }),
5941
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "shrink-0 text-right", children: [
5942
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
6028
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "shrink-0 text-right", children: [
6029
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
5943
6030
  ui.sign,
5944
6031
  amount
5945
6032
  ] }),
5946
- unit && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
6033
+ unit && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
5947
6034
  ] })
5948
6035
  ] });
5949
6036
  const rowClassName = cn(
@@ -5952,23 +6039,23 @@ function ActivityRow({
5952
6039
  className
5953
6040
  );
5954
6041
  if (onClick) {
5955
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
6042
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("button", { type: "button", onClick, className: rowClassName, children: content });
5956
6043
  }
5957
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: rowClassName, children: content });
6044
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: rowClassName, children: content });
5958
6045
  }
5959
6046
 
5960
6047
  // src/web/components/skeleton.tsx
5961
- var import_jsx_runtime67 = require("react/jsx-runtime");
6048
+ var import_jsx_runtime68 = require("react/jsx-runtime");
5962
6049
  var toneClass2 = {
5963
6050
  primary: "bg-white/10",
5964
6051
  secondary: "bg-white/5",
5965
6052
  card: "bg-white/[0.06]"
5966
6053
  };
5967
6054
  function Skeleton({ className, tone = "primary" }) {
5968
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
6055
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
5969
6056
  }
5970
6057
  function ListSkeletonRows({ rows = 3, className, rowClassName }) {
5971
- 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)(
6058
+ 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)(
5972
6059
  "div",
5973
6060
  {
5974
6061
  className: cn(
@@ -5976,14 +6063,14 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
5976
6063
  rowClassName
5977
6064
  ),
5978
6065
  children: [
5979
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
5980
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex-1 space-y-2", children: [
5981
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { className: "h-3 w-28" }),
5982
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
6066
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
6067
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex-1 space-y-2", children: [
6068
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { className: "h-3 w-28" }),
6069
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
5983
6070
  ] }),
5984
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
5985
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { className: "h-3 w-14" }),
5986
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
6071
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col items-end space-y-1.5", children: [
6072
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { className: "h-3 w-14" }),
6073
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Skeleton, { tone: "secondary", className: "h-2 w-10" })
5987
6074
  ] })
5988
6075
  ]
5989
6076
  },
@@ -5992,7 +6079,7 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
5992
6079
  }
5993
6080
 
5994
6081
  // src/web/components/secret-reveal-card.tsx
5995
- var import_jsx_runtime68 = require("react/jsx-runtime");
6082
+ var import_jsx_runtime69 = require("react/jsx-runtime");
5996
6083
  function SecretRevealCard({
5997
6084
  value,
5998
6085
  revealed,
@@ -6004,9 +6091,9 @@ function SecretRevealCard({
6004
6091
  className,
6005
6092
  valueClassName
6006
6093
  }) {
6007
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: cn("space-y-3", className), children: [
6008
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "relative", children: [
6009
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6094
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: cn("space-y-3", className), children: [
6095
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
6096
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6010
6097
  "p",
6011
6098
  {
6012
6099
  className: cn(
@@ -6017,40 +6104,40 @@ function SecretRevealCard({
6017
6104
  children: value
6018
6105
  }
6019
6106
  ) }),
6020
- !revealed && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6107
+ !revealed && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6021
6108
  "button",
6022
6109
  {
6023
6110
  type: "button",
6024
6111
  onClick: () => onRevealChange(true),
6025
6112
  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",
6026
6113
  children: [
6027
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6114
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "visibility", className: "text-icon-lg" }),
6028
6115
  revealLabel
6029
6116
  ]
6030
6117
  }
6031
6118
  ) })
6032
6119
  ] }),
6033
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex gap-2", children: [
6034
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6120
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex gap-2", children: [
6121
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6035
6122
  "button",
6036
6123
  {
6037
6124
  type: "button",
6038
6125
  onClick: () => onRevealChange(!revealed),
6039
6126
  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",
6040
6127
  children: [
6041
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
6128
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
6042
6129
  revealed ? hideLabel : revealLabel
6043
6130
  ]
6044
6131
  }
6045
6132
  ),
6046
- revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6133
+ revealed && onCopy && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6047
6134
  "button",
6048
6135
  {
6049
6136
  type: "button",
6050
6137
  onClick: onCopy,
6051
6138
  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",
6052
6139
  children: [
6053
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6140
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "content_copy", className: "text-icon-lg" }),
6054
6141
  copyLabel
6055
6142
  ]
6056
6143
  }
@@ -6060,7 +6147,7 @@ function SecretRevealCard({
6060
6147
  }
6061
6148
 
6062
6149
  // src/web/components/settings-section-card.tsx
6063
- var import_jsx_runtime69 = require("react/jsx-runtime");
6150
+ var import_jsx_runtime70 = require("react/jsx-runtime");
6064
6151
  function SettingsSectionCard({
6065
6152
  title,
6066
6153
  description,
@@ -6069,15 +6156,15 @@ function SettingsSectionCard({
6069
6156
  className,
6070
6157
  bodyClassName
6071
6158
  }) {
6072
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card p-4", className), children: [
6073
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
6074
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "min-w-0 flex-1", children: [
6075
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
6076
- description && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
6159
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("section", { className: cn("space-y-4 rounded-xl bg-card p-4", className), children: [
6160
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
6161
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "min-w-0 flex-1", children: [
6162
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("h2", { className: "text-sm font-bold text-foreground", children: title }),
6163
+ description && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
6077
6164
  ] }),
6078
6165
  badge
6079
6166
  ] }),
6080
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: bodyClassName, children })
6167
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: bodyClassName, children })
6081
6168
  ] });
6082
6169
  }
6083
6170
  var badgeToneClass = {
@@ -6089,7 +6176,7 @@ var badgeToneClass = {
6089
6176
  muted: "border-white/10 bg-white/[0.05] text-white/55"
6090
6177
  };
6091
6178
  function ToneBadge({ children, tone = "muted", className }) {
6092
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6179
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6093
6180
  "span",
6094
6181
  {
6095
6182
  className: cn(
@@ -6103,7 +6190,7 @@ function ToneBadge({ children, tone = "muted", className }) {
6103
6190
  }
6104
6191
 
6105
6192
  // src/web/components/selectable-card.tsx
6106
- var import_jsx_runtime70 = require("react/jsx-runtime");
6193
+ var import_jsx_runtime71 = require("react/jsx-runtime");
6107
6194
  function SelectableCard({
6108
6195
  selected,
6109
6196
  onClick,
@@ -6115,28 +6202,28 @@ function SelectableCard({
6115
6202
  children,
6116
6203
  className
6117
6204
  }) {
6118
- const content = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
6119
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6120
- indicator && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6205
+ const content = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
6206
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6207
+ indicator && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6121
6208
  "div",
6122
6209
  {
6123
6210
  className: cn(
6124
6211
  "mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors",
6125
6212
  selected ? "border-primary bg-primary" : "border-white/20"
6126
6213
  ),
6127
- children: selected && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "size-2 rounded-full bg-background" })
6214
+ children: selected && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "size-2 rounded-full bg-background" })
6128
6215
  }
6129
6216
  ),
6130
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "min-w-0 flex-1", children: [
6131
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
6132
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
6217
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "min-w-0 flex-1", children: [
6218
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
6219
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-body font-bold text-foreground", children: title }),
6133
6220
  badge
6134
6221
  ] }),
6135
- description && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6222
+ description && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6136
6223
  children
6137
6224
  ] })
6138
6225
  ] }),
6139
- preview && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "shrink-0 text-right", children: preview })
6226
+ preview && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "shrink-0 text-right", children: preview })
6140
6227
  ] });
6141
6228
  const cardClassName = cn(
6142
6229
  "w-full rounded-2xl border p-4 text-left transition-all duration-200",
@@ -6144,14 +6231,14 @@ function SelectableCard({
6144
6231
  className
6145
6232
  );
6146
6233
  if (onClick) {
6147
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
6234
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("button", { type: "button", onClick, className: cardClassName, children: content });
6148
6235
  }
6149
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: cardClassName, children: content });
6236
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: cardClassName, children: content });
6150
6237
  }
6151
6238
 
6152
6239
  // src/web/components/mobile-hero-animation.tsx
6153
6240
  var import_react13 = require("react");
6154
- var import_jsx_runtime71 = require("react/jsx-runtime");
6241
+ var import_jsx_runtime72 = require("react/jsx-runtime");
6155
6242
  var PROTOCOLS = [
6156
6243
  { name: "Bitcoin", network: "Bitcoin", iconSuffix: "bitcoin/bitcoin-logo.svg" },
6157
6244
  { name: "Lightning", network: "LN", iconSuffix: "lightning/lightning.svg" },
@@ -6210,15 +6297,15 @@ var MobileHeroAnimation = ({
6210
6297
  }, []);
6211
6298
  const anim = !reducedMotion && isVisible;
6212
6299
  const scale = size / 280;
6213
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6300
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6214
6301
  "div",
6215
6302
  {
6216
6303
  ref: containerRef,
6217
6304
  className,
6218
6305
  style: { position: "relative", width: size, height: size },
6219
6306
  children: [
6220
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("style", { children: KEYFRAMES }),
6221
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { style: {
6307
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("style", { children: KEYFRAMES }),
6308
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { style: {
6222
6309
  position: "absolute",
6223
6310
  top: 0,
6224
6311
  left: 0,
@@ -6227,7 +6314,7 @@ var MobileHeroAnimation = ({
6227
6314
  transformOrigin: "top left",
6228
6315
  transform: scale !== 1 ? `scale(${scale})` : void 0
6229
6316
  }, children: [
6230
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
6317
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6231
6318
  "svg",
6232
6319
  {
6233
6320
  viewBox: "0 0 280 280",
@@ -6236,35 +6323,35 @@ var MobileHeroAnimation = ({
6236
6323
  style: { position: "absolute", inset: 0 },
6237
6324
  xmlns: "http://www.w3.org/2000/svg",
6238
6325
  children: [
6239
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("defs", { children: [
6240
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6241
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6242
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6243
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6326
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("defs", { children: [
6327
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6328
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6329
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6330
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6244
6331
  ] }),
6245
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6246
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6247
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6332
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6333
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6334
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6248
6335
  ] }),
6249
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6250
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6251
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6336
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6337
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6338
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6252
6339
  ] }),
6253
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6254
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6255
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("feMerge", { children: [
6256
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("feMergeNode", { in: "blur" }),
6257
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("feMergeNode", { in: "SourceGraphic" })
6340
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6341
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6342
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("feMerge", { children: [
6343
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "blur" }),
6344
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "SourceGraphic" })
6258
6345
  ] })
6259
6346
  ] })
6260
6347
  ] }),
6261
- /* @__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: [
6262
- /* @__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" }),
6263
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6348
+ /* @__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: [
6349
+ /* @__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" }),
6350
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6264
6351
  ] }) }),
6265
- /* @__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" }),
6266
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6267
- anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6352
+ /* @__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" }),
6353
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6354
+ anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6268
6355
  "animateTransform",
6269
6356
  {
6270
6357
  attributeName: "transform",
@@ -6285,8 +6372,8 @@ var MobileHeroAnimation = ({
6285
6372
  const y2 = C + dy * (ORBIT_R - BADGE_HALF);
6286
6373
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6287
6374
  const dur = `${2 + i * 0.3}s`;
6288
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6289
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6375
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6376
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6290
6377
  "line",
6291
6378
  {
6292
6379
  x1,
@@ -6297,29 +6384,29 @@ var MobileHeroAnimation = ({
6297
6384
  strokeWidth: "0.8",
6298
6385
  strokeDasharray: "2 4",
6299
6386
  opacity: "0.25",
6300
- 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" })
6387
+ 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" })
6301
6388
  }
6302
6389
  ),
6303
- /* @__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: [
6304
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6305
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6306
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6307
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6390
+ /* @__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: [
6391
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6392
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6393
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6394
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6308
6395
  ] }) })
6309
6396
  ] }, `line-${i}`);
6310
6397
  })
6311
6398
  ] }),
6312
- /* @__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" }) }),
6313
- /* @__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: [
6314
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6315
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6399
+ /* @__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" }) }),
6400
+ /* @__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: [
6401
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6402
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6316
6403
  ] }) }),
6317
- /* @__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: [
6318
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6319
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6404
+ /* @__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: [
6405
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6406
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6320
6407
  ] }) }),
6321
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6322
- anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6408
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6409
+ anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6323
6410
  "animateTransform",
6324
6411
  {
6325
6412
  attributeName: "transform",
@@ -6331,13 +6418,13 @@ var MobileHeroAnimation = ({
6331
6418
  additive: "sum"
6332
6419
  }
6333
6420
  ),
6334
- /* @__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: [
6335
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6336
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6421
+ /* @__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: [
6422
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6423
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6337
6424
  ] }) })
6338
6425
  ] }) }),
6339
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { children: [
6340
- anim && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6426
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6427
+ anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6341
6428
  "animateTransform",
6342
6429
  {
6343
6430
  attributeName: "transform",
@@ -6349,19 +6436,19 @@ var MobileHeroAnimation = ({
6349
6436
  additive: "sum"
6350
6437
  }
6351
6438
  ),
6352
- /* @__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" })
6439
+ /* @__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" })
6353
6440
  ] }) }),
6354
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6355
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6356
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6357
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6358
- /* @__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" }),
6359
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6441
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6442
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6443
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6444
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6445
+ /* @__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" }),
6446
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6360
6447
  ] })
6361
6448
  ]
6362
6449
  }
6363
6450
  ),
6364
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { style: {
6451
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { style: {
6365
6452
  position: "absolute",
6366
6453
  inset: 0,
6367
6454
  width: 280,
@@ -6372,7 +6459,7 @@ var MobileHeroAnimation = ({
6372
6459
  const x = C + Math.cos(angle) * ORBIT_R - BADGE_HALF;
6373
6460
  const y = C + Math.sin(angle) * ORBIT_R - BADGE_HALF;
6374
6461
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6375
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6462
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6376
6463
  "div",
6377
6464
  {
6378
6465
  style: {
@@ -6383,7 +6470,7 @@ var MobileHeroAnimation = ({
6383
6470
  height: BADGE_SIZE,
6384
6471
  animation: anim ? "mha-counter-spin 20s linear infinite" : "none"
6385
6472
  },
6386
- children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { style: {
6473
+ children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { style: {
6387
6474
  width: "100%",
6388
6475
  height: "100%",
6389
6476
  borderRadius: "50%",
@@ -6394,7 +6481,7 @@ var MobileHeroAnimation = ({
6394
6481
  display: "flex",
6395
6482
  alignItems: "center",
6396
6483
  justifyContent: "center"
6397
- }, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
6484
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6398
6485
  "img",
6399
6486
  {
6400
6487
  src: iconBasePath ? `${iconBasePath}/${protocol.iconSuffix}` : protocolIcons[protocol.network] ?? protocol.iconSuffix,
@@ -6414,7 +6501,7 @@ var MobileHeroAnimation = ({
6414
6501
 
6415
6502
  // src/web/components/kaleidoscope-hero-animation.tsx
6416
6503
  var import_react14 = require("react");
6417
- var import_jsx_runtime72 = require("react/jsx-runtime");
6504
+ var import_jsx_runtime73 = require("react/jsx-runtime");
6418
6505
  var PROTOCOLS2 = [
6419
6506
  { name: "Bitcoin L1", network: "L1", color: "#F7931A", glowColor: "rgba(247,147,26,0.5)" },
6420
6507
  { name: "Lightning", network: "LN", color: "#fbbf24", glowColor: "rgba(251,191,36,0.5)" },
@@ -6519,13 +6606,13 @@ var KaleidoScopeHeroAnimation = ({
6519
6606
  const angle = Math.PI * 2 * i / 7 - Math.PI / 2;
6520
6607
  return { x: c + orbitR * Math.cos(angle), y: c + orbitR * Math.sin(angle) };
6521
6608
  });
6522
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6609
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6523
6610
  "div",
6524
6611
  {
6525
6612
  ref: containerRef,
6526
6613
  className: `relative ${className}`,
6527
6614
  style: size ? { width: size, height: size } : void 0,
6528
- children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6615
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
6529
6616
  "svg",
6530
6617
  {
6531
6618
  viewBox: "0 0 500 500",
@@ -6534,60 +6621,60 @@ var KaleidoScopeHeroAnimation = ({
6534
6621
  xmlns: "http://www.w3.org/2000/svg",
6535
6622
  className: "overflow-visible",
6536
6623
  children: [
6537
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("defs", { children: [
6538
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6539
- /* @__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" }) }),
6540
- /* @__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" }) })
6624
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("defs", { children: [
6625
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6626
+ /* @__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" }) }),
6627
+ /* @__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" }) })
6541
6628
  ] }),
6542
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6543
- /* @__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" }) }),
6544
- /* @__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" }) })
6629
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6630
+ /* @__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" }) }),
6631
+ /* @__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" }) })
6545
6632
  ] }),
6546
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6547
- /* @__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" }) }),
6548
- /* @__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" }) })
6633
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6634
+ /* @__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" }) }),
6635
+ /* @__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" }) })
6549
6636
  ] }),
6550
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6551
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6552
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6637
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6638
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#22c55e" }),
6639
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6553
6640
  ] }),
6554
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6555
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
6556
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
6641
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6642
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#F7931A" }),
6643
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#06b6d4" })
6557
6644
  ] }),
6558
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6559
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6560
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6645
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6646
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#0e9dff" }),
6647
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6" })
6561
6648
  ] }),
6562
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6563
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6564
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6565
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6649
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6650
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6651
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6652
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6566
6653
  ] }),
6567
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6568
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6569
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6570
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6654
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6655
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6656
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6657
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6571
6658
  ] }),
6572
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6573
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6574
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("feMerge", { children: [
6575
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "blur" }),
6576
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "SourceGraphic" })
6659
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6660
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6661
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("feMerge", { children: [
6662
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "blur" }),
6663
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "SourceGraphic" })
6577
6664
  ] })
6578
6665
  ] }),
6579
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6580
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6581
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("feMerge", { children: [
6582
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "blur" }),
6583
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("feMergeNode", { in: "SourceGraphic" })
6666
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6667
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6668
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("feMerge", { children: [
6669
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "blur" }),
6670
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("feMergeNode", { in: "SourceGraphic" })
6584
6671
  ] })
6585
6672
  ] })
6586
6673
  ] }),
6587
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6588
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(20), children: [
6589
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6590
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6674
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6675
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(20), children: [
6676
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6677
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6591
6678
  "animateTransform",
6592
6679
  {
6593
6680
  attributeName: "transform",
@@ -6600,14 +6687,14 @@ var KaleidoScopeHeroAnimation = ({
6600
6687
  ),
6601
6688
  Array.from({ length: 6 }, (_, i) => {
6602
6689
  const a = Math.PI / 3 * i;
6603
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6604
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6605
- /* @__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" }) })
6690
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6691
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6692
+ /* @__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" }) })
6606
6693
  ] }, `ha-${i}`);
6607
6694
  }),
6608
6695
  Array.from({ length: 6 }, (_, i) => {
6609
6696
  const a = Math.PI / 3 * i + Math.PI / 6;
6610
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6697
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6611
6698
  "path",
6612
6699
  {
6613
6700
  d: triPath(14),
@@ -6620,7 +6707,7 @@ var KaleidoScopeHeroAnimation = ({
6620
6707
  }),
6621
6708
  Array.from({ length: 12 }, (_, i) => {
6622
6709
  const a = Math.PI / 6 * i;
6623
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6710
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6624
6711
  "circle",
6625
6712
  {
6626
6713
  cx: c + outerR1 * 0.92 * Math.cos(a),
@@ -6628,14 +6715,14 @@ var KaleidoScopeHeroAnimation = ({
6628
6715
  r: "1.5",
6629
6716
  fill: "url(#kh-grad-a)",
6630
6717
  opacity: "0.15",
6631
- 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" })
6718
+ 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" })
6632
6719
  },
6633
6720
  `od-${i}`
6634
6721
  );
6635
6722
  })
6636
6723
  ] }),
6637
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6638
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6724
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6725
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6639
6726
  "animateTransform",
6640
6727
  {
6641
6728
  attributeName: "transform",
@@ -6648,28 +6735,28 @@ var KaleidoScopeHeroAnimation = ({
6648
6735
  ),
6649
6736
  Array.from({ length: 6 }, (_, i) => {
6650
6737
  const a = Math.PI / 3 * i + Math.PI / 6;
6651
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
6652
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
6653
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
6738
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
6739
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
6740
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
6654
6741
  ] }, `hb-${i}`);
6655
6742
  }),
6656
6743
  Array.from({ length: 6 }, (_, i) => {
6657
6744
  const a = Math.PI / 3 * i;
6658
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6745
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6659
6746
  "path",
6660
6747
  {
6661
6748
  d: diamondPath(8, 16),
6662
6749
  transform: `translate(${c + outerR2 * 0.85 * Math.cos(a)},${c + outerR2 * 0.85 * Math.sin(a)}) rotate(${i * 60})`,
6663
6750
  fill: "url(#kh-grad-b)",
6664
6751
  opacity: "0.08",
6665
- 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" })
6752
+ 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" })
6666
6753
  },
6667
6754
  `db-${i}`
6668
6755
  );
6669
6756
  })
6670
6757
  ] }),
6671
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6672
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6758
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6759
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6673
6760
  "animateTransform",
6674
6761
  {
6675
6762
  attributeName: "transform",
@@ -6683,23 +6770,23 @@ var KaleidoScopeHeroAnimation = ({
6683
6770
  Array.from({ length: 12 }, (_, i) => {
6684
6771
  const a = Math.PI / 6 * i;
6685
6772
  const r = outerR1 * (0.6 + i % 2 * 0.15);
6686
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6773
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6687
6774
  "path",
6688
6775
  {
6689
6776
  d: triPath(10),
6690
6777
  transform: `translate(${c + r * Math.cos(a)},${c + r * Math.sin(a)}) rotate(${i * 30 + 15})`,
6691
6778
  fill: "url(#kh-grad-c)",
6692
6779
  opacity: "0.05",
6693
- 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" })
6780
+ 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" })
6694
6781
  },
6695
6782
  `tc-${i}`
6696
6783
  );
6697
6784
  })
6698
6785
  ] })
6699
6786
  ] }),
6700
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(14), children: [
6701
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6702
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6787
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(14), children: [
6788
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6789
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6703
6790
  "animateTransform",
6704
6791
  {
6705
6792
  attributeName: "transform",
@@ -6712,9 +6799,9 @@ var KaleidoScopeHeroAnimation = ({
6712
6799
  ),
6713
6800
  Array.from({ length: 12 }, (_, i) => {
6714
6801
  const a = Math.PI / 6 * i;
6715
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
6716
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
6717
- /* @__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" }) })
6802
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
6803
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
6804
+ /* @__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" }) })
6718
6805
  ] }, `mh-${i}`);
6719
6806
  })
6720
6807
  ] }),
@@ -6725,7 +6812,7 @@ var KaleidoScopeHeroAnimation = ({
6725
6812
  const y1 = c + midR * Math.sin(a1);
6726
6813
  const x2 = c + midR * Math.cos(a2);
6727
6814
  const y2 = c + midR * Math.sin(a2);
6728
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6815
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6729
6816
  "path",
6730
6817
  {
6731
6818
  d: `M${x1},${y1} Q${c},${c} ${x2},${y2}`,
@@ -6734,17 +6821,17 @@ var KaleidoScopeHeroAnimation = ({
6734
6821
  strokeWidth: "0.5",
6735
6822
  strokeDasharray: "3 5",
6736
6823
  opacity: "0.1",
6737
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
6824
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
6738
6825
  },
6739
6826
  `arc-${i}`
6740
6827
  );
6741
6828
  })
6742
6829
  ] }),
6743
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(10), children: [
6744
- /* @__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" }) }),
6745
- /* @__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" }),
6746
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6747
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6830
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(10), children: [
6831
+ /* @__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" }) }),
6832
+ /* @__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" }),
6833
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6834
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6748
6835
  "animateTransform",
6749
6836
  {
6750
6837
  attributeName: "transform",
@@ -6759,8 +6846,8 @@ var KaleidoScopeHeroAnimation = ({
6759
6846
  const angle = Math.atan2(pos.y - c, pos.x - c);
6760
6847
  const dx = Math.cos(angle);
6761
6848
  const dy = Math.sin(angle);
6762
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6763
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6849
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6850
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6764
6851
  "line",
6765
6852
  {
6766
6853
  x1: c + dx * 52,
@@ -6771,14 +6858,14 @@ var KaleidoScopeHeroAnimation = ({
6771
6858
  strokeWidth: "0.8",
6772
6859
  strokeDasharray: "2 4",
6773
6860
  opacity: "0.2",
6774
- 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" })
6861
+ 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" })
6775
6862
  }
6776
6863
  ),
6777
- /* @__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: [
6778
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6779
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6780
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6781
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
6864
+ /* @__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: [
6865
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6866
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6867
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6868
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
6782
6869
  ] }) })
6783
6870
  ] }, `conn-${i}`);
6784
6871
  }),
@@ -6786,14 +6873,14 @@ var KaleidoScopeHeroAnimation = ({
6786
6873
  const pos = iconPositions[i];
6787
6874
  const labelWidth = Math.max(proto.name.length * 5.5 + 10, 32);
6788
6875
  const isHovered = hoveredProtocol === proto.name;
6789
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
6876
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
6790
6877
  "g",
6791
6878
  {
6792
6879
  onMouseEnter: () => setHoveredProtocol(proto.name),
6793
6880
  onMouseLeave: () => setHoveredProtocol(null),
6794
6881
  style: { cursor: "pointer" },
6795
6882
  children: [
6796
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6883
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6797
6884
  "animateTransform",
6798
6885
  {
6799
6886
  attributeName: "transform",
@@ -6804,7 +6891,7 @@ var KaleidoScopeHeroAnimation = ({
6804
6891
  repeatCount: "indefinite"
6805
6892
  }
6806
6893
  ),
6807
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6894
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6808
6895
  "circle",
6809
6896
  {
6810
6897
  cx: "0",
@@ -6814,13 +6901,13 @@ var KaleidoScopeHeroAnimation = ({
6814
6901
  stroke: proto.color,
6815
6902
  strokeWidth: "1",
6816
6903
  opacity: "0",
6817
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
6818
- /* @__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` }),
6819
- /* @__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` })
6904
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
6905
+ /* @__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` }),
6906
+ /* @__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` })
6820
6907
  ] })
6821
6908
  }
6822
6909
  ),
6823
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6910
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6824
6911
  "circle",
6825
6912
  {
6826
6913
  cx: "0",
@@ -6830,10 +6917,10 @@ var KaleidoScopeHeroAnimation = ({
6830
6917
  stroke: proto.color,
6831
6918
  strokeWidth: "1",
6832
6919
  opacity: "0.15",
6833
- 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" })
6920
+ 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" })
6834
6921
  }
6835
6922
  ),
6836
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6923
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6837
6924
  "circle",
6838
6925
  {
6839
6926
  cx: "0",
@@ -6843,10 +6930,10 @@ var KaleidoScopeHeroAnimation = ({
6843
6930
  stroke: proto.color,
6844
6931
  strokeWidth: "1.5",
6845
6932
  opacity: "0.25",
6846
- 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" })
6933
+ 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" })
6847
6934
  }
6848
6935
  ),
6849
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6936
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6850
6937
  "circle",
6851
6938
  {
6852
6939
  cx: "0",
@@ -6857,8 +6944,8 @@ var KaleidoScopeHeroAnimation = ({
6857
6944
  strokeWidth: "1"
6858
6945
  }
6859
6946
  ),
6860
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
6861
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6947
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
6948
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6862
6949
  NetworkBadge,
6863
6950
  {
6864
6951
  network: proto.network,
@@ -6866,8 +6953,8 @@ var KaleidoScopeHeroAnimation = ({
6866
6953
  className: "w-full h-full"
6867
6954
  }
6868
6955
  ) }),
6869
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
6870
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6956
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
6957
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6871
6958
  "rect",
6872
6959
  {
6873
6960
  x: -labelWidth / 2,
@@ -6881,7 +6968,7 @@ var KaleidoScopeHeroAnimation = ({
6881
6968
  strokeOpacity: 0.4
6882
6969
  }
6883
6970
  ),
6884
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6971
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6885
6972
  "text",
6886
6973
  {
6887
6974
  x: "0",
@@ -6901,9 +6988,9 @@ var KaleidoScopeHeroAnimation = ({
6901
6988
  })
6902
6989
  ] })
6903
6990
  ] }),
6904
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: px(5), children: [
6905
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6906
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
6991
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: px(5), children: [
6992
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
6993
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6907
6994
  "animateTransform",
6908
6995
  {
6909
6996
  attributeName: "transform",
@@ -6916,28 +7003,28 @@ var KaleidoScopeHeroAnimation = ({
6916
7003
  ),
6917
7004
  Array.from({ length: 6 }, (_, i) => {
6918
7005
  const a = Math.PI / 3 * i;
6919
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7006
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6920
7007
  "path",
6921
7008
  {
6922
7009
  d: diamondPath(10, 22),
6923
7010
  transform: `translate(${c + innerR * Math.cos(a)},${c + innerR * Math.sin(a)}) rotate(${i * 60})`,
6924
7011
  fill: "url(#kh-gp)",
6925
7012
  opacity: "0.15",
6926
- 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" })
7013
+ 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" })
6927
7014
  },
6928
7015
  `d-${i}`
6929
7016
  );
6930
7017
  }),
6931
7018
  Array.from({ length: 6 }, (_, i) => {
6932
7019
  const a = Math.PI / 3 * i + Math.PI / 6;
6933
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7020
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6934
7021
  "path",
6935
7022
  {
6936
7023
  d: triPath(8),
6937
7024
  transform: `translate(${c + innerR * 0.75 * Math.cos(a)},${c + innerR * 0.75 * Math.sin(a)}) rotate(${i * 60 + 30})`,
6938
7025
  fill: "url(#kh-oc)",
6939
7026
  opacity: "0.1",
6940
- 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" })
7027
+ 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" })
6941
7028
  },
6942
7029
  `it-${i}`
6943
7030
  );
@@ -6945,7 +7032,7 @@ var KaleidoScopeHeroAnimation = ({
6945
7032
  Array.from({ length: 12 }, (_, i) => {
6946
7033
  const a = Math.PI / 6 * i;
6947
7034
  const r = innerR * (i % 2 === 0 ? 0.55 : 0.65);
6948
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7035
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6949
7036
  "circle",
6950
7037
  {
6951
7038
  cx: c + r * Math.cos(a),
@@ -6953,14 +7040,14 @@ var KaleidoScopeHeroAnimation = ({
6953
7040
  r: i % 2 === 0 ? 2 : 1.5,
6954
7041
  fill: "url(#kh-oc)",
6955
7042
  opacity: "0.2",
6956
- 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" })
7043
+ 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" })
6957
7044
  },
6958
7045
  `id-${i}`
6959
7046
  );
6960
7047
  })
6961
7048
  ] }),
6962
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
6963
- anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7049
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
7050
+ anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6964
7051
  "animateTransform",
6965
7052
  {
6966
7053
  attributeName: "transform",
@@ -6973,27 +7060,27 @@ var KaleidoScopeHeroAnimation = ({
6973
7060
  ),
6974
7061
  Array.from({ length: 6 }, (_, i) => {
6975
7062
  const a = Math.PI / 3 * i + Math.PI / 6;
6976
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7063
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6977
7064
  "path",
6978
7065
  {
6979
7066
  d: hexPath2(6),
6980
7067
  transform: `translate(${c + innerR * 0.42 * Math.cos(a)},${c + innerR * 0.42 * Math.sin(a)})`,
6981
7068
  fill: "url(#kh-bp)",
6982
7069
  opacity: "0.1",
6983
- 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" })
7070
+ 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" })
6984
7071
  },
6985
7072
  `ih-${i}`
6986
7073
  );
6987
7074
  })
6988
7075
  ] })
6989
7076
  ] }),
6990
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
7077
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
6991
7078
  const a = Math.PI * 2 * i / 16;
6992
7079
  const baseR = 60 + i % 4 * 45;
6993
7080
  const x = c + baseR * Math.cos(a);
6994
7081
  const y = c + baseR * Math.sin(a);
6995
7082
  const colors2 = ["#0e9dff", "#8a5cf6", "#22c55e", "#F7931A", "#06b6d4", "#15E99A"];
6996
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7083
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
6997
7084
  "circle",
6998
7085
  {
6999
7086
  cx: x,
@@ -7001,26 +7088,26 @@ var KaleidoScopeHeroAnimation = ({
7001
7088
  r: 1 + i % 3 * 0.5,
7002
7089
  fill: colors2[i % colors2.length],
7003
7090
  opacity: "0",
7004
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
7005
- /* @__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` }),
7006
- /* @__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` }),
7007
- /* @__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` })
7091
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7092
+ /* @__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` }),
7093
+ /* @__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` }),
7094
+ /* @__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` })
7008
7095
  ] })
7009
7096
  },
7010
7097
  `p-${i}`
7011
7098
  );
7012
7099
  }) }),
7013
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { children: [
7014
- /* @__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" }) }),
7015
- /* @__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: [
7016
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
7017
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
7100
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { children: [
7101
+ /* @__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" }) }),
7102
+ /* @__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: [
7103
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
7104
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
7018
7105
  ] }) }),
7019
- /* @__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: [
7020
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
7021
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
7106
+ /* @__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: [
7107
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
7108
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
7022
7109
  ] }) }),
7023
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7110
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7024
7111
  "path",
7025
7112
  {
7026
7113
  d: hexPath2(50),
@@ -7030,13 +7117,13 @@ var KaleidoScopeHeroAnimation = ({
7030
7117
  strokeWidth: "1.5",
7031
7118
  opacity: "0.4",
7032
7119
  filter: "url(#kh-glow)",
7033
- children: anim && /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
7034
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
7035
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
7120
+ children: anim && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7121
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
7122
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
7036
7123
  ] })
7037
7124
  }
7038
7125
  ),
7039
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7126
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7040
7127
  "path",
7041
7128
  {
7042
7129
  d: hexPath2(46),
@@ -7046,21 +7133,21 @@ var KaleidoScopeHeroAnimation = ({
7046
7133
  strokeWidth: "0.5"
7047
7134
  }
7048
7135
  ),
7049
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
7050
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
7051
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
7052
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
7053
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
7054
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
7055
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
7056
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
7057
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
7058
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
7059
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
7060
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
7061
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
7062
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
7063
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
7136
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
7137
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
7138
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
7139
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
7140
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
7141
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
7142
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
7143
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
7144
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
7145
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
7146
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
7147
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
7148
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
7149
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
7150
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
7064
7151
  ] })
7065
7152
  ] })
7066
7153
  ]
@@ -7194,7 +7281,7 @@ var colors = {
7194
7281
  };
7195
7282
 
7196
7283
  // src/web/components/deposit-ui-shared.tsx
7197
- var import_jsx_runtime73 = require("react/jsx-runtime");
7284
+ var import_jsx_runtime74 = require("react/jsx-runtime");
7198
7285
  var GLOW_ALPHA = "26";
7199
7286
  function qrGlowStyle(hex) {
7200
7287
  return { boxShadow: `0 0 30px ${hex}${GLOW_ALPHA}` };
@@ -7211,7 +7298,7 @@ var NETWORK_CONFIG = {
7211
7298
  // On-chain uses a chain-link glyph rather than the ₿ coin — the coin reads
7212
7299
  // as "the BTC asset", whereas this row is specifically the *on-chain* (L1)
7213
7300
  // receive rail alongside Lightning/Spark/Arkade, so a chain mark disambiguates.
7214
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7301
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7215
7302
  },
7216
7303
  lightning: {
7217
7304
  label: "Lightning",
@@ -7221,7 +7308,7 @@ var NETWORK_CONFIG = {
7221
7308
  border: "border-network-lightning/40",
7222
7309
  qrBorder: "border-network-lightning/30",
7223
7310
  qrGlow: qrGlowStyle(colors.network.lightning),
7224
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7311
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7225
7312
  },
7226
7313
  spark: {
7227
7314
  label: "Spark",
@@ -7231,7 +7318,7 @@ var NETWORK_CONFIG = {
7231
7318
  border: "border-info/40",
7232
7319
  qrBorder: "border-info/30",
7233
7320
  qrGlow: qrGlowStyle(colors.info),
7234
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7321
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7235
7322
  },
7236
7323
  arkade: {
7237
7324
  label: "Arkade",
@@ -7241,7 +7328,7 @@ var NETWORK_CONFIG = {
7241
7328
  border: "border-network-arkade/40",
7242
7329
  qrBorder: "border-network-arkade/30",
7243
7330
  qrGlow: qrGlowStyle(colors.network.arkade),
7244
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7331
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7245
7332
  }
7246
7333
  };
7247
7334
  var ACCOUNT_META = {
@@ -7250,14 +7337,14 @@ var ACCOUNT_META = {
7250
7337
  accentBg: "bg-primary/10",
7251
7338
  accentText: "text-primary",
7252
7339
  accentBorder: "border-primary/30",
7253
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("img", { src: "/icons/rgb/rgb-logo.svg", alt: "", className: "h-2.5 w-2.5 object-contain" })
7340
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("img", { src: "/icons/rgb/rgb-logo.svg", alt: "", className: "h-2.5 w-2.5 object-contain" })
7254
7341
  },
7255
7342
  SPARK: {
7256
7343
  shortLabel: "Spark",
7257
7344
  accentBg: "bg-info/10",
7258
7345
  accentText: "text-info",
7259
7346
  accentBorder: "border-info/30",
7260
- icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7347
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7261
7348
  "img",
7262
7349
  {
7263
7350
  src: "/icons/spark/Asterisk/Spark Asterisk White.svg",
@@ -7271,7 +7358,7 @@ var ACCOUNT_META = {
7271
7358
  accentBg: "bg-network-arkade/10",
7272
7359
  accentText: "text-network-arkade",
7273
7360
  accentBorder: "border-network-arkade/30",
7274
- 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" })
7361
+ 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" })
7275
7362
  }
7276
7363
  };
7277
7364
  var METHOD_META = {
@@ -7288,7 +7375,7 @@ function InvoiceStatusBanner({
7288
7375
  isInvoiceFailedOrExpired,
7289
7376
  invoiceStatus
7290
7377
  }) {
7291
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7378
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7292
7379
  "div",
7293
7380
  {
7294
7381
  className: cn(
@@ -7296,17 +7383,17 @@ function InvoiceStatusBanner({
7296
7383
  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"
7297
7384
  ),
7298
7385
  children: [
7299
- isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7300
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7301
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Waiting for payment..." })
7386
+ isInvoicePending && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7387
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7388
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Waiting for payment..." })
7302
7389
  ] }),
7303
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7304
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7305
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Payment received!" })
7390
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7391
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7392
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Payment received!" })
7306
7393
  ] }),
7307
- isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
7308
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7309
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("span", { children: [
7394
+ isInvoiceFailedOrExpired && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
7395
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7396
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { children: [
7310
7397
  "Invoice ",
7311
7398
  invoiceStatus?.toLowerCase() === "expired" ? "expired" : "failed"
7312
7399
  ] })
@@ -7316,20 +7403,20 @@ function InvoiceStatusBanner({
7316
7403
  );
7317
7404
  }
7318
7405
  function PaidOverlay() {
7319
- 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: [
7320
- /* @__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" }) }),
7321
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7406
+ 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: [
7407
+ /* @__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" }) }),
7408
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7322
7409
  ] }) });
7323
7410
  }
7324
7411
  function CopyIcon({ copied }) {
7325
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7412
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7326
7413
  "div",
7327
7414
  {
7328
7415
  className: cn(
7329
7416
  "flex-shrink-0 rounded-lg p-2 transition-all",
7330
7417
  copied ? "bg-primary/15 text-primary" : "bg-white/5 text-white/40 group-hover:bg-primary/10 group-hover:text-primary"
7331
7418
  ),
7332
- 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" })
7419
+ 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" })
7333
7420
  }
7334
7421
  );
7335
7422
  }
@@ -7340,7 +7427,7 @@ function AccountChoiceChip({
7340
7427
  label
7341
7428
  }) {
7342
7429
  const meta = ACCOUNT_META[account];
7343
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7430
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7344
7431
  "button",
7345
7432
  {
7346
7433
  type: "button",
@@ -7352,7 +7439,7 @@ function AccountChoiceChip({
7352
7439
  ),
7353
7440
  children: [
7354
7441
  meta.icon,
7355
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: label ?? meta.shortLabel })
7442
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: label ?? meta.shortLabel })
7356
7443
  ]
7357
7444
  }
7358
7445
  );
@@ -7401,8 +7488,8 @@ function NetworkInfoDisclosure({
7401
7488
  }) {
7402
7489
  const [open, setOpen] = (0, import_react15.useState)(false);
7403
7490
  if (networks.length === 0) return null;
7404
- 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: [
7405
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7491
+ 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: [
7492
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7406
7493
  "button",
7407
7494
  {
7408
7495
  type: "button",
@@ -7410,24 +7497,24 @@ function NetworkInfoDisclosure({
7410
7497
  "aria-expanded": open,
7411
7498
  className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-left transition-colors hover:bg-white/4",
7412
7499
  children: [
7413
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7414
- /* @__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?" }),
7415
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7500
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7501
+ /* @__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?" }),
7502
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7416
7503
  ]
7417
7504
  }
7418
7505
  ),
7419
- 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) => {
7506
+ 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) => {
7420
7507
  const info = NETWORK_INFO[network];
7421
7508
  const cfg = NETWORK_CONFIG[network];
7422
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "space-y-1", children: [
7423
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7424
- /* @__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 }),
7425
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7509
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "space-y-1", children: [
7510
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7511
+ /* @__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 }),
7512
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7426
7513
  ] }),
7427
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7428
- /* @__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: [
7429
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
7430
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: bullet })
7514
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7515
+ /* @__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: [
7516
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "mt-[1px] text-white/30", children: "-" }),
7517
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: bullet })
7431
7518
  ] }, bullet)) })
7432
7519
  ] }, network);
7433
7520
  }) })
@@ -7441,7 +7528,7 @@ function MethodChoiceChip({
7441
7528
  onClick
7442
7529
  }) {
7443
7530
  const meta = METHOD_META[method];
7444
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7531
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7445
7532
  "button",
7446
7533
  {
7447
7534
  type: "button",
@@ -7454,14 +7541,14 @@ function MethodChoiceChip({
7454
7541
  ),
7455
7542
  children: [
7456
7543
  meta.label,
7457
- !enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7544
+ !enabled && disabledReason && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7458
7545
  ]
7459
7546
  }
7460
7547
  );
7461
7548
  }
7462
7549
 
7463
7550
  // src/web/components/deposit-success-screen.tsx
7464
- var import_jsx_runtime74 = require("react/jsx-runtime");
7551
+ var import_jsx_runtime75 = require("react/jsx-runtime");
7465
7552
  function DepositSuccessScreen({
7466
7553
  handleDone,
7467
7554
  displayTicker,
@@ -7474,20 +7561,20 @@ function DepositSuccessScreen({
7474
7561
  const isInstant = network === "lightning" || network === "spark";
7475
7562
  const title = isInstant ? "Payment Received!" : "Deposit Detected!";
7476
7563
  const subtitle = isInstant ? `Your ${displayTicker} has arrived via ${networkLabel}.` : `Incoming deposit detected via ${networkLabel}. Funds will be available after confirmation.`;
7477
- 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: [
7478
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "relative mb-8", children: [
7479
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7480
- /* @__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" }) })
7564
+ 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: [
7565
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "relative mb-8", children: [
7566
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7567
+ /* @__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" }) })
7481
7568
  ] }),
7482
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7483
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7484
- /* @__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: [
7485
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
7486
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "text-left", children: [
7487
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7488
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7569
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7570
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7571
+ /* @__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: [
7572
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(AssetIcon, { ticker: displayTicker, size: 36 }),
7573
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "text-left", children: [
7574
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7575
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7489
7576
  ] }),
7490
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7577
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7491
7578
  "div",
7492
7579
  {
7493
7580
  className: cn(
@@ -7498,27 +7585,27 @@ function DepositSuccessScreen({
7498
7585
  ),
7499
7586
  children: [
7500
7587
  net.icon,
7501
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: networkLabel })
7588
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: networkLabel })
7502
7589
  ]
7503
7590
  }
7504
7591
  )
7505
7592
  ] }),
7506
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7507
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7593
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7594
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7508
7595
  "Back to Wallet"
7509
7596
  ] })
7510
7597
  ] }) });
7511
7598
  }
7512
7599
 
7513
7600
  // src/web/components/deposit-network-default-modal.tsx
7514
- var import_jsx_runtime75 = require("react/jsx-runtime");
7601
+ var import_jsx_runtime76 = require("react/jsx-runtime");
7515
7602
  var NETWORK_OPTIONS = {
7516
7603
  RGB: {
7517
7604
  network: "onchain",
7518
7605
  account: "RGB",
7519
7606
  label: "On-chain / Lightning",
7520
7607
  description: "Classic Bitcoin address or Lightning invoice via the RLN node.",
7521
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7608
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7522
7609
  accentBg: "bg-network-bitcoin/10",
7523
7610
  accentBorder: "border-network-bitcoin/30",
7524
7611
  accentText: "text-network-bitcoin"
@@ -7528,7 +7615,7 @@ var NETWORK_OPTIONS = {
7528
7615
  account: "SPARK",
7529
7616
  label: "Spark",
7530
7617
  description: "Receive directly into your Spark account. Fast and free.",
7531
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7618
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7532
7619
  accentBg: "bg-info/10",
7533
7620
  accentBorder: "border-info/30",
7534
7621
  accentText: "text-info"
@@ -7538,7 +7625,7 @@ var NETWORK_OPTIONS = {
7538
7625
  account: "ARKADE",
7539
7626
  label: "Arkade",
7540
7627
  description: "Receive directly into your Arkade account. Low fees, near-instant settlement.",
7541
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7628
+ icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7542
7629
  accentBg: "bg-network-arkade/10",
7543
7630
  accentBorder: "border-network-arkade/30",
7544
7631
  accentText: "text-network-arkade"
@@ -7553,20 +7640,20 @@ function DepositNetworkDefaultModal({
7553
7640
  }) {
7554
7641
  if (!open) return null;
7555
7642
  const options = availableAccounts.map((id) => NETWORK_OPTIONS[id]).filter(Boolean);
7556
- 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: [
7557
- /* @__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" }) }),
7558
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { children: [
7559
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7560
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7643
+ 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: [
7644
+ /* @__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" }) }),
7645
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { children: [
7646
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7647
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7561
7648
  "Pick how you would like to receive",
7562
7649
  " ",
7563
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7650
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7564
7651
  " by default. You can always switch in the deposit screen."
7565
7652
  ] })
7566
7653
  ] }),
7567
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "space-y-2", children: options.map((option) => {
7654
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "space-y-2", children: options.map((option) => {
7568
7655
  const isSuggested = option.account === suggestedAccount;
7569
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7656
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7570
7657
  "button",
7571
7658
  {
7572
7659
  type: "button",
@@ -7576,7 +7663,7 @@ function DepositNetworkDefaultModal({
7576
7663
  isSuggested ? cn("border-2", option.accentBorder, option.accentBg) : "border border-white/8 bg-white/4 hover:bg-white/8"
7577
7664
  ),
7578
7665
  children: [
7579
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7666
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7580
7667
  "div",
7581
7668
  {
7582
7669
  className: cn(
@@ -7587,10 +7674,10 @@ function DepositNetworkDefaultModal({
7587
7674
  children: option.icon
7588
7675
  }
7589
7676
  ),
7590
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "min-w-0 flex-1", children: [
7591
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center gap-2", children: [
7592
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
7593
- isSuggested && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7677
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "min-w-0 flex-1", children: [
7678
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-2", children: [
7679
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
7680
+ isSuggested && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7594
7681
  "span",
7595
7682
  {
7596
7683
  className: cn(
@@ -7602,9 +7689,9 @@ function DepositNetworkDefaultModal({
7602
7689
  }
7603
7690
  )
7604
7691
  ] }),
7605
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
7692
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
7606
7693
  ] }),
7607
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7694
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7608
7695
  "span",
7609
7696
  {
7610
7697
  className: cn(
@@ -7624,7 +7711,7 @@ function DepositNetworkDefaultModal({
7624
7711
 
7625
7712
  // src/web/components/btc-unified-receive.tsx
7626
7713
  var import_react16 = require("react");
7627
- var import_jsx_runtime76 = require("react/jsx-runtime");
7714
+ var import_jsx_runtime77 = require("react/jsx-runtime");
7628
7715
  function formatSatsForRow(value) {
7629
7716
  if (!value || value <= 0 || !Number.isFinite(value)) return null;
7630
7717
  return `${value.toLocaleString("en-US")} sats`;
@@ -7656,46 +7743,46 @@ function BtcUnifiedReceive({
7656
7743
  setInvoiceStatus(null);
7657
7744
  setAccountReceiveResult(null);
7658
7745
  };
7659
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7660
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7661
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
7662
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
7663
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(PaidOverlay, {})
7746
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7747
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7748
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "relative flex flex-col items-center p-2", children: [
7749
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
7750
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(PaidOverlay, {})
7664
7751
  ] }),
7665
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
7666
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7752
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center justify-center gap-2.5", children: [
7753
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7667
7754
  Button,
7668
7755
  {
7669
7756
  variant: "surface",
7670
7757
  size: "icon-xl",
7671
7758
  "aria-label": `Copy ${accountReceiveResult.qrLabel}`,
7672
7759
  onClick: () => void copyToClipboard(accountReceiveResult.qrValue),
7673
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
7760
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
7674
7761
  }
7675
7762
  ),
7676
- showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7763
+ showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7677
7764
  Button,
7678
7765
  {
7679
7766
  variant: "surface",
7680
7767
  size: "icon-xl",
7681
7768
  "aria-label": "New address",
7682
7769
  onClick: handleNewAddress,
7683
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "refresh", size: "lg" })
7770
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "refresh", size: "lg" })
7684
7771
  }
7685
7772
  ),
7686
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7773
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7687
7774
  Button,
7688
7775
  {
7689
7776
  variant: "surface",
7690
7777
  size: "icon-xl",
7691
7778
  "aria-label": "Edit amount and description",
7692
7779
  onClick: () => setShowEdit(true),
7693
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "edit", size: "lg" })
7780
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "edit", size: "lg" })
7694
7781
  }
7695
7782
  )
7696
7783
  ] })
7697
7784
  ] }),
7698
- invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7785
+ invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7699
7786
  InvoiceStatusBanner,
7700
7787
  {
7701
7788
  isInvoicePending,
@@ -7704,11 +7791,11 @@ function BtcUnifiedReceive({
7704
7791
  invoiceStatus
7705
7792
  }
7706
7793
  ),
7707
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1.5", children: [
7708
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
7794
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-1.5", children: [
7795
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
7709
7796
  accountReceiveResult.addresses.map((address) => {
7710
7797
  const network = NETWORK_CONFIG[address.network];
7711
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
7798
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7712
7799
  "div",
7713
7800
  {
7714
7801
  className: cn(
@@ -7718,35 +7805,35 @@ function BtcUnifiedReceive({
7718
7805
  style: { borderLeftWidth: 3, borderLeftColor: network.color },
7719
7806
  onClick: () => void copyToClipboard(address.value),
7720
7807
  children: [
7721
- /* @__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 }),
7722
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "min-w-0 flex-1", children: [
7723
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7724
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
7808
+ /* @__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 }),
7809
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
7810
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex items-center gap-1.5", children: [
7811
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
7725
7812
  (() => {
7726
7813
  const amountLabel = formatSatsForRow(address.amountSats);
7727
- 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;
7814
+ 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;
7728
7815
  })()
7729
7816
  ] }),
7730
- /* @__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 })
7817
+ /* @__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 })
7731
7818
  ] }),
7732
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(CopyIcon, { copied: copied === address.value })
7819
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CopyIcon, { copied: copied === address.value })
7733
7820
  ]
7734
7821
  },
7735
7822
  address.network
7736
7823
  );
7737
7824
  })
7738
7825
  ] }),
7739
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7826
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7740
7827
  BottomSheet,
7741
7828
  {
7742
7829
  open: showEdit,
7743
7830
  title: "Edit request",
7744
- icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Icon, { name: "edit", size: "md" }),
7831
+ icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: "edit", size: "md" }),
7745
7832
  onClose: () => setShowEdit(false),
7746
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-4", children: [
7747
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1.5", children: [
7748
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
7749
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7833
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-4", children: [
7834
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-1.5", children: [
7835
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
7836
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7750
7837
  "input",
7751
7838
  {
7752
7839
  type: "text",
@@ -7757,14 +7844,14 @@ function BtcUnifiedReceive({
7757
7844
  inputMode: "decimal"
7758
7845
  }
7759
7846
  ),
7760
- amount && loading && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
7761
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7847
+ amount && loading && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
7848
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7762
7849
  "Updating invoice..."
7763
7850
  ] })
7764
7851
  ] }),
7765
- onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "space-y-1.5", children: [
7766
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
7767
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7852
+ onDescriptionChange && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-1.5", children: [
7853
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
7854
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7768
7855
  "input",
7769
7856
  {
7770
7857
  type: "text",
@@ -7775,7 +7862,7 @@ function BtcUnifiedReceive({
7775
7862
  }
7776
7863
  )
7777
7864
  ] }),
7778
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
7865
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
7779
7866
  ] })
7780
7867
  }
7781
7868
  )
@@ -7783,7 +7870,7 @@ function BtcUnifiedReceive({
7783
7870
  }
7784
7871
 
7785
7872
  // src/web/components/deposit-generated-view.tsx
7786
- var import_jsx_runtime77 = require("react/jsx-runtime");
7873
+ var import_jsx_runtime78 = require("react/jsx-runtime");
7787
7874
  function parseAssetAmount(amountString, asset) {
7788
7875
  const value = Number(amountString);
7789
7876
  if (!Number.isFinite(value)) return 0;
@@ -7824,10 +7911,10 @@ function DepositGeneratedView({
7824
7911
  showRegenerate = true,
7825
7912
  onRegenerate
7826
7913
  }) {
7827
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7828
- (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: [
7829
- /* @__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)" }) }),
7830
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7914
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7915
+ (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: [
7916
+ /* @__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)" }) }),
7917
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7831
7918
  "input",
7832
7919
  {
7833
7920
  type: "text",
@@ -7838,16 +7925,16 @@ function DepositGeneratedView({
7838
7925
  inputMode: "decimal"
7839
7926
  }
7840
7927
  ),
7841
- 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: [
7842
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7928
+ 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: [
7929
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7843
7930
  "Updating ",
7844
7931
  network === "arkade" ? "URI" : "invoice",
7845
7932
  "..."
7846
7933
  ] }) : network === "arkade" ? `Unified URI for ${amount} ${getUnitLabel()}` : `Invoice for ${amount} ${getUnitLabel()}` })
7847
7934
  ] }),
7848
- 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: [
7849
- /* @__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)" }) }),
7850
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7935
+ 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: [
7936
+ /* @__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)" }) }),
7937
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7851
7938
  "input",
7852
7939
  {
7853
7940
  type: "text",
@@ -7858,19 +7945,19 @@ function DepositGeneratedView({
7858
7945
  inputMode: "decimal"
7859
7946
  }
7860
7947
  ),
7861
- 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: [
7862
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7948
+ 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: [
7949
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7863
7950
  "Updating invoice..."
7864
7951
  ] }) : `Invoice for ${amount} ${getUnitLabel()}` }),
7865
- 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: [
7952
+ 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: [
7866
7953
  "Exceeds max: ",
7867
7954
  formatAssetAmount(maxDepositAmount, selectedAsset),
7868
7955
  " ",
7869
7956
  getUnitLabel()
7870
7957
  ] })
7871
7958
  ] }),
7872
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7873
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7959
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center gap-3", children: [
7960
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7874
7961
  "div",
7875
7962
  {
7876
7963
  className: cn(
@@ -7879,7 +7966,7 @@ function DepositGeneratedView({
7879
7966
  ),
7880
7967
  style: net.qrGlow,
7881
7968
  children: [
7882
- showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7969
+ showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7883
7970
  "div",
7884
7971
  {
7885
7972
  className: cn(
@@ -7889,21 +7976,21 @@ function DepositGeneratedView({
7889
7976
  ),
7890
7977
  children: [
7891
7978
  net.icon,
7892
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { children: net.label })
7979
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { children: net.label })
7893
7980
  ]
7894
7981
  }
7895
7982
  ),
7896
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(QrCode, { value: address, size: 188 }),
7897
- isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(PaidOverlay, {}),
7983
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(QrCode, { value: address, size: 188 }),
7984
+ isInvoicePaid && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PaidOverlay, {}),
7898
7985
  loading && !isInvoicePaid && // Loading scrim — sits over the QR while a fresh address/invoice
7899
7986
  // is being fetched (e.g. after the New Address button).
7900
- /* @__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" }) })
7987
+ /* @__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" }) })
7901
7988
  ]
7902
7989
  }
7903
7990
  ),
7904
7991
  (() => {
7905
7992
  const isAddressCopied = copied === address;
7906
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
7993
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7907
7994
  "button",
7908
7995
  {
7909
7996
  type: "button",
@@ -7916,14 +8003,14 @@ function DepositGeneratedView({
7916
8003
  void copyToClipboard(address);
7917
8004
  },
7918
8005
  children: [
7919
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
8006
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
7920
8007
  isAddressCopied ? "Copied" : network === "lightning" ? "Copy Invoice" : "Copy Address"
7921
8008
  ]
7922
8009
  }
7923
8010
  );
7924
8011
  })()
7925
8012
  ] }),
7926
- network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8013
+ network === "lightning" && invoiceStatus && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7927
8014
  InvoiceStatusBanner,
7928
8015
  {
7929
8016
  isInvoicePending,
@@ -7932,7 +8019,7 @@ function DepositGeneratedView({
7932
8019
  invoiceStatus
7933
8020
  }
7934
8021
  ),
7935
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
8022
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7936
8023
  "div",
7937
8024
  {
7938
8025
  "data-testid": "deposit-generated-address",
@@ -7945,16 +8032,16 @@ function DepositGeneratedView({
7945
8032
  style: { borderLeftWidth: 3, borderLeftColor: net.color },
7946
8033
  onClick: () => void copyToClipboard(address),
7947
8034
  children: [
7948
- /* @__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 }),
7949
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
7950
- /* @__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 }) }),
7951
- /* @__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 })
8035
+ /* @__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 }),
8036
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8037
+ /* @__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 }) }),
8038
+ /* @__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 })
7952
8039
  ] }),
7953
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CopyIcon, { copied: copied === address })
8040
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CopyIcon, { copied: copied === address })
7954
8041
  ]
7955
8042
  }
7956
8043
  ),
7957
- recipientId && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
8044
+ recipientId && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
7958
8045
  "div",
7959
8046
  {
7960
8047
  className: cn(
@@ -7964,16 +8051,16 @@ function DepositGeneratedView({
7964
8051
  style: { borderLeftWidth: 3, borderLeftColor: "var(--primary)" },
7965
8052
  onClick: () => void copyToClipboard(recipientId),
7966
8053
  children: [
7967
- /* @__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" }) }),
7968
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "min-w-0 flex-1", children: [
7969
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
7970
- /* @__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 })
8054
+ /* @__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" }) }),
8055
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8056
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
8057
+ /* @__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 })
7971
8058
  ] }),
7972
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CopyIcon, { copied: copied === recipientId })
8059
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CopyIcon, { copied: copied === recipientId })
7973
8060
  ]
7974
8061
  }
7975
8062
  ),
7976
- showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8063
+ showRegenerate && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7977
8064
  "button",
7978
8065
  {
7979
8066
  type: "button",
@@ -7991,7 +8078,7 @@ function DepositGeneratedView({
7991
8078
  setInvoiceStatus(null);
7992
8079
  },
7993
8080
  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",
7994
- children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8081
+ children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7995
8082
  "span",
7996
8083
  {
7997
8084
  className: cn("material-symbols-outlined text-icon-md", loading && "animate-spin"),
@@ -8004,7 +8091,7 @@ function DepositGeneratedView({
8004
8091
  }
8005
8092
 
8006
8093
  // src/web/components/deposit-pre-generation.tsx
8007
- var import_jsx_runtime78 = require("react/jsx-runtime");
8094
+ var import_jsx_runtime79 = require("react/jsx-runtime");
8008
8095
  var ACCOUNT_TITLES = {
8009
8096
  RGB: "RGB & Lightning",
8010
8097
  SPARK: "Spark",
@@ -8049,58 +8136,58 @@ function DepositPreGeneration({
8049
8136
  }) {
8050
8137
  const method = METHOD_META2[currentMethod];
8051
8138
  const isRgbOnchain = network === "onchain" && !isBtc;
8052
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-3", children: [
8053
- showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "rounded-2xl border border-white/8 bg-white/4 p-3", children: [
8054
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
8055
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
8056
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8057
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-white/45", children: "Asset" }),
8058
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
8139
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-3", children: [
8140
+ showReceiveSummary && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "rounded-2xl border border-white/8 bg-white/4 p-3", children: [
8141
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
8142
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
8143
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8144
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-white/45", children: "Asset" }),
8145
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
8059
8146
  ] }),
8060
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8061
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-white/45", children: "Destination account" }),
8062
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
8147
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8148
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-white/45", children: "Destination account" }),
8149
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
8063
8150
  ] }),
8064
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8065
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
8066
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-bold text-white", children: method.label })
8151
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8152
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-white/45", children: "Transfer method" }),
8153
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold text-white", children: method.label })
8067
8154
  ] }),
8068
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
8155
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-tiny text-white/35", children: method.summary })
8069
8156
  ] })
8070
8157
  ] }),
8071
- 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: [
8072
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
8073
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
8158
+ 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: [
8159
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
8160
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
8074
8161
  ] }),
8075
- showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(AlertBanner, { variant: "warning", children: [
8076
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
8077
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
8162
+ showChannelWarning && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(AlertBanner, { variant: "warning", children: [
8163
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
8164
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
8078
8165
  ] }),
8079
- showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(AlertBanner, { variant: "warning", children: [
8080
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
8081
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-tiny text-warning/70", children: [
8166
+ showLiquidityWarning && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(AlertBanner, { variant: "warning", children: [
8167
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
8168
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-tiny text-warning/70", children: [
8082
8169
  "No channels with inbound capacity for ",
8083
8170
  selectedAsset?.ticker ?? "this asset",
8084
8171
  "."
8085
8172
  ] })
8086
8173
  ] }),
8087
- isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8088
- /* @__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" }) }),
8089
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1 text-center", children: [
8090
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
8174
+ isAutoGenerate && loading && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8175
+ /* @__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" }) }),
8176
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1 text-center", children: [
8177
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-sm font-bold text-muted-foreground", children: [
8091
8178
  "Generating ",
8092
8179
  network === "lightning" ? "invoice" : "address",
8093
8180
  "..."
8094
8181
  ] }),
8095
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("p", { className: "text-xs text-white/30", children: [
8182
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-xs text-white/30", children: [
8096
8183
  net.label,
8097
8184
  " network"
8098
8185
  ] })
8099
8186
  ] })
8100
8187
  ] }),
8101
- isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8102
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8103
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8188
+ isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8189
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8190
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8104
8191
  "input",
8105
8192
  {
8106
8193
  type: "text",
@@ -8112,15 +8199,15 @@ function DepositPreGeneration({
8112
8199
  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"
8113
8200
  }
8114
8201
  ),
8115
- /* @__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." })
8202
+ /* @__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." })
8116
8203
  ] }),
8117
- isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-2.5 rounded-xl border bg-card p-3", children: [
8118
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8119
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "min-w-0 flex-1", children: [
8120
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8121
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8204
+ isRgbOnchain && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-2.5 rounded-xl border bg-card p-3", children: [
8205
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
8206
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8207
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8208
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8122
8209
  ] }),
8123
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8210
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8124
8211
  "button",
8125
8212
  {
8126
8213
  type: "button",
@@ -8130,7 +8217,7 @@ function DepositPreGeneration({
8130
8217
  usePrivacy ? "bg-primary" : "bg-white/10"
8131
8218
  ),
8132
8219
  onClick: () => setUsePrivacy(!usePrivacy),
8133
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8220
+ children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8134
8221
  "span",
8135
8222
  {
8136
8223
  className: cn(
@@ -8142,8 +8229,8 @@ function DepositPreGeneration({
8142
8229
  }
8143
8230
  )
8144
8231
  ] }),
8145
- /* @__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." }),
8146
- usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
8232
+ /* @__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." }),
8233
+ usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8147
8234
  "div",
8148
8235
  {
8149
8236
  className: cn(
@@ -8151,26 +8238,26 @@ function DepositPreGeneration({
8151
8238
  colorableUtxoCount > 0 ? "border-success/20 bg-success/5 text-success/80" : "border-warning/20 bg-warning/5 text-warning/80"
8152
8239
  ),
8153
8240
  children: [
8154
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8155
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "font-mono font-bold", children: colorableUtxoCount })
8241
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8242
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-mono font-bold", children: colorableUtxoCount })
8156
8243
  ]
8157
8244
  }
8158
8245
  ),
8159
- 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." })
8246
+ 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." })
8160
8247
  ] }),
8161
- network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "space-y-1.5", children: [
8162
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex items-center justify-between", children: [
8163
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8248
+ network === "onchain" && !isBtc && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5", children: [
8249
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center justify-between", children: [
8250
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8164
8251
  "Amount (",
8165
8252
  getUnitLabel(),
8166
8253
  ") - Optional"
8167
8254
  ] }),
8168
- selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "text-xxs text-white/30", children: [
8255
+ selectedAsset && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "text-xxs text-white/30", children: [
8169
8256
  selectedAsset.precision ?? 0,
8170
8257
  " decimals"
8171
8258
  ] })
8172
8259
  ] }),
8173
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8260
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8174
8261
  "input",
8175
8262
  {
8176
8263
  type: "text",
@@ -8182,18 +8269,18 @@ function DepositPreGeneration({
8182
8269
  }
8183
8270
  )
8184
8271
  ] }),
8185
- needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(AlertBanner, { variant: "warning", children: [
8186
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8187
- /* @__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." })
8272
+ needsColorableUtxos && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(AlertBanner, { variant: "warning", children: [
8273
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8274
+ /* @__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." })
8188
8275
  ] }),
8189
- !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: [
8190
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8276
+ !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: [
8277
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8191
8278
  "Create Colorable UTXOs"
8192
- ] }) }) : /* @__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: [
8193
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8279
+ ] }) }) : /* @__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: [
8280
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8194
8281
  "Generating..."
8195
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8196
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8282
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "flex items-center justify-center gap-2", children: [
8283
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8197
8284
  "Generate Address"
8198
8285
  ] }) }))
8199
8286
  ] });
@@ -8201,7 +8288,7 @@ function DepositPreGeneration({
8201
8288
 
8202
8289
  // src/web/components/deposit-asset-selection.tsx
8203
8290
  var import_react17 = require("react");
8204
- var import_jsx_runtime79 = require("react/jsx-runtime");
8291
+ var import_jsx_runtime80 = require("react/jsx-runtime");
8205
8292
  var ADD_ASSET_SUBTITLE = {
8206
8293
  RGB: "RGB asset on Bitcoin",
8207
8294
  SPARK: "Spark-native asset",
@@ -8278,8 +8365,8 @@ function DepositAssetSelection({
8278
8365
  titleHoverClass: "group-hover:text-network-arkade"
8279
8366
  }
8280
8367
  ].filter((option) => option.enabled);
8281
- 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: [
8282
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8368
+ 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: [
8369
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8283
8370
  Button,
8284
8371
  {
8285
8372
  type: "button",
@@ -8287,10 +8374,10 @@ function DepositAssetSelection({
8287
8374
  size: "icon-xl",
8288
8375
  onClick: () => setCurrentView("dashboard"),
8289
8376
  "aria-label": "Go back",
8290
- children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "arrow_back", size: "xl" })
8377
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "arrow_back", size: "xl" })
8291
8378
  }
8292
8379
  ) }),
8293
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8380
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8294
8381
  DotPagination,
8295
8382
  {
8296
8383
  count: 2,
@@ -8298,8 +8385,8 @@ function DepositAssetSelection({
8298
8385
  ariaLabel: "Deposit step 1 of 2: select asset"
8299
8386
  }
8300
8387
  ) }),
8301
- /* @__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: [
8302
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8388
+ /* @__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: [
8389
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8303
8390
  Icon,
8304
8391
  {
8305
8392
  name: "search",
@@ -8307,7 +8394,7 @@ function DepositAssetSelection({
8307
8394
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-white/30"
8308
8395
  }
8309
8396
  ),
8310
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8397
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8311
8398
  "input",
8312
8399
  {
8313
8400
  autoFocus: true,
@@ -8320,8 +8407,8 @@ function DepositAssetSelection({
8320
8407
  }
8321
8408
  )
8322
8409
  ] }) }),
8323
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8324
- btcAsset && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8410
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8411
+ btcAsset && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8325
8412
  "button",
8326
8413
  {
8327
8414
  type: "button",
@@ -8329,27 +8416,27 @@ function DepositAssetSelection({
8329
8416
  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",
8330
8417
  onClick: () => onSelectAsset(btcAsset),
8331
8418
  children: [
8332
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8333
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8334
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8335
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8419
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8420
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8421
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8422
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8336
8423
  ] }),
8337
- /* @__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: [
8338
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
8339
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
8340
- isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
8341
- isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(NetworkBadge, { network: "Arkade", size: "sm" })
8424
+ /* @__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: [
8425
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "L1", size: "sm" }),
8426
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "LN", size: "sm" }),
8427
+ isSparkConnected && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "Spark", size: "sm" }),
8428
+ isArkadeConnected && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NetworkBadge, { network: "Arkade", size: "sm" })
8342
8429
  ] }),
8343
- /* @__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" })
8430
+ /* @__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" })
8344
8431
  ]
8345
8432
  }
8346
8433
  ),
8347
- noResults ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
8434
+ noResults ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "py-8 text-center text-sm text-white/30", children: [
8348
8435
  'No assets match "',
8349
8436
  searchQuery,
8350
8437
  '"'
8351
- ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
8352
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8438
+ ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1.5 pt-1", children: [
8439
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8353
8440
  "button",
8354
8441
  {
8355
8442
  type: "button",
@@ -8362,17 +8449,17 @@ function DepositAssetSelection({
8362
8449
  isSearching && "cursor-default"
8363
8450
  ),
8364
8451
  children: [
8365
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8366
- /* @__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 }),
8367
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex-1" }),
8368
- !isSearching && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8452
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8453
+ /* @__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 }),
8454
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "flex-1" }),
8455
+ !isSearching && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8369
8456
  ]
8370
8457
  }
8371
8458
  ),
8372
- 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) => {
8459
+ 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) => {
8373
8460
  const protocolBadge = asset.accountId ? PROTOCOL_BADGE[asset.accountId] : null;
8374
8461
  const balance = asset.balance ?? 0;
8375
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8462
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8376
8463
  "button",
8377
8464
  {
8378
8465
  type: "button",
@@ -8380,11 +8467,11 @@ function DepositAssetSelection({
8380
8467
  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",
8381
8468
  onClick: () => onSelectAsset(asset),
8382
8469
  children: [
8383
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8384
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8385
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8386
- /* @__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 }),
8387
- protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8470
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8471
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1 text-left", children: [
8472
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8473
+ /* @__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 }),
8474
+ protocolBadge && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8388
8475
  "span",
8389
8476
  {
8390
8477
  className: cn(
@@ -8395,36 +8482,36 @@ function DepositAssetSelection({
8395
8482
  }
8396
8483
  )
8397
8484
  ] }),
8398
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8485
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8399
8486
  ] }),
8400
- balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
8401
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "font-mono text-xs font-bold text-white", children: formatAssetBalance(asset) }),
8402
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8487
+ balance > 0 && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-shrink-0 text-right", children: [
8488
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "font-mono text-xs font-bold text-white", children: formatAssetBalance(asset) }),
8489
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8403
8490
  ] }),
8404
- /* @__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" })
8491
+ /* @__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" })
8405
8492
  ]
8406
8493
  },
8407
8494
  asset.asset_id
8408
8495
  );
8409
8496
  }) })
8410
8497
  ] }) : null,
8411
- !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8498
+ !searchQuery && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8412
8499
  "button",
8413
8500
  {
8414
8501
  type: "button",
8415
8502
  onClick: () => setCurrentView("bridge"),
8416
8503
  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",
8417
8504
  children: [
8418
- /* @__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" }) }),
8419
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-1 text-left", children: [
8420
- /* @__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" }),
8421
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8505
+ /* @__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" }) }),
8506
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-1 text-left", children: [
8507
+ /* @__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" }),
8508
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8422
8509
  ] }),
8423
- /* @__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" })
8510
+ /* @__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" })
8424
8511
  ]
8425
8512
  }
8426
8513
  ) }),
8427
- !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8514
+ !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8428
8515
  "button",
8429
8516
  {
8430
8517
  type: "button",
@@ -8432,27 +8519,27 @@ function DepositAssetSelection({
8432
8519
  onClick: () => setShowAddAssetModal(true),
8433
8520
  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",
8434
8521
  children: [
8435
- /* @__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" }) }),
8436
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-1 text-left", children: [
8437
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8438
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
8522
+ /* @__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" }) }),
8523
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-1 text-left", children: [
8524
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8525
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("p", { className: "text-xxs leading-tight text-white/40", children: [
8439
8526
  "Receive a new ",
8440
8527
  newAssetOptions.map((o) => o.ticker).join(", "),
8441
8528
  " asset"
8442
8529
  ] })
8443
8530
  ] }),
8444
- /* @__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" })
8445
8532
  ]
8446
8533
  }
8447
8534
  ) })
8448
8535
  ] }),
8449
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8536
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8450
8537
  BottomSheet,
8451
8538
  {
8452
8539
  open: showAddAssetModal,
8453
8540
  title: "Add an asset",
8454
8541
  onClose: () => setShowAddAssetModal(false),
8455
- children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
8542
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
8456
8543
  "button",
8457
8544
  {
8458
8545
  type: "button",
@@ -8466,12 +8553,12 @@ function DepositAssetSelection({
8466
8553
  handleAddNewAsset(option.account);
8467
8554
  },
8468
8555
  children: [
8469
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8470
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "min-w-0 flex-1", children: [
8471
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8472
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8556
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8557
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "min-w-0 flex-1", children: [
8558
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8559
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8473
8560
  ] }),
8474
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8561
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8475
8562
  ]
8476
8563
  },
8477
8564
  option.account
@@ -8482,7 +8569,7 @@ function DepositAssetSelection({
8482
8569
  }
8483
8570
 
8484
8571
  // src/web/components/deposit-invoice-generation.tsx
8485
- var import_jsx_runtime80 = require("react/jsx-runtime");
8572
+ var import_jsx_runtime81 = require("react/jsx-runtime");
8486
8573
  var ACCOUNT_TITLES2 = {
8487
8574
  RGB: "RGB & Lightning",
8488
8575
  SPARK: "Spark",
@@ -8637,7 +8724,7 @@ function DepositInvoiceGeneration({
8637
8724
  if (nextMethod) applyMethodSelection(account, nextMethod);
8638
8725
  };
8639
8726
  if (depositDetected) {
8640
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8727
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8641
8728
  DepositSuccessScreen,
8642
8729
  {
8643
8730
  handleDone,
@@ -8654,15 +8741,15 @@ function DepositInvoiceGeneration({
8654
8741
  const showChannelWarning = selectedAccount === "RGB" && network === "lightning" && !channelsLoading && channels.length === 0 && !isSparkConnected;
8655
8742
  const showLiquidityWarning = !isSparkLightning && network === "lightning" && maxDepositAmount === 0 && !channelsLoading && !isBtc;
8656
8743
  const isNewRgbAsset = isNewAsset && assetFamily === "RGB";
8657
- 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: [
8658
- /* @__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" }) }) }),
8744
+ 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: [
8745
+ /* @__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" }) }) }),
8659
8746
  (() => {
8660
8747
  const hideDestinationRail = isNewAsset && (network === "spark" || network === "arkade");
8661
8748
  if (hideDestinationRail) return null;
8662
- 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: [
8663
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { children: [
8664
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
8665
- /* @__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)(
8749
+ 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: [
8750
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { children: [
8751
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
8752
+ /* @__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)(
8666
8753
  AccountChoiceChip,
8667
8754
  {
8668
8755
  account,
@@ -8687,9 +8774,9 @@ function DepositInvoiceGeneration({
8687
8774
  account
8688
8775
  )) })
8689
8776
  ] }),
8690
- !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { children: [
8691
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
8692
- /* @__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)(
8777
+ !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { children: [
8778
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
8779
+ /* @__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)(
8693
8780
  MethodChoiceChip,
8694
8781
  {
8695
8782
  method,
@@ -8703,7 +8790,7 @@ function DepositInvoiceGeneration({
8703
8790
  ] })
8704
8791
  ] }) });
8705
8792
  })(),
8706
- /* @__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)(
8793
+ /* @__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)(
8707
8794
  BtcUnifiedReceive,
8708
8795
  {
8709
8796
  btcSelectedAccount,
@@ -8723,8 +8810,8 @@ function DepositInvoiceGeneration({
8723
8810
  setAccountReceiveResult,
8724
8811
  handleDone
8725
8812
  }
8726
- ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8727
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8813
+ ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8814
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8728
8815
  "div",
8729
8816
  {
8730
8817
  className: cn(
@@ -8732,7 +8819,7 @@ function DepositInvoiceGeneration({
8732
8819
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].bg,
8733
8820
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].border
8734
8821
  ),
8735
- children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8822
+ children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8736
8823
  "span",
8737
8824
  {
8738
8825
  className: cn(
@@ -8744,11 +8831,11 @@ function DepositInvoiceGeneration({
8744
8831
  )
8745
8832
  }
8746
8833
  ),
8747
- /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "space-y-1 text-center", children: [
8748
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
8749
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
8834
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-1 text-center", children: [
8835
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
8836
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
8750
8837
  ] })
8751
- ] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8838
+ ] }) : !address ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8752
8839
  DepositPreGeneration,
8753
8840
  {
8754
8841
  selectedAsset,
@@ -8772,7 +8859,7 @@ function DepositInvoiceGeneration({
8772
8859
  onOpenCreateUtxos,
8773
8860
  showReceiveSummary: !isNewRgbAsset
8774
8861
  }
8775
- ) : /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8862
+ ) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8776
8863
  DepositGeneratedView,
8777
8864
  {
8778
8865
  network,
@@ -8922,6 +9009,7 @@ function DepositInvoiceGeneration({
8922
9009
  StepperNumberInput,
8923
9010
  SwapInputCard,
8924
9011
  Switch,
9012
+ SwitchRow,
8925
9013
  Tabs,
8926
9014
  TabsContent,
8927
9015
  TabsList,