@daimo/pay 0.3.21 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/build/index.d.ts +132 -301
  2. package/build/package.json.js +103 -0
  3. package/build/package.json.js.map +1 -0
  4. package/build/src/assets/ScanIconWithLogos.js +34 -0
  5. package/build/src/assets/ScanIconWithLogos.js.map +1 -0
  6. package/build/src/assets/browsers.js +13 -0
  7. package/build/src/assets/browsers.js.map +1 -0
  8. package/build/src/assets/chains.js +152 -0
  9. package/build/src/assets/chains.js.map +1 -0
  10. package/build/src/assets/coins.js +6 -0
  11. package/build/src/assets/coins.js.map +1 -0
  12. package/build/src/assets/crepe.js +8 -0
  13. package/build/src/assets/crepe.js.map +1 -0
  14. package/build/src/assets/icons.js +28 -0
  15. package/build/src/assets/icons.js.map +1 -0
  16. package/build/src/assets/logos.js +131 -0
  17. package/build/src/assets/logos.js.map +1 -0
  18. package/build/src/assets/wallet.js +8 -0
  19. package/build/src/assets/wallet.js.map +1 -0
  20. package/build/src/assets/wave.js +6 -0
  21. package/build/src/assets/wave.js.map +1 -0
  22. package/build/src/components/Common/Alert/index.js +10 -0
  23. package/build/src/components/Common/Alert/index.js.map +1 -0
  24. package/build/src/components/Common/Alert/styles.js +55 -0
  25. package/build/src/components/Common/Alert/styles.js.map +1 -0
  26. package/build/src/components/Common/Avatar/index.js +66 -0
  27. package/build/src/components/Common/Avatar/index.js.map +1 -0
  28. package/build/src/components/Common/Avatar/styles.js +59 -0
  29. package/build/src/components/Common/Avatar/styles.js.map +1 -0
  30. package/build/src/components/Common/BrowserIcon/index.js +28 -0
  31. package/build/src/components/Common/BrowserIcon/index.js.map +1 -0
  32. package/build/src/components/Common/BrowserIcon/styles.js +20 -0
  33. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -0
  34. package/build/src/components/Common/Button/index.js +38 -0
  35. package/build/src/components/Common/Button/index.js.map +1 -0
  36. package/build/src/components/Common/Button/styles.js +291 -0
  37. package/build/src/components/Common/Button/styles.js.map +1 -0
  38. package/build/src/components/Common/Chain/index.js +25 -0
  39. package/build/src/components/Common/Chain/index.js.map +1 -0
  40. package/build/src/components/Common/Chain/styles.js +94 -0
  41. package/build/src/components/Common/Chain/styles.js.map +1 -0
  42. package/build/src/components/Common/ChainSelectList/index.js +107 -0
  43. package/build/src/components/Common/ChainSelectList/index.js.map +1 -0
  44. package/build/src/components/Common/ChainSelectList/styles.js +228 -0
  45. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -0
  46. package/build/src/components/Common/ConnectorList/index.js +70 -0
  47. package/build/src/components/Common/ConnectorList/index.js.map +1 -0
  48. package/build/src/components/Common/ConnectorList/styles.js +314 -0
  49. package/build/src/components/Common/ConnectorList/styles.js.map +1 -0
  50. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +71 -0
  51. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
  52. package/build/src/components/Common/CopyToClipboard/index.js +51 -0
  53. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -0
  54. package/build/src/components/Common/CustomQRCode/QRCode.js +69 -0
  55. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
  56. package/build/src/components/Common/CustomQRCode/index.js +22 -0
  57. package/build/src/components/Common/CustomQRCode/index.js.map +1 -0
  58. package/build/src/components/Common/CustomQRCode/styles.js +155 -0
  59. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -0
  60. package/build/src/components/Common/FitText/index.js +27 -0
  61. package/build/src/components/Common/FitText/index.js.map +1 -0
  62. package/build/src/components/Common/Modal/index.js +297 -0
  63. package/build/src/components/Common/Modal/index.js.map +1 -0
  64. package/build/src/components/Common/Modal/styles.js +660 -0
  65. package/build/src/components/Common/Modal/styles.js.map +1 -0
  66. package/build/src/components/Common/OptionsList/index.js +106 -0
  67. package/build/src/components/Common/OptionsList/index.js.map +1 -0
  68. package/build/src/components/Common/OptionsList/styles.js +165 -0
  69. package/build/src/components/Common/OptionsList/styles.js.map +1 -0
  70. package/build/src/components/Common/OrderHeader/index.js +215 -0
  71. package/build/src/components/Common/OrderHeader/index.js.map +1 -0
  72. package/build/src/components/Common/Portal/index.js +31 -0
  73. package/build/src/components/Common/Portal/index.js.map +1 -0
  74. package/build/src/components/Common/PoweredByFooter/index.js +44 -0
  75. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -0
  76. package/build/src/components/Common/ScrollArea/index.js +62 -0
  77. package/build/src/components/Common/ScrollArea/index.js.map +1 -0
  78. package/build/src/components/Common/ScrollArea/styles.js +168 -0
  79. package/build/src/components/Common/ScrollArea/styles.js.map +1 -0
  80. package/build/src/components/Common/Spinner/index.js +24 -0
  81. package/build/src/components/Common/Spinner/index.js.map +1 -0
  82. package/build/src/components/Common/Spinner/styles.js +22 -0
  83. package/build/src/components/Common/Spinner/styles.js.map +1 -0
  84. package/build/src/components/Common/ThemedButton/index.js +25 -0
  85. package/build/src/components/Common/ThemedButton/index.js.map +1 -0
  86. package/build/src/components/Common/ThemedButton/styles.js +152 -0
  87. package/build/src/components/Common/ThemedButton/styles.js.map +1 -0
  88. package/build/src/components/Common/Tooltip/index.js +97 -0
  89. package/build/src/components/Common/Tooltip/index.js.map +1 -0
  90. package/build/src/components/Common/Tooltip/styles.js +81 -0
  91. package/build/src/components/Common/Tooltip/styles.js.map +1 -0
  92. package/build/src/components/DaimoPay.js +232 -0
  93. package/build/src/components/DaimoPay.js.map +1 -0
  94. package/build/src/components/DaimoPayButton/index.js +133 -0
  95. package/build/src/components/DaimoPayButton/index.js.map +1 -0
  96. package/build/src/components/DaimoPayButton/styles.js +50 -0
  97. package/build/src/components/DaimoPayButton/styles.js.map +1 -0
  98. package/build/src/components/DaimoPayModal/ConnectUsing.js +45 -0
  99. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
  100. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +202 -0
  101. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
  102. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +133 -0
  103. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
  104. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +75 -0
  105. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
  106. package/build/src/components/DaimoPayModal/index.js +140 -0
  107. package/build/src/components/DaimoPayModal/index.js.map +1 -0
  108. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +21 -0
  109. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
  110. package/build/src/components/Pages/About/graphics.js +187 -0
  111. package/build/src/components/Pages/About/graphics.js.map +1 -0
  112. package/build/src/components/Pages/About/index.js +131 -0
  113. package/build/src/components/Pages/About/index.js.map +1 -0
  114. package/build/src/components/Pages/About/styles.js +144 -0
  115. package/build/src/components/Pages/About/styles.js.map +1 -0
  116. package/build/src/components/Pages/Confirmation/index.js +105 -0
  117. package/build/src/components/Pages/Confirmation/index.js.map +1 -0
  118. package/build/src/components/Pages/Connectors/index.js +20 -0
  119. package/build/src/components/Pages/Connectors/index.js.map +1 -0
  120. package/build/src/components/Pages/Connectors/styles.js +267 -0
  121. package/build/src/components/Pages/Connectors/styles.js.map +1 -0
  122. package/build/src/components/Pages/DownloadApp/index.js +30 -0
  123. package/build/src/components/Pages/DownloadApp/index.js.map +1 -0
  124. package/build/src/components/Pages/MobileConnectors/index.js +73 -0
  125. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -0
  126. package/build/src/components/Pages/MobileConnectors/styles.js +65 -0
  127. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -0
  128. package/build/src/components/Pages/Onboarding/index.js +18 -0
  129. package/build/src/components/Pages/Onboarding/index.js.map +1 -0
  130. package/build/src/components/Pages/Onboarding/styles.js +229 -0
  131. package/build/src/components/Pages/Onboarding/styles.js.map +1 -0
  132. package/build/src/components/Pages/PayWithToken/index.js +204 -0
  133. package/build/src/components/Pages/PayWithToken/index.js.map +1 -0
  134. package/build/src/components/Pages/SelectDepositAddressChain/index.js +32 -0
  135. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
  136. package/build/src/components/Pages/SelectMethod/index.js +113 -0
  137. package/build/src/components/Pages/SelectMethod/index.js.map +1 -0
  138. package/build/src/components/Pages/SelectToken/index.js +62 -0
  139. package/build/src/components/Pages/SelectToken/index.js.map +1 -0
  140. package/build/src/components/Pages/Solana/ConnectSolana/index.js +37 -0
  141. package/build/src/components/Pages/Solana/ConnectSolana/index.js.map +1 -0
  142. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +45 -0
  143. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
  144. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +85 -0
  145. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
  146. package/build/src/components/Pages/Solana/SelectSolanaToken/index.js +38 -0
  147. package/build/src/components/Pages/Solana/SelectSolanaToken/index.js.map +1 -0
  148. package/build/src/components/Pages/SwitchNetworks/index.js +26 -0
  149. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -0
  150. package/build/src/components/Pages/WaitingDepositAddress/index.js +51 -0
  151. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
  152. package/build/src/components/Pages/WaitingOther/index.js +91 -0
  153. package/build/src/components/Pages/WaitingOther/index.js.map +1 -0
  154. package/build/src/components/Spinners/CircleSpinner/index.js +15 -0
  155. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -0
  156. package/build/src/components/Spinners/CircleSpinner/styles.js +118 -0
  157. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
  158. package/build/src/components/Spinners/SquircleSpinner/index.js +15 -0
  159. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
  160. package/build/src/components/Spinners/SquircleSpinner/styles.js +66 -0
  161. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
  162. package/build/src/components/contexts/solana/index.js +11 -0
  163. package/build/src/components/contexts/solana/index.js.map +1 -0
  164. package/build/src/components/contexts/web3/index.js +46 -0
  165. package/build/src/components/contexts/web3/index.js.map +1 -0
  166. package/build/src/constants/chainConfigs.js +306 -0
  167. package/build/src/constants/chainConfigs.js.map +1 -0
  168. package/build/src/constants/defaultTheme.js +6 -0
  169. package/build/src/constants/defaultTheme.js.map +1 -0
  170. package/build/src/defaultConfig.js +59 -0
  171. package/build/src/defaultConfig.js.map +1 -0
  172. package/build/src/defaultConnectors.js +43 -0
  173. package/build/src/defaultConnectors.js.map +1 -0
  174. package/build/src/hooks/connectors/useWalletConnectUri.js +93 -0
  175. package/build/src/hooks/connectors/useWalletConnectUri.js.map +1 -0
  176. package/build/src/hooks/useChainIsSupported.js +12 -0
  177. package/build/src/hooks/useChainIsSupported.js.map +1 -0
  178. package/build/src/hooks/useChains.js +11 -0
  179. package/build/src/hooks/useChains.js.map +1 -0
  180. package/build/src/hooks/useConnect.js +45 -0
  181. package/build/src/hooks/useConnect.js.map +1 -0
  182. package/build/src/hooks/useConnectCallback.js +18 -0
  183. package/build/src/hooks/useConnectCallback.js.map +1 -0
  184. package/build/src/hooks/useConnectors.js +29 -0
  185. package/build/src/hooks/useConnectors.js.map +1 -0
  186. package/build/src/hooks/useDaimoPayStatus.js +37 -0
  187. package/build/src/hooks/useDaimoPayStatus.js.map +1 -0
  188. package/build/src/hooks/useDepositAddressOptions.js +28 -0
  189. package/build/src/hooks/useDepositAddressOptions.js.map +1 -0
  190. package/build/src/hooks/useEnsFallbackConfig.js +16 -0
  191. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -0
  192. package/build/src/hooks/useExternalPaymentOptions.js +46 -0
  193. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -0
  194. package/build/src/hooks/useFitText.js +148 -0
  195. package/build/src/hooks/useFitText.js.map +1 -0
  196. package/build/src/hooks/useFocusTrap.js +60 -0
  197. package/build/src/hooks/useFocusTrap.js.map +1 -0
  198. package/build/src/hooks/useGoogleFont.js +45 -0
  199. package/build/src/hooks/useGoogleFont.js.map +1 -0
  200. package/build/src/hooks/useIsMobile.js +17 -0
  201. package/build/src/hooks/useIsMobile.js.map +1 -0
  202. package/build/src/hooks/useIsMounted.js +12 -0
  203. package/build/src/hooks/useIsMounted.js.map +1 -0
  204. package/build/src/hooks/useLastConnector.js +24 -0
  205. package/build/src/hooks/useLastConnector.js.map +1 -0
  206. package/build/src/hooks/useLocales.js +67 -0
  207. package/build/src/hooks/useLocales.js.map +1 -0
  208. package/build/src/hooks/useLockBodyScroll.js +53 -0
  209. package/build/src/hooks/useLockBodyScroll.js.map +1 -0
  210. package/build/src/hooks/useModal.js +35 -0
  211. package/build/src/hooks/useModal.js.map +1 -0
  212. package/build/src/hooks/usePayWithSolanaToken.js +50 -0
  213. package/build/src/hooks/usePayWithSolanaToken.js.map +1 -0
  214. package/build/src/hooks/usePayWithToken.js +57 -0
  215. package/build/src/hooks/usePayWithToken.js.map +1 -0
  216. package/build/src/hooks/usePaymentState.js +243 -0
  217. package/build/src/hooks/usePaymentState.js.map +1 -0
  218. package/build/src/hooks/usePrevious.js +14 -0
  219. package/build/src/hooks/usePrevious.js.map +1 -0
  220. package/build/src/hooks/useSolanaPaymentOptions.js +37 -0
  221. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -0
  222. package/build/src/hooks/useWalletConnectModal.js +52 -0
  223. package/build/src/hooks/useWalletConnectModal.js.map +1 -0
  224. package/build/src/hooks/useWalletPaymentOptions.js +40 -0
  225. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -0
  226. package/build/src/hooks/useWindowSize.js +23 -0
  227. package/build/src/hooks/useWindowSize.js.map +1 -0
  228. package/build/src/index.js +10 -0
  229. package/build/src/index.js.map +1 -0
  230. package/build/src/localizations/index.js +57 -0
  231. package/build/src/localizations/index.js.map +1 -0
  232. package/build/src/localizations/locales/ar-AE.js +97 -0
  233. package/build/src/localizations/locales/ar-AE.js.map +1 -0
  234. package/build/src/localizations/locales/ca-AD.js +95 -0
  235. package/build/src/localizations/locales/ca-AD.js.map +1 -0
  236. package/build/src/localizations/locales/ee-EE.js +95 -0
  237. package/build/src/localizations/locales/ee-EE.js.map +1 -0
  238. package/build/src/localizations/locales/en-US.js +95 -0
  239. package/build/src/localizations/locales/en-US.js.map +1 -0
  240. package/build/src/localizations/locales/es-ES.js +95 -0
  241. package/build/src/localizations/locales/es-ES.js.map +1 -0
  242. package/build/src/localizations/locales/fa-IR.js +95 -0
  243. package/build/src/localizations/locales/fa-IR.js.map +1 -0
  244. package/build/src/localizations/locales/fr-FR.js +95 -0
  245. package/build/src/localizations/locales/fr-FR.js.map +1 -0
  246. package/build/src/localizations/locales/ja-JP.js +95 -0
  247. package/build/src/localizations/locales/ja-JP.js.map +1 -0
  248. package/build/src/localizations/locales/pt-BR.js +95 -0
  249. package/build/src/localizations/locales/pt-BR.js.map +1 -0
  250. package/build/src/localizations/locales/ru-RU.js +95 -0
  251. package/build/src/localizations/locales/ru-RU.js.map +1 -0
  252. package/build/src/localizations/locales/tr-TR.js +95 -0
  253. package/build/src/localizations/locales/tr-TR.js.map +1 -0
  254. package/build/src/localizations/locales/vi-VN.js +95 -0
  255. package/build/src/localizations/locales/vi-VN.js.map +1 -0
  256. package/build/src/localizations/locales/zh-CN.js +95 -0
  257. package/build/src/localizations/locales/zh-CN.js.map +1 -0
  258. package/build/src/styles/defaultTheme.js +89 -0
  259. package/build/src/styles/defaultTheme.js.map +1 -0
  260. package/build/src/styles/index.js +329 -0
  261. package/build/src/styles/index.js.map +1 -0
  262. package/build/src/styles/styled/index.js +16 -0
  263. package/build/src/styles/styled/index.js.map +1 -0
  264. package/build/src/styles/themes/base.js +141 -0
  265. package/build/src/styles/themes/base.js.map +1 -0
  266. package/build/src/styles/themes/index.js +13 -0
  267. package/build/src/styles/themes/index.js.map +1 -0
  268. package/build/src/styles/themes/midnight.js +76 -0
  269. package/build/src/styles/themes/midnight.js.map +1 -0
  270. package/build/src/styles/themes/minimal.js +96 -0
  271. package/build/src/styles/themes/minimal.js.map +1 -0
  272. package/build/src/styles/themes/nouns.js +81 -0
  273. package/build/src/styles/themes/nouns.js.map +1 -0
  274. package/build/src/styles/themes/retro.js +106 -0
  275. package/build/src/styles/themes/retro.js.map +1 -0
  276. package/build/src/styles/themes/rounded.js +106 -0
  277. package/build/src/styles/themes/rounded.js.map +1 -0
  278. package/build/src/styles/themes/soft.js +71 -0
  279. package/build/src/styles/themes/soft.js.map +1 -0
  280. package/build/src/styles/themes/web95.js +132 -0
  281. package/build/src/styles/themes/web95.js.map +1 -0
  282. package/build/src/utils/exports.js +12 -0
  283. package/build/src/utils/exports.js.map +1 -0
  284. package/build/src/utils/index.js +39 -0
  285. package/build/src/utils/index.js.map +1 -0
  286. package/build/src/utils/p3.js +16 -0
  287. package/build/src/utils/p3.js.map +1 -0
  288. package/build/src/utils/platform.js +13 -0
  289. package/build/src/utils/platform.js.map +1 -0
  290. package/build/src/utils/trpc.js +14 -0
  291. package/build/src/utils/trpc.js.map +1 -0
  292. package/build/src/utils/wallets.js +14 -0
  293. package/build/src/utils/wallets.js.map +1 -0
  294. package/build/src/wallets/index.js +32 -0
  295. package/build/src/wallets/index.js.map +1 -0
  296. package/build/src/wallets/useWallets.js +86 -0
  297. package/build/src/wallets/useWallets.js.map +1 -0
  298. package/build/src/wallets/walletConfigs.js +362 -0
  299. package/build/src/wallets/walletConfigs.js.map +1 -0
  300. package/package.json +5 -5
  301. package/build/index.es.js +0 -11565
  302. package/build/index.es.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { motion } from 'framer-motion';
