@daimo/pay 1.15.0 → 1.16.1

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 (375) hide show
  1. package/build/components/DaimoPayButton/index.d.ts +13 -0
  2. package/build/hooks/useConnect.d.ts +8 -8
  3. package/build/hooks/useLocales.d.ts +2 -1
  4. package/build/hooks/useWalletPaymentOptions.d.ts +12 -1
  5. package/build/index.d.ts +626 -15
  6. package/build/localizations/locales/en-US.d.ts +2 -0
  7. package/build/localizations/locales/index.d.ts +1 -0
  8. package/build/package.json.js +6 -4
  9. package/build/package.json.js.map +1 -1
  10. package/build/payment/paymentFsm.d.ts +5 -0
  11. package/build/payment/paymentUtils.d.ts +6 -0
  12. package/build/src/assets/MobileWithLogos.js +320 -1
  13. package/build/src/assets/MobileWithLogos.js.map +1 -1
  14. package/build/src/assets/ScanIconWithLogos.js +216 -10
  15. package/build/src/assets/ScanIconWithLogos.js.map +1 -1
  16. package/build/src/assets/browsers.js +963 -7
  17. package/build/src/assets/browsers.js.map +1 -1
  18. package/build/src/assets/chains.js +633 -103
  19. package/build/src/assets/chains.js.map +1 -1
  20. package/build/src/assets/coins.js +38 -1
  21. package/build/src/assets/coins.js.map +1 -1
  22. package/build/src/assets/crepe.js +35 -1
  23. package/build/src/assets/crepe.js.map +1 -1
  24. package/build/src/assets/icons.js +258 -15
  25. package/build/src/assets/icons.js.map +1 -1
  26. package/build/src/assets/logos.js +1510 -140
  27. package/build/src/assets/logos.js.map +1 -1
  28. package/build/src/assets/wallet.js +32 -1
  29. package/build/src/assets/wallet.js.map +1 -1
  30. package/build/src/assets/wave.js +41 -1
  31. package/build/src/assets/wave.js.map +1 -1
  32. package/build/src/components/Common/Alert/index.js +4 -1
  33. package/build/src/components/Common/Alert/index.js.map +1 -1
  34. package/build/src/components/Common/Alert/styles.js +4 -4
  35. package/build/src/components/Common/Alert/styles.js.map +1 -1
  36. package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
  37. package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
  38. package/build/src/components/Common/AmountInput/index.js +112 -99
  39. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  40. package/build/src/components/Common/Avatar/index.js +63 -51
  41. package/build/src/components/Common/Avatar/index.js.map +1 -1
  42. package/build/src/components/Common/Avatar/styles.js +9 -14
  43. package/build/src/components/Common/Avatar/styles.js.map +1 -1
  44. package/build/src/components/Common/BrowserIcon/index.js +15 -14
  45. package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
  46. package/build/src/components/Common/BrowserIcon/styles.js +1 -1
  47. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
  48. package/build/src/components/Common/Button/index.js +131 -25
  49. package/build/src/components/Common/Button/index.js.map +1 -1
  50. package/build/src/components/Common/Button/styles.js +20 -24
  51. package/build/src/components/Common/Button/styles.js.map +1 -1
  52. package/build/src/components/Common/Chain/index.js +130 -14
  53. package/build/src/components/Common/Chain/index.js.map +1 -1
  54. package/build/src/components/Common/Chain/styles.js +9 -13
  55. package/build/src/components/Common/Chain/styles.js.map +1 -1
  56. package/build/src/components/Common/ChainSelectList/index.js +232 -89
  57. package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
  58. package/build/src/components/Common/ChainSelectList/styles.js +11 -13
  59. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
  60. package/build/src/components/Common/CircleTimer.js +85 -41
  61. package/build/src/components/Common/CircleTimer.js.map +1 -1
  62. package/build/src/components/Common/ConnectorList/index.js +106 -80
  63. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  64. package/build/src/components/Common/ConnectorList/styles.js +28 -36
  65. package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
  66. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
  67. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
  68. package/build/src/components/Common/CopyToClipboard/index.js +3 -5
  69. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
  70. package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
  71. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
  72. package/build/src/components/Common/CustomQRCode/index.js +60 -10
  73. package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
  74. package/build/src/components/Common/CustomQRCode/styles.js +6 -6
  75. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
  76. package/build/src/components/Common/FitText/index.js +24 -17
  77. package/build/src/components/Common/FitText/index.js.map +1 -1
  78. package/build/src/components/Common/Modal/index.js +481 -267
  79. package/build/src/components/Common/Modal/index.js.map +1 -1
  80. package/build/src/components/Common/Modal/styles.js +44 -48
  81. package/build/src/components/Common/Modal/styles.js.map +1 -1
  82. package/build/src/components/Common/OptionsList/index.js +75 -33
  83. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  84. package/build/src/components/Common/OptionsList/styles.js +7 -8
  85. package/build/src/components/Common/OptionsList/styles.js.map +1 -1
  86. package/build/src/components/Common/OrderHeader/index.js +109 -65
  87. package/build/src/components/Common/OrderHeader/index.js.map +1 -1
  88. package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
  89. package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
  90. package/build/src/components/Common/Portal/index.js +21 -22
  91. package/build/src/components/Common/Portal/index.js.map +1 -1
  92. package/build/src/components/Common/PoweredByFooter/index.js +39 -21
  93. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  94. package/build/src/components/Common/ScrollArea/index.js +107 -52
  95. package/build/src/components/Common/ScrollArea/index.js.map +1 -1
  96. package/build/src/components/Common/ScrollArea/styles.js +7 -11
  97. package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
  98. package/build/src/components/Common/SelectAnotherMethodButton/index.js +67 -55
  99. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  100. package/build/src/components/Common/Spinner/index.js +56 -16
  101. package/build/src/components/Common/Spinner/index.js.map +1 -1
  102. package/build/src/components/Common/Spinner/styles.js +2 -2
  103. package/build/src/components/Common/Spinner/styles.js.map +1 -1
  104. package/build/src/components/Common/SwitchButton/index.js +18 -15
  105. package/build/src/components/Common/SwitchButton/index.js.map +1 -1
  106. package/build/src/components/Common/ThemedButton/index.js +37 -16
  107. package/build/src/components/Common/ThemedButton/index.js.map +1 -1
  108. package/build/src/components/Common/ThemedButton/styles.js +2 -2
  109. package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
  110. package/build/src/components/Common/TokenChainLogo/index.js +14 -8
  111. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  112. package/build/src/components/Common/Tooltip/index.js +115 -83
  113. package/build/src/components/Common/Tooltip/index.js.map +1 -1
  114. package/build/src/components/Common/Tooltip/styles.js +8 -8
  115. package/build/src/components/Common/Tooltip/styles.js.map +1 -1
  116. package/build/src/components/Common/WalletChainLogo/index.js +13 -6
  117. package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
  118. package/build/src/components/DaimoPayButton/index.js +170 -176
  119. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  120. package/build/src/components/DaimoPayButton/styles.js +4 -4
  121. package/build/src/components/DaimoPayButton/styles.js.map +1 -1
  122. package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
  123. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  124. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
  125. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  126. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
  127. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
  128. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
  129. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  130. package/build/src/components/DaimoPayModal/index.js +409 -416
  131. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  132. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
  133. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
  134. package/build/src/components/Pages/About/graphics.js +796 -130
  135. package/build/src/components/Pages/About/graphics.js.map +1 -1
  136. package/build/src/components/Pages/About/index.js +203 -110
  137. package/build/src/components/Pages/About/index.js.map +1 -1
  138. package/build/src/components/Pages/About/styles.js +11 -15
  139. package/build/src/components/Pages/About/styles.js.map +1 -1
  140. package/build/src/components/Pages/Confirmation/index.js +72 -41
  141. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  142. package/build/src/components/Pages/Connectors/index.js +50 -16
  143. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  144. package/build/src/components/Pages/Connectors/styles.js +10 -10
  145. package/build/src/components/Pages/Connectors/styles.js.map +1 -1
  146. package/build/src/components/Pages/DownloadApp/index.js +23 -18
  147. package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
  148. package/build/src/components/Pages/Error/index.js +27 -15
  149. package/build/src/components/Pages/Error/index.js.map +1 -1
  150. package/build/src/components/Pages/MobileConnectors/index.js +50 -44
  151. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  152. package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
  153. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
  154. package/build/src/components/Pages/Onboarding/index.js +20 -4
  155. package/build/src/components/Pages/Onboarding/index.js.map +1 -1
  156. package/build/src/components/Pages/Onboarding/styles.js +13 -13
  157. package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
  158. package/build/src/components/Pages/PayWithToken/index.js +133 -122
  159. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  160. package/build/src/components/Pages/SelectAmount/index.js +12 -5
  161. package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
  162. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
  163. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
  164. package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
  165. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  166. package/build/src/components/Pages/SelectExchange/index.js +29 -24
  167. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  168. package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
  169. package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
  170. package/build/src/components/Pages/SelectMethod/index.js +201 -183
  171. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  172. package/build/src/components/Pages/SelectToken/index.js +72 -46
  173. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  174. package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
  175. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  176. package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
  177. package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
  178. package/build/src/components/Pages/SelectZKP/index.js +29 -24
  179. package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
  180. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
  181. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  182. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
  183. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  184. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
  185. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
  186. package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
  187. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
  188. package/build/src/components/Pages/WaitingDepositAddress/index.js +339 -178
  189. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  190. package/build/src/components/Pages/WaitingExternal/index.js +69 -46
  191. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  192. package/build/src/components/Pages/WaitingWallet/index.js +37 -16
  193. package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
  194. package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
  195. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
  196. package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
  197. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
  198. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
  199. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
  200. package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
  201. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
  202. package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
  203. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
  204. package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
  205. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  206. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
  207. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
  208. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
  209. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
  210. package/build/src/components/Spinners/styles.js +3 -4
  211. package/build/src/components/Spinners/styles.js.map +1 -1
  212. package/build/src/constants/defaultTheme.js +1 -1
  213. package/build/src/constants/defaultTheme.js.map +1 -1
  214. package/build/src/constants/routes.js +29 -30
  215. package/build/src/constants/routes.js.map +1 -1
  216. package/build/src/defaultConfig.js +49 -46
  217. package/build/src/defaultConfig.js.map +1 -1
  218. package/build/src/defaultConnectors.js +32 -19
  219. package/build/src/defaultConnectors.js.map +1 -1
  220. package/build/src/hooks/useChainIsSupported.js +3 -5
  221. package/build/src/hooks/useChainIsSupported.js.map +1 -1
  222. package/build/src/hooks/useChains.js +3 -4
  223. package/build/src/hooks/useChains.js.map +1 -1
  224. package/build/src/hooks/useConnect.js +51 -39
  225. package/build/src/hooks/useConnect.js.map +1 -1
  226. package/build/src/hooks/useConnectCallback.js +15 -12
  227. package/build/src/hooks/useConnectCallback.js.map +1 -1
  228. package/build/src/hooks/useConnectors.js +2 -2
  229. package/build/src/hooks/useConnectors.js.map +1 -1
  230. package/build/src/hooks/useDaimoPay.js +98 -82
  231. package/build/src/hooks/useDaimoPay.js.map +1 -1
  232. package/build/src/hooks/useDaimoPayStatus.js +4 -15
  233. package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
  234. package/build/src/hooks/useDaimoPayUI.js +7 -7
  235. package/build/src/hooks/useDaimoPayUI.js.map +1 -1
  236. package/build/src/hooks/useDepositAddressOptions.js +29 -25
  237. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  238. package/build/src/hooks/useEnsFallbackConfig.js +5 -5
  239. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
  240. package/build/src/hooks/useExternalPaymentOptions.js +57 -52
  241. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  242. package/build/src/hooks/useFitText.js +120 -135
  243. package/build/src/hooks/useFitText.js.map +1 -1
  244. package/build/src/hooks/useFocusTrap.js +33 -37
  245. package/build/src/hooks/useFocusTrap.js.map +1 -1
  246. package/build/src/hooks/useIsMobile.js +3 -3
  247. package/build/src/hooks/useIsMobile.js.map +1 -1
  248. package/build/src/hooks/useIsMounted.js +3 -5
  249. package/build/src/hooks/useIsMounted.js.map +1 -1
  250. package/build/src/hooks/useLastConnector.js +15 -15
  251. package/build/src/hooks/useLastConnector.js.map +1 -1
  252. package/build/src/hooks/useLocales.js +44 -42
  253. package/build/src/hooks/useLocales.js.map +1 -1
  254. package/build/src/hooks/useLockBodyScroll.js +38 -44
  255. package/build/src/hooks/useLockBodyScroll.js.map +1 -1
  256. package/build/src/hooks/useOrderUsdLimits.js +17 -19
  257. package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
  258. package/build/src/hooks/usePayContext.js +3 -5
  259. package/build/src/hooks/usePayContext.js.map +1 -1
  260. package/build/src/hooks/usePaymentState.js +351 -321
  261. package/build/src/hooks/usePaymentState.js.map +1 -1
  262. package/build/src/hooks/usePrevious.js +6 -7
  263. package/build/src/hooks/usePrevious.js.map +1 -1
  264. package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
  265. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  266. package/build/src/hooks/useTokenOptions.js +131 -95
  267. package/build/src/hooks/useTokenOptions.js.map +1 -1
  268. package/build/src/hooks/useUntronAvailability.js +26 -34
  269. package/build/src/hooks/useUntronAvailability.js.map +1 -1
  270. package/build/src/hooks/useWalletPaymentOptions.js +86 -61
  271. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  272. package/build/src/hooks/useWindowSize.js +16 -16
  273. package/build/src/hooks/useWindowSize.js.map +1 -1
  274. package/build/src/localizations/index.js +28 -31
  275. package/build/src/localizations/index.js.map +1 -1
  276. package/build/src/localizations/locales/ar-AE.js +88 -88
  277. package/build/src/localizations/locales/ar-AE.js.map +1 -1
  278. package/build/src/localizations/locales/ca-AD.js +88 -88
  279. package/build/src/localizations/locales/ca-AD.js.map +1 -1
  280. package/build/src/localizations/locales/ee-EE.js +96 -88
  281. package/build/src/localizations/locales/ee-EE.js.map +1 -1
  282. package/build/src/localizations/locales/en-US.js +134 -124
  283. package/build/src/localizations/locales/en-US.js.map +1 -1
  284. package/build/src/localizations/locales/es-ES.js +126 -124
  285. package/build/src/localizations/locales/es-ES.js.map +1 -1
  286. package/build/src/localizations/locales/fa-IR.js +88 -88
  287. package/build/src/localizations/locales/fa-IR.js.map +1 -1
  288. package/build/src/localizations/locales/fr-FR.js +88 -88
  289. package/build/src/localizations/locales/fr-FR.js.map +1 -1
  290. package/build/src/localizations/locales/ja-JP.js +88 -88
  291. package/build/src/localizations/locales/ja-JP.js.map +1 -1
  292. package/build/src/localizations/locales/pt-BR.js +96 -88
  293. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  294. package/build/src/localizations/locales/ru-RU.js +92 -88
  295. package/build/src/localizations/locales/ru-RU.js.map +1 -1
  296. package/build/src/localizations/locales/tr-TR.js +96 -88
  297. package/build/src/localizations/locales/tr-TR.js.map +1 -1
  298. package/build/src/localizations/locales/vi-VN.js +96 -88
  299. package/build/src/localizations/locales/vi-VN.js.map +1 -1
  300. package/build/src/localizations/locales/zh-CN.js +88 -88
  301. package/build/src/localizations/locales/zh-CN.js.map +1 -1
  302. package/build/src/payment/paymentEffects.js +237 -264
  303. package/build/src/payment/paymentEffects.js.map +1 -1
  304. package/build/src/payment/paymentFsm.js +167 -187
  305. package/build/src/payment/paymentFsm.js.map +1 -1
  306. package/build/src/payment/paymentStore.js +8 -10
  307. package/build/src/payment/paymentStore.js.map +1 -1
  308. package/build/src/payment/paymentUtils.js +10 -0
  309. package/build/src/payment/paymentUtils.js.map +1 -0
  310. package/build/src/provider/DaimoPayProvider.js +258 -245
  311. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  312. package/build/src/provider/PayContext.js +0 -1
  313. package/build/src/provider/PayContext.js.map +1 -1
  314. package/build/src/provider/PaymentProvider.js +18 -17
  315. package/build/src/provider/PaymentProvider.js.map +1 -1
  316. package/build/src/provider/SolanaContextProvider.js +6 -3
  317. package/build/src/provider/SolanaContextProvider.js.map +1 -1
  318. package/build/src/provider/Web3ContextProvider.js +23 -23
  319. package/build/src/provider/Web3ContextProvider.js.map +1 -1
  320. package/build/src/stateStore.js +28 -74
  321. package/build/src/stateStore.js.map +1 -1
  322. package/build/src/styles/defaultTheme.js +64 -73
  323. package/build/src/styles/defaultTheme.js.map +1 -1
  324. package/build/src/styles/index.js +202 -217
  325. package/build/src/styles/index.js.map +1 -1
  326. package/build/src/styles/styled/index.js +0 -10
  327. package/build/src/styles/styled/index.js.map +1 -1
  328. package/build/src/styles/themes/base.js +136 -136
  329. package/build/src/styles/themes/base.js.map +1 -1
  330. package/build/src/styles/themes/index.js.map +1 -1
  331. package/build/src/styles/themes/midnight.js +71 -71
  332. package/build/src/styles/themes/midnight.js.map +1 -1
  333. package/build/src/styles/themes/minimal.js +75 -75
  334. package/build/src/styles/themes/minimal.js.map +1 -1
  335. package/build/src/styles/themes/nouns.js +76 -76
  336. package/build/src/styles/themes/nouns.js.map +1 -1
  337. package/build/src/styles/themes/retro.js +88 -88
  338. package/build/src/styles/themes/retro.js.map +1 -1
  339. package/build/src/styles/themes/rounded.js +84 -84
  340. package/build/src/styles/themes/rounded.js.map +1 -1
  341. package/build/src/styles/themes/soft.js +66 -66
  342. package/build/src/styles/themes/soft.js.map +1 -1
  343. package/build/src/styles/themes/web95.js +95 -95
  344. package/build/src/styles/themes/web95.js.map +1 -1
  345. package/build/src/utils/exports.js +0 -1
  346. package/build/src/utils/exports.js.map +1 -1
  347. package/build/src/utils/format.js +25 -63
  348. package/build/src/utils/format.js.map +1 -1
  349. package/build/src/utils/index.js +23 -20
  350. package/build/src/utils/index.js.map +1 -1
  351. package/build/src/utils/p3.js +8 -9
  352. package/build/src/utils/p3.js.map +1 -1
  353. package/build/src/utils/platform.js +6 -8
  354. package/build/src/utils/platform.js.map +1 -1
  355. package/build/src/utils/polling.js +31 -31
  356. package/build/src/utils/polling.js.map +1 -1
  357. package/build/src/utils/supportUrl.js +9 -9
  358. package/build/src/utils/supportUrl.js.map +1 -1
  359. package/build/src/utils/trpc.js +11 -11
  360. package/build/src/utils/trpc.js.map +1 -1
  361. package/build/src/utils/validateInput.js +9 -29
  362. package/build/src/utils/validateInput.js.map +1 -1
  363. package/build/src/wallets/index.js +13 -22
  364. package/build/src/wallets/index.js.map +1 -1
  365. package/build/src/wallets/useWallets.js +183 -181
  366. package/build/src/wallets/useWallets.js.map +1 -1
  367. package/build/src/wallets/walletConfigs.js +230 -235
  368. package/build/src/wallets/walletConfigs.js.map +1 -1
  369. package/build/src/world-mini-app/WorldPayButton.js +113 -118
  370. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  371. package/build/src/world-mini-app/promptWorldPayment.js +49 -47
  372. package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
  373. package/build/types-7ed033b6.d.ts +66 -0
  374. package/build/world.d.ts +89 -1
  375. package/package.json +6 -4
