kaleido-ui 0.1.108 → 0.1.110

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