@daimo/sdk 1.4.2 → 1.5.0

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 (297) hide show
  1. package/dist/client/createDaimoClient.d.ts +24 -6
  2. package/dist/client/createDaimoClient.d.ts.map +1 -1
  3. package/dist/client/createDaimoClient.js +47 -0
  4. package/dist/client/createDaimoClient.js.map +1 -1
  5. package/dist/common/account.d.ts +160 -21
  6. package/dist/common/account.d.ts.map +1 -1
  7. package/dist/common/account.js +12 -1
  8. package/dist/common/account.js.map +1 -1
  9. package/dist/common/api.d.ts +25 -12
  10. package/dist/common/api.d.ts.map +1 -1
  11. package/dist/common/api.js +11 -1
  12. package/dist/common/api.js.map +1 -1
  13. package/dist/common/index.d.ts +1 -0
  14. package/dist/common/index.d.ts.map +1 -1
  15. package/dist/common/index.js +1 -0
  16. package/dist/common/index.js.map +1 -1
  17. package/dist/common/session.d.ts +27 -3
  18. package/dist/common/session.d.ts.map +1 -1
  19. package/dist/common/session.js.map +1 -1
  20. package/dist/common/theme.d.ts +47 -0
  21. package/dist/common/theme.d.ts.map +1 -0
  22. package/dist/common/theme.js +230 -0
  23. package/dist/common/theme.js.map +1 -0
  24. package/dist/common/token.d.ts +6 -0
  25. package/dist/common/token.d.ts.map +1 -1
  26. package/dist/common/token.js +47 -1
  27. package/dist/common/token.js.map +1 -1
  28. package/dist/version.d.ts +1 -1
  29. package/dist/version.js +1 -1
  30. package/dist/web/accountWallet.d.ts +15 -0
  31. package/dist/web/accountWallet.d.ts.map +1 -0
  32. package/dist/web/accountWallet.js +44 -0
  33. package/dist/web/accountWallet.js.map +1 -0
  34. package/dist/web/api/index.d.ts +17 -11
  35. package/dist/web/api/index.d.ts.map +1 -1
  36. package/dist/web/api/navTree.d.ts +27 -5
  37. package/dist/web/api/navTree.d.ts.map +1 -1
  38. package/dist/web/components/ApplePayLogo.d.ts +9 -0
  39. package/dist/web/components/ApplePayLogo.d.ts.map +1 -0
  40. package/dist/web/components/ApplePayLogo.js +15 -0
  41. package/dist/web/components/ApplePayLogo.js.map +1 -0
  42. package/dist/web/components/ChooseChainPage.d.ts.map +1 -1
  43. package/dist/web/components/ChooseChainPage.js +3 -3
  44. package/dist/web/components/ChooseChainPage.js.map +1 -1
  45. package/dist/web/components/ChooseOptionPage.d.ts.map +1 -1
  46. package/dist/web/components/ChooseOptionPage.js +20 -7
  47. package/dist/web/components/ChooseOptionPage.js.map +1 -1
  48. package/dist/web/components/ChooseWalletPage.js +12 -3
  49. package/dist/web/components/ChooseWalletPage.js.map +1 -1
  50. package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
  51. package/dist/web/components/ConfirmationPage.js +2 -1
  52. package/dist/web/components/ConfirmationPage.js.map +1 -1
  53. package/dist/web/components/ConfirmationSpinner.d.ts +3 -1
  54. package/dist/web/components/ConfirmationSpinner.d.ts.map +1 -1
  55. package/dist/web/components/ConfirmationSpinner.js +7 -2
  56. package/dist/web/components/ConfirmationSpinner.js.map +1 -1
  57. package/dist/web/components/DaimoFrame.d.ts +51 -0
  58. package/dist/web/components/DaimoFrame.d.ts.map +1 -0
  59. package/dist/web/components/DaimoFrame.js +173 -0
  60. package/dist/web/components/DaimoFrame.js.map +1 -0
  61. package/dist/web/components/DaimoModal.d.ts.map +1 -1
  62. package/dist/web/components/DaimoModal.js +127 -52
  63. package/dist/web/components/DaimoModal.js.map +1 -1
  64. package/dist/web/components/DaimoModalPreview.d.ts +11 -0
  65. package/dist/web/components/DaimoModalPreview.d.ts.map +1 -0
  66. package/dist/web/components/DaimoModalPreview.js +98 -0
  67. package/dist/web/components/DaimoModalPreview.js.map +1 -0
  68. package/dist/web/components/DeeplinkPage.d.ts.map +1 -1
  69. package/dist/web/components/DeeplinkPage.js +4 -3
  70. package/dist/web/components/DeeplinkPage.js.map +1 -1
  71. package/dist/web/components/ErrorPage.d.ts.map +1 -1
  72. package/dist/web/components/ErrorPage.js +4 -1
  73. package/dist/web/components/ErrorPage.js.map +1 -1
  74. package/dist/web/components/ExchangePage.d.ts.map +1 -1
  75. package/dist/web/components/ExchangePage.js +8 -23
  76. package/dist/web/components/ExchangePage.js.map +1 -1
  77. package/dist/web/components/ExternalPaymentPage.d.ts +22 -0
  78. package/dist/web/components/ExternalPaymentPage.d.ts.map +1 -0
  79. package/dist/web/components/ExternalPaymentPage.js +24 -0
  80. package/dist/web/components/ExternalPaymentPage.js.map +1 -0
  81. package/dist/web/components/ModalChrome.d.ts +28 -0
  82. package/dist/web/components/ModalChrome.d.ts.map +1 -0
  83. package/dist/web/components/ModalChrome.js +64 -0
  84. package/dist/web/components/ModalChrome.js.map +1 -0
  85. package/dist/web/components/ModalSkeleton.d.ts.map +1 -1
  86. package/dist/web/components/ModalSkeleton.js +2 -4
  87. package/dist/web/components/ModalSkeleton.js.map +1 -1
  88. package/dist/web/components/SelectAmountPage.d.ts.map +1 -1
  89. package/dist/web/components/SelectAmountPage.js +2 -2
  90. package/dist/web/components/SelectAmountPage.js.map +1 -1
  91. package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
  92. package/dist/web/components/SelectTokenPage.js +8 -7
  93. package/dist/web/components/SelectTokenPage.js.map +1 -1
  94. package/dist/web/components/Skeleton.d.ts +19 -0
  95. package/dist/web/components/Skeleton.d.ts.map +1 -0
  96. package/dist/web/components/Skeleton.js +21 -0
  97. package/dist/web/components/Skeleton.js.map +1 -0
  98. package/dist/web/components/StripeOnrampPage.d.ts +3 -27
  99. package/dist/web/components/StripeOnrampPage.d.ts.map +1 -1
  100. package/dist/web/components/StripeOnrampPage.js +7 -116
  101. package/dist/web/components/StripeOnrampPage.js.map +1 -1
  102. package/dist/web/components/TokenAmountEntry.d.ts +9 -3
  103. package/dist/web/components/TokenAmountEntry.d.ts.map +1 -1
  104. package/dist/web/components/TokenAmountEntry.js +49 -27
  105. package/dist/web/components/TokenAmountEntry.js.map +1 -1
  106. package/dist/web/components/WaitingDepositAddressPage.d.ts +39 -0
  107. package/dist/web/components/WaitingDepositAddressPage.d.ts.map +1 -1
  108. package/dist/web/components/WaitingDepositAddressPage.js +61 -32
  109. package/dist/web/components/WaitingDepositAddressPage.js.map +1 -1
  110. package/dist/web/components/WalletAmountPage.d.ts.map +1 -1
  111. package/dist/web/components/WalletAmountPage.js +7 -4
  112. package/dist/web/components/WalletAmountPage.js.map +1 -1
  113. package/dist/web/components/account/AccountApplePayPage.d.ts +1 -1
  114. package/dist/web/components/account/AccountApplePayPage.d.ts.map +1 -1
  115. package/dist/web/components/account/AccountApplePayPage.js +26 -14
  116. package/dist/web/components/account/AccountApplePayPage.js.map +1 -1
  117. package/dist/web/components/account/AccountBankDetailsPage.d.ts +2 -1
  118. package/dist/web/components/account/AccountBankDetailsPage.d.ts.map +1 -1
  119. package/dist/web/components/account/AccountBankDetailsPage.js +166 -54
  120. package/dist/web/components/account/AccountBankDetailsPage.js.map +1 -1
  121. package/dist/web/components/account/AccountBankPickerPage.d.ts.map +1 -1
  122. package/dist/web/components/account/AccountBankPickerPage.js +15 -13
  123. package/dist/web/components/account/AccountBankPickerPage.js.map +1 -1
  124. package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts +3 -1
  125. package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts.map +1 -1
  126. package/dist/web/components/account/AccountBankTransferSubmittedPage.js +9 -3
  127. package/dist/web/components/account/AccountBankTransferSubmittedPage.js.map +1 -1
  128. package/dist/web/components/account/AccountCreatingWalletPage.d.ts.map +1 -1
  129. package/dist/web/components/account/AccountCreatingWalletPage.js +6 -4
  130. package/dist/web/components/account/AccountCreatingWalletPage.js.map +1 -1
  131. package/dist/web/components/account/AccountEmailPage.d.ts.map +1 -1
  132. package/dist/web/components/account/AccountEmailPage.js +20 -14
  133. package/dist/web/components/account/AccountEmailPage.js.map +1 -1
  134. package/dist/web/components/account/AccountEnrollmentPage.d.ts +7 -3
  135. package/dist/web/components/account/AccountEnrollmentPage.d.ts.map +1 -1
  136. package/dist/web/components/account/AccountEnrollmentPage.js +142 -107
  137. package/dist/web/components/account/AccountEnrollmentPage.js.map +1 -1
  138. package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts +10 -0
  139. package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts.map +1 -0
  140. package/dist/web/components/account/AccountEnrollmentUpdatePage.js +214 -0
  141. package/dist/web/components/account/AccountEnrollmentUpdatePage.js.map +1 -0
  142. package/dist/web/components/account/AccountFlowProvider.d.ts +1 -1
  143. package/dist/web/components/account/AccountFlowProvider.d.ts.map +1 -1
  144. package/dist/web/components/account/AccountFlowProvider.js +26 -20
  145. package/dist/web/components/account/AccountFlowProvider.js.map +1 -1
  146. package/dist/web/components/account/AccountKycInfoPage.d.ts +13 -0
  147. package/dist/web/components/account/AccountKycInfoPage.d.ts.map +1 -0
  148. package/dist/web/components/account/AccountKycInfoPage.js +37 -0
  149. package/dist/web/components/account/AccountKycInfoPage.js.map +1 -0
  150. package/dist/web/components/account/AccountOtpCodeEntry.d.ts +4 -1
  151. package/dist/web/components/account/AccountOtpCodeEntry.d.ts.map +1 -1
  152. package/dist/web/components/account/AccountOtpCodeEntry.js +46 -43
  153. package/dist/web/components/account/AccountOtpCodeEntry.js.map +1 -1
  154. package/dist/web/components/account/AccountPaymentPage.d.ts +3 -2
  155. package/dist/web/components/account/AccountPaymentPage.d.ts.map +1 -1
  156. package/dist/web/components/account/AccountPaymentPage.js +30 -18
  157. package/dist/web/components/account/AccountPaymentPage.js.map +1 -1
  158. package/dist/web/components/account/AccountPhoneOtpPage.d.ts.map +1 -1
  159. package/dist/web/components/account/AccountPhoneOtpPage.js +22 -9
  160. package/dist/web/components/account/AccountPhoneOtpPage.js.map +1 -1
  161. package/dist/web/components/account/AccountPhonePage.d.ts.map +1 -1
  162. package/dist/web/components/account/AccountPhonePage.js +30 -12
  163. package/dist/web/components/account/AccountPhonePage.js.map +1 -1
  164. package/dist/web/components/account/AccountRipioOtpPage.d.ts +7 -0
  165. package/dist/web/components/account/AccountRipioOtpPage.d.ts.map +1 -0
  166. package/dist/web/components/account/AccountRipioOtpPage.js +53 -0
  167. package/dist/web/components/account/AccountRipioOtpPage.js.map +1 -0
  168. package/dist/web/components/account/AccountStatusPage.d.ts +1 -3
  169. package/dist/web/components/account/AccountStatusPage.d.ts.map +1 -1
  170. package/dist/web/components/account/AccountStatusPage.js +29 -39
  171. package/dist/web/components/account/AccountStatusPage.js.map +1 -1
  172. package/dist/web/components/account/accountNav.d.ts +1 -1
  173. package/dist/web/components/account/accountNav.d.ts.map +1 -1
  174. package/dist/web/components/account/accountNav.js +5 -1
  175. package/dist/web/components/account/accountNav.js.map +1 -1
  176. package/dist/web/components/account/formSchemas.d.ts +81 -0
  177. package/dist/web/components/account/formSchemas.d.ts.map +1 -0
  178. package/dist/web/components/account/formSchemas.js +80 -0
  179. package/dist/web/components/account/formSchemas.js.map +1 -0
  180. package/dist/web/components/account/formSchemas.test.d.ts +2 -0
  181. package/dist/web/components/account/formSchemas.test.d.ts.map +1 -0
  182. package/dist/web/components/account/formSchemas.test.js +57 -0
  183. package/dist/web/components/account/formSchemas.test.js.map +1 -0
  184. package/dist/web/components/account/kycRequirement.d.ts +14 -0
  185. package/dist/web/components/account/kycRequirement.d.ts.map +1 -0
  186. package/dist/web/components/account/kycRequirement.js +48 -0
  187. package/dist/web/components/account/kycRequirement.js.map +1 -0
  188. package/dist/web/components/account/phone.d.ts +2 -1
  189. package/dist/web/components/account/phone.d.ts.map +1 -1
  190. package/dist/web/components/account/phone.js +11 -2
  191. package/dist/web/components/account/phone.js.map +1 -1
  192. package/dist/web/components/buttons.d.ts +3 -2
  193. package/dist/web/components/buttons.d.ts.map +1 -1
  194. package/dist/web/components/buttons.js +4 -4
  195. package/dist/web/components/buttons.js.map +1 -1
  196. package/dist/web/components/containers.d.ts +7 -2
  197. package/dist/web/components/containers.d.ts.map +1 -1
  198. package/dist/web/components/containers.js +73 -30
  199. package/dist/web/components/containers.js.map +1 -1
  200. package/dist/web/components/formFields.d.ts +39 -0
  201. package/dist/web/components/formFields.d.ts.map +1 -0
  202. package/dist/web/components/formFields.js +70 -0
  203. package/dist/web/components/formFields.js.map +1 -0
  204. package/dist/web/components/icons.d.ts +17 -1
  205. package/dist/web/components/icons.d.ts.map +1 -1
  206. package/dist/web/components/icons.js +30 -2
  207. package/dist/web/components/icons.js.map +1 -1
  208. package/dist/web/components/shared.d.ts +1 -1
  209. package/dist/web/components/shared.d.ts.map +1 -1
  210. package/dist/web/components/shared.js +22 -22
  211. package/dist/web/components/shared.js.map +1 -1
  212. package/dist/web/formatAmount.d.ts +5 -0
  213. package/dist/web/formatAmount.d.ts.map +1 -0
  214. package/dist/web/formatAmount.js +53 -0
  215. package/dist/web/formatAmount.js.map +1 -0
  216. package/dist/web/formatAmount.test.d.ts +2 -0
  217. package/dist/web/formatAmount.test.d.ts.map +1 -0
  218. package/dist/web/formatAmount.test.js +43 -0
  219. package/dist/web/formatAmount.test.js.map +1 -0
  220. package/dist/web/hooks/accountAuthNav.d.ts +3 -0
  221. package/dist/web/hooks/accountAuthNav.d.ts.map +1 -0
  222. package/dist/web/hooks/accountAuthNav.js +24 -0
  223. package/dist/web/hooks/accountAuthNav.js.map +1 -0
  224. package/dist/web/hooks/accountAuthNav.test.d.ts +2 -0
  225. package/dist/web/hooks/accountAuthNav.test.d.ts.map +1 -0
  226. package/dist/web/hooks/accountAuthNav.test.js +32 -0
  227. package/dist/web/hooks/accountAuthNav.test.js.map +1 -0
  228. package/dist/web/hooks/formatUserError.d.ts.map +1 -1
  229. package/dist/web/hooks/formatUserError.js +13 -2
  230. package/dist/web/hooks/formatUserError.js.map +1 -1
  231. package/dist/web/hooks/locale.d.ts +2 -0
  232. package/dist/web/hooks/locale.d.ts.map +1 -1
  233. package/dist/web/hooks/locale.js +41 -4
  234. package/dist/web/hooks/locale.js.map +1 -1
  235. package/dist/web/hooks/locale.test.d.ts +2 -0
  236. package/dist/web/hooks/locale.test.d.ts.map +1 -0
  237. package/dist/web/hooks/locale.test.js +41 -0
  238. package/dist/web/hooks/locale.test.js.map +1 -0
  239. package/dist/web/hooks/locales/en.d.ts +26 -2
  240. package/dist/web/hooks/locales/en.d.ts.map +1 -1
  241. package/dist/web/hooks/locales/en.js +36 -12
  242. package/dist/web/hooks/locales/en.js.map +1 -1
  243. package/dist/web/hooks/locales/es.d.ts.map +1 -1
  244. package/dist/web/hooks/locales/es.js +35 -11
  245. package/dist/web/hooks/locales/es.js.map +1 -1
  246. package/dist/web/hooks/locales/ja.d.ts.map +1 -1
  247. package/dist/web/hooks/locales/ja.js +36 -12
  248. package/dist/web/hooks/locales/ja.js.map +1 -1
  249. package/dist/web/hooks/locales/ko.d.ts.map +1 -1
  250. package/dist/web/hooks/locales/ko.js +36 -12
  251. package/dist/web/hooks/locales/ko.js.map +1 -1
  252. package/dist/web/hooks/locales/pt.d.ts +4 -0
  253. package/dist/web/hooks/locales/pt.d.ts.map +1 -0
  254. package/dist/web/hooks/locales/pt.js +164 -0
  255. package/dist/web/hooks/locales/pt.js.map +1 -0
  256. package/dist/web/hooks/locales/zh.d.ts.map +1 -1
  257. package/dist/web/hooks/locales/zh.js +36 -12
  258. package/dist/web/hooks/locales/zh.js.map +1 -1
  259. package/dist/web/hooks/navEvent.js +2 -2
  260. package/dist/web/hooks/navEvent.js.map +1 -1
  261. package/dist/web/hooks/types.d.ts +15 -3
  262. package/dist/web/hooks/types.d.ts.map +1 -1
  263. package/dist/web/hooks/types.js.map +1 -1
  264. package/dist/web/hooks/useAccountFlow.d.ts +17 -11
  265. package/dist/web/hooks/useAccountFlow.d.ts.map +1 -1
  266. package/dist/web/hooks/useAccountFlow.js +71 -28
  267. package/dist/web/hooks/useAccountFlow.js.map +1 -1
  268. package/dist/web/hooks/useCreateDeposit.d.ts +1 -1
  269. package/dist/web/hooks/useCreateDeposit.d.ts.map +1 -1
  270. package/dist/web/hooks/useCreateDeposit.js +15 -103
  271. package/dist/web/hooks/useCreateDeposit.js.map +1 -1
  272. package/dist/web/hooks/useDraftDeposit.d.ts +2 -1
  273. package/dist/web/hooks/useDraftDeposit.d.ts.map +1 -1
  274. package/dist/web/hooks/useDraftDeposit.js +18 -1
  275. package/dist/web/hooks/useDraftDeposit.js.map +1 -1
  276. package/dist/web/hooks/useSessionNav.d.ts +6 -3
  277. package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
  278. package/dist/web/hooks/useSessionNav.js +131 -39
  279. package/dist/web/hooks/useSessionNav.js.map +1 -1
  280. package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
  281. package/dist/web/hooks/useWalletFlow.js +74 -26
  282. package/dist/web/hooks/useWalletFlow.js.map +1 -1
  283. package/dist/web/hooks/walletError.d.ts +9 -0
  284. package/dist/web/hooks/walletError.d.ts.map +1 -0
  285. package/dist/web/hooks/walletError.js +16 -0
  286. package/dist/web/hooks/walletError.js.map +1 -0
  287. package/dist/web/index.d.ts +7 -1
  288. package/dist/web/index.d.ts.map +1 -1
  289. package/dist/web/index.js +3 -0
  290. package/dist/web/index.js.map +1 -1
  291. package/dist/web/styles.css +1 -1
  292. package/dist/web/theme.css +1 -1
  293. package/dist/web/theme.d.ts +7 -0
  294. package/dist/web/theme.d.ts.map +1 -0
  295. package/dist/web/theme.js +23 -0
  296. package/dist/web/theme.js.map +1 -0
  297. package/package.json +7 -4
