@daimo/sdk 1.4.2 → 1.5.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/client/createDaimoClient.d.ts +24 -6
- package/dist/client/createDaimoClient.d.ts.map +1 -1
- package/dist/client/createDaimoClient.js +47 -0
- package/dist/client/createDaimoClient.js.map +1 -1
- package/dist/common/account.d.ts +160 -21
- package/dist/common/account.d.ts.map +1 -1
- package/dist/common/account.js +12 -1
- package/dist/common/account.js.map +1 -1
- package/dist/common/api.d.ts +25 -12
- package/dist/common/api.d.ts.map +1 -1
- package/dist/common/api.js +11 -1
- package/dist/common/api.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/session.d.ts +27 -3
- package/dist/common/session.d.ts.map +1 -1
- package/dist/common/session.js.map +1 -1
- package/dist/common/theme.d.ts +47 -0
- package/dist/common/theme.d.ts.map +1 -0
- package/dist/common/theme.js +230 -0
- package/dist/common/theme.js.map +1 -0
- package/dist/common/token.d.ts +6 -0
- package/dist/common/token.d.ts.map +1 -1
- package/dist/common/token.js +47 -1
- package/dist/common/token.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web/accountWallet.d.ts +15 -0
- package/dist/web/accountWallet.d.ts.map +1 -0
- package/dist/web/accountWallet.js +44 -0
- package/dist/web/accountWallet.js.map +1 -0
- package/dist/web/api/index.d.ts +17 -11
- package/dist/web/api/index.d.ts.map +1 -1
- package/dist/web/api/navTree.d.ts +27 -5
- package/dist/web/api/navTree.d.ts.map +1 -1
- package/dist/web/components/ApplePayLogo.d.ts +9 -0
- package/dist/web/components/ApplePayLogo.d.ts.map +1 -0
- package/dist/web/components/ApplePayLogo.js +15 -0
- package/dist/web/components/ApplePayLogo.js.map +1 -0
- package/dist/web/components/ChooseChainPage.d.ts.map +1 -1
- package/dist/web/components/ChooseChainPage.js +3 -3
- package/dist/web/components/ChooseChainPage.js.map +1 -1
- package/dist/web/components/ChooseOptionPage.d.ts.map +1 -1
- package/dist/web/components/ChooseOptionPage.js +20 -7
- package/dist/web/components/ChooseOptionPage.js.map +1 -1
- package/dist/web/components/ChooseWalletPage.js +12 -3
- package/dist/web/components/ChooseWalletPage.js.map +1 -1
- package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
- package/dist/web/components/ConfirmationPage.js +2 -1
- package/dist/web/components/ConfirmationPage.js.map +1 -1
- package/dist/web/components/ConfirmationSpinner.d.ts +3 -1
- package/dist/web/components/ConfirmationSpinner.d.ts.map +1 -1
- package/dist/web/components/ConfirmationSpinner.js +7 -2
- package/dist/web/components/ConfirmationSpinner.js.map +1 -1
- package/dist/web/components/DaimoFrame.d.ts +51 -0
- package/dist/web/components/DaimoFrame.d.ts.map +1 -0
- package/dist/web/components/DaimoFrame.js +173 -0
- package/dist/web/components/DaimoFrame.js.map +1 -0
- package/dist/web/components/DaimoModal.d.ts.map +1 -1
- package/dist/web/components/DaimoModal.js +127 -52
- package/dist/web/components/DaimoModal.js.map +1 -1
- package/dist/web/components/DaimoModalPreview.d.ts +11 -0
- package/dist/web/components/DaimoModalPreview.d.ts.map +1 -0
- package/dist/web/components/DaimoModalPreview.js +98 -0
- package/dist/web/components/DaimoModalPreview.js.map +1 -0
- package/dist/web/components/DeeplinkPage.d.ts.map +1 -1
- package/dist/web/components/DeeplinkPage.js +4 -3
- package/dist/web/components/DeeplinkPage.js.map +1 -1
- package/dist/web/components/ErrorPage.d.ts.map +1 -1
- package/dist/web/components/ErrorPage.js +4 -1
- package/dist/web/components/ErrorPage.js.map +1 -1
- package/dist/web/components/ExchangePage.d.ts.map +1 -1
- package/dist/web/components/ExchangePage.js +8 -23
- package/dist/web/components/ExchangePage.js.map +1 -1
- package/dist/web/components/ExternalPaymentPage.d.ts +22 -0
- package/dist/web/components/ExternalPaymentPage.d.ts.map +1 -0
- package/dist/web/components/ExternalPaymentPage.js +24 -0
- package/dist/web/components/ExternalPaymentPage.js.map +1 -0
- package/dist/web/components/ModalChrome.d.ts +28 -0
- package/dist/web/components/ModalChrome.d.ts.map +1 -0
- package/dist/web/components/ModalChrome.js +64 -0
- package/dist/web/components/ModalChrome.js.map +1 -0
- package/dist/web/components/ModalSkeleton.d.ts.map +1 -1
- package/dist/web/components/ModalSkeleton.js +2 -4
- package/dist/web/components/ModalSkeleton.js.map +1 -1
- package/dist/web/components/SelectAmountPage.d.ts.map +1 -1
- package/dist/web/components/SelectAmountPage.js +2 -2
- package/dist/web/components/SelectAmountPage.js.map +1 -1
- package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
- package/dist/web/components/SelectTokenPage.js +8 -7
- package/dist/web/components/SelectTokenPage.js.map +1 -1
- package/dist/web/components/Skeleton.d.ts +19 -0
- package/dist/web/components/Skeleton.d.ts.map +1 -0
- package/dist/web/components/Skeleton.js +21 -0
- package/dist/web/components/Skeleton.js.map +1 -0
- package/dist/web/components/StripeOnrampPage.d.ts +3 -27
- package/dist/web/components/StripeOnrampPage.d.ts.map +1 -1
- package/dist/web/components/StripeOnrampPage.js +7 -116
- package/dist/web/components/StripeOnrampPage.js.map +1 -1
- package/dist/web/components/TokenAmountEntry.d.ts +9 -3
- package/dist/web/components/TokenAmountEntry.d.ts.map +1 -1
- package/dist/web/components/TokenAmountEntry.js +49 -27
- package/dist/web/components/TokenAmountEntry.js.map +1 -1
- package/dist/web/components/WaitingDepositAddressPage.d.ts +39 -0
- package/dist/web/components/WaitingDepositAddressPage.d.ts.map +1 -1
- package/dist/web/components/WaitingDepositAddressPage.js +61 -32
- package/dist/web/components/WaitingDepositAddressPage.js.map +1 -1
- package/dist/web/components/WalletAmountPage.d.ts.map +1 -1
- package/dist/web/components/WalletAmountPage.js +7 -4
- package/dist/web/components/WalletAmountPage.js.map +1 -1
- package/dist/web/components/account/AccountApplePayPage.d.ts +1 -1
- package/dist/web/components/account/AccountApplePayPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountApplePayPage.js +26 -14
- package/dist/web/components/account/AccountApplePayPage.js.map +1 -1
- package/dist/web/components/account/AccountBankDetailsPage.d.ts +2 -1
- package/dist/web/components/account/AccountBankDetailsPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountBankDetailsPage.js +166 -54
- package/dist/web/components/account/AccountBankDetailsPage.js.map +1 -1
- package/dist/web/components/account/AccountBankPickerPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountBankPickerPage.js +15 -13
- package/dist/web/components/account/AccountBankPickerPage.js.map +1 -1
- package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts +3 -1
- package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountBankTransferSubmittedPage.js +9 -3
- package/dist/web/components/account/AccountBankTransferSubmittedPage.js.map +1 -1
- package/dist/web/components/account/AccountCreatingWalletPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountCreatingWalletPage.js +6 -4
- package/dist/web/components/account/AccountCreatingWalletPage.js.map +1 -1
- package/dist/web/components/account/AccountEmailPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountEmailPage.js +20 -14
- package/dist/web/components/account/AccountEmailPage.js.map +1 -1
- package/dist/web/components/account/AccountEnrollmentPage.d.ts +7 -3
- package/dist/web/components/account/AccountEnrollmentPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountEnrollmentPage.js +142 -107
- package/dist/web/components/account/AccountEnrollmentPage.js.map +1 -1
- package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts +10 -0
- package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts.map +1 -0
- package/dist/web/components/account/AccountEnrollmentUpdatePage.js +214 -0
- package/dist/web/components/account/AccountEnrollmentUpdatePage.js.map +1 -0
- package/dist/web/components/account/AccountFlowProvider.d.ts +1 -1
- package/dist/web/components/account/AccountFlowProvider.d.ts.map +1 -1
- package/dist/web/components/account/AccountFlowProvider.js +26 -20
- package/dist/web/components/account/AccountFlowProvider.js.map +1 -1
- package/dist/web/components/account/AccountKycInfoPage.d.ts +13 -0
- package/dist/web/components/account/AccountKycInfoPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountKycInfoPage.js +37 -0
- package/dist/web/components/account/AccountKycInfoPage.js.map +1 -0
- package/dist/web/components/account/AccountOtpCodeEntry.d.ts +4 -1
- package/dist/web/components/account/AccountOtpCodeEntry.d.ts.map +1 -1
- package/dist/web/components/account/AccountOtpCodeEntry.js +46 -43
- package/dist/web/components/account/AccountOtpCodeEntry.js.map +1 -1
- package/dist/web/components/account/AccountPaymentPage.d.ts +3 -2
- package/dist/web/components/account/AccountPaymentPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountPaymentPage.js +30 -18
- package/dist/web/components/account/AccountPaymentPage.js.map +1 -1
- package/dist/web/components/account/AccountPhoneOtpPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountPhoneOtpPage.js +22 -9
- package/dist/web/components/account/AccountPhoneOtpPage.js.map +1 -1
- package/dist/web/components/account/AccountPhonePage.d.ts.map +1 -1
- package/dist/web/components/account/AccountPhonePage.js +30 -12
- package/dist/web/components/account/AccountPhonePage.js.map +1 -1
- package/dist/web/components/account/AccountRipioOtpPage.d.ts +7 -0
- package/dist/web/components/account/AccountRipioOtpPage.d.ts.map +1 -0
- package/dist/web/components/account/AccountRipioOtpPage.js +53 -0
- package/dist/web/components/account/AccountRipioOtpPage.js.map +1 -0
- package/dist/web/components/account/AccountStatusPage.d.ts +1 -3
- package/dist/web/components/account/AccountStatusPage.d.ts.map +1 -1
- package/dist/web/components/account/AccountStatusPage.js +29 -39
- package/dist/web/components/account/AccountStatusPage.js.map +1 -1
- package/dist/web/components/account/accountNav.d.ts +1 -1
- package/dist/web/components/account/accountNav.d.ts.map +1 -1
- package/dist/web/components/account/accountNav.js +5 -1
- package/dist/web/components/account/accountNav.js.map +1 -1
- package/dist/web/components/account/formSchemas.d.ts +81 -0
- package/dist/web/components/account/formSchemas.d.ts.map +1 -0
- package/dist/web/components/account/formSchemas.js +80 -0
- package/dist/web/components/account/formSchemas.js.map +1 -0
- package/dist/web/components/account/formSchemas.test.d.ts +2 -0
- package/dist/web/components/account/formSchemas.test.d.ts.map +1 -0
- package/dist/web/components/account/formSchemas.test.js +57 -0
- package/dist/web/components/account/formSchemas.test.js.map +1 -0
- package/dist/web/components/account/kycRequirement.d.ts +14 -0
- package/dist/web/components/account/kycRequirement.d.ts.map +1 -0
- package/dist/web/components/account/kycRequirement.js +48 -0
- package/dist/web/components/account/kycRequirement.js.map +1 -0
- package/dist/web/components/account/phone.d.ts +2 -1
- package/dist/web/components/account/phone.d.ts.map +1 -1
- package/dist/web/components/account/phone.js +11 -2
- package/dist/web/components/account/phone.js.map +1 -1
- package/dist/web/components/buttons.d.ts +3 -2
- package/dist/web/components/buttons.d.ts.map +1 -1
- package/dist/web/components/buttons.js +4 -4
- package/dist/web/components/buttons.js.map +1 -1
- package/dist/web/components/containers.d.ts +7 -2
- package/dist/web/components/containers.d.ts.map +1 -1
- package/dist/web/components/containers.js +73 -30
- package/dist/web/components/containers.js.map +1 -1
- package/dist/web/components/formFields.d.ts +39 -0
- package/dist/web/components/formFields.d.ts.map +1 -0
- package/dist/web/components/formFields.js +70 -0
- package/dist/web/components/formFields.js.map +1 -0
- package/dist/web/components/icons.d.ts +17 -1
- package/dist/web/components/icons.d.ts.map +1 -1
- package/dist/web/components/icons.js +30 -2
- package/dist/web/components/icons.js.map +1 -1
- package/dist/web/components/shared.d.ts +1 -1
- package/dist/web/components/shared.d.ts.map +1 -1
- package/dist/web/components/shared.js +22 -22
- package/dist/web/components/shared.js.map +1 -1
- package/dist/web/formatAmount.d.ts +5 -0
- package/dist/web/formatAmount.d.ts.map +1 -0
- package/dist/web/formatAmount.js +53 -0
- package/dist/web/formatAmount.js.map +1 -0
- package/dist/web/formatAmount.test.d.ts +2 -0
- package/dist/web/formatAmount.test.d.ts.map +1 -0
- package/dist/web/formatAmount.test.js +43 -0
- package/dist/web/formatAmount.test.js.map +1 -0
- package/dist/web/hooks/accountAuthNav.d.ts +3 -0
- package/dist/web/hooks/accountAuthNav.d.ts.map +1 -0
- package/dist/web/hooks/accountAuthNav.js +24 -0
- package/dist/web/hooks/accountAuthNav.js.map +1 -0
- package/dist/web/hooks/accountAuthNav.test.d.ts +2 -0
- package/dist/web/hooks/accountAuthNav.test.d.ts.map +1 -0
- package/dist/web/hooks/accountAuthNav.test.js +32 -0
- package/dist/web/hooks/accountAuthNav.test.js.map +1 -0
- package/dist/web/hooks/formatUserError.d.ts.map +1 -1
- package/dist/web/hooks/formatUserError.js +13 -2
- package/dist/web/hooks/formatUserError.js.map +1 -1
- package/dist/web/hooks/locale.d.ts +2 -0
- package/dist/web/hooks/locale.d.ts.map +1 -1
- package/dist/web/hooks/locale.js +41 -4
- package/dist/web/hooks/locale.js.map +1 -1
- package/dist/web/hooks/locale.test.d.ts +2 -0
- package/dist/web/hooks/locale.test.d.ts.map +1 -0
- package/dist/web/hooks/locale.test.js +41 -0
- package/dist/web/hooks/locale.test.js.map +1 -0
- package/dist/web/hooks/locales/en.d.ts +26 -2
- package/dist/web/hooks/locales/en.d.ts.map +1 -1
- package/dist/web/hooks/locales/en.js +36 -12
- package/dist/web/hooks/locales/en.js.map +1 -1
- package/dist/web/hooks/locales/es.d.ts.map +1 -1
- package/dist/web/hooks/locales/es.js +35 -11
- package/dist/web/hooks/locales/es.js.map +1 -1
- package/dist/web/hooks/locales/ja.d.ts.map +1 -1
- package/dist/web/hooks/locales/ja.js +36 -12
- package/dist/web/hooks/locales/ja.js.map +1 -1
- package/dist/web/hooks/locales/ko.d.ts.map +1 -1
- package/dist/web/hooks/locales/ko.js +36 -12
- package/dist/web/hooks/locales/ko.js.map +1 -1
- package/dist/web/hooks/locales/pt.d.ts +4 -0
- package/dist/web/hooks/locales/pt.d.ts.map +1 -0
- package/dist/web/hooks/locales/pt.js +164 -0
- package/dist/web/hooks/locales/pt.js.map +1 -0
- package/dist/web/hooks/locales/zh.d.ts.map +1 -1
- package/dist/web/hooks/locales/zh.js +36 -12
- package/dist/web/hooks/locales/zh.js.map +1 -1
- package/dist/web/hooks/navEvent.js +2 -2
- package/dist/web/hooks/navEvent.js.map +1 -1
- package/dist/web/hooks/types.d.ts +15 -3
- package/dist/web/hooks/types.d.ts.map +1 -1
- package/dist/web/hooks/types.js.map +1 -1
- package/dist/web/hooks/useAccountFlow.d.ts +17 -11
- package/dist/web/hooks/useAccountFlow.d.ts.map +1 -1
- package/dist/web/hooks/useAccountFlow.js +71 -28
- package/dist/web/hooks/useAccountFlow.js.map +1 -1
- package/dist/web/hooks/useCreateDeposit.d.ts +1 -1
- package/dist/web/hooks/useCreateDeposit.d.ts.map +1 -1
- package/dist/web/hooks/useCreateDeposit.js +15 -103
- package/dist/web/hooks/useCreateDeposit.js.map +1 -1
- package/dist/web/hooks/useDraftDeposit.d.ts +2 -1
- package/dist/web/hooks/useDraftDeposit.d.ts.map +1 -1
- package/dist/web/hooks/useDraftDeposit.js +18 -1
- package/dist/web/hooks/useDraftDeposit.js.map +1 -1
- package/dist/web/hooks/useSessionNav.d.ts +6 -3
- package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
- package/dist/web/hooks/useSessionNav.js +131 -39
- package/dist/web/hooks/useSessionNav.js.map +1 -1
- package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
- package/dist/web/hooks/useWalletFlow.js +74 -26
- package/dist/web/hooks/useWalletFlow.js.map +1 -1
- package/dist/web/hooks/walletError.d.ts +9 -0
- package/dist/web/hooks/walletError.d.ts.map +1 -0
- package/dist/web/hooks/walletError.js +16 -0
- package/dist/web/hooks/walletError.js.map +1 -0
- package/dist/web/index.d.ts +7 -1
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +3 -0
- package/dist/web/index.js.map +1 -1
- package/dist/web/styles.css +1 -1
- package/dist/web/theme.css +1 -1
- package/dist/web/theme.d.ts +7 -0
- package/dist/web/theme.d.ts.map +1 -0
- package/dist/web/theme.js +23 -0
- package/dist/web/theme.js.map +1 -0
- package/package.json +7 -4
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { TokenLogo } from "../../common/token.js";
|
|
3
|
+
import { daimoModalThemeToCssVars } from "../theme.js";
|
|
4
|
+
import { ChooseOptionPage } from "./ChooseOptionPage.js";
|
|
5
|
+
import { MODAL_CONTENT_CLASS } from "./containers.js";
|
|
6
|
+
import { CheckIcon, CloseIcon, DaimoLogoIcon, ErrorIcon } from "./icons.js";
|
|
7
|
+
import { QRCode } from "./QRCode.js";
|
|
8
|
+
import { Skeleton } from "./Skeleton.js";
|
|
9
|
+
const PREVIEW_NODE = {
|
|
10
|
+
type: "ChooseOption",
|
|
11
|
+
id: "preview-root",
|
|
12
|
+
title: "Pay $25.00",
|
|
13
|
+
options: [
|
|
14
|
+
{
|
|
15
|
+
type: "ConnectedWallet",
|
|
16
|
+
id: "preview-wallet",
|
|
17
|
+
title: "Wallet",
|
|
18
|
+
icons: [
|
|
19
|
+
"/wallet-logos/metamask-logo.svg",
|
|
20
|
+
"/wallet-logos/rainbow-logo.svg",
|
|
21
|
+
"/wallet-logos/phantom-logo.svg",
|
|
22
|
+
"/chain-logos/base.svg",
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: "DepositAddress",
|
|
27
|
+
id: "preview-deposit-address",
|
|
28
|
+
title: "Deposit address",
|
|
29
|
+
icons: [TokenLogo.USDC, TokenLogo.USDT],
|
|
30
|
+
address: "0x1111111111111111111111111111111111111111",
|
|
31
|
+
chainId: 8453,
|
|
32
|
+
minimumUsd: 1,
|
|
33
|
+
maximumUsd: 10000,
|
|
34
|
+
expiresAt: 0,
|
|
35
|
+
tokenSuffix: "USDC",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
type: "Exchange",
|
|
39
|
+
id: "preview-coinbase",
|
|
40
|
+
title: "Coinbase",
|
|
41
|
+
exchangeId: "Coinbase",
|
|
42
|
+
icon: "/exchange-logos/coinbase-logo.svg",
|
|
43
|
+
minimumUsd: 1,
|
|
44
|
+
maximumUsd: 10000,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
type: "Fiat",
|
|
48
|
+
id: "preview-apple-pay",
|
|
49
|
+
title: "Apple Pay",
|
|
50
|
+
fiatMethod: "apple_pay",
|
|
51
|
+
icon: "/payment-logos/apple.svg",
|
|
52
|
+
kycRequirement: {
|
|
53
|
+
kind: "phone",
|
|
54
|
+
icon: "shield",
|
|
55
|
+
label: "Phone verification",
|
|
56
|
+
rowLabel: "Verify phone ~1 min",
|
|
57
|
+
detailTitle: "Verify your phone",
|
|
58
|
+
summary: "Phone verification is required before using Apple Pay.",
|
|
59
|
+
requirements: [{ id: "phone_number", label: "Phone number" }],
|
|
60
|
+
estimatedTime: "~1 min",
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
export function DaimoModalPreview({ theme, mode = "light", variant = "options", baseUrl = "", }) {
|
|
66
|
+
return (_jsx("div", { style: daimoModalThemeToCssVars(theme, mode), className: "daimo-mt-5 daimo-flex daimo-min-h-[520px] daimo-items-center daimo-justify-center daimo-overflow-hidden daimo-rounded-lg daimo-border daimo-border-[var(--daimo-border)] daimo-bg-[var(--daimo-bg)] daimo-p-6", children: _jsxs("div", { className: MODAL_CONTENT_CLASS, children: [_jsx("button", { type: "button", "aria-label": "Close preview", className: "daimo-absolute daimo-right-[17px] daimo-top-[22px] daimo-z-20 daimo-w-8 daimo-h-8 daimo-flex daimo-items-center daimo-justify-center daimo-rounded-full daimo-bg-[var(--daimo-surface)] hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)] active:daimo-scale-[0.9] daimo-transition-[background-color,transform] daimo-[transition-duration:200ms,100ms] daimo-ease daimo-touch-action-manipulation", children: _jsx(CloseIcon, {}) }), _jsx(PreviewContent, { variant: variant, baseUrl: baseUrl })] }) }));
|
|
67
|
+
}
|
|
68
|
+
function PreviewContent({ variant, baseUrl, }) {
|
|
69
|
+
switch (variant) {
|
|
70
|
+
case "options":
|
|
71
|
+
return (_jsx(ChooseOptionPage, { node: PREVIEW_NODE, onNavigate: () => { }, onBack: null, baseUrl: baseUrl }));
|
|
72
|
+
case "loading":
|
|
73
|
+
return _jsx(LoadingPreview, {});
|
|
74
|
+
case "semantic":
|
|
75
|
+
return _jsx(SemanticPreview, {});
|
|
76
|
+
case "qr":
|
|
77
|
+
return _jsx(QrPreview, {});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function LoadingPreview() {
|
|
81
|
+
return (_jsxs("div", { className: "daimo-flex daimo-min-h-[420px] daimo-flex-1 daimo-flex-col daimo-px-6 daimo-py-5", children: [_jsx("div", { className: "daimo-flex daimo-h-10 daimo-items-center daimo-justify-center", children: _jsx(Skeleton, { className: "daimo-h-5 daimo-w-32", rounded: "sm" }) }), _jsx("div", { className: "daimo-mt-8 daimo-flex daimo-flex-col daimo-gap-3", children: [0, 1, 2, 3].map((i) => (_jsx(Skeleton, { className: "daimo-h-16 daimo-w-full", rounded: "lg", delayMs: i * 100 }, i))) })] }));
|
|
82
|
+
}
|
|
83
|
+
function SemanticPreview() {
|
|
84
|
+
return (_jsxs("div", { className: "daimo-flex daimo-min-h-[420px] daimo-flex-1 daimo-flex-col daimo-px-6 daimo-py-5", children: [_jsx("h1", { className: "daimo-text-center daimo-text-lg daimo-font-semibold daimo-text-[var(--daimo-title)]", children: "Payment states" }), _jsxs("div", { className: "daimo-mt-6 daimo-grid daimo-gap-3", children: [_jsx(StateRow, { label: "Completed", description: "Funds delivered", bg: "var(--daimo-success-light)", border: "var(--daimo-success)", icon: _jsx(CheckIcon, { className: "daimo-text-[var(--daimo-checkmark)]", size: 22 }) }), _jsx(StateRow, { label: "Processing", description: "Payment received", bg: "var(--daimo-warning-light)", border: "var(--daimo-warning)", icon: _jsx(StatusDot, { color: "var(--daimo-warning)" }) }), _jsx(StateRow, { label: "Failed", description: "Payment blocked", bg: "var(--daimo-error-light)", border: "var(--daimo-error)", icon: _jsx("span", { className: "daimo-flex daimo-h-8 daimo-w-8 daimo-items-center daimo-justify-center daimo-rounded-full", style: {
|
|
85
|
+
backgroundColor: "var(--daimo-error-badge-bg)",
|
|
86
|
+
boxShadow: "inset 0 0 0 1px var(--daimo-error-badge-ring)",
|
|
87
|
+
}, children: _jsx(ErrorIcon, { size: 20 }) }) })] }), _jsxs("div", { className: "daimo-mt-6 daimo-rounded-[var(--daimo-radius-lg)] daimo-border daimo-border-[var(--daimo-accent)] daimo-p-4", children: [_jsx("div", { className: "daimo-text-sm daimo-font-semibold daimo-text-[var(--daimo-text)]", children: "Checkout progress" }), _jsx("div", { className: "daimo-mt-3 daimo-h-2 daimo-overflow-hidden daimo-rounded-full daimo-bg-[var(--daimo-surface-secondary)]", children: _jsx("div", { className: "daimo-h-full daimo-w-2/3 daimo-rounded-full daimo-bg-[var(--daimo-accent)]" }) })] })] }));
|
|
88
|
+
}
|
|
89
|
+
function StateRow({ label, description, bg, border, icon, }) {
|
|
90
|
+
return (_jsxs("div", { className: "daimo-flex daimo-min-h-[72px] daimo-items-center daimo-gap-3 daimo-rounded-[var(--daimo-radius-lg)] daimo-p-3", style: { backgroundColor: bg, border: `1px solid ${border}` }, children: [_jsx("div", { className: "daimo-flex daimo-h-10 daimo-w-10 daimo-shrink-0 daimo-items-center daimo-justify-center", children: icon }), _jsxs("div", { className: "daimo-min-w-0", children: [_jsx("div", { className: "daimo-text-sm daimo-font-semibold daimo-text-[var(--daimo-text)]", children: label }), _jsx("div", { className: "daimo-text-sm daimo-text-[var(--daimo-text-secondary)]", children: description })] })] }));
|
|
91
|
+
}
|
|
92
|
+
function StatusDot({ color }) {
|
|
93
|
+
return (_jsx("span", { className: "daimo-block daimo-h-4 daimo-w-4 daimo-rounded-full", style: { backgroundColor: color } }));
|
|
94
|
+
}
|
|
95
|
+
function QrPreview() {
|
|
96
|
+
return (_jsxs("div", { className: "daimo-flex daimo-min-h-[420px] daimo-flex-1 daimo-flex-col daimo-items-center daimo-justify-center daimo-px-6 daimo-py-5", children: [_jsx("h1", { className: "daimo-text-center daimo-text-lg daimo-font-semibold daimo-text-[var(--daimo-title)]", children: "Scan to pay" }), _jsx("p", { className: "daimo-mt-1 daimo-text-center daimo-text-sm daimo-text-[var(--daimo-text-secondary)]", children: "Open your wallet and scan this code." }), _jsx("div", { className: "daimo-mt-6 daimo-w-full daimo-max-w-[260px]", children: _jsx(QRCode, { value: "https://daimo.com/deposit?session=preview-theme", image: _jsx(DaimoLogoIcon, { className: "daimo-text-[var(--daimo-qr-dot)]", size: 48 }) }) })] }));
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=DaimoModalPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaimoModalPreview.js","sourceRoot":"","sources":["../../../src/web/components/DaimoModalPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeeplinkPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"DeeplinkPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE,iBAAiB,2CAqDnB"}
|
|
@@ -2,19 +2,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
|
|
3
3
|
import { t } from "../hooks/locale.js";
|
|
4
4
|
import { isDesktop } from "../platform.js";
|
|
5
|
-
import { CenteredContent, PageHeader, PageLogo, resolveIconUrl } from "./shared.js";
|
|
5
|
+
import { CenteredContent, PageHeader, PageLogo, resolveIconUrl, } from "./shared.js";
|
|
6
6
|
import { QRCode } from "./QRCode.js";
|
|
7
7
|
/** Mobile wallet deeplink page. Opens directly on mobile; shows as QR code on desktop. */
|
|
8
8
|
export function DeeplinkPage({ node, platform, onBack, baseUrl, }) {
|
|
9
9
|
const desktop = isDesktop(platform);
|
|
10
|
+
const pageIcon = node.pageIcon ?? node.icon;
|
|
10
11
|
if (desktop) {
|
|
11
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: node.url, image:
|
|
12
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: node.url, image: pageIcon ? (_jsx("img", { src: resolveIconUrl(pageIcon, baseUrl), alt: node.title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) }), _jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm", children: t.scanWithPhone })] })] }));
|
|
12
13
|
}
|
|
13
14
|
const openDeeplink = () => {
|
|
14
15
|
if (node.url) {
|
|
15
16
|
window.open(node.url, "_blank");
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [
|
|
19
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(CenteredContent, { children: [pageIcon && (_jsx(PageLogo, { icon: pageIcon, alt: node.title, baseUrl: baseUrl })), _jsxs("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs", children: [t.continueIn, " ", node.title, " ", t.toCompleteYourPayment] }), _jsxs(PrimaryButton, { onClick: openDeeplink, icon: _jsx(ExternalLinkIcon, {}), children: [t.openIn, " ", node.title] })] })] }));
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=DeeplinkPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeeplinkPage.js","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"DeeplinkPage.js","sourceRoot":"","sources":["../../../src/web/components/DeeplinkPage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACW;IAClB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;IAE5C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,eAAe,eACd,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,MAAM,IACL,KAAK,EAAE,IAAI,CAAC,GAAG,EACf,KAAK,EACH,QAAQ,CAAC,CAAC,CAAC,CACT,cACE,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EACtC,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,oEAAoE,GAC9E,CACH,CAAC,CAAC,CAAC,SAAS,GAEf,GACE,EACN,YAAG,SAAS,EAAC,yFAAyF,YACnG,CAAC,CAAC,aAAa,GACd,IACY,IACd,CACP,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,eAAe,eACb,QAAQ,IAAI,CACX,KAAC,QAAQ,IAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAChE,EACD,aAAG,SAAS,EAAC,2EAA2E,aACrF,CAAC,CAAC,UAAU,OAAG,IAAI,CAAC,KAAK,OAAG,CAAC,CAAC,qBAAqB,IAClD,EACJ,MAAC,aAAa,IAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAC,gBAAgB,KAAG,aAC7D,CAAC,CAAC,MAAM,OAAG,IAAI,CAAC,KAAK,IACR,IACA,IACd,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYzE,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAoB,EACpB,OAAO,EACP,cAAwB,EACxB,WAAgB,EAChB,SAAS,EACT,YAAiB,EACjB,MAAa,EACb,QAAe,EACf,SAAiB,GAClB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYzE,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAoB,EACpB,OAAO,EACP,cAAwB,EACxB,WAAgB,EAChB,SAAS,EACT,YAAiB,EACjB,MAAa,EACb,QAAe,EACf,SAAiB,GAClB,EAAE,cAAc,2CA2DhB"}
|
|
@@ -42,7 +42,10 @@ export function ErrorPage({ message, retryText = t.reload, onRetry, supportSubje
|
|
|
42
42
|
window.location.reload();
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.error }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-justify-center daimo-p-6 daimo-gap-6", children: [_jsx("div", { className: "daimo-w-20 daimo-h-20 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: {
|
|
45
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.error }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-justify-center daimo-p-6 daimo-gap-6", children: [_jsx("div", { className: "daimo-w-20 daimo-h-20 daimo-rounded-full daimo-flex daimo-items-center daimo-justify-center", style: {
|
|
46
|
+
backgroundColor: "var(--daimo-error-badge-bg)",
|
|
47
|
+
boxShadow: "inset 0 0 0 1px var(--daimo-error-badge-ring)",
|
|
48
|
+
}, children: _jsx(ErrorIcon, {}) }), _jsx(ErrorMessage, { message: displayMessage }), !hideRetry && (_jsx(SecondaryButton, { onClick: handleRetry, children: retryText })), _jsx(ContactSupportButton, { subject: supportSubject, info: {
|
|
46
49
|
...(sessionId ? { sessionId } : {}),
|
|
47
50
|
error: displayMessage,
|
|
48
51
|
...supportInfo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7E,yDAAyD;AACzD,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAE,KAA8B,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,CAAC,YAAY,CAAC;AACxB,CAAC;AAsBD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,GAAG,CAAC,CAAC,MAAM,EACpB,OAAO,EACP,cAAc,GAAG,CAAC,CAAC,KAAK,EACxB,WAAW,GAAG,EAAE,EAChB,SAAS,EACT,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,IAAI,EACb,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,KAAK,GACF;IACf,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO;QAC9B,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE;YACnC,MAAM;YACN,QAAQ;YACR,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,cAAc;SACtB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAExE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAC9B,eAAK,SAAS,EAAC,sGAAsG,aAEnH,cACE,SAAS,EAAC,6FAA6F,EACvG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../../src/web/components/ErrorPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangePage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExchangePage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,GAAG,cAAc,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,iBAAiB,2CA6BnB"}
|
|
@@ -1,30 +1,15 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
2
|
import { t } from "../hooks/locale.js";
|
|
4
3
|
import { isDesktop } from "../platform.js";
|
|
5
|
-
import {
|
|
6
|
-
import { QRCode } from "./QRCode.js";
|
|
4
|
+
import { ExternalPaymentPage } from "./ExternalPaymentPage.js";
|
|
7
5
|
export function ExchangePage({ node, platform, exchangeUrl, waitingMessage, isLoading, onBack, baseUrl, }) {
|
|
8
|
-
const desktop = isDesktop(platform);
|
|
9
6
|
const exchangeId = node.type === "CashApp" ? "CashApp" : node.exchangeId;
|
|
10
|
-
const
|
|
7
|
+
const desktopBehavior = exchangeId === "Coinbase" || exchangeId === "MtPelerin" ? "popup" : "qr";
|
|
8
|
+
const usesDesktopQR = isDesktop(platform) && desktopBehavior === "qr";
|
|
11
9
|
const placeholderDensity = exchangeId === "Binance" ? "medium" : "short";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
window.open(exchangeUrl, "coinbase", "width=500,height=700");
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
window.open(exchangeUrl, "_blank");
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
// Desktop QR view for Binance, Lemon, CashApp
|
|
23
|
-
if (showQR) {
|
|
24
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack }), _jsxs(CenteredContent, { children: [_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: exchangeUrl, placeholderDensity: placeholderDensity, image: node.icon ? (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) }), exchangeUrl && (_jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm daimo-whitespace-pre-line", children: waitingMessage || t.scanWithPhone }))] })] }));
|
|
25
|
-
}
|
|
26
|
-
// Mobile (all exchanges) and desktop Coinbase (popup)
|
|
27
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack }), _jsxs(CenteredContent, { children: [node.icon && (_jsx(PageLogo, { icon: node.icon, alt: node.title, baseUrl: baseUrl })), isLoading ? (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-items-center daimo-gap-2 daimo-max-w-xs daimo-w-full", children: [_jsx("div", { className: "daimo-h-4 daimo-w-4/5 daimo-rounded daimo-bg-[var(--daimo-surface-secondary)] daimo-animate-daimo-pulse" }), _jsx("div", { className: "daimo-h-4 daimo-w-3/5 daimo-rounded daimo-bg-[var(--daimo-surface-secondary)] daimo-animate-daimo-pulse" })] })) : (_jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-whitespace-pre-line", children: waitingMessage ||
|
|
28
|
-
`${t.continueTo} ${node.title} ${t.toCompleteYourDeposit}` })), _jsxs(PrimaryButton, { onClick: openExchange, icon: _jsx(ExternalLinkIcon, {}), disabled: isLoading, children: [t.open, " ", node.title] })] })] }));
|
|
10
|
+
return (_jsx(ExternalPaymentPage, { title: node.title, platform: platform, url: exchangeUrl, icon: node.icon, message: waitingMessage ||
|
|
11
|
+
(usesDesktopQR
|
|
12
|
+
? t.scanWithPhone
|
|
13
|
+
: `${t.continueTo} ${node.title} ${t.toCompleteYourDeposit}`), isLoading: isLoading, onBack: onBack, baseUrl: baseUrl, desktopBehavior: desktopBehavior, popupName: exchangeId.toLowerCase(), placeholderDensity: placeholderDensity }));
|
|
29
14
|
}
|
|
30
15
|
//# sourceMappingURL=ExchangePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangePage.js","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ExchangePage.js","sourceRoot":"","sources":["../../../src/web/components/ExchangePage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAc/D,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,EACN,OAAO,GACW;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACzE,MAAM,eAAe,GACnB,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,eAAe,KAAK,IAAI,CAAC;IAEtE,MAAM,kBAAkB,GACtB,UAAU,KAAK,SAAS,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAE,OAAiB,CAAC;IAEtE,OAAO,CACL,KAAC,mBAAmB,IAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EACL,cAAc;YACd,CAAC,aAAa;gBACZ,CAAC,CAAC,CAAC,CAAC,aAAa;gBACjB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC,EAEjE,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,EACnC,kBAAkB,EAAE,kBAAkB,GACtC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type DaimoPlatform } from "../platform.js";
|
|
2
|
+
type QRDensity = "short" | "medium" | "long";
|
|
3
|
+
type DesktopBehavior = "popup" | "qr";
|
|
4
|
+
type ExternalPaymentPageProps = {
|
|
5
|
+
title: string;
|
|
6
|
+
platform: DaimoPlatform;
|
|
7
|
+
url?: string;
|
|
8
|
+
icon?: string;
|
|
9
|
+
message: string;
|
|
10
|
+
isLoading?: boolean;
|
|
11
|
+
onBack: () => void;
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
desktopBehavior: DesktopBehavior;
|
|
14
|
+
openLabel?: string;
|
|
15
|
+
popupName?: string;
|
|
16
|
+
popupFeatures?: string;
|
|
17
|
+
placeholderDensity?: QRDensity;
|
|
18
|
+
};
|
|
19
|
+
/** Shared handoff page for providers that complete payment outside the modal. */
|
|
20
|
+
export declare function ExternalPaymentPage({ title, platform, url, icon, message, isLoading, onBack, baseUrl, desktopBehavior, openLabel, popupName, popupFeatures, placeholderDensity, }: ExternalPaymentPageProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=ExternalPaymentPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalPaymentPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/ExternalPaymentPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/D,KAAK,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC7C,KAAK,eAAe,GAAG,OAAO,GAAG,IAAI,CAAC;AAEtC,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC,CAAC;AAIF,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,eAAe,EACf,SAAgC,EAChC,SAAS,EACT,aAAsC,EACtC,kBAAkB,GACnB,EAAE,wBAAwB,2CAuD1B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { t } from "../hooks/locale.js";
|
|
3
|
+
import { isDesktop } from "../platform.js";
|
|
4
|
+
import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
|
|
5
|
+
import { QRCode } from "./QRCode.js";
|
|
6
|
+
import { SkeletonText } from "./Skeleton.js";
|
|
7
|
+
import { CenteredContent, PageHeader, PageLogo, resolveIconUrl, } from "./shared.js";
|
|
8
|
+
const DEFAULT_POPUP_FEATURES = "width=500,height=700";
|
|
9
|
+
/** Shared handoff page for providers that complete payment outside the modal. */
|
|
10
|
+
export function ExternalPaymentPage({ title, platform, url, icon, message, isLoading, onBack, baseUrl, desktopBehavior, openLabel = `${t.open} ${title}`, popupName, popupFeatures = DEFAULT_POPUP_FEATURES, placeholderDensity, }) {
|
|
11
|
+
const desktop = isDesktop(platform);
|
|
12
|
+
const showQR = desktop && desktopBehavior === "qr";
|
|
13
|
+
const openProvider = () => {
|
|
14
|
+
if (!url)
|
|
15
|
+
return;
|
|
16
|
+
if (desktop && desktopBehavior === "popup") {
|
|
17
|
+
window.open(url, popupName ?? title.toLowerCase(), popupFeatures);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
window.open(url, "_blank");
|
|
21
|
+
};
|
|
22
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: title, onBack: onBack }), _jsxs(CenteredContent, { children: [showQR ? (_jsx("div", { className: "daimo-w-full daimo-max-w-[200px] sm:daimo-max-w-[260px]", children: _jsx(QRCode, { value: url, placeholderDensity: placeholderDensity, image: icon ? (_jsx("img", { src: resolveIconUrl(icon, baseUrl), alt: title, className: "daimo-w-full daimo-h-full daimo-object-contain daimo-rounded-[25%]" })) : undefined }) })) : (icon && _jsx(PageLogo, { icon: icon, alt: title, baseUrl: baseUrl })), isLoading ? (_jsx(SkeletonText, { className: "daimo-max-w-xs", widths: ["80%", "60%"] })) : (_jsx("p", { className: "daimo-text-[var(--daimo-text-secondary)] daimo-text-center daimo-max-w-xs daimo-text-sm daimo-whitespace-pre-line", children: message })), !showQR && (_jsx(PrimaryButton, { onClick: openProvider, icon: _jsx(ExternalLinkIcon, {}), disabled: !url || isLoading, children: openLabel }))] })] }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ExternalPaymentPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalPaymentPage.js","sourceRoot":"","sources":["../../../src/web/components/ExternalPaymentPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,aAAa,CAAC;AAqBrB,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAEtD,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,eAAe,EACf,SAAS,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,EAChC,SAAS,EACT,aAAa,GAAG,sBAAsB,EACtC,kBAAkB,GACO;IACzB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,IAAI,eAAe,KAAK,IAAI,CAAC;IAEnD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,OAAO,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,EAC5C,MAAC,eAAe,eACb,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,MAAM,IACL,KAAK,EAAE,GAAG,EACV,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EACH,IAAI,CAAC,CAAC,CAAC,CACL,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,oEAAoE,GAC9E,CACH,CAAC,CAAC,CAAC,SAAS,GAEf,GACE,CACP,CAAC,CAAC,CAAC,CACF,IAAI,IAAI,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAC/D,EACA,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,SAAS,EAAC,gBAAgB,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAI,CACpE,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,mHAAmH,YAC7H,OAAO,GACN,CACL,EACA,CAAC,MAAM,IAAI,CACV,KAAC,aAAa,IACZ,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,KAAC,gBAAgB,KAAG,EAC1B,QAAQ,EAAE,CAAC,GAAG,IAAI,SAAS,YAE1B,SAAS,GACI,CACjB,IACe,IACd,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
type AccountControl = {
|
|
3
|
+
email: string;
|
|
4
|
+
onLogout: () => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
type CloseControl = {
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
};
|
|
9
|
+
export type ModalChromeControls = {
|
|
10
|
+
type: "account";
|
|
11
|
+
account: AccountControl;
|
|
12
|
+
} | {
|
|
13
|
+
type: "account-close";
|
|
14
|
+
account: AccountControl;
|
|
15
|
+
close: CloseControl;
|
|
16
|
+
} | {
|
|
17
|
+
type: "close";
|
|
18
|
+
close: CloseControl;
|
|
19
|
+
} | {
|
|
20
|
+
type: "none";
|
|
21
|
+
};
|
|
22
|
+
type ModalChromeProps = {
|
|
23
|
+
controls: ModalChromeControls;
|
|
24
|
+
children: (dismissAccount: (() => void) | null) => ReactNode;
|
|
25
|
+
};
|
|
26
|
+
export declare function ModalChrome({ controls, children }: ModalChromeProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=ModalChrome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalChrome.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModalChrome.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAYf,KAAK,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AACvE,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC;CAC9D,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA6EnE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState, } from "react";
|
|
3
|
+
import { t } from "../hooks/locale.js";
|
|
4
|
+
import { useCopyToClipboard } from "../hooks/useCopyToClipboard.js";
|
|
5
|
+
import { CloseIcon, CopyIcon, EllipsisIcon, EmailIcon, LogoutIcon, } from "./icons.js";
|
|
6
|
+
export function ModalChrome({ controls, children }) {
|
|
7
|
+
const [accountOpen, setAccountOpen] = useState(false);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (controls.type === "none" || controls.type === "close") {
|
|
10
|
+
setAccountOpen(false);
|
|
11
|
+
}
|
|
12
|
+
}, [controls.type]);
|
|
13
|
+
const dismissAccount = useCallback(() => setAccountOpen(false), []);
|
|
14
|
+
const accountButton = () => (_jsx(ChromeIconButton, { label: "Account", expanded: accountOpen, onClick: () => setAccountOpen(true), children: _jsx(EllipsisIcon, {}) }));
|
|
15
|
+
const closeButton = (close) => (_jsx(ChromeIconButton, { label: t.close, onClick: close.onClose, children: _jsx(CloseIcon, {}) }));
|
|
16
|
+
let actions = null;
|
|
17
|
+
let banner = null;
|
|
18
|
+
let hasAccount = false;
|
|
19
|
+
switch (controls.type) {
|
|
20
|
+
case "none":
|
|
21
|
+
break;
|
|
22
|
+
case "account":
|
|
23
|
+
hasAccount = true;
|
|
24
|
+
actions = accountButton();
|
|
25
|
+
banner = (_jsx(AccountBanner, { account: controls.account, open: accountOpen, onDismiss: dismissAccount }));
|
|
26
|
+
break;
|
|
27
|
+
case "close":
|
|
28
|
+
actions = closeButton(controls.close);
|
|
29
|
+
break;
|
|
30
|
+
case "account-close":
|
|
31
|
+
hasAccount = true;
|
|
32
|
+
actions = (_jsxs(_Fragment, { children: [accountButton(), closeButton(controls.close)] }));
|
|
33
|
+
banner = (_jsx(AccountBanner, { account: controls.account, open: accountOpen, onDismiss: dismissAccount }));
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
assertNever(controls);
|
|
37
|
+
}
|
|
38
|
+
return (_jsxs(_Fragment, { children: [actions && (_jsx("div", { className: "daimo-absolute daimo-right-[17px] daimo-top-[22px] daimo-z-20 daimo-flex daimo-h-8 daimo-items-center daimo-gap-0", children: actions })), banner, children(hasAccount && accountOpen ? dismissAccount : null)] }));
|
|
39
|
+
}
|
|
40
|
+
function AccountBanner({ account, open, onDismiss, }) {
|
|
41
|
+
const { copy, copied } = useCopyToClipboard(1200);
|
|
42
|
+
const handleCopy = useCallback((event) => {
|
|
43
|
+
event.stopPropagation();
|
|
44
|
+
void copy(account.email);
|
|
45
|
+
}, [account.email, copy]);
|
|
46
|
+
const handleLogout = useCallback(async (event) => {
|
|
47
|
+
event.stopPropagation();
|
|
48
|
+
await account.onLogout();
|
|
49
|
+
onDismiss();
|
|
50
|
+
}, [account, onDismiss]);
|
|
51
|
+
return (_jsxs("div", { onClick: onDismiss, className: `daimo-account-banner daimo-absolute daimo-inset-x-0 daimo-top-0 daimo-z-30 daimo-h-[76px] daimo-bg-[var(--daimo-surface)] ${open
|
|
52
|
+
? "daimo-translate-y-0 daimo-opacity-100 daimo-pointer-events-auto"
|
|
53
|
+
: "-daimo-translate-y-full daimo-opacity-0 daimo-pointer-events-none"}`, children: [_jsxs("button", { type: "button", onClick: handleCopy, className: "daimo-account-email-chip daimo-absolute daimo-left-[17px] daimo-top-[22px] daimo-flex daimo-h-8 daimo-items-center daimo-overflow-hidden daimo-rounded-full daimo-bg-transparent daimo-text-[var(--daimo-text)] hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)] daimo-touch-action-manipulation daimo-outline-none focus-visible:daimo-bg-[var(--daimo-surface-secondary)] focus-visible:daimo-ring-2 focus-visible:daimo-ring-[var(--daimo-accent)] focus-visible:daimo-ring-offset-2 focus-visible:daimo-ring-offset-[var(--daimo-surface)]", "aria-label": copied ? "Copied email" : "Copy account email", title: account.email, children: [_jsx("span", { className: "daimo-flex daimo-h-8 daimo-w-8 daimo-shrink-0 daimo-items-center daimo-justify-center", children: _jsx(EmailIcon, { size: 22 }) }), _jsx("span", { className: "daimo-account-email-chip-text daimo-min-w-0 daimo-truncate daimo-pr-2 daimo-text-sm daimo-font-medium", children: account.email }), _jsx("span", { className: "daimo-account-email-chip-copy daimo-flex daimo-shrink-0 daimo-items-center daimo-pr-3 daimo-text-[var(--daimo-text-muted)]", children: _jsx(CopyIcon, { size: 14, copied: copied }) })] }), _jsx(ChromeIconButton, { label: "Log out", className: "daimo-absolute daimo-right-[17px] daimo-top-[22px] daimo-z-10 daimo-bg-transparent hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)]", onClick: handleLogout, children: _jsx(LogoutIcon, { size: 22 }) })] }));
|
|
54
|
+
}
|
|
55
|
+
function ChromeIconButton({ label, expanded, children, className = "", onClick, }) {
|
|
56
|
+
return (_jsx("button", { type: "button", onClick: (event) => {
|
|
57
|
+
event.stopPropagation();
|
|
58
|
+
onClick(event);
|
|
59
|
+
}, className: `daimo-flex daimo-h-8 daimo-w-8 daimo-shrink-0 daimo-items-center daimo-justify-center daimo-rounded-full daimo-bg-[var(--daimo-surface)] daimo-text-[var(--daimo-text-muted)] hover:[@media(hover:hover)]:daimo-bg-[var(--daimo-surface-secondary)] active:daimo-scale-[0.9] daimo-transition-[background-color,transform] daimo-[transition-duration:200ms,100ms] daimo-ease daimo-touch-action-manipulation ${className}`, "aria-label": label, "aria-expanded": expanded, children: children }));
|
|
60
|
+
}
|
|
61
|
+
function assertNever(value) {
|
|
62
|
+
throw new Error(`unknown modal chrome control: ${JSON.stringify(value)}`);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=ModalChrome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalChrome.js","sourceRoot":"","sources":["../../../src/web/components/ModalChrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalSkeleton.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModalSkeleton.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,aAAa,4CAqB5B"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Skeleton } from "./Skeleton.js";
|
|
2
3
|
/**
|
|
3
4
|
* Loading skeleton for the session modal.
|
|
4
5
|
* Shows header + scrollable token rows layout (matches SelectTokenPage).
|
|
5
6
|
* Respects prefers-reduced-motion for accessibility.
|
|
6
7
|
*/
|
|
7
8
|
export function ModalSkeleton() {
|
|
8
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx("div", { className: "daimo-flex daimo-items-center daimo-justify-center daimo-h-14 daimo-px-6", children: _jsx(
|
|
9
|
-
backgroundColor: "var(--daimo-skeleton)",
|
|
10
|
-
animationDelay: `${i * 100}ms`,
|
|
11
|
-
} }, i))) })] }));
|
|
9
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx("div", { className: "daimo-flex daimo-items-center daimo-justify-center daimo-h-14 daimo-px-6", children: _jsx(Skeleton, { className: "daimo-h-5 daimo-w-32", rounded: "sm" }) }), _jsx("div", { className: "daimo-flex-1 daimo-px-6 daimo-pb-4 daimo-flex daimo-flex-col daimo-gap-3", children: [...Array(11)].map((_, i) => (_jsx(Skeleton, { className: "daimo-h-16", rounded: "lg", delayMs: i * 100 }, i))) })] }));
|
|
12
10
|
}
|
|
13
11
|
//# sourceMappingURL=ModalSkeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalSkeleton.js","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aAEnE,cAAK,SAAS,EAAC,0EAA0E,YACvF,
|
|
1
|
+
{"version":3,"file":"ModalSkeleton.js","sourceRoot":"","sources":["../../../src/web/components/ModalSkeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aAEnE,cAAK,SAAS,EAAC,0EAA0E,YACvF,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,EAAC,OAAO,EAAC,IAAI,GAAG,GACtD,EAGN,cAAK,SAAS,EAAC,0EAA0E,YACtF,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,QAAQ,IAEP,SAAS,EAAC,YAAY,EACtB,OAAO,EAAC,IAAI,EACZ,OAAO,EAAE,CAAC,GAAG,GAAG,IAHX,CAAC,CAIN,CACH,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectAmountPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAa/D,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,qBAAqB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACR,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"SelectAmountPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAa/D,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,qBAAqB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACR,EAAE,qBAAqB,2CAgFvB"}
|
|
@@ -4,7 +4,7 @@ import { t } from "../hooks/locale.js";
|
|
|
4
4
|
import { PrimaryButton } from "./buttons.js";
|
|
5
5
|
import { AmountInput, PageHeader, TokenIconWithChainBadge, resolveIconUrl, useAmountInput, } from "./shared.js";
|
|
6
6
|
export function SelectAmountPage({ node, minimumUsd, maximumUsd, tokenSuffix, chainId, onBack, onContinue, isLoading, error, baseUrl, }) {
|
|
7
|
-
const { amount: amountUsd, isValid, handleChange } = useAmountInput(minimumUsd, maximumUsd);
|
|
7
|
+
const { amount: amountUsd, isValid, handleChange, } = useAmountInput(minimumUsd, maximumUsd);
|
|
8
8
|
// Create pseudo-token for display if tokenSuffix is USDC or USDT and chainId is provided
|
|
9
9
|
const selectedToken = tokenSuffix === "USDC" || tokenSuffix === "USDT" ? tokenSuffix : null;
|
|
10
10
|
const displayToken = selectedToken && chainId != null
|
|
@@ -22,6 +22,6 @@ export function SelectAmountPage({ node, minimumUsd, maximumUsd, tokenSuffix, ch
|
|
|
22
22
|
displayDecimals: 2,
|
|
23
23
|
}
|
|
24
24
|
: null;
|
|
25
|
-
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.selectAmount, onBack: onBack }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-p-6", children: [_jsx("div", { className: "daimo-h-24 daimo-flex daimo-items-center daimo-justify-center daimo-mb-3", children: displayToken ? (_jsx(TokenIconWithChainBadge, { token: displayToken, size: "lg", badgeBorderClass: "daimo-border-2 daimo-bg-[var(--daimo-surface)] daimo-border-[var(--daimo-surface)]", baseUrl: baseUrl })) : (node.icon && (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-20 daimo-h-20 daimo-rounded-[25%]" }))) }), _jsx("div", { className: "daimo-mb-6", children: _jsx(AmountInput, { minimum: minimumUsd, maximum: maximumUsd, onSubmit: onContinue, onChange: handleChange }) }), error && (_jsx("div", { className: "daimo-text-
|
|
25
|
+
return (_jsxs("div", { className: "daimo-flex daimo-flex-col daimo-flex-1 daimo-min-h-0", children: [_jsx(PageHeader, { title: t.selectAmount, onBack: onBack }), _jsxs("div", { className: "daimo-flex-1 daimo-flex daimo-flex-col daimo-items-center daimo-p-6", children: [_jsx("div", { className: "daimo-h-24 daimo-flex daimo-items-center daimo-justify-center daimo-mb-3", children: displayToken ? (_jsx(TokenIconWithChainBadge, { token: displayToken, size: "lg", badgeBorderClass: "daimo-border-2 daimo-bg-[var(--daimo-surface)] daimo-border-[var(--daimo-surface)]", baseUrl: baseUrl })) : (node.icon && (_jsx("img", { src: resolveIconUrl(node.icon, baseUrl), alt: node.title, className: "daimo-w-20 daimo-h-20 daimo-rounded-[25%]" }))) }), _jsx("div", { className: "daimo-mb-6", children: _jsx(AmountInput, { minimum: minimumUsd, maximum: maximumUsd, onSubmit: onContinue, onChange: handleChange }) }), error && (_jsx("div", { className: "daimo-text-[var(--daimo-error)] daimo-text-sm daimo-text-center daimo-mb-3", children: error })), _jsx(PrimaryButton, { onClick: () => isValid && !isLoading && onContinue(amountUsd), disabled: !isValid || isLoading, className: "daimo-max-w-none", children: isLoading ? t.loading : t.continue })] })] }));
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=SelectAmountPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectAmountPage.js","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAkBrB,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACe;IACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"SelectAmountPage.js","sourceRoot":"","sources":["../../../src/web/components/SelectAmountPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAkBrB,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,GACe;IACtB,MAAM,EACJ,MAAM,EAAE,SAAS,EACjB,OAAO,EACP,YAAY,GACb,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE3C,yFAAyF;IACzF,MAAM,aAAa,GACjB,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,MAAM,YAAY,GAChB,aAAa,IAAI,OAAO,IAAI,IAAI;QAC9B,CAAC,CAAE;YACC,OAAO;YACP,KAAK,EAAE,KAAsB;YAC7B,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;YACnE,aAAa,EAAE,EAAE;YACjB,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,CAAC;SACD;QACrB,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,EAErD,eAAK,SAAS,EAAC,qEAAqE,aAElF,cAAK,SAAS,EAAC,0EAA0E,YACtF,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,uBAAuB,IACtB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAC,IAAI,EACT,gBAAgB,EAAC,oFAAoF,EACrG,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,IAAI,CACX,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EACvC,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,2CAA2C,GACrD,CACH,CACF,GACG,EAGN,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,WAAW,IACV,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,YAAY,GACtB,GACE,EAGL,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,4EAA4E,YACxF,KAAK,GACF,CACP,EAED,KAAC,aAAa,IACZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAC7D,QAAQ,EAAE,CAAC,OAAO,IAAI,SAAS,EAC/B,SAAS,EAAC,kBAAkB,YAE3B,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GACrB,IACZ,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTokenPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectTokenPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectTokenPage.d.ts","sourceRoot":"","sources":["../../../src/web/components/SelectTokenPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAehF,KAAK,oBAAoB,GAAG;IAC1B,+CAA+C;IAC/C,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,SAAiB,EACjB,aAAkB,EAClB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,2CA0EtB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { getChainName } from "../../common/chain.js";
|
|
3
|
-
import {
|
|
3
|
+
import { formatFixedAmount } from "../formatAmount.js";
|
|
4
|
+
import { getNumberLocale, t } from "../hooks/locale.js";
|
|
4
5
|
import { ContactSupportButton, LIST_ROW_CLASS, ListRow, PageHeader, ScrollContent, TokenIconWithChainBadge, useScrollBorder, } from "./shared.js";
|
|
6
|
+
import { Skeleton } from "./Skeleton.js";
|
|
5
7
|
/** Token selection page for wallet payment flow */
|
|
6
8
|
export function SelectTokenPage({ options, showRequired, isLoading = false, skeletonCount = 11, onSelect, onBack, baseUrl, sessionId, }) {
|
|
7
9
|
const { scrolled, atBottom, onScroll } = useScrollBorder();
|
|
@@ -15,8 +17,7 @@ export function SelectTokenPage({ options, showRequired, isLoading = false, skel
|
|
|
15
17
|
}
|
|
16
18
|
/** Skeleton loading row - matches TokenRow dimensions with token + chain badge */
|
|
17
19
|
function SkeletonRow() {
|
|
18
|
-
return (_jsxs("div", { className:
|
|
19
|
-
backgroundColor: "var(--daimo-skeleton)",
|
|
20
|
+
return (_jsxs("div", { className: LIST_ROW_CLASS, children: [_jsxs("div", { className: "daimo-flex-1 daimo-min-w-0 daimo-mr-3", children: [_jsx(Skeleton, { className: "daimo-h-5 daimo-w-48 daimo-rounded daimo-mb-2", rounded: "sm" }), _jsx(Skeleton, { className: "daimo-h-4 daimo-w-32 daimo-rounded", rounded: "sm" })] }), _jsxs("div", { className: "daimo-relative daimo-w-8 daimo-h-8 daimo-shrink-0", children: [_jsx(Skeleton, { className: "daimo-w-8 daimo-h-8 daimo-rounded-full", rounded: "full" }), _jsx(Skeleton, { className: "daimo-absolute -daimo-bottom-0.5 -daimo-right-0.5 daimo-w-[15px] daimo-h-[15px] daimo-rounded-full", rounded: "full", style: {
|
|
20
21
|
border: "1px solid var(--daimo-surface-secondary)",
|
|
21
22
|
} })] })] }));
|
|
22
23
|
}
|
|
@@ -24,14 +25,14 @@ function SkeletonRow() {
|
|
|
24
25
|
* Token option row - 64px height, matching ChooseOptionPage row style.
|
|
25
26
|
* Shows "$X TOKEN on Chain" with "Y TOKEN" subtitle.
|
|
26
27
|
*/
|
|
27
|
-
function TokenRow({ option, showRequired = false, onSelect, disabled = false, baseUrl }) {
|
|
28
|
+
function TokenRow({ option, showRequired = false, onSelect, disabled = false, baseUrl, }) {
|
|
28
29
|
const display = showRequired ? option.required : option.balance;
|
|
29
30
|
const chainName = getChainName(display.token.chainId);
|
|
30
31
|
const tokenAmount = formatTokenAmount(display.amount, display.token);
|
|
31
32
|
const usdAmount = formatUsdAmount(display.usd);
|
|
32
33
|
const disabledReason = option.disabledReason ??
|
|
33
34
|
(option.balance.usd < option.minimumRequired.usd
|
|
34
|
-
? `$${option.minimumRequired.usd
|
|
35
|
+
? `$${formatFixedAmount(option.minimumRequired.usd)} ${t.minimum.toLowerCase()}`
|
|
35
36
|
: null);
|
|
36
37
|
const title = `$${usdAmount} ${display.token.symbol} ${t.onChain} ${chainName}`;
|
|
37
38
|
const subtitle = disabled && disabledReason
|
|
@@ -51,13 +52,13 @@ function formatTokenAmount(amount, token) {
|
|
|
51
52
|
return "0";
|
|
52
53
|
// Use displayDecimals from token, fallback to sensible defaults
|
|
53
54
|
const decimals = token.displayDecimals ?? (num < 1 ? 6 : 2);
|
|
54
|
-
return num.toLocaleString(
|
|
55
|
+
return num.toLocaleString(getNumberLocale(), {
|
|
55
56
|
minimumFractionDigits: 0,
|
|
56
57
|
maximumFractionDigits: decimals,
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
/** Format USD amount for display */
|
|
60
61
|
function formatUsdAmount(usd) {
|
|
61
|
-
return usd
|
|
62
|
+
return formatFixedAmount(usd);
|
|
62
63
|
}
|
|
63
64
|
//# sourceMappingURL=SelectTokenPage.js.map
|