kaleido-ui 0.2.1 → 0.2.4

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.
Files changed (319) hide show
  1. package/README.md +37 -10
  2. package/dist/css/kaleido-ui.css +0 -4
  3. package/dist/icon-AvUL0Cws.d.cts +135 -0
  4. package/dist/icon-AvUL0Cws.d.ts +135 -0
  5. package/dist/native/index.cjs +0 -126
  6. package/dist/native/index.js +0 -126
  7. package/dist/web/assets/kaleidoswap-brand.js +11 -0
  8. package/dist/web/assets/protocol-icons.js +7 -0
  9. package/dist/web/chunk-25RRZDZ2.js +269 -0
  10. package/dist/web/chunk-27CY5EHL.js +230 -0
  11. package/dist/web/chunk-2GNXC446.js +84 -0
  12. package/dist/web/chunk-2NCH2ZDU.js +129 -0
  13. package/dist/web/chunk-2OGYEUYV.js +220 -0
  14. package/dist/web/chunk-2Q5SSNFO.js +63 -0
  15. package/dist/web/chunk-2REWXJEN.js +96 -0
  16. package/dist/web/chunk-2VAS6VYJ.js +106 -0
  17. package/dist/web/chunk-2VKFRAX3.js +39 -0
  18. package/dist/web/chunk-2Z6KFK4Z.js +41 -0
  19. package/dist/web/chunk-4246Y2F2.js +276 -0
  20. package/dist/web/chunk-4MLPMRXA.js +85 -0
  21. package/dist/web/chunk-4QLR4ZNK.js +383 -0
  22. package/dist/web/chunk-4UMKXXAK.js +33 -0
  23. package/dist/web/chunk-563GMWFT.js +32 -0
  24. package/dist/web/chunk-5BNDC7M4.js +50 -0
  25. package/dist/web/chunk-5GBURTY4.js +33 -0
  26. package/dist/web/chunk-5MM5YGGG.js +43 -0
  27. package/dist/web/chunk-5PZ2XVWL.js +85 -0
  28. package/dist/web/chunk-5V2KMO56.js +55 -0
  29. package/dist/web/chunk-5WBAFYPH.js +62 -0
  30. package/dist/web/chunk-62HIDJCD.js +98 -0
  31. package/dist/web/chunk-6IBQJIHT.js +56 -0
  32. package/dist/web/chunk-6PNGSAJB.js +55 -0
  33. package/dist/web/chunk-6VKWG5FJ.js +159 -0
  34. package/dist/web/chunk-76DAZT7Q.js +107 -0
  35. package/dist/web/chunk-7NS5S2PG.js +126 -0
  36. package/dist/web/chunk-7OE6AXLY.js +27 -0
  37. package/dist/web/chunk-7YUPXESC.js +666 -0
  38. package/dist/web/chunk-A3TKIXSI.js +197 -0
  39. package/dist/web/chunk-A3XHFJ6J.js +120 -0
  40. package/dist/web/chunk-A6MSV4MA.js +83 -0
  41. package/dist/web/chunk-A7MPRLJL.js +169 -0
  42. package/dist/web/chunk-AP7Q2FCS.js +43 -0
  43. package/dist/web/chunk-ASHU5XNR.js +21 -0
  44. package/dist/web/chunk-BGUBHWIO.js +41 -0
  45. package/dist/web/chunk-BY2KCPTX.js +444 -0
  46. package/dist/web/chunk-C7YIQDGQ.js +57 -0
  47. package/dist/web/chunk-CBE7BT3M.js +87 -0
  48. package/dist/web/chunk-CJATW6EO.js +108 -0
  49. package/dist/web/chunk-CRDCVB5X.js +96 -0
  50. package/dist/web/chunk-CRMLYZIX.js +35 -0
  51. package/dist/web/chunk-CXMCWSWC.js +20 -0
  52. package/dist/web/chunk-CZPNI33A.js +31 -0
  53. package/dist/web/chunk-DCUAE6PX.js +202 -0
  54. package/dist/web/chunk-DDMDRAD6.js +403 -0
  55. package/dist/web/chunk-DH7VXKGM.js +247 -0
  56. package/dist/web/chunk-DNHRMPKI.js +63 -0
  57. package/dist/web/chunk-DXFFYCU3.js +83 -0
  58. package/dist/web/chunk-EK5N3ZPW.js +417 -0
  59. package/dist/web/chunk-F2LIZX5K.js +140 -0
  60. package/dist/web/chunk-FSQV54O4.js +61 -0
  61. package/dist/web/chunk-FWOIRFV5.js +73 -0
  62. package/dist/web/chunk-G2MJL3VP.js +54 -0
  63. package/dist/web/chunk-G2ZYNR3W.js +28 -0
  64. package/dist/web/chunk-G373WZMN.js +150 -0
  65. package/dist/web/chunk-GMJGTSCQ.js +82 -0
  66. package/dist/web/chunk-GX7GBHJ6.js +362 -0
  67. package/dist/web/chunk-GZZ5KVON.js +70 -0
  68. package/dist/web/chunk-H3GYLFHP.js +30 -0
  69. package/dist/web/chunk-HDLOPDFX.js +89 -0
  70. package/dist/web/chunk-HP25HN7Q.js +69 -0
  71. package/dist/web/chunk-HVKSBEZN.js +98 -0
  72. package/dist/web/chunk-HWKXZNBN.js +74 -0
  73. package/dist/web/chunk-HY3VMT27.js +64 -0
  74. package/dist/web/chunk-IK32AIOS.js +27 -0
  75. package/dist/web/chunk-IMER4KGH.js +151 -0
  76. package/dist/web/chunk-IV6AAVUE.js +177 -0
  77. package/dist/web/chunk-JWMFTRDC.js +254 -0
  78. package/dist/web/chunk-JY3H7ZAI.js +41 -0
  79. package/dist/web/chunk-JY73M73T.js +175 -0
  80. package/dist/web/chunk-JYM5NHBA.js +80 -0
  81. package/dist/web/chunk-JZ3BUM5L.js +368 -0
  82. package/dist/web/chunk-KIMWCG5N.js +108 -0
  83. package/dist/web/chunk-L2UPQLY7.js +43 -0
  84. package/dist/web/chunk-LFAORJQK.js +81 -0
  85. package/dist/web/chunk-LOGZGZWN.js +1 -0
  86. package/dist/web/chunk-LPDB7EHH.js +65 -0
  87. package/dist/web/chunk-LSY4DY2I.js +72 -0
  88. package/dist/web/chunk-LYCLVP26.js +101 -0
  89. package/dist/web/chunk-LZ6PIXUO.js +43 -0
  90. package/dist/web/chunk-LZ723UCB.js +96 -0
  91. package/dist/web/chunk-M6RXTQEL.js +90 -0
  92. package/dist/web/chunk-MTQ22SKE.js +39 -0
  93. package/dist/web/chunk-MTQOAMDW.js +8 -0
  94. package/dist/web/chunk-NEXA6VGG.js +91 -0
  95. package/dist/web/chunk-NSA777UY.js +89 -0
  96. package/dist/web/chunk-O2TTO5FS.js +24 -0
  97. package/dist/web/chunk-O6NPTMDN.js +191 -0
  98. package/dist/web/chunk-OI7WX7NE.js +17 -0
  99. package/dist/web/chunk-OWSKP527.js +80 -0
  100. package/dist/web/chunk-OX3J3FYX.js +64 -0
  101. package/dist/web/chunk-PCKRLEAO.js +40 -0
  102. package/dist/web/chunk-PMGIJMRO.js +207 -0
  103. package/dist/web/chunk-PS7Q6MMU.js +60 -0
  104. package/dist/web/chunk-PTSOVDKH.js +169 -0
  105. package/dist/web/chunk-QBZSLR7U.js +54 -0
  106. package/dist/web/chunk-QCQRA6L5.js +63 -0
  107. package/dist/web/chunk-QFIGSIXA.js +558 -0
  108. package/dist/web/chunk-QRFFLA3N.js +84 -0
  109. package/dist/web/chunk-QXCCUYNY.js +232 -0
  110. package/dist/web/chunk-QXZ2WY3B.js +38 -0
  111. package/dist/web/chunk-R2MV4S4U.js +50 -0
  112. package/dist/web/chunk-R3IIXFGK.js +48 -0
  113. package/dist/web/chunk-RIOY4LFJ.js +141 -0
  114. package/dist/web/chunk-RV7Z3B3V.js +106 -0
  115. package/dist/web/chunk-RXXYUYBP.js +25 -0
  116. package/dist/web/chunk-S2ICIIH2.js +109 -0
  117. package/dist/web/chunk-SJNOBBU5.js +86 -0
  118. package/dist/web/chunk-STMNX3QT.js +109 -0
  119. package/dist/web/chunk-T7CEJV6P.js +66 -0
  120. package/dist/web/chunk-TBEKRQGW.js +99 -0
  121. package/dist/web/chunk-TCFHH5TE.js +179 -0
  122. package/dist/web/chunk-TI7NWMEQ.js +34 -0
  123. package/dist/web/chunk-TKRMGN7J.js +8 -0
  124. package/dist/web/chunk-TMK3SVYI.js +62 -0
  125. package/dist/web/chunk-TPGNO74K.js +67 -0
  126. package/dist/web/chunk-TS4UYWJJ.js +105 -0
  127. package/dist/web/chunk-TY6SGZC7.js +94 -0
  128. package/dist/web/chunk-UHXOPILM.js +101 -0
  129. package/dist/web/chunk-UK6ZL4MX.js +375 -0
  130. package/dist/web/chunk-UXLWWQ4J.js +20 -0
  131. package/dist/web/chunk-UZ4LWR4X.js +26 -0
  132. package/dist/web/chunk-VLZMX43R.js +45 -0
  133. package/dist/web/chunk-VM6AGMYO.js +46 -0
  134. package/dist/web/chunk-VUGV3ELU.js +176 -0
  135. package/dist/web/chunk-VYQHGSK6.js +244 -0
  136. package/dist/web/chunk-VZF5C3C6.js +146 -0
  137. package/dist/web/chunk-W4E2N3UN.js +58 -0
  138. package/dist/web/chunk-WEPSTI3Z.js +83 -0
  139. package/dist/web/chunk-WOAWUXER.js +139 -0
  140. package/dist/web/chunk-WURSWAKE.js +74 -0
  141. package/dist/web/chunk-WWF7IJBF.js +330 -0
  142. package/dist/web/chunk-X2RA4EG3.js +86 -0
  143. package/dist/web/chunk-XCQGJYGF.js +42 -0
  144. package/dist/web/chunk-XDSOOOYL.js +35 -0
  145. package/dist/web/chunk-XPHFJPUQ.js +291 -0
  146. package/dist/web/chunk-XXH4TYKZ.js +276 -0
  147. package/dist/web/chunk-XZQUQOR3.js +48 -0
  148. package/dist/web/chunk-Y3W6LOOE.js +66 -0
  149. package/dist/web/chunk-YNB4SSLD.js +113 -0
  150. package/dist/web/chunk-YQDCU7ZL.js +49 -0
  151. package/dist/web/chunk-YQQ7GDLZ.js +30 -0
  152. package/dist/web/chunk-YTXWYWVD.js +70 -0
  153. package/dist/web/chunk-YXVOFEDT.js +85 -0
  154. package/dist/web/chunk-Z2SS7UJ4.js +139 -0
  155. package/dist/web/chunk-Z5LVT3BD.js +128 -0
  156. package/dist/web/chunk-Z5O67WTL.js +85 -0
  157. package/dist/web/chunk-ZPNGHBKB.js +86 -0
  158. package/dist/web/chunk-ZR32WYJA.js +55 -0
  159. package/dist/web/chunk-ZRIBB4EB.js +62 -0
  160. package/dist/web/chunk-ZTVV4KBT.js +28 -0
  161. package/dist/web/chunk-ZXCT3Y6P.js +56 -0
  162. package/dist/web/components/account-capabilities-card.js +21 -0
  163. package/dist/web/components/account-menu.js +18 -0
  164. package/dist/web/components/account-settings-shared.js +50 -0
  165. package/dist/web/components/account-status-tabs.js +20 -0
  166. package/dist/web/components/action-tile.js +8 -0
  167. package/dist/web/components/activity-detail-row.js +22 -0
  168. package/dist/web/components/activity-filter-bar.js +22 -0
  169. package/dist/web/components/activity-list.js +23 -0
  170. package/dist/web/components/activity-network-filters.js +19 -0
  171. package/dist/web/components/activity-row.js +15 -0
  172. package/dist/web/components/activity-type-tabs.js +17 -0
  173. package/dist/web/components/alert-banner.js +13 -0
  174. package/dist/web/components/amount.js +8 -0
  175. package/dist/web/components/app-icon.js +15 -0
  176. package/dist/web/components/asset-card.js +21 -0
  177. package/dist/web/components/asset-icon.js +10 -0
  178. package/dist/web/components/asset-selector.js +24 -0
  179. package/dist/web/components/balance-breakdown.js +18 -0
  180. package/dist/web/components/basic-collapsible.js +11 -0
  181. package/dist/web/components/bottom-nav.js +13 -0
  182. package/dist/web/components/bottom-sheet.js +15 -0
  183. package/dist/web/components/btc-unified-receive.js +28 -0
  184. package/dist/web/components/charts/bar-chart.js +24 -0
  185. package/dist/web/components/charts/bar-list.js +24 -0
  186. package/dist/web/components/charts/core.js +63 -0
  187. package/dist/web/components/charts/donut-chart.js +26 -0
  188. package/dist/web/components/charts/index.js +72 -0
  189. package/dist/web/components/charts/line-chart.js +26 -0
  190. package/dist/web/components/charts/meter.js +24 -0
  191. package/dist/web/components/charts/mixed-chart.js +24 -0
  192. package/dist/web/components/charts/scatter-chart.js +24 -0
  193. package/dist/web/components/charts/sparkline.js +8 -0
  194. package/dist/web/components/choice-group.js +11 -0
  195. package/dist/web/components/code-block.js +21 -0
  196. package/dist/web/components/confirm-dialog.js +15 -0
  197. package/dist/web/components/copy-button.js +21 -0
  198. package/dist/web/components/copyable.js +20 -0
  199. package/dist/web/components/date-range-filter.js +16 -0
  200. package/dist/web/components/deposit-asset-selection.js +24 -0
  201. package/dist/web/components/deposit-generated-view.js +23 -0
  202. package/dist/web/components/deposit-invoice-generation.js +35 -0
  203. package/dist/web/components/deposit-network-default-modal.js +13 -0
  204. package/dist/web/components/deposit-pre-generation.js +17 -0
  205. package/dist/web/components/deposit-success-screen.js +20 -0
  206. package/dist/web/components/deposit-ui-shared.js +28 -0
  207. package/dist/web/components/disclosure-card.js +11 -0
  208. package/dist/web/components/dotted-leader.js +8 -0
  209. package/dist/web/components/empty-state.js +8 -0
  210. package/dist/web/components/environment-indicator.js +9 -0
  211. package/dist/web/components/error-boundary.js +10 -0
  212. package/dist/web/components/event-timeline.js +8 -0
  213. package/dist/web/components/extension-page-frame.js +15 -0
  214. package/dist/web/components/filter-bar.js +15 -0
  215. package/dist/web/components/filter-chip-group.js +8 -0
  216. package/dist/web/components/filter-dropdown.js +12 -0
  217. package/dist/web/components/floating-notice.js +12 -0
  218. package/dist/web/components/form-field.js +10 -0
  219. package/dist/web/components/halo-backdrop.js +8 -0
  220. package/dist/web/components/info-chip.js +24 -0
  221. package/dist/web/components/info-panel.js +13 -0
  222. package/dist/web/components/inline-selector.js +11 -0
  223. package/dist/web/components/instants-statement.js +20 -0
  224. package/dist/web/components/kaleidoscope-hero-animation.js +11 -0
  225. package/dist/web/components/kaleidoswap-logo.js +12 -0
  226. package/dist/web/components/list-field.js +14 -0
  227. package/dist/web/components/list-summary.js +8 -0
  228. package/dist/web/components/metric-card.js +14 -0
  229. package/dist/web/components/mobile-hero-animation.js +8 -0
  230. package/dist/web/components/network-badge.js +14 -0
  231. package/dist/web/components/network-icon.js +21 -0
  232. package/dist/web/components/network-status-chip.js +11 -0
  233. package/dist/web/components/notice-bar.js +8 -0
  234. package/dist/web/components/one-time-secret-dialog.js +18 -0
  235. package/dist/web/components/option-selector.js +12 -0
  236. package/dist/web/components/page-header.js +12 -0
  237. package/dist/web/components/page-shell.js +18 -0
  238. package/dist/web/components/pager.js +11 -0
  239. package/dist/web/components/period-select.js +20 -0
  240. package/dist/web/components/qr-code.js +10 -0
  241. package/dist/web/components/query-state.js +19 -0
  242. package/dist/web/components/read-status.js +15 -0
  243. package/dist/web/components/record-list.js +17 -0
  244. package/dist/web/components/recovery-phrase-card.js +20 -0
  245. package/dist/web/components/restricted.js +9 -0
  246. package/dist/web/components/secret-reveal-card.js +20 -0
  247. package/dist/web/components/section-header.js +9 -0
  248. package/dist/web/components/section-label.js +8 -0
  249. package/dist/web/components/selectable-card.js +8 -0
  250. package/dist/web/components/setting-item.js +13 -0
  251. package/dist/web/components/settings-section-card.js +11 -0
  252. package/dist/web/components/settings-selector-row.js +8 -0
  253. package/dist/web/components/settings-tile.js +21 -0
  254. package/dist/web/components/skeleton.js +10 -0
  255. package/dist/web/components/status-badge.js +13 -0
  256. package/dist/web/components/status-icon-badge.js +15 -0
  257. package/dist/web/components/stepper-number-input.js +10 -0
  258. package/dist/web/components/summary-rows.js +9 -0
  259. package/dist/web/components/swap-badge.js +11 -0
  260. package/dist/web/components/swap-input-card.js +28 -0
  261. package/dist/web/components/swap-step-list.js +10 -0
  262. package/dist/web/components/switch-row.js +9 -0
  263. package/dist/web/components/theme-toggle.js +12 -0
  264. package/dist/web/components/transaction-card.js +14 -0
  265. package/dist/web/components/trend-chart.js +28 -0
  266. package/dist/web/components/value-list.js +20 -0
  267. package/dist/web/components/wallet-asset-list.js +22 -0
  268. package/dist/web/components/withdraw-amount-input.js +13 -0
  269. package/dist/web/components/withdraw-confirmation.js +17 -0
  270. package/dist/web/components/withdraw-destination-input.js +14 -0
  271. package/dist/web/components/withdraw-invoice-info.js +10 -0
  272. package/dist/web/components/withdraw-route-selector.js +9 -0
  273. package/dist/web/components/withdraw-success.js +12 -0
  274. package/dist/web/hooks/use-asset-icon.js +11 -0
  275. package/dist/web/hooks/use-copy-to-clipboard.js +7 -0
  276. package/dist/web/hooks/use-media-query.js +9 -0
  277. package/dist/web/hooks/use-theme-mode.js +9 -0
  278. package/dist/web/hooks/use-toast.js +11 -0
  279. package/dist/web/icons/filled.js +15 -0
  280. package/dist/web/icons/index.js +13 -0
  281. package/dist/web/icons/outlined.js +221 -0
  282. package/dist/web/icons/public.js +248 -0
  283. package/dist/web/icons.cjs +776 -0
  284. package/dist/web/icons.d.cts +123 -0
  285. package/dist/web/icons.d.ts +123 -0
  286. package/dist/web/index.cjs +3447 -2567
  287. package/dist/web/index.d.cts +507 -113
  288. package/dist/web/index.d.ts +507 -113
  289. package/dist/web/index.js +612 -13675
  290. package/dist/web/primitives/avatar.js +10 -0
  291. package/dist/web/primitives/button.js +10 -0
  292. package/dist/web/primitives/card.js +20 -0
  293. package/dist/web/primitives/collapsible.js +16 -0
  294. package/dist/web/primitives/dialog.js +30 -0
  295. package/dist/web/primitives/dot-pagination.js +8 -0
  296. package/dist/web/primitives/drawer.js +43 -0
  297. package/dist/web/primitives/dropdown-menu.js +28 -0
  298. package/dist/web/primitives/glyph-button.js +10 -0
  299. package/dist/web/primitives/icon-button.js +15 -0
  300. package/dist/web/primitives/icon-glyph.js +8 -0
  301. package/dist/web/primitives/icon.js +16 -0
  302. package/dist/web/primitives/input.js +9 -0
  303. package/dist/web/primitives/label.js +9 -0
  304. package/dist/web/primitives/menu-search.js +20 -0
  305. package/dist/web/primitives/number-input.js +11 -0
  306. package/dist/web/primitives/popover.js +18 -0
  307. package/dist/web/primitives/scroll-area.js +12 -0
  308. package/dist/web/primitives/select.js +27 -0
  309. package/dist/web/primitives/switch.js +8 -0
  310. package/dist/web/primitives/table.js +27 -0
  311. package/dist/web/primitives/tabs.js +14 -0
  312. package/dist/web/primitives/toast.js +24 -0
  313. package/dist/web/primitives/toaster.js +15 -0
  314. package/dist/web/primitives/tooltip.js +10 -0
  315. package/dist/web/utils/amount-display.js +13 -0
  316. package/dist/web/utils/cn.js +7 -0
  317. package/dist/web/utils/field-styles.js +7 -0
  318. package/dist/web/utils/type-roles.js +7 -0
  319. package/package.json +9 -1