@@ -0,0 +1,98 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { TokenLogo } from "../../common/token.js";
3
+ import { daimoModalThemeToCssVars } from "../theme.js";
4
+ import { ChooseOptionPage } from "./ChooseOptionPage.js";
5
+ import { MODAL_CONTENT_CLASS } from "./containers.js";
6
+ import { CheckIcon, CloseIcon, DaimoLogoIcon, ErrorIcon } from "./icons.js";
7
+ import { QRCode } from "./QRCode.js";
8
+ import { Skeleton } from "./Skeleton.js";
9
+ const PREVIEW_NODE = {
10
+ type: "ChooseOption",
11
+ id: "preview-root",
12
+ title: "Pay $25.00",
13
+ options: [
14
+ {
15
+ type: "ConnectedWallet",
16
+ id: "preview-wallet",
17
+ title: "Wallet",
18
+ icons: [
19
+ "/wallet-logos/metamask-logo.svg",
20
+ "/wallet-logos/rainbow-logo.svg",
21
+ "/wallet-logos/phantom-logo.svg",
22
+ "/chain-logos/base.svg",
23
+ ],
24
+ },
25
+ {
26
+ type: "DepositAddress",
27
+ id: "preview-deposit-address",
28
+ title: "Deposit address",
29
+ icons: [TokenLogo.USDC, TokenLogo.USDT],
30
+ address: "0x1111111111111111111111111111111111111111",
31
+ chainId: 8453,
32
+ minimumUsd: 1,
33
+ maximumUsd: 10000,
34
+ expiresAt: 0,
35
+ tokenSuffix: "USDC",
36
+ },
37
+ {
38
+ type: "Exchange",
39
+ id: "preview-coinbase",
40
+ title: "Coinbase",
41
+ exchangeId: "Coinbase",
42
+ icon: "/exchange-logos/coinbase-logo.svg",
43
+ minimumUsd: 1,
44
+ maximumUsd: 10000,
45
+ },
46
+ {
47
+ type: "Fiat",
48
+ id: "preview-apple-pay",
49
+ title: "Apple Pay",
50
+ fiatMethod: "apple_pay",
51
+ icon: "/payment-logos/apple.svg",
52
+ kycRequirement: {
53
+ kind: "phone",
54
+ icon: "shield",
55
+ label: "Phone verification",
56
+ rowLabel: "Verify phone ~1 min",
57
+ detailTitle: "Verify your phone",
58
+ summary: "Phone verification is required before using Apple Pay.",
59
+ requirements: [{ id: "phone_number", label: "Phone number" }],
60
+ estimatedTime: "~1 min",
61
+ },
62
+ },
63
+ ],
64
+ };
65
+ export function DaimoModalPreview({ theme, mode = "light", variant = "options", baseUrl = "", }) {
66
+ return (_jsx("div", { style: daimoModalThemeToCssVars(theme, mode), className: "daimo-mt-5 daimo-flex daimo-min-h-[520px] daimo-items-center daimo-justify-center daimo-overflow-hidden daimo-rounded-lg daimo-border daimo-border-[var(--daimo-border)] daimo-bg-[var(--daimo-bg)] daimo-p-6", children: _jsxs("div", { className: MODAL_CONTENT_CLASS, children: [_jsx("button", { type: "button", "aria-label": "Close preview", className: "daimo-absolute daimo-right-[17px] daimo-top-[22px] daimo-z-20 daimo-w-8 daimo-h-8 daimo-flex daimo-items-center daimo-justify-center daimo-rounded-full daimo-bg-[var(--daimo-surface)] hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)] active:daimo-scale-[0.9] daimo-transition-[background-color,transform] daimo-[transition-duration:200ms,100ms] daimo-ease daimo-touch-action-manipulation", children: _jsx(CloseIcon, {}) }), _jsx(PreviewContent, { variant: variant, baseUrl: baseUrl })] }) }));
67
+ }
68
+ function PreviewContent({ variant, baseUrl, }) {
69
+ switch (variant) {
70
+ case "options":
71
+ return (_jsx(ChooseOptionPage, { node: PREVIEW_NODE, onNavigate: () => { }, onBack: null, baseUrl: baseUrl }));
72
+ case "loading":
73
+ return _jsx(LoadingPreview, {});
74
+ case "semantic":
75
+ return _jsx(SemanticPreview, {});
76
+ case "qr":
77
+ return _jsx(QrPreview, {});
78
+ }
79
+ }
80
+ function LoadingPreview() {
81
+ return (_jsxs("div", { className: "daimo-flex daimo-min-h-[420px] daimo-flex-1 daimo-flex-col daimo-px-6 daimo-py-5", children: [_jsx("div", { className: "daimo-flex daimo-h-10 daimo-items-center daimo-justify-center", children: _jsx(Skeleton, { className: "daimo-h-5 daimo-w-32", rounded: "sm" }) }), _jsx("div", { className: "daimo-mt-8 daimo-flex daimo-flex-col daimo-gap-3", children: [0, 1, 2, 3].map((i) => (_jsx(Skeleton, { className: "daimo-h-16 daimo-w-full", rounded: "lg", delayMs: i * 100 }, i))) })] }));
82
+ }
83
+ function SemanticPreview() {
84
+ return (_jsxs("div", { className: "daimo-flex daimo-min-h-[420px] daimo-flex-1 daimo-flex-col daimo-px-6 daimo-py-5", children: [_jsx("h1", { className: "daimo-text-center daimo-text-lg daimo-font-semibold daimo-text-[var(--daimo-title)]", children: "Payment states" }), _jsxs("div", { className: "daimo-mt-6 daimo-grid daimo-gap-3", children: [_jsx(StateRow, { label: "Completed", description: "Funds delivered", bg: "var(--daimo-success-light)", border: "var(--daimo-success)", icon: _jsx(CheckIcon, { className: "daimo-text-[var(--daimo-checkmark)]", size: 22 }) }), _jsx(StateRow, { label: "Processing", description: "Payment received", bg: "var(--daimo-warning-light)", border: "var(--daimo-warning)", icon: _jsx(StatusDot, { color: "var(--daimo-warning)" }) }), _jsx(StateRow, { label: "Failed", description: "Payment blocked", bg: "var(--daimo-error-light)", border: "var(--daimo-error)", icon: _jsx("span", { className: "daimo-flex daimo-h-8 daimo-w-8 daimo-items-center daimo-justify-center daimo-rounded-full", style: {
85
+ backgroundColor: "var(--daimo-error-badge-bg)",
86
+ boxShadow: "inset 0 0 0 1px var(--daimo-error-badge-ring)",
87
+ }, children: _jsx(ErrorIcon, { size: 20 }) }) })] }), _jsxs("div", { className: "daimo-mt-6 daimo-rounded-[var(--daimo-radius-lg)] daimo-border daimo-border-[var(--daimo-accent)] daimo-p-4", children: [_jsx("div", { className: "daimo-text-sm daimo-font-semibold daimo-text-[var(--daimo-text)]", children: "Checkout progress" }), _jsx("div", { className: "daimo-mt-3 daimo-h-2 daimo-overflow-hidden daimo-rounded-full daimo-bg-[var(--daimo-surface-secondary)]", children: _jsx("div", { className: "daimo-h-full daimo-w-2/3 daimo-rounded-full daimo-bg-[var(--daimo-accent)]" }) })] })] }));
88
+ }
89
+ function StateRow({ label, description, bg, border, icon, }) {
90
+ return (_jsxs("div", { className: "daimo-flex daimo-min-h-[72px] daimo-items-center daimo-gap-3 daimo-rounded-[var(--daimo-radius-lg)] daimo-p-3", style: { backgroundColor: bg, border: `1px solid ${border}` }, children: [_jsx("div", { className: "daimo-flex daimo-h-10 daimo-w-10 daimo-shrink-0 daimo-items-center daimo-justify-center", children: icon }), _jsxs("div", { className: "daimo-min-w-0", children: [_jsx("div", { className: "daimo-text-sm daimo-font-semibold daimo-text-[var(--daimo-text)]", children: label }), _jsx("div", { className: "daimo-text-sm daimo-text-[var(--daimo-text-secondary)]", children: description })] })] }));
91
+ }
92
+ function StatusDot({ color }) {
93
+ return (_jsx("span", { className: "daimo-block daimo-h-4 daimo-w-4 daimo-rounded-full", style: { backgroundColor: color } }));
94
+ }
95
+ function QrPreview() {
96
+ return (_jsxs("div", { className: "daimo-flex daimo-min-h-[420px] daimo-flex-1 daimo-flex-col daimo-items-center daimo-justify-center daimo-px-6 daimo-py-5", children: [_jsx("h1", { className: "daimo-text-center daimo-text-lg daimo-font-semibold daimo-text-[var(--daimo-title)]", children: "Scan to pay" }), _jsx("p", { className: "daimo-mt-1 daimo-text-center daimo-text-sm daimo-text-[var(--daimo-text-secondary)]", children: "Open your wallet and scan this code." }), _jsx("div", { className: "daimo-mt-6 daimo-w-full daimo-max-w-[260px]", children: _jsx(QRCode, { value: "https://daimo.com/deposit?session=preview-theme", image: _jsx(DaimoLogoIcon, { className: "daimo-text-[var(--daimo-qr-dot)]", size: 48 }) }) })] }));
97
+ }
98
+ //# sourceMappingURL=DaimoModalPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaimoModalPreview.js","sourceRoot":"","sources":["../../../src/web/components/DaimoModalPreview.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeeplinkPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE,iBAAiB,2CAkDnB"}
1
+ {"version":3,"file":"DeeplinkPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE,iBAAiB,2CAqDnB"}
@@ -2,19 +2,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
3
3
  import { t } from "../hooks/locale.js";
