@daimo/pay 1.19.2 → 1.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/build/connectkit/package.json.js +117 -0
  2. package/build/connectkit/package.json.js.map +1 -0
  3. package/build/connectkit/src/assets/MobileWithLogos.js +329 -0
  4. package/build/connectkit/src/assets/MobileWithLogos.js.map +1 -0
  5. package/build/connectkit/src/assets/ScanIconWithLogos.js +243 -0
  6. package/build/connectkit/src/assets/ScanIconWithLogos.js.map +1 -0
  7. package/build/connectkit/src/assets/browsers.js +969 -0
  8. package/build/connectkit/src/assets/browsers.js.map +1 -0
  9. package/build/connectkit/src/assets/chains.js +648 -0
  10. package/build/connectkit/src/assets/chains.js.map +1 -0
  11. package/build/connectkit/src/assets/coins.js +43 -0
  12. package/build/connectkit/src/assets/coins.js.map +1 -0
  13. package/build/connectkit/src/assets/icons.js +273 -0
  14. package/build/connectkit/src/assets/icons.js.map +1 -0
  15. package/build/connectkit/src/assets/logos.js +1620 -0
  16. package/build/connectkit/src/assets/logos.js.map +1 -0
  17. package/build/connectkit/src/assets/wave.js +46 -0
  18. package/build/connectkit/src/assets/wave.js.map +1 -0
  19. package/build/connectkit/src/components/Common/Alert/index.js +13 -0
  20. package/build/connectkit/src/components/Common/Alert/index.js.map +1 -0
  21. package/build/connectkit/src/components/Common/Alert/styles.js +55 -0
  22. package/build/connectkit/src/components/Common/Alert/styles.js.map +1 -0
  23. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js +71 -0
  24. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js.map +1 -0
  25. package/build/connectkit/src/components/Common/AmountInput/index.js +159 -0
  26. package/build/connectkit/src/components/Common/AmountInput/index.js.map +1 -0
  27. package/build/connectkit/src/components/Common/Avatar/index.js +78 -0
  28. package/build/connectkit/src/components/Common/Avatar/index.js.map +1 -0
  29. package/build/connectkit/src/components/Common/Avatar/styles.js +54 -0
  30. package/build/connectkit/src/components/Common/Avatar/styles.js.map +1 -0
  31. package/build/connectkit/src/components/Common/BrowserIcon/index.js +29 -0
  32. package/build/connectkit/src/components/Common/BrowserIcon/index.js.map +1 -0
  33. package/build/connectkit/src/components/Common/BrowserIcon/styles.js +20 -0
  34. package/build/connectkit/src/components/Common/BrowserIcon/styles.js.map +1 -0
  35. package/build/connectkit/src/components/Common/Button/index.js +144 -0
  36. package/build/connectkit/src/components/Common/Button/index.js.map +1 -0
  37. package/build/connectkit/src/components/Common/Button/styles.js +287 -0
  38. package/build/connectkit/src/components/Common/Button/styles.js.map +1 -0
  39. package/build/connectkit/src/components/Common/Chain/index.js +141 -0
  40. package/build/connectkit/src/components/Common/Chain/index.js.map +1 -0
  41. package/build/connectkit/src/components/Common/Chain/styles.js +90 -0
  42. package/build/connectkit/src/components/Common/Chain/styles.js.map +1 -0
  43. package/build/connectkit/src/components/Common/ChainSelectList/index.js +250 -0
  44. package/build/connectkit/src/components/Common/ChainSelectList/index.js.map +1 -0
  45. package/build/connectkit/src/components/Common/ChainSelectList/styles.js +226 -0
  46. package/build/connectkit/src/components/Common/ChainSelectList/styles.js.map +1 -0
  47. package/build/connectkit/src/components/Common/CircleTimer.js +92 -0
  48. package/build/connectkit/src/components/Common/CircleTimer.js.map +1 -0
  49. package/build/connectkit/src/components/Common/ConnectorList/index.js +120 -0
  50. package/build/connectkit/src/components/Common/ConnectorList/index.js.map +1 -0
  51. package/build/connectkit/src/components/Common/ConnectorList/styles.js +344 -0
  52. package/build/connectkit/src/components/Common/ConnectorList/styles.js.map +1 -0
  53. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +78 -0
  54. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
  55. package/build/connectkit/src/components/Common/CopyToClipboard/index.js +33 -0
  56. package/build/connectkit/src/components/Common/CopyToClipboard/index.js.map +1 -0
  57. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js +128 -0
  58. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
  59. package/build/connectkit/src/components/Common/CustomQRCode/index.js +71 -0
  60. package/build/connectkit/src/components/Common/CustomQRCode/index.js.map +1 -0
  61. package/build/connectkit/src/components/Common/CustomQRCode/styles.js +139 -0
  62. package/build/connectkit/src/components/Common/CustomQRCode/styles.js.map +1 -0
  63. package/build/connectkit/src/components/Common/FitText/index.js +34 -0
  64. package/build/connectkit/src/components/Common/FitText/index.js.map +1 -0
  65. package/build/connectkit/src/components/Common/Modal/index.js +523 -0
  66. package/build/connectkit/src/components/Common/Modal/index.js.map +1 -0
  67. package/build/connectkit/src/components/Common/Modal/styles.js +665 -0
  68. package/build/connectkit/src/components/Common/Modal/styles.js.map +1 -0
  69. package/build/connectkit/src/components/Common/OptionsList/index.js +145 -0
  70. package/build/connectkit/src/components/Common/OptionsList/index.js.map +1 -0
  71. package/build/connectkit/src/components/Common/OptionsList/styles.js +138 -0
  72. package/build/connectkit/src/components/Common/OptionsList/styles.js.map +1 -0
  73. package/build/connectkit/src/components/Common/OrderHeader/index.js +192 -0
  74. package/build/connectkit/src/components/Common/OrderHeader/index.js.map +1 -0
  75. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js +70 -0
  76. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js.map +1 -0
  77. package/build/connectkit/src/components/Common/Portal/index.js +30 -0
  78. package/build/connectkit/src/components/Common/Portal/index.js.map +1 -0
  79. package/build/connectkit/src/components/Common/PoweredByFooter/index.js +66 -0
  80. package/build/connectkit/src/components/Common/PoweredByFooter/index.js.map +1 -0
  81. package/build/connectkit/src/components/Common/ScrollArea/index.js +120 -0
  82. package/build/connectkit/src/components/Common/ScrollArea/index.js.map +1 -0
  83. package/build/connectkit/src/components/Common/ScrollArea/styles.js +169 -0
  84. package/build/connectkit/src/components/Common/ScrollArea/styles.js.map +1 -0
  85. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js +96 -0
  86. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -0
  87. package/build/connectkit/src/components/Common/Spinner/index.js +64 -0
  88. package/build/connectkit/src/components/Common/Spinner/index.js.map +1 -0
  89. package/build/connectkit/src/components/Common/Spinner/styles.js +22 -0
  90. package/build/connectkit/src/components/Common/Spinner/styles.js.map +1 -0
  91. package/build/connectkit/src/components/Common/SwitchButton/index.js +43 -0
  92. package/build/connectkit/src/components/Common/SwitchButton/index.js.map +1 -0
  93. package/build/connectkit/src/components/Common/ThemedButton/index.js +46 -0
  94. package/build/connectkit/src/components/Common/ThemedButton/index.js.map +1 -0
  95. package/build/connectkit/src/components/Common/ThemedButton/styles.js +152 -0
  96. package/build/connectkit/src/components/Common/ThemedButton/styles.js.map +1 -0
  97. package/build/connectkit/src/components/Common/TokenChainLogo/index.js +62 -0
  98. package/build/connectkit/src/components/Common/TokenChainLogo/index.js.map +1 -0
  99. package/build/connectkit/src/components/Common/Tooltip/index.js +129 -0
  100. package/build/connectkit/src/components/Common/Tooltip/index.js.map +1 -0
  101. package/build/connectkit/src/components/Common/Tooltip/styles.js +81 -0
  102. package/build/connectkit/src/components/Common/Tooltip/styles.js.map +1 -0
  103. package/build/connectkit/src/components/Common/WalletChainLogo/index.js +31 -0
  104. package/build/connectkit/src/components/Common/WalletChainLogo/index.js.map +1 -0
  105. package/build/connectkit/src/components/DaimoPayButton/index.js +197 -0
  106. package/build/connectkit/src/components/DaimoPayButton/index.js.map +1 -0
  107. package/build/connectkit/src/components/DaimoPayButton/styles.js +50 -0
  108. package/build/connectkit/src/components/DaimoPayButton/styles.js.map +1 -0
  109. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js +68 -0
  110. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
  111. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js +335 -0
  112. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
  113. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js +131 -0
  114. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
  115. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js +99 -0
  116. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
  117. package/build/connectkit/src/components/DaimoPayModal/index.js +462 -0
  118. package/build/connectkit/src/components/DaimoPayModal/index.js.map +1 -0
  119. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +25 -0
  120. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
  121. package/build/connectkit/src/components/Pages/About/graphics.js +853 -0
  122. package/build/connectkit/src/components/Pages/About/graphics.js.map +1 -0
  123. package/build/connectkit/src/components/Pages/About/index.js +222 -0
  124. package/build/connectkit/src/components/Pages/About/index.js.map +1 -0
  125. package/build/connectkit/src/components/Pages/About/styles.js +140 -0
  126. package/build/connectkit/src/components/Pages/About/styles.js.map +1 -0
  127. package/build/connectkit/src/components/Pages/Confirmation/index.js +128 -0
  128. package/build/connectkit/src/components/Pages/Confirmation/index.js.map +1 -0
  129. package/build/connectkit/src/components/Pages/Connectors/index.js +28 -0
  130. package/build/connectkit/src/components/Pages/Connectors/index.js.map +1 -0
  131. package/build/connectkit/src/components/Pages/DownloadApp/index.js +35 -0
  132. package/build/connectkit/src/components/Pages/DownloadApp/index.js.map +1 -0
  133. package/build/connectkit/src/components/Pages/Error/index.js +57 -0
  134. package/build/connectkit/src/components/Pages/Error/index.js.map +1 -0
  135. package/build/connectkit/src/components/Pages/MobileConnectors/index.js +65 -0
  136. package/build/connectkit/src/components/Pages/MobileConnectors/index.js.map +1 -0
  137. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js +64 -0
  138. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js.map +1 -0
  139. package/build/connectkit/src/components/Pages/Onboarding/index.js +34 -0
  140. package/build/connectkit/src/components/Pages/Onboarding/index.js.map +1 -0
  141. package/build/connectkit/src/components/Pages/Onboarding/styles.js +229 -0
  142. package/build/connectkit/src/components/Pages/Onboarding/styles.js.map +1 -0
  143. package/build/connectkit/src/components/Pages/PayWithToken/index.js +157 -0
  144. package/build/connectkit/src/components/Pages/PayWithToken/index.js.map +1 -0
  145. package/build/connectkit/src/components/Pages/SelectAmount/index.js +24 -0
  146. package/build/connectkit/src/components/Pages/SelectAmount/index.js.map +1 -0
  147. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js +79 -0
  148. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -0
  149. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js +72 -0
  150. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
  151. package/build/connectkit/src/components/Pages/SelectExchange/index.js +41 -0
  152. package/build/connectkit/src/components/Pages/SelectExchange/index.js.map +1 -0
  153. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js +80 -0
  154. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js.map +1 -0
  155. package/build/connectkit/src/components/Pages/SelectMethod/index.js +230 -0
  156. package/build/connectkit/src/components/Pages/SelectMethod/index.js.map +1 -0
  157. package/build/connectkit/src/components/Pages/SelectToken/index.js +97 -0
  158. package/build/connectkit/src/components/Pages/SelectToken/index.js.map +1 -0
  159. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js +66 -0
  160. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js.map +1 -0
  161. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js +55 -0
  162. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js.map +1 -0
  163. package/build/connectkit/src/components/Pages/SelectZKP/index.js +41 -0
  164. package/build/connectkit/src/components/Pages/SelectZKP/index.js.map +1 -0
  165. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js +94 -0
  166. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
  167. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js +92 -0
  168. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
  169. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js +24 -0
  170. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -0
  171. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js +45 -0
  172. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js.map +1 -0
  173. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js +503 -0
  174. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
  175. package/build/connectkit/src/components/Pages/WaitingExternal/index.js +89 -0
  176. package/build/connectkit/src/components/Pages/WaitingExternal/index.js.map +1 -0
  177. package/build/connectkit/src/components/Pages/WaitingWallet/index.js +49 -0
  178. package/build/connectkit/src/components/Pages/WaitingWallet/index.js.map +1 -0
  179. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js +104 -0
  180. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js.map +1 -0
  181. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js +117 -0
  182. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
  183. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js +29 -0
  184. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -0
  185. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js +68 -0
  186. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
  187. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js +66 -0
  188. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
  189. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js +24 -0
  190. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -0
  191. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js +40 -0
  192. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -0
  193. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js +37 -0
  194. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -0
  195. package/build/connectkit/src/components/Spinners/styles.js +32 -0
  196. package/build/connectkit/src/components/Spinners/styles.js.map +1 -0
  197. package/build/connectkit/src/constants/defaultTheme.js +6 -0
  198. package/build/connectkit/src/constants/defaultTheme.js.map +1 -0
  199. package/build/connectkit/src/constants/routes.js +32 -0
  200. package/build/connectkit/src/constants/routes.js.map +1 -0
  201. package/build/connectkit/src/defaultConfig.js +63 -0
  202. package/build/connectkit/src/defaultConfig.js.map +1 -0
  203. package/build/connectkit/src/defaultConnectors.js +37 -0
  204. package/build/connectkit/src/defaultConnectors.js.map +1 -0
  205. package/build/connectkit/src/hooks/useChainIsSupported.js +10 -0
  206. package/build/connectkit/src/hooks/useChainIsSupported.js.map +1 -0
  207. package/build/connectkit/src/hooks/useChains.js +10 -0
  208. package/build/connectkit/src/hooks/useChains.js.map +1 -0
  209. package/build/connectkit/src/hooks/useConnect.js +61 -0
  210. package/build/connectkit/src/hooks/useConnect.js.map +1 -0
  211. package/build/connectkit/src/hooks/useConnectCallback.js +21 -0
  212. package/build/connectkit/src/hooks/useConnectCallback.js.map +1 -0
  213. package/build/connectkit/src/hooks/useConnectors.js +9 -0
  214. package/build/connectkit/src/hooks/useConnectors.js.map +1 -0
  215. package/build/connectkit/src/hooks/useDaimoPay.js +107 -0
  216. package/build/connectkit/src/hooks/useDaimoPay.js.map +1 -0
  217. package/build/connectkit/src/hooks/useDaimoPayStatus.js +12 -0
  218. package/build/connectkit/src/hooks/useDaimoPayStatus.js.map +1 -0
  219. package/build/connectkit/src/hooks/useDaimoPayUI.js +15 -0
  220. package/build/connectkit/src/hooks/useDaimoPayUI.js.map +1 -0
  221. package/build/connectkit/src/hooks/useDepositAddressOptions.js +35 -0
  222. package/build/connectkit/src/hooks/useDepositAddressOptions.js.map +1 -0
  223. package/build/connectkit/src/hooks/useEnsFallbackConfig.js +16 -0
  224. package/build/connectkit/src/hooks/useEnsFallbackConfig.js.map +1 -0
  225. package/build/connectkit/src/hooks/useExternalPaymentOptions.js +64 -0
  226. package/build/connectkit/src/hooks/useExternalPaymentOptions.js.map +1 -0
  227. package/build/connectkit/src/hooks/useFitText.js +133 -0
  228. package/build/connectkit/src/hooks/useFitText.js.map +1 -0
  229. package/build/connectkit/src/hooks/useFocusTrap.js +53 -0
  230. package/build/connectkit/src/hooks/useFocusTrap.js.map +1 -0
  231. package/build/connectkit/src/hooks/useIsMobile.js +11 -0
  232. package/build/connectkit/src/hooks/useIsMobile.js.map +1 -0
  233. package/build/connectkit/src/hooks/useIsMounted.js +10 -0
  234. package/build/connectkit/src/hooks/useIsMounted.js.map +1 -0
  235. package/build/connectkit/src/hooks/useLastConnector.js +24 -0
  236. package/build/connectkit/src/hooks/useLastConnector.js.map +1 -0
  237. package/build/connectkit/src/hooks/useLocales.js +60 -0
  238. package/build/connectkit/src/hooks/useLocales.js.map +1 -0
  239. package/build/connectkit/src/hooks/useLockBodyScroll.js +47 -0
  240. package/build/connectkit/src/hooks/useLockBodyScroll.js.map +1 -0
  241. package/build/connectkit/src/hooks/useOrderUsdLimits.js +24 -0
  242. package/build/connectkit/src/hooks/useOrderUsdLimits.js.map +1 -0
  243. package/build/connectkit/src/hooks/usePayContext.js +11 -0
  244. package/build/connectkit/src/hooks/usePayContext.js.map +1 -0
  245. package/build/connectkit/src/hooks/usePaymentState.js +376 -0
  246. package/build/connectkit/src/hooks/usePaymentState.js.map +1 -0
  247. package/build/connectkit/src/hooks/usePrevious.js +13 -0
  248. package/build/connectkit/src/hooks/usePrevious.js.map +1 -0
  249. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js +40 -0
  250. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js.map +1 -0
  251. package/build/connectkit/src/hooks/useTokenOptions.js +152 -0
  252. package/build/connectkit/src/hooks/useTokenOptions.js.map +1 -0
  253. package/build/connectkit/src/hooks/useUntronAvailability.js +32 -0
  254. package/build/connectkit/src/hooks/useUntronAvailability.js.map +1 -0
  255. package/build/connectkit/src/hooks/useWalletPaymentOptions.js +97 -0
  256. package/build/connectkit/src/hooks/useWalletPaymentOptions.js.map +1 -0
  257. package/build/connectkit/src/hooks/useWindowSize.js +23 -0
  258. package/build/connectkit/src/hooks/useWindowSize.js.map +1 -0
  259. package/build/connectkit/src/index.js +14 -0
  260. package/build/connectkit/src/index.js.map +1 -0
  261. package/build/connectkit/src/localizations/index.js +48 -0
  262. package/build/connectkit/src/localizations/index.js.map +1 -0
  263. package/build/connectkit/src/localizations/locales/ar-AE.js +95 -0
  264. package/build/connectkit/src/localizations/locales/ar-AE.js.map +1 -0
  265. package/build/connectkit/src/localizations/locales/ca-AD.js +93 -0
  266. package/build/connectkit/src/localizations/locales/ca-AD.js.map +1 -0
  267. package/build/connectkit/src/localizations/locales/ee-EE.js +101 -0
  268. package/build/connectkit/src/localizations/locales/ee-EE.js.map +1 -0
  269. package/build/connectkit/src/localizations/locales/en-US.js +139 -0
  270. package/build/connectkit/src/localizations/locales/en-US.js.map +1 -0
  271. package/build/connectkit/src/localizations/locales/es-ES.js +131 -0
  272. package/build/connectkit/src/localizations/locales/es-ES.js.map +1 -0
  273. package/build/connectkit/src/localizations/locales/fa-IR.js +93 -0
  274. package/build/connectkit/src/localizations/locales/fa-IR.js.map +1 -0
  275. package/build/connectkit/src/localizations/locales/fr-FR.js +93 -0
  276. package/build/connectkit/src/localizations/locales/fr-FR.js.map +1 -0
  277. package/build/connectkit/src/localizations/locales/ja-JP.js +93 -0
  278. package/build/connectkit/src/localizations/locales/ja-JP.js.map +1 -0
  279. package/build/connectkit/src/localizations/locales/pt-BR.js +101 -0
  280. package/build/connectkit/src/localizations/locales/pt-BR.js.map +1 -0
  281. package/build/connectkit/src/localizations/locales/ru-RU.js +97 -0
  282. package/build/connectkit/src/localizations/locales/ru-RU.js.map +1 -0
  283. package/build/connectkit/src/localizations/locales/tr-TR.js +101 -0
  284. package/build/connectkit/src/localizations/locales/tr-TR.js.map +1 -0
  285. package/build/connectkit/src/localizations/locales/vi-VN.js +101 -0
  286. package/build/connectkit/src/localizations/locales/vi-VN.js.map +1 -0
  287. package/build/connectkit/src/localizations/locales/zh-CN.js +93 -0
  288. package/build/connectkit/src/localizations/locales/zh-CN.js.map +1 -0
  289. package/build/connectkit/src/payment/paymentEffects.js +269 -0
  290. package/build/connectkit/src/payment/paymentEffects.js.map +1 -0
  291. package/build/connectkit/src/payment/paymentFsm.js +194 -0
  292. package/build/connectkit/src/payment/paymentFsm.js.map +1 -0
  293. package/build/connectkit/src/payment/paymentStore.js +18 -0
  294. package/build/connectkit/src/payment/paymentStore.js.map +1 -0
  295. package/build/connectkit/src/payment/paymentUtils.js +10 -0
  296. package/build/connectkit/src/payment/paymentUtils.js.map +1 -0
  297. package/build/connectkit/src/provider/DaimoPayProvider.js +293 -0
  298. package/build/connectkit/src/provider/DaimoPayProvider.js.map +1 -0
  299. package/build/connectkit/src/provider/PayContext.js +6 -0
  300. package/build/connectkit/src/provider/PayContext.js.map +1 -0
  301. package/build/connectkit/src/provider/PaymentProvider.js +29 -0
  302. package/build/connectkit/src/provider/PaymentProvider.js.map +1 -0
  303. package/build/connectkit/src/provider/SolanaContextProvider.js +14 -0
  304. package/build/connectkit/src/provider/SolanaContextProvider.js.map +1 -0
  305. package/build/connectkit/src/provider/Web3ContextProvider.js +36 -0
  306. package/build/connectkit/src/provider/Web3ContextProvider.js.map +1 -0
  307. package/build/connectkit/src/stateStore.js +36 -0
  308. package/build/connectkit/src/stateStore.js.map +1 -0
  309. package/build/connectkit/src/styles/defaultTheme.js +80 -0
  310. package/build/connectkit/src/styles/defaultTheme.js.map +1 -0
  311. package/build/connectkit/src/styles/index.js +313 -0
  312. package/build/connectkit/src/styles/index.js.map +1 -0
  313. package/build/connectkit/src/styles/styled/index.js +6 -0
  314. package/build/connectkit/src/styles/styled/index.js.map +1 -0
  315. package/build/connectkit/src/styles/themes/base.js +141 -0
  316. package/build/connectkit/src/styles/themes/base.js.map +1 -0
  317. package/build/connectkit/src/styles/themes/index.js +13 -0
  318. package/build/connectkit/src/styles/themes/index.js.map +1 -0
  319. package/build/connectkit/src/styles/themes/midnight.js +76 -0
  320. package/build/connectkit/src/styles/themes/midnight.js.map +1 -0
  321. package/build/connectkit/src/styles/themes/minimal.js +96 -0
  322. package/build/connectkit/src/styles/themes/minimal.js.map +1 -0
  323. package/build/connectkit/src/styles/themes/nouns.js +81 -0
  324. package/build/connectkit/src/styles/themes/nouns.js.map +1 -0
  325. package/build/connectkit/src/styles/themes/retro.js +106 -0
  326. package/build/connectkit/src/styles/themes/retro.js.map +1 -0
  327. package/build/connectkit/src/styles/themes/rounded.js +106 -0
  328. package/build/connectkit/src/styles/themes/rounded.js.map +1 -0
  329. package/build/connectkit/src/styles/themes/soft.js +71 -0
  330. package/build/connectkit/src/styles/themes/soft.js.map +1 -0
  331. package/build/connectkit/src/styles/themes/web95.js +132 -0
  332. package/build/connectkit/src/styles/themes/web95.js.map +1 -0
  333. package/build/connectkit/src/utils/exports.js +6 -0
  334. package/build/connectkit/src/utils/exports.js.map +1 -0
  335. package/build/connectkit/src/utils/format.js +45 -0
  336. package/build/connectkit/src/utils/format.js.map +1 -0
  337. package/build/connectkit/src/utils/index.js +42 -0
  338. package/build/connectkit/src/utils/index.js.map +1 -0
  339. package/build/connectkit/src/utils/p3.js +15 -0
  340. package/build/connectkit/src/utils/p3.js.map +1 -0
  341. package/build/connectkit/src/utils/platform.js +11 -0
  342. package/build/connectkit/src/utils/platform.js.map +1 -0
  343. package/build/connectkit/src/utils/polling.js +35 -0
  344. package/build/connectkit/src/utils/polling.js.map +1 -0
  345. package/build/connectkit/src/utils/supportUrl.js +16 -0
  346. package/build/connectkit/src/utils/supportUrl.js.map +1 -0
  347. package/build/connectkit/src/utils/trpc.js +19 -0
  348. package/build/connectkit/src/utils/trpc.js.map +1 -0
  349. package/build/connectkit/src/utils/validateInput.js +16 -0
  350. package/build/connectkit/src/utils/validateInput.js.map +1 -0
  351. package/build/connectkit/src/wallets/index.js +21 -0
  352. package/build/connectkit/src/wallets/index.js.map +1 -0
  353. package/build/connectkit/src/wallets/useWallets.js +207 -0
  354. package/build/connectkit/src/wallets/useWallets.js.map +1 -0
  355. package/build/connectkit/src/wallets/walletConfigs.js +277 -0
  356. package/build/connectkit/src/wallets/walletConfigs.js.map +1 -0
  357. package/build/connectkit/src/world-mini-app/WorldPayButton.js +148 -0
  358. package/build/connectkit/src/world-mini-app/WorldPayButton.js.map +1 -0
  359. package/build/connectkit/src/world-mini-app/promptWorldPayment.js +59 -0
  360. package/build/connectkit/src/world-mini-app/promptWorldPayment.js.map +1 -0
  361. package/build/connectkit/src/world.js +2 -0
  362. package/build/connectkit/src/world.js.map +1 -0
  363. package/build/package.json.js +2 -2
  364. package/build/pay-common/src/chain.js +9 -0
  365. package/build/pay-common/src/chain.js.map +1 -0
  366. package/build/src/assets/coins.js +43 -0
  367. package/build/src/assets/coins.js.map +1 -0
  368. package/build/src/components/Common/CopyToClipboard/index.js +33 -0
  369. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -0
  370. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +1 -1
  371. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  372. package/build/src/components/DaimoPayModal/index.js +23 -3
  373. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  374. package/build/src/components/Pages/DownloadApp/index.js +35 -0
  375. package/build/src/components/Pages/DownloadApp/index.js.map +1 -0
  376. package/build/src/components/Pages/SelectMethod/index.js +5 -3
  377. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  378. package/build/src/components/Pages/SelectToken/index.js +3 -1
  379. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  380. package/build/src/localizations/locales/en-US.js +1 -1
  381. package/build/src/localizations/locales/en-US.js.map +1 -1
  382. package/build/src/localizations/locales/es-ES.js +1 -1
  383. package/build/src/localizations/locales/es-ES.js.map +1 -1
  384. package/build/src/wallets/useWallets.js.map +1 -1
  385. package/build/types-20835014.d.ts +68 -0
  386. package/package.json +2 -2
