@turnkey/react-wallet-kit 2.7.1 → 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.
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +10 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -1
- package/dist/components/auth/Action.d.ts +1 -0
- package/dist/components/auth/Action.d.ts.map +1 -1
- package/dist/components/auth/Action.js +10 -3
- package/dist/components/auth/Action.js.map +1 -1
- package/dist/components/auth/Action.mjs +10 -3
- package/dist/components/auth/Action.mjs.map +1 -1
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +2 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -1
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +7 -4
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -1
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +22 -12
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -1
- package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -1
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js +2 -1
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -1
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +2 -2
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -1
- package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -1
- package/dist/components/auth/wallet/MobileWalletConnectScreen.js +3 -1
- package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -1
- package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +16 -8
- package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -1
- package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +2 -1
- package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -1
- package/dist/components/auth/wallet/ShowAllWalletsScreen.js +8 -3
- package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -1
- package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +8 -3
- package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -1
- package/dist/components/design/Success.d.ts +1 -1
- package/dist/components/design/Success.d.ts.map +1 -1
- package/dist/components/design/Success.js +2 -2
- package/dist/components/design/Success.js.map +1 -1
- package/dist/components/design/Success.mjs +2 -2
- package/dist/components/design/Success.mjs.map +1 -1
- package/dist/components/design/Svg.d.ts +1 -0
- package/dist/components/design/Svg.d.ts.map +1 -1
- package/dist/components/design/Svg.js +32 -12
- package/dist/components/design/Svg.js.map +1 -1
- package/dist/components/design/Svg.mjs +32 -13
- package/dist/components/design/Svg.mjs.map +1 -1
- package/dist/components/design/TabNav.d.ts +13 -0
- package/dist/components/design/TabNav.d.ts.map +1 -0
- package/dist/components/design/TabNav.js +64 -0
- package/dist/components/design/TabNav.js.map +1 -0
- package/dist/components/design/TabNav.mjs +81 -0
- package/dist/components/design/TabNav.mjs.map +1 -0
- package/dist/components/funding/CryptoAmountInput.d.ts +11 -0
- package/dist/components/funding/CryptoAmountInput.d.ts.map +1 -0
- package/dist/components/funding/CryptoAmountInput.js +82 -0
- package/dist/components/funding/CryptoAmountInput.js.map +1 -0
- package/dist/components/funding/CryptoAmountInput.mjs +87 -0
- package/dist/components/funding/CryptoAmountInput.mjs.map +1 -0
- package/dist/components/funding/CurrencyDropdown.d.ts +8 -0
- package/dist/components/funding/CurrencyDropdown.d.ts.map +1 -0
- package/dist/components/funding/CurrencyDropdown.js +132 -0
- package/dist/components/funding/CurrencyDropdown.js.map +1 -0
- package/dist/components/funding/CurrencyDropdown.mjs +132 -0
- package/dist/components/funding/CurrencyDropdown.mjs.map +1 -0
- package/dist/components/funding/FiatAmountInput.d.ts +11 -0
- package/dist/components/funding/FiatAmountInput.d.ts.map +1 -0
- package/dist/components/funding/FiatAmountInput.js +94 -0
- package/dist/components/funding/FiatAmountInput.js.map +1 -0
- package/dist/components/funding/FiatAmountInput.mjs +105 -0
- package/dist/components/funding/FiatAmountInput.mjs.map +1 -0
- package/dist/components/funding/OffRamp.d.ts +3 -0
- package/dist/components/funding/OffRamp.d.ts.map +1 -0
- package/dist/components/funding/OffRamp.js +31 -0
- package/dist/components/funding/OffRamp.js.map +1 -0
- package/dist/components/funding/OffRamp.mjs +30 -0
- package/dist/components/funding/OffRamp.mjs.map +1 -0
- package/dist/components/funding/OffRampAmount.d.ts +22 -0
- package/dist/components/funding/OffRampAmount.d.ts.map +1 -0
- package/dist/components/funding/OffRampAmount.js +304 -0
- package/dist/components/funding/OffRampAmount.js.map +1 -0
- package/dist/components/funding/OffRampAmount.mjs +376 -0
- package/dist/components/funding/OffRampAmount.mjs.map +1 -0
- package/dist/components/funding/OffRampDeposit.d.ts +22 -0
- package/dist/components/funding/OffRampDeposit.d.ts.map +1 -0
- package/dist/components/funding/OffRampDeposit.js +455 -0
- package/dist/components/funding/OffRampDeposit.js.map +1 -0
- package/dist/components/funding/OffRampDeposit.mjs +551 -0
- package/dist/components/funding/OffRampDeposit.mjs.map +1 -0
- package/dist/components/funding/OffRampReturn.d.ts +2 -0
- package/dist/components/funding/OffRampReturn.d.ts.map +1 -0
- package/dist/components/funding/OffRampReturn.js +144 -0
- package/dist/components/funding/OffRampReturn.js.map +1 -0
- package/dist/components/funding/OffRampReturn.mjs +146 -0
- package/dist/components/funding/OffRampReturn.mjs.map +1 -0
- package/dist/components/funding/OnRamp.d.ts +7 -0
- package/dist/components/funding/OnRamp.d.ts.map +1 -0
- package/dist/components/funding/OnRamp.js +64 -0
- package/dist/components/funding/OnRamp.js.map +1 -0
- package/dist/components/funding/OnRamp.mjs +58 -0
- package/dist/components/funding/OnRamp.mjs.map +1 -0
- package/dist/components/funding/OnRampAmount.d.ts +21 -0
- package/dist/components/funding/OnRampAmount.d.ts.map +1 -0
- package/dist/components/funding/OnRampAmount.js +229 -0
- package/dist/components/funding/OnRampAmount.js.map +1 -0
- package/dist/components/funding/OnRampAmount.mjs +312 -0
- package/dist/components/funding/OnRampAmount.mjs.map +1 -0
- package/dist/components/funding/OnRampCash.d.ts +3 -0
- package/dist/components/funding/OnRampCash.d.ts.map +1 -0
- package/dist/components/funding/OnRampCash.js +26 -0
- package/dist/components/funding/OnRampCash.js.map +1 -0
- package/dist/components/funding/OnRampCash.mjs +25 -0
- package/dist/components/funding/OnRampCash.mjs.map +1 -0
- package/dist/components/funding/OnRampCrypto.d.ts +11 -0
- package/dist/components/funding/OnRampCrypto.d.ts.map +1 -0
- package/dist/components/funding/OnRampCrypto.js +126 -0
- package/dist/components/funding/OnRampCrypto.js.map +1 -0
- package/dist/components/funding/OnRampCrypto.mjs +148 -0
- package/dist/components/funding/OnRampCrypto.mjs.map +1 -0
- package/dist/components/funding/OnRampCryptoSend.d.ts +15 -0
- package/dist/components/funding/OnRampCryptoSend.d.ts.map +1 -0
- package/dist/components/funding/OnRampCryptoSend.js +251 -0
- package/dist/components/funding/OnRampCryptoSend.js.map +1 -0
- package/dist/components/funding/OnRampCryptoSend.mjs +323 -0
- package/dist/components/funding/OnRampCryptoSend.mjs.map +1 -0
- package/dist/components/funding/OnRampCryptoStatus.d.ts +14 -0
- package/dist/components/funding/OnRampCryptoStatus.d.ts.map +1 -0
- package/dist/components/funding/OnRampCryptoStatus.js +153 -0
- package/dist/components/funding/OnRampCryptoStatus.js.map +1 -0
- package/dist/components/funding/OnRampCryptoStatus.mjs +272 -0
- package/dist/components/funding/OnRampCryptoStatus.mjs.map +1 -0
- package/dist/components/funding/OnRampExternalAccountSelector.d.ts +11 -0
- package/dist/components/funding/OnRampExternalAccountSelector.d.ts.map +1 -0
- package/dist/components/funding/OnRampExternalAccountSelector.js +95 -0
- package/dist/components/funding/OnRampExternalAccountSelector.js.map +1 -0
- package/dist/components/funding/OnRampExternalAccountSelector.mjs +109 -0
- package/dist/components/funding/OnRampExternalAccountSelector.mjs.map +1 -0
- package/dist/components/funding/OnRampExternalWallet.d.ts +12 -0
- package/dist/components/funding/OnRampExternalWallet.d.ts.map +1 -0
- package/dist/components/funding/OnRampExternalWallet.js +218 -0
- package/dist/components/funding/OnRampExternalWallet.js.map +1 -0
- package/dist/components/funding/OnRampExternalWallet.mjs +303 -0
- package/dist/components/funding/OnRampExternalWallet.mjs.map +1 -0
- package/dist/components/funding/OnRampStatus.d.ts +15 -0
- package/dist/components/funding/OnRampStatus.d.ts.map +1 -0
- package/dist/components/funding/OnRampStatus.js +114 -0
- package/dist/components/funding/OnRampStatus.js.map +1 -0
- package/dist/components/funding/OnRampStatus.mjs +166 -0
- package/dist/components/funding/OnRampStatus.mjs.map +1 -0
- package/dist/components/funding/PaymentMethods.d.ts +35 -0
- package/dist/components/funding/PaymentMethods.d.ts.map +1 -0
- package/dist/components/funding/PaymentMethods.js +173 -0
- package/dist/components/funding/PaymentMethods.js.map +1 -0
- package/dist/components/funding/PaymentMethods.mjs +180 -0
- package/dist/components/funding/PaymentMethods.mjs.map +1 -0
- package/dist/components/funding/QuoteDetails.d.ts +13 -0
- package/dist/components/funding/QuoteDetails.d.ts.map +1 -0
- package/dist/components/funding/QuoteDetails.js +124 -0
- package/dist/components/funding/QuoteDetails.js.map +1 -0
- package/dist/components/funding/QuoteDetails.mjs +121 -0
- package/dist/components/funding/QuoteDetails.mjs.map +1 -0
- package/dist/components/funding/QuoteOption.d.ts +23 -0
- package/dist/components/funding/QuoteOption.d.ts.map +1 -0
- package/dist/components/funding/QuoteOption.js +153 -0
- package/dist/components/funding/QuoteOption.js.map +1 -0
- package/dist/components/funding/QuoteOption.mjs +150 -0
- package/dist/components/funding/QuoteOption.mjs.map +1 -0
- package/dist/components/funding/QuotePicker.d.ts +13 -0
- package/dist/components/funding/QuotePicker.d.ts.map +1 -0
- package/dist/components/funding/QuotePicker.js +49 -0
- package/dist/components/funding/QuotePicker.js.map +1 -0
- package/dist/components/funding/QuotePicker.mjs +48 -0
- package/dist/components/funding/QuotePicker.mjs.map +1 -0
- package/dist/components/funding/TokenSelect.d.ts +18 -0
- package/dist/components/funding/TokenSelect.d.ts.map +1 -0
- package/dist/components/funding/TokenSelect.js +198 -0
- package/dist/components/funding/TokenSelect.js.map +1 -0
- package/dist/components/funding/TokenSelect.mjs +210 -0
- package/dist/components/funding/TokenSelect.mjs.map +1 -0
- package/dist/components/funding/offRampRedirect.d.ts +61 -0
- package/dist/components/funding/offRampRedirect.d.ts.map +1 -0
- package/dist/components/funding/offRampRedirect.js +282 -0
- package/dist/components/funding/offRampRedirect.js.map +1 -0
- package/dist/components/funding/offRampRedirect.mjs +274 -0
- package/dist/components/funding/offRampRedirect.mjs.map +1 -0
- package/dist/components/send-transaction/SendTransaction.d.ts.map +1 -1
- package/dist/components/send-transaction/SendTransaction.js +8 -6
- package/dist/components/send-transaction/SendTransaction.js.map +1 -1
- package/dist/components/send-transaction/SendTransaction.mjs +8 -6
- package/dist/components/send-transaction/SendTransaction.mjs.map +1 -1
- package/dist/components/send-transaction/helpers.d.ts.map +1 -1
- package/dist/components/send-transaction/helpers.js +4 -0
- package/dist/components/send-transaction/helpers.js.map +1 -1
- package/dist/components/send-transaction/helpers.mjs +4 -0
- package/dist/components/send-transaction/helpers.mjs.map +1 -1
- package/dist/components/sign/Message.d.ts.map +1 -1
- package/dist/components/sign/Message.js +2 -1
- package/dist/components/sign/Message.js.map +1 -1
- package/dist/components/sign/Message.mjs +2 -2
- package/dist/components/sign/Message.mjs.map +1 -1
- package/dist/providers/SupportedAssetsProvider.d.ts +18 -0
- package/dist/providers/SupportedAssetsProvider.d.ts.map +1 -0
- package/dist/providers/SupportedAssetsProvider.js +71 -0
- package/dist/providers/SupportedAssetsProvider.js.map +1 -0
- package/dist/providers/SupportedAssetsProvider.mjs +114 -0
- package/dist/providers/SupportedAssetsProvider.mjs.map +1 -0
- package/dist/providers/TurnkeyProvider.d.ts.map +1 -1
- package/dist/providers/TurnkeyProvider.js +2 -1
- package/dist/providers/TurnkeyProvider.js.map +1 -1
- package/dist/providers/TurnkeyProvider.mjs +2 -1
- package/dist/providers/TurnkeyProvider.mjs.map +1 -1
- package/dist/providers/client/Provider.d.ts.map +1 -1
- package/dist/providers/client/Provider.js +98 -153
- package/dist/providers/client/Provider.js.map +1 -1
- package/dist/providers/client/Provider.mjs +214 -328
- package/dist/providers/client/Provider.mjs.map +1 -1
- package/dist/providers/client/Types.d.ts +37 -12
- package/dist/providers/client/Types.d.ts.map +1 -1
- package/dist/providers/client/Types.js.map +1 -1
- package/dist/providers/client/Types.mjs.map +1 -1
- package/dist/providers/modal/Provider.d.ts +1 -0
- package/dist/providers/modal/Provider.d.ts.map +1 -1
- package/dist/providers/modal/Provider.js +12 -0
- package/dist/providers/modal/Provider.js.map +1 -1
- package/dist/providers/modal/Provider.mjs +15 -0
- package/dist/providers/modal/Provider.mjs.map +1 -1
- package/dist/providers/modal/Root.d.ts.map +1 -1
- package/dist/providers/modal/Root.js +16 -14
- package/dist/providers/modal/Root.js.map +1 -1
- package/dist/providers/modal/Root.mjs +16 -14
- package/dist/providers/modal/Root.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/method-types.d.ts +21 -9
- package/dist/types/method-types.d.ts.map +1 -1
- package/dist/utils/funding/buildCryptoTransfer.d.ts +41 -0
- package/dist/utils/funding/buildCryptoTransfer.d.ts.map +1 -0
- package/dist/utils/funding/buildCryptoTransfer.js +134 -0
- package/dist/utils/funding/buildCryptoTransfer.js.map +1 -0
- package/dist/utils/funding/buildCryptoTransfer.mjs +128 -0
- package/dist/utils/funding/buildCryptoTransfer.mjs.map +1 -0
- package/dist/utils/funding/chainLabel.d.ts +2 -0
- package/dist/utils/funding/chainLabel.d.ts.map +1 -0
- package/dist/utils/funding/chainLabel.js +19 -0
- package/dist/utils/funding/chainLabel.js.map +1 -0
- package/dist/utils/funding/chainLabel.mjs +18 -0
- package/dist/utils/funding/chainLabel.mjs.map +1 -0
- package/dist/utils/funding/depositPlan.d.ts +28 -0
- package/dist/utils/funding/depositPlan.d.ts.map +1 -0
- package/dist/utils/funding/depositPlan.js +127 -0
- package/dist/utils/funding/depositPlan.js.map +1 -0
- package/dist/utils/funding/depositPlan.mjs +120 -0
- package/dist/utils/funding/depositPlan.mjs.map +1 -0
- package/dist/utils/funding/index.d.ts +8 -0
- package/dist/utils/funding/index.d.ts.map +1 -0
- package/dist/utils/funding/onRampTokens.d.ts +6 -0
- package/dist/utils/funding/onRampTokens.d.ts.map +1 -0
- package/dist/utils/funding/onRampTokens.js +21 -0
- package/dist/utils/funding/onRampTokens.js.map +1 -0
- package/dist/utils/funding/onRampTokens.mjs +26 -0
- package/dist/utils/funding/onRampTokens.mjs.map +1 -0
- package/dist/utils/funding/rankQuotes.d.ts +7 -0
- package/dist/utils/funding/rankQuotes.d.ts.map +1 -0
- package/dist/utils/funding/rankQuotes.js +37 -0
- package/dist/utils/funding/rankQuotes.js.map +1 -0
- package/dist/utils/funding/rankQuotes.mjs +50 -0
- package/dist/utils/funding/rankQuotes.mjs.map +1 -0
- package/dist/utils/funding/sendCryptoTransfer.d.ts +26 -0
- package/dist/utils/funding/sendCryptoTransfer.d.ts.map +1 -0
- package/dist/utils/funding/sendCryptoTransfer.js +281 -0
- package/dist/utils/funding/sendCryptoTransfer.js.map +1 -0
- package/dist/utils/funding/sendCryptoTransfer.mjs +405 -0
- package/dist/utils/funding/sendCryptoTransfer.mjs.map +1 -0
- package/dist/utils/funding/tokenSymbol.d.ts +7 -0
- package/dist/utils/funding/tokenSymbol.d.ts.map +1 -0
- package/dist/utils/funding/tokenSymbol.js +32 -0
- package/dist/utils/funding/tokenSymbol.js.map +1 -0
- package/dist/utils/funding/tokenSymbol.mjs +31 -0
- package/dist/utils/funding/tokenSymbol.mjs.map +1 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +5 -0
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/utils.mjs +7 -1
- package/dist/utils/utils.mjs.map +1 -1
- package/package.json +7 -3
- package/dist/components/onramp/OnRamp.d.ts +0 -14
- package/dist/components/onramp/OnRamp.d.ts.map +0 -1
- package/dist/components/onramp/OnRamp.js +0 -61
- package/dist/components/onramp/OnRamp.js.map +0 -1
- package/dist/components/onramp/OnRamp.mjs +0 -79
- 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":";;;;;;;;;AASA,SAASA,YAAYA,GAAA;EACnB,OACEC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,UAAU;AAAAC,IAAAA,QAAA,EAAA,CACvBC;AAAMF,MAAAA,SAAS,EAAC,WAAW;AAAAC,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAmB,EAC9CC;AAAKF,MAAAA,SAAS,EAAEG;AAAgB,KAAA,CAAI;AAAA,GAAA,CAChC;AAEV;AAEA,IAAMC,cAAc,GAClB,wMAAwM;AAE1M,IAAMD,gBAAgB,GACpB,mHAAmH;AAY/G,SAAUE,YAAYA,CAACC,KAAwB,EAAA;AACnD,EAAA,IAAQC,KAAK,GACXD,KAAK,CADCC,KAAK;IAAEC,MAAM,GACnBF,KAAK,CADQE,MAAM;IAAEC,MAAM,GAC3BH,KAAK,CADgBG,MAAM;IAAEC,WAAW,GACxCJ,KAAK,CADwBI,WAAW;IAAEC,OAAO,GACjDL,KAAK,CADqCK,OAAO;IAAEC,OAAO,GAC1DN,KAAK,CAD8CM,OAAO;IAAEC,SAAQ,GACpEP,KAAK,CADuDO,QAAQ;AAEtE,EAAA,IAAAC,SAAA,GAAkCC,QAAQ,EAAE;IAApCC,SAAS,GAAAF,SAAA,CAATE,SAAS;IAAEC,UAAU,GAAAH,SAAA,CAAVG,UAAU;AAC7B,EAAA,IAAMC,OAAO,GAAG,CAACN,OAAO,IAAI,CAAC,CAACL,KAAK,IAAIC,MAAM,CAACW,MAAM,GAAG,CAAC;AACxD,EAAA,IAAMC,OAAO,GAAGC,MAAM,CAACZ,MAAM,CAAC;AAC9B,EAAA,IAAMa,WAAW,GACfb,MAAM,KAAKc,SAAS,KAAK,CAACF,MAAM,CAACG,QAAQ,CAACJ,OAAO,CAAC,IAAIA,OAAO,IAAI,CAAC,CAAC;AAErE,EAAA,IAAIR,OAAO,EAAE;IACX,OACEb,IAAA,CAAA,KAAA,EAAA;AAAA,MAAA,aAAA,EAAA,IAAA;AAEEC,MAAAA,SAAS,EAAEyB,IAAI,CAACrB,cAAc,EAAE,mCAAmC,CAAC;AAAAH,MAAAA,QAAA,EAAA,CAEpEC,GAAA,CAACJ,YAAY,EAAA,EAAA,CAAG,EAChBI,IAACJ,YAAY,EAAA,EAAA,CAAG,EAChBI,GAAA,CAACJ,YAAY,EAAA,EAAA,CAAG,EAChBC;AAAKC,QAAAA,SAAS,EAAC,4IAA4I;AAAAC,QAAAA,QAAA,EAAA,CACzJC,GAAA,CAAA,MAAA,EAAA;AAAMF,UAAAA,SAAS,EAAC,WAAW;;UAAe,EAC1CE,GAAA,CAAA,KAAA,EAAA;AAAKF,UAAAA,SAAS,EAAC;UAA4I;AAAA,OAAA,CACvJ;AAAA,KAAA,CACF;AAEV,EAAA;EAEA,IAAI,CAACO,KAAK,EAAE;IACV,OACER;AAAKC,MAAAA,SAAS,EAAEyB,IAAI,CAACrB,cAAc,EAAE,UAAU,CAAC;iBAC9CL,IAAA,CAAA,KAAA,EAAA;AAAA,QAAA,aAAA,EAAA,IAAA;AAAiBC,QAAAA,SAAS,EAAC,sCAAsC;AAAAC,QAAAA,QAAA,EAAA,CAC/DC;;UAAwB,EACxBA,GAAA,CAAA,MAAA,EAAA;AAAAD,UAAAA,QAAA,EAAA;AAAA,SAAA,CAA0B,EAC1BC,GAAA,CAAA,MAAA,EAAA;AAAAD,UAAAA,QAAA,EAAA;AAAA,SAAA,CAAsB,EACtBC,GAAA,CAAA,KAAA,EAAA;AAAKF,UAAAA,SAAS,EAAC,2DAA2D;;UAEpE;AAAA,OAAA,CACF,EACND;AAAKC,QAAAA,SAAS,EAAC,iIAAiI;AAAAC,QAAAA,QAAA,EAAA,CAC9IC,GAAA,CAAA,MAAA,EAAA;AAAMF,UAAAA,SAAS,EAAC,gIAAgI;oBAC7IsB,WAAW,GACV,IAAI;YAEJpB,GAAA,CAACwB,eAAe,EAAA;AAACC,YAAAA,IAAI,EAAEC,UAAU;AAAE5B,YAAAA,SAAS,EAAC;WAAU;AACxD,SAAA,CACI,EACPE;AAAGF,UAAAA,SAAS,EAAC,SAAS;AAAAC,UAAAA,QAAA,EACnBqB,WAAW,GACR,8BAA8B,GAC9B;AAA8D,SAAA,CAChE;AAAA,OAAA,CACA;AAAA,KAAA,CACF;AAEV,EAAA;AAEA,EAAA,IAAMO,OAAO,GACX3B,GAAA,CAAC4B,YAAY,EAAA;AACXvB,IAAAA,KAAK,EAAEA,KAAK;AACZE,IAAAA,MAAM,EAAEA,MAAM;AACdC,IAAAA,WAAW,EAAEA,WAAW;AACxBqB,IAAAA,WAAW,EAAEb;AAAO,GAAA,CAEvB;EAED,IAAI,CAACA,OAAO,EAAE;IACZ,OAAOhB;AAAKF,MAAAA,SAAS,EAAEI,cAAc;AAAAH,MAAAA,QAAA,EAAG4B;MAAc;AACxD,EAAA;EAEA,OACE3B,GAAA,CAAC8B,UAAU;AACTC,IAAAA,IAAI,EAAC,QAAQ;AACbC,IAAAA,IAAI,EAAC,mBAAmB;IACxBC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OACLnB,SAAS,CAAC;AACRoB,QAAAA,GAAG,EAAE,YAAY;AACjBC,QAAAA,SAAS,EAAE,KAAK;AAChBC,QAAAA,OAAO,EACLpC,GAAA,CAACqC,WAAW,EAAA;AACV/B,UAAAA,MAAM,EAAEA,MAAM;AACdC,UAAAA,MAAM,EAAEA,MAAM;AACdC,UAAAA,WAAW,EAAEA,WAAW;AACxBC,UAAAA,OAAO,EAAEA,OAAO;AAChBE,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAG2B,IAAI,EAAI;YACjB3B,SAAQ,CAAC2B,IAAI,CAAC;AACdvB,YAAAA,UAAU,EAAE;AACd,UAAA;;AAGL,OAAA,CAAC;AAAA,IAAA,CAAA;AAEJjB,IAAAA,SAAS,EAAEyB,IAAI,CACbrB,cAAc,EACd,uHAAuH,CACxH;AAAAH,IAAAA,QAAA,EAEA4B;AAAO,GAAA,CACG;AAEjB;;;;"}
|
|
@@ -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
|