4
4
  import { isDesktop } from "../platform.js";
5
- import { CenteredContent, PageHeader, PageLogo, resolveIconUrl } from "./shared.js";
5
+ import { CenteredContent, PageHeader, PageLogo, resolveIconUrl, } from "./shared.js";
6
6
  import { QRCode } from "./QRCode.js";
7
7
  /** Mobile wallet deeplink page. Opens directly on mobile; shows as QR code on desktop. */
8
8
  export function DeeplinkPage({ node, platform, onBack, baseUrl, }) {
9
9
  const desktop = isDesktop(platform);
10
+ const pageIcon = node.pageIcon ?? node.icon;
10
11
  if (desktop) {
11
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: node.url, image: node.icon ? (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) }), _jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm", children: t.scanWithPhone })] })] }));
12
+ return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: node.url, image: pageIcon ? (_jsx("img", { src: resolveIconUrl(pageIcon, baseUrl), alt: node.title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) }), _jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm", children: t.scanWithPhone })] })] }));
12
13
  }
13
14
  const openDeeplink = () => {
14
15
  if (node.url) {
15
16
  window.open(node.url, "_blank");
16
17
  }
17
18
  };
18
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [node.icon && _jsx(PageLogo, { icon: node.icon, alt: node.title, baseUrl: baseUrl }), _jsxs("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs", children: [t.continueIn, " ", node.title, " ", t.toCompleteYourPayment] }), _jsxs(PrimaryButton, { onClick: openDeeplink, icon: _jsx(ExternalLinkIcon, {}), children: [t.openIn, " ", node.title] })] })] }));
19
+ return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [pageIcon && (_jsx(PageLogo, { icon: pageIcon, alt: node.title, baseUrl: baseUrl })), _jsxs("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs", children: [t.continueIn, " ", node.title, " ", t.toCompleteYourPayment] }), _jsxs(PrimaryButton, { onClick: openDeeplink, icon: _jsx(ExternalLinkIcon, {}), children: [t.openIn, " ", node.title] })] })] }));
19
20
  }
