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.
package/dist/web/index.js CHANGED
@@ -4587,9 +4587,17 @@ function WithdrawAmountInput({
4587
4587
  feeRate,
4588
4588
  setFeeRate,
4589
4589
  feeRates,
4590
+ feeRateMode,
4591
+ setFeeRateMode,
4592
+ customFeeRate,
4593
+ setCustomFeeRate,
4594
+ effectiveFeeRateSatPerVb,
4595
+ estimatedFee,
4590
4596
  donation,
4591
4597
  setDonation
4592
4598
  }) {
4599
+ const customFeeEnabled = typeof setFeeRateMode === "function";
4600
+ const activeFeeMode = feeRateMode ?? feeRate;
4593
4601
  const unitLabel = selectedAssetId === "BTC" ? "sats" : selectedAssetTicker ?? "units";
4594
4602
  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;
4595
4603
  const enteredNum = parseFloat(amount.replace(/[^\d.-]/g, "") || "0") || 0;
@@ -4668,7 +4676,58 @@ function WithdrawAmountInput({
4668
4676
  ] }),
4669
4677
  (addressType === "bitcoin" || addressType === "rgb") && /* @__PURE__ */ jsxs33("div", { className: "space-y-2", children: [
4670
4678
  /* @__PURE__ */ jsx46("label", { className: "ml-1 text-xs font-bold uppercase tracking-wider text-muted-foreground", children: "Fee Rate" }),
4671
- /* @__PURE__ */ jsx46("div", { className: "grid grid-cols-3 gap-3", children: ["slow", "normal", "fast"].map((rate) => /* @__PURE__ */ jsxs33(
4679
+ customFeeEnabled ? /* @__PURE__ */ jsxs33(Fragment9, { children: [
4680
+ /* @__PURE__ */ jsx46("div", { className: "grid grid-cols-4 gap-2", children: ["slow", "normal", "fast", "custom"].map((mode) => {
4681
+ const selected = activeFeeMode === mode;
4682
+ return /* @__PURE__ */ jsxs33(
4683
+ "button",
4684
+ {
4685
+ type: "button",
4686
+ onClick: () => {
4687
+ setFeeRateMode?.(mode);
4688
+ if (mode !== "custom") setFeeRate(mode);
4689
+ },
4690
+ 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"}`,
4691
+ children: [
4692
+ /* @__PURE__ */ jsx46(
4693
+ "span",
4694
+ {
4695
+ className: `block text-xs font-bold capitalize ${selected ? "text-primary" : "text-muted-foreground group-hover:text-primary"}`,
4696
+ children: mode
4697
+ }
4698
+ ),
4699
+ /* @__PURE__ */ jsx46(
4700
+ "span",
4701
+ {
4702
+ className: `mt-0.5 block text-xxs font-medium ${selected ? "text-primary/70" : "text-white/40 group-hover:text-white/70"}`,
4703
+ children: mode === "custom" ? "sat/vB" : `${feeRates[mode]} sat/vB`
4704
+ }
4705
+ )
4706
+ ]
4707
+ },
4708
+ mode
4709
+ );
4710
+ }) }),
4711
+ activeFeeMode === "custom" && /* @__PURE__ */ jsx46(
4712
+ "input",
4713
+ {
4714
+ type: "text",
4715
+ inputMode: "decimal",
4716
+ placeholder: `${feeRates[feeRate]} (${feeRate})`,
4717
+ value: customFeeRate ?? "",
4718
+ onChange: (event) => setCustomFeeRate?.(event.target.value.replace(/[^\d.]/g, "")),
4719
+ 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"
4720
+ }
4721
+ ),
4722
+ typeof estimatedFee === "number" && /* @__PURE__ */ jsxs33("p", { className: "ml-1 text-xs text-muted-foreground", children: [
4723
+ "Using ",
4724
+ effectiveFeeRateSatPerVb,
4725
+ " sat/vB \xB7 ~",
4726
+ estimatedFee.toLocaleString(),
4727
+ " ",
4728
+ "sats est. fee"
4729
+ ] })
4730
+ ] }) : /* @__PURE__ */ jsx46("div", { className: "grid grid-cols-3 gap-3", children: ["slow", "normal", "fast"].map((rate) => /* @__PURE__ */ jsxs33(
4672
4731
  "button",
4673
4732
  {
4674
4733
  type: "button",
@@ -5236,10 +5295,37 @@ function SettingItem({
5236
5295
  );
5237
5296
  }
5238
5297
 
5298
+ // src/web/components/switch-row.tsx
5299
+ import { jsx as jsx54, jsxs as jsxs41 } from "react/jsx-runtime";
5300
+ function SwitchRow({
5301
+ label,
5302
+ description,
5303
+ checked,
5304
+ disabled,
5305
+ onCheckedChange,
5306
+ className
5307
+ }) {
5308
+ return /* @__PURE__ */ jsxs41("div", { className: cn("flex items-start justify-between gap-3 rounded-xl bg-muted/40 p-3", className), children: [
5309
+ /* @__PURE__ */ jsxs41("div", { className: "min-w-0", children: [
5310
+ /* @__PURE__ */ jsx54("p", { className: "text-sm font-medium text-foreground", children: label }),
5311
+ description && /* @__PURE__ */ jsx54("p", { className: "mt-0.5 text-xs leading-snug text-muted-foreground", children: description })
5312
+ ] }),
5313
+ /* @__PURE__ */ jsx54(
5314
+ Switch,
5315
+ {
5316
+ checked,
5317
+ disabled,
5318
+ onCheckedChange,
5319
+ "aria-label": label
5320
+ }
5321
+ )
5322
+ ] });
5323
+ }
5324
+
5239
5325
  // src/web/components/section-label.tsx
5240
- import { jsx as jsx54 } from "react/jsx-runtime";
5326
+ import { jsx as jsx55 } from "react/jsx-runtime";
5241
5327
  function SectionLabel({ children, className }) {
5242
- return /* @__PURE__ */ jsx54(
5328
+ return /* @__PURE__ */ jsx55(
5243
5329
  "span",
5244
5330
  {
5245
5331
  className: cn("text-xxs font-black uppercase tracking-eyebrow-wide text-muted-foreground", className),
@@ -5249,21 +5335,21 @@ function SectionLabel({ children, className }) {
5249
5335
  }
5250
5336
 
5251
5337
  // src/web/components/section-header.tsx
5252
- import { jsx as jsx55, jsxs as jsxs41 } from "react/jsx-runtime";
5338
+ import { jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
5253
5339
  function SectionHeader({
5254
5340
  children,
5255
5341
  right,
5256
5342
  as: Tag = "h2",
5257
5343
  className
5258
5344
  }) {
5259
- return /* @__PURE__ */ jsxs41("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
5260
- /* @__PURE__ */ jsx55(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
5345
+ return /* @__PURE__ */ jsxs42("div", { className: cn("flex items-center justify-between gap-3 px-1", className), children: [
5346
+ /* @__PURE__ */ jsx56(Tag, { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children }),
5261
5347
  right
5262
5348
  ] });
5263
5349
  }
5264
5350
 
5265
5351
  // src/web/components/alert-banner.tsx
5266
- import { jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
5352
+ import { jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
5267
5353
  var variantStyles = {
5268
5354
  error: { container: "bg-danger/40", icon: "text-danger", iconName: "error" },
5269
5355
  warning: { container: "bg-warning/40", icon: "text-warning", iconName: "warning" },
@@ -5272,14 +5358,14 @@ var variantStyles = {
5272
5358
  };
5273
5359
  function AlertBanner({ variant = "info", icon, children, className }) {
5274
5360
  const styles = variantStyles[variant];
5275
- return /* @__PURE__ */ jsxs42("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
5276
- /* @__PURE__ */ jsx56(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
5277
- /* @__PURE__ */ jsx56("div", { className: cn("text-sm", styles.icon), children })
5361
+ return /* @__PURE__ */ jsxs43("div", { className: cn("rounded-xl p-3 flex items-center gap-2", styles.container, className), children: [
5362
+ /* @__PURE__ */ jsx57(Icon, { name: icon ?? styles.iconName, size: "md", className: cn("shrink-0", styles.icon) }),
5363
+ /* @__PURE__ */ jsx57("div", { className: cn("text-sm", styles.icon), children })
5278
5364
  ] });
5279
5365
  }
5280
5366
 
5281
5367
  // src/web/components/info-panel.tsx
5282
- import { jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
5368
+ import { jsx as jsx58, jsxs as jsxs44 } from "react/jsx-runtime";
5283
5369
  var toneClass = {
5284
5370
  default: {
5285
5371
  panel: "border-white/8 bg-white/[0.03]",
@@ -5320,19 +5406,19 @@ function InfoPanel({
5320
5406
  className
5321
5407
  }) {
5322
5408
  const styles = toneClass[tone];
5323
- const renderedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx57(Icon, { name: icon, className: cn("mt-0.5 shrink-0 text-icon-xl", styles.icon) }) : icon;
5324
- return /* @__PURE__ */ jsx57("div", { className: cn("rounded-xl border p-4", styles.panel, className), children: /* @__PURE__ */ jsxs43("div", { className: "flex items-start gap-3", children: [
5409
+ const renderedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx58(Icon, { name: icon, className: cn("mt-0.5 shrink-0 text-icon-xl", styles.icon) }) : icon;
5410
+ return /* @__PURE__ */ jsx58("div", { className: cn("rounded-xl border p-4", styles.panel, className), children: /* @__PURE__ */ jsxs44("div", { className: "flex items-start gap-3", children: [
5325
5411
  renderedIcon,
5326
- /* @__PURE__ */ jsxs43("div", { className: "min-w-0 flex-1", children: [
5327
- title && /* @__PURE__ */ jsx57("p", { className: cn("text-sm font-bold", styles.title), children: title }),
5328
- /* @__PURE__ */ jsx57("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
5412
+ /* @__PURE__ */ jsxs44("div", { className: "min-w-0 flex-1", children: [
5413
+ title && /* @__PURE__ */ jsx58("p", { className: cn("text-sm font-bold", styles.title), children: title }),
5414
+ /* @__PURE__ */ jsx58("div", { className: cn("text-xs leading-relaxed", title ? "mt-1" : "", styles.title), children })
5329
5415
  ] })
5330
5416
  ] }) });
5331
5417
  }
5332
5418
 
5333
5419
  // src/web/components/error-boundary.tsx
5334
5420
  import { Component } from "react";
5335
- import { jsx as jsx58, jsxs as jsxs44 } from "react/jsx-runtime";
5421
+ import { jsx as jsx59, jsxs as jsxs45 } from "react/jsx-runtime";
5336
5422
  var ErrorBoundary = class extends Component {
5337
5423
  constructor(props) {
5338
5424
  super(props);
@@ -5346,11 +5432,11 @@ var ErrorBoundary = class extends Component {
5346
5432
  }
5347
5433
  render() {
5348
5434
  if (this.state.hasError) {
5349
- return this.props.fallback ?? /* @__PURE__ */ jsxs44("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
5350
- /* @__PURE__ */ jsx58("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5351
- /* @__PURE__ */ jsx58("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5352
- /* @__PURE__ */ jsx58("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5353
- /* @__PURE__ */ jsx58(
5435
+ return this.props.fallback ?? /* @__PURE__ */ jsxs45("div", { className: "min-h-screen bg-background text-foreground font-display flex flex-col items-center justify-center p-6 gap-4", children: [
5436
+ /* @__PURE__ */ jsx59("span", { className: "material-symbols-outlined text-danger text-icon-5xl", children: "error" }),
5437
+ /* @__PURE__ */ jsx59("h2", { className: "text-lg font-bold", children: "Something went wrong" }),
5438
+ /* @__PURE__ */ jsx59("p", { className: "text-sm text-muted-foreground text-center", children: this.state.error?.message ?? "An unexpected error occurred." }),
5439
+ /* @__PURE__ */ jsx59(
5354
5440
  "button",
5355
5441
  {
5356
5442
  onClick: () => {
@@ -5368,7 +5454,7 @@ var ErrorBoundary = class extends Component {
5368
5454
  };
5369
5455
 
5370
5456
  // src/web/components/recovery-phrase-card.tsx
5371
- import { jsx as jsx59, jsxs as jsxs45 } from "react/jsx-runtime";
5457
+ import { jsx as jsx60, jsxs as jsxs46 } from "react/jsx-runtime";
5372
5458
  function RecoveryPhraseCard({
5373
5459
  words,
5374
5460
  revealed = false,
@@ -5379,10 +5465,10 @@ function RecoveryPhraseCard({
5379
5465
  className
5380
5466
  }) {
5381
5467
  const hasWords = words.length > 0;
5382
- return /* @__PURE__ */ jsxs45("section", { className: cn("space-y-2", className), children: [
5383
- /* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-between px-0.5", children: [
5384
- /* @__PURE__ */ jsx59("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5385
- hasWords && revealed && onRevealChange && /* @__PURE__ */ jsxs45(
5468
+ return /* @__PURE__ */ jsxs46("section", { className: cn("space-y-2", className), children: [
5469
+ /* @__PURE__ */ jsxs46("div", { className: "flex items-center justify-between px-0.5", children: [
5470
+ /* @__PURE__ */ jsx60("p", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: title }),
5471
+ hasWords && revealed && onRevealChange && /* @__PURE__ */ jsxs46(
5386
5472
  Button,
5387
5473
  {
5388
5474
  type: "button",
@@ -5391,27 +5477,27 @@ function RecoveryPhraseCard({
5391
5477
  onClick: () => onRevealChange(!revealed),
5392
5478
  className: "h-auto rounded-lg px-2 py-1 text-xs text-muted-foreground hover:text-white",
5393
5479
  children: [
5394
- /* @__PURE__ */ jsx59(Icon, { name: "visibility_off", className: "text-icon-md" }),
5480
+ /* @__PURE__ */ jsx60(Icon, { name: "visibility_off", className: "text-icon-md" }),
5395
5481
  "Hide"
5396
5482
  ]
5397
5483
  }
5398
5484
  )
5399
5485
  ] }),
5400
- /* @__PURE__ */ jsxs45("div", { className: "relative", children: [
5401
- hasWords ? /* @__PURE__ */ jsx59(
5486
+ /* @__PURE__ */ jsxs46("div", { className: "relative", children: [
5487
+ hasWords ? /* @__PURE__ */ jsx60(
5402
5488
  "div",
5403
5489
  {
5404
5490
  className: cn(
5405
5491
  "grid grid-cols-3 gap-2 transition-all duration-300",
5406
5492
  !revealed && "pointer-events-none select-none blur-sm"
5407
5493
  ),
5408
- children: words.map((word, index) => /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
5409
- /* @__PURE__ */ jsx59("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5410
- /* @__PURE__ */ jsx59("span", { className: "font-mono text-sm text-white", children: word })
5494
+ children: words.map((word, index) => /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-2 rounded-xl bg-card px-3 py-2.5", children: [
5495
+ /* @__PURE__ */ jsx60("span", { className: "w-4 shrink-0 text-xs font-bold text-muted-foreground", children: index + 1 }),
5496
+ /* @__PURE__ */ jsx60("span", { className: "font-mono text-sm text-white", children: word })
5411
5497
  ] }, `${index}-${word}`))
5412
5498
  }
5413
- ) : /* @__PURE__ */ jsx59("div", { className: "rounded-xl border border-warning/30 bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
5414
- hasWords && !revealed && onRevealChange && /* @__PURE__ */ jsx59("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs45(
5499
+ ) : /* @__PURE__ */ jsx60("div", { className: "rounded-xl border border-warning/30 bg-warning/10 px-4 py-3 text-sm text-warning", children: emptyMessage }),
5500
+ hasWords && !revealed && onRevealChange && /* @__PURE__ */ jsx60("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs46(
5415
5501
  Button,
5416
5502
  {
5417
5503
  type: "button",
@@ -5419,13 +5505,13 @@ function RecoveryPhraseCard({
5419
5505
  size: "sm",
5420
5506
  onClick: () => onRevealChange(true),
5421
5507
  children: [
5422
- /* @__PURE__ */ jsx59(Icon, { name: "visibility", className: "text-icon-lg" }),
5508
+ /* @__PURE__ */ jsx60(Icon, { name: "visibility", className: "text-icon-lg" }),
5423
5509
  "Tap to reveal"
5424
5510
  ]
5425
5511
  }
5426
5512
  ) })
5427
5513
  ] }),
5428
- hasWords && revealed && onCopy && /* @__PURE__ */ jsxs45(
5514
+ hasWords && revealed && onCopy && /* @__PURE__ */ jsxs46(
5429
5515
  Button,
5430
5516
  {
5431
5517
  type: "button",
@@ -5434,7 +5520,7 @@ function RecoveryPhraseCard({
5434
5520
  onClick: onCopy,
5435
5521
  className: "w-full",
5436
5522
  children: [
5437
- /* @__PURE__ */ jsx59(Icon, { name: "content_copy", className: "text-icon-lg" }),
5523
+ /* @__PURE__ */ jsx60(Icon, { name: "content_copy", className: "text-icon-lg" }),
5438
5524
  "Copy to clipboard"
5439
5525
  ]
5440
5526
  }
@@ -5443,7 +5529,7 @@ function RecoveryPhraseCard({
5443
5529
  }
5444
5530
 
5445
5531
  // src/web/components/settings-selector-row.tsx
5446
- import { jsx as jsx60, jsxs as jsxs46 } from "react/jsx-runtime";
5532
+ import { jsx as jsx61, jsxs as jsxs47 } from "react/jsx-runtime";
5447
5533
  function SettingsSelectorRow({
5448
5534
  icon,
5449
5535
  title,
@@ -5452,9 +5538,9 @@ function SettingsSelectorRow({
5452
5538
  className,
5453
5539
  iconClassName
5454
5540
  }) {
5455
- return /* @__PURE__ */ jsxs46("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
5456
- /* @__PURE__ */ jsxs46("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5457
- /* @__PURE__ */ jsx60(
5541
+ return /* @__PURE__ */ jsxs47("div", { className: cn("flex items-start justify-between gap-3 rounded-2xl bg-card p-5", className), children: [
5542
+ /* @__PURE__ */ jsxs47("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5543
+ /* @__PURE__ */ jsx61(
5458
5544
  "div",
5459
5545
  {
5460
5546
  className: cn(
@@ -5464,17 +5550,17 @@ function SettingsSelectorRow({
5464
5550
  children: icon
5465
5551
  }
5466
5552
  ),
5467
- /* @__PURE__ */ jsxs46("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5468
- /* @__PURE__ */ jsx60("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
5469
- description && /* @__PURE__ */ jsx60("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
5553
+ /* @__PURE__ */ jsxs47("div", { className: "flex min-w-0 flex-1 flex-col", children: [
5554
+ /* @__PURE__ */ jsx61("span", { className: "text-body font-bold tracking-wide text-foreground", children: title }),
5555
+ description && /* @__PURE__ */ jsx61("span", { className: "mt-0.5 text-sm font-medium text-muted-foreground", children: description })
5470
5556
  ] })
5471
5557
  ] }),
5472
- /* @__PURE__ */ jsx60("div", { className: "shrink-0", children: control })
5558
+ /* @__PURE__ */ jsx61("div", { className: "shrink-0", children: control })
5473
5559
  ] });
5474
5560
  }
5475
5561
 
5476
5562
  // src/web/components/bottom-sheet.tsx
5477
- import { jsx as jsx61, jsxs as jsxs47 } from "react/jsx-runtime";
5563
+ import { jsx as jsx62, jsxs as jsxs48 } from "react/jsx-runtime";
5478
5564
  function BottomSheet({
5479
5565
  open,
5480
5566
  title,
@@ -5490,7 +5576,7 @@ function BottomSheet({
5490
5576
  const handleBackdropClick = (event) => {
5491
5577
  if (closeOnBackdrop && event.target === event.currentTarget) onClose?.();
5492
5578
  };
5493
- return /* @__PURE__ */ jsx61(
5579
+ return /* @__PURE__ */ jsx62(
5494
5580
  "div",
5495
5581
  {
5496
5582
  className: cn(
@@ -5498,7 +5584,7 @@ function BottomSheet({
5498
5584
  className
5499
5585
  ),
5500
5586
  onClick: handleBackdropClick,
5501
- children: /* @__PURE__ */ jsxs47(
5587
+ children: /* @__PURE__ */ jsxs48(
5502
5588
  "div",
5503
5589
  {
5504
5590
  className: cn(
@@ -5506,13 +5592,13 @@ function BottomSheet({
5506
5592
  contentClassName
5507
5593
  ),
5508
5594
  children: [
5509
- /* @__PURE__ */ jsx61("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ jsx61("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
5510
- (title || icon) && /* @__PURE__ */ jsxs47("div", { className: "mt-4 flex items-center gap-2", children: [
5595
+ /* @__PURE__ */ jsx62("div", { className: "-mt-1 flex justify-center", children: /* @__PURE__ */ jsx62("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
5596
+ (title || icon) && /* @__PURE__ */ jsxs48("div", { className: "mt-4 flex items-center gap-2", children: [
5511
5597
  icon,
5512
- /* @__PURE__ */ jsx61("p", { className: "text-sm font-bold text-foreground", children: title })
5598
+ /* @__PURE__ */ jsx62("p", { className: "text-sm font-bold text-foreground", children: title })
5513
5599
  ] }),
5514
- /* @__PURE__ */ jsx61("div", { className: cn((title || icon) && "mt-3"), children }),
5515
- actions && actions.length > 0 && /* @__PURE__ */ jsx61("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ jsxs47(
5600
+ /* @__PURE__ */ jsx62("div", { className: cn((title || icon) && "mt-3"), children }),
5601
+ actions && actions.length > 0 && /* @__PURE__ */ jsx62("div", { className: "mt-4 flex gap-2", children: actions.map((action, index) => /* @__PURE__ */ jsxs48(
5516
5602
  Button,
5517
5603
  {
5518
5604
  type: "button",
@@ -5522,7 +5608,7 @@ function BottomSheet({
5522
5608
  onClick: action.onClick,
5523
5609
  disabled: action.disabled,
5524
5610
  children: [
5525
- action.icon && /* @__PURE__ */ jsx61(Icon, { name: action.icon, className: "text-icon-md" }),
5611
+ action.icon && /* @__PURE__ */ jsx62(Icon, { name: action.icon, className: "text-icon-md" }),
5526
5612
  action.label
5527
5613
  ]
5528
5614
  },
@@ -5536,7 +5622,7 @@ function BottomSheet({
5536
5622
  }
5537
5623
 
5538
5624
  // src/web/components/disclosure-card.tsx
5539
- import { jsx as jsx62, jsxs as jsxs48 } from "react/jsx-runtime";
5625
+ import { jsx as jsx63, jsxs as jsxs49 } from "react/jsx-runtime";
5540
5626
  function DisclosureCard({
5541
5627
  title,
5542
5628
  children,
@@ -5547,8 +5633,8 @@ function DisclosureCard({
5547
5633
  triggerClassName,
5548
5634
  contentClassName
5549
5635
  }) {
5550
- return /* @__PURE__ */ jsxs48("div", { className, children: [
5551
- /* @__PURE__ */ jsxs48(
5636
+ return /* @__PURE__ */ jsxs49("div", { className, children: [
5637
+ /* @__PURE__ */ jsxs49(
5552
5638
  "button",
5553
5639
  {
5554
5640
  type: "button",
@@ -5558,11 +5644,11 @@ function DisclosureCard({
5558
5644
  triggerClassName
5559
5645
  ),
5560
5646
  children: [
5561
- /* @__PURE__ */ jsxs48("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5647
+ /* @__PURE__ */ jsxs49("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5562
5648
  icon,
5563
- /* @__PURE__ */ jsx62("span", { className: "truncate text-xs font-bold text-foreground", children: title })
5649
+ /* @__PURE__ */ jsx63("span", { className: "truncate text-xs font-bold text-foreground", children: title })
5564
5650
  ] }),
5565
- /* @__PURE__ */ jsx62(
5651
+ /* @__PURE__ */ jsx63(
5566
5652
  Icon,
5567
5653
  {
5568
5654
  name: open ? "expand_less" : "expand_more",
@@ -5572,7 +5658,7 @@ function DisclosureCard({
5572
5658
  ]
5573
5659
  }
5574
5660
  ),
5575
- open && /* @__PURE__ */ jsx62(
5661
+ open && /* @__PURE__ */ jsx63(
5576
5662
  "div",
5577
5663
  {
5578
5664
  className: cn(
@@ -5586,7 +5672,7 @@ function DisclosureCard({
5586
5672
  }
5587
5673
 
5588
5674
  // src/web/components/stepper-number-input.tsx
5589
- import { jsx as jsx63, jsxs as jsxs49 } from "react/jsx-runtime";
5675
+ import { jsx as jsx64, jsxs as jsxs50 } from "react/jsx-runtime";
5590
5676
  function StepperNumberInput({
5591
5677
  value,
5592
5678
  onChange,
@@ -5603,7 +5689,7 @@ function StepperNumberInput({
5603
5689
  const bounded = max === void 0 ? boundedMin : Math.min(max, boundedMin);
5604
5690
  onChange(Number.isFinite(bounded) ? bounded : min ?? 0);
5605
5691
  };
5606
- return /* @__PURE__ */ jsxs49(
5692
+ return /* @__PURE__ */ jsxs50(
5607
5693
  "div",
5608
5694
  {
5609
5695
  className: cn(
@@ -5611,7 +5697,7 @@ function StepperNumberInput({
5611
5697
  className
5612
5698
  ),
5613
5699
  children: [
5614
- /* @__PURE__ */ jsx63(
5700
+ /* @__PURE__ */ jsx64(
5615
5701
  "button",
5616
5702
  {
5617
5703
  type: "button",
@@ -5619,10 +5705,10 @@ function StepperNumberInput({
5619
5705
  disabled: disabled || min !== void 0 && value <= min,
5620
5706
  onClick: () => clamp(value - step),
5621
5707
  "aria-label": "Decrease",
5622
- children: /* @__PURE__ */ jsx63(Icon, { name: "remove", className: "text-icon-md" })
5708
+ children: /* @__PURE__ */ jsx64(Icon, { name: "remove", className: "text-icon-md" })
5623
5709
  }
5624
5710
  ),
5625
- /* @__PURE__ */ jsx63(
5711
+ /* @__PURE__ */ jsx64(
5626
5712
  "input",
5627
5713
  {
5628
5714
  type: "number",
@@ -5639,7 +5725,7 @@ function StepperNumberInput({
5639
5725
  )
5640
5726
  }
5641
5727
  ),
5642
- /* @__PURE__ */ jsx63(
5728
+ /* @__PURE__ */ jsx64(
5643
5729
  "button",
5644
5730
  {
5645
5731
  type: "button",
@@ -5647,7 +5733,7 @@ function StepperNumberInput({
5647
5733
  disabled: disabled || max !== void 0 && value >= max,
5648
5734
  onClick: () => clamp(value + step),
5649
5735
  "aria-label": "Increase",
5650
- children: /* @__PURE__ */ jsx63(Icon, { name: "add", className: "text-icon-md" })
5736
+ children: /* @__PURE__ */ jsx64(Icon, { name: "add", className: "text-icon-md" })
5651
5737
  }
5652
5738
  )
5653
5739
  ]
@@ -5656,7 +5742,7 @@ function StepperNumberInput({
5656
5742
  }
5657
5743
 
5658
5744
  // src/web/components/metric-card.tsx
5659
- import { jsx as jsx64, jsxs as jsxs50 } from "react/jsx-runtime";
5745
+ import { jsx as jsx65, jsxs as jsxs51 } from "react/jsx-runtime";
5660
5746
  var toneClasses2 = {
5661
5747
  primary: "border-primary/20 bg-primary/10 text-primary",
5662
5748
  purple: "border-network-arkade/20 bg-network-arkade/10 text-network-arkade",
@@ -5674,27 +5760,27 @@ function MetricCard({
5674
5760
  tone = "muted",
5675
5761
  className
5676
5762
  }) {
5677
- return /* @__PURE__ */ jsxs50("div", { className: cn("space-y-1 rounded-xl border border-white/8 bg-white/3 p-2.5", className), children: [
5678
- /* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-1.5", children: [
5679
- icon && /* @__PURE__ */ jsx64("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ jsx64(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
5680
- /* @__PURE__ */ jsx64("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
5763
+ return /* @__PURE__ */ jsxs51("div", { className: cn("space-y-1 rounded-xl border border-white/8 bg-white/3 p-2.5", className), children: [
5764
+ /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-1.5", children: [
5765
+ icon && /* @__PURE__ */ jsx65("span", { className: cn("flex size-5 items-center justify-center rounded-md", toneClasses2[tone]), children: typeof icon === "string" ? /* @__PURE__ */ jsx65(Icon, { name: icon, className: "text-icon-xs" }) : icon }),
5766
+ /* @__PURE__ */ jsx65("span", { className: "text-xxs font-bold uppercase tracking-widest text-white/45", children: label })
5681
5767
  ] }),
5682
- /* @__PURE__ */ jsx64("p", { className: "font-mono text-sm font-bold text-foreground", children: value }),
5683
- description && /* @__PURE__ */ jsx64("p", { className: "text-xxs text-white/45", children: description })
5768
+ /* @__PURE__ */ jsx65("p", { className: "font-mono text-sm font-bold text-foreground", children: value }),
5769
+ description && /* @__PURE__ */ jsx65("p", { className: "text-xxs text-white/45", children: description })
5684
5770
  ] });
5685
5771
  }
5686
5772
 
5687
5773
  // src/web/components/filter-chip-group.tsx
5688
- import { jsx as jsx65, jsxs as jsxs51 } from "react/jsx-runtime";
5774
+ import { jsx as jsx66, jsxs as jsxs52 } from "react/jsx-runtime";
5689
5775
  function FilterChipGroup({
5690
5776
  options,
5691
5777
  value,
5692
5778
  onChange,
5693
5779
  className
5694
5780
  }) {
5695
- return /* @__PURE__ */ jsx65("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
5781
+ return /* @__PURE__ */ jsx66("div", { className: cn("flex gap-1.5 overflow-x-auto no-scrollbar", className), children: options.map((option) => {
5696
5782
  const active = option.value === value;
5697
- return /* @__PURE__ */ jsxs51(
5783
+ return /* @__PURE__ */ jsxs52(
5698
5784
  "button",
5699
5785
  {
5700
5786
  type: "button",
@@ -5708,7 +5794,7 @@ function FilterChipGroup({
5708
5794
  children: [
5709
5795
  option.icon,
5710
5796
  option.label,
5711
- option.count !== void 0 && /* @__PURE__ */ jsx65(
5797
+ option.count !== void 0 && /* @__PURE__ */ jsx66(
5712
5798
  "span",
5713
5799
  {
5714
5800
  className: cn(
@@ -5726,7 +5812,7 @@ function FilterChipGroup({
5726
5812
  }
5727
5813
 
5728
5814
  // src/web/components/activity-row.tsx
5729
- import { Fragment as Fragment12, jsx as jsx66, jsxs as jsxs52 } from "react/jsx-runtime";
5815
+ import { Fragment as Fragment12, jsx as jsx67, jsxs as jsxs53 } from "react/jsx-runtime";
5730
5816
  var directionUi = {
5731
5817
  inbound: { icon: "south_west", iconClass: "bg-primary/20 text-primary", amountClass: "text-primary", sign: "+" },
5732
5818
  outbound: { icon: "north_east", iconClass: "bg-white/10 text-muted-foreground", amountClass: "text-foreground", sign: "-" },
@@ -5746,26 +5832,26 @@ function ActivityRow({
5746
5832
  className
5747
5833
  }) {
5748
5834
  const ui = directionUi[direction];
5749
- const content = /* @__PURE__ */ jsxs52(Fragment12, { children: [
5750
- /* @__PURE__ */ jsxs52("div", { className: "flex min-w-0 items-center gap-3", children: [
5751
- /* @__PURE__ */ jsx66("div", { className: cn("flex size-10 shrink-0 items-center justify-center rounded-xl shadow-inner", ui.iconClass), children: typeof icon === "string" || !icon ? /* @__PURE__ */ jsx66(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon }),
5752
- /* @__PURE__ */ jsxs52("div", { className: "flex min-w-0 flex-col", children: [
5753
- /* @__PURE__ */ jsxs52("div", { className: "flex min-w-0 items-center gap-1.5", children: [
5754
- /* @__PURE__ */ jsx66("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
5835
+ const content = /* @__PURE__ */ jsxs53(Fragment12, { children: [
5836
+ /* @__PURE__ */ jsxs53("div", { className: "flex min-w-0 items-center gap-3", children: [
5837
+ /* @__PURE__ */ jsx67("div", { className: cn("flex size-10 shrink-0 items-center justify-center rounded-xl shadow-inner", ui.iconClass), children: typeof icon === "string" || !icon ? /* @__PURE__ */ jsx67(Icon, { name: icon ?? ui.icon, className: "text-icon-xl" }) : icon }),
5838
+ /* @__PURE__ */ jsxs53("div", { className: "flex min-w-0 flex-col", children: [
5839
+ /* @__PURE__ */ jsxs53("div", { className: "flex min-w-0 items-center gap-1.5", children: [
5840
+ /* @__PURE__ */ jsx67("span", { className: "truncate text-sm font-bold tracking-wide text-foreground", children: title }),
5755
5841
  networkBadge
5756
5842
  ] }),
5757
- (status || timestamp) && /* @__PURE__ */ jsxs52("div", { className: "mt-1 flex items-center gap-2", children: [
5758
- status && /* @__PURE__ */ jsx66(StatusBadge, { status, className: "px-1.5 py-0.5 text-xxs" }),
5759
- timestamp && /* @__PURE__ */ jsx66("span", { className: "text-xxs text-muted-foreground", children: timestamp })
5843
+ (status || timestamp) && /* @__PURE__ */ jsxs53("div", { className: "mt-1 flex items-center gap-2", children: [
5844
+ status && /* @__PURE__ */ jsx67(StatusBadge, { status, className: "px-1.5 py-0.5 text-xxs" }),
5845
+ timestamp && /* @__PURE__ */ jsx67("span", { className: "text-xxs text-muted-foreground", children: timestamp })
5760
5846
  ] })
5761
5847
  ] })
5762
5848
  ] }),
5763
- /* @__PURE__ */ jsxs52("div", { className: "shrink-0 text-right", children: [
5764
- /* @__PURE__ */ jsxs52("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
5849
+ /* @__PURE__ */ jsxs53("div", { className: "shrink-0 text-right", children: [
5850
+ /* @__PURE__ */ jsxs53("p", { className: cn("text-sm font-bold tracking-wide", ui.amountClass), children: [
5765
5851
  ui.sign,
5766
5852
  amount
5767
5853
  ] }),
5768
- unit && /* @__PURE__ */ jsx66("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
5854
+ unit && /* @__PURE__ */ jsx67("p", { className: "mt-0.5 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: unit })
5769
5855
  ] })
5770
5856
  ] });
5771
5857
  const rowClassName = cn(
@@ -5774,23 +5860,23 @@ function ActivityRow({
5774
5860
  className
5775
5861
  );
5776
5862
  if (onClick) {
5777
- return /* @__PURE__ */ jsx66("button", { type: "button", onClick, className: rowClassName, children: content });
5863
+ return /* @__PURE__ */ jsx67("button", { type: "button", onClick, className: rowClassName, children: content });
5778
5864
  }
5779
- return /* @__PURE__ */ jsx66("div", { className: rowClassName, children: content });
5865
+ return /* @__PURE__ */ jsx67("div", { className: rowClassName, children: content });
5780
5866
  }
5781
5867
 
5782
5868
  // src/web/components/skeleton.tsx
5783
- import { jsx as jsx67, jsxs as jsxs53 } from "react/jsx-runtime";
5869
+ import { jsx as jsx68, jsxs as jsxs54 } from "react/jsx-runtime";
5784
5870
  var toneClass2 = {
5785
5871
  primary: "bg-white/10",
5786
5872
  secondary: "bg-white/5",
5787
5873
  card: "bg-white/[0.06]"
5788
5874
  };
5789
5875
  function Skeleton({ className, tone = "primary" }) {
5790
- return /* @__PURE__ */ jsx67("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
5876
+ return /* @__PURE__ */ jsx68("div", { "aria-hidden": true, className: cn("animate-pulse rounded", toneClass2[tone], className) });
5791
5877
  }
5792
5878
  function ListSkeletonRows({ rows = 3, className, rowClassName }) {
5793
- return /* @__PURE__ */ jsx67("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs53(
5879
+ return /* @__PURE__ */ jsx68("div", { className: cn("space-y-2", className), children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs54(
5794
5880
  "div",
5795
5881
  {
5796
5882
  className: cn(
@@ -5798,14 +5884,14 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
5798
5884
  rowClassName
5799
5885
  ),
5800
5886
  children: [
5801
- /* @__PURE__ */ jsx67(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
5802
- /* @__PURE__ */ jsxs53("div", { className: "flex-1 space-y-2", children: [
5803
- /* @__PURE__ */ jsx67(Skeleton, { className: "h-3 w-28" }),
5804
- /* @__PURE__ */ jsx67(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
5887
+ /* @__PURE__ */ jsx68(Skeleton, { className: "size-10 shrink-0 rounded-xl" }),
5888
+ /* @__PURE__ */ jsxs54("div", { className: "flex-1 space-y-2", children: [
5889
+ /* @__PURE__ */ jsx68(Skeleton, { className: "h-3 w-28" }),
5890
+ /* @__PURE__ */ jsx68(Skeleton, { tone: "secondary", className: "h-2.5 w-20" })
5805
5891
  ] }),
5806
- /* @__PURE__ */ jsxs53("div", { className: "flex flex-col items-end space-y-1.5", children: [
5807
- /* @__PURE__ */ jsx67(Skeleton, { className: "h-3 w-14" }),
5808
- /* @__PURE__ */ jsx67(Skeleton, { tone: "secondary", className: "h-2 w-10" })
5892
+ /* @__PURE__ */ jsxs54("div", { className: "flex flex-col items-end space-y-1.5", children: [
5893
+ /* @__PURE__ */ jsx68(Skeleton, { className: "h-3 w-14" }),
5894
+ /* @__PURE__ */ jsx68(Skeleton, { tone: "secondary", className: "h-2 w-10" })
5809
5895
  ] })
5810
5896
  ]
5811
5897
  },
@@ -5814,7 +5900,7 @@ function ListSkeletonRows({ rows = 3, className, rowClassName }) {
5814
5900
  }
5815
5901
 
5816
5902
  // src/web/components/secret-reveal-card.tsx
5817
- import { jsx as jsx68, jsxs as jsxs54 } from "react/jsx-runtime";
5903
+ import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime";
5818
5904
  function SecretRevealCard({
5819
5905
  value,
5820
5906
  revealed,
@@ -5826,9 +5912,9 @@ function SecretRevealCard({
5826
5912
  className,
5827
5913
  valueClassName
5828
5914
  }) {
5829
- return /* @__PURE__ */ jsxs54("div", { className: cn("space-y-3", className), children: [
5830
- /* @__PURE__ */ jsxs54("div", { className: "relative", children: [
5831
- /* @__PURE__ */ jsx68("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ jsx68(
5915
+ return /* @__PURE__ */ jsxs55("div", { className: cn("space-y-3", className), children: [
5916
+ /* @__PURE__ */ jsxs55("div", { className: "relative", children: [
5917
+ /* @__PURE__ */ jsx69("div", { className: "rounded-xl bg-card px-3 py-3", children: /* @__PURE__ */ jsx69(
5832
5918
  "p",
5833
5919
  {
5834
5920
  className: cn(
@@ -5839,40 +5925,40 @@ function SecretRevealCard({
5839
5925
  children: value
5840
5926
  }
5841
5927
  ) }),
5842
- !revealed && /* @__PURE__ */ jsx68("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs54(
5928
+ !revealed && /* @__PURE__ */ jsx69("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs55(
5843
5929
  "button",
5844
5930
  {
5845
5931
  type: "button",
5846
5932
  onClick: () => onRevealChange(true),
5847
5933
  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",
5848
5934
  children: [
5849
- /* @__PURE__ */ jsx68(Icon, { name: "visibility", className: "text-icon-lg" }),
5935
+ /* @__PURE__ */ jsx69(Icon, { name: "visibility", className: "text-icon-lg" }),
5850
5936
  revealLabel
5851
5937
  ]
5852
5938
  }
5853
5939
  ) })
5854
5940
  ] }),
5855
- /* @__PURE__ */ jsxs54("div", { className: "flex gap-2", children: [
5856
- /* @__PURE__ */ jsxs54(
5941
+ /* @__PURE__ */ jsxs55("div", { className: "flex gap-2", children: [
5942
+ /* @__PURE__ */ jsxs55(
5857
5943
  "button",
5858
5944
  {
5859
5945
  type: "button",
5860
5946
  onClick: () => onRevealChange(!revealed),
5861
5947
  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",
5862
5948
  children: [
5863
- /* @__PURE__ */ jsx68(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
5949
+ /* @__PURE__ */ jsx69(Icon, { name: revealed ? "visibility_off" : "visibility", className: "text-icon-lg" }),
5864
5950
  revealed ? hideLabel : revealLabel
5865
5951
  ]
5866
5952
  }
5867
5953
  ),
5868
- revealed && onCopy && /* @__PURE__ */ jsxs54(
5954
+ revealed && onCopy && /* @__PURE__ */ jsxs55(
5869
5955
  "button",
5870
5956
  {
5871
5957
  type: "button",
5872
5958
  onClick: onCopy,
5873
5959
  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",
5874
5960
  children: [
5875
- /* @__PURE__ */ jsx68(Icon, { name: "content_copy", className: "text-icon-lg" }),
5961
+ /* @__PURE__ */ jsx69(Icon, { name: "content_copy", className: "text-icon-lg" }),
5876
5962
  copyLabel
5877
5963
  ]
5878
5964
  }
@@ -5882,7 +5968,7 @@ function SecretRevealCard({
5882
5968
  }
5883
5969
 
5884
5970
  // src/web/components/settings-section-card.tsx
5885
- import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime";
5971
+ import { jsx as jsx70, jsxs as jsxs56 } from "react/jsx-runtime";
5886
5972
  function SettingsSectionCard({
5887
5973
  title,
5888
5974
  description,
@@ -5891,15 +5977,15 @@ function SettingsSectionCard({
5891
5977
  className,
5892
5978
  bodyClassName
5893
5979
  }) {
5894
- return /* @__PURE__ */ jsxs55("section", { className: cn("space-y-4 rounded-xl bg-card p-4", className), children: [
5895
- /* @__PURE__ */ jsxs55("div", { className: "flex items-start justify-between gap-4", children: [
5896
- /* @__PURE__ */ jsxs55("div", { className: "min-w-0 flex-1", children: [
5897
- /* @__PURE__ */ jsx69("h2", { className: "text-sm font-bold text-foreground", children: title }),
5898
- description && /* @__PURE__ */ jsx69("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
5980
+ return /* @__PURE__ */ jsxs56("section", { className: cn("space-y-4 rounded-xl bg-card p-4", className), children: [
5981
+ /* @__PURE__ */ jsxs56("div", { className: "flex items-start justify-between gap-4", children: [
5982
+ /* @__PURE__ */ jsxs56("div", { className: "min-w-0 flex-1", children: [
5983
+ /* @__PURE__ */ jsx70("h2", { className: "text-sm font-bold text-foreground", children: title }),
5984
+ description && /* @__PURE__ */ jsx70("p", { className: "mt-1 text-xs text-muted-foreground", children: description })
5899
5985
  ] }),
5900
5986
  badge
5901
5987
  ] }),
5902
- /* @__PURE__ */ jsx69("div", { className: bodyClassName, children })
5988
+ /* @__PURE__ */ jsx70("div", { className: bodyClassName, children })
5903
5989
  ] });
5904
5990
  }
5905
5991
  var badgeToneClass = {
@@ -5911,7 +5997,7 @@ var badgeToneClass = {
5911
5997
  muted: "border-white/10 bg-white/[0.05] text-white/55"
5912
5998
  };
5913
5999
  function ToneBadge({ children, tone = "muted", className }) {
5914
- return /* @__PURE__ */ jsx69(
6000
+ return /* @__PURE__ */ jsx70(
5915
6001
  "span",
5916
6002
  {
5917
6003
  className: cn(
@@ -5925,7 +6011,7 @@ function ToneBadge({ children, tone = "muted", className }) {
5925
6011
  }
5926
6012
 
5927
6013
  // src/web/components/selectable-card.tsx
5928
- import { jsx as jsx70, jsxs as jsxs56 } from "react/jsx-runtime";
6014
+ import { jsx as jsx71, jsxs as jsxs57 } from "react/jsx-runtime";
5929
6015
  function SelectableCard({
5930
6016
  selected,
5931
6017
  onClick,
@@ -5937,28 +6023,28 @@ function SelectableCard({
5937
6023
  children,
5938
6024
  className
5939
6025
  }) {
5940
- const content = /* @__PURE__ */ jsxs56("div", { className: "flex items-start justify-between gap-3", children: [
5941
- /* @__PURE__ */ jsxs56("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5942
- indicator && /* @__PURE__ */ jsx70(
6026
+ const content = /* @__PURE__ */ jsxs57("div", { className: "flex items-start justify-between gap-3", children: [
6027
+ /* @__PURE__ */ jsxs57("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
6028
+ indicator && /* @__PURE__ */ jsx71(
5943
6029
  "div",
5944
6030
  {
5945
6031
  className: cn(
5946
6032
  "mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors",
5947
6033
  selected ? "border-primary bg-primary" : "border-white/20"
5948
6034
  ),
5949
- children: selected && /* @__PURE__ */ jsx70("div", { className: "size-2 rounded-full bg-background" })
6035
+ children: selected && /* @__PURE__ */ jsx71("div", { className: "size-2 rounded-full bg-background" })
5950
6036
  }
5951
6037
  ),
5952
- /* @__PURE__ */ jsxs56("div", { className: "min-w-0 flex-1", children: [
5953
- /* @__PURE__ */ jsxs56("div", { className: "flex flex-wrap items-center gap-2", children: [
5954
- /* @__PURE__ */ jsx70("span", { className: "text-body font-bold text-foreground", children: title }),
6038
+ /* @__PURE__ */ jsxs57("div", { className: "min-w-0 flex-1", children: [
6039
+ /* @__PURE__ */ jsxs57("div", { className: "flex flex-wrap items-center gap-2", children: [
6040
+ /* @__PURE__ */ jsx71("span", { className: "text-body font-bold text-foreground", children: title }),
5955
6041
  badge
5956
6042
  ] }),
5957
- description && /* @__PURE__ */ jsx70("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
6043
+ description && /* @__PURE__ */ jsx71("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: description }),
5958
6044
  children
5959
6045
  ] })
5960
6046
  ] }),
5961
- preview && /* @__PURE__ */ jsx70("div", { className: "shrink-0 text-right", children: preview })
6047
+ preview && /* @__PURE__ */ jsx71("div", { className: "shrink-0 text-right", children: preview })
5962
6048
  ] });
5963
6049
  const cardClassName = cn(
5964
6050
  "w-full rounded-2xl border p-4 text-left transition-all duration-200",
@@ -5966,14 +6052,14 @@ function SelectableCard({
5966
6052
  className
5967
6053
  );
5968
6054
  if (onClick) {
5969
- return /* @__PURE__ */ jsx70("button", { type: "button", onClick, className: cardClassName, children: content });
6055
+ return /* @__PURE__ */ jsx71("button", { type: "button", onClick, className: cardClassName, children: content });
5970
6056
  }
5971
- return /* @__PURE__ */ jsx70("div", { className: cardClassName, children: content });
6057
+ return /* @__PURE__ */ jsx71("div", { className: cardClassName, children: content });
5972
6058
  }
5973
6059
 
5974
6060
  // src/web/components/mobile-hero-animation.tsx
5975
6061
  import { useRef as useRef4, useEffect as useEffect8, useState as useState12 } from "react";
5976
- import { Fragment as Fragment13, jsx as jsx71, jsxs as jsxs57 } from "react/jsx-runtime";
6062
+ import { Fragment as Fragment13, jsx as jsx72, jsxs as jsxs58 } from "react/jsx-runtime";
5977
6063
  var PROTOCOLS = [
5978
6064
  { name: "Bitcoin", network: "Bitcoin", iconSuffix: "bitcoin/bitcoin-logo.svg" },
5979
6065
  { name: "Lightning", network: "LN", iconSuffix: "lightning/lightning.svg" },
@@ -6032,15 +6118,15 @@ var MobileHeroAnimation = ({
6032
6118
  }, []);
6033
6119
  const anim = !reducedMotion && isVisible;
6034
6120
  const scale = size / 280;
6035
- return /* @__PURE__ */ jsxs57(
6121
+ return /* @__PURE__ */ jsxs58(
6036
6122
  "div",
6037
6123
  {
6038
6124
  ref: containerRef,
6039
6125
  className,
6040
6126
  style: { position: "relative", width: size, height: size },
6041
6127
  children: [
6042
- /* @__PURE__ */ jsx71("style", { children: KEYFRAMES }),
6043
- /* @__PURE__ */ jsxs57("div", { style: {
6128
+ /* @__PURE__ */ jsx72("style", { children: KEYFRAMES }),
6129
+ /* @__PURE__ */ jsxs58("div", { style: {
6044
6130
  position: "absolute",
6045
6131
  top: 0,
6046
6132
  left: 0,
@@ -6049,7 +6135,7 @@ var MobileHeroAnimation = ({
6049
6135
  transformOrigin: "top left",
6050
6136
  transform: scale !== 1 ? `scale(${scale})` : void 0
6051
6137
  }, children: [
6052
- /* @__PURE__ */ jsxs57(
6138
+ /* @__PURE__ */ jsxs58(
6053
6139
  "svg",
6054
6140
  {
6055
6141
  viewBox: "0 0 280 280",
@@ -6058,35 +6144,35 @@ var MobileHeroAnimation = ({
6058
6144
  style: { position: "absolute", inset: 0 },
6059
6145
  xmlns: "http://www.w3.org/2000/svg",
6060
6146
  children: [
6061
- /* @__PURE__ */ jsxs57("defs", { children: [
6062
- /* @__PURE__ */ jsxs57("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6063
- /* @__PURE__ */ jsx71("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6064
- /* @__PURE__ */ jsx71("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6065
- /* @__PURE__ */ jsx71("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6147
+ /* @__PURE__ */ jsxs58("defs", { children: [
6148
+ /* @__PURE__ */ jsxs58("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6149
+ /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6150
+ /* @__PURE__ */ jsx72("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6151
+ /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6066
6152
  ] }),
6067
- /* @__PURE__ */ jsxs57("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6068
- /* @__PURE__ */ jsx71("stop", { offset: "0%", stopColor: "#22c55e" }),
6069
- /* @__PURE__ */ jsx71("stop", { offset: "100%", stopColor: "#8a5cf6" })
6153
+ /* @__PURE__ */ jsxs58("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6154
+ /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#22c55e" }),
6155
+ /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "#8a5cf6" })
6070
6156
  ] }),
6071
- /* @__PURE__ */ jsxs57("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6072
- /* @__PURE__ */ jsx71("stop", { offset: "0%", stopColor: "#0e9dff" }),
6073
- /* @__PURE__ */ jsx71("stop", { offset: "100%", stopColor: "#8a5cf6" })
6157
+ /* @__PURE__ */ jsxs58("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6158
+ /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#0e9dff" }),
6159
+ /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "#8a5cf6" })
6074
6160
  ] }),
6075
- /* @__PURE__ */ jsxs57("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6076
- /* @__PURE__ */ jsx71("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6077
- /* @__PURE__ */ jsxs57("feMerge", { children: [
6078
- /* @__PURE__ */ jsx71("feMergeNode", { in: "blur" }),
6079
- /* @__PURE__ */ jsx71("feMergeNode", { in: "SourceGraphic" })
6161
+ /* @__PURE__ */ jsxs58("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6162
+ /* @__PURE__ */ jsx72("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
6163
+ /* @__PURE__ */ jsxs58("feMerge", { children: [
6164
+ /* @__PURE__ */ jsx72("feMergeNode", { in: "blur" }),
6165
+ /* @__PURE__ */ jsx72("feMergeNode", { in: "SourceGraphic" })
6080
6166
  ] })
6081
6167
  ] })
6082
6168
  ] }),
6083
- /* @__PURE__ */ jsx71("circle", { cx: C, cy: C, r: ORBIT_R, fill: "none", stroke: "#0e9dff", strokeWidth: "1", strokeOpacity: "0.25", opacity: "0.4", children: anim && /* @__PURE__ */ jsxs57(Fragment13, { children: [
6084
- /* @__PURE__ */ jsx71("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
6085
- /* @__PURE__ */ jsx71("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6169
+ /* @__PURE__ */ jsx72("circle", { cx: C, cy: C, r: ORBIT_R, fill: "none", stroke: "#0e9dff", strokeWidth: "1", strokeOpacity: "0.25", opacity: "0.4", children: anim && /* @__PURE__ */ jsxs58(Fragment13, { children: [
6170
+ /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
6171
+ /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
6086
6172
  ] }) }),
6087
- /* @__PURE__ */ jsx71("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
6088
- /* @__PURE__ */ jsxs57("g", { children: [
6089
- anim && /* @__PURE__ */ jsx71(
6173
+ /* @__PURE__ */ jsx72("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
6174
+ /* @__PURE__ */ jsxs58("g", { children: [
6175
+ anim && /* @__PURE__ */ jsx72(
6090
6176
  "animateTransform",
6091
6177
  {
6092
6178
  attributeName: "transform",
@@ -6107,8 +6193,8 @@ var MobileHeroAnimation = ({
6107
6193
  const y2 = C + dy * (ORBIT_R - BADGE_HALF);
6108
6194
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6109
6195
  const dur = `${2 + i * 0.3}s`;
6110
- return /* @__PURE__ */ jsxs57("g", { children: [
6111
- /* @__PURE__ */ jsx71(
6196
+ return /* @__PURE__ */ jsxs58("g", { children: [
6197
+ /* @__PURE__ */ jsx72(
6112
6198
  "line",
6113
6199
  {
6114
6200
  x1,
@@ -6119,29 +6205,29 @@ var MobileHeroAnimation = ({
6119
6205
  strokeWidth: "0.8",
6120
6206
  strokeDasharray: "2 4",
6121
6207
  opacity: "0.25",
6122
- children: anim && /* @__PURE__ */ jsx71("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6208
+ children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6123
6209
  }
6124
6210
  ),
6125
- /* @__PURE__ */ jsx71("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ jsxs57(Fragment13, { children: [
6126
- /* @__PURE__ */ jsx71("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6127
- /* @__PURE__ */ jsx71("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6128
- /* @__PURE__ */ jsx71("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6129
- /* @__PURE__ */ jsx71("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6211
+ /* @__PURE__ */ jsx72("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ jsxs58(Fragment13, { children: [
6212
+ /* @__PURE__ */ jsx72("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
6213
+ /* @__PURE__ */ jsx72("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
6214
+ /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
6215
+ /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
6130
6216
  ] }) })
6131
6217
  ] }, `line-${i}`);
6132
6218
  })
6133
6219
  ] }),
6134
- /* @__PURE__ */ jsx71("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ jsx71("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
6135
- /* @__PURE__ */ jsx71("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ jsxs57(Fragment13, { children: [
6136
- /* @__PURE__ */ jsx71("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6137
- /* @__PURE__ */ jsx71("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6220
+ /* @__PURE__ */ jsx72("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
6221
+ /* @__PURE__ */ jsx72("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ jsxs58(Fragment13, { children: [
6222
+ /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
6223
+ /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6138
6224
  ] }) }),
6139
- /* @__PURE__ */ jsx71("circle", { cx: C, cy: C, r: "27", fill: "none", stroke: "url(#mh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ jsxs57(Fragment13, { children: [
6140
- /* @__PURE__ */ jsx71("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6141
- /* @__PURE__ */ jsx71("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6225
+ /* @__PURE__ */ jsx72("circle", { cx: C, cy: C, r: "27", fill: "none", stroke: "url(#mh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ jsxs58(Fragment13, { children: [
6226
+ /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6227
+ /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6142
6228
  ] }) }),
6143
- /* @__PURE__ */ jsx71("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ jsxs57("g", { children: [
6144
- anim && /* @__PURE__ */ jsx71(
6229
+ /* @__PURE__ */ jsx72("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ jsxs58("g", { children: [
6230
+ anim && /* @__PURE__ */ jsx72(
6145
6231
  "animateTransform",
6146
6232
  {
6147
6233
  attributeName: "transform",
@@ -6153,13 +6239,13 @@ var MobileHeroAnimation = ({
6153
6239
  additive: "sum"
6154
6240
  }
6155
6241
  ),
6156
- /* @__PURE__ */ jsx71("path", { d: hexPath(34), fill: "none", stroke: "url(#mh-gp)", strokeWidth: "1.5", opacity: "0.4", filter: "url(#mh-glow)", children: anim && /* @__PURE__ */ jsxs57(Fragment13, { children: [
6157
- /* @__PURE__ */ jsx71("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6158
- /* @__PURE__ */ jsx71("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6242
+ /* @__PURE__ */ jsx72("path", { d: hexPath(34), fill: "none", stroke: "url(#mh-gp)", strokeWidth: "1.5", opacity: "0.4", filter: "url(#mh-glow)", children: anim && /* @__PURE__ */ jsxs58(Fragment13, { children: [
6243
+ /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6244
+ /* @__PURE__ */ jsx72("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6159
6245
  ] }) })
6160
6246
  ] }) }),
6161
- /* @__PURE__ */ jsx71("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ jsxs57("g", { children: [
6162
- anim && /* @__PURE__ */ jsx71(
6247
+ /* @__PURE__ */ jsx72("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ jsxs58("g", { children: [
6248
+ anim && /* @__PURE__ */ jsx72(
6163
6249
  "animateTransform",
6164
6250
  {
6165
6251
  attributeName: "transform",
@@ -6171,19 +6257,19 @@ var MobileHeroAnimation = ({
6171
6257
  additive: "sum"
6172
6258
  }
6173
6259
  ),
6174
- /* @__PURE__ */ jsx71("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
6260
+ /* @__PURE__ */ jsx72("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
6175
6261
  ] }) }),
6176
- /* @__PURE__ */ jsxs57("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6177
- /* @__PURE__ */ jsx71("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6178
- /* @__PURE__ */ jsx71("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6179
- /* @__PURE__ */ jsx71("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6180
- /* @__PURE__ */ jsx71("path", { d: "M137.149 274.559L68.6274 205.933L137.201 137.306L274.455 137.411L205.776 206.038L274.456 274.559H137.149Z", fill: "#15E99A" }),
6181
- /* @__PURE__ */ jsx71("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6262
+ /* @__PURE__ */ jsxs58("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
6263
+ /* @__PURE__ */ jsx72("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
6264
+ /* @__PURE__ */ jsx72("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
6265
+ /* @__PURE__ */ jsx72("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
6266
+ /* @__PURE__ */ jsx72("path", { d: "M137.149 274.559L68.6274 205.933L137.201 137.306L274.455 137.411L205.776 206.038L274.456 274.559H137.149Z", fill: "#15E99A" }),
6267
+ /* @__PURE__ */ jsx72("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
6182
6268
  ] })
6183
6269
  ]
6184
6270
  }
6185
6271
  ),
6186
- /* @__PURE__ */ jsx71("div", { style: {
6272
+ /* @__PURE__ */ jsx72("div", { style: {
6187
6273
  position: "absolute",
6188
6274
  inset: 0,
6189
6275
  width: 280,
@@ -6194,7 +6280,7 @@ var MobileHeroAnimation = ({
6194
6280
  const x = C + Math.cos(angle) * ORBIT_R - BADGE_HALF;
6195
6281
  const y = C + Math.sin(angle) * ORBIT_R - BADGE_HALF;
6196
6282
  const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
6197
- return /* @__PURE__ */ jsx71(
6283
+ return /* @__PURE__ */ jsx72(
6198
6284
  "div",
6199
6285
  {
6200
6286
  style: {
@@ -6205,7 +6291,7 @@ var MobileHeroAnimation = ({
6205
6291
  height: BADGE_SIZE,
6206
6292
  animation: anim ? "mha-counter-spin 20s linear infinite" : "none"
6207
6293
  },
6208
- children: /* @__PURE__ */ jsx71("div", { style: {
6294
+ children: /* @__PURE__ */ jsx72("div", { style: {
6209
6295
  width: "100%",
6210
6296
  height: "100%",
6211
6297
  borderRadius: "50%",
@@ -6216,7 +6302,7 @@ var MobileHeroAnimation = ({
6216
6302
  display: "flex",
6217
6303
  alignItems: "center",
6218
6304
  justifyContent: "center"
6219
- }, children: /* @__PURE__ */ jsx71(
6305
+ }, children: /* @__PURE__ */ jsx72(
6220
6306
  "img",
6221
6307
  {
6222
6308
  src: iconBasePath ? `${iconBasePath}/${protocol.iconSuffix}` : protocolIcons[protocol.network] ?? protocol.iconSuffix,
@@ -6236,7 +6322,7 @@ var MobileHeroAnimation = ({
6236
6322
 
6237
6323
  // src/web/components/kaleidoscope-hero-animation.tsx
6238
6324
  import { useRef as useRef5, useEffect as useEffect9, useState as useState13, useCallback as useCallback2 } from "react";
6239
- import { Fragment as Fragment14, jsx as jsx72, jsxs as jsxs58 } from "react/jsx-runtime";
6325
+ import { Fragment as Fragment14, jsx as jsx73, jsxs as jsxs59 } from "react/jsx-runtime";
6240
6326
  var PROTOCOLS2 = [
6241
6327
  { name: "Bitcoin L1", network: "L1", color: "#F7931A", glowColor: "rgba(247,147,26,0.5)" },
6242
6328
  { name: "Lightning", network: "LN", color: "#fbbf24", glowColor: "rgba(251,191,36,0.5)" },
@@ -6341,13 +6427,13 @@ var KaleidoScopeHeroAnimation = ({
6341
6427
  const angle = Math.PI * 2 * i / 7 - Math.PI / 2;
6342
6428
  return { x: c + orbitR * Math.cos(angle), y: c + orbitR * Math.sin(angle) };
6343
6429
  });
6344
- return /* @__PURE__ */ jsx72(
6430
+ return /* @__PURE__ */ jsx73(
6345
6431
  "div",
6346
6432
  {
6347
6433
  ref: containerRef,
6348
6434
  className: `relative ${className}`,
6349
6435
  style: size ? { width: size, height: size } : void 0,
6350
- children: /* @__PURE__ */ jsxs58(
6436
+ children: /* @__PURE__ */ jsxs59(
6351
6437
  "svg",
6352
6438
  {
6353
6439
  viewBox: "0 0 500 500",
@@ -6356,60 +6442,60 @@ var KaleidoScopeHeroAnimation = ({
6356
6442
  xmlns: "http://www.w3.org/2000/svg",
6357
6443
  className: "overflow-visible",
6358
6444
  children: [
6359
- /* @__PURE__ */ jsxs58("defs", { children: [
6360
- /* @__PURE__ */ jsxs58("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6361
- /* @__PURE__ */ jsx72("stop", { offset: "0%", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
6362
- /* @__PURE__ */ jsx72("stop", { offset: "100%", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
6445
+ /* @__PURE__ */ jsxs59("defs", { children: [
6446
+ /* @__PURE__ */ jsxs59("linearGradient", { id: "kh-grad-a", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6447
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stop-color", values: "#22c55e;#8a5cf6;#06b6d4;#F7931A;#22c55e", dur: "10s", repeatCount: "indefinite" }) }),
6448
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stop-color", values: "#8a5cf6;#F7931A;#22c55e;#06b6d4;#8a5cf6", dur: "10s", repeatCount: "indefinite" }) })
6363
6449
  ] }),
6364
- /* @__PURE__ */ jsxs58("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6365
- /* @__PURE__ */ jsx72("stop", { offset: "0%", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
6366
- /* @__PURE__ */ jsx72("stop", { offset: "100%", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
6450
+ /* @__PURE__ */ jsxs59("linearGradient", { id: "kh-grad-b", x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
6451
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stop-color", values: "#06b6d4;#22c55e;#F7931A;#8a5cf6;#06b6d4", dur: "8s", repeatCount: "indefinite" }) }),
6452
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stop-color", values: "#F7931A;#06b6d4;#8a5cf6;#22c55e;#F7931A", dur: "8s", repeatCount: "indefinite" }) })
6367
6453
  ] }),
6368
- /* @__PURE__ */ jsxs58("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6369
- /* @__PURE__ */ jsx72("stop", { offset: "0%", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
6370
- /* @__PURE__ */ jsx72("stop", { offset: "100%", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
6454
+ /* @__PURE__ */ jsxs59("linearGradient", { id: "kh-grad-c", x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
6455
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stop-color", values: "#0e9dff;#8a5cf6;#15E99A;#0e9dff", dur: "6s", repeatCount: "indefinite" }) }),
6456
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stop-color", values: "#8a5cf6;#15E99A;#0e9dff;#8a5cf6", dur: "6s", repeatCount: "indefinite" }) })
6371
6457
  ] }),
6372
- /* @__PURE__ */ jsxs58("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6373
- /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#22c55e" }),
6374
- /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "#8a5cf6" })
6458
+ /* @__PURE__ */ jsxs59("linearGradient", { id: "kh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6459
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", stopColor: "#22c55e" }),
6460
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", stopColor: "#8a5cf6" })
6375
6461
  ] }),
6376
- /* @__PURE__ */ jsxs58("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6377
- /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#F7931A" }),
6378
- /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "#06b6d4" })
6462
+ /* @__PURE__ */ jsxs59("linearGradient", { id: "kh-oc", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6463
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", stopColor: "#F7931A" }),
6464
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", stopColor: "#06b6d4" })
6379
6465
  ] }),
6380
- /* @__PURE__ */ jsxs58("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6381
- /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#0e9dff" }),
6382
- /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "#8a5cf6" })
6466
+ /* @__PURE__ */ jsxs59("linearGradient", { id: "kh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
6467
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", stopColor: "#0e9dff" }),
6468
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", stopColor: "#8a5cf6" })
6383
6469
  ] }),
6384
- /* @__PURE__ */ jsxs58("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6385
- /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6386
- /* @__PURE__ */ jsx72("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6387
- /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6470
+ /* @__PURE__ */ jsxs59("radialGradient", { id: "kh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
6471
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
6472
+ /* @__PURE__ */ jsx73("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
6473
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
6388
6474
  ] }),
6389
- /* @__PURE__ */ jsxs58("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6390
- /* @__PURE__ */ jsx72("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6391
- /* @__PURE__ */ jsx72("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6392
- /* @__PURE__ */ jsx72("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6475
+ /* @__PURE__ */ jsxs59("radialGradient", { id: "kh-haze", cx: "50%", cy: "50%", r: "50%", children: [
6476
+ /* @__PURE__ */ jsx73("stop", { offset: "0%", stopColor: "transparent", stopOpacity: "0" }),
6477
+ /* @__PURE__ */ jsx73("stop", { offset: "60%", stopColor: "#0e9dff", stopOpacity: "0.03" }),
6478
+ /* @__PURE__ */ jsx73("stop", { offset: "100%", stopColor: "#8a5cf6", stopOpacity: "0.06" })
6393
6479
  ] }),
6394
- /* @__PURE__ */ jsxs58("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6395
- /* @__PURE__ */ jsx72("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6396
- /* @__PURE__ */ jsxs58("feMerge", { children: [
6397
- /* @__PURE__ */ jsx72("feMergeNode", { in: "blur" }),
6398
- /* @__PURE__ */ jsx72("feMergeNode", { in: "SourceGraphic" })
6480
+ /* @__PURE__ */ jsxs59("filter", { id: "kh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6481
+ /* @__PURE__ */ jsx73("feGaussianBlur", { stdDeviation: "3", result: "blur" }),
6482
+ /* @__PURE__ */ jsxs59("feMerge", { children: [
6483
+ /* @__PURE__ */ jsx73("feMergeNode", { in: "blur" }),
6484
+ /* @__PURE__ */ jsx73("feMergeNode", { in: "SourceGraphic" })
6399
6485
  ] })
6400
6486
  ] }),
6401
- /* @__PURE__ */ jsxs58("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6402
- /* @__PURE__ */ jsx72("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6403
- /* @__PURE__ */ jsxs58("feMerge", { children: [
6404
- /* @__PURE__ */ jsx72("feMergeNode", { in: "blur" }),
6405
- /* @__PURE__ */ jsx72("feMergeNode", { in: "SourceGraphic" })
6487
+ /* @__PURE__ */ jsxs59("filter", { id: "kh-glow-lg", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
6488
+ /* @__PURE__ */ jsx73("feGaussianBlur", { stdDeviation: "8", result: "blur" }),
6489
+ /* @__PURE__ */ jsxs59("feMerge", { children: [
6490
+ /* @__PURE__ */ jsx73("feMergeNode", { in: "blur" }),
6491
+ /* @__PURE__ */ jsx73("feMergeNode", { in: "SourceGraphic" })
6406
6492
  ] })
6407
6493
  ] })
6408
6494
  ] }),
6409
- /* @__PURE__ */ jsx72("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6410
- /* @__PURE__ */ jsxs58("g", { transform: px(20), children: [
6411
- /* @__PURE__ */ jsxs58("g", { children: [
6412
- anim && /* @__PURE__ */ jsx72(
6495
+ /* @__PURE__ */ jsx73("circle", { cx: c, cy: c, r: "248", fill: "url(#kh-haze)" }),
6496
+ /* @__PURE__ */ jsxs59("g", { transform: px(20), children: [
6497
+ /* @__PURE__ */ jsxs59("g", { children: [
6498
+ anim && /* @__PURE__ */ jsx73(
6413
6499
  "animateTransform",
6414
6500
  {
6415
6501
  attributeName: "transform",
@@ -6422,14 +6508,14 @@ var KaleidoScopeHeroAnimation = ({
6422
6508
  ),
6423
6509
  Array.from({ length: 6 }, (_, i) => {
6424
6510
  const a = Math.PI / 3 * i;
6425
- return /* @__PURE__ */ jsxs58("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6426
- /* @__PURE__ */ jsx72("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6427
- /* @__PURE__ */ jsx72("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
6511
+ return /* @__PURE__ */ jsxs59("g", { transform: `translate(${c + outerR1 * Math.cos(a)},${c + outerR1 * Math.sin(a)})`, children: [
6512
+ /* @__PURE__ */ jsx73("path", { d: hexPath2(40), fill: "url(#kh-grad-a)", opacity: 0.08 + i % 3 * 0.04 }),
6513
+ /* @__PURE__ */ jsx73("path", { d: hexPath2(40), fill: "none", stroke: "url(#kh-grad-a)", strokeWidth: "0.5", opacity: 0.15, children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.1;0.25;0.1", dur: `${4 + i * 0.3}s`, repeatCount: "indefinite" }) })
6428
6514
  ] }, `ha-${i}`);
6429
6515
  }),
6430
6516
  Array.from({ length: 6 }, (_, i) => {
6431
6517
  const a = Math.PI / 3 * i + Math.PI / 6;
6432
- return /* @__PURE__ */ jsx72(
6518
+ return /* @__PURE__ */ jsx73(
6433
6519
  "path",
6434
6520
  {
6435
6521
  d: triPath(14),
@@ -6442,7 +6528,7 @@ var KaleidoScopeHeroAnimation = ({
6442
6528
  }),
6443
6529
  Array.from({ length: 12 }, (_, i) => {
6444
6530
  const a = Math.PI / 6 * i;
6445
- return /* @__PURE__ */ jsx72(
6531
+ return /* @__PURE__ */ jsx73(
6446
6532
  "circle",
6447
6533
  {
6448
6534
  cx: c + outerR1 * 0.92 * Math.cos(a),
@@ -6450,14 +6536,14 @@ var KaleidoScopeHeroAnimation = ({
6450
6536
  r: "1.5",
6451
6537
  fill: "url(#kh-grad-a)",
6452
6538
  opacity: "0.15",
6453
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
6539
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.08;0.25;0.08", dur: `${2 + i % 3 * 0.7}s`, repeatCount: "indefinite" })
6454
6540
  },
6455
6541
  `od-${i}`
6456
6542
  );
6457
6543
  })
6458
6544
  ] }),
6459
- /* @__PURE__ */ jsxs58("g", { children: [
6460
- anim && /* @__PURE__ */ jsx72(
6545
+ /* @__PURE__ */ jsxs59("g", { children: [
6546
+ anim && /* @__PURE__ */ jsx73(
6461
6547
  "animateTransform",
6462
6548
  {
6463
6549
  attributeName: "transform",
@@ -6470,28 +6556,28 @@ var KaleidoScopeHeroAnimation = ({
6470
6556
  ),
6471
6557
  Array.from({ length: 6 }, (_, i) => {
6472
6558
  const a = Math.PI / 3 * i + Math.PI / 6;
6473
- return /* @__PURE__ */ jsxs58("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
6474
- /* @__PURE__ */ jsx72("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
6475
- /* @__PURE__ */ jsx72("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
6559
+ return /* @__PURE__ */ jsxs59("g", { transform: `translate(${c + outerR2 * Math.cos(a)},${c + outerR2 * Math.sin(a)})`, children: [
6560
+ /* @__PURE__ */ jsx73("path", { d: hexPath2(30), fill: "url(#kh-grad-b)", opacity: 0.06 + i % 2 * 0.04 }),
6561
+ /* @__PURE__ */ jsx73("path", { d: hexPath2(30), fill: "none", stroke: "url(#kh-grad-b)", strokeWidth: "0.5", opacity: 0.12 })
6476
6562
  ] }, `hb-${i}`);
6477
6563
  }),
6478
6564
  Array.from({ length: 6 }, (_, i) => {
6479
6565
  const a = Math.PI / 3 * i;
6480
- return /* @__PURE__ */ jsx72(
6566
+ return /* @__PURE__ */ jsx73(
6481
6567
  "path",
6482
6568
  {
6483
6569
  d: diamondPath(8, 16),
6484
6570
  transform: `translate(${c + outerR2 * 0.85 * Math.cos(a)},${c + outerR2 * 0.85 * Math.sin(a)}) rotate(${i * 60})`,
6485
6571
  fill: "url(#kh-grad-b)",
6486
6572
  opacity: "0.08",
6487
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
6573
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.05;0.15;0.05", dur: `${3.5 + i * 0.4}s`, repeatCount: "indefinite" })
6488
6574
  },
6489
6575
  `db-${i}`
6490
6576
  );
6491
6577
  })
6492
6578
  ] }),
6493
- /* @__PURE__ */ jsxs58("g", { children: [
6494
- anim && /* @__PURE__ */ jsx72(
6579
+ /* @__PURE__ */ jsxs59("g", { children: [
6580
+ anim && /* @__PURE__ */ jsx73(
6495
6581
  "animateTransform",
6496
6582
  {
6497
6583
  attributeName: "transform",
@@ -6505,23 +6591,23 @@ var KaleidoScopeHeroAnimation = ({
6505
6591
  Array.from({ length: 12 }, (_, i) => {
6506
6592
  const a = Math.PI / 6 * i;
6507
6593
  const r = outerR1 * (0.6 + i % 2 * 0.15);
6508
- return /* @__PURE__ */ jsx72(
6594
+ return /* @__PURE__ */ jsx73(
6509
6595
  "path",
6510
6596
  {
6511
6597
  d: triPath(10),
6512
6598
  transform: `translate(${c + r * Math.cos(a)},${c + r * Math.sin(a)}) rotate(${i * 30 + 15})`,
6513
6599
  fill: "url(#kh-grad-c)",
6514
6600
  opacity: "0.05",
6515
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
6601
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.03;0.1;0.03", dur: `${5 + i % 4 * 0.8}s`, repeatCount: "indefinite" })
6516
6602
  },
6517
6603
  `tc-${i}`
6518
6604
  );
6519
6605
  })
6520
6606
  ] })
6521
6607
  ] }),
6522
- /* @__PURE__ */ jsxs58("g", { transform: px(14), children: [
6523
- /* @__PURE__ */ jsxs58("g", { children: [
6524
- anim && /* @__PURE__ */ jsx72(
6608
+ /* @__PURE__ */ jsxs59("g", { transform: px(14), children: [
6609
+ /* @__PURE__ */ jsxs59("g", { children: [
6610
+ anim && /* @__PURE__ */ jsx73(
6525
6611
  "animateTransform",
6526
6612
  {
6527
6613
  attributeName: "transform",
@@ -6534,9 +6620,9 @@ var KaleidoScopeHeroAnimation = ({
6534
6620
  ),
6535
6621
  Array.from({ length: 12 }, (_, i) => {
6536
6622
  const a = Math.PI / 6 * i;
6537
- return /* @__PURE__ */ jsxs58("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
6538
- /* @__PURE__ */ jsx72("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
6539
- /* @__PURE__ */ jsx72("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
6623
+ return /* @__PURE__ */ jsxs59("g", { transform: `translate(${c + midR * Math.cos(a)},${c + midR * Math.sin(a)})`, children: [
6624
+ /* @__PURE__ */ jsx73("path", { d: hexPath2(12), fill: "url(#kh-grad-c)", opacity: 0.08 + i % 3 * 0.03 }),
6625
+ /* @__PURE__ */ jsx73("path", { d: hexPath2(12), fill: "none", stroke: "url(#kh-grad-c)", strokeWidth: "0.4", opacity: "0.12", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.08;0.2;0.08", dur: `${3 + i % 4 * 0.5}s`, repeatCount: "indefinite" }) })
6540
6626
  ] }, `mh-${i}`);
6541
6627
  })
6542
6628
  ] }),
@@ -6547,7 +6633,7 @@ var KaleidoScopeHeroAnimation = ({
6547
6633
  const y1 = c + midR * Math.sin(a1);
6548
6634
  const x2 = c + midR * Math.cos(a2);
6549
6635
  const y2 = c + midR * Math.sin(a2);
6550
- return /* @__PURE__ */ jsx72(
6636
+ return /* @__PURE__ */ jsx73(
6551
6637
  "path",
6552
6638
  {
6553
6639
  d: `M${x1},${y1} Q${c},${c} ${x2},${y2}`,
@@ -6556,17 +6642,17 @@ var KaleidoScopeHeroAnimation = ({
6556
6642
  strokeWidth: "0.5",
6557
6643
  strokeDasharray: "3 5",
6558
6644
  opacity: "0.1",
6559
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
6645
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-16", dur: `${3 + i * 0.2}s`, repeatCount: "indefinite" })
6560
6646
  },
6561
6647
  `arc-${i}`
6562
6648
  );
6563
6649
  })
6564
6650
  ] }),
6565
- /* @__PURE__ */ jsxs58("g", { transform: px(10), children: [
6566
- /* @__PURE__ */ jsx72("circle", { cx: c, cy: c, r: orbitR, fill: "none", stroke: "rgba(255,255,255,0.05)", strokeWidth: "1", strokeDasharray: "3 5", children: anim && /* @__PURE__ */ jsx72("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
6567
- /* @__PURE__ */ jsx72("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
6568
- /* @__PURE__ */ jsxs58("g", { children: [
6569
- anim && /* @__PURE__ */ jsx72(
6651
+ /* @__PURE__ */ jsxs59("g", { transform: px(10), children: [
6652
+ /* @__PURE__ */ jsx73("circle", { cx: c, cy: c, r: orbitR, fill: "none", stroke: "rgba(255,255,255,0.05)", strokeWidth: "1", strokeDasharray: "3 5", children: anim && /* @__PURE__ */ jsx73("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${c} ${c}`, to: `360 ${c} ${c}`, dur: "90s", repeatCount: "indefinite" }) }),
6653
+ /* @__PURE__ */ jsx73("circle", { cx: c, cy: c, r: orbitR + 4, fill: "none", stroke: "rgba(255,255,255,0.03)", strokeWidth: "0.5" }),
6654
+ /* @__PURE__ */ jsxs59("g", { children: [
6655
+ anim && /* @__PURE__ */ jsx73(
6570
6656
  "animateTransform",
6571
6657
  {
6572
6658
  attributeName: "transform",
@@ -6581,8 +6667,8 @@ var KaleidoScopeHeroAnimation = ({
6581
6667
  const angle = Math.atan2(pos.y - c, pos.x - c);
6582
6668
  const dx = Math.cos(angle);
6583
6669
  const dy = Math.sin(angle);
6584
- return /* @__PURE__ */ jsxs58("g", { children: [
6585
- /* @__PURE__ */ jsx72(
6670
+ return /* @__PURE__ */ jsxs59("g", { children: [
6671
+ /* @__PURE__ */ jsx73(
6586
6672
  "line",
6587
6673
  {
6588
6674
  x1: c + dx * 52,
@@ -6593,14 +6679,14 @@ var KaleidoScopeHeroAnimation = ({
6593
6679
  strokeWidth: "0.8",
6594
6680
  strokeDasharray: "2 4",
6595
6681
  opacity: "0.2",
6596
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6682
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
6597
6683
  }
6598
6684
  ),
6599
- /* @__PURE__ */ jsx72("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ jsxs58(Fragment14, { children: [
6600
- /* @__PURE__ */ jsx72("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6601
- /* @__PURE__ */ jsx72("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6602
- /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6603
- /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
6685
+ /* @__PURE__ */ jsx73("circle", { r: "2.5", fill: PROTOCOLS2[i].color, opacity: "0", children: anim && /* @__PURE__ */ jsxs59(Fragment14, { children: [
6686
+ /* @__PURE__ */ jsx73("animate", { attributeName: "cx", values: `${c + dx * 52};${pos.x}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6687
+ /* @__PURE__ */ jsx73("animate", { attributeName: "cy", values: `${c + dy * 52};${pos.y}`, dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6688
+ /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0;0.8;0", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" }),
6689
+ /* @__PURE__ */ jsx73("animate", { attributeName: "r", values: "1.5;3;1.5", dur: `${2 + i * 0.3}s`, repeatCount: "indefinite" })
6604
6690
  ] }) })
6605
6691
  ] }, `conn-${i}`);
6606
6692
  }),
@@ -6608,14 +6694,14 @@ var KaleidoScopeHeroAnimation = ({
6608
6694
  const pos = iconPositions[i];
6609
6695
  const labelWidth = Math.max(proto.name.length * 5.5 + 10, 32);
6610
6696
  const isHovered = hoveredProtocol === proto.name;
6611
- return /* @__PURE__ */ jsx72("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ jsxs58(
6697
+ return /* @__PURE__ */ jsx73("g", { transform: `translate(${pos.x},${pos.y})`, children: /* @__PURE__ */ jsxs59(
6612
6698
  "g",
6613
6699
  {
6614
6700
  onMouseEnter: () => setHoveredProtocol(proto.name),
6615
6701
  onMouseLeave: () => setHoveredProtocol(null),
6616
6702
  style: { cursor: "pointer" },
6617
6703
  children: [
6618
- anim && /* @__PURE__ */ jsx72(
6704
+ anim && /* @__PURE__ */ jsx73(
6619
6705
  "animateTransform",
6620
6706
  {
6621
6707
  attributeName: "transform",
@@ -6626,7 +6712,7 @@ var KaleidoScopeHeroAnimation = ({
6626
6712
  repeatCount: "indefinite"
6627
6713
  }
6628
6714
  ),
6629
- /* @__PURE__ */ jsx72(
6715
+ /* @__PURE__ */ jsx73(
6630
6716
  "circle",
6631
6717
  {
6632
6718
  cx: "0",
@@ -6636,13 +6722,13 @@ var KaleidoScopeHeroAnimation = ({
6636
6722
  stroke: proto.color,
6637
6723
  strokeWidth: "1",
6638
6724
  opacity: "0",
6639
- children: anim && /* @__PURE__ */ jsxs58(Fragment14, { children: [
6640
- /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
6641
- /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
6725
+ children: anim && /* @__PURE__ */ jsxs59(Fragment14, { children: [
6726
+ /* @__PURE__ */ jsx73("animate", { attributeName: "r", values: `${iconR};${iconR + 12}`, dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` }),
6727
+ /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.5;0", dur: `${3 + i * 0.5}s`, repeatCount: "indefinite", begin: `${i * 0.4}s` })
6642
6728
  ] })
6643
6729
  }
6644
6730
  ),
6645
- /* @__PURE__ */ jsx72(
6731
+ /* @__PURE__ */ jsx73(
6646
6732
  "circle",
6647
6733
  {
6648
6734
  cx: "0",
@@ -6652,10 +6738,10 @@ var KaleidoScopeHeroAnimation = ({
6652
6738
  stroke: proto.color,
6653
6739
  strokeWidth: "1",
6654
6740
  opacity: "0.15",
6655
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
6741
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.15;0.4;0.15", dur: `${3 + i * 0.4}s`, repeatCount: "indefinite" })
6656
6742
  }
6657
6743
  ),
6658
- /* @__PURE__ */ jsx72(
6744
+ /* @__PURE__ */ jsx73(
6659
6745
  "circle",
6660
6746
  {
6661
6747
  cx: "0",
@@ -6665,10 +6751,10 @@ var KaleidoScopeHeroAnimation = ({
6665
6751
  stroke: proto.color,
6666
6752
  strokeWidth: "1.5",
6667
6753
  opacity: "0.25",
6668
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
6754
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.2;0.5;0.2", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
6669
6755
  }
6670
6756
  ),
6671
- /* @__PURE__ */ jsx72(
6757
+ /* @__PURE__ */ jsx73(
6672
6758
  "circle",
6673
6759
  {
6674
6760
  cx: "0",
@@ -6679,8 +6765,8 @@ var KaleidoScopeHeroAnimation = ({
6679
6765
  strokeWidth: "1"
6680
6766
  }
6681
6767
  ),
6682
- /* @__PURE__ */ jsx72("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
6683
- /* @__PURE__ */ jsx72("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ jsx72(
6768
+ /* @__PURE__ */ jsx73("circle", { cx: "0", cy: "0", r: iconR - 2, fill: proto.color, opacity: "0.06" }),
6769
+ /* @__PURE__ */ jsx73("foreignObject", { x: -iconR, y: -iconR, width: iconR * 2, height: iconR * 2, children: /* @__PURE__ */ jsx73(
6684
6770
  NetworkBadge,
6685
6771
  {
6686
6772
  network: proto.network,
@@ -6688,8 +6774,8 @@ var KaleidoScopeHeroAnimation = ({
6688
6774
  className: "w-full h-full"
6689
6775
  }
6690
6776
  ) }),
6691
- /* @__PURE__ */ jsxs58("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
6692
- /* @__PURE__ */ jsx72(
6777
+ /* @__PURE__ */ jsxs59("g", { opacity: isHovered ? 1 : 0, style: { transition: "opacity 0.2s ease" }, children: [
6778
+ /* @__PURE__ */ jsx73(
6693
6779
  "rect",
6694
6780
  {
6695
6781
  x: -labelWidth / 2,
@@ -6703,7 +6789,7 @@ var KaleidoScopeHeroAnimation = ({
6703
6789
  strokeOpacity: 0.4
6704
6790
  }
6705
6791
  ),
6706
- /* @__PURE__ */ jsx72(
6792
+ /* @__PURE__ */ jsx73(
6707
6793
  "text",
6708
6794
  {
6709
6795
  x: "0",
@@ -6723,9 +6809,9 @@ var KaleidoScopeHeroAnimation = ({
6723
6809
  })
6724
6810
  ] })
6725
6811
  ] }),
6726
- /* @__PURE__ */ jsxs58("g", { transform: px(5), children: [
6727
- /* @__PURE__ */ jsxs58("g", { children: [
6728
- anim && /* @__PURE__ */ jsx72(
6812
+ /* @__PURE__ */ jsxs59("g", { transform: px(5), children: [
6813
+ /* @__PURE__ */ jsxs59("g", { children: [
6814
+ anim && /* @__PURE__ */ jsx73(
6729
6815
  "animateTransform",
6730
6816
  {
6731
6817
  attributeName: "transform",
@@ -6738,28 +6824,28 @@ var KaleidoScopeHeroAnimation = ({
6738
6824
  ),
6739
6825
  Array.from({ length: 6 }, (_, i) => {
6740
6826
  const a = Math.PI / 3 * i;
6741
- return /* @__PURE__ */ jsx72(
6827
+ return /* @__PURE__ */ jsx73(
6742
6828
  "path",
6743
6829
  {
6744
6830
  d: diamondPath(10, 22),
6745
6831
  transform: `translate(${c + innerR * Math.cos(a)},${c + innerR * Math.sin(a)}) rotate(${i * 60})`,
6746
6832
  fill: "url(#kh-gp)",
6747
6833
  opacity: "0.15",
6748
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
6834
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.1;0.28;0.1", dur: `${2.8 + i * 0.35}s`, repeatCount: "indefinite" })
6749
6835
  },
6750
6836
  `d-${i}`
6751
6837
  );
6752
6838
  }),
6753
6839
  Array.from({ length: 6 }, (_, i) => {
6754
6840
  const a = Math.PI / 3 * i + Math.PI / 6;
6755
- return /* @__PURE__ */ jsx72(
6841
+ return /* @__PURE__ */ jsx73(
6756
6842
  "path",
6757
6843
  {
6758
6844
  d: triPath(8),
6759
6845
  transform: `translate(${c + innerR * 0.75 * Math.cos(a)},${c + innerR * 0.75 * Math.sin(a)}) rotate(${i * 60 + 30})`,
6760
6846
  fill: "url(#kh-oc)",
6761
6847
  opacity: "0.1",
6762
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
6848
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${3.2 + i * 0.3}s`, repeatCount: "indefinite" })
6763
6849
  },
6764
6850
  `it-${i}`
6765
6851
  );
@@ -6767,7 +6853,7 @@ var KaleidoScopeHeroAnimation = ({
6767
6853
  Array.from({ length: 12 }, (_, i) => {
6768
6854
  const a = Math.PI / 6 * i;
6769
6855
  const r = innerR * (i % 2 === 0 ? 0.55 : 0.65);
6770
- return /* @__PURE__ */ jsx72(
6856
+ return /* @__PURE__ */ jsx73(
6771
6857
  "circle",
6772
6858
  {
6773
6859
  cx: c + r * Math.cos(a),
@@ -6775,14 +6861,14 @@ var KaleidoScopeHeroAnimation = ({
6775
6861
  r: i % 2 === 0 ? 2 : 1.5,
6776
6862
  fill: "url(#kh-oc)",
6777
6863
  opacity: "0.2",
6778
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
6864
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.1;0.35;0.1", dur: `${2 + i % 4 * 0.5}s`, repeatCount: "indefinite" })
6779
6865
  },
6780
6866
  `id-${i}`
6781
6867
  );
6782
6868
  })
6783
6869
  ] }),
6784
- /* @__PURE__ */ jsxs58("g", { children: [
6785
- anim && /* @__PURE__ */ jsx72(
6870
+ /* @__PURE__ */ jsxs59("g", { children: [
6871
+ anim && /* @__PURE__ */ jsx73(
6786
6872
  "animateTransform",
6787
6873
  {
6788
6874
  attributeName: "transform",
@@ -6795,27 +6881,27 @@ var KaleidoScopeHeroAnimation = ({
6795
6881
  ),
6796
6882
  Array.from({ length: 6 }, (_, i) => {
6797
6883
  const a = Math.PI / 3 * i + Math.PI / 6;
6798
- return /* @__PURE__ */ jsx72(
6884
+ return /* @__PURE__ */ jsx73(
6799
6885
  "path",
6800
6886
  {
6801
6887
  d: hexPath2(6),
6802
6888
  transform: `translate(${c + innerR * 0.42 * Math.cos(a)},${c + innerR * 0.42 * Math.sin(a)})`,
6803
6889
  fill: "url(#kh-bp)",
6804
6890
  opacity: "0.1",
6805
- children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
6891
+ children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.06;0.18;0.06", dur: `${2.5 + i * 0.3}s`, repeatCount: "indefinite" })
6806
6892
  },
6807
6893
  `ih-${i}`
6808
6894
  );
6809
6895
  })
6810
6896
  ] })
6811
6897
  ] }),
6812
- /* @__PURE__ */ jsx72("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
6898
+ /* @__PURE__ */ jsx73("g", { transform: px(18), children: Array.from({ length: 16 }, (_, i) => {
6813
6899
  const a = Math.PI * 2 * i / 16;
6814
6900
  const baseR = 60 + i % 4 * 45;
6815
6901
  const x = c + baseR * Math.cos(a);
6816
6902
  const y = c + baseR * Math.sin(a);
6817
6903
  const colors2 = ["#0e9dff", "#8a5cf6", "#22c55e", "#F7931A", "#06b6d4", "#15E99A"];
6818
- return /* @__PURE__ */ jsx72(
6904
+ return /* @__PURE__ */ jsx73(
6819
6905
  "circle",
6820
6906
  {
6821
6907
  cx: x,
@@ -6823,26 +6909,26 @@ var KaleidoScopeHeroAnimation = ({
6823
6909
  r: 1 + i % 3 * 0.5,
6824
6910
  fill: colors2[i % colors2.length],
6825
6911
  opacity: "0",
6826
- children: anim && /* @__PURE__ */ jsxs58(Fragment14, { children: [
6827
- /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
6828
- /* @__PURE__ */ jsx72("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` }),
6829
- /* @__PURE__ */ jsx72("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` })
6912
+ children: anim && /* @__PURE__ */ jsxs59(Fragment14, { children: [
6913
+ /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0;0.6;0", dur: `${3 + i % 5 * 0.8}s`, repeatCount: "indefinite", begin: `${i % 7 * 0.5}s` }),
6914
+ /* @__PURE__ */ jsx73("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` }),
6915
+ /* @__PURE__ */ jsx73("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` })
6830
6916
  ] })
6831
6917
  },
6832
6918
  `p-${i}`
6833
6919
  );
6834
6920
  }) }),
6835
- /* @__PURE__ */ jsxs58("g", { children: [
6836
- /* @__PURE__ */ jsx72("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
6837
- /* @__PURE__ */ jsx72("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ jsxs58(Fragment14, { children: [
6838
- /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
6839
- /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6921
+ /* @__PURE__ */ jsxs59("g", { children: [
6922
+ /* @__PURE__ */ jsx73("circle", { cx: c, cy: c, r: "75", fill: "url(#kh-center-glow)", children: anim && /* @__PURE__ */ jsx73("animate", { attributeName: "r", values: "70;80;70", dur: "4s", repeatCount: "indefinite" }) }),
6923
+ /* @__PURE__ */ jsx73("circle", { cx: c, cy: c, r: "52", fill: "none", stroke: "url(#kh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ jsxs59(Fragment14, { children: [
6924
+ /* @__PURE__ */ jsx73("animate", { attributeName: "r", values: "48;65", dur: "3s", repeatCount: "indefinite" }),
6925
+ /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
6840
6926
  ] }) }),
6841
- /* @__PURE__ */ jsx72("circle", { cx: c, cy: c, r: "48", fill: "none", stroke: "url(#kh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ jsxs58(Fragment14, { children: [
6842
- /* @__PURE__ */ jsx72("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6843
- /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6927
+ /* @__PURE__ */ jsx73("circle", { cx: c, cy: c, r: "48", fill: "none", stroke: "url(#kh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ jsxs59(Fragment14, { children: [
6928
+ /* @__PURE__ */ jsx73("animate", { attributeName: "r", values: "48;60", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
6929
+ /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
6844
6930
  ] }) }),
6845
- /* @__PURE__ */ jsx72(
6931
+ /* @__PURE__ */ jsx73(
6846
6932
  "path",
6847
6933
  {
6848
6934
  d: hexPath2(50),
@@ -6852,13 +6938,13 @@ var KaleidoScopeHeroAnimation = ({
6852
6938
  strokeWidth: "1.5",
6853
6939
  opacity: "0.4",
6854
6940
  filter: "url(#kh-glow)",
6855
- children: anim && /* @__PURE__ */ jsxs58(Fragment14, { children: [
6856
- /* @__PURE__ */ jsx72("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6857
- /* @__PURE__ */ jsx72("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6941
+ children: anim && /* @__PURE__ */ jsxs59(Fragment14, { children: [
6942
+ /* @__PURE__ */ jsx73("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
6943
+ /* @__PURE__ */ jsx73("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
6858
6944
  ] })
6859
6945
  }
6860
6946
  ),
6861
- /* @__PURE__ */ jsx72(
6947
+ /* @__PURE__ */ jsx73(
6862
6948
  "path",
6863
6949
  {
6864
6950
  d: hexPath2(46),
@@ -6868,21 +6954,21 @@ var KaleidoScopeHeroAnimation = ({
6868
6954
  strokeWidth: "0.5"
6869
6955
  }
6870
6956
  ),
6871
- /* @__PURE__ */ jsxs58("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
6872
- /* @__PURE__ */ jsx72("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
6873
- /* @__PURE__ */ jsx72("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
6874
- /* @__PURE__ */ jsx72("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
6875
- /* @__PURE__ */ jsx72("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
6876
- /* @__PURE__ */ jsx72("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
6877
- /* @__PURE__ */ jsx72("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
6878
- /* @__PURE__ */ jsx72("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
6879
- /* @__PURE__ */ jsx72("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
6880
- /* @__PURE__ */ jsx72("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
6881
- /* @__PURE__ */ jsx72("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
6882
- /* @__PURE__ */ jsx72("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
6883
- /* @__PURE__ */ jsx72("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
6884
- /* @__PURE__ */ jsx72("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
6885
- /* @__PURE__ */ jsx72("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
6957
+ /* @__PURE__ */ jsxs59("g", { transform: `translate(${c - 34},${c - 34}) scale(0.325)`, children: [
6958
+ /* @__PURE__ */ jsx73("path", { d: "M69.7141 207.3H0.908203L35.3243 172.936L69.7141 207.3Z", fill: "#6F32FF" }),
6959
+ /* @__PURE__ */ jsx73("path", { d: "M138.441 0.96106V69.767L104.078 35.3508L138.441 0.96106Z", fill: "#17B581" }),
6960
+ /* @__PURE__ */ jsx73("path", { d: "M138.415 138.547V207.352L104.051 172.936L138.415 138.547Z", fill: "#17B581" }),
6961
+ /* @__PURE__ */ jsx73("path", { d: "M138.441 69.7406V0.96106L172.804 35.3772L138.441 69.767V69.7406Z", fill: "#17B581" }),
6962
+ /* @__PURE__ */ jsx73("path", { d: "M69.6614 138.494V69.6879L104.025 104.104L69.6614 138.494Z", fill: "#15E99A" }),
6963
+ /* @__PURE__ */ jsx73("path", { d: "M69.6615 69.7142V138.52L35.2981 104.104L69.6615 69.7142Z", fill: "#15E99A" }),
6964
+ /* @__PURE__ */ jsx73("path", { d: "M138.467 207.379V138.573L172.831 172.989L138.467 207.379Z", fill: "#17B581" }),
6965
+ /* @__PURE__ */ jsx73("path", { d: "M0.908203 0.908325H69.7141L35.298 35.2718L0.908203 0.908325Z", fill: "#6F32FF" }),
6966
+ /* @__PURE__ */ jsx73("path", { d: "M207.22 207.3H138.415L172.831 172.936L207.22 207.3Z", fill: "#17B581" }),
6967
+ /* @__PURE__ */ jsx73("path", { d: "M138.415 0.987427H207.22L172.804 35.3509L138.415 0.987427Z", fill: "#17B581" }),
6968
+ /* @__PURE__ */ jsx73("path", { d: "M138.467 69.7143H69.6614L104.078 35.3508L138.467 69.7143Z", fill: "#17B581" }),
6969
+ /* @__PURE__ */ jsx73("path", { d: "M69.635 138.494H138.441L104.025 172.857L69.635 138.494Z", fill: "#17B581" }),
6970
+ /* @__PURE__ */ jsx73("path", { d: "M138.415 138.494H69.635L104.025 104.157L138.388 138.494H138.415Z", fill: "#15E99A" }),
6971
+ /* @__PURE__ */ jsx73("path", { d: "M138.415 69.7142L104.051 104.051L69.6614 69.7142H138.441H138.415Z", fill: "#15E99A" })
6886
6972
  ] })
6887
6973
  ] })
6888
6974
  ]
@@ -7016,7 +7102,7 @@ var colors = {
7016
7102
  };
7017
7103
 
7018
7104
  // src/web/components/deposit-ui-shared.tsx
7019
- import { Fragment as Fragment15, jsx as jsx73, jsxs as jsxs59 } from "react/jsx-runtime";
7105
+ import { Fragment as Fragment15, jsx as jsx74, jsxs as jsxs60 } from "react/jsx-runtime";
7020
7106
  var GLOW_ALPHA = "26";
7021
7107
  function qrGlowStyle(hex) {
7022
7108
  return { boxShadow: `0 0 30px ${hex}${GLOW_ALPHA}` };
@@ -7033,7 +7119,7 @@ var NETWORK_CONFIG = {
7033
7119
  // On-chain uses a chain-link glyph rather than the ₿ coin — the coin reads
7034
7120
  // as "the BTC asset", whereas this row is specifically the *on-chain* (L1)
7035
7121
  // receive rail alongside Lightning/Spark/Arkade, so a chain mark disambiguates.
7036
- icon: /* @__PURE__ */ jsx73("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7122
+ icon: /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined text-icon-xs leading-none", children: "link" })
7037
7123
  },
7038
7124
  lightning: {
7039
7125
  label: "Lightning",
@@ -7043,7 +7129,7 @@ var NETWORK_CONFIG = {
7043
7129
  border: "border-network-lightning/40",
7044
7130
  qrBorder: "border-network-lightning/30",
7045
7131
  qrGlow: qrGlowStyle(colors.network.lightning),
7046
- icon: /* @__PURE__ */ jsx73("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7132
+ icon: /* @__PURE__ */ jsx74("img", { src: "/icons/lightning/lightning.svg", className: "size-3", alt: "" })
7047
7133
  },
7048
7134
  spark: {
7049
7135
  label: "Spark",
@@ -7053,7 +7139,7 @@ var NETWORK_CONFIG = {
7053
7139
  border: "border-info/40",
7054
7140
  qrBorder: "border-info/30",
7055
7141
  qrGlow: qrGlowStyle(colors.info),
7056
- icon: /* @__PURE__ */ jsx73("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7142
+ icon: /* @__PURE__ */ jsx74("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", className: "h-3 w-3", alt: "" })
7057
7143
  },
7058
7144
  arkade: {
7059
7145
  label: "Arkade",
@@ -7063,7 +7149,7 @@ var NETWORK_CONFIG = {
7063
7149
  border: "border-network-arkade/40",
7064
7150
  qrBorder: "border-network-arkade/30",
7065
7151
  qrGlow: qrGlowStyle(colors.network.arkade),
7066
- icon: /* @__PURE__ */ jsx73("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7152
+ icon: /* @__PURE__ */ jsx74("img", { src: "/icons/arkade/arkade-icon.svg", className: "h-3 w-3 rounded-sm", alt: "" })
7067
7153
  }
7068
7154
  };
7069
7155
  var ACCOUNT_META = {
@@ -7072,14 +7158,14 @@ var ACCOUNT_META = {
7072
7158
  accentBg: "bg-primary/10",
7073
7159
  accentText: "text-primary",
7074
7160
  accentBorder: "border-primary/30",
7075
- icon: /* @__PURE__ */ jsx73("img", { src: "/icons/rgb/rgb-logo.svg", alt: "", className: "h-2.5 w-2.5 object-contain" })
7161
+ icon: /* @__PURE__ */ jsx74("img", { src: "/icons/rgb/rgb-logo.svg", alt: "", className: "h-2.5 w-2.5 object-contain" })
7076
7162
  },
7077
7163
  SPARK: {
7078
7164
  shortLabel: "Spark",
7079
7165
  accentBg: "bg-info/10",
7080
7166
  accentText: "text-info",
7081
7167
  accentBorder: "border-info/30",
7082
- icon: /* @__PURE__ */ jsx73(
7168
+ icon: /* @__PURE__ */ jsx74(
7083
7169
  "img",
7084
7170
  {
7085
7171
  src: "/icons/spark/Asterisk/Spark Asterisk White.svg",
@@ -7093,7 +7179,7 @@ var ACCOUNT_META = {
7093
7179
  accentBg: "bg-network-arkade/10",
7094
7180
  accentText: "text-network-arkade",
7095
7181
  accentBorder: "border-network-arkade/30",
7096
- icon: /* @__PURE__ */ jsx73("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7182
+ icon: /* @__PURE__ */ jsx74("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7097
7183
  }
7098
7184
  };
7099
7185
  var METHOD_META = {
@@ -7110,7 +7196,7 @@ function InvoiceStatusBanner({
7110
7196
  isInvoiceFailedOrExpired,
7111
7197
  invoiceStatus
7112
7198
  }) {
7113
- return /* @__PURE__ */ jsxs59(
7199
+ return /* @__PURE__ */ jsxs60(
7114
7200
  "div",
7115
7201
  {
7116
7202
  className: cn(
@@ -7118,17 +7204,17 @@ function InvoiceStatusBanner({
7118
7204
  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"
7119
7205
  ),
7120
7206
  children: [
7121
- isInvoicePending && /* @__PURE__ */ jsxs59(Fragment15, { children: [
7122
- /* @__PURE__ */ jsx73("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7123
- /* @__PURE__ */ jsx73("span", { children: "Waiting for payment..." })
7207
+ isInvoicePending && /* @__PURE__ */ jsxs60(Fragment15, { children: [
7208
+ /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined animate-spin text-icon-sm", children: "progress_activity" }),
7209
+ /* @__PURE__ */ jsx74("span", { children: "Waiting for payment..." })
7124
7210
  ] }),
7125
- isInvoicePaid && /* @__PURE__ */ jsxs59(Fragment15, { children: [
7126
- /* @__PURE__ */ jsx73("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7127
- /* @__PURE__ */ jsx73("span", { children: "Payment received!" })
7211
+ isInvoicePaid && /* @__PURE__ */ jsxs60(Fragment15, { children: [
7212
+ /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined text-icon-sm", children: "check_circle" }),
7213
+ /* @__PURE__ */ jsx74("span", { children: "Payment received!" })
7128
7214
  ] }),
7129
- isInvoiceFailedOrExpired && /* @__PURE__ */ jsxs59(Fragment15, { children: [
7130
- /* @__PURE__ */ jsx73("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7131
- /* @__PURE__ */ jsxs59("span", { children: [
7215
+ isInvoiceFailedOrExpired && /* @__PURE__ */ jsxs60(Fragment15, { children: [
7216
+ /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined text-icon-sm", children: "cancel" }),
7217
+ /* @__PURE__ */ jsxs60("span", { children: [
7132
7218
  "Invoice ",
7133
7219
  invoiceStatus?.toLowerCase() === "expired" ? "expired" : "failed"
7134
7220
  ] })
@@ -7138,20 +7224,20 @@ function InvoiceStatusBanner({
7138
7224
  );
7139
7225
  }
7140
7226
  function PaidOverlay() {
7141
- return /* @__PURE__ */ jsx73("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ jsxs59("div", { className: "flex flex-col items-center gap-2", children: [
7142
- /* @__PURE__ */ jsx73("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ jsx73("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
7143
- /* @__PURE__ */ jsx73("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7227
+ return /* @__PURE__ */ jsx74("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-background/80", children: /* @__PURE__ */ jsxs60("div", { className: "flex flex-col items-center gap-2", children: [
7228
+ /* @__PURE__ */ jsx74("div", { className: "flex size-14 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined text-icon-4xl text-background", children: "check" }) }),
7229
+ /* @__PURE__ */ jsx74("span", { className: "text-sm font-bold text-primary", children: "Received!" })
7144
7230
  ] }) });
7145
7231
  }
7146
7232
  function CopyIcon({ copied }) {
7147
- return /* @__PURE__ */ jsx73(
7233
+ return /* @__PURE__ */ jsx74(
7148
7234
  "div",
7149
7235
  {
7150
7236
  className: cn(
7151
7237
  "flex-shrink-0 rounded-lg p-2 transition-all",
7152
7238
  copied ? "bg-primary/15 text-primary" : "bg-white/5 text-white/40 group-hover:bg-primary/10 group-hover:text-primary"
7153
7239
  ),
7154
- children: copied ? /* @__PURE__ */ jsx73(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ jsx73(Icon, { name: "content_copy", size: "sm" })
7240
+ children: copied ? /* @__PURE__ */ jsx74(Icon, { name: "check", size: "sm" }) : /* @__PURE__ */ jsx74(Icon, { name: "content_copy", size: "sm" })
7155
7241
  }
7156
7242
  );
7157
7243
  }
@@ -7162,7 +7248,7 @@ function AccountChoiceChip({
7162
7248
  label
7163
7249
  }) {
7164
7250
  const meta = ACCOUNT_META[account];
7165
- return /* @__PURE__ */ jsxs59(
7251
+ return /* @__PURE__ */ jsxs60(
7166
7252
  "button",
7167
7253
  {
7168
7254
  type: "button",
@@ -7174,7 +7260,7 @@ function AccountChoiceChip({
7174
7260
  ),
7175
7261
  children: [
7176
7262
  meta.icon,
7177
- /* @__PURE__ */ jsx73("span", { children: label ?? meta.shortLabel })
7263
+ /* @__PURE__ */ jsx74("span", { children: label ?? meta.shortLabel })
7178
7264
  ]
7179
7265
  }
7180
7266
  );
@@ -7223,8 +7309,8 @@ function NetworkInfoDisclosure({
7223
7309
  }) {
7224
7310
  const [open, setOpen] = useState14(false);
7225
7311
  if (networks.length === 0) return null;
7226
- return /* @__PURE__ */ jsxs59("div", { className: cn("overflow-hidden rounded-xl border border-white/8 bg-white/3 transition-all", className), children: [
7227
- /* @__PURE__ */ jsxs59(
7312
+ return /* @__PURE__ */ jsxs60("div", { className: cn("overflow-hidden rounded-xl border border-white/8 bg-white/3 transition-all", className), children: [
7313
+ /* @__PURE__ */ jsxs60(
7228
7314
  "button",
7229
7315
  {
7230
7316
  type: "button",
@@ -7232,24 +7318,24 @@ function NetworkInfoDisclosure({
7232
7318
  "aria-expanded": open,
7233
7319
  className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-left transition-colors hover:bg-white/4",
7234
7320
  children: [
7235
- /* @__PURE__ */ jsx73(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7236
- /* @__PURE__ */ jsx73("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
7237
- /* @__PURE__ */ jsx73(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7321
+ /* @__PURE__ */ jsx74(Icon, { name: "info", size: "xs", className: "text-white/40" }),
7322
+ /* @__PURE__ */ jsx74("span", { className: "flex-1 text-xxs font-bold uppercase tracking-widest text-white/50", children: "What are these networks?" }),
7323
+ /* @__PURE__ */ jsx74(Icon, { name: open ? "expand_less" : "expand_more", size: "xs", className: "text-white/40" })
7238
7324
  ]
7239
7325
  }
7240
7326
  ),
7241
- open && /* @__PURE__ */ jsx73("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) => {
7327
+ open && /* @__PURE__ */ jsx74("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) => {
7242
7328
  const info = NETWORK_INFO[network];
7243
7329
  const cfg = NETWORK_CONFIG[network];
7244
- return /* @__PURE__ */ jsxs59("div", { className: "space-y-1", children: [
7245
- /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-1.5", children: [
7246
- /* @__PURE__ */ jsx73("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
7247
- /* @__PURE__ */ jsx73("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7330
+ return /* @__PURE__ */ jsxs60("div", { className: "space-y-1", children: [
7331
+ /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-1.5", children: [
7332
+ /* @__PURE__ */ jsx74("div", { className: cn("flex size-4 flex-shrink-0 items-center justify-center rounded-md", cfg.bg), children: cfg.icon }),
7333
+ /* @__PURE__ */ jsx74("span", { className: cn("text-xxs font-bold uppercase tracking-widest", cfg.text), children: info.title })
7248
7334
  ] }),
7249
- /* @__PURE__ */ jsx73("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7250
- /* @__PURE__ */ jsx73("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ jsxs59("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
7251
- /* @__PURE__ */ jsx73("span", { className: "mt-[1px] text-white/30", children: "-" }),
7252
- /* @__PURE__ */ jsx73("span", { children: bullet })
7335
+ /* @__PURE__ */ jsx74("p", { className: "pl-5 text-tiny leading-snug text-muted-foreground", children: info.detail }),
7336
+ /* @__PURE__ */ jsx74("ul", { className: "space-y-0.5 pl-5", children: info.bullets.map((bullet) => /* @__PURE__ */ jsxs60("li", { className: "flex items-start gap-1.5 text-xxs leading-snug text-white/50", children: [
7337
+ /* @__PURE__ */ jsx74("span", { className: "mt-[1px] text-white/30", children: "-" }),
7338
+ /* @__PURE__ */ jsx74("span", { children: bullet })
7253
7339
  ] }, bullet)) })
7254
7340
  ] }, network);
7255
7341
  }) })
@@ -7263,7 +7349,7 @@ function MethodChoiceChip({
7263
7349
  onClick
7264
7350
  }) {
7265
7351
  const meta = METHOD_META[method];
7266
- return /* @__PURE__ */ jsxs59(
7352
+ return /* @__PURE__ */ jsxs60(
7267
7353
  "button",
7268
7354
  {
7269
7355
  type: "button",
@@ -7276,14 +7362,14 @@ function MethodChoiceChip({
7276
7362
  ),
7277
7363
  children: [
7278
7364
  meta.label,
7279
- !enabled && disabledReason && /* @__PURE__ */ jsx73("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7365
+ !enabled && disabledReason && /* @__PURE__ */ jsx74("span", { className: "text-xxs font-normal opacity-60", children: disabledReason })
7280
7366
  ]
7281
7367
  }
7282
7368
  );
7283
7369
  }
7284
7370
 
7285
7371
  // src/web/components/deposit-success-screen.tsx
7286
- import { jsx as jsx74, jsxs as jsxs60 } from "react/jsx-runtime";
7372
+ import { jsx as jsx75, jsxs as jsxs61 } from "react/jsx-runtime";
7287
7373
  function DepositSuccessScreen({
7288
7374
  handleDone,
7289
7375
  displayTicker,
@@ -7296,20 +7382,20 @@ function DepositSuccessScreen({
7296
7382
  const isInstant = network === "lightning" || network === "spark";
7297
7383
  const title = isInstant ? "Payment Received!" : "Deposit Detected!";
7298
7384
  const subtitle = isInstant ? `Your ${displayTicker} has arrived via ${networkLabel}.` : `Incoming deposit detected via ${networkLabel}. Funds will be available after confirmation.`;
7299
- return /* @__PURE__ */ jsx74("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ jsxs60("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
7300
- /* @__PURE__ */ jsxs60("div", { className: "relative mb-8", children: [
7301
- /* @__PURE__ */ jsx74("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7302
- /* @__PURE__ */ jsx74("div", { className: "relative flex size-20 items-center justify-center rounded-full border-2 border-primary/40 bg-primary/10 shadow-sm", children: /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
7385
+ return /* @__PURE__ */ jsx75("div", { className: "flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: /* @__PURE__ */ jsxs61("div", { className: "flex flex-1 flex-col items-center justify-center p-6 text-center", children: [
7386
+ /* @__PURE__ */ jsxs61("div", { className: "relative mb-8", children: [
7387
+ /* @__PURE__ */ jsx75("div", { className: "absolute inset-0 scale-150 animate-pulse rounded-full bg-primary/20 blur-2xl" }),
7388
+ /* @__PURE__ */ jsx75("div", { className: "relative flex size-20 items-center justify-center rounded-full border-2 border-primary/40 bg-primary/10 shadow-sm", children: /* @__PURE__ */ jsx75("span", { className: "material-symbols-outlined text-5xl text-primary animate-in zoom-in-50 duration-500", children: "check_circle" }) })
7303
7389
  ] }),
7304
- /* @__PURE__ */ jsx74("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7305
- /* @__PURE__ */ jsx74("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7306
- /* @__PURE__ */ jsxs60("div", { className: "mb-10 flex items-center gap-3 rounded-2xl border bg-white/5 px-4 py-3", children: [
7307
- /* @__PURE__ */ jsx74(AssetIcon, { ticker: displayTicker, size: 36 }),
7308
- /* @__PURE__ */ jsxs60("div", { className: "text-left", children: [
7309
- /* @__PURE__ */ jsx74("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7310
- /* @__PURE__ */ jsx74("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7390
+ /* @__PURE__ */ jsx75("h1", { className: "mb-2 text-2xl font-bold text-white", children: title }),
7391
+ /* @__PURE__ */ jsx75("p", { className: "mb-8 max-w-[260px] text-sm leading-relaxed text-muted-foreground", children: subtitle }),
7392
+ /* @__PURE__ */ jsxs61("div", { className: "mb-10 flex items-center gap-3 rounded-2xl border bg-white/5 px-4 py-3", children: [
7393
+ /* @__PURE__ */ jsx75(AssetIcon, { ticker: displayTicker, size: 36 }),
7394
+ /* @__PURE__ */ jsxs61("div", { className: "text-left", children: [
7395
+ /* @__PURE__ */ jsx75("p", { className: "text-sm font-bold text-white", children: displayTicker }),
7396
+ /* @__PURE__ */ jsx75("p", { className: "text-xs text-white/40", children: selectedAsset?.name ?? displayTicker })
7311
7397
  ] }),
7312
- /* @__PURE__ */ jsxs60(
7398
+ /* @__PURE__ */ jsxs61(
7313
7399
  "div",
7314
7400
  {
7315
7401
  className: cn(
@@ -7320,27 +7406,27 @@ function DepositSuccessScreen({
7320
7406
  ),
7321
7407
  children: [
7322
7408
  net.icon,
7323
- /* @__PURE__ */ jsx74("span", { children: networkLabel })
7409
+ /* @__PURE__ */ jsx75("span", { children: networkLabel })
7324
7410
  ]
7325
7411
  }
7326
7412
  )
7327
7413
  ] }),
7328
- /* @__PURE__ */ jsxs60(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7329
- /* @__PURE__ */ jsx74("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7414
+ /* @__PURE__ */ jsxs61(Button, { variant: "cta", size: "cta", onClick: handleDone, children: [
7415
+ /* @__PURE__ */ jsx75("span", { className: "material-symbols-outlined text-icon-lg", children: "account_balance_wallet" }),
7330
7416
  "Back to Wallet"
7331
7417
  ] })
7332
7418
  ] }) });
7333
7419
  }
7334
7420
 
7335
7421
  // src/web/components/deposit-network-default-modal.tsx
7336
- import { jsx as jsx75, jsxs as jsxs61 } from "react/jsx-runtime";
7422
+ import { jsx as jsx76, jsxs as jsxs62 } from "react/jsx-runtime";
7337
7423
  var NETWORK_OPTIONS = {
7338
7424
  RGB: {
7339
7425
  network: "onchain",
7340
7426
  account: "RGB",
7341
7427
  label: "On-chain / Lightning",
7342
7428
  description: "Classic Bitcoin address or Lightning invoice via the RLN node.",
7343
- icon: /* @__PURE__ */ jsx75("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7429
+ icon: /* @__PURE__ */ jsx76("span", { className: "material-symbols-outlined text-icon-lg", children: "link" }),
7344
7430
  accentBg: "bg-network-bitcoin/10",
7345
7431
  accentBorder: "border-network-bitcoin/30",
7346
7432
  accentText: "text-network-bitcoin"
@@ -7350,7 +7436,7 @@ var NETWORK_OPTIONS = {
7350
7436
  account: "SPARK",
7351
7437
  label: "Spark",
7352
7438
  description: "Receive directly into your Spark account. Fast and free.",
7353
- icon: /* @__PURE__ */ jsx75("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7439
+ icon: /* @__PURE__ */ jsx76("img", { src: "/icons/spark/Asterisk/Spark Asterisk White.svg", alt: "", className: "h-[18px]" }),
7354
7440
  accentBg: "bg-info/10",
7355
7441
  accentBorder: "border-info/30",
7356
7442
  accentText: "text-info"
@@ -7360,7 +7446,7 @@ var NETWORK_OPTIONS = {
7360
7446
  account: "ARKADE",
7361
7447
  label: "Arkade",
7362
7448
  description: "Receive directly into your Arkade account. Low fees, near-instant settlement.",
7363
- icon: /* @__PURE__ */ jsx75("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7449
+ icon: /* @__PURE__ */ jsx76("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-[18px]" }),
7364
7450
  accentBg: "bg-network-arkade/10",
7365
7451
  accentBorder: "border-network-arkade/30",
7366
7452
  accentText: "text-network-arkade"
@@ -7375,20 +7461,20 @@ function DepositNetworkDefaultModal({
7375
7461
  }) {
7376
7462
  if (!open) return null;
7377
7463
  const options = availableAccounts.map((id) => NETWORK_OPTIONS[id]).filter(Boolean);
7378
- return /* @__PURE__ */ jsx75("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-black/60 backdrop-blur-sm", children: /* @__PURE__ */ jsxs61("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: [
7379
- /* @__PURE__ */ jsx75("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ jsx75("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
7380
- /* @__PURE__ */ jsxs61("div", { children: [
7381
- /* @__PURE__ */ jsx75("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7382
- /* @__PURE__ */ jsxs61("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7464
+ return /* @__PURE__ */ jsx76("div", { className: "fixed inset-0 z-50 flex items-end justify-center bg-black/60 backdrop-blur-sm", children: /* @__PURE__ */ jsxs62("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: [
7465
+ /* @__PURE__ */ jsx76("div", { className: "-mt-1 mb-1 flex justify-center", children: /* @__PURE__ */ jsx76("div", { className: "h-1 w-10 rounded-full bg-white/15" }) }),
7466
+ /* @__PURE__ */ jsxs62("div", { children: [
7467
+ /* @__PURE__ */ jsx76("p", { className: "text-sm font-bold text-white", children: "Choose your default network" }),
7468
+ /* @__PURE__ */ jsxs62("p", { className: "mt-0.5 text-tiny text-white/45", children: [
7383
7469
  "Pick how you would like to receive",
7384
7470
  " ",
7385
- /* @__PURE__ */ jsx75("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7471
+ /* @__PURE__ */ jsx76("span", { className: "font-semibold text-muted-foreground", children: assetTicker }),
7386
7472
  " by default. You can always switch in the deposit screen."
7387
7473
  ] })
7388
7474
  ] }),
7389
- /* @__PURE__ */ jsx75("div", { className: "space-y-2", children: options.map((option) => {
7475
+ /* @__PURE__ */ jsx76("div", { className: "space-y-2", children: options.map((option) => {
7390
7476
  const isSuggested = option.account === suggestedAccount;
7391
- return /* @__PURE__ */ jsxs61(
7477
+ return /* @__PURE__ */ jsxs62(
7392
7478
  "button",
7393
7479
  {
7394
7480
  type: "button",
@@ -7398,7 +7484,7 @@ function DepositNetworkDefaultModal({
7398
7484
  isSuggested ? cn("border-2", option.accentBorder, option.accentBg) : "border border-white/8 bg-white/4 hover:bg-white/8"
7399
7485
  ),
7400
7486
  children: [
7401
- /* @__PURE__ */ jsx75(
7487
+ /* @__PURE__ */ jsx76(
7402
7488
  "div",
7403
7489
  {
7404
7490
  className: cn(
@@ -7409,10 +7495,10 @@ function DepositNetworkDefaultModal({
7409
7495
  children: option.icon
7410
7496
  }
7411
7497
  ),
7412
- /* @__PURE__ */ jsxs61("div", { className: "min-w-0 flex-1", children: [
7413
- /* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-2", children: [
7414
- /* @__PURE__ */ jsx75("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
7415
- isSuggested && /* @__PURE__ */ jsx75(
7498
+ /* @__PURE__ */ jsxs62("div", { className: "min-w-0 flex-1", children: [
7499
+ /* @__PURE__ */ jsxs62("div", { className: "flex items-center gap-2", children: [
7500
+ /* @__PURE__ */ jsx76("span", { className: cn("text-xs font-bold", isSuggested ? option.accentText : "text-white"), children: option.label }),
7501
+ isSuggested && /* @__PURE__ */ jsx76(
7416
7502
  "span",
7417
7503
  {
7418
7504
  className: cn(
@@ -7424,9 +7510,9 @@ function DepositNetworkDefaultModal({
7424
7510
  }
7425
7511
  )
7426
7512
  ] }),
7427
- /* @__PURE__ */ jsx75("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
7513
+ /* @__PURE__ */ jsx76("p", { className: "mt-0.5 text-xxs leading-snug text-white/45", children: option.description })
7428
7514
  ] }),
7429
- /* @__PURE__ */ jsx75(
7515
+ /* @__PURE__ */ jsx76(
7430
7516
  "span",
7431
7517
  {
7432
7518
  className: cn(
@@ -7446,7 +7532,7 @@ function DepositNetworkDefaultModal({
7446
7532
 
7447
7533
  // src/web/components/btc-unified-receive.tsx
7448
7534
  import { useState as useState15 } from "react";
7449
- import { jsx as jsx76, jsxs as jsxs62 } from "react/jsx-runtime";
7535
+ import { jsx as jsx77, jsxs as jsxs63 } from "react/jsx-runtime";
7450
7536
  function formatSatsForRow(value) {
7451
7537
  if (!value || value <= 0 || !Number.isFinite(value)) return null;
7452
7538
  return `${value.toLocaleString("en-US")} sats`;
@@ -7478,46 +7564,46 @@ function BtcUnifiedReceive({
7478
7564
  setInvoiceStatus(null);
7479
7565
  setAccountReceiveResult(null);
7480
7566
  };
7481
- return /* @__PURE__ */ jsxs62("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7482
- /* @__PURE__ */ jsxs62("div", { className: "flex flex-col items-center gap-3", children: [
7483
- /* @__PURE__ */ jsxs62("div", { className: "relative flex flex-col items-center p-2", children: [
7484
- /* @__PURE__ */ jsx76(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
7485
- isInvoicePaid && /* @__PURE__ */ jsx76(PaidOverlay, {})
7567
+ return /* @__PURE__ */ jsxs63("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7568
+ /* @__PURE__ */ jsxs63("div", { className: "flex flex-col items-center gap-3", children: [
7569
+ /* @__PURE__ */ jsxs63("div", { className: "relative flex flex-col items-center p-2", children: [
7570
+ /* @__PURE__ */ jsx77(QrCode, { value: accountReceiveResult.qrValue, size: 200, tone: "onDark" }),
7571
+ isInvoicePaid && /* @__PURE__ */ jsx77(PaidOverlay, {})
7486
7572
  ] }),
7487
- /* @__PURE__ */ jsxs62("div", { className: "flex items-center justify-center gap-2.5", children: [
7488
- /* @__PURE__ */ jsx76(
7573
+ /* @__PURE__ */ jsxs63("div", { className: "flex items-center justify-center gap-2.5", children: [
7574
+ /* @__PURE__ */ jsx77(
7489
7575
  Button,
7490
7576
  {
7491
7577
  variant: "surface",
7492
7578
  size: "icon-xl",
7493
7579
  "aria-label": `Copy ${accountReceiveResult.qrLabel}`,
7494
7580
  onClick: () => void copyToClipboard(accountReceiveResult.qrValue),
7495
- children: /* @__PURE__ */ jsx76(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
7581
+ children: /* @__PURE__ */ jsx77(Icon, { name: isQrCopied ? "check" : "content_copy", size: "lg" })
7496
7582
  }
7497
7583
  ),
7498
- showRegenerate && /* @__PURE__ */ jsx76(
7584
+ showRegenerate && /* @__PURE__ */ jsx77(
7499
7585
  Button,
7500
7586
  {
7501
7587
  variant: "surface",
7502
7588
  size: "icon-xl",
7503
7589
  "aria-label": "New address",
7504
7590
  onClick: handleNewAddress,
7505
- children: /* @__PURE__ */ jsx76(Icon, { name: "refresh", size: "lg" })
7591
+ children: /* @__PURE__ */ jsx77(Icon, { name: "refresh", size: "lg" })
7506
7592
  }
7507
7593
  ),
7508
- /* @__PURE__ */ jsx76(
7594
+ /* @__PURE__ */ jsx77(
7509
7595
  Button,
7510
7596
  {
7511
7597
  variant: "surface",
7512
7598
  size: "icon-xl",
7513
7599
  "aria-label": "Edit amount and description",
7514
7600
  onClick: () => setShowEdit(true),
7515
- children: /* @__PURE__ */ jsx76(Icon, { name: "edit", size: "lg" })
7601
+ children: /* @__PURE__ */ jsx77(Icon, { name: "edit", size: "lg" })
7516
7602
  }
7517
7603
  )
7518
7604
  ] })
7519
7605
  ] }),
7520
- invoiceStatus && /* @__PURE__ */ jsx76(
7606
+ invoiceStatus && /* @__PURE__ */ jsx77(
7521
7607
  InvoiceStatusBanner,
7522
7608
  {
7523
7609
  isInvoicePending,
@@ -7526,11 +7612,11 @@ function BtcUnifiedReceive({
7526
7612
  invoiceStatus
7527
7613
  }
7528
7614
  ),
7529
- /* @__PURE__ */ jsxs62("div", { className: "space-y-1.5", children: [
7530
- /* @__PURE__ */ jsx76("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
7615
+ /* @__PURE__ */ jsxs63("div", { className: "space-y-1.5", children: [
7616
+ /* @__PURE__ */ jsx77("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/30", children: "Available Addresses" }),
7531
7617
  accountReceiveResult.addresses.map((address) => {
7532
7618
  const network = NETWORK_CONFIG[address.network];
7533
- return /* @__PURE__ */ jsxs62(
7619
+ return /* @__PURE__ */ jsxs63(
7534
7620
  "div",
7535
7621
  {
7536
7622
  className: cn(
@@ -7540,35 +7626,35 @@ function BtcUnifiedReceive({
7540
7626
  style: { borderLeftWidth: 3, borderLeftColor: network.color },
7541
7627
  onClick: () => void copyToClipboard(address.value),
7542
7628
  children: [
7543
- /* @__PURE__ */ jsx76("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
7544
- /* @__PURE__ */ jsxs62("div", { className: "min-w-0 flex-1", children: [
7545
- /* @__PURE__ */ jsxs62("div", { className: "flex items-center gap-1.5", children: [
7546
- /* @__PURE__ */ jsx76("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
7629
+ /* @__PURE__ */ jsx77("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", network.bg), children: network.icon }),
7630
+ /* @__PURE__ */ jsxs63("div", { className: "min-w-0 flex-1", children: [
7631
+ /* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-1.5", children: [
7632
+ /* @__PURE__ */ jsx77("p", { className: cn("text-xxs font-bold uppercase tracking-widest", network.text), children: address.label }),
7547
7633
  (() => {
7548
7634
  const amountLabel = formatSatsForRow(address.amountSats);
7549
- return amountLabel ? /* @__PURE__ */ jsx76("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;
7635
+ return amountLabel ? /* @__PURE__ */ jsx77("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;
7550
7636
  })()
7551
7637
  ] }),
7552
- /* @__PURE__ */ jsx76("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 })
7638
+ /* @__PURE__ */ jsx77("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 })
7553
7639
  ] }),
7554
- /* @__PURE__ */ jsx76(CopyIcon, { copied: copied === address.value })
7640
+ /* @__PURE__ */ jsx77(CopyIcon, { copied: copied === address.value })
7555
7641
  ]
7556
7642
  },
7557
7643
  address.network
7558
7644
  );
7559
7645
  })
7560
7646
  ] }),
7561
- /* @__PURE__ */ jsx76(
7647
+ /* @__PURE__ */ jsx77(
7562
7648
  BottomSheet,
7563
7649
  {
7564
7650
  open: showEdit,
7565
7651
  title: "Edit request",
7566
- icon: /* @__PURE__ */ jsx76(Icon, { name: "edit", size: "md" }),
7652
+ icon: /* @__PURE__ */ jsx77(Icon, { name: "edit", size: "md" }),
7567
7653
  onClose: () => setShowEdit(false),
7568
- children: /* @__PURE__ */ jsxs62("div", { className: "space-y-4", children: [
7569
- /* @__PURE__ */ jsxs62("div", { className: "space-y-1.5", children: [
7570
- /* @__PURE__ */ jsx76("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
7571
- /* @__PURE__ */ jsx76(
7654
+ children: /* @__PURE__ */ jsxs63("div", { className: "space-y-4", children: [
7655
+ /* @__PURE__ */ jsxs63("div", { className: "space-y-1.5", children: [
7656
+ /* @__PURE__ */ jsx77("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Amount (optional)" }),
7657
+ /* @__PURE__ */ jsx77(
7572
7658
  "input",
7573
7659
  {
7574
7660
  type: "text",
@@ -7579,14 +7665,14 @@ function BtcUnifiedReceive({
7579
7665
  inputMode: "decimal"
7580
7666
  }
7581
7667
  ),
7582
- amount && loading && /* @__PURE__ */ jsxs62("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
7583
- /* @__PURE__ */ jsx76("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7668
+ amount && loading && /* @__PURE__ */ jsxs63("p", { className: "flex items-center gap-1 text-xxs text-warning/70", children: [
7669
+ /* @__PURE__ */ jsx77("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7584
7670
  "Updating invoice..."
7585
7671
  ] })
7586
7672
  ] }),
7587
- onDescriptionChange && /* @__PURE__ */ jsxs62("div", { className: "space-y-1.5", children: [
7588
- /* @__PURE__ */ jsx76("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
7589
- /* @__PURE__ */ jsx76(
7673
+ onDescriptionChange && /* @__PURE__ */ jsxs63("div", { className: "space-y-1.5", children: [
7674
+ /* @__PURE__ */ jsx77("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Description (optional)" }),
7675
+ /* @__PURE__ */ jsx77(
7590
7676
  "input",
7591
7677
  {
7592
7678
  type: "text",
@@ -7597,7 +7683,7 @@ function BtcUnifiedReceive({
7597
7683
  }
7598
7684
  )
7599
7685
  ] }),
7600
- /* @__PURE__ */ jsx76(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
7686
+ /* @__PURE__ */ jsx77(Button, { variant: "cta", className: "w-full", onClick: () => setShowEdit(false), children: "Done" })
7601
7687
  ] })
7602
7688
  }
7603
7689
  )
@@ -7605,7 +7691,7 @@ function BtcUnifiedReceive({
7605
7691
  }
7606
7692
 
7607
7693
  // src/web/components/deposit-generated-view.tsx
7608
- import { jsx as jsx77, jsxs as jsxs63 } from "react/jsx-runtime";
7694
+ import { jsx as jsx78, jsxs as jsxs64 } from "react/jsx-runtime";
7609
7695
  function parseAssetAmount(amountString, asset) {
7610
7696
  const value = Number(amountString);
7611
7697
  if (!Number.isFinite(value)) return 0;
@@ -7646,10 +7732,10 @@ function DepositGeneratedView({
7646
7732
  showRegenerate = true,
7647
7733
  onRegenerate
7648
7734
  }) {
7649
- return /* @__PURE__ */ jsxs63("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7650
- (network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7651
- /* @__PURE__ */ jsx77("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ jsx77("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7652
- /* @__PURE__ */ jsx77(
7735
+ return /* @__PURE__ */ jsxs64("div", { className: "space-y-3 animate-in fade-in zoom-in-95 duration-300", children: [
7736
+ (network === "lightning" || network === "arkade" && arkSubMode === "ark") && isBtc && /* @__PURE__ */ jsxs64("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7737
+ /* @__PURE__ */ jsx78("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ jsx78("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7738
+ /* @__PURE__ */ jsx78(
7653
7739
  "input",
7654
7740
  {
7655
7741
  type: "text",
@@ -7660,16 +7746,16 @@ function DepositGeneratedView({
7660
7746
  inputMode: "decimal"
7661
7747
  }
7662
7748
  ),
7663
- amount && /* @__PURE__ */ jsx77("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ jsxs63("span", { className: "flex items-center gap-1", children: [
7664
- /* @__PURE__ */ jsx77("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7749
+ amount && /* @__PURE__ */ jsx78("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ jsxs64("span", { className: "flex items-center gap-1", children: [
7750
+ /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7665
7751
  "Updating ",
7666
7752
  network === "arkade" ? "URI" : "invoice",
7667
7753
  "..."
7668
7754
  ] }) : network === "arkade" ? `Unified URI for ${amount} ${getUnitLabel()}` : `Invoice for ${amount} ${getUnitLabel()}` })
7669
7755
  ] }),
7670
- network === "lightning" && !isBtc && /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7671
- /* @__PURE__ */ jsx77("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ jsx77("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7672
- /* @__PURE__ */ jsx77(
7756
+ network === "lightning" && !isBtc && /* @__PURE__ */ jsxs64("div", { className: "flex flex-col gap-1.5 rounded-xl border border-white/8 bg-white/3 p-2.5", children: [
7757
+ /* @__PURE__ */ jsx78("div", { className: "flex items-center justify-between px-1", children: /* @__PURE__ */ jsx78("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "Specify amount (optional)" }) }),
7758
+ /* @__PURE__ */ jsx78(
7673
7759
  "input",
7674
7760
  {
7675
7761
  type: "text",
@@ -7680,19 +7766,19 @@ function DepositGeneratedView({
7680
7766
  inputMode: "decimal"
7681
7767
  }
7682
7768
  ),
7683
- amount && /* @__PURE__ */ jsx77("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ jsxs63("span", { className: "flex items-center gap-1", children: [
7684
- /* @__PURE__ */ jsx77("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7769
+ amount && /* @__PURE__ */ jsx78("p", { className: "text-xxs text-warning/70", children: loading ? /* @__PURE__ */ jsxs64("span", { className: "flex items-center gap-1", children: [
7770
+ /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined animate-spin text-icon-xxs", children: "progress_activity" }),
7685
7771
  "Updating invoice..."
7686
7772
  ] }) : `Invoice for ${amount} ${getUnitLabel()}` }),
7687
- amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ jsxs63("p", { className: "rounded-lg border border-danger/20 bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
7773
+ amount && maxDepositAmount > 0 && parseAssetAmount(amount, selectedAsset) > maxDepositAmount && /* @__PURE__ */ jsxs64("p", { className: "rounded-lg border border-danger/20 bg-danger/10 px-2.5 py-1.5 text-xxs text-danger", children: [
7688
7774
  "Exceeds max: ",
7689
7775
  formatAssetAmount(maxDepositAmount, selectedAsset),
7690
7776
  " ",
7691
7777
  getUnitLabel()
7692
7778
  ] })
7693
7779
  ] }),
7694
- /* @__PURE__ */ jsxs63("div", { className: "flex flex-col items-center gap-3", children: [
7695
- /* @__PURE__ */ jsxs63(
7780
+ /* @__PURE__ */ jsxs64("div", { className: "flex flex-col items-center gap-3", children: [
7781
+ /* @__PURE__ */ jsxs64(
7696
7782
  "div",
7697
7783
  {
7698
7784
  className: cn(
@@ -7701,7 +7787,7 @@ function DepositGeneratedView({
7701
7787
  ),
7702
7788
  style: net.qrGlow,
7703
7789
  children: [
7704
- showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ jsxs63(
7790
+ showQrNetworkBadge && network !== "spark" && network !== "arkade" && /* @__PURE__ */ jsxs64(
7705
7791
  "div",
7706
7792
  {
7707
7793
  className: cn(
@@ -7711,21 +7797,21 @@ function DepositGeneratedView({
7711
7797
  ),
7712
7798
  children: [
7713
7799
  net.icon,
7714
- /* @__PURE__ */ jsx77("span", { children: net.label })
7800
+ /* @__PURE__ */ jsx78("span", { children: net.label })
7715
7801
  ]
7716
7802
  }
7717
7803
  ),
7718
- /* @__PURE__ */ jsx77(QrCode, { value: address, size: 188 }),
7719
- isInvoicePaid && /* @__PURE__ */ jsx77(PaidOverlay, {}),
7804
+ /* @__PURE__ */ jsx78(QrCode, { value: address, size: 188 }),
7805
+ isInvoicePaid && /* @__PURE__ */ jsx78(PaidOverlay, {}),
7720
7806
  loading && !isInvoicePaid && // Loading scrim — sits over the QR while a fresh address/invoice
7721
7807
  // is being fetched (e.g. after the New Address button).
7722
- /* @__PURE__ */ jsx77("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ jsx77("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
7808
+ /* @__PURE__ */ jsx78("div", { className: "absolute inset-0 flex items-center justify-center rounded-2xl bg-white/80 backdrop-blur-sm", children: /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined animate-spin text-icon-3xl text-network-bitcoin", children: "progress_activity" }) })
7723
7809
  ]
7724
7810
  }
7725
7811
  ),
7726
7812
  (() => {
7727
7813
  const isAddressCopied = copied === address;
7728
- return /* @__PURE__ */ jsxs63(
7814
+ return /* @__PURE__ */ jsxs64(
7729
7815
  "button",
7730
7816
  {
7731
7817
  type: "button",
@@ -7738,14 +7824,14 @@ function DepositGeneratedView({
7738
7824
  void copyToClipboard(address);
7739
7825
  },
7740
7826
  children: [
7741
- /* @__PURE__ */ jsx77(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
7827
+ /* @__PURE__ */ jsx78(Icon, { name: isAddressCopied ? "check" : "content_copy", size: "xs" }),
7742
7828
  isAddressCopied ? "Copied" : network === "lightning" ? "Copy Invoice" : "Copy Address"
7743
7829
  ]
7744
7830
  }
7745
7831
  );
7746
7832
  })()
7747
7833
  ] }),
7748
- network === "lightning" && invoiceStatus && /* @__PURE__ */ jsx77(
7834
+ network === "lightning" && invoiceStatus && /* @__PURE__ */ jsx78(
7749
7835
  InvoiceStatusBanner,
7750
7836
  {
7751
7837
  isInvoicePending,
@@ -7754,7 +7840,7 @@ function DepositGeneratedView({
7754
7840
  invoiceStatus
7755
7841
  }
7756
7842
  ),
7757
- /* @__PURE__ */ jsxs63(
7843
+ /* @__PURE__ */ jsxs64(
7758
7844
  "div",
7759
7845
  {
7760
7846
  "data-testid": "deposit-generated-address",
@@ -7767,16 +7853,16 @@ function DepositGeneratedView({
7767
7853
  style: { borderLeftWidth: 3, borderLeftColor: net.color },
7768
7854
  onClick: () => void copyToClipboard(address),
7769
7855
  children: [
7770
- /* @__PURE__ */ jsx77("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
7771
- /* @__PURE__ */ jsxs63("div", { className: "min-w-0 flex-1", children: [
7772
- /* @__PURE__ */ jsx77("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ jsx77("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
7773
- /* @__PURE__ */ jsx77("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 })
7856
+ /* @__PURE__ */ jsx78("div", { className: cn("flex size-5 flex-shrink-0 items-center justify-center rounded-md", net.bg), children: net.icon }),
7857
+ /* @__PURE__ */ jsxs64("div", { className: "min-w-0 flex-1", children: [
7858
+ /* @__PURE__ */ jsx78("p", { className: cn("text-xxs font-bold uppercase tracking-widest", net.text), children: /* @__PURE__ */ jsx78("span", { "data-testid": "deposit-address-label", children: addressLabel }) }),
7859
+ /* @__PURE__ */ jsx78("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 })
7774
7860
  ] }),
7775
- /* @__PURE__ */ jsx77(CopyIcon, { copied: copied === address })
7861
+ /* @__PURE__ */ jsx78(CopyIcon, { copied: copied === address })
7776
7862
  ]
7777
7863
  }
7778
7864
  ),
7779
- recipientId && /* @__PURE__ */ jsxs63(
7865
+ recipientId && /* @__PURE__ */ jsxs64(
7780
7866
  "div",
7781
7867
  {
7782
7868
  className: cn(
@@ -7786,16 +7872,16 @@ function DepositGeneratedView({
7786
7872
  style: { borderLeftWidth: 3, borderLeftColor: "var(--primary)" },
7787
7873
  onClick: () => void copyToClipboard(recipientId),
7788
7874
  children: [
7789
- /* @__PURE__ */ jsx77("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ jsx77(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
7790
- /* @__PURE__ */ jsxs63("div", { className: "min-w-0 flex-1", children: [
7791
- /* @__PURE__ */ jsx77("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
7792
- /* @__PURE__ */ jsx77("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 })
7875
+ /* @__PURE__ */ jsx78("div", { className: "flex size-5 flex-shrink-0 items-center justify-center rounded-md bg-primary/15", children: /* @__PURE__ */ jsx78(Icon, { name: "person", size: "xs", className: "text-primary" }) }),
7876
+ /* @__PURE__ */ jsxs64("div", { className: "min-w-0 flex-1", children: [
7877
+ /* @__PURE__ */ jsx78("p", { className: "text-xxs font-bold uppercase tracking-widest text-primary", children: "Recipient ID" }),
7878
+ /* @__PURE__ */ jsx78("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 })
7793
7879
  ] }),
7794
- /* @__PURE__ */ jsx77(CopyIcon, { copied: copied === recipientId })
7880
+ /* @__PURE__ */ jsx78(CopyIcon, { copied: copied === recipientId })
7795
7881
  ]
7796
7882
  }
7797
7883
  ),
7798
- showRegenerate && /* @__PURE__ */ jsx77("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ jsx77(
7884
+ showRegenerate && /* @__PURE__ */ jsx78("div", { className: "flex justify-center pt-1", children: /* @__PURE__ */ jsx78(
7799
7885
  "button",
7800
7886
  {
7801
7887
  type: "button",
@@ -7813,7 +7899,7 @@ function DepositGeneratedView({
7813
7899
  setInvoiceStatus(null);
7814
7900
  },
7815
7901
  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",
7816
- children: /* @__PURE__ */ jsx77(
7902
+ children: /* @__PURE__ */ jsx78(
7817
7903
  "span",
7818
7904
  {
7819
7905
  className: cn("material-symbols-outlined text-icon-md", loading && "animate-spin"),
@@ -7826,7 +7912,7 @@ function DepositGeneratedView({
7826
7912
  }
7827
7913
 
7828
7914
  // src/web/components/deposit-pre-generation.tsx
7829
- import { jsx as jsx78, jsxs as jsxs64 } from "react/jsx-runtime";
7915
+ import { jsx as jsx79, jsxs as jsxs65 } from "react/jsx-runtime";
7830
7916
  var ACCOUNT_TITLES = {
7831
7917
  RGB: "RGB & Lightning",
7832
7918
  SPARK: "Spark",
@@ -7871,58 +7957,58 @@ function DepositPreGeneration({
7871
7957
  }) {
7872
7958
  const method = METHOD_META2[currentMethod];
7873
7959
  const isRgbOnchain = network === "onchain" && !isBtc;
7874
- return /* @__PURE__ */ jsxs64("div", { className: "space-y-3", children: [
7875
- showReceiveSummary && /* @__PURE__ */ jsxs64("div", { className: "rounded-2xl border border-white/8 bg-white/4 p-3", children: [
7876
- /* @__PURE__ */ jsx78("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
7877
- /* @__PURE__ */ jsxs64("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
7878
- /* @__PURE__ */ jsxs64("div", { className: "flex items-center justify-between gap-3", children: [
7879
- /* @__PURE__ */ jsx78("span", { className: "text-white/45", children: "Asset" }),
7880
- /* @__PURE__ */ jsx78("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
7960
+ return /* @__PURE__ */ jsxs65("div", { className: "space-y-3", children: [
7961
+ showReceiveSummary && /* @__PURE__ */ jsxs65("div", { className: "rounded-2xl border border-white/8 bg-white/4 p-3", children: [
7962
+ /* @__PURE__ */ jsx79("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Receive Summary" }),
7963
+ /* @__PURE__ */ jsxs65("div", { className: "mt-2 grid grid-cols-1 gap-2 text-xs", children: [
7964
+ /* @__PURE__ */ jsxs65("div", { className: "flex items-center justify-between gap-3", children: [
7965
+ /* @__PURE__ */ jsx79("span", { className: "text-white/45", children: "Asset" }),
7966
+ /* @__PURE__ */ jsx79("span", { className: "font-bold text-white", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
7881
7967
  ] }),
7882
- /* @__PURE__ */ jsxs64("div", { className: "flex items-center justify-between gap-3", children: [
7883
- /* @__PURE__ */ jsx78("span", { className: "text-white/45", children: "Destination account" }),
7884
- /* @__PURE__ */ jsx78("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
7968
+ /* @__PURE__ */ jsxs65("div", { className: "flex items-center justify-between gap-3", children: [
7969
+ /* @__PURE__ */ jsx79("span", { className: "text-white/45", children: "Destination account" }),
7970
+ /* @__PURE__ */ jsx79("span", { className: "font-bold text-white", children: ACCOUNT_TITLES[selectedAccount] })
7885
7971
  ] }),
7886
- /* @__PURE__ */ jsxs64("div", { className: "flex items-center justify-between gap-3", children: [
7887
- /* @__PURE__ */ jsx78("span", { className: "text-white/45", children: "Transfer method" }),
7888
- /* @__PURE__ */ jsx78("span", { className: "font-bold text-white", children: method.label })
7972
+ /* @__PURE__ */ jsxs65("div", { className: "flex items-center justify-between gap-3", children: [
7973
+ /* @__PURE__ */ jsx79("span", { className: "text-white/45", children: "Transfer method" }),
7974
+ /* @__PURE__ */ jsx79("span", { className: "font-bold text-white", children: method.label })
7889
7975
  ] }),
7890
- /* @__PURE__ */ jsx78("p", { className: "text-tiny text-white/35", children: method.summary })
7976
+ /* @__PURE__ */ jsx79("p", { className: "text-tiny text-white/35", children: method.summary })
7891
7977
  ] })
7892
7978
  ] }),
7893
- channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ jsxs64("div", { className: "flex items-center gap-2.5 rounded-xl border bg-card p-3", children: [
7894
- /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
7895
- /* @__PURE__ */ jsx78("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
7979
+ channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ jsxs65("div", { className: "flex items-center gap-2.5 rounded-xl border bg-card p-3", children: [
7980
+ /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined animate-spin text-icon-lg text-primary", children: "progress_activity" }),
7981
+ /* @__PURE__ */ jsx79("span", { className: "text-xs font-medium text-white/60", children: "Checking channel availability..." })
7896
7982
  ] }),
7897
- showChannelWarning && /* @__PURE__ */ jsxs64(AlertBanner, { variant: "warning", children: [
7898
- /* @__PURE__ */ jsx78("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
7899
- /* @__PURE__ */ jsx78("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
7983
+ showChannelWarning && /* @__PURE__ */ jsxs65(AlertBanner, { variant: "warning", children: [
7984
+ /* @__PURE__ */ jsx79("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Lightning Channels" }),
7985
+ /* @__PURE__ */ jsx79("p", { className: "text-tiny text-warning/70", children: "Only on-chain deposits are available." })
7900
7986
  ] }),
7901
- showLiquidityWarning && /* @__PURE__ */ jsxs64(AlertBanner, { variant: "warning", children: [
7902
- /* @__PURE__ */ jsx78("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
7903
- /* @__PURE__ */ jsxs64("p", { className: "text-tiny text-warning/70", children: [
7987
+ showLiquidityWarning && /* @__PURE__ */ jsxs65(AlertBanner, { variant: "warning", children: [
7988
+ /* @__PURE__ */ jsx79("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "No Inbound Liquidity" }),
7989
+ /* @__PURE__ */ jsxs65("p", { className: "text-tiny text-warning/70", children: [
7904
7990
  "No channels with inbound capacity for ",
7905
7991
  selectedAsset?.ticker ?? "this asset",
7906
7992
  "."
7907
7993
  ] })
7908
7994
  ] }),
7909
- isAutoGenerate && loading && /* @__PURE__ */ jsxs64("div", { className: "flex flex-col items-center gap-4 py-10", children: [
7910
- /* @__PURE__ */ jsx78("div", { className: cn("flex size-16 items-center justify-center rounded-2xl border", net.bg, net.border), children: /* @__PURE__ */ jsx78("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
7911
- /* @__PURE__ */ jsxs64("div", { className: "space-y-1 text-center", children: [
7912
- /* @__PURE__ */ jsxs64("p", { className: "text-sm font-bold text-muted-foreground", children: [
7995
+ isAutoGenerate && loading && /* @__PURE__ */ jsxs65("div", { className: "flex flex-col items-center gap-4 py-10", children: [
7996
+ /* @__PURE__ */ jsx79("div", { className: cn("flex size-16 items-center justify-center rounded-2xl border", net.bg, net.border), children: /* @__PURE__ */ jsx79("span", { className: cn("material-symbols-outlined animate-spin text-icon-4xl", net.text), children: "progress_activity" }) }),
7997
+ /* @__PURE__ */ jsxs65("div", { className: "space-y-1 text-center", children: [
7998
+ /* @__PURE__ */ jsxs65("p", { className: "text-sm font-bold text-muted-foreground", children: [
7913
7999
  "Generating ",
7914
8000
  network === "lightning" ? "invoice" : "address",
7915
8001
  "..."
7916
8002
  ] }),
7917
- /* @__PURE__ */ jsxs64("p", { className: "text-xs text-white/30", children: [
8003
+ /* @__PURE__ */ jsxs65("p", { className: "text-xs text-white/30", children: [
7918
8004
  net.label,
7919
8005
  " network"
7920
8006
  ] })
7921
8007
  ] })
7922
8008
  ] }),
7923
- isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ jsxs64("div", { className: "space-y-1.5", children: [
7924
- /* @__PURE__ */ jsx78("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
7925
- /* @__PURE__ */ jsx78(
8009
+ isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ jsxs65("div", { className: "space-y-1.5", children: [
8010
+ /* @__PURE__ */ jsx79("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: "RGB Asset ID - Optional" }),
8011
+ /* @__PURE__ */ jsx79(
7926
8012
  "input",
7927
8013
  {
7928
8014
  type: "text",
@@ -7934,15 +8020,15 @@ function DepositPreGeneration({
7934
8020
  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"
7935
8021
  }
7936
8022
  ),
7937
- /* @__PURE__ */ jsx78("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." })
8023
+ /* @__PURE__ */ jsx79("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." })
7938
8024
  ] }),
7939
- isRgbOnchain && /* @__PURE__ */ jsxs64("div", { className: "space-y-2.5 rounded-xl border bg-card p-3", children: [
7940
- /* @__PURE__ */ jsxs64("div", { className: "flex items-center justify-between gap-3", children: [
7941
- /* @__PURE__ */ jsxs64("div", { className: "min-w-0 flex-1", children: [
7942
- /* @__PURE__ */ jsx78("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
7943
- /* @__PURE__ */ jsx78("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
8025
+ isRgbOnchain && /* @__PURE__ */ jsxs65("div", { className: "space-y-2.5 rounded-xl border bg-card p-3", children: [
8026
+ /* @__PURE__ */ jsxs65("div", { className: "flex items-center justify-between gap-3", children: [
8027
+ /* @__PURE__ */ jsxs65("div", { className: "min-w-0 flex-1", children: [
8028
+ /* @__PURE__ */ jsx79("h4", { className: "text-xs font-bold text-white", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
8029
+ /* @__PURE__ */ jsx79("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
7944
8030
  ] }),
7945
- /* @__PURE__ */ jsx78(
8031
+ /* @__PURE__ */ jsx79(
7946
8032
  "button",
7947
8033
  {
7948
8034
  type: "button",
@@ -7952,7 +8038,7 @@ function DepositPreGeneration({
7952
8038
  usePrivacy ? "bg-primary" : "bg-white/10"
7953
8039
  ),
7954
8040
  onClick: () => setUsePrivacy(!usePrivacy),
7955
- children: /* @__PURE__ */ jsx78(
8041
+ children: /* @__PURE__ */ jsx79(
7956
8042
  "span",
7957
8043
  {
7958
8044
  className: cn(
@@ -7964,8 +8050,8 @@ function DepositPreGeneration({
7964
8050
  }
7965
8051
  )
7966
8052
  ] }),
7967
- /* @__PURE__ */ jsx78("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." }),
7968
- usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ jsxs64(
8053
+ /* @__PURE__ */ jsx79("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." }),
8054
+ usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ jsxs65(
7969
8055
  "div",
7970
8056
  {
7971
8057
  className: cn(
@@ -7973,26 +8059,26 @@ function DepositPreGeneration({
7973
8059
  colorableUtxoCount > 0 ? "border-success/20 bg-success/5 text-success/80" : "border-warning/20 bg-warning/5 text-warning/80"
7974
8060
  ),
7975
8061
  children: [
7976
- /* @__PURE__ */ jsx78("span", { className: "font-medium", children: "Available colorable UTXOs" }),
7977
- /* @__PURE__ */ jsx78("span", { className: "font-mono font-bold", children: colorableUtxoCount })
8062
+ /* @__PURE__ */ jsx79("span", { className: "font-medium", children: "Available colorable UTXOs" }),
8063
+ /* @__PURE__ */ jsx79("span", { className: "font-mono font-bold", children: colorableUtxoCount })
7978
8064
  ]
7979
8065
  }
7980
8066
  ),
7981
- usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ jsx78("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." })
8067
+ usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ jsx79("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." })
7982
8068
  ] }),
7983
- network === "onchain" && !isBtc && /* @__PURE__ */ jsxs64("div", { className: "space-y-1.5", children: [
7984
- /* @__PURE__ */ jsxs64("div", { className: "flex items-center justify-between", children: [
7985
- /* @__PURE__ */ jsxs64("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
8069
+ network === "onchain" && !isBtc && /* @__PURE__ */ jsxs65("div", { className: "space-y-1.5", children: [
8070
+ /* @__PURE__ */ jsxs65("div", { className: "flex items-center justify-between", children: [
8071
+ /* @__PURE__ */ jsxs65("label", { className: "text-xxs font-bold uppercase tracking-widest text-white/40", children: [
7986
8072
  "Amount (",
7987
8073
  getUnitLabel(),
7988
8074
  ") - Optional"
7989
8075
  ] }),
7990
- selectedAsset && /* @__PURE__ */ jsxs64("span", { className: "text-xxs text-white/30", children: [
8076
+ selectedAsset && /* @__PURE__ */ jsxs65("span", { className: "text-xxs text-white/30", children: [
7991
8077
  selectedAsset.precision ?? 0,
7992
8078
  " decimals"
7993
8079
  ] })
7994
8080
  ] }),
7995
- /* @__PURE__ */ jsx78(
8081
+ /* @__PURE__ */ jsx79(
7996
8082
  "input",
7997
8083
  {
7998
8084
  type: "text",
@@ -8004,18 +8090,18 @@ function DepositPreGeneration({
8004
8090
  }
8005
8091
  )
8006
8092
  ] }),
8007
- needsColorableUtxos && /* @__PURE__ */ jsxs64(AlertBanner, { variant: "warning", children: [
8008
- /* @__PURE__ */ jsx78("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8009
- /* @__PURE__ */ jsx78("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." })
8093
+ needsColorableUtxos && /* @__PURE__ */ jsxs65(AlertBanner, { variant: "warning", children: [
8094
+ /* @__PURE__ */ jsx79("p", { className: "mb-0.5 text-xs font-bold text-warning", children: "Colorable UTXOs Required" }),
8095
+ /* @__PURE__ */ jsx79("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." })
8010
8096
  ] }),
8011
- !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ jsx78(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ jsxs64("span", { className: "flex items-center justify-center gap-2", children: [
8012
- /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8097
+ !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ jsx79(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ jsxs65("span", { className: "flex items-center justify-center gap-2", children: [
8098
+ /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined text-icon-md", children: "add_circle" }),
8013
8099
  "Create Colorable UTXOs"
8014
- ] }) }) : /* @__PURE__ */ jsx78(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ jsxs64("span", { className: "flex items-center justify-center gap-2", children: [
8015
- /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8100
+ ] }) }) : /* @__PURE__ */ jsx79(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ jsxs65("span", { className: "flex items-center justify-center gap-2", children: [
8101
+ /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined animate-spin text-icon-md", children: "progress_activity" }),
8016
8102
  "Generating..."
8017
- ] }) : /* @__PURE__ */ jsxs64("span", { className: "flex items-center justify-center gap-2", children: [
8018
- /* @__PURE__ */ jsx78("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8103
+ ] }) : /* @__PURE__ */ jsxs65("span", { className: "flex items-center justify-center gap-2", children: [
8104
+ /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined text-icon-md", children: "qr_code_2" }),
8019
8105
  "Generate Address"
8020
8106
  ] }) }))
8021
8107
  ] });
@@ -8023,7 +8109,7 @@ function DepositPreGeneration({
8023
8109
 
8024
8110
  // src/web/components/deposit-asset-selection.tsx
8025
8111
  import { useEffect as useEffect10, useState as useState16 } from "react";
8026
- import { jsx as jsx79, jsxs as jsxs65 } from "react/jsx-runtime";
8112
+ import { jsx as jsx80, jsxs as jsxs66 } from "react/jsx-runtime";
8027
8113
  var ADD_ASSET_SUBTITLE = {
8028
8114
  RGB: "RGB asset on Bitcoin",
8029
8115
  SPARK: "Spark-native asset",
@@ -8100,8 +8186,8 @@ function DepositAssetSelection({
8100
8186
  titleHoverClass: "group-hover:text-network-arkade"
8101
8187
  }
8102
8188
  ].filter((option) => option.enabled);
8103
- return /* @__PURE__ */ jsxs65("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8104
- /* @__PURE__ */ jsx79("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ jsx79(
8189
+ return /* @__PURE__ */ jsxs66("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8190
+ /* @__PURE__ */ jsx80("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ jsx80(
8105
8191
  Button,
8106
8192
  {
8107
8193
  type: "button",
@@ -8109,10 +8195,10 @@ function DepositAssetSelection({
8109
8195
  size: "icon-xl",
8110
8196
  onClick: () => setCurrentView("dashboard"),
8111
8197
  "aria-label": "Go back",
8112
- children: /* @__PURE__ */ jsx79(Icon, { name: "arrow_back", size: "xl" })
8198
+ children: /* @__PURE__ */ jsx80(Icon, { name: "arrow_back", size: "xl" })
8113
8199
  }
8114
8200
  ) }),
8115
- /* @__PURE__ */ jsx79("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ jsx79(
8201
+ /* @__PURE__ */ jsx80("div", { className: "flex-shrink-0 px-5 pb-3 pt-4", children: /* @__PURE__ */ jsx80(
8116
8202
  DotPagination,
8117
8203
  {
8118
8204
  count: 2,
@@ -8120,8 +8206,8 @@ function DepositAssetSelection({
8120
8206
  ariaLabel: "Deposit step 1 of 2: select asset"
8121
8207
  }
8122
8208
  ) }),
8123
- /* @__PURE__ */ jsx79("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ jsxs65("div", { className: "relative", children: [
8124
- /* @__PURE__ */ jsx79(
8209
+ /* @__PURE__ */ jsx80("div", { className: "flex-shrink-0 px-5 pb-3", children: /* @__PURE__ */ jsxs66("div", { className: "relative", children: [
8210
+ /* @__PURE__ */ jsx80(
8125
8211
  Icon,
8126
8212
  {
8127
8213
  name: "search",
@@ -8129,7 +8215,7 @@ function DepositAssetSelection({
8129
8215
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-white/30"
8130
8216
  }
8131
8217
  ),
8132
- /* @__PURE__ */ jsx79(
8218
+ /* @__PURE__ */ jsx80(
8133
8219
  "input",
8134
8220
  {
8135
8221
  autoFocus: true,
@@ -8142,8 +8228,8 @@ function DepositAssetSelection({
8142
8228
  }
8143
8229
  )
8144
8230
  ] }) }),
8145
- /* @__PURE__ */ jsxs65(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8146
- btcAsset && /* @__PURE__ */ jsxs65(
8231
+ /* @__PURE__ */ jsxs66(ScrollArea, { className: "min-h-0 flex-1", viewportClassName: "space-y-1.5 px-5 pb-3", children: [
8232
+ btcAsset && /* @__PURE__ */ jsxs66(
8147
8233
  "button",
8148
8234
  {
8149
8235
  type: "button",
@@ -8151,27 +8237,27 @@ function DepositAssetSelection({
8151
8237
  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",
8152
8238
  onClick: () => onSelectAsset(btcAsset),
8153
8239
  children: [
8154
- /* @__PURE__ */ jsx79(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8155
- /* @__PURE__ */ jsxs65("div", { className: "min-w-0 flex-1 text-left", children: [
8156
- /* @__PURE__ */ jsx79("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8157
- /* @__PURE__ */ jsx79("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8240
+ /* @__PURE__ */ jsx80(AssetIcon, { ticker: "BTC", size: 40, className: "flex-shrink-0" }),
8241
+ /* @__PURE__ */ jsxs66("div", { className: "min-w-0 flex-1 text-left", children: [
8242
+ /* @__PURE__ */ jsx80("div", { className: "font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: "Bitcoin" }),
8243
+ /* @__PURE__ */ jsx80("div", { className: "mt-0.5 text-xs text-white/40", children: "Choose destination account next" })
8158
8244
  ] }),
8159
- /* @__PURE__ */ jsxs65("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
8160
- /* @__PURE__ */ jsx79(NetworkBadge, { network: "L1", size: "sm" }),
8161
- /* @__PURE__ */ jsx79(NetworkBadge, { network: "LN", size: "sm" }),
8162
- isSparkConnected && /* @__PURE__ */ jsx79(NetworkBadge, { network: "Spark", size: "sm" }),
8163
- isArkadeConnected && /* @__PURE__ */ jsx79(NetworkBadge, { network: "Arkade", size: "sm" })
8245
+ /* @__PURE__ */ jsxs66("div", { className: "hidden min-w-0 max-w-[42%] flex-shrink flex-wrap justify-end gap-1 min-[380px]:flex", children: [
8246
+ /* @__PURE__ */ jsx80(NetworkBadge, { network: "L1", size: "sm" }),
8247
+ /* @__PURE__ */ jsx80(NetworkBadge, { network: "LN", size: "sm" }),
8248
+ isSparkConnected && /* @__PURE__ */ jsx80(NetworkBadge, { network: "Spark", size: "sm" }),
8249
+ isArkadeConnected && /* @__PURE__ */ jsx80(NetworkBadge, { network: "Arkade", size: "sm" })
8164
8250
  ] }),
8165
- /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined flex-shrink-0 text-icon-md text-white/20 transition-colors group-hover:text-white/50", children: "arrow_forward" })
8251
+ /* @__PURE__ */ jsx80("span", { className: "material-symbols-outlined flex-shrink-0 text-icon-md text-white/20 transition-colors group-hover:text-white/50", children: "arrow_forward" })
8166
8252
  ]
8167
8253
  }
8168
8254
  ),
8169
- noResults ? /* @__PURE__ */ jsxs65("div", { className: "py-8 text-center text-sm text-white/30", children: [
8255
+ noResults ? /* @__PURE__ */ jsxs66("div", { className: "py-8 text-center text-sm text-white/30", children: [
8170
8256
  'No assets match "',
8171
8257
  searchQuery,
8172
8258
  '"'
8173
- ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ jsxs65("div", { className: "space-y-1.5 pt-1", children: [
8174
- /* @__PURE__ */ jsxs65(
8259
+ ] }) : ownedAssetsCount > 0 ? /* @__PURE__ */ jsxs66("div", { className: "space-y-1.5 pt-1", children: [
8260
+ /* @__PURE__ */ jsxs66(
8175
8261
  "button",
8176
8262
  {
8177
8263
  type: "button",
@@ -8184,17 +8270,17 @@ function DepositAssetSelection({
8184
8270
  isSearching && "cursor-default"
8185
8271
  ),
8186
8272
  children: [
8187
- /* @__PURE__ */ jsx79("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8188
- /* @__PURE__ */ jsx79("span", { className: "inline-flex size-5 items-center justify-center rounded-full bg-white/10 text-tiny font-bold text-white/70", children: ownedAssetsCount }),
8189
- /* @__PURE__ */ jsx79("div", { className: "flex-1" }),
8190
- !isSearching && /* @__PURE__ */ jsx79(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8273
+ /* @__PURE__ */ jsx80("span", { className: "text-xxs font-bold uppercase tracking-[0.18em] text-white/55", children: "Your assets" }),
8274
+ /* @__PURE__ */ jsx80("span", { className: "inline-flex size-5 items-center justify-center rounded-full bg-white/10 text-tiny font-bold text-white/70", children: ownedAssetsCount }),
8275
+ /* @__PURE__ */ jsx80("div", { className: "flex-1" }),
8276
+ !isSearching && /* @__PURE__ */ jsx80(Icon, { name: showOwnedAssets ? "expand_less" : "expand_more", size: "md", className: "text-white/40" })
8191
8277
  ]
8192
8278
  }
8193
8279
  ),
8194
- showOwnedAssets && /* @__PURE__ */ jsx79("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
8280
+ showOwnedAssets && /* @__PURE__ */ jsx80("div", { className: "space-y-1.5 duration-200 animate-in fade-in slide-in-from-top-1", children: ownedAssets.map((asset) => {
8195
8281
  const protocolBadge = asset.accountId ? PROTOCOL_BADGE[asset.accountId] : null;
8196
8282
  const balance = asset.balance ?? 0;
8197
- return /* @__PURE__ */ jsxs65(
8283
+ return /* @__PURE__ */ jsxs66(
8198
8284
  "button",
8199
8285
  {
8200
8286
  type: "button",
@@ -8202,11 +8288,11 @@ function DepositAssetSelection({
8202
8288
  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",
8203
8289
  onClick: () => onSelectAsset(asset),
8204
8290
  children: [
8205
- /* @__PURE__ */ jsx79(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8206
- /* @__PURE__ */ jsxs65("div", { className: "min-w-0 flex-1 text-left", children: [
8207
- /* @__PURE__ */ jsxs65("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8208
- /* @__PURE__ */ jsx79("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
8209
- protocolBadge && /* @__PURE__ */ jsx79(
8291
+ /* @__PURE__ */ jsx80(AssetIcon, { ticker: asset.ticker, size: 40, className: "flex-shrink-0" }),
8292
+ /* @__PURE__ */ jsxs66("div", { className: "min-w-0 flex-1 text-left", children: [
8293
+ /* @__PURE__ */ jsxs66("div", { className: "flex min-w-0 items-center gap-1.5", children: [
8294
+ /* @__PURE__ */ jsx80("span", { className: "truncate font-bold tracking-wide text-white transition-colors group-hover:text-primary/90", children: asset.ticker }),
8295
+ protocolBadge && /* @__PURE__ */ jsx80(
8210
8296
  "span",
8211
8297
  {
8212
8298
  className: cn(
@@ -8217,36 +8303,36 @@ function DepositAssetSelection({
8217
8303
  }
8218
8304
  )
8219
8305
  ] }),
8220
- /* @__PURE__ */ jsx79("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8306
+ /* @__PURE__ */ jsx80("div", { className: "mt-0.5 truncate text-xs text-white/40", children: asset.name ?? "Asset" })
8221
8307
  ] }),
8222
- balance > 0 && /* @__PURE__ */ jsxs65("div", { className: "flex-shrink-0 text-right", children: [
8223
- /* @__PURE__ */ jsx79("div", { className: "font-mono text-xs font-bold text-white", children: formatAssetBalance(asset) }),
8224
- /* @__PURE__ */ jsx79("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8308
+ balance > 0 && /* @__PURE__ */ jsxs66("div", { className: "flex-shrink-0 text-right", children: [
8309
+ /* @__PURE__ */ jsx80("div", { className: "font-mono text-xs font-bold text-white", children: formatAssetBalance(asset) }),
8310
+ /* @__PURE__ */ jsx80("div", { className: "mt-0.5 text-tiny uppercase tracking-wider text-white/35", children: asset.ticker })
8225
8311
  ] }),
8226
- /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined flex-shrink-0 text-icon-sm text-white/20 transition-colors group-hover:text-white/50", children: "arrow_forward" })
8312
+ /* @__PURE__ */ jsx80("span", { className: "material-symbols-outlined flex-shrink-0 text-icon-sm text-white/20 transition-colors group-hover:text-white/50", children: "arrow_forward" })
8227
8313
  ]
8228
8314
  },
8229
8315
  asset.asset_id
8230
8316
  );
8231
8317
  }) })
8232
8318
  ] }) : null,
8233
- !searchQuery && /* @__PURE__ */ jsx79("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ jsxs65(
8319
+ !searchQuery && /* @__PURE__ */ jsx80("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ jsxs66(
8234
8320
  "button",
8235
8321
  {
8236
8322
  type: "button",
8237
8323
  onClick: () => setCurrentView("bridge"),
8238
8324
  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",
8239
8325
  children: [
8240
- /* @__PURE__ */ jsx79("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
8241
- /* @__PURE__ */ jsxs65("div", { className: "flex-1 text-left", children: [
8242
- /* @__PURE__ */ jsx79("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
8243
- /* @__PURE__ */ jsx79("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8326
+ /* @__PURE__ */ jsx80("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/20", children: /* @__PURE__ */ jsx80("span", { className: "material-symbols-outlined text-lg text-primary", children: "swap_calls" }) }),
8327
+ /* @__PURE__ */ jsxs66("div", { className: "flex-1 text-left", children: [
8328
+ /* @__PURE__ */ jsx80("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Bridge from another chain" }),
8329
+ /* @__PURE__ */ jsx80("p", { className: "text-xxs leading-tight text-white/40", children: "USDC, USDT, ETH, SOL via Flashnet" })
8244
8330
  ] }),
8245
- /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8331
+ /* @__PURE__ */ jsx80("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8246
8332
  ]
8247
8333
  }
8248
8334
  ) }),
8249
- !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ jsx79("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ jsxs65(
8335
+ !searchQuery && newAssetOptions.length > 0 && /* @__PURE__ */ jsx80("div", { className: "pb-1 pt-2", children: /* @__PURE__ */ jsxs66(
8250
8336
  "button",
8251
8337
  {
8252
8338
  type: "button",
@@ -8254,27 +8340,27 @@ function DepositAssetSelection({
8254
8340
  onClick: () => setShowAddAssetModal(true),
8255
8341
  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",
8256
8342
  children: [
8257
- /* @__PURE__ */ jsx79("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ jsx79(Icon, { name: "add", size: "md", className: "text-primary" }) }),
8258
- /* @__PURE__ */ jsxs65("div", { className: "flex-1 text-left", children: [
8259
- /* @__PURE__ */ jsx79("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8260
- /* @__PURE__ */ jsxs65("p", { className: "text-xxs leading-tight text-white/40", children: [
8343
+ /* @__PURE__ */ jsx80("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/15", children: /* @__PURE__ */ jsx80(Icon, { name: "add", size: "md", className: "text-primary" }) }),
8344
+ /* @__PURE__ */ jsxs66("div", { className: "flex-1 text-left", children: [
8345
+ /* @__PURE__ */ jsx80("p", { className: "text-sm font-semibold text-white transition-colors group-hover:text-primary", children: "Add an asset" }),
8346
+ /* @__PURE__ */ jsxs66("p", { className: "text-xxs leading-tight text-white/40", children: [
8261
8347
  "Receive a new ",
8262
8348
  newAssetOptions.map((o) => o.ticker).join(", "),
8263
8349
  " asset"
8264
8350
  ] })
8265
8351
  ] }),
8266
- /* @__PURE__ */ jsx79("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8352
+ /* @__PURE__ */ jsx80("span", { className: "material-symbols-outlined text-lg text-white/30 transition-colors group-hover:text-primary", children: "arrow_forward" })
8267
8353
  ]
8268
8354
  }
8269
8355
  ) })
8270
8356
  ] }),
8271
- /* @__PURE__ */ jsx79(
8357
+ /* @__PURE__ */ jsx80(
8272
8358
  BottomSheet,
8273
8359
  {
8274
8360
  open: showAddAssetModal,
8275
8361
  title: "Add an asset",
8276
8362
  onClose: () => setShowAddAssetModal(false),
8277
- children: /* @__PURE__ */ jsx79("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ jsxs65(
8363
+ children: /* @__PURE__ */ jsx80("div", { className: "space-y-2", children: newAssetOptions.map((option) => /* @__PURE__ */ jsxs66(
8278
8364
  "button",
8279
8365
  {
8280
8366
  type: "button",
@@ -8288,12 +8374,12 @@ function DepositAssetSelection({
8288
8374
  handleAddNewAsset(option.account);
8289
8375
  },
8290
8376
  children: [
8291
- /* @__PURE__ */ jsx79(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8292
- /* @__PURE__ */ jsxs65("div", { className: "min-w-0 flex-1", children: [
8293
- /* @__PURE__ */ jsx79("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8294
- /* @__PURE__ */ jsx79("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8377
+ /* @__PURE__ */ jsx80(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8378
+ /* @__PURE__ */ jsxs66("div", { className: "min-w-0 flex-1", children: [
8379
+ /* @__PURE__ */ jsx80("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8380
+ /* @__PURE__ */ jsx80("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
8295
8381
  ] }),
8296
- /* @__PURE__ */ jsx79(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8382
+ /* @__PURE__ */ jsx80(Icon, { name: "add", size: "sm", className: "text-white/30 transition-colors group-hover:text-white/60" })
8297
8383
  ]
8298
8384
  },
8299
8385
  option.account
@@ -8304,7 +8390,7 @@ function DepositAssetSelection({
8304
8390
  }
8305
8391
 
8306
8392
  // src/web/components/deposit-invoice-generation.tsx
8307
- import { jsx as jsx80, jsxs as jsxs66 } from "react/jsx-runtime";
8393
+ import { jsx as jsx81, jsxs as jsxs67 } from "react/jsx-runtime";
8308
8394
  var ACCOUNT_TITLES2 = {
8309
8395
  RGB: "RGB & Lightning",
8310
8396
  SPARK: "Spark",
@@ -8459,7 +8545,7 @@ function DepositInvoiceGeneration({
8459
8545
  if (nextMethod) applyMethodSelection(account, nextMethod);
8460
8546
  };
8461
8547
  if (depositDetected) {
8462
- return /* @__PURE__ */ jsx80(
8548
+ return /* @__PURE__ */ jsx81(
8463
8549
  DepositSuccessScreen,
8464
8550
  {
8465
8551
  handleDone,
@@ -8476,15 +8562,15 @@ function DepositInvoiceGeneration({
8476
8562
  const showChannelWarning = selectedAccount === "RGB" && network === "lightning" && !channelsLoading && channels.length === 0 && !isSparkConnected;
8477
8563
  const showLiquidityWarning = !isSparkLightning && network === "lightning" && maxDepositAmount === 0 && !channelsLoading && !isBtc;
8478
8564
  const isNewRgbAsset = isNewAsset && assetFamily === "RGB";
8479
- return /* @__PURE__ */ jsxs66("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8480
- /* @__PURE__ */ jsx80("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ jsx80(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ jsx80(Icon, { name: "arrow_back", size: "xl" }) }) }),
8565
+ return /* @__PURE__ */ jsxs67("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
8566
+ /* @__PURE__ */ jsx81("div", { className: "absolute left-4 top-4 z-30", children: /* @__PURE__ */ jsx81(Button, { type: "button", variant: "ghost", size: "icon-xl", onClick: handleBack, "aria-label": "Go back", children: /* @__PURE__ */ jsx81(Icon, { name: "arrow_back", size: "xl" }) }) }),
8481
8567
  (() => {
8482
8568
  const hideDestinationRail = isNewAsset && (network === "spark" || network === "arkade");
8483
8569
  if (hideDestinationRail) return null;
8484
- return /* @__PURE__ */ jsx80("div", { className: "flex-shrink-0 border-b border-border bg-background px-4 py-2", children: /* @__PURE__ */ jsxs66("div", { className: "space-y-2", children: [
8485
- /* @__PURE__ */ jsxs66("div", { children: [
8486
- /* @__PURE__ */ jsx80("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
8487
- /* @__PURE__ */ jsx80("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ jsx80(
8570
+ return /* @__PURE__ */ jsx81("div", { className: "flex-shrink-0 border-b border-border bg-background px-4 py-2", children: /* @__PURE__ */ jsxs67("div", { className: "space-y-2", children: [
8571
+ /* @__PURE__ */ jsxs67("div", { children: [
8572
+ /* @__PURE__ */ jsx81("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Destination Account" }),
8573
+ /* @__PURE__ */ jsx81("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: availableAccounts.map((account) => /* @__PURE__ */ jsx81(
8488
8574
  AccountChoiceChip,
8489
8575
  {
8490
8576
  account,
@@ -8509,9 +8595,9 @@ function DepositInvoiceGeneration({
8509
8595
  account
8510
8596
  )) })
8511
8597
  ] }),
8512
- !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ jsxs66("div", { children: [
8513
- /* @__PURE__ */ jsx80("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
8514
- /* @__PURE__ */ jsx80("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: methodOptions.map(({ method, enabled, disabledReason }) => /* @__PURE__ */ jsx80(
8598
+ !isBtc && !(isNewAsset && (network === "spark" || network === "arkade")) && /* @__PURE__ */ jsxs67("div", { children: [
8599
+ /* @__PURE__ */ jsx81("p", { className: "text-xxs font-bold uppercase tracking-widest text-white/35", children: "Transfer Method" }),
8600
+ /* @__PURE__ */ jsx81("div", { className: "mt-1.5 flex gap-1.5 overflow-x-auto no-scrollbar", children: methodOptions.map(({ method, enabled, disabledReason }) => /* @__PURE__ */ jsx81(
8515
8601
  MethodChoiceChip,
8516
8602
  {
8517
8603
  method,
@@ -8525,7 +8611,7 @@ function DepositInvoiceGeneration({
8525
8611
  ] })
8526
8612
  ] }) });
8527
8613
  })(),
8528
- /* @__PURE__ */ jsx80(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ jsx80(
8614
+ /* @__PURE__ */ jsx81(ScrollArea, { className: "flex-1", viewportAs: "main", viewportClassName: "space-y-2.5 px-4 py-2.5", children: isBtc && accountReceiveResult ? /* @__PURE__ */ jsx81(
8529
8615
  BtcUnifiedReceive,
8530
8616
  {
8531
8617
  btcSelectedAccount,
@@ -8545,8 +8631,8 @@ function DepositInvoiceGeneration({
8545
8631
  setAccountReceiveResult,
8546
8632
  handleDone
8547
8633
  }
8548
- ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ jsxs66("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8549
- /* @__PURE__ */ jsx80(
8634
+ ) : isBtc && !accountReceiveResult && loading ? /* @__PURE__ */ jsxs67("div", { className: "flex flex-col items-center gap-4 py-10", children: [
8635
+ /* @__PURE__ */ jsx81(
8550
8636
  "div",
8551
8637
  {
8552
8638
  className: cn(
@@ -8554,7 +8640,7 @@ function DepositInvoiceGeneration({
8554
8640
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].bg,
8555
8641
  NETWORK_CONFIG[btcSelectedAccount === "SPARK" ? "spark" : btcSelectedAccount === "ARKADE" ? "arkade" : "onchain"].border
8556
8642
  ),
8557
- children: /* @__PURE__ */ jsx80(
8643
+ children: /* @__PURE__ */ jsx81(
8558
8644
  "span",
8559
8645
  {
8560
8646
  className: cn(
@@ -8566,11 +8652,11 @@ function DepositInvoiceGeneration({
8566
8652
  )
8567
8653
  }
8568
8654
  ),
8569
- /* @__PURE__ */ jsxs66("div", { className: "space-y-1 text-center", children: [
8570
- /* @__PURE__ */ jsx80("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
8571
- /* @__PURE__ */ jsx80("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
8655
+ /* @__PURE__ */ jsxs67("div", { className: "space-y-1 text-center", children: [
8656
+ /* @__PURE__ */ jsx81("p", { className: "text-sm font-bold text-muted-foreground", children: "Generating addresses..." }),
8657
+ /* @__PURE__ */ jsx81("p", { className: "text-xs text-white/30", children: ACCOUNT_TITLES2[btcSelectedAccount] })
8572
8658
  ] })
8573
- ] }) : !address ? /* @__PURE__ */ jsx80(
8659
+ ] }) : !address ? /* @__PURE__ */ jsx81(
8574
8660
  DepositPreGeneration,
8575
8661
  {
8576
8662
  selectedAsset,
@@ -8594,7 +8680,7 @@ function DepositInvoiceGeneration({
8594
8680
  onOpenCreateUtxos,
8595
8681
  showReceiveSummary: !isNewRgbAsset
8596
8682
  }
8597
- ) : /* @__PURE__ */ jsx80(
8683
+ ) : /* @__PURE__ */ jsx81(
8598
8684
  DepositGeneratedView,
8599
8685
  {
8600
8686
  network,
@@ -8743,6 +8829,7 @@ export {
8743
8829
  StepperNumberInput,
8744
8830
  SwapInputCard,
8745
8831
  Switch,
8832
+ SwitchRow,
8746
8833
  Tabs,
8747
8834
  TabsContent,
8748
8835
  TabsList,