@@ -1372,60 +1372,6 @@ function ModeToggle({ icon, size = 40, onToggle }) {
1372
1372
  );
1373
1373
  }
1374
1374
 
1375
- // src/tokens/app-semantic.ts
1376
- var appSemanticDark = {
1377
- // Near-black ramp with a violet cast (~245 deg, low saturation): the
1378
- // surfaces lean violet, the accents carry the colour — green first.
1379
- "surface-base": "14 13 22",
1380
- // #0E0D16 — deepest bg, sidebar
1381
- "surface-raised": "20 19 30",
1382
- // #14131E — page body bg
1383
- "surface-overlay": "28 26 42",
1384
- // #1C1A2A — card bg
1385
- "surface-elevated": "40 38 56",
1386
- // #282638 — sections inside cards
1387
- "surface-high": "54 51 74",
1388
- // #36334A — hover/active highlights
1389
- // An inset box inside a card (DisclosureCard), used at /40: on dark it is
1390
- // the muted fill; on light a cool grey, so the box still reads on white.
1391
- "surface-inset": "20 19 30",
1392
- // #14131E
1393
- primary: "21 233 154",
1394
- // #15E99A
1395
- "primary-emphasis": "18 201 126",
1396
- // #12C97E
1397
- "primary-foreground": "14 13 22",
1398
- secondary: "111 50 255",
1399
- // #6F32FF — brand violet
1400
- "secondary-emphasis": "84 32 204",
1401
- // #5420CC
1402
- "secondary-foreground": "255 255 255",
1403
- "secondary-content": "164 138 255",
1404
- // #A48AFF — violet text/icons on dark
1405
- "content-primary": "237 236 246",
1406
- // #EDECF6 — cool white
1407
- "content-secondary": "152 149 180",
1408
- // #9895B4
1409
- "content-tertiary": "98 95 124",
1410
- // #625F7C
1411
- "content-inverse": "14 13 22",
1412
- "border-subtle": "38 36 54",
1413
- // #262436
1414
- "border-default": "52 50 72",
1415
- // #343248
1416
- "border-strong": "21 233 154",
1417
- "status-success": "34 197 94",
1418
- "status-danger": "248 113 113",
1419
- "status-warning": "245 158 11",
1420
- "status-info": "56 189 248",
1421
- divider: "86 83 110",
1422
- // #56536E
1423
- // Spark's mark is white on dark, black on light.
1424
- "network-spark": "255 255 255"
1425
- // #FFFFFF
1426
- };
1427
- var appSemanticOrder = Object.keys(appSemanticDark);
1428
-
1429
1375
  // src/tokens/typography.ts