20
21
  //# sourceMappingURL=DeeplinkPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeeplinkPage.js","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACW;IAClB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,eAAe,eACd,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,MAAM,IACL,KAAK,EAAE,IAAI,CAAC,GAAG,EACf,KAAK,EACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACV,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EACvC,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,oEAAoE,GAC9E,CACH,CAAC,CAAC,CAAC,SAAS,GAEf,GACE,EACN,YAAG,SAAS,EAAC,yFAAyF,YACnG,CAAC,CAAC,aAAa,GACd,IACY,IACd,CACP,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,eAAe,eACb,IAAI,CAAC,IAAI,IAAI,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,EAC9E,aAAG,SAAS,EAAC,2EAA2E,aACrF,CAAC,CAAC,UAAU,OAAG,IAAI,CAAC,KAAK,OAAG,CAAC,CAAC,qBAAqB,IAClD,EACJ,MAAC,aAAa,IAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAC,gBAAgB,KAAG,aAC7D,CAAC,CAAC,MAAM,OAAG,IAAI,CAAC,KAAK,IACR,IACA,IACd,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"DeeplinkPage.js","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACW;IAClB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;IAE5C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,eAAe,eACd,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,MAAM,IACL,KAAK,EAAE,IAAI,CAAC,GAAG,EACf,KAAK,EACH,QAAQ,CAAC,CAAC,CAAC,CACT,cACE,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EACtC,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,oEAAoE,GAC9E,CACH,CAAC,CAAC,CAAC,SAAS,GAEf,GACE,EACN,YAAG,SAAS,EAAC,yFAAyF,YACnG,CAAC,CAAC,aAAa,GACd,IACY,IACd,CACP,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,eAAe,eACb,QAAQ,IAAI,CACX,KAAC,QAAQ,IAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAChE,EACD,aAAG,SAAS,EAAC,2EAA2E,aACrF,CAAC,CAAC,UAAU,OAAG,IAAI,CAAC,KAAK,OAAG,CAAC,CAAC,qBAAqB,IAClD,EACJ,MAAC,aAAa,IAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAC,gBAAgB,KAAG,aAC7D,CAAC,CAAC,MAAM,OAAG,IAAI,CAAC,KAAK,IACR,IACA,IACd,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYzE,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAoB,EACpB,OAAO,EACP,cAAwB,EACxB,WAAgB,EAChB,SAAS,EACT,YAAiB,EACjB,MAAa,EACb,QAAe,EACf,SAAiB,GAClB,EAAE,cAAc,2CAwDhB"}
