@turnkey/react-wallet-kit 2.7.0 → 2.8.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 (287) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +10 -1
  2. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -1
  3. package/dist/components/auth/Action.d.ts +1 -0
  4. package/dist/components/auth/Action.d.ts.map +1 -1
  5. package/dist/components/auth/Action.js +10 -3
  6. package/dist/components/auth/Action.js.map +1 -1
  7. package/dist/components/auth/Action.mjs +10 -3
  8. package/dist/components/auth/Action.mjs.map +1 -1
  9. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +2 -0
  10. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -1
  11. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +7 -4
  12. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -1
  13. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +22 -12
  14. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -1
  15. package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -1
  16. package/dist/components/auth/wallet/ExternalWalletChainSelector.js +2 -1
  17. package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -1
  18. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +2 -2
  19. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -1
  20. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +1 -0
  21. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -1
  22. package/dist/components/auth/wallet/MobileWalletConnectScreen.js +3 -1
  23. package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -1
  24. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +16 -8
  25. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -1
  26. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +2 -1
  27. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -1
  28. package/dist/components/auth/wallet/ShowAllWalletsScreen.js +8 -3
  29. package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -1
  30. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +8 -3
  31. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -1
  32. package/dist/components/design/Success.d.ts +1 -1
  33. package/dist/components/design/Success.d.ts.map +1 -1
  34. package/dist/components/design/Success.js +2 -2
  35. package/dist/components/design/Success.js.map +1 -1
  36. package/dist/components/design/Success.mjs +2 -2
  37. package/dist/components/design/Success.mjs.map +1 -1
  38. package/dist/components/design/Svg.d.ts +1 -0
  39. package/dist/components/design/Svg.d.ts.map +1 -1
  40. package/dist/components/design/Svg.js +32 -12
  41. package/dist/components/design/Svg.js.map +1 -1
  42. package/dist/components/design/Svg.mjs +32 -13
  43. package/dist/components/design/Svg.mjs.map +1 -1
  44. package/dist/components/design/TabNav.d.ts +13 -0
  45. package/dist/components/design/TabNav.d.ts.map +1 -0
  46. package/dist/components/design/TabNav.js +64 -0
  47. package/dist/components/design/TabNav.js.map +1 -0
  48. package/dist/components/design/TabNav.mjs +81 -0
  49. package/dist/components/design/TabNav.mjs.map +1 -0
  50. package/dist/components/funding/CryptoAmountInput.d.ts +11 -0
  51. package/dist/components/funding/CryptoAmountInput.d.ts.map +1 -0
  52. package/dist/components/funding/CryptoAmountInput.js +82 -0
  53. package/dist/components/funding/CryptoAmountInput.js.map +1 -0
  54. package/dist/components/funding/CryptoAmountInput.mjs +87 -0
  55. package/dist/components/funding/CryptoAmountInput.mjs.map +1 -0
  56. package/dist/components/funding/CurrencyDropdown.d.ts +8 -0
  57. package/dist/components/funding/CurrencyDropdown.d.ts.map +1 -0
  58. package/dist/components/funding/CurrencyDropdown.js +132 -0
  59. package/dist/components/funding/CurrencyDropdown.js.map +1 -0
  60. package/dist/components/funding/CurrencyDropdown.mjs +132 -0
  61. package/dist/components/funding/CurrencyDropdown.mjs.map +1 -0
  62. package/dist/components/funding/FiatAmountInput.d.ts +11 -0
  63. package/dist/components/funding/FiatAmountInput.d.ts.map +1 -0
  64. package/dist/components/funding/FiatAmountInput.js +94 -0
  65. package/dist/components/funding/FiatAmountInput.js.map +1 -0
  66. package/dist/components/funding/FiatAmountInput.mjs +105 -0
  67. package/dist/components/funding/FiatAmountInput.mjs.map +1 -0
  68. package/dist/components/funding/OffRamp.d.ts +3 -0
  69. package/dist/components/funding/OffRamp.d.ts.map +1 -0
  70. package/dist/components/funding/OffRamp.js +31 -0
  71. package/dist/components/funding/OffRamp.js.map +1 -0
  72. package/dist/components/funding/OffRamp.mjs +30 -0
  73. package/dist/components/funding/OffRamp.mjs.map +1 -0
  74. package/dist/components/funding/OffRampAmount.d.ts +22 -0
  75. package/dist/components/funding/OffRampAmount.d.ts.map +1 -0
  76. package/dist/components/funding/OffRampAmount.js +304 -0
  77. package/dist/components/funding/OffRampAmount.js.map +1 -0
  78. package/dist/components/funding/OffRampAmount.mjs +376 -0
  79. package/dist/components/funding/OffRampAmount.mjs.map +1 -0
  80. package/dist/components/funding/OffRampDeposit.d.ts +22 -0
  81. package/dist/components/funding/OffRampDeposit.d.ts.map +1 -0
  82. package/dist/components/funding/OffRampDeposit.js +455 -0
  83. package/dist/components/funding/OffRampDeposit.js.map +1 -0
  84. package/dist/components/funding/OffRampDeposit.mjs +551 -0
  85. package/dist/components/funding/OffRampDeposit.mjs.map +1 -0
  86. package/dist/components/funding/OffRampReturn.d.ts +2 -0
  87. package/dist/components/funding/OffRampReturn.d.ts.map +1 -0
  88. package/dist/components/funding/OffRampReturn.js +144 -0
  89. package/dist/components/funding/OffRampReturn.js.map +1 -0
  90. package/dist/components/funding/OffRampReturn.mjs +146 -0
  91. package/dist/components/funding/OffRampReturn.mjs.map +1 -0
  92. package/dist/components/funding/OnRamp.d.ts +7 -0
  93. package/dist/components/funding/OnRamp.d.ts.map +1 -0
  94. package/dist/components/funding/OnRamp.js +64 -0
  95. package/dist/components/funding/OnRamp.js.map +1 -0
  96. package/dist/components/funding/OnRamp.mjs +58 -0
  97. package/dist/components/funding/OnRamp.mjs.map +1 -0
  98. package/dist/components/funding/OnRampAmount.d.ts +21 -0
  99. package/dist/components/funding/OnRampAmount.d.ts.map +1 -0
  100. package/dist/components/funding/OnRampAmount.js +229 -0
  101. package/dist/components/funding/OnRampAmount.js.map +1 -0
  102. package/dist/components/funding/OnRampAmount.mjs +312 -0
  103. package/dist/components/funding/OnRampAmount.mjs.map +1 -0
  104. package/dist/components/funding/OnRampCash.d.ts +3 -0
  105. package/dist/components/funding/OnRampCash.d.ts.map +1 -0
  106. package/dist/components/funding/OnRampCash.js +26 -0
  107. package/dist/components/funding/OnRampCash.js.map +1 -0
  108. package/dist/components/funding/OnRampCash.mjs +25 -0
  109. package/dist/components/funding/OnRampCash.mjs.map +1 -0
  110. package/dist/components/funding/OnRampCrypto.d.ts +11 -0
  111. package/dist/components/funding/OnRampCrypto.d.ts.map +1 -0
  112. package/dist/components/funding/OnRampCrypto.js +126 -0
  113. package/dist/components/funding/OnRampCrypto.js.map +1 -0
  114. package/dist/components/funding/OnRampCrypto.mjs +148 -0
  115. package/dist/components/funding/OnRampCrypto.mjs.map +1 -0
  116. package/dist/components/funding/OnRampCryptoSend.d.ts +15 -0
  117. package/dist/components/funding/OnRampCryptoSend.d.ts.map +1 -0
  118. package/dist/components/funding/OnRampCryptoSend.js +251 -0
  119. package/dist/components/funding/OnRampCryptoSend.js.map +1 -0
  120. package/dist/components/funding/OnRampCryptoSend.mjs +323 -0
  121. package/dist/components/funding/OnRampCryptoSend.mjs.map +1 -0
  122. package/dist/components/funding/OnRampCryptoStatus.d.ts +14 -0
  123. package/dist/components/funding/OnRampCryptoStatus.d.ts.map +1 -0
  124. package/dist/components/funding/OnRampCryptoStatus.js +153 -0
  125. package/dist/components/funding/OnRampCryptoStatus.js.map +1 -0
  126. package/dist/components/funding/OnRampCryptoStatus.mjs +272 -0
  127. package/dist/components/funding/OnRampCryptoStatus.mjs.map +1 -0
  128. package/dist/components/funding/OnRampExternalAccountSelector.d.ts +11 -0
  129. package/dist/components/funding/OnRampExternalAccountSelector.d.ts.map +1 -0
  130. package/dist/components/funding/OnRampExternalAccountSelector.js +95 -0
  131. package/dist/components/funding/OnRampExternalAccountSelector.js.map +1 -0
  132. package/dist/components/funding/OnRampExternalAccountSelector.mjs +109 -0
  133. package/dist/components/funding/OnRampExternalAccountSelector.mjs.map +1 -0
  134. package/dist/components/funding/OnRampExternalWallet.d.ts +12 -0
  135. package/dist/components/funding/OnRampExternalWallet.d.ts.map +1 -0
  136. package/dist/components/funding/OnRampExternalWallet.js +218 -0
  137. package/dist/components/funding/OnRampExternalWallet.js.map +1 -0
  138. package/dist/components/funding/OnRampExternalWallet.mjs +303 -0
  139. package/dist/components/funding/OnRampExternalWallet.mjs.map +1 -0
  140. package/dist/components/funding/OnRampStatus.d.ts +15 -0
  141. package/dist/components/funding/OnRampStatus.d.ts.map +1 -0
  142. package/dist/components/funding/OnRampStatus.js +114 -0
  143. package/dist/components/funding/OnRampStatus.js.map +1 -0
  144. package/dist/components/funding/OnRampStatus.mjs +166 -0
  145. package/dist/components/funding/OnRampStatus.mjs.map +1 -0
  146. package/dist/components/funding/PaymentMethods.d.ts +35 -0
  147. package/dist/components/funding/PaymentMethods.d.ts.map +1 -0
  148. package/dist/components/funding/PaymentMethods.js +173 -0
  149. package/dist/components/funding/PaymentMethods.js.map +1 -0
  150. package/dist/components/funding/PaymentMethods.mjs +180 -0
  151. package/dist/components/funding/PaymentMethods.mjs.map +1 -0
  152. package/dist/components/funding/QuoteDetails.d.ts +13 -0
  153. package/dist/components/funding/QuoteDetails.d.ts.map +1 -0
  154. package/dist/components/funding/QuoteDetails.js +124 -0
  155. package/dist/components/funding/QuoteDetails.js.map +1 -0
  156. package/dist/components/funding/QuoteDetails.mjs +121 -0
  157. package/dist/components/funding/QuoteDetails.mjs.map +1 -0
  158. package/dist/components/funding/QuoteOption.d.ts +23 -0
  159. package/dist/components/funding/QuoteOption.d.ts.map +1 -0
  160. package/dist/components/funding/QuoteOption.js +153 -0
  161. package/dist/components/funding/QuoteOption.js.map +1 -0
  162. package/dist/components/funding/QuoteOption.mjs +150 -0
  163. package/dist/components/funding/QuoteOption.mjs.map +1 -0
  164. package/dist/components/funding/QuotePicker.d.ts +13 -0
  165. package/dist/components/funding/QuotePicker.d.ts.map +1 -0
  166. package/dist/components/funding/QuotePicker.js +49 -0
  167. package/dist/components/funding/QuotePicker.js.map +1 -0
  168. package/dist/components/funding/QuotePicker.mjs +48 -0
  169. package/dist/components/funding/QuotePicker.mjs.map +1 -0
  170. package/dist/components/funding/TokenSelect.d.ts +18 -0
  171. package/dist/components/funding/TokenSelect.d.ts.map +1 -0
  172. package/dist/components/funding/TokenSelect.js +198 -0
  173. package/dist/components/funding/TokenSelect.js.map +1 -0
  174. package/dist/components/funding/TokenSelect.mjs +210 -0
  175. package/dist/components/funding/TokenSelect.mjs.map +1 -0
  176. package/dist/components/funding/offRampRedirect.d.ts +61 -0
  177. package/dist/components/funding/offRampRedirect.d.ts.map +1 -0
  178. package/dist/components/funding/offRampRedirect.js +282 -0
  179. package/dist/components/funding/offRampRedirect.js.map +1 -0
  180. package/dist/components/funding/offRampRedirect.mjs +274 -0
  181. package/dist/components/funding/offRampRedirect.mjs.map +1 -0
  182. package/dist/components/send-transaction/SendTransaction.d.ts.map +1 -1
  183. package/dist/components/send-transaction/SendTransaction.js +8 -6
  184. package/dist/components/send-transaction/SendTransaction.js.map +1 -1
  185. package/dist/components/send-transaction/SendTransaction.mjs +8 -6
  186. package/dist/components/send-transaction/SendTransaction.mjs.map +1 -1
  187. package/dist/components/send-transaction/helpers.d.ts.map +1 -1
  188. package/dist/components/send-transaction/helpers.js +4 -0
  189. package/dist/components/send-transaction/helpers.js.map +1 -1
  190. package/dist/components/send-transaction/helpers.mjs +4 -0
  191. package/dist/components/send-transaction/helpers.mjs.map +1 -1
  192. package/dist/components/sign/Message.d.ts.map +1 -1
  193. package/dist/components/sign/Message.js +2 -1
  194. package/dist/components/sign/Message.js.map +1 -1
  195. package/dist/components/sign/Message.mjs +2 -2
  196. package/dist/components/sign/Message.mjs.map +1 -1
  197. package/dist/providers/SupportedAssetsProvider.d.ts +18 -0
  198. package/dist/providers/SupportedAssetsProvider.d.ts.map +1 -0
  199. package/dist/providers/SupportedAssetsProvider.js +71 -0
  200. package/dist/providers/SupportedAssetsProvider.js.map +1 -0
  201. package/dist/providers/SupportedAssetsProvider.mjs +114 -0
  202. package/dist/providers/SupportedAssetsProvider.mjs.map +1 -0
  203. package/dist/providers/TurnkeyProvider.d.ts.map +1 -1
  204. package/dist/providers/TurnkeyProvider.js +2 -1
  205. package/dist/providers/TurnkeyProvider.js.map +1 -1
  206. package/dist/providers/TurnkeyProvider.mjs +2 -1
  207. package/dist/providers/TurnkeyProvider.mjs.map +1 -1
  208. package/dist/providers/client/Provider.d.ts.map +1 -1
  209. package/dist/providers/client/Provider.js +98 -153
  210. package/dist/providers/client/Provider.js.map +1 -1
  211. package/dist/providers/client/Provider.mjs +214 -328
  212. package/dist/providers/client/Provider.mjs.map +1 -1
  213. package/dist/providers/client/Types.d.ts +37 -12
  214. package/dist/providers/client/Types.d.ts.map +1 -1
  215. package/dist/providers/client/Types.js.map +1 -1
  216. package/dist/providers/client/Types.mjs.map +1 -1
  217. package/dist/providers/modal/Provider.d.ts +1 -0
  218. package/dist/providers/modal/Provider.d.ts.map +1 -1
  219. package/dist/providers/modal/Provider.js +12 -0
  220. package/dist/providers/modal/Provider.js.map +1 -1
  221. package/dist/providers/modal/Provider.mjs +15 -0
  222. package/dist/providers/modal/Provider.mjs.map +1 -1
  223. package/dist/providers/modal/Root.d.ts.map +1 -1
  224. package/dist/providers/modal/Root.js +16 -14
  225. package/dist/providers/modal/Root.js.map +1 -1
  226. package/dist/providers/modal/Root.mjs +16 -14
  227. package/dist/providers/modal/Root.mjs.map +1 -1
  228. package/dist/styles.css +1 -1
  229. package/dist/types/method-types.d.ts +21 -9
  230. package/dist/types/method-types.d.ts.map +1 -1
  231. package/dist/utils/funding/buildCryptoTransfer.d.ts +41 -0
  232. package/dist/utils/funding/buildCryptoTransfer.d.ts.map +1 -0
  233. package/dist/utils/funding/buildCryptoTransfer.js +134 -0
  234. package/dist/utils/funding/buildCryptoTransfer.js.map +1 -0
  235. package/dist/utils/funding/buildCryptoTransfer.mjs +128 -0
  236. package/dist/utils/funding/buildCryptoTransfer.mjs.map +1 -0
  237. package/dist/utils/funding/chainLabel.d.ts +2 -0
  238. package/dist/utils/funding/chainLabel.d.ts.map +1 -0
  239. package/dist/utils/funding/chainLabel.js +19 -0
  240. package/dist/utils/funding/chainLabel.js.map +1 -0
  241. package/dist/utils/funding/chainLabel.mjs +18 -0
  242. package/dist/utils/funding/chainLabel.mjs.map +1 -0
  243. package/dist/utils/funding/depositPlan.d.ts +28 -0
  244. package/dist/utils/funding/depositPlan.d.ts.map +1 -0
  245. package/dist/utils/funding/depositPlan.js +127 -0
  246. package/dist/utils/funding/depositPlan.js.map +1 -0
  247. package/dist/utils/funding/depositPlan.mjs +120 -0
  248. package/dist/utils/funding/depositPlan.mjs.map +1 -0
  249. package/dist/utils/funding/index.d.ts +8 -0
  250. package/dist/utils/funding/index.d.ts.map +1 -0
  251. package/dist/utils/funding/onRampTokens.d.ts +6 -0
  252. package/dist/utils/funding/onRampTokens.d.ts.map +1 -0
  253. package/dist/utils/funding/onRampTokens.js +21 -0
  254. package/dist/utils/funding/onRampTokens.js.map +1 -0
  255. package/dist/utils/funding/onRampTokens.mjs +26 -0
  256. package/dist/utils/funding/onRampTokens.mjs.map +1 -0
  257. package/dist/utils/funding/rankQuotes.d.ts +7 -0
  258. package/dist/utils/funding/rankQuotes.d.ts.map +1 -0
  259. package/dist/utils/funding/rankQuotes.js +37 -0
  260. package/dist/utils/funding/rankQuotes.js.map +1 -0
  261. package/dist/utils/funding/rankQuotes.mjs +50 -0
  262. package/dist/utils/funding/rankQuotes.mjs.map +1 -0
  263. package/dist/utils/funding/sendCryptoTransfer.d.ts +26 -0
  264. package/dist/utils/funding/sendCryptoTransfer.d.ts.map +1 -0
  265. package/dist/utils/funding/sendCryptoTransfer.js +281 -0
  266. package/dist/utils/funding/sendCryptoTransfer.js.map +1 -0
  267. package/dist/utils/funding/sendCryptoTransfer.mjs +405 -0
  268. package/dist/utils/funding/sendCryptoTransfer.mjs.map +1 -0
  269. package/dist/utils/funding/tokenSymbol.d.ts +7 -0
  270. package/dist/utils/funding/tokenSymbol.d.ts.map +1 -0
  271. package/dist/utils/funding/tokenSymbol.js +32 -0
  272. package/dist/utils/funding/tokenSymbol.js.map +1 -0
  273. package/dist/utils/funding/tokenSymbol.mjs +31 -0
  274. package/dist/utils/funding/tokenSymbol.mjs.map +1 -0
  275. package/dist/utils/utils.d.ts +1 -0
  276. package/dist/utils/utils.d.ts.map +1 -1
  277. package/dist/utils/utils.js +5 -0
  278. package/dist/utils/utils.js.map +1 -1
  279. package/dist/utils/utils.mjs +7 -1
  280. package/dist/utils/utils.mjs.map +1 -1
  281. package/package.json +8 -4
  282. package/dist/components/onramp/OnRamp.d.ts +0 -14
  283. package/dist/components/onramp/OnRamp.d.ts.map +0 -1
  284. package/dist/components/onramp/OnRamp.js +0 -61
  285. package/dist/components/onramp/OnRamp.js.map +0 -1
  286. package/dist/components/onramp/OnRamp.mjs +0 -79
  287. package/dist/components/onramp/OnRamp.mjs.map +0 -1