3
+ import { useEffect } from 'react';
4
+ import { keyframes } from 'styled-components';
5
+ import styled from '../../../styles/styled/index.js';
6
+ import { usePayContext } from '../../DaimoPay.js';
7
+ import { ScrollArea } from '../ScrollArea/index.js';
8
+ import { OptionsContainer, OptionButton, OptionIcon, OptionLabel, OptionTitle, OptionSubtitle } from './styles.js';
9
+
10
+ const OptionsList = ({ options, isLoading, requiredSkeletons, }) => {
11
+ const { triggerResize, log } = usePayContext();
12
+ const optionsLength = options.length;
13
+ useEffect(() => {
14
+ log(`[OPTIONS RESIZE]: ${optionsLength}, triggering resize`);
15
+ if (optionsLength > 0) {
16
+ triggerResize();
17
+ }
18
+ }, [optionsLength]);
19
+ if (isLoading) {
20
+ const skeletonCount = requiredSkeletons
21
+ ? Math.max(requiredSkeletons - optionsLength, 0)
22
+ : 0;
23
+ return (jsxs(OptionsContainer, { "$totalResults": options.length, children: [options.map((option) => (jsx(OptionItem, { option: option }, option.id))), isLoading &&
24
+ Array.from({ length: skeletonCount }).map((_, index) => (jsx(SkeletonOptionItem, {}, index)))] }));
25
+ }
26
+ return (jsx(ScrollArea, { mobileDirection: "vertical", height: 300, children: jsx(OptionsContainer, { "$totalResults": options.length, children: options.map((option) => (jsx(OptionItem, { option: option }, option.id))) }) }));
27
+ };
28
+ const SkeletonOptionItem = () => {
29
+ return (jsxs(OptionButton, { type: "button", children: [jsx(SkeletonIcon, {}), jsx(SkeletonLabel, {})] }));
30
+ };
31
+ const pulse = keyframes `
32
+ 0% {
33
+ opacity: 0.6;
34
+ }
35
+ 50% {
36
+ opacity: 1;
37
+ }
38
+ 100% {
39
+ opacity: 0.6;
40
+ }
41
+ `;
42
+ const SkeletonIcon = styled.div `
43
+ position: absolute;
44
+ right: 20px;
45
+ width: 32px;
46
+ height: 32px;
47
+ border-radius: 22.5%;
48
+ background-color: rgba(0, 0, 0, 0.1);
49
+ animation: ${pulse} 1.5s ease-in-out infinite;
50
+ `;
51
+ const SkeletonLabel = styled.div `
52
+ width: 100px;
53
+ height: 16px;
54
+ border-radius: 8px;
55
+ background-color: rgba(0, 0, 0, 0.1);
56
+ animation: ${pulse} 1.5s ease-in-out infinite;
57
+ `;
58
+ const OptionItem = ({ option }) => {
59
+ const hydratedIcons = option.icons.map((icon) => {
60
+ if (typeof icon === "string") {
61
+ return jsx("img", { src: icon, alt: "" });
62
+ }
63
+ return icon;
64
+ });
65
+ const iconContent = (() => {
66
+ if (hydratedIcons.length === 1)
67
+ return jsx(OptionIcon, { children: hydratedIcons[0] });
68
+ else {
69
+ return (jsx(IconStackContainer, { children: hydratedIcons.map((icon, index) => (jsx(IconStackItem, { "$marginRight": index !== hydratedIcons.length - 1 ? -12 : 0, "$zIndex": hydratedIcons.length - index, children: icon }, index))) }));
70
+ }
71
+ })();
72
+ return (jsxs(OptionButton, { type: "button", onClick: option.onClick, children: [iconContent, jsxs(OptionLabel, { children: [jsx(OptionTitle, { children: option.title }), option.subtitle && jsx(OptionSubtitle, { children: option.subtitle })] })] }));
73
+ };
74
+ const IconStackContainer = styled(motion.div) `
75
+ position: absolute;
76
+ right: 20px;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ `;
81
+ const IconStackItem = styled(motion.div) `
82
+ display: block;
83
+ overflow: hidden;
84
+ user-select: none;
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ margin-right: ${(props) => props.$marginRight || 0}px;
89
+ z-index: ${(props) => props.$zIndex || 2};
90
+ width: 32px;
91
+ height: 32px;
92
+ overflow: hidden;
93
+ svg,
94
+ img {
95
+ display: block;
96
+ position: relative;
97
+ pointer-events: none;
98
+ overflow: hidden;
99
+ width: 100%;
100
+ height: 100%;
101
+ }
102
+ border-radius: 22.5%;
103
+ `;
104
+
105
+ export { OptionsList as default };
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,165 @@
1
+ import { css } from 'styled-components';
2
+ import styled from '../../../styles/styled/index.js';
3
+ import { motion } from 'framer-motion';
4
+
5
+ const OptionButton = styled(motion.button) `
6
+ display: block;
7
+ text-decoration: none;
8
+ cursor: pointer;
9
+ user-select: none;
10
+ position: relative;
11
+ display: flex;
12
+ align-items: center;
13
+ padding: 0 20px;
14
+ height: 64px;
15
+ font-size: 17px;
16
+ font-weight: var(--ck-primary-button-font-weight, 500);
17
+ line-height: 20px;
18
+ text-align: var(--ck-body-button-text-align, left);
19
+ transition: 180ms ease;
20
+ transition-property: background, color, box-shadow, transform, opacity;
21
+ will-change: transform, box-shadow, background-color, color, opacity;
22
+
23
+ --fallback-color: var(--ck-primary-button-color);
24
+ --fallback-background: var(--ck-primary-button-background);
25
+ --fallback-box-shadow: var(--ck-primary-button-box-shadow);
26
+ --fallback-border-radius: var(--ck-primary-button-border-radius);
27
+
28
+ --color: var(--ck-primary-button-color, var(--fallback-color));
29
+ --background: var(--ck-primary-button-background, var(--fallback-background));
30
+ --box-shadow: var(--ck-primary-button-box-shadow, var(--fallback-box-shadow));
31
+ --border-radius: var(
32
+ --ck-primary-button-border-radius,
33
+ var(--fallback-border-radius)
34
+ );
35
+
36
+ --hover-color: var(--ck-primary-button-hover-color, var(--color));
37
+ --hover-background: var(
38
+ --ck-primary-button-hover-background,
39
+ var(--background)
40
+ );
41
+ --hover-box-shadow: var(
42
+ --ck-primary-button-hover-box-shadow,
43
+ var(--box-shadow)
44
+ );
45
+ --hover-border-radius: var(
46
+ --ck-primary-button-hover-border-radius,
47
+ var(--border-radius)
48
+ );
49
+
50
+ --active-color: var(--ck-primary-button-active-color, var(--hover-color));
51
+ --active-background: var(
52
+ --ck-primary-button-active-background,
53
+ var(--hover-background)
54
+ );
55
+ --active-box-shadow: var(
56
+ --ck-primary-button-active-box-shadow,
57
+ var(--hover-box-shadow)
58
+ );
59
+ --active-border-radius: var(
60
+ --ck-primary-button-active-border-radius,
61
+ var(--hover-border-radius)
62
+ );
63
+
64
+ color: var(--color);
65
+ background: var(--background);
66
+ box-shadow: var(--box-shadow);
67
+ border-radius: var(--border-radius);
68
+
69
+ &:disabled {
70
+ transition: 180ms ease;
71
+ opacity: 0.4;
72
+ }
73
+
74
+ --bg: var(--background);
75
+ &:not(:disabled) {
76
+ &:hover {
77
+ color: var(--hover-color);
78
+ background: var(--hover-background);
79
+ box-shadow: var(--hover-box-shadow);
80
+ border-radius: var(--hover-border-radius);
81
+ --bg: var(--hover-background, var(--background));
82
+ }
83
+ &:focus-visible {
84
+ transition-duration: 100ms;
85
+ color: var(--hover-color);
86
+ background: var(--hover-background);
87
+ box-shadow: var(--hover-box-shadow);
88
+ border-radius: var(--hover-border-radius);
89
+ --bg: var(--hover-background, var(--background));
90
+ }
91
+ &:active {
92
+ color: var(--active-color);
93
+ background: var(--active-background);
94
+ box-shadow: var(--active-box-shadow);
95
+ border-radius: var(--active-border-radius);
96
+ --bg: var(--active-background, var(--background));
97
+ }
98
+ }
99
+ `;
100
+ const OptionLabel = styled(motion.span) `
101
+ display: flex;
102
+ flex-direction: column;
103
+ align-items: flex-start;
104
+ gap: 2px;
105
+ width: 100%;
106
+ overflow: hidden;
107
+ padding: 2px 0;
108
+ padding-right: 38px;
109
+ `;
110
+ const OptionTitle = styled(motion.span) `
111
+ white-space: nowrap;
112
+ text-overflow: ellipsis;
113
+ overflow: hidden;
114
+ width: 100%;
115
+ `;
116
+ const OptionSubtitle = styled(motion.span) `
117
+ font-size: 14px;
118
+ opacity: 0.6;
119
+ font-weight: 400;
120
+ white-space: nowrap;
121
+ text-overflow: ellipsis;
122
+ overflow: hidden;
123
+ width: 100%;
124
+ `;
125
+ const OptionIcon = styled(motion.div) `
126
+ position: absolute;
127
+ right: 20px;
128
+ width: 32px;
129
+ height: 32px;
130
+ overflow: hidden;
131
+ svg,
132
+ img {
133
+ display: block;
134
+ position: relative;
135
+ pointer-events: none;
136
+ overflow: hidden;
137
+ width: 100%;
138
+ height: 100%;
139
+ }
140
+
141
+ &[data-shape="squircle"] {
142
+ border-radius: 22.5%;
143
+ }
144
+ &[data-shape="circle"] {
145
+ border-radius: 100%;
146
+ }
147
+ &[data-shape="square"] {
148
+ border-radius: 0;
149
+ }
150
+ `;
151
+ const OptionsContainer = styled.div `
152
+ transition: opacity 300ms ease;
153
+ display: flex;
154
+ flex-direction: column;
155
+ gap: 12px;
156
+
157
+ ${(props) => props.$disabled &&
158
+ css `
159
+ pointer-events: none;
160
+ opacity: 0.4;
161
+ `}
162
+ `;
163
+
164
+ export { OptionButton, OptionIcon, OptionLabel, OptionSubtitle, OptionTitle, OptionsContainer };
165
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,215 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { DaimoPayOrderMode } from '@daimo/common';
3
+ import { motion } from 'framer-motion';
4
+ import { useState } from 'react';
5
+ import { Ethereum, Optimism, Arbitrum, Base, Polygon, Solana } from '../../../assets/chains.js';
6
+ import { USDC } from '../../../assets/coins.js';
7
+ import defaultTheme from '../../../constants/defaultTheme.js';
8
+ import styled from '../../../styles/styled/index.js';
9
+ import { usePayContext } from '../../DaimoPay.js';
10
+ import Button from '../Button/index.js';
11
+
12
+ /** Shows payment amount. */
13
+ const OrderHeader = ({ minified = false }) => {
14
+ const { paymentState } = usePayContext();
15
+ const amount = paymentState.daimoPayOrder?.destFinalCallTokenAmount.usd.toFixed(2);
16
+ const isEditable = paymentState.daimoPayOrder?.mode === DaimoPayOrderMode.CHOOSE_AMOUNT;
17
+ const [editableAmount, setEditableAmount] = useState(amount ?? "");
18
+ // Start out in edit mode immediately if amount = 0.
19
+ const [isEditing, setIsEditing] = useState(amount === "0.00");
20
+ const handleSave = () => {
21
+ if (!isEditing)
22
+ return;
23
+ paymentState.setChosenUsd(Number(editableAmount));
24
+ setIsEditing(false);
25
+ };
26
+ const handleKeyDown = (e) => {
27
+ if (e.key === "Enter" && isEditing) {
28
+ handleSave();
29
+ }
30
+ };
31
+ const sanitizeAndSetAmount = (amount) => {
32
+ if (!amount.match(/^[0-9]*(\.[0-9]{0,2})?$/)) {
33
+ return;
34
+ }
35
+ const [digitsBeforeDecimal, digitsAfterDecimal] = (() => {
36
+ if (amount.includes("."))
37
+ return amount.split(".");
38
+ else
39
+ return [amount, ""];
40
+ })();
41
+ if (digitsBeforeDecimal.length > 5 || digitsAfterDecimal.length > 2) {
42
+ return;
43
+ }
44
+ setEditableAmount(amount);
45
+ };
46
+ const titleAmountContent = (() => {
47
+ const buttonStyles = (() => {
48
+ if (minified)
49
+ return {
50
+ height: "24px",
51
+ width: "42px",
52
+ lineHeight: "12px",
53
+ borderRadius: "6px",
54
+ fontSize: "14px",
55
+ };
56
+ else
57
+ return {
58
+ height: "30px",
59
+ width: "54px",
60
+ lineHeight: "16px",
61
+ borderRadius: "8px",
62
+ fontSize: "20px",
63
+ };
64
+ })();
65
+ return (jsxs(Fragment, { children: [isEditable && !minified && (jsx("div", { style: { width: buttonStyles.width, height: buttonStyles.height } })), !isEditing ? (jsxs("span", { children: ["$", amount] })) : (jsxs("div", { style: { display: "flex" }, children: ["$", jsx(InputUnderlineField, { value: editableAmount, onChange: (e) => sanitizeAndSetAmount(e.target.value), onBlur: (e) => {
66
+ if (!e.relatedTarget) {
67
+ setIsEditing(false);
68
+ }
69
+ }, onKeyDown: handleKeyDown })] })), isEditable && (jsx(Button, { variant: "primary", onClick: () => {
70
+ if (isEditing)
71
+ handleSave();
72
+ else
73
+ setIsEditing(true);
74
+ }, style: {
75
+ width: buttonStyles.width,
76
+ height: buttonStyles.height,
77
+ lineHeight: buttonStyles.lineHeight,
78
+ borderRadius: buttonStyles.borderRadius,
79
+ fontSize: buttonStyles.fontSize,
80
+ margin: 0,
81
+ }, children: isEditing ? "Save" : "Edit" }))] }));
82
+ })();
83
+ if (minified) {
84
+ return (jsxs(MinifiedContainer, { children: [jsx(MinifiedTitleAmount, { children: titleAmountContent }), jsx(CoinLogos, { "$size": 32 })] }));
85
+ }
86
+ else {
87
+ return (jsxs(Fragment, { children: [jsx(TitleAmount, { children: titleAmountContent }), jsxs(AnyChainAnyCoinContainer, { children: [jsx(CoinLogos, {}), jsx(Subtitle, { children: "1000+ tokens accepted" })] })] }));
88
+ }
89
+ };
90
+ function CoinLogos({ $size = 24 }) {
91
+ const logos = [
92
+ jsx(Ethereum, {}),
93
+ jsx(USDC, {}),
94
+ jsx(Optimism, {}),
95
+ jsx(Arbitrum, {}),
96
+ jsx(Base, {}),
97
+ jsx(Polygon, {}),
98
+ jsx(Solana, {}),
99
+ ];
100
+ const logoBlock = (element, index) => (jsx(LogoContainer, { "$marginLeft": index !== 0 ? -($size / 3) : 0, "$zIndex": logos.length - index, "$size": $size, transition: { duration: 0.5, ease: [0.175, 0.885, 0.32, 0.98] }, children: element }, index));
101
+ return (jsx(Logos, { children: logos.map((element, index) => logoBlock(element, index)) }));
102
+ }
103
+ function InputUnderlineField({ value, onChange, onBlur, onKeyDown, }) {
104
+ // subtract width for decimal point if necessary
105
+ const width = value.length - 0.5 * (value.includes(".") ? 1 : 0) + "ch";
106
+ const selectAll = (e) => {
107
+ // When entering edit mode, select the amount for quicker editing
108
+ setTimeout(() => e.target.select(), 100);
109
+ };
110
+ return (jsxs("div", { style: { width: "auto", position: "relative" }, children: [jsx(InputField, { "$width": width, type: "text", pattern: "\\d*.\\d{2}", value: value, onChange: onChange, onBlur: onBlur, onFocus: selectAll, onKeyDown: onKeyDown, autoFocus: true }), jsx(Underline, {})] }));
111
+ }
112
+ const InputField = styled(motion.input) `
113
+ box-sizing: border-box;
114
+ background-color: transparent;
115
+ outline: none;
116
+ width: ${(props) => props.$width || "5ch"};
117
+ line-height: inherit;
118
+ font-size: inherit;
119
+ font-weight: inherit;
120
+ color: inherit;
121
+ border: none;
122
+ padding: 0;
123
+ &:focus {
124
+ box-sizing: border-box;
125
+ outline: none;
126
+ border: none;
127
+ }
128
+ `;
129
+ const Underline = styled(motion.div) `
130
+ position: absolute;
131
+ bottom: 0;
132
+ left: 0;
133
+ width: 100%;
134
+ height: 2px;
135
+ background-color: var(--ck-body-color-muted);
136
+ `;
137
+ const TitleAmount = styled(motion.h1) `
138
+ margin: 0;
139
+ padding: 0;
140
+ line-height: 66px;
141
+ font-size: 64px;
142
+ font-weight: var(--ck-modal-h1-font-weight, 600);
143
+ color: ${(props) => {
144
+ if (props.$error)
145
+ return "var(--ck-body-color-danger)";
146
+ if (props.$valid)
147
+ return "var(--ck-body-color-valid)";
148
+ return "var(--ck-body-color)";
149
+ }};
150
+ @media only screen and (max-width: ${defaultTheme.mobileWidth}px) {
151
+ font-size: 64px;
152
+ }
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ gap: 8px;
157
+ `;
158
+ const Subtitle = styled(motion.div) `
159
+ font-size: 18px;
160
+ font-weight: 500;
161
+ line-height: 21px;
162
+ color: var(--ck-body-color-muted);
163
+ `;
164
+ const MinifiedTitleAmount = styled(motion.div) `
165
+ font-size: 32px;
166
+ font-weight: var(--ck-modal-h1-font-weight, 600);
167
+ line-height: 36px;
168
+ color: var(--ck-body-color);
169
+ display: flex;
170
+ align-items: center;
171
+ justify-content: start;
172
+ gap: 8px;
173
+ `;
174
+ const MinifiedContainer = styled(motion.div) `
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: space-between;
178
+ width: 100%;
179
+ margin-bottom: 24px;
180
+ `;
181
+ const AnyChainAnyCoinContainer = styled(motion.div) `
182
+ display: flex;
183
+ vertical-align: middle;
184
+ align-items: center;
185
+ justify-content: center;
186
+ text-align: center;
187
+ gap: 8px;
188
+ margin: 24px 0;
189
+ `;
190
+ const LogoContainer = styled(motion.div) `
191
+ display: block;
192
+ overflow: hidden;
193
+ user-select: none;
194
+ display: flex;
195
+ align-items: center;
196
+ justify-content: center;
197
+ margin-left: ${(props) => props.$marginLeft || 0}px;
198
+ z-index: ${(props) => props.$zIndex || 2};
199
+ width: ${(props) => props.$size}px;
200
+ height: ${(props) => props.$size}px;
201
+ border-radius: 9999px;
202
+ svg {
203
+ display: block;
204
+ width: 100%;
205
+ height: auto;
206
+ }
207
+ `;
208
+ const Logos = styled(motion.div) `
209
+ display: flex;
210
+ align-items: center;
211
+ justify-content: center;
212
+ `;
213
+
214
+ export { OrderHeader };
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,31 @@
1
+ import { useRef, useState, useEffect } from 'react';
2
+ import { createPortal } from 'react-dom';
3
+ import packageJson from '../../../../package.json.js';
4
+
5
+ const Portal = (props) => {
6
+ props = {
7
+ selector: "__DAIMOPAY__",
8
+ ...props,
9
+ };
10
+ const { selector, children } = props;
11
+ const ref = useRef(null);
12
+ const [mounted, setMounted] = useState(false);
13
+ useEffect(() => {
14
+ const selectorPrefixed = "#" + selector.replace(/^#/, "");
15
+ ref.current = document.querySelector(selectorPrefixed);
16
+ if (!ref.current) {
17
+ const div = document.createElement("div");
18
+ div.setAttribute("id", selector);
19
+ div.setAttribute("data-daimopay", `${packageJson.version}`);
20
+ document.body.appendChild(div);
21
+ ref.current = div;
22
+ }
23
+ setMounted(true);
24
+ }, [selector]);
25
+ if (!ref.current)
26
+ return null;
27
+ return mounted ? createPortal(children, ref.current) : null;
28
+ };
29
+
30
+ export { Portal as default };
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,44 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { motion } from 'framer-motion';
3
+ import CrepeIcon from '../../../assets/crepe.js';
4
+ import styled from '../../../styles/styled/index.js';
5
+
6
+ const PoweredByFooter = () => {
7
+ return (jsx(Container, { children: jsxs(TextButton, { onClick: () => {
8
+ window.open("https://pay.daimo.com?ref=paykit", "_blank");
9
+ }, children: [jsx(CrepeIcon, {}), "Powered by Daimo Pay"] }) }));
10
+ };
11
+ const Container = styled(motion.div) `
12
+ text-align: center;
13
+ margin-top: 16px;
14
+ margin-bottom: -4px;
15
+ `;
16
+ const TextButton = styled(motion.button) `
17
+ appearance: none;
18
+ user-select: none;
19
+ cursor: pointer;
20
+ display: inline-flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ gap: 10px;
24
+ height: 42px;
25
+ padding: 0 16px;
26
+ border-radius: 6px;
27
+ background: none;
28
+ color: var(--ck-body-color-muted);
29
+ font-size: 15px;
30
+ line-height: 18px;
31
+ font-weight: 500;
32
+ transition:
33
+ color 200ms ease,
34
+ transform 100ms ease;
35
+ &:hover {
36
+ color: var(--ck-body-color-muted-hover);
37
+ }
38
+ &:active {
39
+ transform: scale(0.96);
40
+ }
41
+ `;
42
+
43
+ export { PoweredByFooter as default };
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,62 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef, useEffect } from 'react';
3
+ import useIsMobile from '../../../hooks/useIsMobile.js';
4
+ import { usePayContext } from '../../DaimoPay.js';
5
+ import { ScrollContainer, ScrollAreaContainer, MoreIndicator } from './styles.js';
6
+
7
+ const ArrowDown = () => (jsx("svg", { width: "11", height: "12", viewBox: "0 0 11 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M5.49438 1L5.49438 11M5.49438 11L9.5 7M5.49438 11L1.5 7", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) }));
8
+ const ScrollArea = ({ children, height, backgroundColor, mobileDirection, }) => {
9
+ const { log } = usePayContext();
10
+ const ref = useRef(null);
11
+ const moreRef = useRef(null);
12
+ const isMobile = useIsMobile();
13
+ useEffect(() => {
14
+ const el = ref.current;
15
+ if (!el)
16
+ return;
17
+ // if ref is not scrollable, hide the more indicator
18
+ if (el.scrollHeight > el.clientHeight) {
19
+ if (moreRef.current) {
20
+ moreRef.current.classList.remove("hide");
21
+ }
22
+ }
23
+ log(`[SCROLL AREA]: ${el.scrollHeight}, ${el.clientHeight}`);
24
+ const handleScroll = (e) => {
25
+ const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = e.target;
26
+ if (moreRef.current) {
27
+ if (scrollTop > 0) {
28
+ moreRef.current.classList.add("hide");
29
+ }
30
+ }
31
+ if (scrollTop === 0 && scrollLeft === 0) {
32
+ el.classList.add("scroll-start");
33
+ }
34
+ else {
35
+ el.classList.remove("scroll-start");
36
+ }
37
+ if (scrollHeight - scrollTop === clientHeight &&
38
+ scrollWidth - scrollLeft === clientWidth) {
39
+ el.classList.add("scroll-end");
40
+ }
41
+ else {
42
+ el.classList.remove("scroll-end");
43
+ }
44
+ };
45
+ el.addEventListener("scroll", handleScroll);
46
+ handleScroll({ target: el });
47
+ return () => {
48
+ el.removeEventListener("scroll", handleScroll);
49
+ };
50
+ }, [ref.current]);
51
+ return (jsxs(ScrollContainer, { children: [jsx(ScrollAreaContainer, { ref: ref, "$mobile": isMobile, "$height": height, "$backgroundColor": backgroundColor, "$mobileDirection": mobileDirection, children: children }), jsx(MoreIndicator, { ref: moreRef, className: "hide", onClick: () => {
52
+ if (ref.current) {
53
+ ref.current.scrollTo({
54
+ top: ref.current.scrollHeight,
55
+ behavior: "smooth",
56
+ });
57
+ }
58
+ }, children: jsxs("span", { children: [jsx(ArrowDown, {}), " More Available"] }) })] }));
59
+ };
60
+
61
+ export { ScrollArea };
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}