1
+ {"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYzE,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAoB,EACpB,OAAO,EACP,cAAwB,EACxB,WAAgB,EAChB,SAAS,EACT,YAAiB,EACjB,MAAa,EACb,QAAe,EACf,SAAiB,GAClB,EAAE,cAAc,2CA2DhB"}
@@ -42,7 +42,10 @@ export function ErrorPage({ message, retryText = t.reload, onRetry, supportSubje
42
42
  window.location.reload();
43
43
  }
44
44
  };
45
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.error }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-justify-center daimo-p-6 daimo-gap-6", children: [_jsx("div", { className: "daimo-w-20 daimo-h-20 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: { backgroundColor: "var(--daimo-error-light)" }, children: _jsx(ErrorIcon, {}) }), _jsx(ErrorMessage, { message: displayMessage }), !hideRetry && (_jsx(SecondaryButton, { onClick: handleRetry, children: retryText })), _jsx(ContactSupportButton, { subject: supportSubject, info: {
45
+ return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.error }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-justify-center daimo-p-6 daimo-gap-6", children: [_jsx("div", { className: "daimo-w-20 daimo-h-20 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: {
46
+ backgroundColor: "var(--daimo-error-badge-bg)",
47
+ boxShadow: "inset 0 0 0 1px var(--daimo-error-badge-ring)",
48
+ }, children: _jsx(ErrorIcon, {}) }), _jsx(ErrorMessage, { message: displayMessage }), !hideRetry && (_jsx(SecondaryButton, { onClick: handleRetry, children: retryText })), _jsx(ContactSupportButton, { subject: supportSubject, info: {
46
49
  ...(sessionId ? { sessionId } : {}),
47
50
  error: displayMessage,
48
51
  ...supportInfo,
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExchangePage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,GAAG,cAAc,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,iBAAiB,2CA6EnB"}
1
+ {"version":3,"file":"ExchangePage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,GAAG,cAAc,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,iBAAiB,2CA6BnB"}
@@ -1,30 +1,15 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
3
2
  import { t } from "../hooks/locale.js";
4
3
  import { isDesktop } from "../platform.js";
5
- import { CenteredContent, PageHeader, PageLogo, resolveIconUrl, } from "./shared.js";
6
- import { QRCode } from "./QRCode.js";
4
+ import { ExternalPaymentPage } from "./ExternalPaymentPage.js";
7
5
  export function ExchangePage({ node, platform, exchangeUrl, waitingMessage, isLoading, onBack, baseUrl, }) {
8
- const desktop = isDesktop(platform);
9
6
  const exchangeId = node.type === "CashApp" ? "CashApp" : node.exchangeId;
10
- const showQR = desktop && exchangeId !== "Coinbase";
7
+ const desktopBehavior = exchangeId === "Coinbase" || exchangeId === "MtPelerin" ? "popup" : "qr";
8
+ const usesDesktopQR = isDesktop(platform) && desktopBehavior === "qr";
11
9
  const placeholderDensity = exchangeId === "Binance" ? "medium" : "short";
12
- const openExchange = () => {
13
- if (!exchangeUrl)
14
- return;
15
- if (desktop && exchangeId === "Coinbase") {
16
- window.open(exchangeUrl, "coinbase", "width=500,height=700");
17
- }
18
- else {
19
- window.open(exchangeUrl, "_blank");
20
- }
21
- };
22
- // Desktop QR view for Binance, Lemon, CashApp
23
- if (showQR) {
24
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack }), _jsxs(CenteredContent, { children: [_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: exchangeUrl, placeholderDensity: placeholderDensity, image: node.icon ? (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) }), exchangeUrl && (_jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm daimo-whitespace-pre-line", children: waitingMessage || t.scanWithPhone }))] })] }));
25
- }
26
- // Mobile (all exchanges) and desktop Coinbase (popup)
27
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack }), _jsxs(CenteredContent, { children: [node.icon && (_jsx(PageLogo, { icon: node.icon, alt: node.title, baseUrl: baseUrl })), isLoading ? (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-items-center daimo-gap-2 daimo-max-w-xs daimo-w-full", children: [_jsx("div", { className: "daimo-h-4 daimo-w-4/5 daimo-rounded daimo-bg-[var(--daimo-surface-secondary)] daimo-animate-daimo-pulse" }), _jsx("div", { className: "daimo-h-4 daimo-w-3/5 daimo-rounded daimo-bg-[var(--daimo-surface-secondary)] daimo-animate-daimo-pulse" })] })) : (_jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-whitespace-pre-line", children: waitingMessage ||
28
- `${t.continueTo} ${node.title} ${t.toCompleteYourDeposit}` })), _jsxs(PrimaryButton, { onClick: openExchange, icon: _jsx(ExternalLinkIcon, {}), disabled: isLoading, children: [t.open, " ", node.title] })] })] }));
10
+ return (_jsx(ExternalPaymentPage, { title: node.title, platform: platform, url: exchangeUrl, icon: node.icon, message: waitingMessage ||
11
+ (usesDesktopQR
12
+ ? t.scanWithPhone
13
+ : `${t.continueTo} ${node.title} ${t.toCompleteYourDeposit}`), isLoading: isLoading, onBack: onBack, baseUrl: baseUrl, desktopBehavior: desktopBehavior, popupName: exchangeId.toLowerCase(), placeholderDensity: placeholderDensity }));
29
14
  }
30
15
  //# sourceMappingURL=ExchangePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExchangePage.js","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExchangePage.js","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAc/D,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,EACN,OAAO,GACW;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACzE,MAAM,eAAe,GACnB,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,eAAe,KAAK,IAAI,CAAC;IAEtE,MAAM,kBAAkB,GACtB,UAAU,KAAK,SAAS,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAE,OAAiB,CAAC;IAEtE,OAAO,CACL,KAAC,mBAAmB,IAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EACL,cAAc;YACd,CAAC,aAAa;gBACZ,CAAC,CAAC,CAAC,CAAC,aAAa;gBACjB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC,EAEjE,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,EACnC,kBAAkB,EAAE,kBAAkB,GACtC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type DaimoPlatform } from "../platform.js";