@@ -16,8 +16,7 @@ import { ModalBody, PageContent, ModalContent, ModalH1 } from '../../Common/Moda
16
16
  import SelectAnotherMethodButton from '../../Common/SelectAnotherMethodButton/index.js';
17
17
  import TokenChainLogo from '../../Common/TokenChainLogo/index.js';
18
18
 
19
- // Centered container for icon + text in Tron underpay screen
20
- const CenterContainer = styled.div `
19
+ const CenterContainer = styled.div`
21
20
  display: flex;
22
21
  flex-direction: column;
23
22
  align-items: center;
@@ -25,127 +24,216 @@ const CenterContainer = styled.div `
25
24
  max-width: 100%;
26
25
  `;
27
26
  function WaitingDepositAddress() {
28
- const context = usePayContext();
29
- const { triggerResize, paymentState } = context;
30
- const { payWithDepositAddress, selectedDepositAddressOption } = paymentState;
31
- const { order } = useDaimoPay();
32
- // Detect Optimism USDT0 under-payment: the order has received some funds
33
- // but less than required.
34
- const tronUnderpay = order != null &&
35
- isHydrated(order) &&
36
- order.sourceTokenAmount != null &&
37
- order.sourceTokenAmount.token.chainId === 10 &&
38
- order.sourceTokenAmount.token.symbol.toUpperCase() === "USDT0" &&
39
- Number(order.sourceTokenAmount.usd) < order.usdValue;
40
- const [depAddr, setDepAddr] = useState();
41
- const [failed, setFailed] = useState(false);
42
- // If we selected a deposit address option, generate the address...
43
- const generateDepositAddress = () => {
44
- if (selectedDepositAddressOption == null) {
45
- if (order == null || !isHydrated(order))
46
- return;
47
- if (order.sourceTokenAmount == null)
48
- return;
49
- // Pay underpaid order
50
- const taPaid = order.sourceTokenAmount;
51
- const usdPaid = taPaid.usd; // TODO: get usdPaid directly from the order
52
- const usdToPay = Math.max(order.usdValue - usdPaid, 0.01);
53
- const dispDecimals = taPaid.token.displayDecimals;
54
- const unitsToPay = (usdToPay / taPaid.token.usd).toFixed(dispDecimals);
55
- const unitsPaid = (Number(taPaid.amount) /
56
- 10 ** taPaid.token.decimals).toFixed(dispDecimals);
57
- // (Removed duplicate tronUnderpay calculation now handled at top-level)
58
- // Hack to always show a <= 60 minute countdown
59
- let expirationS = (order.createdAt ?? 0) + 59.5 * 60;
60
- if (order.expirationTs != null &&
61
- Number(order.expirationTs) < expirationS) {
62
- expirationS = Number(order.expirationTs);
63
- }
64
- setDepAddr({
65
- address: order.intentAddr,
66
- amount: unitsToPay,
67
- underpayment: { unitsPaid, coin: taPaid.token.symbol },
68
- coins: `${taPaid.token.symbol} on ${getChainName(taPaid.token.chainId)}`,
69
- expirationS: expirationS,
70
- uri: order.intentAddr,
71
- displayToken: taPaid.token,
72
- logoURI: "", // Not needed for underpaid orders
73
- });
74
- }
75
- else {
76
- const displayToken = getDisplayToken(selectedDepositAddressOption);
77
- const logoURI = selectedDepositAddressOption.logoURI;
78
- setDepAddr({
79
- displayToken,
80
- logoURI,
81
- });
82
- payWithDepositAddress(selectedDepositAddressOption.id).then((details) => {
83
- if (details) {
84
- setDepAddr({
85
- address: details.address,
86
- amount: details.amount,
87
- coins: details.suffix,
88
- expirationS: details.expirationS,
89
- uri: details.uri,
90
- displayToken,
91
- logoURI,
92
- });
93
- }
94
- else {
95
- setFailed(true);
96
- }
97
- });
27
+ const context = usePayContext();
28
+ const { triggerResize, paymentState } = context;
29
+ const { payWithDepositAddress, selectedDepositAddressOption } = paymentState;
30
+ const { order } = useDaimoPay();
31
+ const tronUnderpay = order != null && isHydrated(order) && order.sourceTokenAmount != null && order.sourceTokenAmount.token.chainId === 10 && order.sourceTokenAmount.token.symbol.toUpperCase() === "USDT0" && Number(order.sourceTokenAmount.usd) < order.usdValue;
32
+ const [depAddr, setDepAddr] = useState();
33
+ const [failed, setFailed] = useState(false);
34
+ const generateDepositAddress = () => {
35
+ if (selectedDepositAddressOption == null) {
36
+ if (order == null || !isHydrated(order)) return;
37
+ if (order.sourceTokenAmount == null) return;
38
+ const taPaid = order.sourceTokenAmount;
39
+ const usdPaid = taPaid.usd;
40
+ const usdToPay = Math.max(order.usdValue - usdPaid, 0.01);
41
+ const dispDecimals = taPaid.token.displayDecimals;
42
+ const unitsToPay = (usdToPay / taPaid.token.usd).toFixed(dispDecimals);
43
+ const unitsPaid = (Number(taPaid.amount) / 10 ** taPaid.token.decimals).toFixed(dispDecimals);
44
+ let expirationS = (order.createdAt ?? 0) + 59.5 * 60;
45
+ if (order.expirationTs != null && Number(order.expirationTs) < expirationS) {
46
+ expirationS = Number(order.expirationTs);
47
+ }
48
+ setDepAddr({
49
+ address: order.intentAddr,
50
+ amount: unitsToPay,
51
+ underpayment: { unitsPaid, coin: taPaid.token.symbol },
52
+ coins: `${taPaid.token.symbol} on ${getChainName(taPaid.token.chainId)}`,
53
+ expirationS,
54
+ uri: order.intentAddr,
55
+ displayToken: taPaid.token,
56
+ logoURI: ""
57
+ // Not needed for underpaid orders
58
+ });
59
+ } else {
60
+ const displayToken = getDisplayToken(selectedDepositAddressOption);
61
+ const logoURI = selectedDepositAddressOption.logoURI;
62
+ setDepAddr({
63
+ displayToken,
64
+ logoURI
65
+ });
66
+ payWithDepositAddress(selectedDepositAddressOption.id).then((details) => {
67
+ if (details) {
68
+ setDepAddr({
69
+ address: details.address,
70
+ amount: details.amount,
71
+ coins: details.suffix,
72
+ expirationS: details.expirationS,
73
+ uri: details.uri,
74
+ displayToken,
75
+ logoURI
76
+ });
77
+ } else {
78
+ setFailed(true);
98
79
  }
99
- };
100
- // eslint-disable-next-line react-hooks/exhaustive-deps
101
- useEffect(generateDepositAddress, [selectedDepositAddressOption]);
102
- // eslint-disable-next-line react-hooks/exhaustive-deps
103
- useEffect(triggerResize, [depAddr, failed]);
104
- return (jsx(PageContent, { children: tronUnderpay ? (jsx(TronUnderpayContent, { orderId: order?.id?.toString() })) : failed ? (selectedDepositAddressOption && (jsx(DepositFailed, { name: selectedDepositAddressOption.id }))) : (depAddr && (jsx(DepositAddressInfo, { depAddr: depAddr, refresh: generateDepositAddress, triggerResize: triggerResize }))) }));
80
+ });
81
+ }
82
+ };
83
+ useEffect(generateDepositAddress, [selectedDepositAddressOption]);
84
+ useEffect(triggerResize, [depAddr, failed]);
85
+ return /* @__PURE__ */ jsx(PageContent, { children: tronUnderpay ? /* @__PURE__ */ jsx(TronUnderpayContent, { orderId: order?.id?.toString() }) : failed ? selectedDepositAddressOption && /* @__PURE__ */ jsx(DepositFailed, { name: selectedDepositAddressOption.id }) : depAddr && /* @__PURE__ */ jsx(
86
+ DepositAddressInfo,
87
+ {
88
+ depAddr,
89
+ refresh: generateDepositAddress,
90
+ triggerResize
91
+ }
92
+ ) });
105
93
  }
106
94
  function TronUnderpayContent({ orderId }) {
107
- const locales = useLocales();
108
- return (jsx(ModalContent, { style: {
109
- display: "flex",
110
- justifyContent: "center",
111
- alignItems: "center",
112
- paddingBottom: 0,
113
- position: "relative",
114
- }, children: jsxs(CenterContainer, { children: [jsx(FailIcon, {}), jsx(ModalH1, { style: { textAlign: "center", marginTop: 16 }, children: "USDT Tron Payment Was Too Low" }), jsx("div", { style: { height: 16 } }), jsxs(ModalBody, { style: { textAlign: "center" }, children: ["Your funds are safe.", jsx("br", {}), "Email support@daimo.com for a refund."] }), jsx(Button, { onClick: () => window.open(`mailto:support@daimo.com?subject=Underpaid%20USDT%20Tron%20payment%20for%20order%20${orderId}`, "_blank"), style: { marginTop: 16, width: 200 }, children: locales.contactSupport })] }) }));
95
+ const locales = useLocales();
96
+ return /* @__PURE__ */ jsx(
97
+ ModalContent,
98
+ {
99
+ style: {
100
+ display: "flex",
101
+ justifyContent: "center",
102
+ alignItems: "center",
103
+ paddingBottom: 0,
104
+ position: "relative"
105
+ },
106
+ children: /* @__PURE__ */ jsxs(CenterContainer, { children: [
107
+ /* @__PURE__ */ jsx(FailIcon, {}),
108
+ /* @__PURE__ */ jsx(ModalH1, { style: { textAlign: "center", marginTop: 16 }, children: "USDT Tron Payment Was Too Low" }),
109
+ /* @__PURE__ */ jsx("div", { style: { height: 16 } }),
110
+ /* @__PURE__ */ jsxs(ModalBody, { style: { textAlign: "center" }, children: [
111
+ "Your funds are safe.",
112
+ /* @__PURE__ */ jsx("br", {}),
113
+ "Email support@daimo.com for a refund."
114
+ ] }),
115
+ /* @__PURE__ */ jsx(
116
+ Button,
117
+ {
118
+ onClick: () => window.open(
119
+ `mailto:support@daimo.com?subject=Underpaid%20USDT%20Tron%20payment%20for%20order%20${orderId}`,
120
+ "_blank"
121
+ ),
122
+ style: { marginTop: 16, width: 200 },
123
+ children: locales.contactSupport
124
+ }
125
+ )
126
+ ] })
127
+ }
128
+ );
115
129
  }
116
- function DepositAddressInfo({ depAddr, refresh, triggerResize, }) {
117
- const { isMobile } = useIsMobile();
118
- const locales = useLocales();
119
- const [remainingS, totalS] = useCountdown(depAddr?.expirationS);
120
- const isExpired = depAddr?.expirationS != null && remainingS === 0;
121
- // eslint-disable-next-line react-hooks/exhaustive-deps
122
- useEffect(triggerResize, [isExpired]);
123
- const logoOffset = isMobile ? 4 : 0;
124
- const logoElement = depAddr.displayToken ? (jsx(TokenChainLogo, { token: depAddr.displayToken, size: 64, offset: logoOffset })) : (jsx("img", { src: depAddr.logoURI, width: "64px", height: "64px" }));
125
- return (jsxs(ModalContent, { children: [isExpired ? (jsx(LogoRow, { children: jsx(Button, { onClick: refresh, style: { width: 128 }, children: locales.refresh }) })) : isMobile ? (jsx(LogoRow, { children: jsx(LogoWrap, { children: logoElement }) })) : (jsx(QRWrap, { children: jsx(CustomQRCode, { value: depAddr?.uri, contentPadding: 24, size: 200, image: logoElement }) })), jsx(CopyableInfo, { depAddr: depAddr, remainingS: remainingS, totalS: totalS })] }));
130
+ function DepositAddressInfo({
131
+ depAddr,
132
+ refresh,
133
+ triggerResize
134
+ }) {
135
+ const { isMobile } = useIsMobile();
136
+ const locales = useLocales();
137
+ const [remainingS, totalS] = useCountdown(depAddr?.expirationS);
138
+ const isExpired = depAddr?.expirationS != null && remainingS === 0;
139
+ const [showQR, setShowQR] = useState(!isMobile);
140
+ useEffect(triggerResize, [isExpired, showQR]);
141
+ const logoOffset = isMobile ? 4 : 0;
142
+ const logoElement = depAddr.displayToken ? /* @__PURE__ */ jsx(
143
+ TokenChainLogo,
144
+ {
145
+ token: depAddr.displayToken,
146
+ size: 64,
147
+ offset: logoOffset
148
+ }
149
+ ) : /* @__PURE__ */ jsx("img", { src: depAddr.logoURI, width: "64px", height: "64px" });
150
+ return /* @__PURE__ */ jsxs(ModalContent, { children: [
151
+ isExpired ? /* @__PURE__ */ jsx(LogoRow, { children: /* @__PURE__ */ jsx(Button, { onClick: refresh, style: { width: 128 }, children: locales.refresh }) }) : showQR ? /* @__PURE__ */ jsx(QRWrap, { children: /* @__PURE__ */ jsx(
152
+ CustomQRCode,
153
+ {
154
+ value: depAddr?.uri,
155
+ contentPadding: 24,
156
+ size: 200,
157
+ image: logoElement
158
+ }
159
+ ) }) : /* @__PURE__ */ jsx(LogoRow, { children: /* @__PURE__ */ jsx(LogoWrap, { children: logoElement }) }),
160
+ /* @__PURE__ */ jsx("div", { style: { height: 8 } }),
161
+ isMobile && /* @__PURE__ */ jsx(ShowHideQRRow, { showQR, setShowQR }),
162
+ /* @__PURE__ */ jsx(CopyableInfo, { depAddr, remainingS, totalS })
163
+ ] });
126
164
  }
127
165
  function getDisplayToken(meta) {
128
- switch (meta.id) {
129
- case DepositAddressPaymentOptions.OP_MAINNET:
130
- return optimismUSDC;
131
- case DepositAddressPaymentOptions.ARBITRUM:
132
- return arbitrumUSDC;
133
- case DepositAddressPaymentOptions.BASE:
134
- return baseUSDC;
135
- case DepositAddressPaymentOptions.POLYGON:
136
- return polygonUSDC;
137
- case DepositAddressPaymentOptions.ETH_L1:
138
- return ethereumUSDC;
139
- default:
140
- return null;
141
- }
166
+ switch (meta.id) {
167
+ case DepositAddressPaymentOptions.OP_MAINNET:
168
+ return optimismUSDC;
169
+ case DepositAddressPaymentOptions.ARBITRUM:
170
+ return arbitrumUSDC;
171
+ case DepositAddressPaymentOptions.BASE:
172
+ return baseUSDC;
173
+ case DepositAddressPaymentOptions.POLYGON:
174
+ return polygonUSDC;
175
+ case DepositAddressPaymentOptions.ETH_L1:
176
+ return ethereumUSDC;
177
+ default:
178
+ return null;
179
+ }
180
+ }
181
+ function ShowHideQRRow({
182
+ showQR,
183
+ setShowQR
184
+ }) {
185
+ const toggleQR = () => setShowQR(!showQR);
186
+ const locales = useLocales();
187
+ return /* @__PURE__ */ jsx(ShowQRWrap, { children: /* @__PURE__ */ jsxs(CopyRow, { onClick: toggleQR, children: [
188
+ /* @__PURE__ */ jsx(SmallText, { children: showQR ? locales.hideQR : locales.showQR }),
189
+ /* @__PURE__ */ jsx("div", { style: { width: 8 } }),
190
+ /* @__PURE__ */ jsx(ShowQRIcon, { children: /* @__PURE__ */ jsxs(
191
+ "svg",
192
+ {
193
+ xmlns: "http://www.w3.org/2000/svg",
194
+ fill: "none",
195
+ viewBox: "0 0 24 24",
196
+ strokeWidth: 1.5,
197
+ stroke: "#666",
198
+ className: "size-6",
199
+ width: 20,
200
+ height: 20,
201
+ children: [
202
+ /* @__PURE__ */ jsx(
203
+ "path",
204
+ {
205
+ strokeLinecap: "round",
206
+ strokeLinejoin: "round",
207
+ d: "M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z"
208
+ }
209
+ ),
210
+ /* @__PURE__ */ jsx(
211
+ "path",
212
+ {
213
+ strokeLinecap: "round",
214
+ strokeLinejoin: "round",
215
+ d: "M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z"
216
+ }
217
+ )
218
+ ]
219
+ }
220
+ ) })
221
+ ] }) });
142
222
  }
143
- const LogoWrap = styled.div `
223
+ const ShowQRWrap = styled.div`
224
+ display: flex;
225
+ justify-content: center;
226
+ color: var(--ck-primary-button-color);
227
+ `;
228
+ const ShowQRIcon = styled.div`
229
+ width: 20px;
230
+ `;
231
+ const LogoWrap = styled.div`
144
232
  position: relative;
145
233
  width: 64px;
146
234
  height: 64px;
147
235
  `;
148
- const LogoRow = styled.div `
236
+ const LogoRow = styled.div`
149
237
  padding: 32px 0;
150
238
  height: 128px;
151
239
  display: flex;
@@ -153,28 +241,63 @@ const LogoRow = styled.div `
153
241
  gap: 8px;
154
242
  justify-content: center;
155
243
  `;
156
- const QRWrap = styled.div `
244
+ const QRWrap = styled.div`
157
245
  margin: 0 auto;
158
246
  width: 280px;
159
247
  `;
160
- function CopyableInfo({ depAddr, remainingS, totalS, }) {
161
- const underpayment = depAddr?.underpayment;
162
- const isExpired = depAddr?.expirationS != null && remainingS === 0;
163
- const locales = useLocales();
164
- return (jsxs(CopyableInfoWrapper, { children: [underpayment && jsx(UnderpaymentInfo, { underpayment: underpayment }), jsx(CopyRowOrThrobber, { title: locales.sendExactly, value: depAddr?.amount, smallText: depAddr?.coins, disabled: isExpired }), jsx(CopyRowOrThrobber, { title: locales.receivingAddress, value: depAddr?.address, valueText: depAddr?.address && getAddressContraction(depAddr.address), disabled: isExpired }), jsx(CountdownWrap, { children: jsx(CountdownTimer, { remainingS: remainingS, totalS: totalS }) })] }));
248
+ function CopyableInfo({
249
+ depAddr,
250
+ remainingS,
251
+ totalS
252
+ }) {
253
+ const underpayment = depAddr?.underpayment;
254
+ const isExpired = depAddr?.expirationS != null && remainingS === 0;
255
+ const locales = useLocales();
256
+ return /* @__PURE__ */ jsxs(CopyableInfoWrapper, { children: [
257
+ underpayment && /* @__PURE__ */ jsx(UnderpaymentInfo, { underpayment }),
258
+ /* @__PURE__ */ jsx(
259
+ CopyRowOrThrobber,
260
+ {
261
+ title: locales.sendExactly,
262
+ value: depAddr?.amount,
263
+ smallText: depAddr?.coins,
264
+ disabled: isExpired
265
+ }
266
+ ),
267
+ /* @__PURE__ */ jsx(
268
+ CopyRowOrThrobber,
269
+ {
270
+ title: locales.receivingAddress,
271
+ value: depAddr?.address,
272
+ valueText: depAddr?.address && getAddressContraction(depAddr.address),
273
+ disabled: isExpired
274
+ }
275
+ ),
276
+ /* @__PURE__ */ jsx(CountdownWrap, { children: /* @__PURE__ */ jsx(CountdownTimer, { remainingS, totalS }) })
277
+ ] });
165
278
  }
166
279
  function UnderpaymentInfo({ underpayment }) {
167
- // Default message
168
- return (jsxs(UnderpaymentWrapper, { children: [jsxs(UnderpaymentHeader, { children: [jsx(WarningIcon, {}), jsxs("span", { children: ["Received ", underpayment.unitsPaid, " ", underpayment.coin] })] }), jsx(SmallText, { children: "Finish by sending the extra amount below." })] }));
280
+ return /* @__PURE__ */ jsxs(UnderpaymentWrapper, { children: [
281
+ /* @__PURE__ */ jsxs(UnderpaymentHeader, { children: [
282
+ /* @__PURE__ */ jsx(WarningIcon, {}),
283
+ /* @__PURE__ */ jsxs("span", { children: [
284
+ "Received ",
285
+ underpayment.unitsPaid,
286
+ " ",
287
+ underpayment.coin
288
+ ] })
289
+ ] }),
290
+ /* @__PURE__ */ jsx(SmallText, { children: "Finish by sending the extra amount below." })
291
+ ] });
169
292
  }
170
- const UnderpaymentWrapper = styled.div `
293
+ const UnderpaymentWrapper = styled.div`
171
294
  background: var(--ck-body-background-tertiary);
172
295
  border-radius: 8px;
173
296
  padding: 16px;
174
297
  margin: 0 4px 16px 4px;
175
298
  margin-bottom: 16px;
176
299
  `;
177
- const UnderpaymentHeader = styled.div `
300
+ const UnderpaymentHeader = styled.div`
178
301
  font-weight: 500;
179
302
  display: flex;
180
303
  justify-content: center;
@@ -182,18 +305,17 @@ const UnderpaymentHeader = styled.div `
182
305
  gap: 8px;
183
306
  margin-bottom: 8px;
184
307
  `;
185
- const CopyableInfoWrapper = styled.div `
308
+ const CopyableInfoWrapper = styled.div`
186
309
  display: flex;
187
310
  flex-direction: column;
188
311
  justify-content: stretch;
189
312
  gap: 0;
190
- margin-top: 8px;
191
313
  `;
192
- const CountdownWrap = styled.div `
314
+ const CountdownWrap = styled.div`
193
315
  margin-top: 24px;
194
316
  height: 16px;
195
317
  `;
196
- const FailIcon = styled(AlertIcon) `
318
+ const FailIcon = styled(AlertIcon)`
197
319
  color: var(--ck-body-color-alert);
198
320
  width: 32px;
199
321
  height: 32px;
@@ -201,28 +323,40 @@ const FailIcon = styled(AlertIcon) `
201
323
  margin-bottom: 16px;
202
324
  `;
203
325
  function useCountdown(expirationS) {
204
- // eslint-disable-next-line react-hooks/exhaustive-deps
205
- const initMs = useMemo(() => Date.now(), [expirationS]);
206
- const [ms, setMs] = useState(initMs);
207
- useEffect(() => {
208
- const interval = setInterval(() => setMs(Date.now()), 1000);
209
- return () => clearInterval(interval);
210
- }, []);
211
- if (expirationS == null)
212
- return [0, 0];
213
- const remainingS = Math.max(0, (expirationS - ms / 1000) | 0);
214
- const totalS = Math.max(0, (expirationS - initMs / 1000) | 0);
215
- return [remainingS, totalS];
326
+ const initMs = useMemo(() => Date.now(), [expirationS]);
327
+ const [ms, setMs] = useState(initMs);
328
+ useEffect(() => {
329
+ const interval = setInterval(() => setMs(Date.now()), 1e3);
330
+ return () => clearInterval(interval);
331
+ }, []);
332
+ if (expirationS == null) return [0, 0];
333
+ const remainingS = Math.max(0, expirationS - ms / 1e3 | 0);
334
+ const totalS = Math.max(0, expirationS - initMs / 1e3 | 0);
335
+ return [remainingS, totalS];
216
336
  }
217
- function CountdownTimer({ remainingS, totalS, }) {
218
- const locales = useLocales();
219
- if (totalS == 0 || remainingS > 3600) {
220
- return jsx(SmallText, { children: locales.sendOnlyOnce });
221
- }
222
- const isExpired = remainingS === 0;
223
- return (jsx(ModalBody, { children: jsxs(CountdownRow, { children: [jsx(CircleTimer, { total: totalS, currentTime: remainingS, size: 18, stroke: 3 }), jsx("strong", { children: isExpired ? "Expired" : formatTime(remainingS) })] }) }));
337
+ function CountdownTimer({
338
+ remainingS,
339
+ totalS
340
+ }) {
341
+ const locales = useLocales();
342
+ if (totalS == 0 || remainingS > 3600) {
343
+ return /* @__PURE__ */ jsx(SmallText, { children: locales.sendOnlyOnce });
344
+ }
345
+ const isExpired = remainingS === 0;
346
+ return /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(CountdownRow, { children: [
347
+ /* @__PURE__ */ jsx(
348
+ CircleTimer,
349
+ {
350
+ total: totalS,
351
+ currentTime: remainingS,
352
+ size: 18,
353
+ stroke: 3
354
+ }
355
+ ),
356
+ /* @__PURE__ */ jsx("strong", { children: isExpired ? "Expired" : formatTime(remainingS) })
357
+ ] }) });
224
358
  }
225
- const CountdownRow = styled.div `
359
+ const CountdownRow = styled.div`
226
360
  display: flex;
227
361
  align-items: center;
228
362
  justify-content: center;
@@ -230,14 +364,25 @@ const CountdownRow = styled.div `
230
364
  font-variant-numeric: tabular-nums;
231
365
  `;
232
366
  const formatTime = (sec) => {
233
- const m = `${Math.floor(sec / 60)}`.padStart(2, "0");
234
- const s = `${sec % 60}`.padStart(2, "0");
235
- return `${m}:${s}`;
367
+ const m = `${Math.floor(sec / 60)}`.padStart(2, "0");
368
+ const s = `${sec % 60}`.padStart(2, "0");
369
+ return `${m}:${s}`;
236
370
  };
237
371
  function DepositFailed({ name }) {
238
- return (jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [jsxs(ModalH1, { children: [name, " unavailable"] }), jsxs(ModalBody, { children: ["We're unable to process ", name, " payments at this time. Please select another payment method."] }), jsx(SelectAnotherMethodButton, {})] }));
372
+ return /* @__PURE__ */ jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [
373
+ /* @__PURE__ */ jsxs(ModalH1, { children: [
374
+ name,
375
+ " unavailable"
376
+ ] }),
377
+ /* @__PURE__ */ jsxs(ModalBody, { children: [
378
+ "We're unable to process ",
379
+ name,
380
+ " payments at this time. Please select another payment method."
381
+ ] }),
382
+ /* @__PURE__ */ jsx(SelectAnotherMethodButton, {})
383
+ ] });
239
384
  }
240
- const CopyRow = styled.button `
385
+ const CopyRow = styled.button`
241
386
  display: block;
242
387
  height: 64px;
243
388
  border-radius: 8px;
@@ -269,33 +414,33 @@ const CopyRow = styled.button `
269
414
  background-color: var(--ck-body-background-secondary);
270
415
  }
271
416
  `;
272
- const LabelRow = styled.div `
417
+ const LabelRow = styled.div`
273
418
  margin-bottom: 4px;
274
419
  `;
275
- const MainRow = styled.div `
420
+ const MainRow = styled.div`
276
421
  display: flex;
277
422
  align-items: center;
278
423
  justify-content: space-between;
279
424
  `;
280
- const ValueContainer = styled.div `
425
+ const ValueContainer = styled.div`
281
426
  display: flex;
282
427
  align-items: center;
283
428
  gap: 8px;
284
429
  `;
285
- const SmallText = styled.span `
430
+ const SmallText = styled.span`
286
431
  font-size: 14px;
287
432
  color: var(--ck-primary-button-color);
288
433
  `;
289
- const ValueText = styled.span `
434
+ const ValueText = styled.span`
290
435
  font-size: 14px;
291
436
  font-weight: 600;
292
437
  color: var(--ck-primary-button-color);
293
438
  `;
294
- const LabelText = styled(ModalBody) `
439
+ const LabelText = styled(ModalBody)`
295
440
  margin: 0;
296
441
  text-align: left;
297
442
  `;
298
- const pulse = keyframes `
443
+ const pulse = keyframes`
299
444
  0% {
300
445
  opacity: 0.6;
301
446
  }
@@ -306,34 +451,50 @@ const pulse = keyframes `
306
451
  opacity: 0.6;
307
452
  }
308
453
  `;
309
- const Skeleton = styled.div `
454
+ const Skeleton = styled.div`
310
455
  width: 80px;
311
456
  height: 16px;
312
457
  border-radius: 8px;
313
458
  background-color: rgba(0, 0, 0, 0.1);
314
459
  animation: ${pulse} 1.5s ease-in-out infinite;
315
460
  `;
316
- function CopyRowOrThrobber({ title, value, valueText, smallText, disabled, }) {
317
- const [copied, setCopied] = useState(false);
318
- const handleCopy = () => {
319
- if (disabled)
320
- return;
321
- if (!value)
322
- return;
323
- const str = value.trim();
324
- if (navigator.clipboard) {
325
- navigator.clipboard.writeText(str);
326
- }
327
- setCopied(true);
328
- setTimeout(() => setCopied(false), 1000);
329
- };
330
- if (!value) {
331
- return (jsxs(CopyRow, { children: [jsx(LabelRow, { children: jsx(LabelText, { children: title }) }), jsx(MainRow, { children: jsx(Skeleton, {}) })] }));
461
+ function CopyRowOrThrobber({
462
+ title,
463
+ value,
464
+ valueText,
465
+ smallText,
466
+ disabled
467
+ }) {
468
+ const [copied, setCopied] = useState(false);
469
+ const handleCopy = () => {
470
+ if (disabled) return;
471
+ if (!value) return;
472
+ const str = value.trim();
473
+ if (navigator.clipboard) {
474
+ navigator.clipboard.writeText(str);
332
475
  }
333
- const displayValue = valueText || value;
334
- return (jsxs(CopyRow, { as: "button", onClick: handleCopy, disabled: disabled, children: [jsxs("div", { children: [jsx(LabelRow, { children: jsx(LabelText, { children: title }) }), jsx(MainRow, { children: jsxs(ValueContainer, { children: [jsx(ValueText, { children: displayValue }), smallText && jsx(SmallText, { children: smallText })] }) })] }), jsx(CopyIconWrap, { children: jsx(CopyToClipboardIcon, { copied: copied, dark: true }) })] }));
476
+ setCopied(true);
477
+ setTimeout(() => setCopied(false), 1e3);
478
+ };
479
+ if (!value) {
480
+ return /* @__PURE__ */ jsxs(CopyRow, { children: [
481
+ /* @__PURE__ */ jsx(LabelRow, { children: /* @__PURE__ */ jsx(LabelText, { children: title }) }),
482
+ /* @__PURE__ */ jsx(MainRow, { children: /* @__PURE__ */ jsx(Skeleton, {}) })
483
+ ] });
484
+ }
485
+ const displayValue = valueText || value;
486
+ return /* @__PURE__ */ jsxs(CopyRow, { as: "button", onClick: handleCopy, disabled, children: [
487
+ /* @__PURE__ */ jsxs("div", { children: [
488
+ /* @__PURE__ */ jsx(LabelRow, { children: /* @__PURE__ */ jsx(LabelText, { children: title }) }),
489
+ /* @__PURE__ */ jsx(MainRow, { children: /* @__PURE__ */ jsxs(ValueContainer, { children: [
490
+ /* @__PURE__ */ jsx(ValueText, { children: displayValue }),
491
+ smallText && /* @__PURE__ */ jsx(SmallText, { children: smallText })
492
+ ] }) })
493
+ ] }),
494
+ /* @__PURE__ */ jsx(CopyIconWrap, { children: /* @__PURE__ */ jsx(CopyToClipboardIcon, { copied, dark: true }) })
495
+ ] });
335
496
  }
336
- const CopyIconWrap = styled.div `
497
+ const CopyIconWrap = styled.div`
337
498
  --color: var(--ck-copytoclipboard-stroke);
338
499
  --bg: var(--ck-body-background);
339
500
  `;