@daimo/pay 0.3.21 → 1.0.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 (302) hide show
  1. package/build/index.d.ts +132 -301
  2. package/build/package.json.js +103 -0
  3. package/build/package.json.js.map +1 -0
  4. package/build/src/assets/ScanIconWithLogos.js +34 -0
  5. package/build/src/assets/ScanIconWithLogos.js.map +1 -0
  6. package/build/src/assets/browsers.js +13 -0
  7. package/build/src/assets/browsers.js.map +1 -0
  8. package/build/src/assets/chains.js +152 -0
  9. package/build/src/assets/chains.js.map +1 -0
  10. package/build/src/assets/coins.js +6 -0
  11. package/build/src/assets/coins.js.map +1 -0
  12. package/build/src/assets/crepe.js +8 -0
  13. package/build/src/assets/crepe.js.map +1 -0
  14. package/build/src/assets/icons.js +28 -0
  15. package/build/src/assets/icons.js.map +1 -0
  16. package/build/src/assets/logos.js +131 -0
  17. package/build/src/assets/logos.js.map +1 -0
  18. package/build/src/assets/wallet.js +8 -0
  19. package/build/src/assets/wallet.js.map +1 -0
  20. package/build/src/assets/wave.js +6 -0
  21. package/build/src/assets/wave.js.map +1 -0
  22. package/build/src/components/Common/Alert/index.js +10 -0
  23. package/build/src/components/Common/Alert/index.js.map +1 -0
  24. package/build/src/components/Common/Alert/styles.js +55 -0
  25. package/build/src/components/Common/Alert/styles.js.map +1 -0
  26. package/build/src/components/Common/Avatar/index.js +66 -0
  27. package/build/src/components/Common/Avatar/index.js.map +1 -0
  28. package/build/src/components/Common/Avatar/styles.js +59 -0
  29. package/build/src/components/Common/Avatar/styles.js.map +1 -0
  30. package/build/src/components/Common/BrowserIcon/index.js +28 -0
  31. package/build/src/components/Common/BrowserIcon/index.js.map +1 -0
  32. package/build/src/components/Common/BrowserIcon/styles.js +20 -0
  33. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -0
  34. package/build/src/components/Common/Button/index.js +38 -0
  35. package/build/src/components/Common/Button/index.js.map +1 -0
  36. package/build/src/components/Common/Button/styles.js +291 -0
  37. package/build/src/components/Common/Button/styles.js.map +1 -0
  38. package/build/src/components/Common/Chain/index.js +25 -0
  39. package/build/src/components/Common/Chain/index.js.map +1 -0
  40. package/build/src/components/Common/Chain/styles.js +94 -0
  41. package/build/src/components/Common/Chain/styles.js.map +1 -0
  42. package/build/src/components/Common/ChainSelectList/index.js +107 -0
  43. package/build/src/components/Common/ChainSelectList/index.js.map +1 -0
  44. package/build/src/components/Common/ChainSelectList/styles.js +228 -0
  45. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -0
  46. package/build/src/components/Common/ConnectorList/index.js +70 -0
  47. package/build/src/components/Common/ConnectorList/index.js.map +1 -0
  48. package/build/src/components/Common/ConnectorList/styles.js +314 -0
  49. package/build/src/components/Common/ConnectorList/styles.js.map +1 -0
  50. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +71 -0
  51. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
  52. package/build/src/components/Common/CopyToClipboard/index.js +51 -0
  53. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -0
  54. package/build/src/components/Common/CustomQRCode/QRCode.js +69 -0
  55. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
  56. package/build/src/components/Common/CustomQRCode/index.js +22 -0
  57. package/build/src/components/Common/CustomQRCode/index.js.map +1 -0
  58. package/build/src/components/Common/CustomQRCode/styles.js +155 -0
  59. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -0
  60. package/build/src/components/Common/FitText/index.js +27 -0
  61. package/build/src/components/Common/FitText/index.js.map +1 -0
  62. package/build/src/components/Common/Modal/index.js +297 -0
  63. package/build/src/components/Common/Modal/index.js.map +1 -0
  64. package/build/src/components/Common/Modal/styles.js +660 -0
  65. package/build/src/components/Common/Modal/styles.js.map +1 -0
  66. package/build/src/components/Common/OptionsList/index.js +106 -0
  67. package/build/src/components/Common/OptionsList/index.js.map +1 -0
  68. package/build/src/components/Common/OptionsList/styles.js +165 -0
  69. package/build/src/components/Common/OptionsList/styles.js.map +1 -0
  70. package/build/src/components/Common/OrderHeader/index.js +215 -0
  71. package/build/src/components/Common/OrderHeader/index.js.map +1 -0
  72. package/build/src/components/Common/Portal/index.js +31 -0
  73. package/build/src/components/Common/Portal/index.js.map +1 -0
  74. package/build/src/components/Common/PoweredByFooter/index.js +44 -0
  75. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -0
  76. package/build/src/components/Common/ScrollArea/index.js +62 -0
  77. package/build/src/components/Common/ScrollArea/index.js.map +1 -0
  78. package/build/src/components/Common/ScrollArea/styles.js +168 -0
  79. package/build/src/components/Common/ScrollArea/styles.js.map +1 -0
  80. package/build/src/components/Common/Spinner/index.js +24 -0
  81. package/build/src/components/Common/Spinner/index.js.map +1 -0
  82. package/build/src/components/Common/Spinner/styles.js +22 -0
  83. package/build/src/components/Common/Spinner/styles.js.map +1 -0
  84. package/build/src/components/Common/ThemedButton/index.js +25 -0
  85. package/build/src/components/Common/ThemedButton/index.js.map +1 -0
  86. package/build/src/components/Common/ThemedButton/styles.js +152 -0
  87. package/build/src/components/Common/ThemedButton/styles.js.map +1 -0
  88. package/build/src/components/Common/Tooltip/index.js +97 -0
  89. package/build/src/components/Common/Tooltip/index.js.map +1 -0
  90. package/build/src/components/Common/Tooltip/styles.js +81 -0
  91. package/build/src/components/Common/Tooltip/styles.js.map +1 -0
  92. package/build/src/components/DaimoPay.js +232 -0
  93. package/build/src/components/DaimoPay.js.map +1 -0
  94. package/build/src/components/DaimoPayButton/index.js +133 -0
  95. package/build/src/components/DaimoPayButton/index.js.map +1 -0
  96. package/build/src/components/DaimoPayButton/styles.js +50 -0
  97. package/build/src/components/DaimoPayButton/styles.js.map +1 -0
  98. package/build/src/components/DaimoPayModal/ConnectUsing.js +45 -0
  99. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
  100. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +202 -0
  101. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
  102. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +133 -0
  103. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
  104. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +75 -0
  105. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
  106. package/build/src/components/DaimoPayModal/index.js +140 -0
  107. package/build/src/components/DaimoPayModal/index.js.map +1 -0
  108. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +21 -0
  109. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
  110. package/build/src/components/Pages/About/graphics.js +187 -0
  111. package/build/src/components/Pages/About/graphics.js.map +1 -0
  112. package/build/src/components/Pages/About/index.js +131 -0
  113. package/build/src/components/Pages/About/index.js.map +1 -0
  114. package/build/src/components/Pages/About/styles.js +144 -0
  115. package/build/src/components/Pages/About/styles.js.map +1 -0
  116. package/build/src/components/Pages/Confirmation/index.js +105 -0
  117. package/build/src/components/Pages/Confirmation/index.js.map +1 -0
  118. package/build/src/components/Pages/Connectors/index.js +20 -0
  119. package/build/src/components/Pages/Connectors/index.js.map +1 -0
  120. package/build/src/components/Pages/Connectors/styles.js +267 -0
  121. package/build/src/components/Pages/Connectors/styles.js.map +1 -0
  122. package/build/src/components/Pages/DownloadApp/index.js +30 -0
  123. package/build/src/components/Pages/DownloadApp/index.js.map +1 -0
  124. package/build/src/components/Pages/MobileConnectors/index.js +73 -0
  125. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -0
  126. package/build/src/components/Pages/MobileConnectors/styles.js +65 -0
  127. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -0
  128. package/build/src/components/Pages/Onboarding/index.js +18 -0
  129. package/build/src/components/Pages/Onboarding/index.js.map +1 -0
  130. package/build/src/components/Pages/Onboarding/styles.js +229 -0
  131. package/build/src/components/Pages/Onboarding/styles.js.map +1 -0
  132. package/build/src/components/Pages/PayWithToken/index.js +204 -0
  133. package/build/src/components/Pages/PayWithToken/index.js.map +1 -0
  134. package/build/src/components/Pages/SelectDepositAddressChain/index.js +32 -0
  135. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
  136. package/build/src/components/Pages/SelectMethod/index.js +113 -0
  137. package/build/src/components/Pages/SelectMethod/index.js.map +1 -0
  138. package/build/src/components/Pages/SelectToken/index.js +62 -0
  139. package/build/src/components/Pages/SelectToken/index.js.map +1 -0
  140. package/build/src/components/Pages/Solana/ConnectSolana/index.js +37 -0
  141. package/build/src/components/Pages/Solana/ConnectSolana/index.js.map +1 -0
  142. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +45 -0
  143. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
  144. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +85 -0
  145. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
  146. package/build/src/components/Pages/Solana/SelectSolanaToken/index.js +38 -0
  147. package/build/src/components/Pages/Solana/SelectSolanaToken/index.js.map +1 -0
  148. package/build/src/components/Pages/SwitchNetworks/index.js +26 -0
  149. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -0
  150. package/build/src/components/Pages/WaitingDepositAddress/index.js +51 -0
  151. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
  152. package/build/src/components/Pages/WaitingOther/index.js +91 -0
  153. package/build/src/components/Pages/WaitingOther/index.js.map +1 -0
  154. package/build/src/components/Spinners/CircleSpinner/index.js +15 -0
  155. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -0
  156. package/build/src/components/Spinners/CircleSpinner/styles.js +118 -0
  157. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
  158. package/build/src/components/Spinners/SquircleSpinner/index.js +15 -0
  159. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
  160. package/build/src/components/Spinners/SquircleSpinner/styles.js +66 -0
  161. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
  162. package/build/src/components/contexts/solana/index.js +11 -0
  163. package/build/src/components/contexts/solana/index.js.map +1 -0
  164. package/build/src/components/contexts/web3/index.js +46 -0
  165. package/build/src/components/contexts/web3/index.js.map +1 -0
  166. package/build/src/constants/chainConfigs.js +306 -0
  167. package/build/src/constants/chainConfigs.js.map +1 -0
  168. package/build/src/constants/defaultTheme.js +6 -0
  169. package/build/src/constants/defaultTheme.js.map +1 -0
  170. package/build/src/defaultConfig.js +59 -0
  171. package/build/src/defaultConfig.js.map +1 -0
  172. package/build/src/defaultConnectors.js +43 -0
  173. package/build/src/defaultConnectors.js.map +1 -0
  174. package/build/src/hooks/connectors/useWalletConnectUri.js +93 -0
  175. package/build/src/hooks/connectors/useWalletConnectUri.js.map +1 -0
  176. package/build/src/hooks/useChainIsSupported.js +12 -0
  177. package/build/src/hooks/useChainIsSupported.js.map +1 -0
  178. package/build/src/hooks/useChains.js +11 -0
  179. package/build/src/hooks/useChains.js.map +1 -0
  180. package/build/src/hooks/useConnect.js +45 -0
  181. package/build/src/hooks/useConnect.js.map +1 -0
  182. package/build/src/hooks/useConnectCallback.js +18 -0
  183. package/build/src/hooks/useConnectCallback.js.map +1 -0
  184. package/build/src/hooks/useConnectors.js +29 -0
  185. package/build/src/hooks/useConnectors.js.map +1 -0
  186. package/build/src/hooks/useDaimoPayStatus.js +37 -0
  187. package/build/src/hooks/useDaimoPayStatus.js.map +1 -0
  188. package/build/src/hooks/useDepositAddressOptions.js +28 -0
  189. package/build/src/hooks/useDepositAddressOptions.js.map +1 -0
  190. package/build/src/hooks/useEnsFallbackConfig.js +16 -0
  191. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -0
  192. package/build/src/hooks/useExternalPaymentOptions.js +46 -0
  193. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -0
  194. package/build/src/hooks/useFitText.js +148 -0
  195. package/build/src/hooks/useFitText.js.map +1 -0
  196. package/build/src/hooks/useFocusTrap.js +60 -0
  197. package/build/src/hooks/useFocusTrap.js.map +1 -0
  198. package/build/src/hooks/useGoogleFont.js +45 -0
  199. package/build/src/hooks/useGoogleFont.js.map +1 -0
  200. package/build/src/hooks/useIsMobile.js +17 -0
  201. package/build/src/hooks/useIsMobile.js.map +1 -0
  202. package/build/src/hooks/useIsMounted.js +12 -0
  203. package/build/src/hooks/useIsMounted.js.map +1 -0
  204. package/build/src/hooks/useLastConnector.js +24 -0
  205. package/build/src/hooks/useLastConnector.js.map +1 -0
  206. package/build/src/hooks/useLocales.js +67 -0
  207. package/build/src/hooks/useLocales.js.map +1 -0
  208. package/build/src/hooks/useLockBodyScroll.js +53 -0
  209. package/build/src/hooks/useLockBodyScroll.js.map +1 -0
  210. package/build/src/hooks/useModal.js +35 -0
  211. package/build/src/hooks/useModal.js.map +1 -0
  212. package/build/src/hooks/usePayWithSolanaToken.js +50 -0
  213. package/build/src/hooks/usePayWithSolanaToken.js.map +1 -0
  214. package/build/src/hooks/usePayWithToken.js +57 -0
  215. package/build/src/hooks/usePayWithToken.js.map +1 -0
  216. package/build/src/hooks/usePaymentState.js +243 -0
  217. package/build/src/hooks/usePaymentState.js.map +1 -0
  218. package/build/src/hooks/usePrevious.js +14 -0
  219. package/build/src/hooks/usePrevious.js.map +1 -0
  220. package/build/src/hooks/useSolanaPaymentOptions.js +37 -0
  221. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -0
  222. package/build/src/hooks/useWalletConnectModal.js +52 -0
  223. package/build/src/hooks/useWalletConnectModal.js.map +1 -0
  224. package/build/src/hooks/useWalletPaymentOptions.js +40 -0
  225. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -0
  226. package/build/src/hooks/useWindowSize.js +23 -0
  227. package/build/src/hooks/useWindowSize.js.map +1 -0
  228. package/build/src/index.js +10 -0
  229. package/build/src/index.js.map +1 -0
  230. package/build/src/localizations/index.js +57 -0
  231. package/build/src/localizations/index.js.map +1 -0
  232. package/build/src/localizations/locales/ar-AE.js +97 -0
  233. package/build/src/localizations/locales/ar-AE.js.map +1 -0
  234. package/build/src/localizations/locales/ca-AD.js +95 -0
  235. package/build/src/localizations/locales/ca-AD.js.map +1 -0
  236. package/build/src/localizations/locales/ee-EE.js +95 -0
  237. package/build/src/localizations/locales/ee-EE.js.map +1 -0
  238. package/build/src/localizations/locales/en-US.js +95 -0
  239. package/build/src/localizations/locales/en-US.js.map +1 -0
  240. package/build/src/localizations/locales/es-ES.js +95 -0
  241. package/build/src/localizations/locales/es-ES.js.map +1 -0
  242. package/build/src/localizations/locales/fa-IR.js +95 -0
  243. package/build/src/localizations/locales/fa-IR.js.map +1 -0
  244. package/build/src/localizations/locales/fr-FR.js +95 -0
  245. package/build/src/localizations/locales/fr-FR.js.map +1 -0
  246. package/build/src/localizations/locales/ja-JP.js +95 -0
  247. package/build/src/localizations/locales/ja-JP.js.map +1 -0
  248. package/build/src/localizations/locales/pt-BR.js +95 -0
  249. package/build/src/localizations/locales/pt-BR.js.map +1 -0
  250. package/build/src/localizations/locales/ru-RU.js +95 -0
  251. package/build/src/localizations/locales/ru-RU.js.map +1 -0
  252. package/build/src/localizations/locales/tr-TR.js +95 -0
  253. package/build/src/localizations/locales/tr-TR.js.map +1 -0
  254. package/build/src/localizations/locales/vi-VN.js +95 -0
  255. package/build/src/localizations/locales/vi-VN.js.map +1 -0
  256. package/build/src/localizations/locales/zh-CN.js +95 -0
  257. package/build/src/localizations/locales/zh-CN.js.map +1 -0
  258. package/build/src/styles/defaultTheme.js +89 -0
  259. package/build/src/styles/defaultTheme.js.map +1 -0
  260. package/build/src/styles/index.js +329 -0
  261. package/build/src/styles/index.js.map +1 -0
  262. package/build/src/styles/styled/index.js +16 -0
  263. package/build/src/styles/styled/index.js.map +1 -0
  264. package/build/src/styles/themes/base.js +141 -0
  265. package/build/src/styles/themes/base.js.map +1 -0
  266. package/build/src/styles/themes/index.js +13 -0
  267. package/build/src/styles/themes/index.js.map +1 -0
  268. package/build/src/styles/themes/midnight.js +76 -0
  269. package/build/src/styles/themes/midnight.js.map +1 -0
  270. package/build/src/styles/themes/minimal.js +96 -0
  271. package/build/src/styles/themes/minimal.js.map +1 -0
  272. package/build/src/styles/themes/nouns.js +81 -0
  273. package/build/src/styles/themes/nouns.js.map +1 -0
  274. package/build/src/styles/themes/retro.js +106 -0
  275. package/build/src/styles/themes/retro.js.map +1 -0
  276. package/build/src/styles/themes/rounded.js +106 -0
  277. package/build/src/styles/themes/rounded.js.map +1 -0
  278. package/build/src/styles/themes/soft.js +71 -0
  279. package/build/src/styles/themes/soft.js.map +1 -0
  280. package/build/src/styles/themes/web95.js +132 -0
  281. package/build/src/styles/themes/web95.js.map +1 -0
  282. package/build/src/utils/exports.js +12 -0
  283. package/build/src/utils/exports.js.map +1 -0
  284. package/build/src/utils/index.js +39 -0
  285. package/build/src/utils/index.js.map +1 -0
  286. package/build/src/utils/p3.js +16 -0
  287. package/build/src/utils/p3.js.map +1 -0
  288. package/build/src/utils/platform.js +13 -0
  289. package/build/src/utils/platform.js.map +1 -0
  290. package/build/src/utils/trpc.js +14 -0
  291. package/build/src/utils/trpc.js.map +1 -0
  292. package/build/src/utils/wallets.js +14 -0
  293. package/build/src/utils/wallets.js.map +1 -0
  294. package/build/src/wallets/index.js +32 -0
  295. package/build/src/wallets/index.js.map +1 -0
  296. package/build/src/wallets/useWallets.js +86 -0
  297. package/build/src/wallets/useWallets.js.map +1 -0
  298. package/build/src/wallets/walletConfigs.js +362 -0
  299. package/build/src/wallets/walletConfigs.js.map +1 -0
  300. package/package.json +5 -5
  301. package/build/index.es.js +0 -11565
  302. package/build/index.es.js.map +0 -1