2
+ type QRDensity = "short" | "medium" | "long";
3
+ type DesktopBehavior = "popup" | "qr";
4
+ type ExternalPaymentPageProps = {
5
+ title: string;
6
+ platform: DaimoPlatform;
7
+ url?: string;
8
+ icon?: string;
9
+ message: string;
10
+ isLoading?: boolean;
11
+ onBack: () => void;
12
+ baseUrl: string;
13
+ desktopBehavior: DesktopBehavior;
14
+ openLabel?: string;
15
+ popupName?: string;
16
+ popupFeatures?: string;
17
+ placeholderDensity?: QRDensity;
18
+ };
19
+ /** Shared handoff page for providers that complete payment outside the modal. */
20
+ export declare function ExternalPaymentPage({ title, platform, url, icon, message, isLoading, onBack, baseUrl, desktopBehavior, openLabel, popupName, popupFeatures, placeholderDensity, }: ExternalPaymentPageProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=ExternalPaymentPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalPaymentPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ExternalPaymentPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/D,KAAK,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC7C,KAAK,eAAe,GAAG,OAAO,GAAG,IAAI,CAAC;AAEtC,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC,CAAC;AAIF,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,eAAe,EACf,SAAgC,EAChC,SAAS,EACT,aAAsC,EACtC,kBAAkB,GACnB,EAAE,wBAAwB,2CAuD1B"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from "../hooks/locale.js";
3
+ import { isDesktop } from "../platform.js";
4
+ import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
5
+ import { QRCode } from "./QRCode.js";
6
+ import { SkeletonText } from "./Skeleton.js";
7
+ import { CenteredContent, PageHeader, PageLogo, resolveIconUrl, } from "./shared.js";
8
+ const DEFAULT_POPUP_FEATURES = "width=500,height=700";
9
+ /** Shared handoff page for providers that complete payment outside the modal. */
10
+ export function ExternalPaymentPage({ title, platform, url, icon, message, isLoading, onBack, baseUrl, desktopBehavior, openLabel = `${t.open} ${title}`, popupName, popupFeatures = DEFAULT_POPUP_FEATURES, placeholderDensity, }) {
11
+ const desktop = isDesktop(platform);
12
+ const showQR = desktop && desktopBehavior === "qr";
13
+ const openProvider = () => {
14
+ if (!url)
15
+ return;
16
+ if (desktop && desktopBehavior === "popup") {
17
+ window.open(url, popupName ?? title.toLowerCase(), popupFeatures);
18
+ return;
19
+ }
20
+ window.open(url, "_blank");
21
+ };
22
+ return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: title, onBack: onBack }), _jsxs(CenteredContent, { children: [showQR ? (_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: url, placeholderDensity: placeholderDensity, image: icon ? (_jsx("img", { src: resolveIconUrl(icon, baseUrl), alt: title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) })) : (icon && _jsx(PageLogo, { icon: icon, alt: title, baseUrl: baseUrl })), isLoading ? (_jsx(SkeletonText, { className: "daimo-max-w-xs", widths: ["80%", "60%"] })) : (_jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm daimo-whitespace-pre-line", children: message })), !showQR && (_jsx(PrimaryButton, { onClick: openProvider, icon: _jsx(ExternalLinkIcon, {}), disabled: !url || isLoading, children: openLabel }))] })] }));
23
+ }
24
+ //# sourceMappingURL=ExternalPaymentPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalPaymentPage.js","sourceRoot":"","sources":["../../../src/web/components/ExternalPaymentPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,aAAa,CAAC;AAqBrB,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAEtD,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,eAAe,EACf,SAAS,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,EAChC,SAAS,EACT,aAAa,GAAG,sBAAsB,EACtC,kBAAkB,GACO;IACzB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,IAAI,eAAe,KAAK,IAAI,CAAC;IAEnD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,OAAO,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,EAC5C,MAAC,eAAe,eACb,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,MAAM,IACL,KAAK,EAAE,GAAG,EACV,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EACH,IAAI,CAAC,CAAC,CAAC,CACL,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,oEAAoE,GAC9E,CACH,CAAC,CAAC,CAAC,SAAS,GAEf,GACE,CACP,CAAC,CAAC,CAAC,CACF,IAAI,IAAI,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAC/D,EACA,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,SAAS,EAAC,gBAAgB,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAI,CACpE,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,mHAAmH,YAC7H,OAAO,GACN,CACL,EACA,CAAC,MAAM,IAAI,CACV,KAAC,aAAa,IACZ,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,KAAC,gBAAgB,KAAG,EAC1B,QAAQ,EAAE,CAAC,GAAG,IAAI,SAAS,YAE1B,SAAS,GACI,CACjB,IACe,IACd,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type ReactNode } from "react";
2
+ type AccountControl = {
3
+ email: string;
4
+ onLogout: () => Promise<void>;
5
+ };
6
+ type CloseControl = {
7
+ onClose: () => void;
8
+ };
9
+ export type ModalChromeControls = {
10
+ type: "account";
11
+ account: AccountControl;
12
+ } | {
13
+ type: "account-close";
14
+ account: AccountControl;
15
+ close: CloseControl;
16
+ } | {
17
+ type: "close";
18
+ close: CloseControl;
19
+ } | {
20
+ type: "none";
21
+ };
22
+ type ModalChromeProps = {
23
+ controls: ModalChromeControls;
24
+ children: (dismissAccount: (() => void) | null) => ReactNode;
25
+ };
26
+ export declare function ModalChrome({ controls, children }: ModalChromeProps): import("react/jsx-runtime").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=ModalChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalChrome.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModalChrome.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAYf,KAAK,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AACvE,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC;CAC9D,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA6EnE"}
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState, } from "react";
3
+ import { t } from "../hooks/locale.js";
4
+ import { useCopyToClipboard } from "../hooks/useCopyToClipboard.js";
5
+ import { CloseIcon, CopyIcon, EllipsisIcon, EmailIcon, LogoutIcon, } from "./icons.js";
6
+ export function ModalChrome({ controls, children }) {
7
+ const [accountOpen, setAccountOpen] = useState(false);
8
+ useEffect(() => {
9
+ if (controls.type === "none" || controls.type === "close") {
10
+ setAccountOpen(false);
11
+ }
12
+ }, [controls.type]);
13
+ const dismissAccount = useCallback(() => setAccountOpen(false), []);
14
+ const accountButton = () => (_jsx(ChromeIconButton, { label: "Account", expanded: accountOpen, onClick: () => setAccountOpen(true), children: _jsx(EllipsisIcon, {}) }));
15
+ const closeButton = (close) => (_jsx(ChromeIconButton, { label: t.close, onClick: close.onClose, children: _jsx(CloseIcon, {}) }));
16
+ let actions = null;
17
+ let banner = null;
18
+ let hasAccount = false;
19
+ switch (controls.type) {
20
+ case "none":
21
+ break;
22
+ case "account":
23
+ hasAccount = true;
24
+ actions = accountButton();
25
+ banner = (_jsx(AccountBanner, { account: controls.account, open: accountOpen, onDismiss: dismissAccount }));
26
+ break;
27
+ case "close":
28
+ actions = closeButton(controls.close);
29
+ break;
30
+ case "account-close":
31
+ hasAccount = true;
32
+ actions = (_jsxs(_Fragment, { children: [accountButton(), closeButton(controls.close)] }));
33
+ banner = (_jsx(AccountBanner, { account: controls.account, open: accountOpen, onDismiss: dismissAccount }));
34
+ break;
35
+ default:
36
+ assertNever(controls);
37
+ }
38
+ return (_jsxs(_Fragment, { children: [actions && (_jsx("div", { className: "daimo-absolute daimo-right-[17px] daimo-top-[22px] daimo-z-20 daimo-flex daimo-h-8 daimo-items-center daimo-gap-0", children: actions })), banner, children(hasAccount && accountOpen ? dismissAccount : null)] }));
39
+ }
40
+ function AccountBanner({ account, open, onDismiss, }) {
41
+ const { copy, copied } = useCopyToClipboard(1200);
42
+ const handleCopy = useCallback((event) => {
43
+ event.stopPropagation();
44
+ void copy(account.email);
45
+ }, [account.email, copy]);
46
+ const handleLogout = useCallback(async (event) => {
47
+ event.stopPropagation();
48
+ await account.onLogout();
49
+ onDismiss();
50
+ }, [account, onDismiss]);
51
+ return (_jsxs("div", { onClick: onDismiss, className: `daimo-account-banner daimo-absolute daimo-inset-x-0 daimo-top-0 daimo-z-30 daimo-h-[76px] daimo-bg-[var(--daimo-surface)] ${open
52
+ ? "daimo-translate-y-0 daimo-opacity-100 daimo-pointer-events-auto"
53
+ : "-daimo-translate-y-full daimo-opacity-0 daimo-pointer-events-none"}`, children: [_jsxs("button", { type: "button", onClick: handleCopy, className: "daimo-account-email-chip daimo-absolute daimo-left-[17px] daimo-top-[22px] daimo-flex daimo-h-8 daimo-items-center daimo-overflow-hidden daimo-rounded-full daimo-bg-transparent daimo-text-[var(--daimo-text)] hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)] daimo-touch-action-manipulation daimo-outline-none focus-visible:daimo-bg-[var(--daimo-surface-secondary)] focus-visible:daimo-ring-2 focus-visible:daimo-ring-[var(--daimo-accent)] focus-visible:daimo-ring-offset-2 focus-visible:daimo-ring-offset-[var(--daimo-surface)]", "aria-label": copied ? "Copied email" : "Copy account email", title: account.email, children: [_jsx("span", { className: "daimo-flex daimo-h-8 daimo-w-8 daimo-shrink-0 daimo-items-center daimo-justify-center", children: _jsx(EmailIcon, { size: 22 }) }), _jsx("span", { className: "daimo-account-email-chip-text daimo-min-w-0 daimo-truncate daimo-pr-2 daimo-text-sm daimo-font-medium", children: account.email }), _jsx("span", { className: "daimo-account-email-chip-copy daimo-flex daimo-shrink-0 daimo-items-center daimo-pr-3 daimo-text-[var(--daimo-text-muted)]", children: _jsx(CopyIcon, { size: 14, copied: copied }) })] }), _jsx(ChromeIconButton, { label: "Log out", className: "daimo-absolute daimo-right-[17px] daimo-top-[22px] daimo-z-10 daimo-bg-transparent hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)]", onClick: handleLogout, children: _jsx(LogoutIcon, { size: 22 }) })] }));
54
+ }
55
+ function ChromeIconButton({ label, expanded, children, className = "", onClick, }) {
56
+ return (_jsx("button", { type: "button", onClick: (event) => {
57
+ event.stopPropagation();
58
+ onClick(event);
59
+ }, className: `daimo-flex daimo-h-8 daimo-w-8 daimo-shrink-0 daimo-items-center daimo-justify-center daimo-rounded-full daimo-bg-[var(--daimo-surface)] daimo-text-[var(--daimo-text-muted)] hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)] active:daimo-scale-[0.9] daimo-transition-[background-color,transform] daimo-[transition-duration:200ms,100ms] daimo-ease daimo-touch-action-manipulation ${className}`, "aria-label": label, "aria-expanded": expanded, children: children }));
60
+ }
61
+ function assertNever(value) {
62
+ throw new Error(`unknown modal chrome control: ${JSON.stringify(value)}`);
63
+ }
64
+ //# sourceMappingURL=ModalChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalChrome.js","sourceRoot":"","sources":["../../../src/web/components/ModalChrome.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalSkeleton.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,aAAa,4CA0B5B"}
1
+ {"version":3,"file":"ModalSkeleton.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,aAAa,4CAqB5B"}
@@ -1,13 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Skeleton } from "./Skeleton.js";
2
3
  /**
3
4
  * Loading skeleton for the session modal.
4
5
  * Shows header + scrollable token rows layout (matches SelectTokenPage).
5
6
  * Respects prefers-reduced-motion for accessibility.
6
7
  */
7
8
  export function ModalSkeleton() {
8
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx("div", { className: "daimo-flex daimo-items-center daimo-justify-center daimo-h-14 daimo-px-6", children: _jsx("div", { className: "daimo-h-5 daimo-w-32 daimo-rounded motion-safe:daimo-animate-daimo-pulse", style: { backgroundColor: "var(--daimo-skeleton)" } }) }), _jsx("div", { className: "daimo-flex-1 daimo-px-6 daimo-pb-4 daimo-flex daimo-flex-col daimo-gap-3", children: [...Array(11)].map((_, i) => (_jsx("div", { className: "daimo-h-16 daimo-rounded-[var(--daimo-radius-lg)] motion-safe:daimo-animate-daimo-pulse", style: {
9
- backgroundColor: "var(--daimo-skeleton)",
10
- animationDelay: `${i * 100}ms`,
11
- } }, i))) })] }));
9
+ return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx("div", { className: "daimo-flex daimo-items-center daimo-justify-center daimo-h-14 daimo-px-6", children: _jsx(Skeleton, { className: "daimo-h-5 daimo-w-32", rounded: "sm" }) }), _jsx("div", { className: "daimo-flex-1 daimo-px-6 daimo-pb-4 daimo-flex daimo-flex-col daimo-gap-3", children: [...Array(11)].map((_, i) => (_jsx(Skeleton, { className: "daimo-h-16", rounded: "lg", delayMs: i * 100 }, i))) })] }));
12
10
  }