1430
1376
  var fontFamily = {
1431
1377
  display: "'Satoshi', system-ui, -apple-system, sans-serif",
@@ -1555,84 +1501,12 @@ var shadowLight = {
1555
1501
  toast: `0 0 0 1px ${lightInk(0.06)}, 0 10px 28px -10px ${lightInk(0.2)}`
1556
1502
  };
1557
1503
 
1558
- // src/tokens/brand.ts
1559
- var brandMark = {
1560
- violet: "#6F32FF",
1561
- green: "#17B581",
1562
- mint: "#15E99A"
1563
- };
1564
- var themedForeground = {
1565
- light: {
1566
- // Brand green at full saturation (no red), as light as it goes and still
1567
- // clears 4.5:1 on every light surface (4.55:1 on #EFEFF4).
1568
- brand: "#007D49",
1569
- "accent-send-fg": "#6428F0",
1570
- "accent-recv-fg": "#007D49",
1571
- "success-fg": "#076A43",
1572
- // a shade under brand: it also sits on a 14% mint tint
1573
- // Tailwind -800 shades: -700 measured only 3.7 to 4.3:1 on the light ramp.
1574
- "warning-fg": "#92400E",
1575
- "danger-fg": "#991B1B",
1576
- "info-fg": "#1E40AF",
1577
- "network-bitcoin-fg": "#92400E",
1578
- "network-lightning-fg": "#854D0E",
1579
- "network-liquid-fg": "#115E59",
1580
- "network-arkade-fg": "#5B21B6",
1581
- "network-spark-fg": "#0D0C14",
1582
- // Spark is black on light
1583
- "network-rgb-fg": "#991B1B",
1584
- "network-taproot-fg": "#464A69"
1585
- },
1586
- dark: {
1587
- brand: colors.primary,
1588
- "accent-send-fg": "#AD94FB",
1589
- "accent-recv-fg": colors.primary,
1590
- "success-fg": colors.success,
1591
- "warning-fg": colors.warning,
1592
- // danger #E53535 and info #4290FF are 3.0:1 and 3.2:1 on the elevated
1593
- // surface. Same hues, lifted until they clear 4.5:1.
1594
- "danger-fg": "#FF9999",
1595
- "info-fg": "#8BBDFF",
1596
- "network-bitcoin-fg": colors.networkText.bitcoin,
1597
- "network-lightning-fg": colors.networkText.lightning,
1598
- "network-liquid-fg": colors.networkText.liquid,
1599
- // The rgb and arkade *-text tokens dip under 4.5:1 on the elevated
1600
- // surface (3.9 and 4.1), so their -fg twins are lifted a step.
1601
- "network-arkade-fg": "#B49CF5",
1602
- "network-spark-fg": colors.network.spark,
1603
- // and white on dark
1604
- "network-rgb-fg": "#F09490",
1605
- "network-taproot-fg": colors.networkText.taproot
1606
- }
1607
- };
1608
- var themedForegroundOrder = Object.keys(themedForeground.light);
1609
- var halo = {
1610
- primary: colors.tx.receive,
1611
- secondary: brandMark.violet,
1612
- blur: "110px"
1613
- };
1614
- var brandTheme = {
1615
- /** AA-safe light primary: white on it is 6.3:1, it is 5.1:1 on the light ramp. */
1616
- lightPrimary: themedForeground.light.brand,
1617
- /** Lifted dark status colours (see `themedForeground.dark`). */
1618
- darkDanger: themedForeground.dark["danger-fg"],
1619
- darkInfo: themedForeground.dark["info-fg"]
1620
- };
1621
-
1622
1504
  // src/tokens/transitions.ts
1623
1505
  var transition = {
1624
1506
  fast: "150ms ease-out",
1625
1507
  default: "200ms ease-out",
1626
1508
  slow: "300ms ease-out"
1627
1509
  };
1628
-
1629
- // src/tokens/chart.ts
1630
- var chartSeries = {
1631
- /** green, violet, azzurro, then yellow, magenta, orange */
1632
- dark: ["#17b581", "#8374da", "#179fd4", "#b3880f", "#db589e", "#de6907"],
1633
- light: ["#17b581", "#6851c3", "#0f9cd0", "#dea805", "#c34189", "#fe904d"]
1634
- };
1635
- var chartSeriesLimit = chartSeries.dark.length;
1636
1510
  export {
1637
1511
  ActionButton,
1638
1512
  AlertBanner,
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import {
3
+ kaleidoswapLogoHorizontalArtwork,
4
+ kaleidoswapLogoVerticalArtwork,
5
+ kaleidoswapMarkArtwork
6
+ } from "../chunk-FSQV54O4.js";
7
+ export {
8
+ kaleidoswapLogoHorizontalArtwork,
9
+ kaleidoswapLogoVerticalArtwork,
10
+ kaleidoswapMarkArtwork
11
+ };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import {
3
+ protocolIcons
4
+ } from "../chunk-WEPSTI3Z.js";
5
+ export {
6
+ protocolIcons
7
+ };
@@ -0,0 +1,269 @@
1
+ "use client";
2
+ import {
3
+ protocolIcons
4
+ } from "./chunk-WEPSTI3Z.js";
5
+
6
+ // src/web/components/mobile-hero-animation.tsx
7
+ import { useRef, useEffect, useState } from "react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ var PROTOCOLS = [
10
+ { name: "Bitcoin", network: "Bitcoin", iconSuffix: "bitcoin/bitcoin-logo.svg" },
11
+ { name: "Lightning", network: "LN", iconSuffix: "lightning/lightning.svg" },
12
+ { name: "RGB", network: "RGB20", iconSuffix: "rgb/rgb-logo.svg" },
13
+ { name: "Spark", network: "Spark", iconSuffix: "spark/Asterisk/Spark Asterisk White.svg" },
14
+ { name: "Arkade", network: "Arkade", iconSuffix: "arkade/arkade-icon.svg" },
15
+ { name: "Liquid", network: "Liquid", iconSuffix: "liquid/logo-liquid.svg" },
16
+ { name: "Taproot Assets", network: "Taproot", iconSuffix: "taproot-assets/tapass-logo.svg" }
17
+ ];
18
+ var C = 140;
19
+ var ORBIT_R = 118;
20
+ var BADGE_SIZE = 40;
21
+ var BADGE_HALF = BADGE_SIZE / 2;
22
+ var N = PROTOCOLS.length;
23
+ var PROTOCOL_COLORS = {
24
+ Bitcoin: "#F7931A",
25
+ LN: "#fbbf24",
26
+ RGB20: "#EF4444",
27
+ Spark: "#FFFFFF",
28
+ Arkade: "#8B5CF6",
29
+ Liquid: "#22e1c9",
30
+ Taproot: "#D1D6D8"
31
+ };
32
+ var hexPath = (r) => {
33
+ const pts = Array.from({ length: 6 }, (_, i) => {
34
+ const a = Math.PI / 3 * i - Math.PI / 6;
35
+ return `${r * Math.cos(a)},${r * Math.sin(a)}`;
36
+ });
37
+ return `M${pts.join("L")}Z`;
38
+ };
39
+ var KEYFRAMES = `
40
+ @keyframes mha-orbit-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
41
+ @keyframes mha-counter-spin { from { transform: rotate(0deg); } to { transform: rotate(-360deg); } }
42
+ `;
43
+ var MobileHeroAnimation = ({
44
+ size = 280,
45
+ className,
46
+ iconBasePath
47
+ }) => {
48
+ const containerRef = useRef(null);
49
+ const [reducedMotion, setReducedMotion] = useState(false);
50
+ const [isVisible, setIsVisible] = useState(true);
51
+ useEffect(() => {
52
+ const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
53
+ setReducedMotion(mq.matches);
54
+ const handler = (e) => setReducedMotion(e.matches);
55
+ mq.addEventListener("change", handler);
56
+ return () => mq.removeEventListener("change", handler);
57
+ }, []);
58
+ useEffect(() => {
59
+ const el = containerRef.current;
60
+ if (!el) return;
61
+ const observer = new IntersectionObserver(([entry]) => setIsVisible(entry.isIntersecting), { threshold: 0.1 });
62
+ observer.observe(el);
63
+ return () => observer.disconnect();
64
+ }, []);
65
+ const anim = !reducedMotion && isVisible;
66
+ const scale = size / 280;
67
+ return /* @__PURE__ */ jsxs(
68
+ "div",
69
+ {
70
+ ref: containerRef,
71
+ className,
72
+ style: { position: "relative", width: size, height: size },
73
+ children: [
74
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES }),
75
+ /* @__PURE__ */ jsxs("div", { style: {
76
+ position: "absolute",
77
+ top: 0,
78
+ left: 0,
79
+ width: 280,
80
+ height: 280,
81
+ transformOrigin: "top left",
82
+ transform: scale !== 1 ? `scale(${scale})` : void 0
83
+ }, children: [
84
+ /* @__PURE__ */ jsxs(
85
+ "svg",
86
+ {
87
+ viewBox: "0 0 280 280",
88
+ width: "280",
89
+ height: "280",
90
+ style: { position: "absolute", inset: 0 },
91
+ xmlns: "http://www.w3.org/2000/svg",
92
+ children: [
93
+ /* @__PURE__ */ jsxs("defs", { children: [
94
+ /* @__PURE__ */ jsxs("radialGradient", { id: "mh-center-glow", cx: "50%", cy: "50%", r: "50%", children: [
95
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#0e9dff", stopOpacity: "0.3" }),
96
+ /* @__PURE__ */ jsx("stop", { offset: "40%", stopColor: "#8a5cf6", stopOpacity: "0.15" }),
97
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "transparent", stopOpacity: "0" })
98
+ ] }),
99
+ /* @__PURE__ */ jsxs("linearGradient", { id: "mh-gp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
100
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#22c55e" }),
101
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#8a5cf6" })
102
+ ] }),
103
+ /* @__PURE__ */ jsxs("linearGradient", { id: "mh-bp", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
104
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#0e9dff" }),
105
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#8a5cf6" })
106
+ ] }),
107
+ /* @__PURE__ */ jsxs("filter", { id: "mh-glow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
108
+ /* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }),
109
+ /* @__PURE__ */ jsxs("feMerge", { children: [
110
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
111
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
112
+ ] })
113
+ ] })
114
+ ] }),
115
+ /* @__PURE__ */ jsx("circle", { cx: C, cy: C, r: ORBIT_R, fill: "none", stroke: "#0e9dff", strokeWidth: "1", strokeOpacity: "0.25", opacity: "0.4", children: anim && /* @__PURE__ */ jsxs(Fragment, { children: [
116
+ /* @__PURE__ */ jsx("animate", { attributeName: "r", values: `${ORBIT_R};${Math.round(ORBIT_R * 1.12)};${ORBIT_R}`, dur: "2.5s", repeatCount: "indefinite" }),
117
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "2.5s", repeatCount: "indefinite" })
118
+ ] }) }),
119
+ /* @__PURE__ */ jsx("circle", { cx: C, cy: C, r: 80, fill: "none", stroke: "rgba(255,255,255,0.1)", strokeWidth: "1", strokeDasharray: "4 4" }),
120
+ /* @__PURE__ */ jsx(
121
+ "g",
122
+ {
123
+ style: {
124
+ animation: anim ? "mha-orbit-spin 20s linear infinite" : void 0,
125
+ transformOrigin: "50% 50%",
126
+ transformBox: "view-box"
127
+ },
128
+ children: PROTOCOLS.map((protocol, i) => {
129
+ const angle = i / N * 2 * Math.PI;
130
+ const dx = Math.cos(angle);
131
+ const dy = Math.sin(angle);
132
+ const x1 = C + dx * 28;
133
+ const y1 = C + dy * 28;
134
+ const x2 = C + dx * (ORBIT_R - BADGE_HALF);
135
+ const y2 = C + dy * (ORBIT_R - BADGE_HALF);
136
+ const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
137
+ const dur = `${2 + i * 0.3}s`;
138
+ return /* @__PURE__ */ jsxs("g", { children: [
139
+ /* @__PURE__ */ jsx(
140
+ "line",
141
+ {
142
+ x1,
143
+ y1,
144
+ x2,
145
+ y2,
146
+ stroke: color,
147
+ strokeWidth: "0.8",
148
+ strokeDasharray: "2 4",
149
+ opacity: "0.25",
150
+ children: anim && /* @__PURE__ */ jsx("animate", { attributeName: "stroke-dashoffset", from: "0", to: "-12", dur: `${1.5 + i * 0.2}s`, repeatCount: "indefinite" })
151
+ }
152
+ ),
153
+ /* @__PURE__ */ jsx("circle", { r: "2", fill: color, opacity: "0", children: anim && /* @__PURE__ */ jsxs(Fragment, { children: [
154
+ /* @__PURE__ */ jsx("animate", { attributeName: "cx", values: `${x1};${x2}`, dur, repeatCount: "indefinite" }),
155
+ /* @__PURE__ */ jsx("animate", { attributeName: "cy", values: `${y1};${y2}`, dur, repeatCount: "indefinite" }),
156
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0;0.85;0", dur, repeatCount: "indefinite" }),
157
+ /* @__PURE__ */ jsx("animate", { attributeName: "r", values: "1.5;2.5;1.5", dur, repeatCount: "indefinite" })
158
+ ] }) })
159
+ ] }, `line-${i}`);
160
+ })
161
+ }
162
+ ),
163
+ /* @__PURE__ */ jsx("circle", { cx: C, cy: C, r: "42", fill: "url(#mh-center-glow)", children: anim && /* @__PURE__ */ jsx("animate", { attributeName: "r", values: "38;46;38", dur: "4s", repeatCount: "indefinite" }) }),
164
+ /* @__PURE__ */ jsx("circle", { cx: C, cy: C, r: "29", fill: "none", stroke: "url(#mh-bp)", strokeWidth: "1", opacity: "0", children: anim && /* @__PURE__ */ jsxs(Fragment, { children: [
165
+ /* @__PURE__ */ jsx("animate", { attributeName: "r", values: "27;38", dur: "3s", repeatCount: "indefinite" }),
166
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.4;0", dur: "3s", repeatCount: "indefinite" })
167
+ ] }) }),
168
+ /* @__PURE__ */ jsx("circle", { cx: C, cy: C, r: "27", fill: "none", stroke: "url(#mh-gp)", strokeWidth: "0.8", opacity: "0", children: anim && /* @__PURE__ */ jsxs(Fragment, { children: [
169
+ /* @__PURE__ */ jsx("animate", { attributeName: "r", values: "27;36", dur: "3s", repeatCount: "indefinite", begin: "1.5s" }),
170
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.3;0", dur: "3s", repeatCount: "indefinite", begin: "1.5s" })
171
+ ] }) }),
172
+ /* @__PURE__ */ jsx("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ jsxs("g", { children: [
173
+ anim && /* @__PURE__ */ jsx(
174
+ "animateTransform",
175
+ {
176
+ attributeName: "transform",
177
+ type: "rotate",
178
+ from: "0",
179
+ to: "360",
180
+ dur: "40s",
181
+ repeatCount: "indefinite",
182
+ additive: "sum"
183
+ }
184
+ ),
185
+ /* @__PURE__ */ jsx("path", { d: hexPath(34), fill: "none", stroke: "url(#mh-gp)", strokeWidth: "1.5", opacity: "0.4", filter: "url(#mh-glow)", children: anim && /* @__PURE__ */ jsxs(Fragment, { children: [
186
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.3;0.65;0.3", dur: "3s", repeatCount: "indefinite" }),
187
+ /* @__PURE__ */ jsx("animate", { attributeName: "stroke-width", values: "1.5;2.5;1.5", dur: "3s", repeatCount: "indefinite" })
188
+ ] }) })
189
+ ] }) }),
190
+ /* @__PURE__ */ jsx("g", { transform: `translate(${C},${C})`, children: /* @__PURE__ */ jsxs("g", { children: [
191
+ anim && /* @__PURE__ */ jsx(
192
+ "animateTransform",
193
+ {
194
+ attributeName: "transform",
195
+ type: "rotate",
196
+ from: "0",
197
+ to: "-360",
198
+ dur: "40s",
199
+ repeatCount: "indefinite",
200
+ additive: "sum"
201
+ }
202
+ ),
203
+ /* @__PURE__ */ jsx("path", { d: hexPath(32), fill: "rgba(10,15,30,0.75)", stroke: "rgba(255,255,255,0.08)", strokeWidth: "0.5" })
204
+ ] }) }),
205
+ /* @__PURE__ */ jsxs("g", { transform: `translate(${C - 18.8},${C - 18.8}) scale(0.0912)`, children: [
206
+ /* @__PURE__ */ jsx("path", { d: "M137.306 411.865H0.000244141L68.6795 343.29L137.306 411.865Z", fill: "#6F32FF" }),
207
+ /* @__PURE__ */ jsx("path", { d: "M0 0H137.306L68.6267 68.574L0 0Z", fill: "#6F32FF" }),
208
+ /* @__PURE__ */ jsx("path", { d: "M137.148 274.559H274.455L411.708 411.866H274.401L137.148 274.559Z", fill: "#17B581" }),
209
+ /* @__PURE__ */ 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" }),
210
+ /* @__PURE__ */ jsx("path", { d: "M274.479 0.104797H411.786L274.533 137.411H137.226L274.479 0.104797Z", fill: "#17B581" })
211
+ ] })
212
+ ]
213
+ }
214
+ ),
215
+ /* @__PURE__ */ jsx("div", { style: {
216
+ position: "absolute",
217
+ inset: 0,
218
+ width: 280,
219
+ height: 280,
220
+ animation: anim ? "mha-orbit-spin 20s linear infinite" : "none"
221
+ }, children: PROTOCOLS.map((protocol, i) => {
222
+ const angle = i / N * 2 * Math.PI;
223
+ const x = C + Math.cos(angle) * ORBIT_R - BADGE_HALF;
224
+ const y = C + Math.sin(angle) * ORBIT_R - BADGE_HALF;
225
+ const color = PROTOCOL_COLORS[protocol.network] ?? "#ffffff";
226
+ return /* @__PURE__ */ jsx(
227
+ "div",
228
+ {
229
+ style: {
230
+ position: "absolute",
231
+ left: x,
232
+ top: y,
233
+ width: BADGE_SIZE,
234
+ height: BADGE_SIZE,
235
+ animation: anim ? "mha-counter-spin 20s linear infinite" : "none"
236
+ },
237
+ children: /* @__PURE__ */ jsx("div", { style: {
238
+ width: "100%",
239
+ height: "100%",
240
+ borderRadius: "50%",
241
+ overflow: "hidden",
242
+ background: "rgba(255,255,255,0.05)",
243
+ backdropFilter: "blur(4px)",
244
+ border: `1px solid ${color}55`,
245
+ display: "flex",
246
+ alignItems: "center",
247
+ justifyContent: "center"
248
+ }, children: /* @__PURE__ */ jsx(
249
+ "img",
250
+ {
251
+ src: iconBasePath ? `${iconBasePath}/${protocol.iconSuffix}` : protocolIcons[protocol.network] ?? protocol.iconSuffix,
252
+ alt: protocol.name,
253
+ className: protocol.network === "Spark" ? "kui-mono-icon" : void 0,
254
+ style: { width: 20, height: 20, objectFit: "contain" }
255
+ }
256
+ ) })
257
+ },
258
+ i
259
+ );
260
+ }) })
261
+ ] })
262
+ ]
263
+ }
264
+ );
265
+ };
266
+
267
+ export {
268
+ MobileHeroAnimation
269
+ };
@@ -0,0 +1,230 @@
1
+ "use client";
2
+ import {
3
+ Label
4
+ } from "./chunk-H3GYLFHP.js";
5
+ import {
6
+ AlertBanner
7
+ } from "./chunk-ZTVV4KBT.js";
8
+ import {
9
+ Button
10
+ } from "./chunk-OWSKP527.js";
11
+ import {
12
+ eyebrow
13
+ } from "./chunk-MTQOAMDW.js";
14
+ import {
15
+ IconGlyph
16
+ } from "./chunk-YQQ7GDLZ.js";
17
+ import {
18
+ AddCircle,
19
+ ProgressActivity,
20
+ QrCode_2
21
+ } from "./chunk-XXH4TYKZ.js";
22
+ import {
23
+ cn
24
+ } from "./chunk-PMGIJMRO.js";
25
+
26
+ // src/web/components/deposit-pre-generation.tsx
27
+ import { useId } from "react";
28
+ import { jsx, jsxs } from "react/jsx-runtime";
29
+ var ACCOUNT_TITLES = {
30
+ RGB: "RGB & Lightning",
31
+ SPARK: "Spark",
32
+ ARKADE: "Arkade",
33
+ LIQUID: "Liquid"
34
+ };
35
+ var METHOD_META = {
36
+ bitcoin_l1: { label: "Bitcoin address", summary: "Standard on-chain BTC transfer." },
37
+ lightning: { label: "Lightning invoice", summary: "Fast payment over Lightning." },
38
+ spark: { label: "Spark transfer", summary: "Funds land directly in the Spark account." },
39
+ arkade: { label: "Arkade transfer", summary: "Funds land directly in the Arkade account." },
40
+ boarding: { label: "Boarding", summary: "Send on-chain BTC into Arkade." },
41
+ submarine_swap: {
42
+ label: "LN via swap",
43
+ summary: "Uses Arkade as the source account and bridges to Lightning."
44
+ }
45
+ };
46
+ function DepositPreGeneration({
47
+ selectedAsset,
48
+ isBtc,
49
+ network,
50
+ net,
51
+ selectedAccount,
52
+ currentMethod,
53
+ channelsLoading,
54
+ showChannelWarning,
55
+ showLiquidityWarning,
56
+ isAutoGenerate,
57
+ loading,
58
+ usePrivacy,
59
+ setUsePrivacy,
60
+ amount,
61
+ handleAmountChange,
62
+ getUnitLabel,
63
+ generateInvoice,
64
+ needsColorableUtxos = false,
65
+ onOpenCreateUtxos,
66
+ showReceiveSummary = true,
67
+ isNewRgbAsset = false,
68
+ newAssetId = "",
69
+ setNewAssetId,
70
+ colorableUtxoCount
71
+ }) {
72
+ const assetIdInputId = useId();
73
+ const amountId = useId();
74
+ const method = METHOD_META[currentMethod];
75
+ const isRgbOnchain = network === "onchain" && !isBtc;
76
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
77
+ showReceiveSummary && /* @__PURE__ */ jsxs("div", { className: "rounded-2xl bg-card/55 backdrop-blur-xl backdrop-saturate-150 bg-gradient-card p-3 shadow-card", children: [
78
+ /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", eyebrow), children: "Receive Summary" }),
79
+ /* @__PURE__ */ jsxs("div", { className: "mt-2 grid grid-cols-1 gap-2 text-caption", children: [
80
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
81
+ /* @__PURE__ */ jsx("span", { className: "text-foreground/55", children: "Asset" }),
82
+ /* @__PURE__ */ jsx("span", { className: "font-bold text-foreground", children: selectedAsset?.ticker ?? (isBtc ? "BTC" : "Asset") })
83
+ ] }),
84
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
85
+ /* @__PURE__ */ jsx("span", { className: "text-foreground/55", children: "Destination account" }),
86
+ /* @__PURE__ */ jsx("span", { className: "font-bold text-foreground", children: ACCOUNT_TITLES[selectedAccount] })
87
+ ] }),
88
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
89
+ /* @__PURE__ */ jsx("span", { className: "text-foreground/55", children: "Transfer method" }),
90
+ /* @__PURE__ */ jsx("span", { className: "font-bold text-foreground", children: method.label })
91
+ ] }),
92
+ /* @__PURE__ */ jsx("p", { className: "text-tiny text-foreground/55", children: method.summary })
93
+ ] })
94
+ ] }),
95
+ channelsLoading && selectedAccount === "RGB" && currentMethod === "lightning" && !isBtc && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 rounded-xl bg-card/55 backdrop-blur-xl backdrop-saturate-150 bg-gradient-card p-3 shadow-card", children: [
96
+ /* @__PURE__ */ jsx(IconGlyph, { glyph: ProgressActivity, className: "animate-spin text-icon-lg text-secondary-content" }),
97
+ /* @__PURE__ */ jsx("span", { className: "text-caption font-medium text-foreground/60", children: "Checking channel availability..." })
98
+ ] }),
99
+ showChannelWarning && /* @__PURE__ */ jsxs(AlertBanner, { variant: "warning", children: [
100
+ /* @__PURE__ */ jsx("p", { className: "mb-0.5 text-caption font-bold text-warning-fg", children: "No Lightning Channels" }),
101
+ /* @__PURE__ */ jsx("p", { className: "text-tiny text-warning-fg/70", children: "Only on-chain deposits are available." })
102
+ ] }),
103
+ showLiquidityWarning && /* @__PURE__ */ jsxs(AlertBanner, { variant: "warning", children: [
104
+ /* @__PURE__ */ jsx("p", { className: "mb-0.5 text-caption font-bold text-warning-fg", children: "No Inbound Liquidity" }),
105
+ /* @__PURE__ */ jsxs("p", { className: "text-tiny text-warning-fg/70", children: [
106
+ "No channels with inbound capacity for ",
107
+ selectedAsset?.ticker ?? "this asset",
108
+ "."
109
+ ] })
110
+ ] }),
111
+ isAutoGenerate && loading && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 py-10", children: [
112
+ /* @__PURE__ */ jsx("div", { className: cn("flex size-16 items-center justify-center rounded-2xl shadow-raised", net.bg), children: /* @__PURE__ */ jsx(IconGlyph, { glyph: ProgressActivity, className: cn("animate-spin text-icon-4xl", net.text) }) }),
113
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-center", children: [
114
+ /* @__PURE__ */ jsxs("p", { className: "text-caption font-bold text-muted-foreground", children: [
115
+ "Generating ",
116
+ network === "lightning" ? "invoice" : "address",
117
+ "..."
118
+ ] }),
119
+ /* @__PURE__ */ jsxs("p", { className: "text-caption text-foreground/55", children: [
120
+ net.label,
121
+ " network"
122
+ ] })
123
+ ] })
124
+ ] }),
125
+ isRgbOnchain && isNewRgbAsset && setNewAssetId && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
126
+ /* @__PURE__ */ jsx(Label, { htmlFor: assetIdInputId, children: "RGB Asset ID - Optional" }),
127
+ /* @__PURE__ */ jsx(
128
+ "input",
129
+ {
130
+ id: assetIdInputId,
131
+ type: "text",
132
+ value: newAssetId,
133
+ onChange: (event) => setNewAssetId(event.target.value),
134
+ placeholder: "rgb:... (leave empty for any asset)",
135
+ spellCheck: false,
136
+ autoCapitalize: "off",
137
+ className: "w-full rounded-xl bg-card/55 bg-gradient-card ring-1 ring-inset ring-secondary/15 hover:ring-secondary/35 px-3 py-2.5 font-mono text-caption text-foreground shadow-inner transition-all placeholder:text-muted-foreground focus:ring-primary/50 focus:shadow-glow-primary-soft focus:outline-none"
138
+ }
139
+ ),
140
+ /* @__PURE__ */ jsx("p", { className: "text-xxs text-foreground/55", children: "Enter a specific asset ID to receive it, or leave empty to accept any RGB asset to this invoice." })
141
+ ] }),
142
+ isRgbOnchain && /* @__PURE__ */ jsxs("div", { className: "space-y-2.5 rounded-xl bg-card/55 backdrop-blur-xl backdrop-saturate-150 bg-gradient-card p-3 shadow-card", children: [
143
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
144
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
145
+ /* @__PURE__ */ jsx("h4", { className: "text-caption font-bold text-foreground", children: usePrivacy ? "Blinded receive" : "Witness receive" }),
146
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xxs text-muted-foreground", children: usePrivacy ? "Private - recommended" : "Simpler - less private" })
147
+ ] }),
148
+ /* @__PURE__ */ jsx(
149
+ "button",
150
+ {
151
+ type: "button",
152
+ "aria-label": "Toggle blinded (private) receive",
153
+ className: cn(
154
+ "relative inline-flex h-5 w-9 flex-shrink-0 items-center rounded-full shadow-inner transition-colors",
155
+ usePrivacy ? "bg-primary bg-gradient-primary shadow-glow-primary-soft" : "bg-foreground/10"
156
+ ),
157
+ onClick: () => setUsePrivacy(!usePrivacy),
158
+ children: /* @__PURE__ */ jsx(
159
+ "span",
160
+ {
161
+ className: cn(
162
+ "inline-block h-3.5 w-3.5 rounded-full shadow-md transition-all",
163
+ usePrivacy ? "translate-x-5 bg-black" : "translate-x-0.5 bg-foreground/80"
164
+ )
165
+ }
166
+ )
167
+ }
168
+ )
169
+ ] }),
170
+ /* @__PURE__ */ jsx("p", { className: "text-tiny leading-relaxed text-foreground/55", 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." }),
171
+ usePrivacy && colorableUtxoCount !== void 0 && /* @__PURE__ */ jsxs(
172
+ "div",
173
+ {
174
+ className: cn(
175
+ "flex items-center justify-between rounded-lg px-2.5 py-1.5 text-xxs",
176
+ colorableUtxoCount > 0 ? "bg-success/10 text-success-fg/80" : "bg-warning/10 text-warning-fg/80"
177
+ ),
178
+ children: [
179
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Available colorable UTXOs" }),
180
+ /* @__PURE__ */ jsx("span", { className: "font-bold tabular-nums", children: colorableUtxoCount })
181
+ ]
182
+ }
183
+ ),
184
+ usePrivacy && colorableUtxoCount === 0 && /* @__PURE__ */ jsx("p", { className: "text-tiny text-warning-fg/70", children: "None available \u2014 create a colorable UTXO below to receive privately, or switch off privacy to use a witness receive." })
185
+ ] }),
186
+ network === "onchain" && !isBtc && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
187
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
188
+ /* @__PURE__ */ jsxs(Label, { htmlFor: amountId, children: [
189
+ "Amount (",
190
+ getUnitLabel(),
191
+ ") - Optional"
192
+ ] }),
193
+ selectedAsset && /* @__PURE__ */ jsxs("span", { className: "text-xxs text-foreground/55", children: [
194
+ selectedAsset.precision ?? 0,
195
+ " decimals"
196
+ ] })
197
+ ] }),
198
+ /* @__PURE__ */ jsx(
199
+ "input",
200
+ {
201
+ id: amountId,
202
+ type: "text",
203
+ value: amount,
204
+ onChange: handleAmountChange,
205
+ placeholder: `e.g. 10.00 ${selectedAsset?.ticker ?? ""}`,
206
+ className: "w-full rounded-xl bg-card/55 bg-gradient-card ring-1 ring-inset ring-secondary/15 hover:ring-secondary/35 px-3 py-2.5 font-mono text-caption font-bold text-foreground shadow-inner transition-all placeholder:text-muted-foreground focus:ring-primary/50 focus:shadow-glow-primary-soft focus:outline-none",
207
+ inputMode: "decimal"
208
+ }
209
+ )
210
+ ] }),
211
+ needsColorableUtxos && /* @__PURE__ */ jsxs(AlertBanner, { variant: "warning", children: [
212
+ /* @__PURE__ */ jsx("p", { className: "mb-0.5 text-caption font-bold text-warning-fg", children: "Colorable UTXOs Required" }),
213
+ /* @__PURE__ */ jsx("p", { className: "text-tiny text-warning-fg/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." })
214
+ ] }),
215
+ !isAutoGenerate && ((needsColorableUtxos || isRgbOnchain && usePrivacy && colorableUtxoCount === 0) && onOpenCreateUtxos ? /* @__PURE__ */ jsx(Button, { variant: "cta", size: "cta", onClick: onOpenCreateUtxos, disabled: loading, children: /* @__PURE__ */ jsxs("span", { className: "flex items-center justify-center gap-2", children: [
216
+ /* @__PURE__ */ jsx(IconGlyph, { glyph: AddCircle, className: "text-icon-md" }),
217
+ "Create Colorable UTXOs"
218
+ ] }) }) : /* @__PURE__ */ jsx(Button, { variant: "cta", size: "cta", onClick: generateInvoice, disabled: loading, children: loading ? /* @__PURE__ */ jsxs("span", { className: "flex items-center justify-center gap-2", children: [
219
+ /* @__PURE__ */ jsx(IconGlyph, { glyph: ProgressActivity, className: "animate-spin text-icon-md" }),
220
+ "Generating..."
221
+ ] }) : /* @__PURE__ */ jsxs("span", { className: "flex items-center justify-center gap-2", children: [
222
+ /* @__PURE__ */ jsx(IconGlyph, { glyph: QrCode_2, className: "text-icon-md" }),
223
+ "Generate Address"
224
+ ] }) }))
225
+ ] });
226
+ }
227
+
228
+ export {
229
+ DepositPreGeneration
230
+ };