@daimo/sdk 1.0.1 → 1.0.2
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 +2 -6
- package/dist/client/createDaimoClient.d.ts.map +1 -1
- package/dist/client/createDaimoClient.js +2 -1
- package/dist/client/createDaimoClient.js.map +1 -1
- package/dist/common/legacy/assert.d.ts +6 -0
- package/dist/common/legacy/assert.d.ts.map +1 -0
- package/dist/common/legacy/assert.js +25 -0
- package/dist/common/legacy/assert.js.map +1 -0
- package/dist/common/legacy/client.d.ts +67 -0
- package/dist/common/legacy/client.d.ts.map +1 -0
- package/dist/common/legacy/client.js +55 -0
- package/dist/common/legacy/client.js.map +1 -0
- package/dist/common/legacy/debug.d.ts +5 -0
- package/dist/common/legacy/debug.d.ts.map +1 -0
- package/dist/common/legacy/debug.js +21 -0
- package/dist/common/legacy/debug.js.map +1 -0
- package/dist/common/legacy/format.d.ts +16 -0
- package/dist/common/legacy/format.d.ts.map +1 -0
- package/dist/common/legacy/format.js +34 -0
- package/dist/common/legacy/format.js.map +1 -0
- package/dist/common/legacy/index.d.ts +11 -0
- package/dist/common/legacy/index.d.ts.map +1 -0
- package/dist/common/legacy/index.js +11 -0
- package/dist/common/legacy/index.js.map +1 -0
- package/dist/common/legacy/primitiveTypes.d.ts +11 -0
- package/dist/common/legacy/primitiveTypes.d.ts.map +1 -0
- package/dist/common/legacy/primitiveTypes.js +14 -0
- package/dist/common/legacy/primitiveTypes.js.map +1 -0
- package/dist/common/legacy/session.d.ts +246 -0
- package/dist/common/legacy/session.d.ts.map +1 -0
- package/dist/common/legacy/session.js +124 -0
- package/dist/common/legacy/session.js.map +1 -0
- package/dist/common/legacy/try.d.ts +4 -0
- package/dist/common/legacy/try.d.ts.map +1 -0
- package/dist/common/legacy/try.js +26 -0
- package/dist/common/legacy/try.js.map +1 -0
- package/dist/hooks/DaimoClientContext.d.ts +7 -0
- package/dist/hooks/DaimoClientContext.d.ts.map +1 -0
- package/dist/hooks/DaimoClientContext.js +15 -0
- package/dist/hooks/DaimoClientContext.js.map +1 -0
- package/dist/hooks/formatUserError.d.ts +3 -0
- package/dist/hooks/formatUserError.d.ts.map +1 -0
- package/dist/hooks/formatUserError.js +30 -0
- package/dist/hooks/formatUserError.js.map +1 -0
- package/dist/hooks/index.d.ts +12 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +9 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/locale.d.ts +7 -0
- package/dist/hooks/locale.d.ts.map +1 -0
- package/dist/hooks/locale.js +15 -0
- package/dist/hooks/locale.js.map +1 -0
- package/dist/hooks/locales/en.d.ts +60 -0
- package/dist/hooks/locales/en.d.ts.map +1 -0
- package/dist/hooks/locales/en.js +76 -0
- package/dist/hooks/locales/en.js.map +1 -0
- package/dist/hooks/locales/es.d.ts +4 -0
- package/dist/hooks/locales/es.d.ts.map +1 -0
- package/dist/hooks/locales/es.js +60 -0
- package/dist/hooks/locales/es.js.map +1 -0
- package/dist/hooks/navEvent.d.ts +60 -0
- package/dist/hooks/navEvent.d.ts.map +1 -0
- package/dist/hooks/navEvent.js +16 -0
- package/dist/hooks/navEvent.js.map +1 -0
- package/dist/hooks/types.d.ts +71 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +14 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/hooks/usePaymentCallbacks.d.ts +15 -0
- package/dist/hooks/usePaymentCallbacks.d.ts.map +1 -0
- package/dist/hooks/usePaymentCallbacks.js +27 -0
- package/dist/hooks/usePaymentCallbacks.js.map +1 -0
- package/dist/hooks/useSessionNav.d.ts +31 -0
- package/dist/hooks/useSessionNav.d.ts.map +1 -0
- package/dist/hooks/useSessionNav.js +439 -0
- package/dist/hooks/useSessionNav.js.map +1 -0
- package/dist/hooks/useSessionPolling.d.ts +10 -0
- package/dist/hooks/useSessionPolling.d.ts.map +1 -0
- package/dist/hooks/useSessionPolling.js +61 -0
- package/dist/hooks/useSessionPolling.js.map +1 -0
- package/dist/web/ChooseOptionPage.d.ts +9 -0
- package/dist/web/ChooseOptionPage.d.ts.map +1 -0
- package/dist/web/ChooseOptionPage.js +51 -0
- package/dist/web/ChooseOptionPage.js.map +1 -0
- package/dist/web/ConfirmationPage.d.ts +32 -0
- package/dist/web/ConfirmationPage.d.ts.map +1 -0
- package/dist/web/ConfirmationPage.js +72 -0
- package/dist/web/ConfirmationPage.js.map +1 -0
- package/dist/web/ConfirmationSpinner.d.ts +7 -0
- package/dist/web/ConfirmationSpinner.d.ts.map +1 -0
- package/dist/web/ConfirmationSpinner.js +20 -0
- package/dist/web/ConfirmationSpinner.js.map +1 -0
- package/dist/web/DaimoModal.d.ts +15 -0
- package/dist/web/DaimoModal.d.ts.map +1 -0
- package/dist/web/DaimoModal.js +283 -0
- package/dist/web/DaimoModal.js.map +1 -0
- package/dist/web/DeeplinkPage.d.ts +8 -0
- package/dist/web/DeeplinkPage.d.ts.map +1 -0
- package/dist/web/DeeplinkPage.js +13 -0
- package/dist/web/DeeplinkPage.js.map +1 -0
- package/dist/web/ErrorPage.d.ts +28 -0
- package/dist/web/ErrorPage.d.ts.map +1 -0
- package/dist/web/ErrorPage.js +47 -0
- package/dist/web/ErrorPage.js.map +1 -0
- package/dist/web/ExchangePage.d.ts +11 -0
- package/dist/web/ExchangePage.d.ts.map +1 -0
- package/dist/web/ExchangePage.js +13 -0
- package/dist/web/ExchangePage.js.map +1 -0
- package/dist/web/ExpiredPage.d.ts +9 -0
- package/dist/web/ExpiredPage.d.ts.map +1 -0
- package/dist/web/ExpiredPage.js +12 -0
- package/dist/web/ExpiredPage.js.map +1 -0
- package/dist/web/ModalSkeleton.d.ts +7 -0
- package/dist/web/ModalSkeleton.d.ts.map +1 -0
- package/dist/web/ModalSkeleton.js +13 -0
- package/dist/web/ModalSkeleton.js.map +1 -0
- package/dist/web/ProgressDots.d.ts +16 -0
- package/dist/web/ProgressDots.d.ts.map +1 -0
- package/dist/web/ProgressDots.js +55 -0
- package/dist/web/ProgressDots.js.map +1 -0
- package/dist/web/QRCode.d.ts +7 -0
- package/dist/web/QRCode.d.ts.map +1 -0
- package/dist/web/QRCode.js +69 -0
- package/dist/web/QRCode.js.map +1 -0
- package/dist/web/SelectAmountPage.d.ts +21 -0
- package/dist/web/SelectAmountPage.d.ts.map +1 -0
- package/dist/web/SelectAmountPage.js +27 -0
- package/dist/web/SelectAmountPage.js.map +1 -0
- package/dist/web/SelectTokenPage.d.ts +14 -0
- package/dist/web/SelectTokenPage.d.ts.map +1 -0
- package/dist/web/SelectTokenPage.js +71 -0
- package/dist/web/SelectTokenPage.js.map +1 -0
- package/dist/web/WaitingDepositAddressPage.d.ts +14 -0
- package/dist/web/WaitingDepositAddressPage.d.ts.map +1 -0
- package/dist/web/WaitingDepositAddressPage.js +126 -0
- package/dist/web/WaitingDepositAddressPage.js.map +1 -0
- package/dist/web/WalletAmountPage.d.ts +10 -0
- package/dist/web/WalletAmountPage.d.ts.map +1 -0
- package/dist/web/WalletAmountPage.js +158 -0
- package/dist/web/WalletAmountPage.js.map +1 -0
- package/dist/web/api/index.d.ts +10 -0
- package/dist/web/api/index.d.ts.map +1 -1
- package/dist/web/api/navTree.d.ts +7 -2
- package/dist/web/api/navTree.d.ts.map +1 -1
- package/dist/web/buttons.d.ts +15 -0
- package/dist/web/buttons.d.ts.map +1 -0
- package/dist/web/buttons.js +24 -0
- package/dist/web/buttons.js.map +1 -0
- package/dist/web/components/ChooseChainPage.d.ts +2 -1
- package/dist/web/components/ChooseChainPage.d.ts.map +1 -1
- package/dist/web/components/ChooseChainPage.js +4 -4
- package/dist/web/components/ChooseChainPage.js.map +1 -1
- package/dist/web/components/ChooseOptionPage.d.ts +3 -1
- package/dist/web/components/ChooseOptionPage.d.ts.map +1 -1
- package/dist/web/components/ChooseOptionPage.js +31 -11
- package/dist/web/components/ChooseOptionPage.js.map +1 -1
- package/dist/web/components/ChooseWalletPage.d.ts +2 -1
- package/dist/web/components/ChooseWalletPage.d.ts.map +1 -1
- package/dist/web/components/ChooseWalletPage.js +9 -7
- package/dist/web/components/ChooseWalletPage.js.map +1 -1
- package/dist/web/components/ConfirmationPage.d.ts +6 -3
- package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
- package/dist/web/components/ConfirmationPage.js +11 -9
- package/dist/web/components/ConfirmationPage.js.map +1 -1
- package/dist/web/components/DaimoModal.js +24 -17
- package/dist/web/components/DaimoModal.js.map +1 -1
- package/dist/web/components/DeeplinkPage.d.ts +2 -1
- package/dist/web/components/DeeplinkPage.d.ts.map +1 -1
- package/dist/web/components/DeeplinkPage.js +3 -3
- package/dist/web/components/DeeplinkPage.js.map +1 -1
- package/dist/web/components/ExchangePage.d.ts +2 -1
- package/dist/web/components/ExchangePage.d.ts.map +1 -1
- package/dist/web/components/ExchangePage.js +2 -2
- package/dist/web/components/ExchangePage.js.map +1 -1
- package/dist/web/components/SelectAmountPage.d.ts +2 -1
- package/dist/web/components/SelectAmountPage.d.ts.map +1 -1
- package/dist/web/components/SelectAmountPage.js +3 -3
- package/dist/web/components/SelectAmountPage.js.map +1 -1
- package/dist/web/components/SelectTokenPage.d.ts +2 -1
- package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
- package/dist/web/components/SelectTokenPage.js +8 -13
- package/dist/web/components/SelectTokenPage.js.map +1 -1
- package/dist/web/components/WaitingDepositAddressPage.d.ts +2 -1
- package/dist/web/components/WaitingDepositAddressPage.d.ts.map +1 -1
- package/dist/web/components/WaitingDepositAddressPage.js +9 -9
- package/dist/web/components/WaitingDepositAddressPage.js.map +1 -1
- package/dist/web/components/WalletAmountPage.d.ts +2 -1
- package/dist/web/components/WalletAmountPage.d.ts.map +1 -1
- package/dist/web/components/WalletAmountPage.js +14 -11
- package/dist/web/components/WalletAmountPage.js.map +1 -1
- package/dist/web/components/buttons.d.ts.map +1 -1
- package/dist/web/components/buttons.js +4 -8
- package/dist/web/components/buttons.js.map +1 -1
- package/dist/web/components/containers.d.ts.map +1 -1
- package/dist/web/components/containers.js +7 -9
- package/dist/web/components/containers.js.map +1 -1
- package/dist/web/components/icons.d.ts +3 -1
- package/dist/web/components/icons.d.ts.map +1 -1
- package/dist/web/components/icons.js +9 -5
- package/dist/web/components/icons.js.map +1 -1
- package/dist/web/components/shared.d.ts +30 -8
- package/dist/web/components/shared.d.ts.map +1 -1
- package/dist/web/components/shared.js +48 -23
- package/dist/web/components/shared.js.map +1 -1
- package/dist/web/containers.d.ts +19 -0
- package/dist/web/containers.d.ts.map +1 -0
- package/dist/web/containers.js +77 -0
- package/dist/web/containers.js.map +1 -0
- package/dist/web/hooks/locales/en.d.ts +2 -0
- package/dist/web/hooks/locales/en.d.ts.map +1 -1
- package/dist/web/hooks/locales/en.js +10 -8
- 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 +2 -0
- package/dist/web/hooks/locales/es.js.map +1 -1
- package/dist/web/hooks/types.d.ts +1 -0
- package/dist/web/hooks/types.d.ts.map +1 -1
- package/dist/web/hooks/types.js.map +1 -1
- package/dist/web/hooks/useInjectedWallets.d.ts +4 -1
- package/dist/web/hooks/useInjectedWallets.d.ts.map +1 -1
- package/dist/web/hooks/useInjectedWallets.js +84 -25
- package/dist/web/hooks/useInjectedWallets.js.map +1 -1
- package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
- package/dist/web/hooks/useSessionNav.js +44 -25
- package/dist/web/hooks/useSessionNav.js.map +1 -1
- package/dist/web/hooks/useWalletFlow.d.ts +1 -1
- package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
- package/dist/web/hooks/useWalletFlow.js +46 -6
- package/dist/web/hooks/useWalletFlow.js.map +1 -1
- package/dist/web/hooks/walletProvider.d.ts +10 -2
- package/dist/web/hooks/walletProvider.d.ts.map +1 -1
- package/dist/web/hooks/walletProvider.js +69 -7
- package/dist/web/hooks/walletProvider.js.map +1 -1
- package/dist/web/icons.d.ts +22 -0
- package/dist/web/icons.d.ts.map +1 -0
- package/dist/web/icons.js +33 -0
- package/dist/web/icons.js.map +1 -0
- package/dist/web/shared.d.ts +93 -0
- package/dist/web/shared.d.ts.map +1 -0
- package/dist/web/shared.js +202 -0
- package/dist/web/shared.js.map +1 -0
- package/dist/web/styles.css +1 -1
- package/dist/web/theme.css +19 -18
- package/dist/web/useCopyToClipboard.d.ts +6 -0
- package/dist/web/useCopyToClipboard.d.ts.map +1 -0
- package/dist/web/useCopyToClipboard.js +20 -0
- package/dist/web/useCopyToClipboard.js.map +1 -0
- package/dist/web/useWalletFlow.d.ts +23 -0
- package/dist/web/useWalletFlow.d.ts.map +1 -0
- package/dist/web/useWalletFlow.js +334 -0
- package/dist/web/useWalletFlow.js.map +1 -0
- package/dist/web/walletProvider.d.ts +34 -0
- package/dist/web/walletProvider.d.ts.map +1 -0
- package/dist/web/walletProvider.js +14 -0
- package/dist/web/walletProvider.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaimoModal.js","sourceRoot":"","sources":["../../src/web/DaimoModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NavNodeDeeplink } from "../common/legacy/session.js";
|
|
2
|
+
type DeeplinkPageProps = {
|
|
3
|
+
node: NavNodeDeeplink;
|
|
4
|
+
onBack: (() => void) | null;
|
|
5
|
+
};
|
|
6
|
+
export declare function DeeplinkPage({ node, onBack }: DeeplinkPageProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=DeeplinkPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeeplinkPage.d.ts","sourceRoot":"","sources":["../../src/web/DeeplinkPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAM9D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,2CAqB/D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
|
|
3
|
+
import { t } from "../hooks/locale.js";
|
|
4
|
+
import { PageContent, PageHeader, PageLogo } from "./shared.js";
|
|
5
|
+
export function DeeplinkPage({ node, onBack }) {
|
|
6
|
+
const openDeeplink = () => {
|
|
7
|
+
if (node.url) {
|
|
8
|
+
window.open(node.url, "_blank");
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
return (_jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack ?? undefined }), _jsxs(PageContent, { children: [node.icon && _jsx(PageLogo, { icon: node.icon, alt: node.title }), _jsxs("p", { className: "text-[var(--daimo-text-secondary)] text-center max-w-xs", children: [t.continueIn, " ", node.title, " ", t.toCompleteYourPayment] }), _jsxs(PrimaryButton, { onClick: openDeeplink, icon: _jsx(ExternalLinkIcon, {}), children: [t.openIn, " ", node.title] })] })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=DeeplinkPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeeplinkPage.js","sourceRoot":"","sources":["../../src/web/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,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOhE,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAqB;IAC9D,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,8BAA8B,aAC3C,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,GAAI,EAC9D,MAAC,WAAW,eACT,IAAI,CAAC,IAAI,IAAI,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,GAAI,EAC5D,aAAG,SAAS,EAAC,yDAAyD,aACnE,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,IACJ,IACV,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type NavNodeType } from "../hooks/navEvent.js";
|
|
2
|
+
type ErrorPageProps = {
|
|
3
|
+
message: unknown;
|
|
4
|
+
/** Button text, defaults to "Reload" */
|
|
5
|
+
retryText?: string;
|
|
6
|
+
/** Retry callback, defaults to window.location.reload() */
|
|
7
|
+
onRetry?: () => void;
|
|
8
|
+
/** Email subject for support button */
|
|
9
|
+
supportSubject?: string;
|
|
10
|
+
/** Additional info to include in support email */
|
|
11
|
+
supportInfo?: Record<string, string>;
|
|
12
|
+
/** Session ID for event logging (optional) */
|
|
13
|
+
sessionId?: string;
|
|
14
|
+
/** Current node context for event logging (optional) */
|
|
15
|
+
nodeId?: string | null;
|
|
16
|
+
nodeType?: NavNodeType | null;
|
|
17
|
+
/** Hide retry button */
|
|
18
|
+
hideRetry?: boolean;
|
|
19
|
+
/** Hide support button */
|
|
20
|
+
hideSupport?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Standard error page with icon, message, retry button, and support link.
|
|
24
|
+
* Use for network errors, session creation failures, etc.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ErrorPage({ message, retryText, onRetry, supportSubject, supportInfo, sessionId, nodeId, nodeType, hideRetry, hideSupport, }: ErrorPageProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=ErrorPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorPage.d.ts","sourceRoot":"","sources":["../../src/web/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,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;IACpB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAoB,EACpB,OAAO,EACP,cAAwB,EACxB,WAAgB,EAChB,SAAS,EACT,MAAa,EACb,QAAe,EACf,SAAiB,EACjB,WAAmB,GACpB,EAAE,cAAc,2CAsDhB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo } from "react";
|
|
3
|
+
import { SecondaryButton } from "./buttons.js";
|
|
4
|
+
import { ErrorIcon } from "./icons.js";
|
|
5
|
+
import { useDaimoClient } from "../hooks/DaimoClientContext.js";
|
|
6
|
+
import { t } from "../hooks/locale.js";
|
|
7
|
+
import { createNavLogger } from "../hooks/navEvent.js";
|
|
8
|
+
import { ContactSupportButton, ErrorMessage, PageHeader } from "./shared.js";
|
|
9
|
+
/** Extract a displayable string from any error value. */
|
|
10
|
+
function extractMessage(value) {
|
|
11
|
+
if (typeof value === "string")
|
|
12
|
+
return value;
|
|
13
|
+
if (value && typeof value === "object" && "message" in value) {
|
|
14
|
+
return String(value.message);
|
|
15
|
+
}
|
|
16
|
+
return t.unknownError;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Standard error page with icon, message, retry button, and support link.
|
|
20
|
+
* Use for network errors, session creation failures, etc.
|
|
21
|
+
*/
|
|
22
|
+
export function ErrorPage({ message, retryText = t.reload, onRetry, supportSubject = t.error, supportInfo = {}, sessionId, nodeId = null, nodeType = null, hideRetry = false, hideSupport = false, }) {
|
|
23
|
+
const displayMessage = extractMessage(message);
|
|
24
|
+
const client = useDaimoClient();
|
|
25
|
+
const logNavEvent = useMemo(() => createNavLogger(client), [client]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
console.error("[ErrorPage]", message);
|
|
28
|
+
if (sessionId == null)
|
|
29
|
+
return;
|
|
30
|
+
logNavEvent(sessionId, {
|
|
31
|
+
nodeId,
|
|
32
|
+
nodeType,
|
|
33
|
+
action: "error_shown",
|
|
34
|
+
error: displayMessage,
|
|
35
|
+
});
|
|
36
|
+
}, [message, sessionId, nodeId, nodeType, displayMessage, logNavEvent]);
|
|
37
|
+
const handleRetry = () => {
|
|
38
|
+
if (onRetry) {
|
|
39
|
+
onRetry();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
window.location.reload();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [_jsx(PageHeader, { title: t.error }), _jsxs("div", { className: "flex-1 flex flex-col items-center justify-center p-6 gap-6", children: [_jsx("div", { className: "w-20 h-20 rounded-full flex items-center justify-center", style: { backgroundColor: "var(--daimo-error-light)" }, children: _jsx(ErrorIcon, {}) }), _jsx(ErrorMessage, { message: displayMessage }), !hideRetry && (_jsx(SecondaryButton, { onClick: handleRetry, children: retryText })), !hideSupport && (_jsx(ContactSupportButton, { subject: supportSubject, info: { error: displayMessage, ...supportInfo } }))] })] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ErrorPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../src/web/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;AAuBD;;;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,MAAM,GAAG,IAAI,EACb,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,KAAK,GACJ;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;YACrB,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,8BAA8B,aAC3C,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAC9B,eAAK,SAAS,EAAC,4DAA4D,aAEzE,cACE,SAAS,EAAC,yDAAyD,EACnE,KAAK,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE,YAEtD,KAAC,SAAS,KAAG,GACT,EAGN,KAAC,YAAY,IAAC,OAAO,EAAE,cAAc,GAAI,EAGxC,CAAC,SAAS,IAAI,CACb,KAAC,eAAe,IAAC,OAAO,EAAE,WAAW,YAAG,SAAS,GAAmB,CACrE,EAGA,CAAC,WAAW,IAAI,CACf,KAAC,oBAAoB,IACnB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,GAC/C,CACH,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NavNodeExchange } from "../common/legacy/session.js";
|
|
2
|
+
type ExchangePageProps = {
|
|
3
|
+
node: NavNodeExchange;
|
|
4
|
+
exchangeUrl?: string;
|
|
5
|
+
waitingMessage?: string;
|
|
6
|
+
isLoading?: boolean;
|
|
7
|
+
onBack: () => void;
|
|
8
|
+
};
|
|
9
|
+
export declare function ExchangePage({ node, exchangeUrl, waitingMessage, isLoading, onBack, }: ExchangePageProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ExchangePage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExchangePage.d.ts","sourceRoot":"","sources":["../../src/web/ExchangePage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAM9D,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,GACP,EAAE,iBAAiB,2CA+BnB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ExternalLinkIcon, PrimaryButton } from "./buttons.js";
|
|
3
|
+
import { t } from "../hooks/locale.js";
|
|
4
|
+
import { PageContent, PageHeader, PageLogo } from "./shared.js";
|
|
5
|
+
export function ExchangePage({ node, exchangeUrl, waitingMessage, isLoading, onBack, }) {
|
|
6
|
+
const openExchange = () => {
|
|
7
|
+
if (exchangeUrl)
|
|
8
|
+
window.open(exchangeUrl, "_blank");
|
|
9
|
+
};
|
|
10
|
+
return (_jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [_jsx(PageHeader, { title: node.title, onBack: onBack }), _jsxs(PageContent, { children: [node.icon && _jsx(PageLogo, { icon: node.icon, alt: node.title }), isLoading ? (_jsxs("div", { className: "flex flex-col items-center gap-2 max-w-xs w-full", children: [_jsx("div", { className: "h-4 w-4/5 rounded bg-[var(--daimo-surface-secondary)] animate-pulse" }), _jsx("div", { className: "h-4 w-3/5 rounded bg-[var(--daimo-surface-secondary)] animate-pulse" })] })) : (_jsx("p", { className: "text-[var(--daimo-text-secondary)] text-center max-w-xs", children: waitingMessage ||
|
|
11
|
+
`${t.continueTo} ${node.title} ${t.toCompleteYourDeposit}` })), _jsxs(PrimaryButton, { onClick: openExchange, icon: _jsx(ExternalLinkIcon, {}), disabled: isLoading, children: [t.open, " ", node.title] })] })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ExchangePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExchangePage.js","sourceRoot":"","sources":["../../src/web/ExchangePage.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,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAUhE,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,WAAW,EACX,cAAc,EACd,SAAS,EACT,MAAM,GACY;IAClB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,WAAW;YAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,EACjD,MAAC,WAAW,eACT,IAAI,CAAC,IAAI,IAAI,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,GAAI,EAC3D,SAAS,CAAC,CAAC,CAAC,CACX,eAAK,SAAS,EAAC,kDAAkD,aAC/D,cAAK,SAAS,EAAC,qEAAqE,GAAG,EACvF,cAAK,SAAS,EAAC,qEAAqE,GAAG,IACnF,CACP,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,yDAAyD,YACnE,cAAc;4BACb,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,qBAAqB,EAAE,GAC1D,CACL,EACD,MAAC,aAAa,IACZ,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,KAAC,gBAAgB,KAAG,EAC1B,QAAQ,EAAE,SAAS,aAElB,CAAC,CAAC,IAAI,OAAG,IAAI,CAAC,KAAK,IACN,IACJ,IACV,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type ExpiredPageProps = {
|
|
2
|
+
onClose?: () => void;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Expired page shown when a payment session times out.
|
|
6
|
+
*/
|
|
7
|
+
export declare function ExpiredPage({ onClose }: ExpiredPageProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ExpiredPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpiredPage.d.ts","sourceRoot":"","sources":["../../src/web/ExpiredPage.tsx"],"names":[],"mappings":"AAKA,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,gBAAgB,2CAoBxD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SecondaryButton } from "./buttons.js";
|
|
3
|
+
import { ExpiredIcon } from "./icons.js";
|
|
4
|
+
import { t } from "../hooks/locale.js";
|
|
5
|
+
import { PageHeader } from "./shared.js";
|
|
6
|
+
/**
|
|
7
|
+
* Expired page shown when a payment session times out.
|
|
8
|
+
*/
|
|
9
|
+
export function ExpiredPage({ onClose }) {
|
|
10
|
+
return (_jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [_jsx(PageHeader, { title: t.expired }), _jsxs("div", { className: "flex-1 flex flex-col items-center justify-center p-6 gap-6", children: [_jsx("div", { className: "w-20 h-20 rounded-full flex items-center justify-center", style: { backgroundColor: "var(--daimo-error-light)" }, children: _jsx(ExpiredIcon, {}) }), _jsx("p", { className: "text-[var(--daimo-text-secondary)]", children: t.paymentSessionExpired }), onClose && (_jsx(SecondaryButton, { onClick: onClose, children: t.close }))] })] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ExpiredPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpiredPage.js","sourceRoot":"","sources":["../../src/web/ExpiredPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAoB;IACvD,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,GAAI,EAChC,eAAK,SAAS,EAAC,4DAA4D,aACzE,cACE,SAAS,EAAC,yDAAyD,EACnE,KAAK,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE,YAEtD,KAAC,WAAW,KAAG,GACX,EACN,YAAG,SAAS,EAAC,oCAAoC,YAC9C,CAAC,CAAC,qBAAqB,GACtB,EACH,OAAO,IAAI,CACV,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,YAAG,CAAC,CAAC,KAAK,GAAmB,CAC/D,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loading skeleton for the session modal.
|
|
3
|
+
* Shows header + scrollable token rows layout (matches SelectTokenPage).
|
|
4
|
+
* Respects prefers-reduced-motion for accessibility.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ModalSkeleton(): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=ModalSkeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalSkeleton.d.ts","sourceRoot":"","sources":["../../src/web/ModalSkeleton.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,aAAa,4CA0B5B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Loading skeleton for the session modal.
|
|
4
|
+
* Shows header + scrollable token rows layout (matches SelectTokenPage).
|
|
5
|
+
* Respects prefers-reduced-motion for accessibility.
|
|
6
|
+
*/
|
|
7
|
+
export function ModalSkeleton() {
|
|
8
|
+
return (_jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [_jsx("div", { className: "flex items-center justify-center h-14 px-6", children: _jsx("div", { className: "h-5 w-32 rounded motion-safe:animate-pulse", style: { backgroundColor: "var(--daimo-skeleton)" } }) }), _jsx("div", { className: "flex-1 px-6 pb-4 flex flex-col gap-3", children: [...Array(11)].map((_, i) => (_jsx("div", { className: "h-16 rounded-[var(--daimo-radius-lg)] motion-safe:animate-pulse", style: {
|
|
9
|
+
backgroundColor: "var(--daimo-skeleton)",
|
|
10
|
+
animationDelay: `${i * 100}ms`,
|
|
11
|
+
} }, i))) })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ModalSkeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalSkeleton.js","sourceRoot":"","sources":["../../src/web/ModalSkeleton.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAE3C,cAAK,SAAS,EAAC,4CAA4C,YACzD,cACE,SAAS,EAAC,4CAA4C,EACtD,KAAK,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,GACnD,GACE,EAGN,cAAK,SAAS,EAAC,sCAAsC,YAClD,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,cAEE,SAAS,EAAC,iEAAiE,EAC3E,KAAK,EAAE;wBACL,eAAe,EAAE,uBAAuB;wBACxC,cAAc,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI;qBAC/B,IALI,CAAC,CAMN,CACH,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type ProgressDotsStatus = "confirming" | "processing" | "done" | "refunding";
|
|
2
|
+
type ProgressDotsProps = {
|
|
3
|
+
status: ProgressDotsStatus;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Two-dot progress indicator with connecting line.
|
|
8
|
+
*
|
|
9
|
+
* Confirming: both dots grey (unfilled), line grey
|
|
10
|
+
* Processing: first dot blue, second gray, line gray
|
|
11
|
+
* Done: both dots green, line green
|
|
12
|
+
* Refunding: both dots red, line red
|
|
13
|
+
*/
|
|
14
|
+
export declare function ProgressDots({ status, label }: ProgressDotsProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=ProgressDots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressDots.d.ts","sourceRoot":"","sources":["../../src/web/ProgressDots.tsx"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAE7E,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,iBAAiB,2CAqBhE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Two-dot progress indicator with connecting line.
|
|
4
|
+
*
|
|
5
|
+
* Confirming: both dots grey (unfilled), line grey
|
|
6
|
+
* Processing: first dot blue, second gray, line gray
|
|
7
|
+
* Done: both dots green, line green
|
|
8
|
+
* Refunding: both dots red, line red
|
|
9
|
+
*/
|
|
10
|
+
export function ProgressDots({ status, label }) {
|
|
11
|
+
const colors = getColors(status);
|
|
12
|
+
return (_jsxs("div", { className: "flex flex-col items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-0", children: [_jsx(Dot, { filled: status !== "confirming", color: colors.first }), _jsx(Line, { color: colors.line }), _jsx(Dot, { filled: status === "done" || status === "refunding", color: colors.second })] }), _jsx("span", { className: "text-sm font-medium", style: { color: colors.text }, children: label })] }));
|
|
13
|
+
}
|
|
14
|
+
function Dot({ filled, color }) {
|
|
15
|
+
return (_jsx("div", { className: "w-3 h-3 rounded-full border-2", style: {
|
|
16
|
+
borderColor: color,
|
|
17
|
+
backgroundColor: filled ? color : "transparent",
|
|
18
|
+
} }));
|
|
19
|
+
}
|
|
20
|
+
function Line({ color }) {
|
|
21
|
+
return _jsx("div", { className: "w-12 h-0.5", style: { backgroundColor: color } });
|
|
22
|
+
}
|
|
23
|
+
function getColors(status) {
|
|
24
|
+
switch (status) {
|
|
25
|
+
case "confirming":
|
|
26
|
+
return {
|
|
27
|
+
first: "var(--daimo-placeholder)",
|
|
28
|
+
second: "var(--daimo-placeholder)",
|
|
29
|
+
line: "var(--daimo-placeholder)",
|
|
30
|
+
text: "var(--daimo-text-secondary)",
|
|
31
|
+
};
|
|
32
|
+
case "processing":
|
|
33
|
+
return {
|
|
34
|
+
first: "var(--daimo-accent)",
|
|
35
|
+
second: "var(--daimo-placeholder)",
|
|
36
|
+
line: "var(--daimo-placeholder)",
|
|
37
|
+
text: "var(--daimo-text-secondary)",
|
|
38
|
+
};
|
|
39
|
+
case "done":
|
|
40
|
+
return {
|
|
41
|
+
first: "var(--daimo-success)",
|
|
42
|
+
second: "var(--daimo-success)",
|
|
43
|
+
line: "var(--daimo-success)",
|
|
44
|
+
text: "var(--daimo-success)",
|
|
45
|
+
};
|
|
46
|
+
case "refunding":
|
|
47
|
+
return {
|
|
48
|
+
first: "var(--daimo-error)",
|
|
49
|
+
second: "var(--daimo-error)",
|
|
50
|
+
line: "var(--daimo-error)",
|
|
51
|
+
text: "var(--daimo-error)",
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ProgressDots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressDots.js","sourceRoot":"","sources":["../../src/web/ProgressDots.tsx"],"names":[],"mappings":";AAOA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAqB;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,CACL,eAAK,SAAS,EAAC,kCAAkC,aAE/C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,EAC7D,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,EAC5B,KAAC,GAAG,IACF,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,EACnD,KAAK,EAAE,MAAM,CAAC,MAAM,GACpB,IACE,EAGN,eAAM,SAAS,EAAC,qBAAqB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,YAChE,KAAK,GACD,IACH,CACP,CAAC;AACJ,CAAC;AAOD,SAAS,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAY;IACtC,OAAO,CACL,cACE,SAAS,EAAC,+BAA+B,EACzC,KAAK,EAAE;YACL,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa;SAChD,GACD,CACH,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAE,KAAK,EAAqB;IACxC,OAAO,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,GAAI,CAAC;AAC3E,CAAC;AASD,SAAS,SAAS,CAAC,MAA0B;IAC3C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO;gBACL,KAAK,EAAE,0BAA0B;gBACjC,MAAM,EAAE,0BAA0B;gBAClC,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,6BAA6B;aACpC,CAAC;QACJ,KAAK,YAAY;YACf,OAAO;gBACL,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,0BAA0B;gBAClC,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,6BAA6B;aACpC,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,sBAAsB;gBAC9B,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,sBAAsB;aAC7B,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,KAAK,EAAE,oBAAoB;gBAC3B,MAAM,EAAE,oBAAoB;gBAC5B,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,oBAAoB;aAC3B,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QRCode.d.ts","sourceRoot":"","sources":["../../src/web/QRCode.tsx"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAKF,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,2CAqHnD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import QRCodeLib from "qrcode";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
/** SVG viewBox size for quality (actual display size is controlled by CSS) */
|
|
5
|
+
const VIEW_SIZE = 288;
|
|
6
|
+
export function QRCode({ value, image }) {
|
|
7
|
+
const dots = useMemo(() => {
|
|
8
|
+
const dots = [];
|
|
9
|
+
let matrix;
|
|
10
|
+
try {
|
|
11
|
+
const qr = QRCodeLib.create(value, { errorCorrectionLevel: "M" });
|
|
12
|
+
const arr = Array.prototype.slice.call(qr.modules.data, 0);
|
|
13
|
+
const sqrt = Math.sqrt(arr.length);
|
|
14
|
+
matrix = arr.reduce((rows, key, index) => (index % sqrt === 0
|
|
15
|
+
? rows.push([key])
|
|
16
|
+
: rows[rows.length - 1].push(key)) && rows, []);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return dots;
|
|
20
|
+
}
|
|
21
|
+
const cellSize = VIEW_SIZE / matrix.length;
|
|
22
|
+
// Draw position finder patterns (3 corners) as nested rounded rectangles
|
|
23
|
+
const finderPositions = [
|
|
24
|
+
{ x: 0, y: 0 },
|
|
25
|
+
{ x: 1, y: 0 },
|
|
26
|
+
{ x: 0, y: 1 },
|
|
27
|
+
];
|
|
28
|
+
finderPositions.forEach(({ x, y }) => {
|
|
29
|
+
const x1 = (matrix.length - 7) * cellSize * x;
|
|
30
|
+
const y1 = (matrix.length - 7) * cellSize * y;
|
|
31
|
+
// Draw 3 nested rectangles: outer (black), middle (white), inner (black)
|
|
32
|
+
for (let i = 0; i < 3; i++) {
|
|
33
|
+
dots.push(_jsx("rect", { fill: i % 2 !== 0
|
|
34
|
+
? "var(--daimo-qr-bg, white)"
|
|
35
|
+
: "var(--daimo-qr-dot, black)", rx: (i - 2) * -5 + (i === 0 ? 2 : 3), ry: (i - 2) * -5 + (i === 0 ? 2 : 3), width: cellSize * (7 - i * 2), height: cellSize * (7 - i * 2), x: x1 + cellSize * i, y: y1 + cellSize * i }, `finder-${i}-${x}-${y}`));
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
// Calculate center clear area for logo (28% of QR)
|
|
39
|
+
const logoAreaSize = Math.floor((VIEW_SIZE * 0.28) / cellSize);
|
|
40
|
+
const matrixMiddleStart = matrix.length / 2 - logoAreaSize / 2;
|
|
41
|
+
const matrixMiddleEnd = matrix.length / 2 + logoAreaSize / 2 - 1;
|
|
42
|
+
// Draw data dots (circles)
|
|
43
|
+
matrix.forEach((row, i) => {
|
|
44
|
+
row.forEach((cell, j) => {
|
|
45
|
+
if (!cell)
|
|
46
|
+
return;
|
|
47
|
+
// Skip position finder patterns
|
|
48
|
+
const inTopLeft = i < 7 && j < 7;
|
|
49
|
+
const inTopRight = i > matrix.length - 8 && j < 7;
|
|
50
|
+
const inBottomLeft = i < 7 && j > matrix.length - 8;
|
|
51
|
+
if (inTopLeft || inTopRight || inBottomLeft)
|
|
52
|
+
return;
|
|
53
|
+
// Skip center area if image is provided
|
|
54
|
+
if (image) {
|
|
55
|
+
const inCenter = i > matrixMiddleStart &&
|
|
56
|
+
i < matrixMiddleEnd &&
|
|
57
|
+
j > matrixMiddleStart &&
|
|
58
|
+
j < matrixMiddleEnd;
|
|
59
|
+
if (inCenter)
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
dots.push(_jsx("circle", { cx: i * cellSize + cellSize / 2, cy: j * cellSize + cellSize / 2, fill: "var(--daimo-qr-dot, black)", r: cellSize / 3 }, `dot-${i}-${j}`));
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
return dots;
|
|
66
|
+
}, [value, image]);
|
|
67
|
+
return (_jsx("div", { className: "qr-container relative w-full overflow-hidden rounded-2xl border border-[var(--daimo-border)] bg-[var(--daimo-qr-bg,white)]", children: _jsx("div", { className: "relative w-full pb-[100%]", children: _jsxs("div", { className: "absolute inset-[13px]", children: [_jsx("svg", { viewBox: `0 0 ${VIEW_SIZE} ${VIEW_SIZE}`, className: "block h-auto w-full", children: dots }), image && (_jsx("div", { className: "absolute left-1/2 top-1/2 flex h-[28%] w-[28%] -translate-x-1/2 -translate-y-1/2 items-center justify-center", children: image }))] }) }) }));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=QRCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QRCode.js","sourceRoot":"","sources":["../../src/web/QRCode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NavNodeDepositAddress } from "../common/legacy/session.js";
|
|
2
|
+
type SelectAmountPageProps = {
|
|
3
|
+
node: NavNodeDepositAddress | {
|
|
4
|
+
icon?: string;
|
|
5
|
+
title: string;
|
|
6
|
+
};
|
|
7
|
+
minimumUsd: number;
|
|
8
|
+
maximumUsd: number;
|
|
9
|
+
/** Token suffix for display (e.g., "USDC", "USDT") */
|
|
10
|
+
tokenSuffix?: string;
|
|
11
|
+
/** Chain ID for token badge display */
|
|
12
|
+
chainId?: number;
|
|
13
|
+
/** Optional back handler. If undefined, back button is hidden. */
|
|
14
|
+
onBack?: () => void;
|
|
15
|
+
onContinue: (amountUsd: number) => void;
|
|
16
|
+
isLoading?: boolean;
|
|
17
|
+
error?: string | null;
|
|
18
|
+
};
|
|
19
|
+
export declare function SelectAmountPage({ node, minimumUsd, maximumUsd, tokenSuffix, chainId, onBack, onContinue, isLoading, error, }: SelectAmountPageProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=SelectAmountPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectAmountPage.d.ts","sourceRoot":"","sources":["../../src/web/SelectAmountPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AAarC,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;CACvB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,GACN,EAAE,qBAAqB,2CAyEvB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { TokenLogo } from "../common/token.js";
|
|
3
|
+
import { PrimaryButton } from "./buttons.js";
|
|
4
|
+
import { t } from "../hooks/locale.js";
|
|
5
|
+
import { AmountInput, PageHeader, TokenIconWithChainBadge, resolveIconUrl, useAmountInput, } from "./shared.js";
|
|
6
|
+
export function SelectAmountPage({ node, minimumUsd, maximumUsd, tokenSuffix, chainId, onBack, onContinue, isLoading, error, }) {
|
|
7
|
+
const { amountUsd, isValid, handleChange } = useAmountInput(minimumUsd, maximumUsd);
|
|
8
|
+
// Create pseudo-token for display if tokenSuffix is USDC or USDT and chainId is provided
|
|
9
|
+
const selectedToken = tokenSuffix === "USDC" || tokenSuffix === "USDT" ? tokenSuffix : null;
|
|
10
|
+
const displayToken = selectedToken && chainId != null
|
|
11
|
+
? {
|
|
12
|
+
chainId,
|
|
13
|
+
token: "0x0",
|
|
14
|
+
symbol: selectedToken,
|
|
15
|
+
decimals: 6,
|
|
16
|
+
logoURI: selectedToken === "USDC" ? TokenLogo.USDC : TokenLogo.USDT,
|
|
17
|
+
logoSourceURI: "",
|
|
18
|
+
usd: 1,
|
|
19
|
+
priceFromUsd: 1,
|
|
20
|
+
maxAcceptUsd: 1000000,
|
|
21
|
+
maxSendUsd: 1000000,
|
|
22
|
+
displayDecimals: 2,
|
|
23
|
+
}
|
|
24
|
+
: null;
|
|
25
|
+
return (_jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [_jsx(PageHeader, { title: t.selectAmount, onBack: onBack }), _jsxs("div", { className: "flex-1 flex flex-col items-center p-6 gap-6", children: [_jsx("div", { className: "h-24 flex items-center justify-center", children: displayToken ? (_jsx(TokenIconWithChainBadge, { token: displayToken, size: "lg", badgeBorderClass: "border-2 bg-[var(--daimo-surface)] border-[var(--daimo-surface)]" })) : (node.icon && (_jsx("img", { src: resolveIconUrl(node.icon), alt: node.title, className: "w-20 h-20 rounded-full" }))) }), _jsx(AmountInput, { minimumUsd: minimumUsd, maximumUsd: maximumUsd, onSubmit: onContinue, onChange: handleChange }), error && (_jsx("div", { className: "text-red-500 text-sm text-center", children: error })), _jsx(PrimaryButton, { onClick: () => isValid && !isLoading && onContinue(amountUsd), disabled: !isValid || isLoading, children: isLoading ? t.loading : t.continue })] })] }));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=SelectAmountPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectAmountPage.js","sourceRoot":"","sources":["../../src/web/SelectAmountPage.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EACL,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AAiBrB,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,GACiB;IACtB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,cAAc,CACzD,UAAU,EACV,UAAU,CACX,CAAC;IAEF,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,8BAA8B,aAC3C,KAAC,UAAU,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,EAErD,eAAK,SAAS,EAAC,6CAA6C,aAE1D,cAAK,SAAS,EAAC,uCAAuC,YACnD,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,uBAAuB,IACtB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAC,IAAI,EACT,gBAAgB,EAAC,kEAAkE,GACnF,CACH,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,IAAI,CACX,cACE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,SAAS,EAAC,wBAAwB,GAClC,CACH,CACF,GACG,EAGN,KAAC,WAAW,IACV,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,YAAY,GACtB,EAGD,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,kCAAkC,YAAE,KAAK,GAAO,CAChE,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,YAE9B,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GACrB,IACZ,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WalletPaymentOption } from "../common/legacy/session.js";
|
|
2
|
+
type SelectTokenPageProps = {
|
|
3
|
+
/** Token options, or null if not yet loaded */
|
|
4
|
+
options: WalletPaymentOption[] | null;
|
|
5
|
+
/** Loading state - show skeletons */
|
|
6
|
+
isLoading?: boolean;
|
|
7
|
+
/** Number of skeleton rows to show while loading */
|
|
8
|
+
skeletonCount?: number;
|
|
9
|
+
onSelect: (option: WalletPaymentOption) => void;
|
|
10
|
+
};
|
|
11
|
+
/** Token selection page for wallet payment flow */
|
|
12
|
+
export declare function SelectTokenPage({ options, isLoading, skeletonCount, onSelect, }: SelectTokenPageProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=SelectTokenPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTokenPage.d.ts","sourceRoot":"","sources":["../../src/web/SelectTokenPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMjF,KAAK,oBAAoB,GAAG;IAC1B,+CAA+C;IAC/C,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACtC,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;CACjD,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,SAAiB,EACjB,aAAkB,EAClB,QAAQ,GACT,EAAE,oBAAoB,2CAyEtB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getChainName } from "../common/chain.js";
|
|
3
|
+
import { t } from "../hooks/locale.js";
|
|
4
|
+
import { PageHeader, TokenIconWithChainBadge } from "./shared.js";
|
|
5
|
+
/** Token selection page for wallet payment flow */
|
|
6
|
+
export function SelectTokenPage({ options, isLoading = false, skeletonCount = 11, onSelect, }) {
|
|
7
|
+
// Show skeletons while loading
|
|
8
|
+
if (isLoading || options === null) {
|
|
9
|
+
return (_jsxs("div", { className: "flex flex-col h-full overflow-hidden", children: [_jsx("div", { className: "shrink-0", children: _jsx(PageHeader, { title: t.selectToken }) }), _jsx("div", { className: "flex-1 min-h-0 overflow-y-auto scroll-fade px-6 pb-4", children: _jsx("div", { className: "min-h-full flex flex-col justify-end gap-3", children: Array.from({ length: skeletonCount }).map((_, i) => (_jsx(SkeletonRow, {}, i))) }) })] }));
|
|
10
|
+
}
|
|
11
|
+
// Filter options: valid tokens first, then disabled (insufficient balance or liquidity)
|
|
12
|
+
const validOptions = options.filter((opt) => opt.balance.usd >= opt.minimumRequired.usd && !opt.disabledReason);
|
|
13
|
+
const disabledOptions = options.filter((opt) => opt.balance.usd < opt.minimumRequired.usd || opt.disabledReason);
|
|
14
|
+
return (_jsxs("div", { className: "flex flex-col h-full overflow-hidden", children: [_jsx("div", { className: "shrink-0", children: _jsx(PageHeader, { title: t.selectToken }) }), _jsx("div", { className: "flex-1 min-h-0 overflow-y-auto scroll-fade px-6 pb-4", children: options.length === 0 ? (_jsx("div", { className: "flex flex-col items-center justify-center h-full gap-2", children: _jsx("p", { className: "text-[var(--daimo-text-secondary)]", children: t.noTokensFound }) })) : (
|
|
15
|
+
/* Bottom-up layout: items align to bottom when few, scroll normally when full.
|
|
16
|
+
- min-h-full ensures wrapper spans at least the full scroll area
|
|
17
|
+
- justify-end pushes items to bottom for easier thumb reach on mobile
|
|
18
|
+
- when items exceed container height, normal top-down scrolling kicks in */
|
|
19
|
+
_jsxs("div", { className: "min-h-full flex flex-col justify-end gap-3", children: [validOptions.map((option) => (_jsx(TokenRow, { option: option, onSelect: onSelect }, getTokenKey(option.balance.token)))), disabledOptions.map((option) => (_jsx(TokenRow, { option: option, onSelect: onSelect, disabled: true }, getTokenKey(option.balance.token))))] })) })] }));
|
|
20
|
+
}
|
|
21
|
+
/** Skeleton loading row - matches TokenRow dimensions with token + chain badge */
|
|
22
|
+
function SkeletonRow() {
|
|
23
|
+
return (_jsxs("div", { className: "w-full h-16 shrink-0 flex items-center justify-between px-5 rounded-[var(--daimo-radius-lg)] bg-[var(--daimo-surface-secondary)] animate-pulse", children: [_jsxs("div", { className: "flex-1 min-w-0 mr-3", children: [_jsx("div", { className: "h-5 w-48 rounded mb-2", style: { backgroundColor: "var(--daimo-skeleton)" } }), _jsx("div", { className: "h-4 w-32 rounded", style: { backgroundColor: "var(--daimo-skeleton)" } })] }), _jsxs("div", { className: "relative w-8 h-8 shrink-0", children: [_jsx("div", { className: "w-8 h-8 rounded-full", style: { backgroundColor: "var(--daimo-skeleton)" } }), _jsx("div", { className: "absolute -bottom-0.5 -right-0.5 w-[15px] h-[15px] rounded-full", style: {
|
|
24
|
+
backgroundColor: "var(--daimo-skeleton)",
|
|
25
|
+
border: "1px solid var(--daimo-surface-secondary)",
|
|
26
|
+
} })] })] }));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Token option row - 64px height, matching ChooseOptionPage row style.
|
|
30
|
+
* Shows "$X TOKEN on Chain" with "Y TOKEN" subtitle.
|
|
31
|
+
*/
|
|
32
|
+
function TokenRow({ option, onSelect, disabled = false }) {
|
|
33
|
+
const chainName = getChainName(option.balance.token.chainId);
|
|
34
|
+
const tokenAmount = formatTokenAmount(option.balance.amount, option.balance.token);
|
|
35
|
+
const usdAmount = formatUsdAmount(option.balance.usd);
|
|
36
|
+
const disabledReason = option.disabledReason ??
|
|
37
|
+
(option.balance.usd < option.minimumRequired.usd
|
|
38
|
+
? `$${option.minimumRequired.usd.toFixed(2)} ${t.minimum.toLowerCase()}`
|
|
39
|
+
: null);
|
|
40
|
+
const title = `$${usdAmount} ${option.balance.token.symbol} ${t.onChain} ${chainName}`;
|
|
41
|
+
const subtitle = disabled && disabledReason
|
|
42
|
+
? disabledReason
|
|
43
|
+
: `${tokenAmount} ${option.balance.token.symbol}`;
|
|
44
|
+
return (_jsxs("button", { onClick: () => !disabled && onSelect(option), disabled: disabled, className: `w-full h-16 shrink-0 flex items-center justify-between px-5 rounded-[var(--daimo-radius-lg)] text-left touch-action-manipulation transition-[background-color,transform] duration-150 ease-out ${disabled
|
|
45
|
+
? "opacity-50 cursor-not-allowed bg-[var(--daimo-surface-secondary)]"
|
|
46
|
+
: "bg-[var(--daimo-surface-secondary)] hover:[@media(hover:hover)]:bg-[var(--daimo-surface-hover)] active:scale-[0.98]"}`, children: [_jsxs("div", { className: "flex-1 min-w-0 mr-3", children: [_jsx("div", { className: `font-semibold truncate tabular-nums ${disabled
|
|
47
|
+
? "text-[var(--daimo-text-muted)]"
|
|
48
|
+
: "text-[var(--daimo-text)]"}`, children: title }), _jsx("div", { className: "text-sm text-[var(--daimo-text-secondary)] truncate tabular-nums", children: subtitle })] }), _jsx(TokenIconWithChainBadge, { token: option.balance.token, size: "sm" })] }));
|
|
49
|
+
}
|
|
50
|
+
// --- Helpers ---
|
|
51
|
+
/** Unique key for a token */
|
|
52
|
+
function getTokenKey(token) {
|
|
53
|
+
return `${token.chainId}-${token.token}`;
|
|
54
|
+
}
|
|
55
|
+
/** Format token amount for display - shows full precision */
|
|
56
|
+
function formatTokenAmount(amount, token) {
|
|
57
|
+
const num = parseFloat(amount) / Math.pow(10, token.decimals);
|
|
58
|
+
if (num === 0)
|
|
59
|
+
return "0";
|
|
60
|
+
// Use displayDecimals from token, fallback to sensible defaults
|
|
61
|
+
const decimals = token.displayDecimals ?? (num < 1 ? 6 : 2);
|
|
62
|
+
return num.toLocaleString("en-US", {
|
|
63
|
+
minimumFractionDigits: 0,
|
|
64
|
+
maximumFractionDigits: decimals,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/** Format USD amount for display */
|
|
68
|
+
function formatUsdAmount(usd) {
|
|
69
|
+
return usd.toFixed(2);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=SelectTokenPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTokenPage.js","sourceRoot":"","sources":["../../src/web/SelectTokenPage.tsx"],"names":[],"mappings":"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"}
|