13
11
  //# sourceMappingURL=ModalSkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalSkeleton.js","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aAEnE,cAAK,SAAS,EAAC,0EAA0E,YACvF,cACE,SAAS,EAAC,0EAA0E,EACpF,KAAK,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,GACnD,GACE,EAGN,cAAK,SAAS,EAAC,0EAA0E,YACtF,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,cAEE,SAAS,EAAC,yFAAyF,EACnG,KAAK,EAAE;wBACL,eAAe,EAAE,uBAAuB;wBACxC,cAAc,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI;qBAC/B,IALI,CAAC,CAMN,CACH,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ModalSkeleton.js","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aAEnE,cAAK,SAAS,EAAC,0EAA0E,YACvF,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,EAAC,OAAO,EAAC,IAAI,GAAG,GACtD,EAGN,cAAK,SAAS,EAAC,0EAA0E,YACtF,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,QAAQ,IAEP,SAAS,EAAC,YAAY,EACtB,OAAO,EAAC,IAAI,EACZ,OAAO,EAAE,CAAC,GAAG,GAAG,IAHX,CAAC,CAIN,CACH,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectAmountPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAa/D,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,qBAAqB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACR,EAAE,qBAAqB,2CA6EvB"}
1
+ {"version":3,"file":"SelectAmountPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAa/D,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,qBAAqB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACR,EAAE,qBAAqB,2CAgFvB"}
@@ -4,7 +4,7 @@ import { t } from "../hooks/locale.js";
4
4
  import { PrimaryButton } from "./buttons.js";
5
5
  import { AmountInput, PageHeader, TokenIconWithChainBadge, resolveIconUrl, useAmountInput, } from "./shared.js";
6
6
  export function SelectAmountPage({ node, minimumUsd, maximumUsd, tokenSuffix, chainId, onBack, onContinue, isLoading, error, baseUrl, }) {
7
- const { amount: amountUsd, isValid, handleChange } = useAmountInput(minimumUsd, maximumUsd);
7
+ const { amount: amountUsd, isValid, handleChange, } = useAmountInput(minimumUsd, maximumUsd);
8
8
  // Create pseudo-token for display if tokenSuffix is USDC or USDT and chainId is provided
9
9
  const selectedToken = tokenSuffix === "USDC" || tokenSuffix === "USDT" ? tokenSuffix : null;
10
10
  const displayToken = selectedToken && chainId != null
@@ -22,6 +22,6 @@ export function SelectAmountPage({ node, minimumUsd, maximumUsd, tokenSuffix, ch
22
22
  displayDecimals: 2,
23
23
  }
24
24
  : null;
25
- return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.selectAmount, onBack: onBack }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-p-6", children: [_jsx("div", { className: "daimo-h-24 daimo-flex daimo-items-center daimo-justify-center daimo-mb-3", children: displayToken ? (_jsx(TokenIconWithChainBadge, { token: displayToken, size: "lg", badgeBorderClass: "daimo-border-2 daimo-bg-[var(--daimo-surface)] daimo-border-[var(--daimo-surface)]", baseUrl: baseUrl })) : (node.icon && (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-20 daimo-h-20 daimo-rounded-[25%]" }))) }), _jsx("div", { className: "daimo-mb-6", children: _jsx(AmountInput, { minimum: minimumUsd, maximum: maximumUsd, onSubmit: onContinue, onChange: handleChange }) }), error && (_jsx("div", { className: "daimo-text-red-500 daimo-text-sm daimo-text-center daimo-mb-3", children: error })), _jsx(PrimaryButton, { onClick: () => isValid && !isLoading && onContinue(amountUsd), disabled: !isValid || isLoading, className: "daimo-max-w-none", children: isLoading ? t.loading : t.continue })] })] }));
25
+ return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.selectAmount, onBack: onBack }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-p-6", children: [_jsx("div", { className: "daimo-h-24 daimo-flex daimo-items-center daimo-justify-center daimo-mb-3", children: displayToken ? (_jsx(TokenIconWithChainBadge, { token: displayToken, size: "lg", badgeBorderClass: "daimo-border-2 daimo-bg-[var(--daimo-surface)] daimo-border-[var(--daimo-surface)]", baseUrl: baseUrl })) : (node.icon && (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-20 daimo-h-20 daimo-rounded-[25%]" }))) }), _jsx("div", { className: "daimo-mb-6", children: _jsx(AmountInput, { minimum: minimumUsd, maximum: maximumUsd, onSubmit: onContinue, onChange: handleChange }) }), error && (_jsx("div", { className: "daimo-text-[var(--daimo-error)] daimo-text-sm daimo-text-center daimo-mb-3", children: error })), _jsx(PrimaryButton, { onClick: () => isValid && !isLoading && onContinue(amountUsd), disabled: !isValid || isLoading, className: "daimo-max-w-none", children: isLoading ? t.loading : t.continue })] })] }));
26
26
  }