@@ -0,0 +1,180 @@
1
+ import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { faCreditCard, faBuildingColumns, faWallet, faChevronRight } from '@fortawesome/free-solid-svg-icons';
4
+ import { faApple, faGoogle } from '@fortawesome/free-brands-svg-icons';
5
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
6
+ import clsx from 'clsx';
7
+ import { forwardRef, useState } from 'react';
8
+ import { useModal } from '../../providers/modal/Hook.mjs';
9
+ import { ActionButton } from '../design/Buttons.mjs';
10
+
11
+ var paymentMethods = [{
12
+ id: "FIAT_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD",
13
+ method: "FIAT_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD",
14
+ label: "Card",
15
+ description: "Directly enter your debit or credit card details",
16
+ icon: faCreditCard
17
+ }, {
18
+ id: "FIAT_RAMP_PAYMENT_METHOD_APPLE_PAY",
19
+ method: "FIAT_RAMP_PAYMENT_METHOD_APPLE_PAY",
20
+ label: "Apple Pay",
21
+ description: "Use your Apple Wallet to pay",
22
+ icon: faApple
23
+ }, {
24
+ id: "FIAT_RAMP_PAYMENT_METHOD_GOOGLE_PAY",
25
+ method: "FIAT_RAMP_PAYMENT_METHOD_GOOGLE_PAY",
26
+ label: "Google Pay",
27
+ description: "Use your Google Wallet to pay",
28
+ icon: faGoogle
29
+ }];
30
+ function PaymentMethodButton(props) {
31
+ var option = props.option,
32
+ onSelect = props.onSelect;
33
+ var _useModal = useModal(),
34
+ isMobile = _useModal.isMobile;
35
+ var _useState = useState(false),
36
+ _useState2 = _slicedToArray(_useState, 2),
37
+ isHovering = _useState2[0],
38
+ setIsHovering = _useState2[1];
39
+ return jsxs(ActionButton, _objectSpread2(_objectSpread2({
40
+ name: "onramp-".concat(option.id),
41
+ onClick: onSelect
42
+ }, !isMobile && {
43
+ onMouseEnter: function onMouseEnter() {
44
+ return setIsHovering(true);
45
+ },
46
+ onMouseLeave: function onMouseLeave() {
47
+ return setIsHovering(false);
48
+ }
49
+ }), {}, {
50
+ className: "relative flex w-full items-center gap-2 overflow-hidden bg-button-light text-inherit dark:bg-button-dark",
51
+ children: [jsx("span", {
52
+ className: "flex size-6 shrink-0 items-center justify-center",
53
+ children: jsx(FontAwesomeIcon, {
54
+ icon: option.icon,
55
+ className: "size-4 text-xl"
56
+ })
57
+ }), jsxs("span", {
58
+ className: "flex flex-col items-start",
59
+ children: [jsx("span", {
60
+ children: option.label
61
+ }), jsx("span", {
62
+ className: "text-xs text-icon-text-light dark:text-icon-text-dark",
63
+ children: option.description
64
+ })]
65
+ }), jsx(FontAwesomeIcon, {
66
+ className: clsx("absolute transition-all duration-200 text-icon-text-light dark:text-icon-text-dark", isHovering ? "right-4" : "-right-4"),
67
+ icon: faChevronRight
68
+ })]
69
+ }));
70
+ }
71
+ var PaymentMethodList = /*#__PURE__*/forwardRef(function PaymentMethodList(props, ref) {
72
+ var _onSelect = props.onSelect,
73
+ className = props.className;
74
+ return jsx("div", {
75
+ ref: ref,
76
+ className: clsx("flex w-full flex-col gap-2", className),
77
+ children: paymentMethods.map(function (option) {
78
+ return jsx(PaymentMethodButton, {
79
+ option: option,
80
+ onSelect: function onSelect() {
81
+ return _onSelect(option.method);
82
+ }
83
+ }, option.id);
84
+ })
85
+ });
86
+ });
87
+ function PaymentMethodSelect(props) {
88
+ var value = props.value,
89
+ onChange = props.onChange;
90
+ var _useModal2 = useModal(),
91
+ openSheet = _useModal2.openSheet,
92
+ closeSheet = _useModal2.closeSheet;
93
+ var option = paymentMethods.find(function (item) {
94
+ return item.id === value;
95
+ });
96
+ if (!option) return null;
97
+ return jsx(PaymentMethodButton, {
98
+ option: option,
99
+ onSelect: function onSelect() {
100
+ return openSheet({
101
+ key: "Payment method",
102
+ content: jsx(PaymentMethodList, {
103
+ onSelect: function onSelect(method) {
104
+ onChange(method);
105
+ closeSheet();
106
+ }
107
+ })
108
+ });
109
+ }
110
+ });
111
+ }
112
+ var offRampPayouts = [{
113
+ id: "card",
114
+ label: "Card",
115
+ description: "Receive the sale on a debit card",
116
+ icon: faCreditCard,
117
+ methods: ["FIAT_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD"]
118
+ }, {
119
+ id: "ach",
120
+ label: "ACH transfer",
121
+ description: "Receive the sale in a US bank account",
122
+ icon: faBuildingColumns,
123
+ methods: ["FIAT_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT"]
124
+ }, {
125
+ id: "fiat-account",
126
+ label: "Fiat account",
127
+ description: "Receive the sale in a fiat balance",
128
+ icon: faWallet,
129
+ methods: ["FIAT_RAMP_PAYMENT_METHOD_FIAT_WALLET", "FIAT_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE"]
130
+ }];
131
+ function offRampPayoutMethods(payout) {
132
+ var _offRampPayouts$find;
133
+ return (_offRampPayouts$find = offRampPayouts.find(function (item) {
134
+ return item.id === payout;
135
+ })) === null || _offRampPayouts$find === void 0 ? void 0 : _offRampPayouts$find.methods;
136
+ }
137
+ var OffRampPayoutList = /*#__PURE__*/forwardRef(function OffRampPayoutList(props, ref) {
138
+ var _onSelect2 = props.onSelect,
139
+ className = props.className;
140
+ return jsx("div", {
141
+ ref: ref,
142
+ className: clsx("flex w-full flex-col gap-2", className),
143
+ children: offRampPayouts.map(function (option) {
144
+ return jsx(PaymentMethodButton, {
145
+ option: option,
146
+ onSelect: function onSelect() {
147
+ return _onSelect2(option.id);
148
+ }
149
+ }, option.id);
150
+ })
151
+ });
152
+ });
153
+ function OffRampPayoutSelect(props) {
154
+ var value = props.value,
155
+ onChange = props.onChange;
156
+ var _useModal3 = useModal(),
157
+ openSheet = _useModal3.openSheet,
158
+ closeSheet = _useModal3.closeSheet;
159
+ var option = offRampPayouts.find(function (item) {
160
+ return item.id === value;
161
+ });
162
+ if (!option) return null;
163
+ return jsx(PaymentMethodButton, {
164
+ option: option,
165
+ onSelect: function onSelect() {
166
+ return openSheet({
167
+ key: "Payout method",
168
+ content: jsx(OffRampPayoutList, {
169
+ onSelect: function onSelect(payout) {
170
+ onChange(payout);
171
+ closeSheet();
172
+ }
173
+ })
174
+ });
175
+ }
176
+ });
177
+ }
178
+
179
+ export { OffRampPayoutList, OffRampPayoutSelect, PaymentMethodList, PaymentMethodSelect, offRampPayoutMethods, offRampPayouts };
180
+ //# sourceMappingURL=PaymentMethods.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentMethods.mjs","sources":["../../../src/components/funding/PaymentMethods.tsx"],"sourcesContent":[null],"names":["paymentMethods","id","method","label","description","icon","faCreditCard","faApple","faGoogle","PaymentMethodButton","props","option","onSelect","_useModal","useModal","isMobile","_useState","useState","_useState2","_slicedToArray","isHovering","setIsHovering","_jsxs","ActionButton","_objectSpread","name","concat","onClick","onMouseEnter","onMouseLeave","className","_jsx","FontAwesomeIcon","children","clsx","faChevronRight","PaymentMethodList","forwardRef","ref","map","PaymentMethodSelect","value","onChange","_useModal2","openSheet","closeSheet","find","item","key","content","offRampPayouts","methods","faBuildingColumns","faWallet","offRampPayoutMethods","payout","_offRampPayouts$find","OffRampPayoutList","OffRampPayoutSelect","_useModal3"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { v1FiatOnRampQuote } from "@turnkey/core";
2
+ import { type QuoteAmountBasis } from "./QuoteOption";
3
+ export type QuoteDetailsProps = {
4
+ quote?: v1FiatOnRampQuote | undefined;
5
+ quotes: v1FiatOnRampQuote[];
6
+ amount?: string | undefined;
7
+ amountBasis?: QuoteAmountBasis | undefined;
8
+ yieldOn?: "crypto" | "fiat" | undefined;
9
+ loading?: boolean;
10
+ onSelect: (quote: v1FiatOnRampQuote) => void;
11
+ };
12
+ export declare function QuoteDetails(props: QuoteDetailsProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=QuoteDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteDetails.d.ts","sourceRoot":"","sources":["../../../src/components/funding/QuoteDetails.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIvD,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAkBpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3C,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAkGpD"}
@@ -0,0 +1,124 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
5
+ var reactFontawesome = require('@fortawesome/react-fontawesome');
6
+ var clsx = require('clsx');
7
+ var Buttons = require('../design/Buttons.js');
8
+ var Hook = require('../../providers/modal/Hook.js');
9
+ var QuoteOption = require('./QuoteOption.js');
10
+ var QuotePicker = require('./QuotePicker.js');
11
+
12
+ function SkeletonLine() {
13
+ return jsxRuntime.jsxs("div", {
14
+ className: "relative",
15
+ children: [jsxRuntime.jsx("span", {
16
+ className: "invisible",
17
+ children: "Fiat amount"
18
+ }), jsxRuntime.jsx("div", {
19
+ className: skeletonBarClass
20
+ })]
21
+ });
22
+ }
23
+ const panelClassName = "flex w-full flex-col gap-2 rounded-md border border-modal-background-dark/20 dark:border-modal-background-light/20 bg-button-light dark:bg-button-dark px-3 py-3 text-left text-sm/[normal] box-border";
24
+ const skeletonBarClass = "absolute inset-x-0 top-1/2 h-[1em] -translate-y-1/2 rounded bg-icon-background-light dark:bg-icon-background-dark";
25
+ function QuoteDetails(props) {
26
+ const {
27
+ quote,
28
+ quotes,
29
+ amount,
30
+ amountBasis,
31
+ yieldOn,
32
+ loading,
33
+ onSelect
34
+ } = props;
35
+ const {
36
+ openSheet,
37
+ closeSheet
38
+ } = Hook.useModal();
39
+ const canPick = !loading && !!quote && quotes.length > 1;
40
+ const entered = Number(amount);
41
+ const needsAmount = amount !== undefined && (!Number.isFinite(entered) || entered <= 0);
42
+ if (loading) {
43
+ return jsxRuntime.jsxs("div", {
44
+ "aria-hidden": true,
45
+ className: clsx(panelClassName, "pointer-events-none animate-pulse"),
46
+ children: [jsxRuntime.jsx(SkeletonLine, {}), jsxRuntime.jsx(SkeletonLine, {}), jsxRuntime.jsx(SkeletonLine, {}), jsxRuntime.jsxs("div", {
47
+ className: "relative mt-1 flex items-center justify-center border-t border-modal-background-dark/15 pt-2 text-xs dark:border-modal-background-light/15",
48
+ children: [jsxRuntime.jsx("span", {
49
+ className: "invisible",
50
+ children: "MoonPay"
51
+ }), jsxRuntime.jsx("div", {
52
+ className: "absolute top-1/2 left-1/2 h-[1em] w-1/3 -translate-x-1/2 -translate-y-1/2 rounded bg-icon-background-light dark:bg-icon-background-dark"
53
+ })]
54
+ })]
55
+ });
56
+ }
57
+ if (!quote) {
58
+ return jsxRuntime.jsxs("div", {
59
+ className: clsx(panelClassName, "relative"),
60
+ children: [jsxRuntime.jsxs("div", {
61
+ "aria-hidden": true,
62
+ className: "invisible flex w-full flex-col gap-2",
63
+ children: [jsxRuntime.jsx("span", {
64
+ children: "Fiat amount"
65
+ }), jsxRuntime.jsx("span", {
66
+ children: "Crypto amount"
67
+ }), jsxRuntime.jsx("span", {
68
+ children: "Total fee"
69
+ }), jsxRuntime.jsx("div", {
70
+ className: "mt-1 border-t border-transparent pt-2 text-center text-xs",
71
+ children: "MoonPay"
72
+ })]
73
+ }), jsxRuntime.jsxs("div", {
74
+ className: "absolute inset-0 flex flex-col items-center justify-center gap-2 px-3 text-center text-icon-text-light dark:text-icon-text-dark",
75
+ children: [jsxRuntime.jsx("span", {
76
+ className: "flex size-12 items-center justify-center rounded-full bg-icon-background-light text-2xl font-bold dark:bg-icon-background-dark",
77
+ children: needsAmount ? ":(" // :(
78
+ : jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
79
+ icon: freeSolidSvgIcons.faQuestion,
80
+ className: "text-4xl"
81
+ })
82
+ }), jsxRuntime.jsx("p", {
83
+ className: "text-xs",
84
+ children: needsAmount ? "Please enter an input amount" : "No quotes found. Try a different amount, currency, or token."
85
+ })]
86
+ })]
87
+ });
88
+ }
89
+ const details = jsxRuntime.jsx(QuoteOption.QuoteSummary, {
90
+ quote: quote,
91
+ amount: amount,
92
+ amountBasis: amountBasis,
93
+ showChevron: canPick
94
+ });
95
+ if (!canPick) {
96
+ return jsxRuntime.jsx("div", {
97
+ className: panelClassName,
98
+ children: details
99
+ });
100
+ }
101
+ return jsxRuntime.jsx(Buttons.BaseButton, {
102
+ type: "button",
103
+ name: "fiat-onramp-quote",
104
+ onClick: () => openSheet({
105
+ key: "All quotes",
106
+ showTitle: false,
107
+ content: jsxRuntime.jsx(QuotePicker.QuotePicker, {
108
+ quotes: quotes,
109
+ amount: amount,
110
+ amountBasis: amountBasis,
111
+ yieldOn: yieldOn,
112
+ onSelect: next => {
113
+ onSelect(next);
114
+ closeSheet();
115
+ }
116
+ })
117
+ }),
118
+ className: clsx(panelClassName, "transition-all focus:outline-primary-light focus:dark:outline-primary-dark focus:outline-[1px] focus:outline-offset-0"),
119
+ children: details
120
+ });
121
+ }
122
+
123
+ exports.QuoteDetails = QuoteDetails;
124
+ //# sourceMappingURL=QuoteDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteDetails.js","sources":["../../../src/components/funding/QuoteDetails.tsx"],"sourcesContent":[null],"names":["SkeletonLine","_jsxs","className","children","_jsx","skeletonBarClass","panelClassName","QuoteDetails","props","quote","quotes","amount","amountBasis","yieldOn","loading","onSelect","openSheet","closeSheet","useModal","canPick","length","entered","Number","needsAmount","undefined","isFinite","clsx","FontAwesomeIcon","icon","faQuestion","details","QuoteSummary","showChevron","BaseButton","type","name","onClick","key","showTitle","content","QuotePicker","next"],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { faQuestion } from '@fortawesome/free-solid-svg-icons';
3
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
+ import clsx from 'clsx';
5
+ import { BaseButton } from '../design/Buttons.mjs';
6
+ import { useModal } from '../../providers/modal/Hook.mjs';
7
+ import { QuoteSummary } from './QuoteOption.mjs';
8
+ import { QuotePicker } from './QuotePicker.mjs';
9
+
10
+ function SkeletonLine() {
11
+ return jsxs("div", {
12
+ className: "relative",
13
+ children: [jsx("span", {
14
+ className: "invisible",
15
+ children: "Fiat amount"
16
+ }), jsx("div", {
17
+ className: skeletonBarClass
18
+ })]
19
+ });
20
+ }
21
+ var panelClassName = "flex w-full flex-col gap-2 rounded-md border border-modal-background-dark/20 dark:border-modal-background-light/20 bg-button-light dark:bg-button-dark px-3 py-3 text-left text-sm/[normal] box-border";
22
+ var skeletonBarClass = "absolute inset-x-0 top-1/2 h-[1em] -translate-y-1/2 rounded bg-icon-background-light dark:bg-icon-background-dark";
23
+ function QuoteDetails(props) {
24
+ var quote = props.quote,
25
+ quotes = props.quotes,
26
+ amount = props.amount,
27
+ amountBasis = props.amountBasis,
28
+ yieldOn = props.yieldOn,
29
+ loading = props.loading,
30
+ _onSelect = props.onSelect;
31
+ var _useModal = useModal(),
32
+ openSheet = _useModal.openSheet,
33
+ closeSheet = _useModal.closeSheet;
34
+ var canPick = !loading && !!quote && quotes.length > 1;
35
+ var entered = Number(amount);
36
+ var needsAmount = amount !== undefined && (!Number.isFinite(entered) || entered <= 0);
37
+ if (loading) {
38
+ return jsxs("div", {
39
+ "aria-hidden": true,
40
+ className: clsx(panelClassName, "pointer-events-none animate-pulse"),
41
+ children: [jsx(SkeletonLine, {}), jsx(SkeletonLine, {}), jsx(SkeletonLine, {}), jsxs("div", {
42
+ className: "relative mt-1 flex items-center justify-center border-t border-modal-background-dark/15 pt-2 text-xs dark:border-modal-background-light/15",
43
+ children: [jsx("span", {
44
+ className: "invisible",
45
+ children: "MoonPay"
46
+ }), jsx("div", {
47
+ className: "absolute top-1/2 left-1/2 h-[1em] w-1/3 -translate-x-1/2 -translate-y-1/2 rounded bg-icon-background-light dark:bg-icon-background-dark"
48
+ })]
49
+ })]
50
+ });
51
+ }
52
+ if (!quote) {
53
+ return jsxs("div", {
54
+ className: clsx(panelClassName, "relative"),
55
+ children: [jsxs("div", {
56
+ "aria-hidden": true,
57
+ className: "invisible flex w-full flex-col gap-2",
58
+ children: [jsx("span", {
59
+ children: "Fiat amount"
60
+ }), jsx("span", {
61
+ children: "Crypto amount"
62
+ }), jsx("span", {
63
+ children: "Total fee"
64
+ }), jsx("div", {
65
+ className: "mt-1 border-t border-transparent pt-2 text-center text-xs",
66
+ children: "MoonPay"
67
+ })]
68
+ }), jsxs("div", {
69
+ className: "absolute inset-0 flex flex-col items-center justify-center gap-2 px-3 text-center text-icon-text-light dark:text-icon-text-dark",
70
+ children: [jsx("span", {
71
+ className: "flex size-12 items-center justify-center rounded-full bg-icon-background-light text-2xl font-bold dark:bg-icon-background-dark",
72
+ children: needsAmount ? ":(" // :(
73
+ : jsx(FontAwesomeIcon, {
74
+ icon: faQuestion,
75
+ className: "text-4xl"
76
+ })
77
+ }), jsx("p", {
78
+ className: "text-xs",
79
+ children: needsAmount ? "Please enter an input amount" : "No quotes found. Try a different amount, currency, or token."
80
+ })]
81
+ })]
82
+ });
83
+ }
84
+ var details = jsx(QuoteSummary, {
85
+ quote: quote,
86
+ amount: amount,
87
+ amountBasis: amountBasis,
88
+ showChevron: canPick
89
+ });
90
+ if (!canPick) {
91
+ return jsx("div", {
92
+ className: panelClassName,
93
+ children: details
94
+ });
95
+ }
96
+ return jsx(BaseButton, {
97
+ type: "button",
98
+ name: "fiat-onramp-quote",
99
+ onClick: function onClick() {
100
+ return openSheet({
101
+ key: "All quotes",
102
+ showTitle: false,
103
+ content: jsx(QuotePicker, {
104
+ quotes: quotes,
105
+ amount: amount,
106
+ amountBasis: amountBasis,
107
+ yieldOn: yieldOn,
108
+ onSelect: function onSelect(next) {
109
+ _onSelect(next);
110
+ closeSheet();
111
+ }
112
+ })
113
+ });
114
+ },
115
+ className: clsx(panelClassName, "transition-all focus:outline-primary-light focus:dark:outline-primary-dark focus:outline-[1px] focus:outline-offset-0"),
116
+ children: details
117
+ });
118
+ }
119
+
120
+ export { QuoteDetails };
121
+ //# sourceMappingURL=QuoteDetails.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteDetails.mjs","sources":["../../../src/components/funding/QuoteDetails.tsx"],"sourcesContent":[null],"names":["SkeletonLine","_jsxs","className","children","_jsx","skeletonBarClass","panelClassName","QuoteDetails","props","quote","quotes","amount","amountBasis","yieldOn","loading","onSelect","_useModal","useModal","openSheet","closeSheet","canPick","length","entered","Number","needsAmount","undefined","isFinite","clsx","FontAwesomeIcon","icon","faQuestion","details","QuoteSummary","showChevron","BaseButton","type","name","onClick","key","showTitle","content","QuotePicker","next"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { v1FiatRampProvider, v1FiatOnRampQuote } from "@turnkey/core";
2
+ import { CoinbaseLogo, MeldLogo, MoonPayLogo } from "../design/Svg";
3
+ export declare const providerLogos: {
4
+ readonly FIAT_RAMP_PROVIDER_COINBASE: typeof CoinbaseLogo;
5
+ readonly FIAT_RAMP_PROVIDER_MOONPAY: typeof MoonPayLogo;
6
+ readonly FIAT_RAMP_PROVIDER_MELD: typeof MeldLogo;
7
+ };
8
+ export declare function providerName(provider: v1FiatRampProvider): "Coinbase" | "MoonPay" | "Meld";
9
+ export type QuoteAmountBasis = "fiat" | "crypto";
10
+ export type QuoteOptionProps = {
11
+ quote: v1FiatOnRampQuote;
12
+ amount?: string | undefined;
13
+ amountBasis?: QuoteAmountBasis | undefined;
14
+ onSelect: (quote: v1FiatOnRampQuote) => void;
15
+ };
16
+ export declare function QuoteOption(props: QuoteOptionProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function QuoteSummary(props: {
18
+ quote: v1FiatOnRampQuote;
19
+ amount?: string | undefined;
20
+ amountBasis?: QuoteAmountBasis | undefined;
21
+ showChevron?: boolean;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=QuoteOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteOption.d.ts","sourceRoot":"","sources":["../../../src/components/funding/QuoteOption.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUpE,eAAO,MAAM,aAAa;;;;CAI0C,CAAC;AAErE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,kBAAkB,mCAExD;AAOD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAalD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,2CA2CA"}
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
5
+ var reactFontawesome = require('@fortawesome/react-fontawesome');
6
+ var Buttons = require('../design/Buttons.js');
7
+ var Svg = require('../design/Svg.js');
8
+ var SupportedAssetsProvider = require('../../providers/SupportedAssetsProvider.js');
9
+ require('@turnkey/core');
10
+ require('viem');
11
+ var tokenSymbol = require('../../utils/funding/tokenSymbol.js');
12
+ require('@solana-program/system');
13
+ require('@solana-program/token');
14
+ require('@solana/kit');
15
+ require('@turnkey/encoding');
16
+
17
+ const providerNames = {
18
+ FIAT_RAMP_PROVIDER_COINBASE: "Coinbase",
19
+ FIAT_RAMP_PROVIDER_MOONPAY: "MoonPay",
20
+ FIAT_RAMP_PROVIDER_MELD: "Meld"
21
+ };
22
+ const providerLogos = {
23
+ FIAT_RAMP_PROVIDER_COINBASE: Svg.CoinbaseLogo,
24
+ FIAT_RAMP_PROVIDER_MOONPAY: Svg.MoonPayLogo,
25
+ FIAT_RAMP_PROVIDER_MELD: Svg.MeldLogo
26
+ };
27
+ function providerName(provider) {
28
+ return providerNames[provider];
29
+ }
30
+ function capitalize(value) {
31
+ const lower = value.toLowerCase();
32
+ return lower.charAt(0).toUpperCase() + lower.slice(1);
33
+ }
34
+ function QuoteOption(props) {
35
+ const {
36
+ quote,
37
+ amount,
38
+ amountBasis,
39
+ onSelect
40
+ } = props;
41
+ return jsxRuntime.jsx(Buttons.BaseButton, {
42
+ type: "button",
43
+ name: `onramp-quote-${quote.quoteId}`,
44
+ onClick: () => onSelect(quote),
45
+ className: "flex w-full flex-col gap-2 rounded-md border border-modal-background-dark/20 dark:border-modal-background-light/20 bg-button-light dark:bg-button-dark px-3 py-3 text-left text-sm box-border transition-all focus:outline-primary-light focus:dark:outline-primary-dark focus:outline-[1px] focus:outline-offset-0",
46
+ children: jsxRuntime.jsx(QuoteSummary, {
47
+ quote: quote,
48
+ amount: amount,
49
+ amountBasis: amountBasis
50
+ })
51
+ });
52
+ }
53
+ function QuoteSummary(props) {
54
+ const {
55
+ quote,
56
+ amount,
57
+ amountBasis = "fiat",
58
+ showChevron
59
+ } = props;
60
+ const {
61
+ assetsByCaip2
62
+ } = SupportedAssetsProvider.useSupportedAssets();
63
+ const compared = amount === undefined ? undefined : compareFiatAmount(amountBasis === "crypto" ? quote.cryptoAmount : quote.fiatAmount, amount);
64
+ const warning = compared ? `${compared} than input amount` : undefined;
65
+ const ProviderLogo = providerLogos[quote.provider];
66
+ const name = providerName(quote.provider);
67
+ const label = quote.provider === "FIAT_RAMP_PROVIDER_MELD" && quote.serviceProvider ? `${capitalize(quote.serviceProvider)} (${name})` : name;
68
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
69
+ children: [jsxRuntime.jsx(QuoteRow, {
70
+ label: "Fiat amount",
71
+ value: formatFiat(quote.fiatAmount, quote.fiatCurrencyCode),
72
+ warning: amountBasis === "fiat" ? warning : undefined
73
+ }), jsxRuntime.jsx(QuoteRow, {
74
+ label: "Crypto amount",
75
+ value: `${quote.cryptoAmount.display} ${tokenSymbol.tokenSymbol(quote.caip19, assetsByCaip2)}`,
76
+ warning: amountBasis === "crypto" ? warning : undefined
77
+ }), jsxRuntime.jsx(QuoteRow, {
78
+ label: "Total fee",
79
+ value: formatFiat(quote.totalFee, quote.fiatCurrencyCode)
80
+ }), jsxRuntime.jsxs("div", {
81
+ className: "mt-1 flex items-center justify-center gap-1.5 border-t border-modal-background-dark/15 pt-2 text-xs text-icon-text-light dark:border-modal-background-light/15 dark:text-icon-text-dark",
82
+ children: [ProviderLogo && jsxRuntime.jsx(ProviderLogo, {
83
+ className: "size-4 shrink-0"
84
+ }), jsxRuntime.jsx("span", {
85
+ children: label
86
+ }), showChevron && jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
87
+ icon: freeSolidSvgIcons.faChevronRight,
88
+ className: "size-3"
89
+ })]
90
+ })]
91
+ });
92
+ }
93
+ function QuoteRow(props) {
94
+ const {
95
+ label,
96
+ value,
97
+ warning
98
+ } = props;
99
+ return jsxRuntime.jsxs("div", {
100
+ className: "flex w-full items-center justify-between gap-3",
101
+ children: [jsxRuntime.jsx("span", {
102
+ className: "text-icon-text-light dark:text-icon-text-dark",
103
+ children: label
104
+ }), jsxRuntime.jsxs("span", {
105
+ className: "flex min-w-0 items-center justify-end gap-1.5",
106
+ children: [warning && jsxRuntime.jsxs("span", {
107
+ className: "flex items-center gap-1 text-xs text-danger-light dark:text-danger-dark",
108
+ children: [jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
109
+ icon: freeSolidSvgIcons.faTriangleExclamation,
110
+ className: "size-3 shrink-0"
111
+ }), warning]
112
+ }), jsxRuntime.jsx("span", {
113
+ className: "truncate text-modal-text-light dark:text-modal-text-dark",
114
+ children: value
115
+ })]
116
+ })]
117
+ });
118
+ }
119
+ function formatFiat(amount, currency) {
120
+ const code = currency.slice("FIAT_RAMP_CURRENCY_".length);
121
+ const value = Number(amount.display);
122
+ if (!Number.isFinite(value)) return amount.display;
123
+ return new Intl.NumberFormat("en", {
124
+ style: "currency",
125
+ currency: code,
126
+ currencyDisplay: "narrowSymbol"
127
+ }).format(value);
128
+ }
129
+ function compareFiatAmount(quoted, input) {
130
+ const quotedAtomic = toAtomic(quoted.display, quoted.decimals);
131
+ const inputAtomic = toAtomic(input, quoted.decimals);
132
+ if (quotedAtomic === undefined || inputAtomic === undefined || quotedAtomic === inputAtomic) {
133
+ return undefined;
134
+ }
135
+ return quotedAtomic > inputAtomic ? "Higher" : "Lower";
136
+ }
137
+ function toAtomic(value, decimals) {
138
+ const trimmed = value.trim();
139
+ if (!/^\d+(\.\d+)?$/.test(trimmed)) return undefined;
140
+ const [whole = "0", fraction = ""] = trimmed.split(".");
141
+ const digits = `${fraction}${"0".repeat(decimals)}`.slice(0, decimals);
142
+ try {
143
+ return BigInt(`${whole || "0"}${digits}`);
144
+ } catch {
145
+ return undefined;
146
+ }
147
+ }
148
+
149
+ exports.QuoteOption = QuoteOption;
150
+ exports.QuoteSummary = QuoteSummary;
151
+ exports.providerLogos = providerLogos;
152
+ exports.providerName = providerName;
153
+ //# sourceMappingURL=QuoteOption.js.map