@@ -0,0 +1,202 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { AnimatePresence } from 'framer-motion';
3
+ import { useState, useEffect } from 'react';
4
+ import { Container, ConnectingContainer, ConnectingAnimation, RetryButton, RetryIconContainer, Content } from './styles.js';
5
+ import Alert from '../../Common/Alert/index.js';
6
+ import Button from '../../Common/Button/index.js';
7
+ import { PageContent, ModalHeading, ModalContent, ModalContentContainer, ModalH1, ModalBody } from '../../Common/Modal/styles.js';
8
+ import Tooltip from '../../Common/Tooltip/index.js';
9
+ import SquircleSpinner from '../../Spinners/SquircleSpinner/index.js';
10
+ import { RetryIconCircle, AlertIcon, TickIcon } from '../../../assets/icons.js';
11
+ import { useConnect } from '../../../hooks/useConnect.js';
12
+ import useLocales from '../../../hooks/useLocales.js';
13
+ import { detectBrowser, isWalletConnectConnector } from '../../../utils/index.js';
14
+ import { useWallet } from '../../../wallets/useWallets.js';
15
+ import BrowserIcon from '../../Common/BrowserIcon/index.js';
16
+ import { usePayContext } from '../../DaimoPay.js';
17
+ import CircleSpinner from '../../Spinners/CircleSpinner/index.js';
18
+
19
+ const states = {
20
+ CONNECTED: "connected",
21
+ CONNECTING: "connecting",
22
+ EXPIRING: "expiring",
23
+ FAILED: "failed",
24
+ REJECTED: "rejected",
25
+ NOTCONNECTED: "notconnected",
26
+ UNAVAILABLE: "unavailable",
27
+ };
28
+ const contentVariants = {
29
+ initial: {
30
+ willChange: "transform,opacity",
31
+ position: "relative",
32
+ opacity: 0,
33
+ scale: 0.95,
34
+ },
35
+ animate: {
36
+ position: "relative",
37
+ opacity: 1,
38
+ scale: 1,
39
+ transition: {
40
+ ease: [0.16, 1, 0.3, 1],
41
+ duration: 0.4,
42
+ delay: 0.05,
43
+ position: { delay: 0 },
44
+ },
45
+ },
46
+ exit: {
47
+ position: "absolute",
48
+ opacity: 0,
49
+ scale: 0.95,
50
+ transition: {
51
+ ease: [0.16, 1, 0.3, 1],
52
+ duration: 0.3,
53
+ },
54
+ },
55
+ };
56
+ const ConnectWithInjector = ({ switchConnectMethod, forceState }) => {
57
+ const { connect } = useConnect({
58
+ mutation: {
59
+ onMutate: (connector) => {
60
+ if (connector.connector) {
61
+ setStatus(states.CONNECTING);
62
+ }
63
+ else {
64
+ setStatus(states.UNAVAILABLE);
65
+ }
66
+ },
67
+ onError(err) {
68
+ console.error(err);
69
+ },
70
+ onSettled(data, error) {
71
+ if (error) {
72
+ setShowTryAgainTooltip(true);
73
+ setTimeout(() => setShowTryAgainTooltip(false), 3500);
74
+ if (error.code) {
75
+ // https://github.com/MetaMask/eth-rpc-errors/blob/main/src/error-constants.ts
76
+ switch (error.code) {
77
+ case -32002:
78
+ setStatus(states.NOTCONNECTED);
79
+ break;
80
+ case 4001:
81
+ setStatus(states.REJECTED);
82
+ break;
83
+ default:
84
+ setStatus(states.FAILED);
85
+ break;
86
+ }
87
+ }
88
+ else {
89
+ // Sometimes the error doesn't respond with a code
90
+ if (error.message) {
91
+ switch (error.message) {
92
+ case "User rejected request":
93
+ setStatus(states.REJECTED);
94
+ break;
95
+ default:
96
+ setStatus(states.FAILED);
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ setTimeout(triggerResize, 100);
103
+ },
104
+ },
105
+ });
106
+ const { triggerResize, connector: c } = usePayContext();
107
+ const id = c.id;
108
+ const wallet = useWallet(id);
109
+ const walletInfo = {
110
+ name: wallet?.name,
111
+ shortName: wallet?.shortName ?? wallet?.name,
112
+ icon: wallet?.iconConnector ?? wallet?.icon,
113
+ iconShape: wallet?.iconShape ?? "circle",
114
+ iconShouldShrink: wallet?.iconShouldShrink,
115
+ };
116
+ const [showTryAgainTooltip, setShowTryAgainTooltip] = useState(false);
117
+ const expiryDefault = 9; // Starting at 10 causes layout shifting, better to start at 9
118
+ useState(expiryDefault);
119
+ const browser = detectBrowser();
120
+ const extensionUrl = wallet?.downloadUrls?.[browser];
121
+ const suggestedExtension = wallet?.downloadUrls
122
+ ? {
123
+ name: Object.keys(wallet?.downloadUrls)[0],
124
+ label: Object.keys(wallet?.downloadUrls)[0]?.charAt(0).toUpperCase() +
125
+ Object.keys(wallet?.downloadUrls)[0]?.slice(1), // Capitalise first letter, but this might be better suited as a lookup table
126
+ url: wallet?.downloadUrls[Object.keys(wallet?.downloadUrls)[0]],
127
+ }
128
+ : undefined;
129
+ const [status, setStatus] = useState(forceState
130
+ ? forceState
131
+ : !wallet?.isInstalled
132
+ ? states.UNAVAILABLE
133
+ : states.CONNECTING);
134
+ const locales = useLocales({
135
+ CONNECTORNAME: walletInfo.name,
136
+ CONNECTORSHORTNAME: walletInfo.shortName ?? walletInfo.name,
137
+ SUGGESTEDEXTENSIONBROWSER: suggestedExtension?.label ?? "your browser",
138
+ });
139
+ const runConnect = async () => {
140
+ if (wallet?.isInstalled && wallet?.connector) {
141
+ connect({ connector: wallet?.connector });
142
+ }
143
+ else {
144
+ setStatus(states.UNAVAILABLE);
145
+ }
146
+ };
147
+ let connectTimeout;
148
+ useEffect(() => {
149
+ if (status === states.UNAVAILABLE)
150
+ return;
151
+ // UX: Give user time to see the UI before opening the extension
152
+ connectTimeout = setTimeout(runConnect, 600);
153
+ return () => {
154
+ clearTimeout(connectTimeout);
155
+ };
156
+ }, []);
157
+ /** Timeout functionality if necessary
158
+ let expiryTimeout: any;
159
+ useEffect(() => {
160
+ if (status === states.EXPIRING) {
161
+ expiryTimeout = setTimeout(
162
+ () => {
163
+ if (expiryTimer <= 0) {
164
+ setStatus(states.FAILED);
165
+ setExpiryTimer(expiryDefault);
166
+ } else {
167
+ setExpiryTimer(expiryTimer - 1);
168
+ }
169
+ },
170
+ expiryTimer === 9 ? 1500 : 1000 // Google: Chronostasis
171
+ );
172
+ }
173
+ return () => {
174
+ clearTimeout(expiryTimeout);
175
+ };
176
+ }, [status, expiryTimer]);
177
+ */
178
+ if (!wallet) {
179
+ return (jsx(PageContent, { children: jsxs(Container, { children: [jsx(ModalHeading, { children: "Invalid State" }), jsx(ModalContent, { children: jsx(Alert, { children: "No connectors match the id given. This state should never happen." }) })] }) }));
180
+ }
181
+ // TODO: Make this more generic
182
+ if (isWalletConnectConnector(wallet?.connector.id)) {
183
+ return (jsx(PageContent, { children: jsxs(Container, { children: [jsx(ModalHeading, { children: "Invalid State" }), jsx(ModalContent, { children: jsx(Alert, { children: "WalletConnect does not have an injection flow. This state should never happen." }) })] }) }));
184
+ }
185
+ return (jsx(PageContent, { children: jsxs(Container, { children: [jsx(ConnectingContainer, { children: jsxs(ConnectingAnimation, { "$shake": status === states.FAILED || status === states.REJECTED, "$circle": walletInfo.iconShape === "circle", children: [jsx(AnimatePresence, { children: (status === states.FAILED || status === states.REJECTED) && (jsx(RetryButton, { "aria-label": "Retry", initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, whileTap: { scale: 0.9 }, transition: { duration: 0.1 }, onClick: runConnect, children: jsx(RetryIconContainer, { children: jsx(Tooltip, { open: showTryAgainTooltip &&
186
+ (status === states.FAILED || status === states.REJECTED), message: locales.tryAgainQuestion, xOffset: -6, children: jsx(RetryIconCircle, {}) }) }) })) }), walletInfo.iconShape === "circle" ? (jsx(CircleSpinner, { logo: status === states.UNAVAILABLE ? (jsx("div", { style: {
187
+ transform: "scale(1.14)",
188
+ position: "relative",
189
+ width: "100%",
190
+ }, children: walletInfo.icon })) : (jsx(Fragment, { children: walletInfo.icon })), smallLogo: walletInfo.iconShouldShrink, loading: status === states.CONNECTING, unavailable: status === states.UNAVAILABLE })) : (jsx(SquircleSpinner, { logo: status === states.UNAVAILABLE ? (jsx("div", { style: {
191
+ transform: "scale(1.14)",
192
+ position: "relative",
193
+ width: "100%",
194
+ }, children: walletInfo.icon })) : (jsx(Fragment, { children: walletInfo.icon })), loading: status === states.CONNECTING }))] }) }), jsx(ModalContentContainer, { children: jsxs(AnimatePresence, { initial: false, children: [status === states.FAILED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { children: [jsxs(ModalH1, { "$error": true, children: [jsx(AlertIcon, {}), locales.injectionScreen_failed_h1] }), jsx(ModalBody, { children: locales.injectionScreen_failed_p })] }) }, states.FAILED)), status === states.REJECTED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { style: { paddingBottom: 28 }, children: [jsx(ModalH1, { children: locales.injectionScreen_rejected_h1 }), jsx(ModalBody, { children: locales.injectionScreen_rejected_p })] }) }, states.REJECTED)), (status === states.CONNECTING || status === states.EXPIRING) && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { style: { paddingBottom: 28 }, children: [jsx(ModalH1, { children: wallet.connector.id === "injected"
195
+ ? locales.injectionScreen_connecting_injected_h1
196
+ : locales.injectionScreen_connecting_h1 }), jsx(ModalBody, { children: wallet.connector.id === "injected"
197
+ ? locales.injectionScreen_connecting_injected_p
198
+ : locales.injectionScreen_connecting_p })] }) }, states.CONNECTING)), status === states.CONNECTED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { children: [jsxs(ModalH1, { "$valid": true, children: [jsx(TickIcon, {}), " ", locales.injectionScreen_connected_h1] }), jsx(ModalBody, { children: locales.injectionScreen_connected_p })] }) }, states.CONNECTED)), status === states.NOTCONNECTED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { children: [jsx(ModalH1, { children: locales.injectionScreen_notconnected_h1 }), jsx(ModalBody, { children: locales.injectionScreen_notconnected_p })] }) }, states.NOTCONNECTED)), status === states.UNAVAILABLE && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: !extensionUrl ? (jsxs(Fragment, { children: [jsxs(ModalContent, { style: { paddingBottom: 12 }, children: [jsx(ModalH1, { children: locales.injectionScreen_unavailable_h1 }), jsx(ModalBody, { children: locales.injectionScreen_unavailable_p })] }), !wallet.isInstalled && suggestedExtension && (jsxs(Button, { href: suggestedExtension?.url, icon: jsx(BrowserIcon, { browser: suggestedExtension?.name }), children: ["Install on ", suggestedExtension?.label] }))] })) : (jsxs(Fragment, { children: [jsxs(ModalContent, { style: { paddingBottom: 18 }, children: [jsx(ModalH1, { children: locales.injectionScreen_install_h1 }), jsx(ModalBody, { children: locales.injectionScreen_install_p })] }), !wallet.isInstalled && extensionUrl && (jsx(Button, { href: extensionUrl, icon: jsx(BrowserIcon, {}), children: locales.installTheExtension }))] })) }, states.UNAVAILABLE))] }) })] }) }));
199
+ };
200
+
201
+ export { ConnectWithInjector as default, states };
202
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,133 @@
1
+ import { motion } from 'framer-motion';
2
+ import { keyframes, css } from 'styled-components';
3
+ import styled from '../../../styles/styled/index.js';
4
+ import { ModalContent } from '../../Common/Modal/styles.js';
5
+
6
+ const Content = styled(motion.div) `
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: 6px;
10
+ position: relative;
11
+ left: 0;
12
+ right: 0;
13
+ ${ModalContent} {
14
+ padding: 0 8px 32px;
15
+ gap: 12px;
16
+ }
17
+ `;
18
+ const dist = 2;
19
+ const shakeKeyframes = keyframes `
20
+ 0%{ transform:none; }
21
+ 25%{ transform:translateX(${dist}px); }
22
+ 50%{ transform:translateX(-${dist}px); }
23
+ 75%{ transform:translateX(${dist}px); }
24
+ 100%{ transform:none; }
25
+ `;
26
+ const outlineKeyframes = keyframes `
27
+ 0%{ opacity:1; }
28
+ 100%{ opacity:0; }
29
+ `;
30
+ const Container = styled(motion.div) `
31
+ /*
32
+ background: var(
33
+ --ck-body-background
34
+ ); // To stop the overlay issue during transition for the squircle spinner
35
+ */
36
+ `;
37
+ const ConnectingContainer = styled(motion.div) `
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ margin: 10px auto 16px;
42
+ height: 120px;
43
+ //transform: scale(1.001); // fixes shifting issue between states
44
+ `;
45
+ const ConnectingAnimation = styled(motion.div) `
46
+ user-select: none;
47
+ position: relative;
48
+ --spinner-error-opacity: 0;
49
+ &:before {
50
+ content: "";
51
+ position: absolute;
52
+ inset: 1px;
53
+ opacity: 0;
54
+ background: var(--ck-body-color-danger);
55
+ ${(props) => props.$circle &&
56
+ css `
57
+ inset: -5px;
58
+ border-radius: 50%;
59
+ background: none;
60
+ box-shadow: inset 0 0 0 3.5px var(--ck-body-color-danger);
61
+ `}
62
+ }
63
+ ${(props) => props.$shake &&
64
+ css `
65
+ animation: ${shakeKeyframes} 220ms ease-out both;
66
+ &:before {
67
+ animation: ${outlineKeyframes} 220ms ease-out 750ms both;
68
+ }
69
+ `}
70
+ `;
71
+ const RetryButton = styled(motion.button) `
72
+ z-index: 5;
73
+ appearance: none;
74
+ position: absolute;
75
+ right: 2px;
76
+ bottom: 2px;
77
+ padding: 0;
78
+ display: flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ width: 32px;
82
+ height: 32px;
83
+ border-radius: 16px;
84
+ cursor: pointer;
85
+ overflow: hidden;
86
+ background: none;
87
+
88
+ color: var(--ck-body-background);
89
+ transition: color 200ms ease;
90
+ box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15);
91
+
92
+ &:before {
93
+ z-index: 3;
94
+ content: "";
95
+ position: absolute;
96
+ inset: 0;
97
+ opacity: 0;
98
+ transition: opacity 200ms ease;
99
+ background: var(--ck-body-color);
100
+ }
101
+
102
+ &:hover:before {
103
+ opacity: 0.1;
104
+ }
105
+ `;
106
+ const RetryIconContainer = styled(motion.div) `
107
+ position: absolute;
108
+ inset: 0;
109
+
110
+ &:before {
111
+ z-index: 1;
112
+ content: "";
113
+ position: absolute;
114
+ inset: 3px;
115
+ border-radius: 16px;
116
+ background: conic-gradient(
117
+ from 90deg,
118
+ currentColor 10%,
119
+ var(--ck-body-color) 80%
120
+ );
121
+ }
122
+
123
+ svg {
124
+ z-index: 2;
125
+ display: block;
126
+ position: relative;
127
+ width: 100%;
128
+ height: 100%;
129
+ }
130
+ `;
131
+
132
+ export { ConnectingAnimation, ConnectingContainer, Container, Content, RetryButton, RetryIconContainer };
133
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,75 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { usePayContext, ROUTES } from '../DaimoPay.js';
3
+ import { useWalletConnectModal } from '../../hooks/useWalletConnectModal.js';
4
+ import { detectBrowser, isWalletConnectConnector } from '../../utils/index.js';
5
+ import { OrDivider } from '../Common/Modal/index.js';
6
+ import { PageContent, ModalContent } from '../Common/Modal/styles.js';
7
+ import ScanIconWithLogos from '../../assets/ScanIconWithLogos.js';
8
+ import { ExternalLinkIcon } from '../../assets/icons.js';
9
+ import useLocales from '../../hooks/useLocales.js';
10
+ import Button from '../Common/Button/index.js';
11
+ import CopyToClipboard from '../Common/CopyToClipboard/index.js';
12
+ import CustomQRCode from '../Common/CustomQRCode/index.js';
13
+ import { useWallet } from '../../wallets/useWallets.js';
14
+ import { useWeb3 } from '../contexts/web3/index.js';
15
+
16
+ const ConnectWithQRCode = ({ switchConnectMethod }) => {
17
+ const context = usePayContext();
18
+ const id = context.connector.id;
19
+ const wallet = useWallet(context.connector.id);
20
+ const { open: openW3M, isOpen: isOpenW3M } = useWalletConnectModal();
21
+ const { connect: { getUri }, } = useWeb3();
22
+ const wcUri = getUri(id);
23
+ const uri = wcUri
24
+ ? (wallet?.getWalletConnectDeeplink?.(wcUri) ?? wcUri)
25
+ : undefined;
26
+ const locales = useLocales({
27
+ CONNECTORNAME: wallet?.name,
28
+ });
29
+ if (!wallet)
30
+ return jsxs(Fragment, { children: ["Wallet not found ", context.connector.id] });
31
+ const downloads = wallet?.downloadUrls;
32
+ const extensions = {
33
+ chrome: downloads?.chrome,
34
+ firefox: downloads?.firefox,
35
+ brave: downloads?.brave,
36
+ edge: downloads?.edge,
37
+ safari: downloads?.safari,
38
+ };
39
+ detectBrowser();
40
+ const hasApps = downloads && Object.keys(downloads).length !== 0;
41
+ extensions
42
+ ? {
43
+ name: Object.keys(extensions)[0],
44
+ label: Object.keys(extensions)[0]?.charAt(0).toUpperCase() +
45
+ Object.keys(extensions)[0]?.slice(1), // Capitalise first letter, but this might be better suited as a lookup table
46
+ url: extensions[Object.keys(extensions)[0]],
47
+ }
48
+ : undefined;
49
+ const showAdditionalOptions = isWalletConnectConnector(id);
50
+ return (jsxs(PageContent, { children: [jsxs(ModalContent, { style: { paddingBottom: 8, gap: 14 }, children: [jsx(CustomQRCode, { value: uri, image: wallet?.icon, tooltipMessage: isWalletConnectConnector(id) ? (jsxs(Fragment, { children: [jsx(ScanIconWithLogos, {}), jsx("span", { children: locales.scanScreen_tooltip_walletConnect })] })) : (jsxs(Fragment, { children: [jsx(ScanIconWithLogos, { logo: wallet?.icon }), jsx("span", { children: locales.scanScreen_tooltip_default })] })) }), showAdditionalOptions ? (jsx(OrDivider, {})) : (hasApps && jsx(OrDivider, { children: locales.dontHaveTheApp }))] }), showAdditionalOptions && ( // for walletConnect
51
+ jsxs("div", { style: {
52
+ display: "flex",
53
+ alignItems: "center",
54
+ justifyContent: "center",
55
+ gap: 14,
56
+ }, children: [context.options?.walletConnectCTA !== "modal" && (jsx(CopyToClipboard, { variant: "button", string: uri, children: context.options?.walletConnectCTA === "link"
57
+ ? locales.copyToClipboard
58
+ : locales.copyCode })), context.options?.walletConnectCTA !== "link" && (jsx(Button, { icon: jsx(ExternalLinkIcon, {}), onClick: openW3M, disabled: isOpenW3M, waiting: isOpenW3M, children: context.options?.walletConnectCTA === "modal"
59
+ ? locales.useWalletConnectModal
60
+ : locales.useModal }))] })), hasApps && (jsx(Fragment, { children: jsx(Button, { onClick: () => {
61
+ context.setRoute(ROUTES.DOWNLOAD);
62
+ },
63
+ /*
64
+ icon={
65
+ <div style={{ background: connectorInfo?.icon }}>
66
+ {connectorInfo?.logos.default}
67
+ </div>
68
+ }
69
+ roundedIcon
70
+ */
71
+ download: true, children: locales.getWalletName }) }))] }));
72
+ };
73
+
74
+ export { ConnectWithQRCode as default };
75
+ //# sourceMappingURL=ConnectWithQRCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectWithQRCode.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,140 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useEffect } from 'react';
3
+ import { useAccount } from 'wagmi';
4
+ import Modal from '../Common/Modal/index.js';
5
+ import { usePayContext, ROUTES } from '../DaimoPay.js';
6
+ import About from '../Pages/About/index.js';
7
+ import Wallets from '../Pages/Connectors/index.js';
8
+ import DownloadApp from '../Pages/DownloadApp/index.js';
9
+ import MobileConnectors from '../Pages/MobileConnectors/index.js';
10
+ import Introduction from '../Pages/Onboarding/index.js';
11
+ import SwitchNetworks from '../Pages/SwitchNetworks/index.js';
12
+ import ConnectUsing from './ConnectUsing.js';
13
+ import { getAppName } from '../../defaultConfig.js';
14
+ import { useChainIsSupported } from '../../hooks/useChainIsSupported.js';
15
+ import { DaimoPayThemeProvider } from '../DaimoPayThemeProvider/DaimoPayThemeProvider.js';
16
+ import Confirmation from '../Pages/Confirmation/index.js';
17
+ import PayWithToken from '../Pages/PayWithToken/index.js';
18
+ import SelectDepositAddressChain from '../Pages/SelectDepositAddressChain/index.js';
19
+ import SelectMethod from '../Pages/SelectMethod/index.js';
20
+ import SelectToken from '../Pages/SelectToken/index.js';
21
+ import ConnectSolana$1 from '../Pages/Solana/ConnectorSolana/index.js';
22
+ import ConnectSolana from '../Pages/Solana/ConnectSolana/index.js';
23
+ import PayWithSolanaToken from '../Pages/Solana/PayWithSolanaToken/index.js';
24
+ import SelectSolanaToken from '../Pages/Solana/SelectSolanaToken/index.js';
25
+ import WaitingDepositAddress from '../Pages/WaitingDepositAddress/index.js';
26
+ import WaitingOther from '../Pages/WaitingOther/index.js';
27
+
28
+ const customThemeDefault = {};
29
+ const DaimoPayModal = ({ mode = "auto", theme = "auto", customTheme = customThemeDefault, lang = "en-US", }) => {
30
+ const context = usePayContext();
31
+ const { setSelectedExternalOption, setSelectedTokenOption, setSelectedDepositAddressOption, setSelectedSolanaTokenOption, } = context.paymentState;
32
+ const { isConnected, chain } = useAccount();
33
+ const chainIsSupported = useChainIsSupported(chain?.id);
34
+ //if chain is unsupported we enforce a "switch chain" prompt
35
+ const closeable = !(context.options?.enforceSupportedChains &&
36
+ isConnected &&
37
+ !chainIsSupported);
38
+ const showBackButton = closeable &&
39
+ context.route !== ROUTES.SELECT_METHOD &&
40
+ context.route !== ROUTES.CONFIRMATION;
41
+ const onBack = () => {
42
+ if (context.route === ROUTES.DOWNLOAD) {
43
+ context.setRoute(ROUTES.CONNECT);
44
+ }
45
+ else if (context.route === ROUTES.CONNECTORS) {
46
+ context.setRoute(ROUTES.SELECT_METHOD);
47
+ }
48
+ else if (context.route === ROUTES.SELECT_TOKEN) {
49
+ context.setRoute(ROUTES.SELECT_METHOD);
50
+ }
51
+ else if (context.route === ROUTES.WAITING_OTHER) {
52
+ setSelectedExternalOption(undefined);
53
+ context.setRoute(ROUTES.SELECT_METHOD);
54
+ }
55
+ else if (context.route === ROUTES.PAY_WITH_TOKEN) {
56
+ setSelectedTokenOption(undefined);
57
+ context.setRoute(ROUTES.SELECT_TOKEN);
58
+ }
59
+ else if (context.route === ROUTES.ONBOARDING) {
60
+ context.setRoute(ROUTES.CONNECTORS);
61
+ }
62
+ else if (context.route === ROUTES.WAITING_DEPOSIT_ADDRESS) {
63
+ setSelectedDepositAddressOption(undefined);
64
+ context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
65
+ }
66
+ else if (context.route === ROUTES.SOLANA_PAY_WITH_TOKEN) {
67
+ setSelectedSolanaTokenOption(undefined);
68
+ context.setRoute(ROUTES.SOLANA_SELECT_TOKEN);
69
+ }
70
+ else {
71
+ context.setRoute(ROUTES.SELECT_METHOD);
72
+ }
73
+ };
74
+ const pages = {
75
+ daimoPaySelectMethod: jsx(SelectMethod, {}),
76
+ daimoPaySelectToken: jsx(SelectToken, {}),
77
+ daimoPayWaitingOther: jsx(WaitingOther, {}),
78
+ daimoPaySelectDepositAddressChain: jsx(SelectDepositAddressChain, {}),
79
+ daimoPayWaitingDepositAddress: jsx(WaitingDepositAddress, {}),
80
+ daimoPayConfirmation: jsx(Confirmation, {}),
81
+ daimoPayPayWithToken: jsx(PayWithToken, {}),
82
+ daimoPaySolanaConnect: jsx(ConnectSolana, {}),
83
+ daimoPaySolanaConnector: jsx(ConnectSolana$1, {}),
84
+ daimoPaySolanaSelectToken: jsx(SelectSolanaToken, {}),
85
+ daimoPaySolanaPayWithToken: jsx(PayWithSolanaToken, {}),
86
+ onboarding: jsx(Introduction, {}),
87
+ about: jsx(About, {}),
88
+ download: jsx(DownloadApp, {}),
89
+ connectors: jsx(Wallets, {}),
90
+ mobileConnectors: jsx(MobileConnectors, {}),
91
+ connect: jsx(ConnectUsing, {}),
92
+ switchNetworks: jsx(SwitchNetworks, {}),
93
+ };
94
+ function hide() {
95
+ context.setOpen(false);
96
+ }
97
+ useEffect(() => {
98
+ if (context.route === ROUTES.CONNECT ||
99
+ context.route === ROUTES.CONNECTORS ||
100
+ context.route === ROUTES.MOBILECONNECTORS) {
101
+ if (isConnected) {
102
+ context.setRoute(ROUTES.SELECT_TOKEN);
103
+ }
104
+ }
105
+ }, [isConnected, context.route]);
106
+ useEffect(() => context.setMode(mode), [mode]);
107
+ useEffect(() => context.setTheme(theme), [theme]);
108
+ useEffect(() => context.setCustomTheme(customTheme), [customTheme]);
109
+ useEffect(() => context.setLang(lang), [lang]);
110
+ /* When pulling data into WalletConnect, it prioritises the og:title tag over the title tag */
111
+ useEffect(() => {
112
+ const appName = getAppName();
113
+ if (!appName || !context.open)
114
+ return;
115
+ const title = document.createElement("meta");
116
+ title.setAttribute("property", "og:title");
117
+ title.setAttribute("content", appName);
118
+ document.head.prepend(title);
119
+ /*
120
+ // TODO: When pulling data into WalletConnect, figure out which icon gets used and replace with appIcon if available
121
+ const appIcon = getAppIcon();
122
+ const icon = document.createElement('link');
123
+ if (appIcon) {
124
+ icon.setAttribute('rel', 'icon');
125
+ icon.setAttribute('href', appIcon);
126
+ document.head.prepend(icon);
127
+ }*/
128
+ return () => {
129
+ try {
130
+ document.head.removeChild(title);
131
+ }
132
+ catch { }
133
+ //if (appIcon) document.head.removeChild(icon);
134
+ };
135
+ }, [context.open]);
136
+ return (jsx(DaimoPayThemeProvider, { theme: theme, customTheme: customTheme, mode: mode, children: jsx(Modal, { open: context.open, pages: pages, pageId: context.route, onClose: closeable ? hide : undefined, onInfo: undefined, onBack: showBackButton ? onBack : undefined }) }));
137
+ };
138
+
139
+ export { DaimoPayModal };
140
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,21 @@
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import React, { createContext, createElement } from 'react';
3
+
4
+ const Context = createContext(null);
5
+ const DaimoPayThemeProvider = ({ children, theme = "auto", mode = "auto", customTheme, }) => {
6
+ const value = {
7
+ theme,
8
+ mode,
9
+ customTheme,
10
+ };
11
+ return createElement(Context.Provider, { value }, jsx(Fragment, { children: children }));
12
+ };
13
+ const useThemeContext = () => {
14
+ const context = React.useContext(Context);
15
+ if (!context)
16
+ throw Error("DaimoPayThemeProvider must be inside a Provider.");
17
+ return context;
18
+ };
19
+
20
+ export { DaimoPayThemeProvider, useThemeContext };
21
+ //# sourceMappingURL=DaimoPayThemeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaimoPayThemeProvider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}