@@ -0,0 +1,42 @@
1
+ import { detect } from 'detect-browser';
2
+ import React from 'react';
3
+
4
+ const detectBrowser = () => {
5
+ const browser = detect();
6
+ return browser?.name ?? "";
7
+ };
8
+ const detectOS = () => {
9
+ const browser = detect();
10
+ return browser?.os ?? "";
11
+ };
12
+ const isIOS = () => {
13
+ const os = detectOS();
14
+ return os.toLowerCase().includes("ios");
15
+ };
16
+ const isAndroid = () => {
17
+ const os = detectOS();
18
+ return os.toLowerCase().includes("android");
19
+ };
20
+ const isMobile = () => {
21
+ const os = detectOS().toLowerCase();
22
+ return os.includes("android") || os.includes("ios");
23
+ };
24
+ function flattenChildren(children) {
25
+ const childrenArray = React.Children.toArray(children);
26
+ return childrenArray.reduce((flatChildren, child) => {
27
+ if (child.type === React.Fragment) {
28
+ return flatChildren.concat(
29
+ flattenChildren(child.props.children)
30
+ );
31
+ }
32
+ flatChildren.push(child);
33
+ return flatChildren;
34
+ }, []);
35
+ }
36
+ const isBaseAccountConnector = (connectorId) => connectorId === "baseAccount";
37
+ const isGeminiConnector = (connectorId) => connectorId === "gemini";
38
+ const isSafeConnector = (connectorId) => connectorId === "safe";
39
+ const isInjectedConnector = (connectorId) => connectorId === "injected";
40
+
41
+ export { detectBrowser, detectOS, flattenChildren, isAndroid, isBaseAccountConnector, isGeminiConnector, isIOS, isInjectedConnector, isMobile, isSafeConnector };
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/utils/index.ts"],"sourcesContent":["import { detect } from \"detect-browser\";\nimport React from \"react\";\n\nconst truncateRegex = /^(0x[a-zA-Z0-9]{4})[a-zA-Z0-9]+([a-zA-Z0-9]{4})$/;\n\nconst truncateEthAddress = (address?: string, separator: string = \"••••\") => {\n if (!address) return \"\";\n const match = address.match(truncateRegex);\n if (!match) return address;\n return `${match[1]}${separator}${match[2]}`;\n};\n\nconst truncateENSAddress = (ensName: string, maxLength: number) => {\n if (ensName.length > maxLength) {\n return ensName.replace(\".eth\", \"\").slice(0, maxLength) + \"...\";\n } else {\n return ensName;\n }\n};\n\nconst nFormatter = (num: number, digits: number = 2) => {\n if (num < 10000) return num.toFixed(2);\n const lookup = [\n { value: 1, symbol: \"\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"m\" },\n { value: 1e9, symbol: \"g\" },\n { value: 1e12, symbol: \"t\" },\n { value: 1e15, symbol: \"p\" },\n { value: 1e18, symbol: \"e\" },\n ];\n\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n var item = lookup\n .slice()\n .reverse()\n .find(function (item) {\n return num >= item.value;\n });\n return item\n ? (num / item.value).toFixed(digits).replace(rx, \"$1\") + item.symbol\n : \"0\";\n};\n\nexport const detectBrowser = () => {\n const browser = detect();\n return browser?.name ?? \"\";\n};\nexport const detectOS = () => {\n const browser = detect();\n return browser?.os ?? \"\";\n};\n\nexport const isIOS = () => {\n const os = detectOS();\n return os.toLowerCase().includes(\"ios\");\n};\nexport const isAndroid = () => {\n const os = detectOS();\n return os.toLowerCase().includes(\"android\");\n};\nexport const isMobile = () => {\n const os = detectOS().toLowerCase();\n return os.includes(\"android\") || os.includes(\"ios\");\n};\n\ntype ReactChildArray = ReturnType<typeof React.Children.toArray>;\nfunction flattenChildren(children: React.ReactNode): ReactChildArray {\n const childrenArray = React.Children.toArray(children);\n return childrenArray.reduce((flatChildren: ReactChildArray, child) => {\n if ((child as React.ReactElement<any>).type === React.Fragment) {\n return flatChildren.concat(\n flattenChildren((child as React.ReactElement<any>).props.children),\n );\n }\n flatChildren.push(child);\n return flatChildren;\n }, []);\n}\n\nexport const isMetaMaskConnector = (connectorId?: string) =>\n connectorId === \"metaMaskSDK\";\n\nexport const isBaseAccountConnector = (connectorId?: string) =>\n connectorId === \"baseAccount\";\n\nexport const isGeminiConnector = (connectorId?: string) =>\n connectorId === \"gemini\";\n\nexport const isLedgerConnector = (connectorId?: string) =>\n connectorId === \"ledger\";\n\nexport const isSafeConnector = (connectorId?: string) => connectorId === \"safe\";\n\nexport const isInjectedConnector = (connectorId?: string) =>\n connectorId === \"injected\";\n\nexport { flattenChildren, nFormatter, truncateENSAddress, truncateEthAddress };\n"],"names":[],"mappings":";;;AA4CO,MAAM,gBAAgB,MAAM;AACjC,EAAA,MAAM,UAAU,MAAO,EAAA,CAAA;AACvB,EAAA,OAAO,SAAS,IAAQ,IAAA,EAAA,CAAA;AAC1B,EAAA;AACO,MAAM,WAAW,MAAM;AAC5B,EAAA,MAAM,UAAU,MAAO,EAAA,CAAA;AACvB,EAAA,OAAO,SAAS,EAAM,IAAA,EAAA,CAAA;AACxB,EAAA;AAEO,MAAM,QAAQ,MAAM;AACzB,EAAA,MAAM,KAAK,QAAS,EAAA,CAAA;AACpB,EAAA,OAAO,EAAG,CAAA,WAAA,EAAc,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AACxC,EAAA;AACO,MAAM,YAAY,MAAM;AAC7B,EAAA,MAAM,KAAK,QAAS,EAAA,CAAA;AACpB,EAAA,OAAO,EAAG,CAAA,WAAA,EAAc,CAAA,QAAA,CAAS,SAAS,CAAA,CAAA;AAC5C,EAAA;AACO,MAAM,WAAW,MAAM;AAC5B,EAAM,MAAA,EAAA,GAAK,QAAS,EAAA,CAAE,WAAY,EAAA,CAAA;AAClC,EAAA,OAAO,GAAG,QAAS,CAAA,SAAS,CAAK,IAAA,EAAA,CAAG,SAAS,KAAK,CAAA,CAAA;AACpD,EAAA;AAGA,SAAS,gBAAgB,QAA4C,EAAA;AACnE,EAAA,MAAM,aAAgB,GAAA,KAAA,CAAM,QAAS,CAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AACrD,EAAA,OAAO,aAAc,CAAA,MAAA,CAAO,CAAC,YAAA,EAA+B,KAAU,KAAA;AACpE,IAAK,IAAA,KAAA,CAAkC,IAAS,KAAA,KAAA,CAAM,QAAU,EAAA;AAC9D,MAAA,OAAO,YAAa,CAAA,MAAA;AAAA,QAClB,eAAA,CAAiB,KAAkC,CAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,OACnE,CAAA;AAAA,KACF;AACA,IAAA,YAAA,CAAa,KAAK,KAAK,CAAA,CAAA;AACvB,IAAO,OAAA,YAAA,CAAA;AAAA,GACT,EAAG,EAAE,CAAA,CAAA;AACP,CAAA;AAKa,MAAA,sBAAA,GAAyB,CAAC,WAAA,KACrC,WAAgB,KAAA,cAAA;AAEL,MAAA,iBAAA,GAAoB,CAAC,WAAA,KAChC,WAAgB,KAAA,SAAA;AAKL,MAAA,eAAA,GAAkB,CAAC,WAAA,KAAyB,WAAgB,KAAA,OAAA;AAE5D,MAAA,mBAAA,GAAsB,CAAC,WAAA,KAClC,WAAgB,KAAA;;;;"}
@@ -0,0 +1,15 @@
1
+ import 'styled-components';
2
+
3
+ const hexToP3 = (hex) => {
4
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
5
+ if (result == null) return hex;
6
+ const values = {
7
+ r: parseInt(result[1], 16),
8
+ g: parseInt(result[2], 16),
9
+ b: parseInt(result[3], 16)
10
+ };
11
+ return `color(display-p3 ${values.r / 255} ${values.g / 255} ${values.b / 255})`;
12
+ };
13
+
14
+ export { hexToP3 };
15
+ //# sourceMappingURL=p3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p3.js","sources":["../../../../src/utils/p3.ts"],"sourcesContent":["import { css } from \"styled-components\";\n\nexport const hexToP3 = (hex: string) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (result == null) return hex;\n const values = {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n };\n return `color(display-p3 ${values.r / 255} ${values.g / 255} ${\n values.b / 255\n })`;\n};\n\nexport const p3Hex = (hex: string, property: string) => {\n const isSafari = true;\n const p3 = hexToP3(hex);\n if (!p3 || !isSafari) {\n return css`\n ${property}: ${hex};\n `;\n } else {\n return css`\n ${property}: ${hex};\n ${property}: ${p3};\n `;\n }\n};\n"],"names":[],"mappings":";;AAEa,MAAA,OAAA,GAAU,CAAC,GAAgB,KAAA;AACtC,EAAM,MAAA,MAAA,GAAS,2CAA4C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACnE,EAAI,IAAA,MAAA,IAAU,MAAa,OAAA,GAAA,CAAA;AAC3B,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,CAAG,EAAA,QAAA,CAAS,MAAO,CAAA,CAAC,GAAG,EAAE,CAAA;AAAA,IACzB,CAAG,EAAA,QAAA,CAAS,MAAO,CAAA,CAAC,GAAG,EAAE,CAAA;AAAA,IACzB,CAAG,EAAA,QAAA,CAAS,MAAO,CAAA,CAAC,GAAG,EAAE,CAAA;AAAA,GAC3B,CAAA;AACA,EAAO,OAAA,CAAA,iBAAA,EAAoB,MAAO,CAAA,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,MAAO,CAAA,CAAA,GAAI,GAAG,CAAA,CAAA,EACzD,MAAO,CAAA,CAAA,GAAI,GACb,CAAA,CAAA,CAAA,CAAA;AACF;;;;"}
@@ -0,0 +1,11 @@
1
+ function detectPlatform(ua) {
2
+ if (/android/i.test(ua)) {
3
+ return "android";
4
+ } else if (/iPhone|iPod|iPad/.test(ua)) {
5
+ return "ios";
6
+ }
7
+ return "other";
8
+ }
9
+
10
+ export { detectPlatform };
11
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sources":["../../../../src/utils/platform.ts"],"sourcesContent":["import { PlatformType } from \"@daimo/pay-common\";\n\nexport function detectPlatform(ua: string): PlatformType {\n // From https://dev.to/konyu/using-javascript-to-determine-whether-the-client-is-ios-or-android-4i1j\n if (/android/i.test(ua)) {\n return \"android\";\n } else if (/iPhone|iPod|iPad/.test(ua)) {\n return \"ios\";\n }\n return \"other\";\n}\n"],"names":[],"mappings":"AAEO,SAAS,eAAe,EAA0B,EAAA;AAEvD,EAAI,IAAA,UAAA,CAAW,IAAK,CAAA,EAAE,CAAG,EAAA;AACvB,IAAO,OAAA,SAAA,CAAA;AAAA,GACE,MAAA,IAAA,kBAAA,CAAmB,IAAK,CAAA,EAAE,CAAG,EAAA;AACtC,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,35 @@
1
+ function startPolling({
2
+ key,
3
+ intervalMs,
4
+ pollFn,
5
+ onResult,
6
+ onError,
7
+ log = console.log
8
+ }) {
9
+ let active = true;
10
+ let timer;
11
+ const stop = () => {
12
+ active = false;
13
+ clearTimeout(timer);
14
+ log(`[POLL] ${key} stopped`);
15
+ };
16
+ const tick = async () => {
17
+ log(`[POLL] polling ${key}`);
18
+ try {
19
+ const res = await pollFn();
20
+ if (!active) return;
21
+ log(`[POLL] ${key} success`);
22
+ onResult(res);
23
+ } catch (e) {
24
+ if (!active) return;
25
+ log(`[POLL] ${key} error: ${e}`);
26
+ onError(e);
27
+ }
28
+ timer = setTimeout(tick, intervalMs);
29
+ };
30
+ tick();
31
+ return stop;
32
+ }
33
+
34
+ export { startPolling };
35
+ //# sourceMappingURL=polling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polling.js","sources":["../../../../src/utils/polling.ts"],"sourcesContent":["export type PollHandle = () => void;\n\n/**\n * Will poll the given function at the specified interval. Stops when the\n * returned handle is invoked.\n */\nexport function startPolling<T>({\n key,\n intervalMs,\n pollFn,\n onResult,\n onError,\n log = console.log,\n}: {\n key: string;\n intervalMs: number;\n pollFn: () => Promise<T>;\n onResult: (value: T) => void;\n onError: (err: unknown) => void;\n log?: (msg: string) => void;\n}): PollHandle {\n let active = true;\n let timer: NodeJS.Timeout;\n\n const stop = () => {\n active = false;\n clearTimeout(timer);\n log(`[POLL] ${key} stopped`);\n };\n\n const tick = async () => {\n log(`[POLL] polling ${key}`);\n try {\n const res = await pollFn();\n if (!active) return;\n log(`[POLL] ${key} success`);\n onResult(res);\n } catch (e) {\n if (!active) return;\n log(`[POLL] ${key} error: ${e}`);\n onError(e);\n }\n timer = setTimeout(tick, intervalMs);\n };\n\n tick();\n\n return stop;\n}\n"],"names":[],"mappings":"AAMO,SAAS,YAAgB,CAAA;AAAA,EAC9B,GAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAM,OAAQ,CAAA,GAAA;AAChB,CAOe,EAAA;AACb,EAAA,IAAI,MAAS,GAAA,IAAA,CAAA;AACb,EAAI,IAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,OAAO,MAAM;AACjB,IAAS,MAAA,GAAA,KAAA,CAAA;AACT,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,IAAI,GAAA,CAAA,CAAA,OAAA,EAAU,GAAG,CAAU,QAAA,CAAA,CAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAA,MAAM,OAAO,YAAY;AACvB,IAAI,GAAA,CAAA,CAAA,eAAA,EAAkB,GAAG,CAAE,CAAA,CAAA,CAAA;AAC3B,IAAI,IAAA;AACF,MAAM,MAAA,GAAA,GAAM,MAAM,MAAO,EAAA,CAAA;AACzB,MAAA,IAAI,CAAC,MAAQ,EAAA,OAAA;AACb,MAAI,GAAA,CAAA,CAAA,OAAA,EAAU,GAAG,CAAU,QAAA,CAAA,CAAA,CAAA;AAC3B,MAAA,QAAA,CAAS,GAAG,CAAA,CAAA;AAAA,aACL,CAAG,EAAA;AACV,MAAA,IAAI,CAAC,MAAQ,EAAA,OAAA;AACb,MAAA,GAAA,CAAI,CAAU,OAAA,EAAA,GAAG,CAAW,QAAA,EAAA,CAAC,CAAE,CAAA,CAAA,CAAA;AAC/B,MAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AAAA,KACX;AACA,IAAQ,KAAA,GAAA,UAAA,CAAW,MAAM,UAAU,CAAA,CAAA;AAAA,GACrC,CAAA;AAEA,EAAK,IAAA,EAAA,CAAA;AAEL,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,16 @@
1
+ import { daimoPayVersion } from './exports.js';
2
+
3
+ function getSupportUrl(payId, screen) {
4
+ const email = "support@daimo.com";
5
+ const subject = `Support${payId ? ` #${payId}` : ""}`;
6
+ let body = [
7
+ `Transaction: ${screen}`,
8
+ `Version: ${daimoPayVersion}`,
9
+ ``,
10
+ `Tell us how we can help`
11
+ ].join("\n");
12
+ return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
13
+ }
14
+
15
+ export { getSupportUrl };
16
+ //# sourceMappingURL=supportUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supportUrl.js","sources":["../../../../src/utils/supportUrl.ts"],"sourcesContent":["import { DaimoPayOrderID } from \"@daimo/pay-common\";\nimport { daimoPayVersion } from \"./exports\";\n\nexport function getSupportUrl(payId: DaimoPayOrderID, screen: string): string {\n const email = \"support@daimo.com\";\n const subject = `Support${payId ? ` #${payId}` : \"\"}`;\n let body = [\n `Transaction: ${screen}`,\n `Version: ${daimoPayVersion}`,\n ``,\n `Tell us how we can help`,\n ].join(\"\\n\");\n\n return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,aAAA,CAAc,OAAwB,MAAwB,EAAA;AAC5E,EAAA,MAAM,KAAQ,GAAA,mBAAA,CAAA;AACd,EAAA,MAAM,UAAU,CAAU,OAAA,EAAA,KAAA,GAAQ,CAAK,EAAA,EAAA,KAAK,KAAK,EAAE,CAAA,CAAA,CAAA;AACnD,EAAA,IAAI,IAAO,GAAA;AAAA,IACT,gBAAgB,MAAM,CAAA,CAAA;AAAA,IACtB,YAAY,eAAe,CAAA,CAAA;AAAA,IAC3B,CAAA,CAAA;AAAA,IACA,CAAA,uBAAA,CAAA;AAAA,GACF,CAAE,KAAK,IAAI,CAAA,CAAA;AAEX,EAAO,OAAA,CAAA,OAAA,EAAU,KAAK,CAAY,SAAA,EAAA,kBAAA,CAAmB,OAAO,CAAC,CAAA,MAAA,EAAS,kBAAmB,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA;AAChG;;;;"}
@@ -0,0 +1,19 @@
1
+ import { createTRPCClient, httpBatchLink } from '@trpc/client';
2
+ import { daimoPayVersion } from './exports.js';
3
+
4
+ function createTrpcClient(apiUrl, sessionId) {
5
+ return createTRPCClient({
6
+ links: [
7
+ httpBatchLink({
8
+ url: apiUrl,
9
+ headers: {
10
+ "x-pay-version": daimoPayVersion,
11
+ "x-session-id": sessionId
12
+ }
13
+ })
14
+ ]
15
+ });
16
+ }
17
+
18
+ export { createTrpcClient };
19
+ //# sourceMappingURL=trpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.js","sources":["../../../../src/utils/trpc.ts"],"sourcesContent":["import type { AppRouter } from \"@daimo/pay-api\";\nimport {\n CreateTRPCClient,\n createTRPCClient,\n httpBatchLink,\n} from \"@trpc/client\";\nimport { daimoPayVersion } from \"./exports\";\n\nexport type TrpcClient = CreateTRPCClient<AppRouter>;\n\nexport function createTrpcClient(\n apiUrl: string,\n sessionId: string,\n): TrpcClient {\n return createTRPCClient<AppRouter>({\n links: [\n httpBatchLink({\n url: apiUrl,\n headers: {\n \"x-pay-version\": daimoPayVersion,\n \"x-session-id\": sessionId,\n },\n }),\n ],\n });\n}\n"],"names":[],"mappings":";;;AAUgB,SAAA,gBAAA,CACd,QACA,SACY,EAAA;AACZ,EAAA,OAAO,gBAA4B,CAAA;AAAA,IACjC,KAAO,EAAA;AAAA,MACL,aAAc,CAAA;AAAA,QACZ,GAAK,EAAA,MAAA;AAAA,QACL,OAAS,EAAA;AAAA,UACP,eAAiB,EAAA,eAAA;AAAA,UACjB,cAAgB,EAAA,SAAA;AAAA,SAClB;AAAA,OACD,CAAA;AAAA,KACH;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
@@ -0,0 +1,16 @@
1
+ function isValidNumber(value, maxDecimals) {
2
+ if (value.length === 0) {
3
+ return false;
4
+ }
5
+ const match = /^\d*\.?(\d*)$/.exec(value);
6
+ if (match == null) return false;
7
+ return maxDecimals == null || match[1].length <= maxDecimals;
8
+ }
9
+ function sanitizeNumber(value) {
10
+ const cleaned = value.replace(/[^0-9.]/g, "");
11
+ if (!cleaned || cleaned === "." || !/^\d*\.?\d*$/.test(cleaned)) return "0";
12
+ return cleaned.startsWith(".") ? `0${cleaned}` : cleaned;
13
+ }
14
+
15
+ export { isValidNumber, sanitizeNumber };
16
+ //# sourceMappingURL=validateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateInput.js","sources":["../../../../src/utils/validateInput.ts"],"sourcesContent":["/**\n * Returns true if the value is a valid number.\n * @param value The value to validate.\n * @param maxDecimals The maximum number of decimal places.\n * @returns True if the value is a valid number, false otherwise.\n */\nexport function isValidNumber(value: string, maxDecimals?: number): boolean {\n if (value.length === 0) {\n return false;\n }\n\n // Test that the value is digits, followed by an optional decimal, followed\n // by more digits\n const match = /^\\d*\\.?(\\d*)$/.exec(value);\n if (match == null) return false;\n\n // Check that the number of digits after the decimal is less than or equal to\n // maxDecimals\n return maxDecimals == null || match[1].length <= maxDecimals;\n}\n\n/**\n * Sanitize a number input.\n * - Remove all non-numeric and non-decimal characters\n * - If the value is empty, return \"0\"\n * - Parse into a number\n * @param value The value to sanitize.\n * @returns The sanitized value.\n */\nexport function sanitizeNumber(value: string): string {\n const cleaned = value.replace(/[^0-9.]/g, \"\");\n if (!cleaned || cleaned === \".\" || !/^\\d*\\.?\\d*$/.test(cleaned)) return \"0\";\n return cleaned.startsWith(\".\") ? `0${cleaned}` : cleaned;\n}\n"],"names":[],"mappings":"AAMgB,SAAA,aAAA,CAAc,OAAe,WAA+B,EAAA;AAC1E,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAIA,EAAM,MAAA,KAAA,GAAQ,eAAgB,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AACxC,EAAI,IAAA,KAAA,IAAS,MAAa,OAAA,KAAA,CAAA;AAI1B,EAAA,OAAO,WAAe,IAAA,IAAA,IAAQ,KAAM,CAAA,CAAC,EAAE,MAAU,IAAA,WAAA,CAAA;AACnD,CAAA;AAUO,SAAS,eAAe,KAAuB,EAAA;AACpD,EAAA,MAAM,OAAU,GAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,EAAY,EAAE,CAAA,CAAA;AAC5C,EAAI,IAAA,CAAC,WAAW,OAAY,KAAA,GAAA,IAAO,CAAC,aAAc,CAAA,IAAA,CAAK,OAAO,CAAA,EAAU,OAAA,GAAA,CAAA;AACxE,EAAA,OAAO,QAAQ,UAAW,CAAA,GAAG,CAAI,GAAA,CAAA,CAAA,EAAI,OAAO,CAAK,CAAA,GAAA,OAAA,CAAA;AACnD;;;;"}
@@ -0,0 +1,21 @@
1
+ import { injected } from '@wagmi/connectors';
2
+ import { walletConfigs } from './walletConfigs.js';
3
+
4
+ const wallets = Object.keys(walletConfigs).reduce((acc, key) => {
5
+ const config = walletConfigs[key];
6
+ const target = key.split(",")[0].trim();
7
+ const flag = config.name?.replace("Wallet", "").replace(" ", "") ?? target[0].toUpperCase() + target.slice(1);
8
+ const connector = injected({
9
+ target: {
10
+ id: target,
11
+ name: config.name ?? config.shortName ?? key,
12
+ provider: (w) => w?.ethereum?.[`is${flag}`]
13
+ }
14
+ });
15
+ const name = (config.name ?? config.shortName ?? key).toLowerCase().replace(/(?:^|\s)\S/g, (a) => a.toUpperCase()).replace(/\s/g, "").replace(/(?:^|\s)\S/g, (a) => a.toLowerCase());
16
+ acc[name] = connector;
17
+ return acc;
18
+ }, {});
19
+
20
+ export { wallets };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/wallets/index.ts"],"sourcesContent":["import { injected } from \"@wagmi/connectors\";\nimport { CreateConnectorFn } from \"wagmi\";\n\nimport { walletConfigs } from \"./walletConfigs\";\n\n/** Ethereum wallets, by name. */\nexport const wallets: {\n [key: string]: CreateConnectorFn;\n} = Object.keys(walletConfigs).reduce((acc, key) => {\n const config = walletConfigs[key];\n const target = key.split(\",\")[0].trim();\n const flag =\n config.name?.replace(\"Wallet\", \"\").replace(\" \", \"\") ??\n target[0].toUpperCase() + target.slice(1);\n\n const connector = injected({\n target: {\n id: target,\n name: config.name ?? config.shortName ?? key,\n provider: (w) => w?.ethereum?.[`is${flag}`],\n },\n });\n const name = (config.name ?? config.shortName ?? key)\n .toLowerCase()\n // capitalize first letter\n .replace(/(?:^|\\s)\\S/g, (a) => a.toUpperCase())\n // remove spaces\n .replace(/\\s/g, \"\")\n // lowercase first letter\n .replace(/(?:^|\\s)\\S/g, (a) => a.toLowerCase());\n\n acc[name] = connector;\n return acc;\n}, {});\n"],"names":[],"mappings":";;;AAMa,MAAA,OAAA,GAET,OAAO,IAAK,CAAA,aAAa,EAAE,MAAO,CAAA,CAAC,KAAK,GAAQ,KAAA;AAClD,EAAM,MAAA,MAAA,GAAS,cAAc,GAAG,CAAA,CAAA;AAChC,EAAA,MAAM,SAAS,GAAI,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,CAAC,EAAE,IAAK,EAAA,CAAA;AACtC,EAAA,MAAM,OACJ,MAAO,CAAA,IAAA,EAAM,QAAQ,QAAU,EAAA,EAAE,EAAE,OAAQ,CAAA,GAAA,EAAK,EAAE,CAAA,IAClD,OAAO,CAAC,CAAA,CAAE,aAAgB,GAAA,MAAA,CAAO,MAAM,CAAC,CAAA,CAAA;AAE1C,EAAA,MAAM,YAAY,QAAS,CAAA;AAAA,IACzB,MAAQ,EAAA;AAAA,MACN,EAAI,EAAA,MAAA;AAAA,MACJ,IAAM,EAAA,MAAA,CAAO,IAAQ,IAAA,MAAA,CAAO,SAAa,IAAA,GAAA;AAAA,MACzC,UAAU,CAAC,CAAA,KAAM,GAAG,QAAW,GAAA,CAAA,EAAA,EAAK,IAAI,CAAE,CAAA,CAAA;AAAA,KAC5C;AAAA,GACD,CAAA,CAAA;AACD,EAAM,MAAA,IAAA,GAAA,CAAQ,MAAO,CAAA,IAAA,IAAQ,MAAO,CAAA,SAAA,IAAa,GAC9C,EAAA,WAAA,EAEA,CAAA,OAAA,CAAQ,aAAe,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,aAAa,CAAA,CAE7C,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA,CAEjB,OAAQ,CAAA,aAAA,EAAe,CAAC,CAAA,KAAM,CAAE,CAAA,WAAA,EAAa,CAAA,CAAA;AAEhD,EAAA,GAAA,CAAI,IAAI,CAAI,GAAA,SAAA,CAAA;AACZ,EAAO,OAAA,GAAA,CAAA;AACT,CAAA,EAAG,EAAE;;;;"}
@@ -0,0 +1,207 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { assertNotNull } from '@daimo/pay-common';
3
+ import { useWallet as useWallet$1 } from '@solana/wallet-adapter-react';
4
+ import Logos, { WalletIcon, SquircleIcon } from '../assets/logos.js';
5
+ import { MobileWithLogos } from '../assets/MobileWithLogos.js';
6
+ import { useConnectors } from '../hooks/useConnectors.js';
7
+ import useLocales from '../hooks/useLocales.js';
8
+ import { usePayContext } from '../hooks/usePayContext.js';
9
+ import { isBaseAccountConnector, isGeminiConnector, isInjectedConnector, flattenChildren } from '../utils/index.js';
10
+ import { walletConfigs } from './walletConfigs.js';
11
+
12
+ const WALLET_ID_OTHER_WALLET = "otherWallet";
13
+ const WALLET_ID_MOBILE_WALLETS = "mobileWallets";
14
+ const useWallet = (id) => {
15
+ const wallets = useWallets();
16
+ const wallet = wallets.find((c) => c.id === id);
17
+ if (!wallet) return null;
18
+ return wallet;
19
+ };
20
+ const useWallets = (isMobile) => {
21
+ const connectors = useConnectors();
22
+ const context = usePayContext();
23
+ const { showSolanaPaymentMethod } = context.paymentState;
24
+ const { disableMobileInjector } = context;
25
+ const solanaWallet = useWallet$1();
26
+ const locales = useLocales();
27
+ if (isMobile) {
28
+ let addIfNotPresent2 = function(idList) {
29
+ if (mobileWallets.find((w) => idList.includes(w.id))) return;
30
+ if (mobileWallets.length >= 3) return;
31
+ const wallet = assertNotNull(
32
+ walletConfigs[idList],
33
+ () => `missing ${idList}`
34
+ );
35
+ mobileWallets.push({
36
+ id: idList,
37
+ ...wallet
38
+ });
39
+ };
40
+ const mobileWallets = [];
41
+ if (!disableMobileInjector) {
42
+ connectors.forEach((connector) => {
43
+ if (isBaseAccountConnector(connector.id)) return;
44
+ if (isGeminiConnector(connector.id)) return;
45
+ if (!isInjectedConnector(connector.type)) return;
46
+ if (connector.name?.toLowerCase().includes("walletconnect")) return;
47
+ mobileWallets.push({
48
+ id: connector.id,
49
+ connector,
50
+ shortName: connector.name,
51
+ iconConnector: connector.icon ? /* @__PURE__ */ jsx("img", { src: connector.icon, alt: connector.name }) : /* @__PURE__ */ jsx(WalletIcon, {}),
52
+ iconShape: "squircle"
53
+ });
54
+ });
55
+ }
56
+ addIfNotPresent2(
57
+ "metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK"
58
+ );
59
+ addIfNotPresent2("com.trustwallet.app");
60
+ const otherWalletsString = flattenChildren(locales.otherWallets).join("");
61
+ const otherString = flattenChildren(locales.other).join("");
62
+ mobileWallets.push({
63
+ id: WALLET_ID_OTHER_WALLET,
64
+ name: otherWalletsString,
65
+ shortName: otherString,
66
+ iconConnector: /* @__PURE__ */ jsx(Logos.OtherWallets, {}),
67
+ iconShape: "square",
68
+ showInMobileConnectors: false
69
+ });
70
+ return mobileWallets;
71
+ }
72
+ const wallets = connectors.map((connector) => {
73
+ let walletConfigKey = Object.keys(walletConfigs).find(
74
+ (id) => id.split(",").map((i) => i.trim()).includes(connector.id)
75
+ );
76
+ if (!walletConfigKey && connector.name) {
77
+ walletConfigKey = Object.keys(walletConfigs).find((key) => {
78
+ const cfgName = walletConfigs[key].name?.toLowerCase();
79
+ const connName = connector.name.toLowerCase();
80
+ return cfgName && (cfgName.includes(connName) || connName.includes(cfgName));
81
+ });
82
+ }
83
+ const c = {
84
+ id: connector.id,
85
+ name: connector.name ?? connector.id ?? connector.type,
86
+ icon: connector.icon ? /* @__PURE__ */ jsx(
87
+ "img",
88
+ {
89
+ src: connector.icon,
90
+ alt: connector.name,
91
+ width: "100%",
92
+ height: "100%"
93
+ }
94
+ ) : /* @__PURE__ */ jsx(WalletIcon, {}),
95
+ connector,
96
+ iconShape: connector.id === "io.rabby" ? "circle" : "squircle",
97
+ isInstalled: connector.type === "mock" || connector.type === "injected" && connector.id !== "metaMask" || connector.type === "farcasterFrame" || isBaseAccountConnector(connector.id) || isGeminiConnector(connector.id)
98
+ };
99
+ if (walletConfigKey) {
100
+ const wallet = walletConfigs[walletConfigKey];
101
+ return {
102
+ ...c,
103
+ iconConnector: connector.icon ? /* @__PURE__ */ jsx(
104
+ "img",
105
+ {
106
+ src: connector.icon,
107
+ alt: connector.name,
108
+ width: "100%",
109
+ height: "100%"
110
+ }
111
+ ) : void 0,
112
+ ...wallet
113
+ };
114
+ }
115
+ return c;
116
+ });
117
+ wallets.push(walletConfigs.world);
118
+ wallets.push({
119
+ id: WALLET_ID_MOBILE_WALLETS,
120
+ name: "Mobile Wallets",
121
+ shortName: "Mobile",
122
+ icon: /* @__PURE__ */ jsx(
123
+ "div",
124
+ {
125
+ style: {
126
+ width: "100%",
127
+ height: "100%",
128
+ overflow: "hidden",
129
+ display: "flex",
130
+ alignItems: "center",
131
+ justifyContent: "center",
132
+ transform: "scale(1.2)",
133
+ transformOrigin: "center center"
134
+ },
135
+ children: /* @__PURE__ */ jsx(MobileWithLogos, {})
136
+ }
137
+ ),
138
+ iconConnector: /* @__PURE__ */ jsx(
139
+ "div",
140
+ {
141
+ style: {
142
+ width: "100%",
143
+ height: "100%",
144
+ overflow: "hidden",
145
+ display: "flex",
146
+ alignItems: "center",
147
+ justifyContent: "center",
148
+ transform: "scale(1.2)",
149
+ transformOrigin: "center center"
150
+ },
151
+ children: /* @__PURE__ */ jsx(MobileWithLogos, {})
152
+ }
153
+ )
154
+ });
155
+ if (showSolanaPaymentMethod) {
156
+ const solanaAdapters = solanaWallet.wallets ?? [];
157
+ wallets.forEach((w) => {
158
+ if (!w.name) return;
159
+ const evm = w.name.toLowerCase();
160
+ const match = solanaAdapters.find((sw) => {
161
+ const sol = sw.adapter.name.toLowerCase();
162
+ return evm.includes(sol) || sol.includes(evm);
163
+ });
164
+ if (match) {
165
+ w.solanaConnectorName = match.adapter.name;
166
+ }
167
+ });
168
+ const unmatched = solanaAdapters.filter(
169
+ (sw) => !wallets.find((w) => w.solanaConnectorName === sw.adapter.name)
170
+ );
171
+ unmatched.forEach((sw) => {
172
+ wallets.push({
173
+ id: `solana-${sw.adapter.name}`,
174
+ name: sw.adapter.name,
175
+ shortName: sw.adapter.name,
176
+ icon: /* @__PURE__ */ jsx(SquircleIcon, { icon: sw.adapter.icon, alt: sw.adapter.name }),
177
+ iconConnector: /* @__PURE__ */ jsx(SquircleIcon, { icon: sw.adapter.icon, alt: sw.adapter.name }),
178
+ iconShape: "squircle",
179
+ solanaConnectorName: sw.adapter.name
180
+ });
181
+ });
182
+ }
183
+ return wallets.filter(
184
+ (wallet, index, self) => self.findIndex((w) => w.id === wallet.id) === index
185
+ ).filter(
186
+ (wallet, index, self) => !(wallet.id === "coinbaseWalletSDK" && self.find((w) => w.id === "com.coinbase.wallet"))
187
+ ).filter(
188
+ (wallet, index, self) => !((wallet.id === "metaMaskSDK" || wallet.id === "metaMask") && self.find(
189
+ (w) => w.id === "io.metamask" || w.id === "io.metamask.mobile"
190
+ ))
191
+ ).filter(
192
+ (wallet, index, self) => !(wallet.id === "com.warpcast.mobile" && self.find((w) => w.id === "farcaster"))
193
+ ).sort((a, b) => {
194
+ const aIsInstalledInjected = a.isInstalled && isInjectedConnector(a.connector?.type);
195
+ const bIsInstalledInjected = b.isInstalled && isInjectedConnector(b.connector?.type);
196
+ if (aIsInstalledInjected && !bIsInstalledInjected) return -1;
197
+ if (!aIsInstalledInjected && bIsInstalledInjected) return 1;
198
+ return 0;
199
+ }).sort((a, b) => {
200
+ if (a.id === WALLET_ID_MOBILE_WALLETS) return 1;
201
+ if (b.id === WALLET_ID_MOBILE_WALLETS) return -1;
202
+ return 0;
203
+ });
204
+ };
205
+
206
+ export { WALLET_ID_MOBILE_WALLETS, WALLET_ID_OTHER_WALLET, useWallet, useWallets };
207
+ //# sourceMappingURL=useWallets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWallets.js","sources":["../../../../src/wallets/useWallets.tsx"],"sourcesContent":["import { assertNotNull } from \"@daimo/pay-common\";\nimport { Connector } from \"wagmi\";\n\nimport { useWallet as useSolanaWalletAdapter } from \"@solana/wallet-adapter-react\";\nimport Logos, { SquircleIcon, WalletIcon } from \"../assets/logos\";\nimport MobileWithLogos from \"../assets/MobileWithLogos\";\nimport { useConnectors } from \"../hooks/useConnectors\";\nimport useLocales from \"../hooks/useLocales\";\nimport { usePayContext } from \"../hooks/usePayContext\";\nimport { SolanaWalletName } from \"../provider/SolanaContextProvider\";\nimport {\n flattenChildren,\n isBaseAccountConnector,\n isGeminiConnector,\n isInjectedConnector,\n} from \"../utils\";\nimport { WalletConfigProps, walletConfigs } from \"./walletConfigs\";\n\n/** Special wallet ID for \"other wallets\" option. */\nexport const WALLET_ID_OTHER_WALLET = \"otherWallet\";\n/** Special wallet ID for \"mobile wallets\" option. */\nexport const WALLET_ID_MOBILE_WALLETS = \"mobileWallets\";\n\nexport type WalletProps = {\n id: string;\n connector?: Connector;\n isInstalled?: boolean;\n /** Name of the matching Solana wallet adapter (if any) */\n solanaConnectorName?: SolanaWalletName;\n} & WalletConfigProps;\n\nexport const useWallet = (id: string): WalletProps | null => {\n const wallets = useWallets();\n const wallet = wallets.find((c) => c.id === id);\n if (!wallet) return null;\n return wallet;\n};\n\nexport const useWallets = (isMobile?: boolean): WalletProps[] => {\n const connectors = useConnectors();\n const context = usePayContext();\n const { showSolanaPaymentMethod } = context.paymentState;\n const { disableMobileInjector } = context;\n // Solana wallets available in the session (desktop & mobile)\n const solanaWallet = useSolanaWalletAdapter();\n const locales = useLocales();\n if (isMobile) {\n const mobileWallets: WalletProps[] = [];\n\n // Add injected wallet (if any) first, unless disabled\n if (!disableMobileInjector) {\n connectors.forEach((connector) => {\n if (isBaseAccountConnector(connector.id)) return;\n if (isGeminiConnector(connector.id)) return;\n if (!isInjectedConnector(connector.type)) return;\n // Skip any connectors that mention WalletConnect\n if (connector.name?.toLowerCase().includes(\"walletconnect\")) return;\n mobileWallets.push({\n id: connector.id,\n connector,\n shortName: connector.name,\n iconConnector: connector.icon ? (\n <img src={connector.icon} alt={connector.name} />\n ) : (\n <WalletIcon />\n ),\n iconShape: \"squircle\",\n });\n });\n }\n\n function addIfNotPresent(idList: string) {\n if (mobileWallets.find((w) => idList.includes(w.id))) return;\n if (mobileWallets.length >= 3) return;\n const wallet = assertNotNull(\n walletConfigs[idList],\n () => `missing ${idList}`,\n );\n mobileWallets.push({\n id: idList,\n ...wallet,\n });\n }\n\n addIfNotPresent(\n \"metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK\",\n );\n addIfNotPresent(\"com.trustwallet.app\");\n const otherWalletsString = flattenChildren(locales.otherWallets).join(\"\");\n const otherString = flattenChildren(locales.other).join(\"\");\n // Add other wallet\n mobileWallets.push({\n id: WALLET_ID_OTHER_WALLET,\n name: otherWalletsString,\n shortName: otherString,\n iconConnector: <Logos.OtherWallets />,\n iconShape: \"square\",\n showInMobileConnectors: false,\n });\n\n return mobileWallets;\n }\n\n const wallets = connectors.map((connector): WalletProps => {\n // First, attempt to find a config by matching connector.id (existing logic).\n let walletConfigKey: string | undefined = Object.keys(walletConfigs).find(\n (id) =>\n id\n .split(\",\")\n .map((i) => i.trim())\n .includes(connector.id),\n );\n\n // If not found by id, attempt a fuzzy match on connector.name.\n if (!walletConfigKey && connector.name) {\n walletConfigKey = Object.keys(walletConfigs).find((key) => {\n const cfgName = walletConfigs[key].name?.toLowerCase();\n const connName = connector.name!.toLowerCase();\n return (\n cfgName && (cfgName.includes(connName) || connName.includes(cfgName))\n );\n });\n }\n\n const c: WalletProps = {\n id: connector.id,\n name: connector.name ?? connector.id ?? connector.type,\n icon: connector.icon ? (\n <img\n src={connector.icon}\n alt={connector.name}\n width={\"100%\"}\n height={\"100%\"}\n />\n ) : (\n <WalletIcon />\n ),\n connector,\n iconShape: connector.id === \"io.rabby\" ? \"circle\" : \"squircle\",\n isInstalled:\n connector.type === \"mock\" ||\n (connector.type === \"injected\" && connector.id !== \"metaMask\") ||\n connector.type === \"farcasterFrame\" ||\n isBaseAccountConnector(connector.id) ||\n isGeminiConnector(connector.id),\n };\n\n if (walletConfigKey) {\n const wallet = walletConfigs[walletConfigKey];\n return {\n ...c,\n iconConnector: connector.icon ? (\n <img\n src={connector.icon}\n alt={connector.name}\n width={\"100%\"}\n height={\"100%\"}\n />\n ) : undefined,\n ...wallet,\n };\n }\n\n return c;\n });\n\n wallets.push(walletConfigs.world as WalletProps);\n\n wallets.push({\n id: WALLET_ID_MOBILE_WALLETS,\n name: \"Mobile Wallets\",\n shortName: \"Mobile\",\n icon: (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: \"scale(1.2)\",\n transformOrigin: \"center center\",\n }}\n >\n <MobileWithLogos />\n </div>\n ),\n iconConnector: (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: \"scale(1.2)\",\n transformOrigin: \"center center\",\n }}\n >\n <MobileWithLogos />\n </div>\n ),\n });\n\n if (showSolanaPaymentMethod) {\n const solanaAdapters = solanaWallet.wallets ?? [];\n\n // Merge by fuzzy name matching (includes comparison)\n wallets.forEach((w) => {\n // Skip wallets without a usable name to avoid matching everything\n if (!w.name) return;\n\n const evm = w.name.toLowerCase();\n const match = solanaAdapters.find((sw) => {\n const sol = sw.adapter.name.toLowerCase();\n return evm.includes(sol) || sol.includes(evm);\n });\n\n if (match) {\n w.solanaConnectorName = match.adapter.name;\n }\n });\n\n const unmatched = solanaAdapters.filter(\n (sw) => !wallets.find((w) => w.solanaConnectorName === sw.adapter.name),\n );\n\n unmatched.forEach((sw) => {\n wallets.push({\n id: `solana-${sw.adapter.name}`,\n name: sw.adapter.name,\n shortName: sw.adapter.name,\n icon: <SquircleIcon icon={sw.adapter.icon} alt={sw.adapter.name} />,\n iconConnector: (\n <SquircleIcon icon={sw.adapter.icon} alt={sw.adapter.name} />\n ),\n iconShape: \"squircle\",\n solanaConnectorName: sw.adapter.name,\n });\n });\n }\n\n return (\n wallets\n // remove duplicate ids\n .filter(\n (wallet, index, self) =>\n self.findIndex((w) => w.id === wallet.id) === index,\n )\n // remove wallet with id coinbaseWalletSDK if wallet with id 'com.coinbase.wallet' exists\n .filter(\n (wallet, index, self) =>\n !(\n wallet.id === \"coinbaseWalletSDK\" &&\n self.find((w) => w.id === \"com.coinbase.wallet\")\n ),\n )\n // remove wallet with id io.metamask if wallet with id 'metaMask' exists\n .filter(\n (wallet, index, self) =>\n !(\n (wallet.id === \"metaMaskSDK\" || wallet.id === \"metaMask\") &&\n self.find(\n (w) => w.id === \"io.metamask\" || w.id === \"io.metamask.mobile\",\n )\n ),\n )\n // remove wallet with id 'com.warpcast.mobile' if wallet with id 'farcaster' exists\n .filter(\n (wallet, index, self) =>\n !(\n wallet.id === \"com.warpcast.mobile\" &&\n self.find((w) => w.id === \"farcaster\")\n ),\n )\n // order by isInstalled injected connectors first\n .sort((a, b) => {\n const aIsInstalledInjected =\n a.isInstalled && isInjectedConnector(a.connector?.type);\n const bIsInstalledInjected =\n b.isInstalled && isInjectedConnector(b.connector?.type);\n\n if (aIsInstalledInjected && !bIsInstalledInjected) return -1;\n if (!aIsInstalledInjected && bIsInstalledInjected) return 1;\n return 0;\n })\n // order \"mobile wallets\" option last\n .sort((a, b) => {\n if (a.id === WALLET_ID_MOBILE_WALLETS) return 1;\n if (b.id === WALLET_ID_MOBILE_WALLETS) return -1;\n return 0;\n })\n );\n};\n"],"names":["useSolanaWalletAdapter","addIfNotPresent"],"mappings":";;;;;;;;;;;AAmBO,MAAM,sBAAyB,GAAA,cAAA;AAE/B,MAAM,wBAA2B,GAAA,gBAAA;AAU3B,MAAA,SAAA,GAAY,CAAC,EAAmC,KAAA;AAC3D,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAA,MAAM,SAAS,OAAQ,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,EAAE,CAAA,CAAA;AAC9C,EAAI,IAAA,CAAC,QAAe,OAAA,IAAA,CAAA;AACpB,EAAO,OAAA,MAAA,CAAA;AACT,EAAA;AAEa,MAAA,UAAA,GAAa,CAAC,QAAsC,KAAA;AAC/D,EAAA,MAAM,aAAa,aAAc,EAAA,CAAA;AACjC,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAC9B,EAAM,MAAA,EAAE,uBAAwB,EAAA,GAAI,OAAQ,CAAA,YAAA,CAAA;AAC5C,EAAM,MAAA,EAAE,uBAA0B,GAAA,OAAA,CAAA;AAElC,EAAA,MAAM,eAAeA,WAAuB,EAAA,CAAA;AAC5C,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAA,IAAI,QAAU,EAAA;AAyBZ,IAASC,IAAAA,gBAAAA,GAAT,SAAyB,MAAgB,EAAA;AACvC,MAAI,IAAA,aAAA,CAAc,KAAK,CAAC,CAAA,KAAM,OAAO,QAAS,CAAA,CAAA,CAAE,EAAE,CAAC,CAAG,EAAA,OAAA;AACtD,MAAI,IAAA,aAAA,CAAc,UAAU,CAAG,EAAA,OAAA;AAC/B,MAAA,MAAM,MAAS,GAAA,aAAA;AAAA,QACb,cAAc,MAAM,CAAA;AAAA,QACpB,MAAM,WAAW,MAAM,CAAA,CAAA;AAAA,OACzB,CAAA;AACA,MAAA,aAAA,CAAc,IAAK,CAAA;AAAA,QACjB,EAAI,EAAA,MAAA;AAAA,QACJ,GAAG,MAAA;AAAA,OACJ,CAAA,CAAA;AAAA,KACH,CAAA;AAnCA,IAAA,MAAM,gBAA+B,EAAC,CAAA;AAGtC,IAAA,IAAI,CAAC,qBAAuB,EAAA;AAC1B,MAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AAChC,QAAI,IAAA,sBAAA,CAAuB,SAAU,CAAA,EAAE,CAAG,EAAA,OAAA;AAC1C,QAAI,IAAA,iBAAA,CAAkB,SAAU,CAAA,EAAE,CAAG,EAAA,OAAA;AACrC,QAAA,IAAI,CAAC,mBAAA,CAAoB,SAAU,CAAA,IAAI,CAAG,EAAA,OAAA;AAE1C,QAAA,IAAI,UAAU,IAAM,EAAA,WAAA,EAAc,CAAA,QAAA,CAAS,eAAe,CAAG,EAAA,OAAA;AAC7D,QAAA,aAAA,CAAc,IAAK,CAAA;AAAA,UACjB,IAAI,SAAU,CAAA,EAAA;AAAA,UACd,SAAA;AAAA,UACA,WAAW,SAAU,CAAA,IAAA;AAAA,UACrB,aAAe,EAAA,SAAA,CAAU,IACvB,mBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,GAAA,EAAK,SAAU,CAAA,IAAA,EAAM,GAAK,EAAA,SAAA,CAAU,IAAM,EAAA,CAAA,uBAE9C,UAAW,EAAA,EAAA,CAAA;AAAA,UAEd,SAAW,EAAA,UAAA;AAAA,SACZ,CAAA,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACH;AAeA,IAAAA,gBAAAA;AAAA,MACE,qEAAA;AAAA,KACF,CAAA;AACA,IAAAA,iBAAgB,qBAAqB,CAAA,CAAA;AACrC,IAAA,MAAM,qBAAqB,eAAgB,CAAA,OAAA,CAAQ,YAAY,CAAA,CAAE,KAAK,EAAE,CAAA,CAAA;AACxE,IAAA,MAAM,cAAc,eAAgB,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAE,KAAK,EAAE,CAAA,CAAA;AAE1D,IAAA,aAAA,CAAc,IAAK,CAAA;AAAA,MACjB,EAAI,EAAA,sBAAA;AAAA,MACJ,IAAM,EAAA,kBAAA;AAAA,MACN,SAAW,EAAA,WAAA;AAAA,MACX,aAAe,kBAAA,GAAA,CAAC,KAAM,CAAA,YAAA,EAAN,EAAmB,CAAA;AAAA,MACnC,SAAW,EAAA,QAAA;AAAA,MACX,sBAAwB,EAAA,KAAA;AAAA,KACzB,CAAA,CAAA;AAED,IAAO,OAAA,aAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,OAAU,GAAA,UAAA,CAAW,GAAI,CAAA,CAAC,SAA2B,KAAA;AAEzD,IAAA,IAAI,eAAsC,GAAA,MAAA,CAAO,IAAK,CAAA,aAAa,CAAE,CAAA,IAAA;AAAA,MACnE,CAAC,EAAA,KACC,EACG,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAK,EAAC,CACnB,CAAA,QAAA,CAAS,UAAU,EAAE,CAAA;AAAA,KAC5B,CAAA;AAGA,IAAI,IAAA,CAAC,eAAmB,IAAA,SAAA,CAAU,IAAM,EAAA;AACtC,MAAA,eAAA,GAAkB,OAAO,IAAK,CAAA,aAAa,CAAE,CAAA,IAAA,CAAK,CAAC,GAAQ,KAAA;AACzD,QAAA,MAAM,OAAU,GAAA,aAAA,CAAc,GAAG,CAAA,CAAE,MAAM,WAAY,EAAA,CAAA;AACrD,QAAM,MAAA,QAAA,GAAW,SAAU,CAAA,IAAA,CAAM,WAAY,EAAA,CAAA;AAC7C,QAAA,OACE,YAAY,OAAQ,CAAA,QAAA,CAAS,QAAQ,CAAK,IAAA,QAAA,CAAS,SAAS,OAAO,CAAA,CAAA,CAAA;AAAA,OAEtE,CAAA,CAAA;AAAA,KACH;AAEA,IAAA,MAAM,CAAiB,GAAA;AAAA,MACrB,IAAI,SAAU,CAAA,EAAA;AAAA,MACd,IAAM,EAAA,SAAA,CAAU,IAAQ,IAAA,SAAA,CAAU,MAAM,SAAU,CAAA,IAAA;AAAA,MAClD,IAAA,EAAM,UAAU,IACd,mBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAK,SAAU,CAAA,IAAA;AAAA,UACf,KAAK,SAAU,CAAA,IAAA;AAAA,UACf,KAAO,EAAA,MAAA;AAAA,UACP,MAAQ,EAAA,MAAA;AAAA,SAAA;AAAA,OACV,uBAEC,UAAW,EAAA,EAAA,CAAA;AAAA,MAEd,SAAA;AAAA,MACA,SAAW,EAAA,SAAA,CAAU,EAAO,KAAA,UAAA,GAAa,QAAW,GAAA,UAAA;AAAA,MACpD,aACE,SAAU,CAAA,IAAA,KAAS,UAClB,SAAU,CAAA,IAAA,KAAS,cAAc,SAAU,CAAA,EAAA,KAAO,cACnD,SAAU,CAAA,IAAA,KAAS,oBACnB,sBAAuB,CAAA,SAAA,CAAU,EAAE,CACnC,IAAA,iBAAA,CAAkB,UAAU,EAAE,CAAA;AAAA,KAClC,CAAA;AAEA,IAAA,IAAI,eAAiB,EAAA;AACnB,MAAM,MAAA,MAAA,GAAS,cAAc,eAAe,CAAA,CAAA;AAC5C,MAAO,OAAA;AAAA,QACL,GAAG,CAAA;AAAA,QACH,aAAA,EAAe,UAAU,IACvB,mBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAK,SAAU,CAAA,IAAA;AAAA,YACf,KAAK,SAAU,CAAA,IAAA;AAAA,YACf,KAAO,EAAA,MAAA;AAAA,YACP,MAAQ,EAAA,MAAA;AAAA,WAAA;AAAA,SAER,GAAA,KAAA,CAAA;AAAA,QACJ,GAAG,MAAA;AAAA,OACL,CAAA;AAAA,KACF;AAEA,IAAO,OAAA,CAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAQ,OAAA,CAAA,IAAA,CAAK,cAAc,KAAoB,CAAA,CAAA;AAE/C,EAAA,OAAA,CAAQ,IAAK,CAAA;AAAA,IACX,EAAI,EAAA,wBAAA;AAAA,IACJ,IAAM,EAAA,gBAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,IACE,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,KAAO,EAAA,MAAA;AAAA,UACP,MAAQ,EAAA,MAAA;AAAA,UACR,QAAU,EAAA,QAAA;AAAA,UACV,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,SAAW,EAAA,YAAA;AAAA,UACX,eAAiB,EAAA,eAAA;AAAA,SACnB;AAAA,QAEA,8BAAC,eAAgB,EAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KACnB;AAAA,IAEF,aACE,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,KAAO,EAAA,MAAA;AAAA,UACP,MAAQ,EAAA,MAAA;AAAA,UACR,QAAU,EAAA,QAAA;AAAA,UACV,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,SAAW,EAAA,YAAA;AAAA,UACX,eAAiB,EAAA,eAAA;AAAA,SACnB;AAAA,QAEA,8BAAC,eAAgB,EAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KACnB;AAAA,GAEH,CAAA,CAAA;AAED,EAAA,IAAI,uBAAyB,EAAA;AAC3B,IAAM,MAAA,cAAA,GAAiB,YAAa,CAAA,OAAA,IAAW,EAAC,CAAA;AAGhD,IAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,CAAM,KAAA;AAErB,MAAI,IAAA,CAAC,EAAE,IAAM,EAAA,OAAA;AAEb,MAAM,MAAA,GAAA,GAAM,CAAE,CAAA,IAAA,CAAK,WAAY,EAAA,CAAA;AAC/B,MAAA,MAAM,KAAQ,GAAA,cAAA,CAAe,IAAK,CAAA,CAAC,EAAO,KAAA;AACxC,QAAA,MAAM,GAAM,GAAA,EAAA,CAAG,OAAQ,CAAA,IAAA,CAAK,WAAY,EAAA,CAAA;AACxC,QAAA,OAAO,IAAI,QAAS,CAAA,GAAG,CAAK,IAAA,GAAA,CAAI,SAAS,GAAG,CAAA,CAAA;AAAA,OAC7C,CAAA,CAAA;AAED,MAAA,IAAI,KAAO,EAAA;AACT,QAAE,CAAA,CAAA,mBAAA,GAAsB,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,OACxC;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,YAAY,cAAe,CAAA,MAAA;AAAA,MAC/B,CAAC,EAAO,KAAA,CAAC,OAAQ,CAAA,IAAA,CAAK,CAAC,CAAA,KAAM,CAAE,CAAA,mBAAA,KAAwB,EAAG,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,KACxE,CAAA;AAEA,IAAU,SAAA,CAAA,OAAA,CAAQ,CAAC,EAAO,KAAA;AACxB,MAAA,OAAA,CAAQ,IAAK,CAAA;AAAA,QACX,EAAI,EAAA,CAAA,OAAA,EAAU,EAAG,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,QAC7B,IAAA,EAAM,GAAG,OAAQ,CAAA,IAAA;AAAA,QACjB,SAAA,EAAW,GAAG,OAAQ,CAAA,IAAA;AAAA,QACtB,IAAA,kBAAO,GAAA,CAAA,YAAA,EAAA,EAAa,IAAM,EAAA,EAAA,CAAG,QAAQ,IAAM,EAAA,GAAA,EAAK,EAAG,CAAA,OAAA,CAAQ,IAAM,EAAA,CAAA;AAAA,QACjE,aAAA,kBACG,GAAA,CAAA,YAAA,EAAA,EAAa,IAAM,EAAA,EAAA,CAAG,QAAQ,IAAM,EAAA,GAAA,EAAK,EAAG,CAAA,OAAA,CAAQ,IAAM,EAAA,CAAA;AAAA,QAE7D,SAAW,EAAA,UAAA;AAAA,QACX,mBAAA,EAAqB,GAAG,OAAQ,CAAA,IAAA;AAAA,OACjC,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,OACE,OAEG,CAAA,MAAA;AAAA,IACC,CAAC,MAAA,EAAQ,KAAO,EAAA,IAAA,KACd,IAAK,CAAA,SAAA,CAAU,CAAC,CAAA,KAAM,CAAE,CAAA,EAAA,KAAO,MAAO,CAAA,EAAE,CAAM,KAAA,KAAA;AAAA,GAGjD,CAAA,MAAA;AAAA,IACC,CAAC,MAAA,EAAQ,KAAO,EAAA,IAAA,KACd,EACE,MAAO,CAAA,EAAA,KAAO,mBACd,IAAA,IAAA,CAAK,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,qBAAqB,CAAA,CAAA;AAAA,GAIpD,CAAA,MAAA;AAAA,IACC,CAAC,MAAQ,EAAA,KAAA,EAAO,IACd,KAAA,EAAA,CACG,MAAO,CAAA,EAAA,KAAO,aAAiB,IAAA,MAAA,CAAO,EAAO,KAAA,UAAA,KAC9C,IAAK,CAAA,IAAA;AAAA,MACH,CAAC,CAAM,KAAA,CAAA,CAAE,EAAO,KAAA,aAAA,IAAiB,EAAE,EAAO,KAAA,oBAAA;AAAA,KAC5C,CAAA;AAAA,GAIL,CAAA,MAAA;AAAA,IACC,CAAC,MAAA,EAAQ,KAAO,EAAA,IAAA,KACd,EACE,MAAO,CAAA,EAAA,KAAO,qBACd,IAAA,IAAA,CAAK,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,WAAW,CAAA,CAAA;AAAA,GAI1C,CAAA,IAAA,CAAK,CAAC,CAAA,EAAG,CAAM,KAAA;AACd,IAAA,MAAM,uBACJ,CAAE,CAAA,WAAA,IAAe,mBAAoB,CAAA,CAAA,CAAE,WAAW,IAAI,CAAA,CAAA;AACxD,IAAA,MAAM,uBACJ,CAAE,CAAA,WAAA,IAAe,mBAAoB,CAAA,CAAA,CAAE,WAAW,IAAI,CAAA,CAAA;AAExD,IAAI,IAAA,oBAAA,IAAwB,CAAC,oBAAA,EAA6B,OAAA,CAAA,CAAA,CAAA;AAC1D,IAAI,IAAA,CAAC,oBAAwB,IAAA,oBAAA,EAA6B,OAAA,CAAA,CAAA;AAC1D,IAAO,OAAA,CAAA,CAAA;AAAA,GACR,CAAA,CAEA,IAAK,CAAA,CAAC,GAAG,CAAM,KAAA;AACd,IAAI,IAAA,CAAA,CAAE,EAAO,KAAA,wBAAA,EAAiC,OAAA,CAAA,CAAA;AAC9C,IAAI,IAAA,CAAA,CAAE,EAAO,KAAA,wBAAA,EAAiC,OAAA,CAAA,CAAA,CAAA;AAC9C,IAAO,OAAA,CAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAEP;;;;"}