@daimo/pay 0.3.21 → 1.0.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 (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 +129 -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,28 @@
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import React from 'react';
3
+ import { BrowserIconContainer } from './styles.js';
4
+ import browsers from '../../../assets/browsers.js';
5
+ import { detectBrowser } from '../../../utils/index.js';
6
+
7
+ const BrowserIcon = React.forwardRef(({ browser }, ref) => {
8
+ const currentBrowser = browser ?? detectBrowser();
9
+ let icon;
10
+ switch (currentBrowser) {
11
+ case "chrome":
12
+ icon = browsers.Chrome;
13
+ break;
14
+ case "firefox":
15
+ icon = browsers.FireFox;
16
+ break;
17
+ case "edge":
18
+ icon = browsers.Edge;
19
+ break;
20
+ }
21
+ if (!icon)
22
+ return jsx(Fragment, {});
23
+ return jsx(BrowserIconContainer, { children: icon });
24
+ });
25
+ BrowserIcon.displayName = "BrowserIcon";
26
+
27
+ export { BrowserIcon as default };
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ import { motion } from 'framer-motion';
2
+ import styled from '../../../styles/styled/index.js';
3
+
4
+ const BrowserIconContainer = styled(motion.div) `
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ max-width: 32px;
9
+ max-height: 32px;
10
+ width: 100%;
11
+ height: 100%;
12
+ svg {
13
+ display: block;
14
+ width: 100%;
15
+ height: 100%;
16
+ }
17
+ `;
18
+
19
+ export { BrowserIconContainer };
20
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,38 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { AnimatePresence } from 'framer-motion';
3
+ import { flattenChildren } from '../../../utils/index.js';
4
+ import FitText from '../FitText/index.js';
5
+ import { Spinner } from '../Spinner/index.js';
6
+ import { ButtonContainer, ButtonContainerInner, IconContainer, DownloadArrow, DownloadArrowInner, Arrow, ArrowLine, ArrowChevron, InnerContainer, SpinnerContainer } from './styles.js';
7
+
8
+ const transition = {
9
+ duration: 0.4,
10
+ ease: [0.175, 0.885, 0.32, 0.98],
11
+ };
12
+ const Button = ({ children, variant = "secondary", // unique aspect to how we're handling buttons
13
+ disabled, icon, iconPosition = "left", roundedIcon, waiting, arrow, download, href, style, onClick, }) => {
14
+ const key = typeof children === "string"
15
+ ? children
16
+ : flattenChildren(children).join(""); // Need to generate a string for the key so we can automatically animate between content
17
+ const hrefUrl = typeof href === "string" ? href : flattenChildren(href).join(""); // Need to have a flat string for the href
18
+ return (jsx(ButtonContainer, { as: href ? "a" : undefined, onClick: (event) => {
19
+ if (!disabled && onClick)
20
+ onClick(event);
21
+ }, href: hrefUrl, target: href && "_blank", rel: href && "noopener noreferrer", disabled: disabled, "$variant": variant, style: style, children: jsxs(AnimatePresence, { initial: false, children: [jsxs(ButtonContainerInner, { initial: { opacity: 0, y: -10 }, animate: {
22
+ opacity: 1,
23
+ y: -1,
24
+ }, exit: {
25
+ position: "absolute",
26
+ opacity: 0,
27
+ y: 10,
28
+ transition: {
29
+ ...transition,
30
+ },
31
+ }, transition: {
32
+ ...transition,
33
+ delay: 0.2,
34
+ }, children: [icon && iconPosition === "left" && (jsx(IconContainer, { "$rounded": roundedIcon, children: icon })), download && (jsx(DownloadArrow, { children: jsx(DownloadArrowInner, { children: jsxs(Arrow, { width: "13", height: "12", viewBox: "0 0 13 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx(ArrowLine, { stroke: "currentColor", x1: "1", y1: "6", x2: "12", y2: "6", strokeWidth: "var(--stroke-width)", strokeLinecap: "round" }), jsx(ArrowChevron, { stroke: "currentColor", d: "M7.51431 1.5L11.757 5.74264M7.5 10.4858L11.7426 6.24314", strokeWidth: "var(--stroke-width)", strokeLinecap: "round" })] }) }) })), jsx(InnerContainer, { style: { paddingLeft: arrow ? 6 : 0 }, children: jsx(FitText, { children: children }) }), icon && iconPosition === "right" && (jsx(IconContainer, { "$rounded": roundedIcon, children: icon })), arrow && (jsxs(Arrow, { width: "13", height: "12", viewBox: "0 0 13 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx(ArrowLine, { stroke: "currentColor", x1: "1", y1: "6", x2: "12", y2: "6", strokeWidth: "2", strokeLinecap: "round" }), jsx(ArrowChevron, { stroke: "currentColor", d: "M7.51431 1.5L11.757 5.74264M7.5 10.4858L11.7426 6.24314", strokeWidth: "2", strokeLinecap: "round" })] }))] }, key), waiting && (jsx(SpinnerContainer, { children: jsx(Spinner, {}) }))] }) }));
35
+ };
36
+
37
+ export { Button as default };
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,291 @@
1
+ import { motion } from 'framer-motion';
2
+ import { css } from 'styled-components';
3
+ import defaultTheme from '../../../constants/defaultTheme.js';
4
+ import styled from '../../../styles/styled/index.js';
5
+
6
+ const SpinnerContainer = styled(motion.div) `
7
+ position: absolute;
8
+ right: 16px;
9
+ top: 0;
10
+ bottom: 0;
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ `;
15
+ const Arrow = styled.svg `
16
+ --x: -3px;
17
+ --stroke-width: 2;
18
+ position: relative;
19
+ top: 1px;
20
+ left: -0.5px;
21
+ display: inline-block;
22
+ vertical-align: middle;
23
+ margin-left: 9px;
24
+ margin-right: 1px;
25
+ transition: all 100ms ease;
26
+ transform: translateX(var(--x, -3px));
27
+ color: currentColor;
28
+ opacity: 0.4;
29
+ `;
30
+ const ArrowChevron = styled.path ``;
31
+ const ArrowLine = styled.line `
32
+ transition: inherit;
33
+ transition-property: transform;
34
+ transform-origin: 90% 50%;
35
+ transform: scaleX(0.1);
36
+ `;
37
+ const DownloadArrow = styled.div `
38
+ display: inline-block;
39
+ vertical-align: middle;
40
+ position: relative;
41
+ margin-right: 6px;
42
+ color: currentColor;
43
+ `;
44
+ const DownloadArrowInner = styled.div `
45
+ transform: rotate(90deg);
46
+ ${Arrow} {
47
+ margin: 0 auto;
48
+ }
49
+ `;
50
+ const ButtonContainerInner = styled(motion.div) `
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ inset: 0;
55
+ height: 100%;
56
+ `;
57
+ const ButtonContainer = styled.button `
58
+
59
+ ${({ disabled }) => disabled &&
60
+ css `
61
+ cursor: not-allowed;
62
+ pointer-events: none;
63
+ ${InnerContainer} {
64
+ opacity: 0.4;
65
+ }
66
+ `}
67
+
68
+ ${({ $variant }) => {
69
+ if ($variant === "primary") {
70
+ return css `
71
+ --color: var(--ck-primary-button-color, var(--ck-body-color));
72
+ --background: var(
73
+ --ck-primary-button-background,
74
+ var(--ck-body-background-primary)
75
+ );
76
+ --box-shadow: var(--ck-primary-button-box-shadow);
77
+ --border-radius: var(--ck-primary-button-border-radius);
78
+ --font-weight: var(--ck-primary-button-font-weight, 500);
79
+
80
+ --hover-color: var(--ck-button-primary-hover-color, var(--color));
81
+ --hover-background: var(
82
+ --ck-primary-button-hover-background,
83
+ var(--background)
84
+ );
85
+ --hover-box-shadow: var(
86
+ --ck-primary-button-hover-box-shadow,
87
+ var(--box-shadow)
88
+ );
89
+ --hover-border-radius: var(
90
+ --ck-primary-button-hover-border-radius,
91
+ var(--border-radius)
92
+ );
93
+ --hover-font-weight: var(
94
+ --ck-primary-button-font-weight,
95
+ var(--font-weight)
96
+ );
97
+ `;
98
+ }
99
+ else if ($variant === "secondary") {
100
+ return css `
101
+ --color: var(--ck-secondary-button-color, var(--ck-body-color));
102
+ --background: var(
103
+ --ck-secondary-button-background,
104
+ var(--ck-body-background-secondary)
105
+ );
106
+ --box-shadow: var(--ck-secondary-button-box-shadow);
107
+ --border-radius: var(--ck-secondary-button-border-radius);
108
+ --font-weight: var(--ck-secondary-button-font-weight, 500);
109
+
110
+ --hover-color: var(--ck-secondary-button-hover-color, var(--color));
111
+ --hover-background: var(
112
+ --ck-secondary-button-hover-background,
113
+ var(--background)
114
+ );
115
+ --hover-box-shadow: var(
116
+ --ck-secondary-button-hover-box-shadow,
117
+ var(--box-shadow)
118
+ );
119
+ --hover-border-radius: var(
120
+ --ck-secondary-button-hover-border-radius,
121
+ var(--border-radius)
122
+ );
123
+ --hover-font-weight: var(
124
+ --ck-secondary-button-font-weight,
125
+ var(--font-weight)
126
+ );
127
+ `;
128
+ }
129
+ else if ($variant === "tertiary") {
130
+ return css `
131
+ --color: var(
132
+ --ck-tertiary-button-color,
133
+ var(--ck-secondary-button-color)
134
+ );
135
+ --background: var(
136
+ --ck-tertiary-button-background,
137
+ var(--ck-secondary-button-background)
138
+ );
139
+ --box-shadow: var(
140
+ --ck-tertiary-button-box-shadow,
141
+ var(--ck-secondary-button-box-shadow)
142
+ );
143
+ --border-radius: var(
144
+ --ck-tertiary-button-border-radius,
145
+ var(--ck-secondary-button-border-radius)
146
+ );
147
+ --font-weight: var(
148
+ --ck-tertiary-button-font-weight,
149
+ var(--ck-secondary-button-font-weight)
150
+ );
151
+
152
+ --hover-color: var(
153
+ --button-tertiary-hover-color,
154
+ var(--ck-tertiary-button-color)
155
+ );
156
+ --hover-background: var(
157
+ --ck-tertiary-button-hover-background,
158
+ var(--ck-tertiary-button-background)
159
+ );
160
+ --hover-box-shadow: var(
161
+ --ck-tertiary-button-hover-box-shadow,
162
+ var(--ck-tertiary-button-box-shadow)
163
+ );
164
+ --hover-border-radius: var(
165
+ --ck-tertiary-button-hover-border-radius,
166
+ var(--ck-tertiary-button-border-radius, var(--border-radius))
167
+ );
168
+ --hover-font-weight: var(
169
+ --ck-tertiary-button-font-weight,
170
+ var(--ck-secondary-button-font-weight)
171
+ );
172
+ `;
173
+ }
174
+ }}
175
+
176
+ appearance: none;
177
+ cursor: pointer;
178
+ user-select: none;
179
+ min-width: fit-content;
180
+ width: 100%;
181
+ display:block;
182
+ text-align: center;
183
+ height: 48px;
184
+ margin: 12px 0 0;
185
+ line-height: 48px;
186
+ padding: 0 4px;
187
+ font-size: 16px;
188
+ font-weight: var(--font-weight,500);
189
+ text-decoration: none;
190
+ white-space: nowrap;
191
+ transition: 100ms ease;
192
+ transition-property: box-shadow, background-color;
193
+ color: var(--color);
194
+ background: var(--background);
195
+ border-radius: var(--border-radius);
196
+ box-shadow: var(--box-shadow);
197
+ will-change: transform, box-shadow, background-color, color;
198
+
199
+ ${DownloadArrow} {
200
+ ${Arrow} {
201
+ transform: translateX(0);
202
+ ${ArrowLine} {
203
+ transform: none;
204
+ }
205
+ ${ArrowChevron} {
206
+ }
207
+ }
208
+ }
209
+ }
210
+
211
+ @media only screen and (min-width: ${defaultTheme.mobileWidth + 1}px) {
212
+ &:hover,
213
+ &:focus-visible {
214
+ color: var(--ck-accent-text-color, var(--hover-color));
215
+ background: var(--ck-accent-color, var(--hover-background));
216
+ border-radius: var(--hover-border-radius);
217
+ box-shadow: var(--hover-box-shadow);
218
+
219
+ ${Arrow} {
220
+ transform: translateX(0);
221
+ ${ArrowLine} {
222
+ transform: none;
223
+ }
224
+ ${ArrowChevron} {
225
+ }
226
+ }
227
+ ${DownloadArrow} {
228
+ ${Arrow} {
229
+ transform: translateX(var(--x));
230
+ ${ArrowLine} {
231
+ transform: scaleX(0.1);
232
+ }
233
+ ${ArrowChevron} {
234
+ }
235
+ }
236
+ }
237
+ }
238
+ &:active {
239
+ box-shadow: var(--ck-secondary-button-active-box-shadow, var(--hover-box-shadow));
240
+ }
241
+ }
242
+ @media only screen and (max-width: ${defaultTheme.mobileWidth}px) {
243
+ transition: transform 100ms ease;
244
+ transform: scale(1);
245
+ font-size: 17px;
246
+ &:active {
247
+ }
248
+ }
249
+ `;
250
+ const InnerContainer = styled.div `
251
+ transform: translateZ(0); // Shifting fix
252
+ position: relative;
253
+ display: inline-block;
254
+ vertical-align: middle;
255
+ max-width: calc(100% - 42px);
256
+ transition: opacity 300ms ease;
257
+ /*
258
+ overflow: hidden;
259
+ text-overflow: ellipsis;
260
+ */
261
+ `;
262
+ const IconContainer = styled(motion.div) `
263
+ position: relative;
264
+ display: inline-block;
265
+ vertical-align: middle;
266
+ max-width: 20px;
267
+ max-height: 20px;
268
+ margin: 0 10px;
269
+ &:first-child {
270
+ margin-left: 0;
271
+ }
272
+ &:last-child {
273
+ margin-right: 0;
274
+ }
275
+ ${(props) => {
276
+ return (props.$rounded &&
277
+ css `
278
+ overflow: hidden;
279
+ border-radius: 5px;
280
+ `);
281
+ }}
282
+ svg {
283
+ display: block;
284
+ position: relative;
285
+ max-width: 100%;
286
+ height: auto;
287
+ }
288
+ `;
289
+
290
+ export { Arrow, ArrowChevron, ArrowLine, ButtonContainer, ButtonContainerInner, DownloadArrow, DownloadArrowInner, IconContainer, InnerContainer, SpinnerContainer };
291
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,25 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { AnimatePresence } from 'framer-motion';
3
+ import Chains from '../../../assets/chains.js';
4
+ import { chainConfigs } from '../../../constants/chainConfigs.js';
5
+ import { useChainIsSupported } from '../../../hooks/useChainIsSupported.js';
6
+ import useIsMounted from '../../../hooks/useIsMounted.js';
7
+ import { ChainContainer, Unsupported, LogoContainer, LoadingContainer } from './styles.js';
8
+
9
+ const Spinner = (jsxs("svg", { "aria-hidden": "true", width: "36", height: "36", viewBox: "0 0 36 36", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M11.3592 30.1654C10.0472 29.4491 8.85718 28.524 7.83713 27.424C6.81708 26.324 5.98425 25.0677 5.36889 23.7054C5.20157 23.335 5.05033 22.9567 4.91578 22.5717C4.51465 21.4237 4.26735 20.2308 4.17794 19.0239C4.16599 18.8626 4.13894 18.7041 4.09809 18.5507C3.85023 17.6197 3.09399 16.8738 2.11531 16.7999C0.975331 16.7138 -0.0310983 17.5702 0.0141657 18.7125C0.0223289 18.9185 0.0340286 19.1243 0.049253 19.3298C0.165374 20.8971 0.486545 22.4464 1.00749 23.9373C1.10424 24.2142 1.20764 24.4884 1.31755 24.7596C2.13617 26.7799 3.31595 28.6371 4.80146 30.239C6.28696 31.841 8.04998 33.1573 10.0029 34.1258C10.2651 34.2558 10.5307 34.3796 10.7995 34.4969C12.247 35.1287 13.7676 35.5656 15.3217 35.7995C15.5255 35.8301 15.7298 35.8573 15.9346 35.881C17.0703 36.0122 18.0001 35.0731 18.0001 33.9299C18.0001 32.9484 17.3133 32.1381 16.4036 31.8208C16.2537 31.7685 16.0977 31.7296 15.9377 31.7056C14.7411 31.5255 13.5702 31.1891 12.4556 30.7026C12.0818 30.5394 11.716 30.3601 11.3592 30.1654Z", fill: "url(#paint0_linear_1288_1870)" }), jsx("defs", { children: jsxs("linearGradient", { id: "paint0_linear_1288_1870", x1: "2", y1: "19.4884", x2: "16.8752", y2: "33.7485", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "var(--ck-connectbutton-balance-color,currentColor)", stopOpacity: "0.7" }), jsx("stop", { offset: "1", stopColor: "var(--ck-connectbutton-balance-color,currentColor)", stopOpacity: "0" })] }) })] }));
10
+ /** Icon for an EVM chain, given chain ID. No ID shows a loading spinner. */
11
+ const Chain = ({ id, unsupported: controlledUnsupported, radius = "50%", size = 24, }) => {
12
+ const isChainSupported = useChainIsSupported(id);
13
+ const unsupported = controlledUnsupported ?? !isChainSupported;
14
+ const chain = chainConfigs.find((c) => c.id === id);
15
+ const isMounted = useIsMounted();
16
+ if (!isMounted)
17
+ return (jsx("div", { style: {
18
+ width: size,
19
+ height: size,
20
+ } }));
21
+ return (jsx(ChainContainer, { size: size, radius: radius, children: jsxs(AnimatePresence, { initial: false, children: [unsupported && (jsx(Unsupported, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, children: jsxs("svg", { width: "13", height: "12", viewBox: "0 0 13 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M2.61317 11.2501H9.46246C10.6009 11.2501 11.3256 10.3506 11.3256 9.3549C11.3256 9.05145 11.255 8.73244 11.0881 8.43303L7.65903 2.14708C7.659 2.14702 7.65897 2.14696 7.65893 2.1469C7.65889 2.14682 7.65884 2.14673 7.65879 2.14664C7.31045 1.50746 6.6741 1.17871 6.04 1.17871C5.41478 1.17871 4.763 1.50043 4.41518 2.14968L0.993416 8.43476C0.828865 8.72426 0.75 9.04297 0.75 9.3549C0.75 10.3506 1.47471 11.2501 2.61317 11.2501Z", fill: "currentColor", stroke: "var(--ck-body-background, #fff)", strokeWidth: "1.5" }), jsx("path", { d: "M6.03258 7.43916C5.77502 7.43916 5.63096 7.29153 5.62223 7.02311L5.55675 4.96973C5.54802 4.69684 5.74446 4.5 6.02821 4.5C6.3076 4.5 6.51277 4.70131 6.50404 4.9742L6.43856 7.01864C6.42546 7.29153 6.2814 7.43916 6.03258 7.43916ZM6.03258 9.11676C5.7401 9.11676 5.5 8.9065 5.5 8.60677C5.5 8.30704 5.7401 8.09678 6.03258 8.09678C6.32506 8.09678 6.56515 8.30256 6.56515 8.60677C6.56515 8.91097 6.32069 9.11676 6.03258 9.11676Z", fill: "white" })] }) })), id ? (jsx(LogoContainer, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.3 }, children: chain?.logo ?? jsx(Chains.UnknownChain, {}) }, `${chain?.id}-${chain?.name}-${id}`)) : (jsx(LoadingContainer, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.3 }, children: Spinner }, "loading"))] }) }));
22
+ };
23
+
24
+ export { Chain as default };
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,94 @@
1
+ import { motion } from 'framer-motion';
2
+ import { css, keyframes } from 'styled-components';
3
+ import styled from '../../../styles/styled/index.js';
4
+
5
+ const ChainContainer = styled.div `
6
+ --bg: transparent;
7
+ --color: #333;
8
+ ${(props) => typeof props.size === "string"
9
+ ? css `
10
+ --width: ${props.size};
11
+ --height: ${props.size};
12
+ `
13
+ : css `
14
+ --width: ${props.size >= 0 ? `${props.size}px` : "24px"};
15
+ --height: ${props.size >= 0 ? `${props.size}px` : "24px"};
16
+ `};
17
+ ${(props) => typeof props.radius === "string"
18
+ ? css `
19
+ --radius: ${props.radius};
20
+ `
21
+ : css `
22
+ --radius: ${props.radius >= 0 ? `${props.radius}px` : "24px"};
23
+ `};
24
+ display: block;
25
+ position: relative;
26
+ width: var(--width);
27
+ height: var(--height);
28
+ min-width: var(--width);
29
+ min-height: var(--height);
30
+ border-radius: var(--radius);
31
+ background: var(--ck-body-background-secondary);
32
+ pointer-events: none;
33
+ user-select: none;
34
+ svg {
35
+ display: block;
36
+ width: 100%;
37
+ height: auto;
38
+ }
39
+ > div {
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ }
44
+ `;
45
+ const LogoContainer = styled(motion.div) `
46
+ display: block;
47
+ position: absolute;
48
+ inset: 0;
49
+ overflow: hidden;
50
+ border-radius: inherit;
51
+ user-select: none;
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ svg {
56
+ display: block;
57
+ width: 100%;
58
+ height: auto;
59
+ }
60
+ `;
61
+ const Spin = keyframes `
62
+ 0%{ transform: rotate(0deg); }
63
+ 100%{ transform: rotate(360deg); }
64
+ `;
65
+ const LoadingContainer = styled(motion.div) `
66
+ position: absolute;
67
+ inset: 0;
68
+ animation: ${Spin} 1s linear infinite;
69
+ svg {
70
+ display: block;
71
+ position: absolute;
72
+ inset: 0;
73
+ }
74
+ `;
75
+ const Unsupported = styled(motion.div) `
76
+ z-index: 2;
77
+ position: absolute;
78
+ top: 0;
79
+ right: 0;
80
+ width: 40%;
81
+ height: 40%;
82
+ min-width: 13px;
83
+ min-height: 13px;
84
+ color: var(--ck-body-color-danger, red);
85
+ svg {
86
+ display: block;
87
+ position: relative;
88
+ top: -30%;
89
+ right: -30%;
90
+ }
91
+ `;
92
+
93
+ export { ChainContainer, LoadingContainer, LogoContainer, Unsupported };
94
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,107 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
3
+ import { useAccount, useSwitchChain } from 'wagmi';
4
+ import { chainConfigs } from '../../../constants/chainConfigs.js';
5
+ import Alert from '../Alert/index.js';
6
+ import { SwitchNetworksContainer, ChainButtonContainer, ChainButtons, ChainButton, ChainLogoContainer, ChainLogoSpinner, ChainIcon, ChainButtonStatus, ChainButtonBg } from './styles.js';
7
+ import { motion, AnimatePresence } from 'framer-motion';
8
+ import { isMobile, isCoinbaseWalletConnector } from '../../../utils/index.js';
9
+ import Chains from '../../../assets/chains.js';
10
+ import useLocales from '../../../hooks/useLocales.js';
11
+ import { usePayContext } from '../../DaimoPay.js';
12
+
13
+ const Spinner = (jsxs("svg", { "aria-hidden": "true", width: "36", height: "36", viewBox: "0 0 36 36", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M2 16.75C2.69036 16.75 3.25 17.3096 3.25 18V19C3.25 26.5939 9.40609 32.75 17 32.75V35.25C8.02537 35.25 0.75 27.9746 0.75 19V18C0.75 17.3096 1.30964 16.75 2 16.75Z", fill: "url(#paint0_linear_1288_18701)" }), jsx("defs", { children: jsxs("linearGradient", { id: "paint0_linear_1288_18701", x1: "2", y1: "19.4884", x2: "16.8752", y2: "33.7485", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "var(--ck-spinner-color)" }), jsx("stop", { offset: "1", stopColor: "var(--ck-spinner-color)", stopOpacity: "0" })] }) })] }));
14
+ const ChainSelectList = ({ variant, }) => {
15
+ const { connector, chain } = useAccount();
16
+ const { chains, isPending, switchChain, error } = useSwitchChain();
17
+ const [pendingChainId, setPendingChainId] = useState(undefined);
18
+ const locales = useLocales({});
19
+ const mobile = isMobile();
20
+ const isError = error?.["code"] === 4902; // Wallet cannot switch networks
21
+ const disabled = isError || !switchChain;
22
+ const handleSwitchNetwork = (chainId) => {
23
+ if (switchChain) {
24
+ setPendingChainId(chainId);
25
+ switchChain({ chainId });
26
+ }
27
+ };
28
+ const { triggerResize } = usePayContext();
29
+ return (jsxs(SwitchNetworksContainer, { style: { marginBottom: switchChain !== undefined ? -8 : 0 }, children: [jsx(ChainButtonContainer, { children: jsx(ChainButtons, { children: chains.map((x) => {
30
+ const c = chainConfigs.find((ch) => ch.id === x.id);
31
+ const ch = { ...c, ...x };
32
+ return (jsxs(ChainButton, { "$variant": variant, disabled: disabled ||
33
+ ch.id === chain?.id ||
34
+ (isPending && pendingChainId === ch.id), onClick: () => handleSwitchNetwork?.(ch.id), style: {
35
+ opacity: disabled && ch.id !== chain?.id ? 0.4 : undefined,
36
+ }, children: [jsxs("span", { style: {
37
+ display: "flex",
38
+ alignItems: "center",
39
+ justifyContent: "flex-start",
40
+ gap: 12,
41
+ color: ch.id === chain?.id
42
+ ? "var(--ck-dropdown-active-color, inherit)"
43
+ : "inherit",
44
+ }, children: [jsxs(ChainLogoContainer, { children: [jsx(ChainLogoSpinner, { initial: { opacity: 0 }, animate: {
45
+ opacity: isPending && pendingChainId === ch.id ? 1 : 0,
46
+ }, transition: {
47
+ ease: [0.76, 0, 0.24, 1],
48
+ duration: 0.15,
49
+ delay: 0.1,
50
+ }, children: jsx(motion.div, { animate:
51
+ // UI fix for Coinbase Wallet on mobile does not remove isPending on rejection event
52
+ mobile &&
53
+ isCoinbaseWalletConnector(connector?.id) &&
54
+ isPending &&
55
+ pendingChainId === ch.id
56
+ ? {
57
+ opacity: [1, 0],
58
+ transition: { delay: 4, duration: 3 },
59
+ }
60
+ : { opacity: 1 }, children: Spinner }, `${ch?.id}-${ch?.name}`) }), jsx(ChainIcon, { children: ch.logo ?? jsx(Chains.UnknownChain, {}) })] }), ch.name] }), variant !== "secondary" && (jsx(ChainButtonStatus, { children: jsxs(AnimatePresence, { initial: false, exitBeforeEnter: true, children: [ch.id === chain?.id && (jsx(motion.span, { style: {
61
+ color: "var(--ck-dropdown-active-color, var(--ck-focus-color))",
62
+ display: "block",
63
+ position: "relative",
64
+ }, initial: { opacity: 0, x: -4 }, animate: { opacity: 1, x: 0 }, exit: {
65
+ opacity: 0,
66
+ x: 4,
67
+ transition: { duration: 0.1, delay: 0 },
68
+ }, transition: {
69
+ ease: [0.76, 0, 0.24, 1],
70
+ duration: 0.3,
71
+ delay: 0.2,
72
+ }, children: locales.connected }, "connectedText")), isPending && pendingChainId === ch.id && (jsx(motion.span, { style: {
73
+ color: "var(--ck-dropdown-pending-color, inherit)",
74
+ display: "block",
75
+ position: "relative",
76
+ }, initial: {
77
+ opacity: 0,
78
+ x: -4,
79
+ }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: 4 }, transition: {
80
+ ease: [0.76, 0, 0.24, 1],
81
+ duration: 0.3,
82
+ delay: 0.1,
83
+ }, children: jsx(motion.span, { animate:
84
+ // UI fix for Coinbase Wallet on mobile does not remove isLoading on rejection event
85
+ mobile &&
86
+ isCoinbaseWalletConnector(connector?.id) && {
87
+ opacity: [1, 0],
88
+ transition: { delay: 4, duration: 4 },
89
+ }, children: locales.approveInWallet }) }, "approveText"))] }) })), variant === "secondary" ? (jsx(ChainButtonBg, { initial: false, animate: {
90
+ opacity: ch.id === chain?.id ? 1 : 0,
91
+ }, transition: {
92
+ duration: 0.3,
93
+ ease: "easeOut",
94
+ } })) : (
95
+ //hover === ch.name && (
96
+ ch.id === chain?.id && (jsx(ChainButtonBg, { layoutId: "activeChain", layout: "position", transition: {
97
+ duration: 0.3,
98
+ ease: "easeOut",
99
+ } })))] }, `${ch?.id}-${ch?.name}`));
100
+ }) }) }), jsx(AnimatePresence, { children: isError && (jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: {
101
+ ease: [0.76, 0, 0.24, 1],
102
+ duration: 0.3,
103
+ }, onAnimationStart: triggerResize, onAnimationComplete: triggerResize, children: jsx("div", { style: { paddingTop: 10, paddingBottom: 8 }, children: jsxs(Alert, { children: [locales.warnings_walletSwitchingUnsupported, " ", locales.warnings_walletSwitchingUnsupportedResolve] }) }) })) })] }));
104
+ };
105
+
106
+ export { ChainSelectList as default };
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}