27
27
  //# sourceMappingURL=SelectAmountPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectAmountPage.js","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAkBrB,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACe;IACtB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,cAAc,CACjE,UAAU,EACV,UAAU,CACX,CAAC;IAEF,yFAAyF;IACzF,MAAM,aAAa,GACjB,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,MAAM,YAAY,GAChB,aAAa,IAAI,OAAO,IAAI,IAAI;QAC9B,CAAC,CAAE;YACC,OAAO;YACP,KAAK,EAAE,KAAsB;YAC7B,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;YACnE,aAAa,EAAE,EAAE;YACjB,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,CAAC;SACD;QACrB,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,EAErD,eAAK,SAAS,EAAC,qEAAqE,aAElF,cAAK,SAAS,EAAC,0EAA0E,YACtF,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,uBAAuB,IACtB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAC,IAAI,EACT,gBAAgB,EAAC,oFAAoF,EACrG,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,IAAI,CACX,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EACvC,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,2CAA2C,GACrD,CACH,CACF,GACG,EAGN,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,WAAW,IACV,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,YAAY,GACtB,GACE,EAGL,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,+DAA+D,YAAE,KAAK,GAAO,CAC7F,EAED,KAAC,aAAa,IACZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAC7D,QAAQ,EAAE,CAAC,OAAO,IAAI,SAAS,EAC/B,SAAS,EAAC,kBAAkB,YAE3B,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GACrB,IACZ,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SelectAmountPage.js","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAkBrB,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACe;IACtB,MAAM,EACJ,MAAM,EAAE,SAAS,EACjB,OAAO,EACP,YAAY,GACb,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE3C,yFAAyF;IACzF,MAAM,aAAa,GACjB,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,MAAM,YAAY,GAChB,aAAa,IAAI,OAAO,IAAI,IAAI;QAC9B,CAAC,CAAE;YACC,OAAO;YACP,KAAK,EAAE,KAAsB;YAC7B,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;YACnE,aAAa,EAAE,EAAE;YACjB,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,CAAC;SACD;QACrB,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,EAErD,eAAK,SAAS,EAAC,qEAAqE,aAElF,cAAK,SAAS,EAAC,0EAA0E,YACtF,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,uBAAuB,IACtB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAC,IAAI,EACT,gBAAgB,EAAC,oFAAoF,EACrG,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,IAAI,CACX,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EACvC,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,2CAA2C,GACrD,CACH,CACF,GACG,EAGN,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,WAAW,IACV,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,YAAY,GACtB,GACE,EAGL,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,4EAA4E,YACxF,KAAK,GACF,CACP,EAED,KAAC,aAAa,IACZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAC7D,QAAQ,EAAE,CAAC,OAAO,IAAI,SAAS,EAC/B,SAAS,EAAC,kBAAkB,YAE3B,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GACrB,IACZ,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTokenPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectTokenPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAahF,KAAK,oBAAoB,GAAG;IAC1B,+CAA+C;IAC/C,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,SAAiB,EACjB,aAAkB,EAClB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,2CA0EtB"}
1
+ {"version":3,"file":"SelectTokenPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectTokenPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAehF,KAAK,oBAAoB,GAAG;IAC1B,+CAA+C;IAC/C,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,SAAiB,EACjB,aAAkB,EAClB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,2CA0EtB"}
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getChainName } from "../../common/chain.js";
3
- import { t } from "../hooks/locale.js";
3
+ import { formatFixedAmount } from "../formatAmount.js";
4
+ import { getNumberLocale, t } from "../hooks/locale.js";
4
5
  import { ContactSupportButton, LIST_ROW_CLASS, ListRow, PageHeader, ScrollContent, TokenIconWithChainBadge, useScrollBorder, } from "./shared.js";
6
+ import { Skeleton } from "./Skeleton.js";
5
7
  /** Token selection page for wallet payment flow */
6
8
  export function SelectTokenPage({ options, showRequired, isLoading = false, skeletonCount = 11, onSelect, onBack, baseUrl, sessionId, }) {
7
9
  const { scrolled, atBottom, onScroll } = useScrollBorder();
@@ -15,8 +17,7 @@ export function SelectTokenPage({ options, showRequired, isLoading = false, skel
15
17
  }
16
18
  /** Skeleton loading row - matches TokenRow dimensions with token + chain badge */
17
19
  function SkeletonRow() {
18
- return (_jsxs("div", { className: `${LIST_ROW_CLASS} daimo-animate-daimo-pulse`, children: [_jsxs("div", { className: "daimo-flex-1 daimo-min-w-0 daimo-mr-3", children: [_jsx("div", { className: "daimo-h-5 daimo-w-48 daimo-rounded daimo-mb-2", style: { backgroundColor: "var(--daimo-skeleton)" } }), _jsx("div", { className: "daimo-h-4 daimo-w-32 daimo-rounded", style: { backgroundColor: "var(--daimo-skeleton)" } })] }), _jsxs("div", { className: "daimo-relative daimo-w-8 daimo-h-8 daimo-shrink-0", children: [_jsx("div", { className: "daimo-w-8 daimo-h-8 daimo-rounded-full", style: { backgroundColor: "var(--daimo-skeleton)" } }), _jsx("div", { className: "daimo-absolute -daimo-bottom-0.5 -daimo-right-0.5 daimo-w-[15px] daimo-h-[15px] daimo-rounded-full", style: {
19
- backgroundColor: "var(--daimo-skeleton)",
20
+ return (_jsxs("div", { className: LIST_ROW_CLASS, children: [_jsxs("div", { className: "daimo-flex-1 daimo-min-w-0 daimo-mr-3", children: [_jsx(Skeleton, { className: "daimo-h-5 daimo-w-48 daimo-rounded daimo-mb-2", rounded: "sm" }), _jsx(Skeleton, { className: "daimo-h-4 daimo-w-32 daimo-rounded", rounded: "sm" })] }), _jsxs("div", { className: "daimo-relative daimo-w-8 daimo-h-8 daimo-shrink-0", children: [_jsx(Skeleton, { className: "daimo-w-8 daimo-h-8 daimo-rounded-full", rounded: "full" }), _jsx(Skeleton, { className: "daimo-absolute -daimo-bottom-0.5 -daimo-right-0.5 daimo-w-[15px] daimo-h-[15px] daimo-rounded-full", rounded: "full", style: {
20
21
  border: "1px solid var(--daimo-surface-secondary)",
21
22
  } })] })] }));
22
23
  }
@@ -24,14 +25,14 @@ function SkeletonRow() {
24
25
  * Token option row - 64px height, matching ChooseOptionPage row style.
25
26
  * Shows "$X TOKEN on Chain" with "Y TOKEN" subtitle.
26
27
  */
27
- function TokenRow({ option, showRequired = false, onSelect, disabled = false, baseUrl }) {
28
+ function TokenRow({ option, showRequired = false, onSelect, disabled = false, baseUrl, }) {
28
29
  const display = showRequired ? option.required : option.balance;
29
30
  const chainName = getChainName(display.token.chainId);
30
31
  const tokenAmount = formatTokenAmount(display.amount, display.token);
31
32
  const usdAmount = formatUsdAmount(display.usd);
32
33
  const disabledReason = option.disabledReason ??
33
34
  (option.balance.usd < option.minimumRequired.usd
34
- ? `$${option.minimumRequired.usd.toFixed(2)} ${t.minimum.toLowerCase()}`
35
+ ? `$${formatFixedAmount(option.minimumRequired.usd)} ${t.minimum.toLowerCase()}`
35
36
  : null);
36
37
  const title = `$${usdAmount} ${display.token.symbol} ${t.onChain} ${chainName}`;
37
38
  const subtitle = disabled && disabledReason
@@ -51,13 +52,13 @@ function formatTokenAmount(amount, token) {
51
52
  return "0";
52
53
  // Use displayDecimals from token, fallback to sensible defaults
53
54
  const decimals = token.displayDecimals ?? (num < 1 ? 6 : 2);
54
- return num.toLocaleString("en-US", {
55
+ return num.toLocaleString(getNumberLocale(), {
55
56
  minimumFractionDigits: 0,
56
57
  maximumFractionDigits: decimals,
57
58
  });
58
59
  }
59
60
  /** Format USD amount for display */
60
61
  function formatUsdAmount(usd) {
61
- return usd.toFixed(2);
62
+ return formatFixedAmount(usd);
62
63
  }
63
64
  //# sourceMappingURL=SelectTokenPage.js.map