@daimo/sdk 1.0.0-rc.1
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 +33 -0
- package/dist/client/createDaimoClient.d.ts.map +1 -0
- package/dist/client/createDaimoClient.js +79 -0
- package/dist/client/createDaimoClient.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/transport.d.ts +15 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +95 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/common/api.d.ts +184 -0
- package/dist/common/api.d.ts.map +1 -0
- package/dist/common/api.js +40 -0
- package/dist/common/api.js.map +1 -0
- package/dist/common/chain.d.ts +35 -0
- package/dist/common/chain.d.ts.map +1 -0
- package/dist/common/chain.js +198 -0
- package/dist/common/chain.js.map +1 -0
- package/dist/common/errors.d.ts +29 -0
- package/dist/common/errors.d.ts.map +1 -0
- package/dist/common/errors.js +41 -0
- package/dist/common/errors.js.map +1 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +7 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/primitives.d.ts +13 -0
- package/dist/common/primitives.d.ts.map +1 -0
- package/dist/common/primitives.js +14 -0
- package/dist/common/primitives.js.map +1 -0
- package/dist/common/session.d.ts +140 -0
- package/dist/common/session.d.ts.map +1 -0
- package/dist/common/session.js +16 -0
- package/dist/common/session.js.map +1 -0
- package/dist/common/token.d.ts +130 -0
- package/dist/common/token.d.ts.map +1 -0
- package/dist/common/token.js +783 -0
- package/dist/common/token.js.map +1 -0
- package/dist/web/api/index.d.ts +3 -0
- package/dist/web/api/index.d.ts.map +1 -0
- package/dist/web/api/index.js +2 -0
- package/dist/web/api/index.js.map +1 -0
- package/dist/web/api/navTree.d.ts +52 -0
- package/dist/web/api/navTree.d.ts.map +1 -0
- package/dist/web/api/navTree.js +2 -0
- package/dist/web/api/navTree.js.map +1 -0
- package/dist/web/api/walletTypes.d.ts +25 -0
- package/dist/web/api/walletTypes.d.ts.map +1 -0
- package/dist/web/api/walletTypes.js +2 -0
- package/dist/web/api/walletTypes.js.map +1 -0
- package/dist/web/components/ChooseOptionPage.d.ts +9 -0
- package/dist/web/components/ChooseOptionPage.d.ts.map +1 -0
- package/dist/web/components/ChooseOptionPage.js +51 -0
- package/dist/web/components/ChooseOptionPage.js.map +1 -0
- package/dist/web/components/ConfirmationPage.d.ts +32 -0
- package/dist/web/components/ConfirmationPage.d.ts.map +1 -0
- package/dist/web/components/ConfirmationPage.js +72 -0
- package/dist/web/components/ConfirmationPage.js.map +1 -0
- package/dist/web/components/ConfirmationSpinner.d.ts +7 -0
- package/dist/web/components/ConfirmationSpinner.d.ts.map +1 -0
- package/dist/web/components/ConfirmationSpinner.js +20 -0
- package/dist/web/components/ConfirmationSpinner.js.map +1 -0
- package/dist/web/components/DaimoModal.d.ts +15 -0
- package/dist/web/components/DaimoModal.d.ts.map +1 -0
- package/dist/web/components/DaimoModal.js +314 -0
- package/dist/web/components/DaimoModal.js.map +1 -0
- package/dist/web/components/DeeplinkPage.d.ts +8 -0
- package/dist/web/components/DeeplinkPage.d.ts.map +1 -0
- package/dist/web/components/DeeplinkPage.js +13 -0
- package/dist/web/components/DeeplinkPage.js.map +1 -0
- package/dist/web/components/ErrorPage.d.ts +29 -0
- package/dist/web/components/ErrorPage.d.ts.map +1 -0
- package/dist/web/components/ErrorPage.js +47 -0
- package/dist/web/components/ErrorPage.js.map +1 -0
- package/dist/web/components/ExchangePage.d.ts +11 -0
- package/dist/web/components/ExchangePage.d.ts.map +1 -0
- package/dist/web/components/ExchangePage.js +13 -0
- package/dist/web/components/ExchangePage.js.map +1 -0
- package/dist/web/components/ExpiredPage.d.ts +9 -0
- package/dist/web/components/ExpiredPage.d.ts.map +1 -0
- package/dist/web/components/ExpiredPage.js +12 -0
- package/dist/web/components/ExpiredPage.js.map +1 -0
- package/dist/web/components/ModalSkeleton.d.ts +7 -0
- package/dist/web/components/ModalSkeleton.d.ts.map +1 -0
- package/dist/web/components/ModalSkeleton.js +13 -0
- package/dist/web/components/ModalSkeleton.js.map +1 -0
- package/dist/web/components/ProgressDots.d.ts +16 -0
- package/dist/web/components/ProgressDots.d.ts.map +1 -0
- package/dist/web/components/ProgressDots.js +55 -0
- package/dist/web/components/ProgressDots.js.map +1 -0
- package/dist/web/components/QRCode.d.ts +7 -0
- package/dist/web/components/QRCode.d.ts.map +1 -0
- package/dist/web/components/QRCode.js +69 -0
- package/dist/web/components/QRCode.js.map +1 -0
- package/dist/web/components/SelectAmountPage.d.ts +21 -0
- package/dist/web/components/SelectAmountPage.d.ts.map +1 -0
- package/dist/web/components/SelectAmountPage.js +27 -0
- package/dist/web/components/SelectAmountPage.js.map +1 -0
- package/dist/web/components/SelectTokenPage.d.ts +14 -0
- package/dist/web/components/SelectTokenPage.d.ts.map +1 -0
- package/dist/web/components/SelectTokenPage.js +71 -0
- package/dist/web/components/SelectTokenPage.js.map +1 -0
- package/dist/web/components/WaitingDepositAddressPage.d.ts +15 -0
- package/dist/web/components/WaitingDepositAddressPage.d.ts.map +1 -0
- package/dist/web/components/WaitingDepositAddressPage.js +126 -0
- package/dist/web/components/WaitingDepositAddressPage.js.map +1 -0
- package/dist/web/components/WalletAmountPage.d.ts +10 -0
- package/dist/web/components/WalletAmountPage.d.ts.map +1 -0
- package/dist/web/components/WalletAmountPage.js +158 -0
- package/dist/web/components/WalletAmountPage.js.map +1 -0
- package/dist/web/components/buttons.d.ts +15 -0
- package/dist/web/components/buttons.d.ts.map +1 -0
- package/dist/web/components/buttons.js +24 -0
- package/dist/web/components/buttons.js.map +1 -0
- package/dist/web/components/containers.d.ts +19 -0
- package/dist/web/components/containers.d.ts.map +1 -0
- package/dist/web/components/containers.js +77 -0
- package/dist/web/components/containers.js.map +1 -0
- package/dist/web/components/icons.d.ts +22 -0
- package/dist/web/components/icons.d.ts.map +1 -0
- package/dist/web/components/icons.js +33 -0
- package/dist/web/components/icons.js.map +1 -0
- package/dist/web/components/shared.d.ts +93 -0
- package/dist/web/components/shared.d.ts.map +1 -0
- package/dist/web/components/shared.js +202 -0
- package/dist/web/components/shared.js.map +1 -0
- package/dist/web/hooks/DaimoClientContext.d.ts +7 -0
- package/dist/web/hooks/DaimoClientContext.d.ts.map +1 -0
- package/dist/web/hooks/DaimoClientContext.js +15 -0
- package/dist/web/hooks/DaimoClientContext.js.map +1 -0
- package/dist/web/hooks/formatUserError.d.ts +3 -0
- package/dist/web/hooks/formatUserError.d.ts.map +1 -0
- package/dist/web/hooks/formatUserError.js +30 -0
- package/dist/web/hooks/formatUserError.js.map +1 -0
- package/dist/web/hooks/locale.d.ts +7 -0
- package/dist/web/hooks/locale.d.ts.map +1 -0
- package/dist/web/hooks/locale.js +15 -0
- package/dist/web/hooks/locale.js.map +1 -0
- package/dist/web/hooks/locales/en.d.ts +60 -0
- package/dist/web/hooks/locales/en.d.ts.map +1 -0
- package/dist/web/hooks/locales/en.js +76 -0
- package/dist/web/hooks/locales/en.js.map +1 -0
- package/dist/web/hooks/locales/es.d.ts +4 -0
- package/dist/web/hooks/locales/es.d.ts.map +1 -0
- package/dist/web/hooks/locales/es.js +60 -0
- package/dist/web/hooks/locales/es.js.map +1 -0
- package/dist/web/hooks/navEvent.d.ts +60 -0
- package/dist/web/hooks/navEvent.d.ts.map +1 -0
- package/dist/web/hooks/navEvent.js +12 -0
- package/dist/web/hooks/navEvent.js.map +1 -0
- package/dist/web/hooks/types.d.ts +72 -0
- package/dist/web/hooks/types.d.ts.map +1 -0
- package/dist/web/hooks/types.js +14 -0
- package/dist/web/hooks/types.js.map +1 -0
- package/dist/web/hooks/useCopyToClipboard.d.ts +6 -0
- package/dist/web/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/dist/web/hooks/useCopyToClipboard.js +20 -0
- package/dist/web/hooks/useCopyToClipboard.js.map +1 -0
- package/dist/web/hooks/usePaymentCallbacks.d.ts +15 -0
- package/dist/web/hooks/usePaymentCallbacks.d.ts.map +1 -0
- package/dist/web/hooks/usePaymentCallbacks.js +27 -0
- package/dist/web/hooks/usePaymentCallbacks.js.map +1 -0
- package/dist/web/hooks/useSessionNav.d.ts +28 -0
- package/dist/web/hooks/useSessionNav.d.ts.map +1 -0
- package/dist/web/hooks/useSessionNav.js +422 -0
- package/dist/web/hooks/useSessionNav.js.map +1 -0
- package/dist/web/hooks/useSessionPolling.d.ts +10 -0
- package/dist/web/hooks/useSessionPolling.d.ts.map +1 -0
- package/dist/web/hooks/useSessionPolling.js +60 -0
- package/dist/web/hooks/useSessionPolling.js.map +1 -0
- package/dist/web/hooks/useWalletFlow.d.ts +22 -0
- package/dist/web/hooks/useWalletFlow.d.ts.map +1 -0
- package/dist/web/hooks/useWalletFlow.js +350 -0
- package/dist/web/hooks/useWalletFlow.js.map +1 -0
- package/dist/web/hooks/walletProvider.d.ts +34 -0
- package/dist/web/hooks/walletProvider.d.ts.map +1 -0
- package/dist/web/hooks/walletProvider.js +14 -0
- package/dist/web/hooks/walletProvider.js.map +1 -0
- package/dist/web/index.d.ts +33 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +30 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/theme.css +183 -0
- package/package.json +64 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { arbitrum, base, bsc, celo, ethereum, getChainName, gnosis, hyperEvm, linea, monad, optimism, polygon, scroll, solana, tron, worldchain, } from "../../common/chain.js";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import { BackArrowIcon, CopyIcon } from "./icons.js";
|
|
5
|
+
import { t } from "../hooks/locale.js";
|
|
6
|
+
export { BackArrowIcon };
|
|
7
|
+
const PAY_BASE_URL = "https://daimo.com";
|
|
8
|
+
const CHAIN_LOGOS = {
|
|
9
|
+
[arbitrum.chainId]: "arbitrum.svg",
|
|
10
|
+
[base.chainId]: "base.svg",
|
|
11
|
+
[bsc.chainId]: "bsc.svg",
|
|
12
|
+
[celo.chainId]: "celo.svg",
|
|
13
|
+
[ethereum.chainId]: "ethereum.svg",
|
|
14
|
+
[gnosis.chainId]: "gnosis.svg",
|
|
15
|
+
[hyperEvm.chainId]: "hyperevm.svg",
|
|
16
|
+
[linea.chainId]: "linea.svg",
|
|
17
|
+
[monad.chainId]: "monad.svg",
|
|
18
|
+
[optimism.chainId]: "optimism.svg",
|
|
19
|
+
[polygon.chainId]: "polygon.svg",
|
|
20
|
+
[scroll.chainId]: "scroll.svg",
|
|
21
|
+
[solana.chainId]: "solana.svg",
|
|
22
|
+
[tron.chainId]: "tron.svg",
|
|
23
|
+
[worldchain.chainId]: "worldchain.svg",
|
|
24
|
+
};
|
|
25
|
+
// --- Copy to Clipboard Hook ---
|
|
26
|
+
function useCopyToClipboard(resetDelayMs = 1500) {
|
|
27
|
+
const [copied, setCopied] = useState(false);
|
|
28
|
+
const copy = useCallback(async (text) => {
|
|
29
|
+
try {
|
|
30
|
+
await navigator.clipboard.writeText(text);
|
|
31
|
+
setCopied(true);
|
|
32
|
+
setTimeout(() => setCopied(false), resetDelayMs);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
console.error("failed to copy to clipboard");
|
|
36
|
+
}
|
|
37
|
+
}, [resetDelayMs]);
|
|
38
|
+
return { copy, copied };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* USD amount input with dynamic width and min/max validation.
|
|
42
|
+
* Shows warning messages when amount is outside valid range.
|
|
43
|
+
*/
|
|
44
|
+
export function AmountInput({ minimumUsd, maximumUsd, defaultLabel, onSubmit, onChange, }) {
|
|
45
|
+
const [inputValue, setInputValue] = useState("");
|
|
46
|
+
const amountUsd = parseFloat(inputValue) || 0;
|
|
47
|
+
const isValid = amountUsd >= minimumUsd && amountUsd <= maximumUsd;
|
|
48
|
+
const showMinWarning = inputValue !== "" && amountUsd < minimumUsd;
|
|
49
|
+
const showMaxWarning = inputValue !== "" && amountUsd > maximumUsd;
|
|
50
|
+
const handleInputChange = (e) => {
|
|
51
|
+
const value = e.target.value;
|
|
52
|
+
// Allow empty, or digits with up to 2 decimal places
|
|
53
|
+
if (value === "" || /^\d*\.?\d{0,2}$/.test(value)) {
|
|
54
|
+
setInputValue(value);
|
|
55
|
+
const newAmount = parseFloat(value) || 0;
|
|
56
|
+
const newIsValid = newAmount >= minimumUsd && newAmount <= maximumUsd;
|
|
57
|
+
onChange?.(newAmount, newIsValid);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const handleKeyDown = (e) => {
|
|
61
|
+
if (e.key === "Enter" && isValid) {
|
|
62
|
+
onSubmit(amountUsd);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
// Dynamic width: shrink for decimal point, min 1ch, max 10ch
|
|
66
|
+
const inputWidth = inputValue.length === 0
|
|
67
|
+
? "3.55ch"
|
|
68
|
+
: `${Math.min(inputValue.length - (inputValue.match(/\./g) || []).length * 0.45, 10)}ch`;
|
|
69
|
+
const label = showMinWarning
|
|
70
|
+
? `${t.minimum} $${minimumUsd.toFixed(2)}`
|
|
71
|
+
: showMaxWarning
|
|
72
|
+
? `${t.maximum} $${maximumUsd.toFixed(0)}`
|
|
73
|
+
: (defaultLabel ?? `${t.minimum} $${minimumUsd.toFixed(2)}`);
|
|
74
|
+
const labelClass = showMinWarning || showMaxWarning
|
|
75
|
+
? "text-sm text-[var(--daimo-text)]"
|
|
76
|
+
: "text-sm text-[var(--daimo-text-secondary)]";
|
|
77
|
+
// $ sign color: placeholder when empty, text color when typed
|
|
78
|
+
const dollarColor = inputValue
|
|
79
|
+
? "text-[var(--daimo-text)]"
|
|
80
|
+
: "text-[var(--daimo-placeholder)]";
|
|
81
|
+
return (_jsxs("div", { className: "flex flex-col items-center gap-6", children: [_jsxs("div", { className: "flex items-center justify-center gap-1", children: [_jsx("span", { className: `text-3xl font-semibold ${dollarColor}`, children: "$" }), _jsx("input", { type: "text", inputMode: "decimal", value: inputValue, onChange: handleInputChange, onKeyDown: handleKeyDown, placeholder: "0.00", className: "bg-transparent text-5xl font-semibold text-[var(--daimo-text)] placeholder-[var(--daimo-placeholder)] outline-none border-none ring-0 shadow-none caret-[var(--daimo-text-muted)] focus:outline-none", style: {
|
|
82
|
+
width: inputWidth,
|
|
83
|
+
minWidth: "1ch",
|
|
84
|
+
maxWidth: "10ch",
|
|
85
|
+
}, autoFocus: true })] }), _jsx("p", { className: labelClass, children: label })] }));
|
|
86
|
+
}
|
|
87
|
+
/** Hook to manage amount input state externally */
|
|
88
|
+
export function useAmountInput(minimumUsd, maximumUsd) {
|
|
89
|
+
const [amountUsd, setAmountUsd] = useState(0);
|
|
90
|
+
const [isValid, setIsValid] = useState(false);
|
|
91
|
+
const handleChange = (amount, valid) => {
|
|
92
|
+
setAmountUsd(amount);
|
|
93
|
+
setIsValid(valid);
|
|
94
|
+
};
|
|
95
|
+
return { amountUsd, isValid, handleChange };
|
|
96
|
+
}
|
|
97
|
+
/** Resolve relative icon paths to absolute URLs */
|
|
98
|
+
export function resolveIconUrl(icon) {
|
|
99
|
+
if (icon.startsWith("http://") ||
|
|
100
|
+
icon.startsWith("https://") ||
|
|
101
|
+
icon.startsWith("data:")) {
|
|
102
|
+
return icon;
|
|
103
|
+
}
|
|
104
|
+
return `${PAY_BASE_URL}${icon}`;
|
|
105
|
+
}
|
|
106
|
+
export function PageHeader({ title, onBack }) {
|
|
107
|
+
return (_jsxs("div", { className: "sticky top-0 z-10 flex items-center justify-center p-6 bg-[var(--daimo-surface)]", children: [onBack && (_jsx("button", { onClick: onBack, "aria-label": "Go back", className: "absolute left-2 min-w-[44px] min-h-[44px] flex items-center justify-center px-4 py-2 rounded-lg touch-action-manipulation hover:[@media(hover:hover)]:bg-[var(--daimo-surface-secondary)] active:bg-[var(--daimo-surface-secondary)] active:scale-[0.95] transition-[background-color,transform] duration-150 ease-out", children: _jsx(BackArrowIcon, {}) })), _jsx("h1", { className: "text-lg font-semibold text-[var(--daimo-title)] text-balance", children: title })] }));
|
|
108
|
+
}
|
|
109
|
+
export function PageLogo({ icon, alt, size = "lg" }) {
|
|
110
|
+
const sizeClass = size === "lg" ? "w-20 h-20" : "w-16 h-16";
|
|
111
|
+
return (_jsx("img", { src: resolveIconUrl(icon), alt: alt, className: `${sizeClass} object-contain rounded-[25%]` }));
|
|
112
|
+
}
|
|
113
|
+
export function PageContent({ children }) {
|
|
114
|
+
return (_jsx("div", { className: "flex-1 flex flex-col items-center justify-center p-6 gap-6", children: children }));
|
|
115
|
+
}
|
|
116
|
+
/** Centered error message */
|
|
117
|
+
export function ErrorMessage({ message }) {
|
|
118
|
+
return (_jsx("p", { className: "text-sm text-[var(--daimo-text-secondary)] text-center max-w-xs truncate", children: message }));
|
|
119
|
+
}
|
|
120
|
+
/** Contact support mailto link button */
|
|
121
|
+
export function ContactSupportButton({ subject, info, }) {
|
|
122
|
+
const email = "support@daimo.com";
|
|
123
|
+
const bodyLines = [
|
|
124
|
+
...Object.entries(info).map(([key, value]) => `${key}: ${value}`),
|
|
125
|
+
"",
|
|
126
|
+
t.tellUsHowWeCanHelp,
|
|
127
|
+
];
|
|
128
|
+
const body = bodyLines.join("\n");
|
|
129
|
+
const href = `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
|
|
130
|
+
return (_jsx("a", { href: href, className: "text-sm text-[var(--daimo-text-secondary)] hover:text-[var(--daimo-text)] underline", children: t.contactSupport }));
|
|
131
|
+
}
|
|
132
|
+
/** Show receipt link button */
|
|
133
|
+
export function ShowReceiptButton({ sessionId }) {
|
|
134
|
+
return (_jsx("a", { href: `${PAY_BASE_URL}/receipt?id=${sessionId}`, target: "_blank", rel: "noopener noreferrer", className: "text-sm text-[var(--daimo-text-muted)] underline", children: t.showReceipt }));
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Token icon with chain badge overlay.
|
|
138
|
+
* - "sm": 32x32 token, 15x15 badge (for list rows)
|
|
139
|
+
* - "lg": 80x80 token, 32x32 badge (for page headers)
|
|
140
|
+
* - "qr": 48x48 token, 16x16 badge at top-right (for QR code centers)
|
|
141
|
+
*/
|
|
142
|
+
export function TokenIconWithChainBadge({ token, chainId, symbol, logoURI, size = "sm", badgeBorderClass, }) {
|
|
143
|
+
const tokenSymbol = token?.symbol ?? symbol ?? "USDC";
|
|
144
|
+
const tokenChainId = token?.chainId ?? chainId ?? 1;
|
|
145
|
+
const logoUrl = token?.logoURI ?? logoURI;
|
|
146
|
+
const chainLogoUrl = `/chain-logos/${getChainLogoFilename(tokenChainId)}`;
|
|
147
|
+
const sizeConfig = {
|
|
148
|
+
sm: {
|
|
149
|
+
container: "w-8 h-8 shrink-0",
|
|
150
|
+
icon: "w-8 h-8 rounded-full",
|
|
151
|
+
badge: "w-[15px] h-[15px]",
|
|
152
|
+
position: "absolute -bottom-0.5 -right-0.5",
|
|
153
|
+
style: {
|
|
154
|
+
borderWidth: "1px",
|
|
155
|
+
borderColor: "var(--daimo-surface-secondary)",
|
|
156
|
+
backgroundColor: "var(--daimo-surface-secondary)",
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
lg: {
|
|
160
|
+
container: "w-20 h-20",
|
|
161
|
+
icon: "w-20 h-20 object-contain rounded-full",
|
|
162
|
+
badge: "w-8 h-8",
|
|
163
|
+
position: "absolute -bottom-1 -right-1",
|
|
164
|
+
style: {
|
|
165
|
+
borderWidth: "2px",
|
|
166
|
+
borderColor: "var(--daimo-surface)",
|
|
167
|
+
backgroundColor: "var(--daimo-surface)",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
qr: {
|
|
171
|
+
container: "w-12 h-12",
|
|
172
|
+
icon: "w-12 h-12 object-contain rounded-full",
|
|
173
|
+
badge: "w-5 h-5",
|
|
174
|
+
position: "absolute -bottom-0.5 -right-0.5",
|
|
175
|
+
style: {
|
|
176
|
+
borderWidth: "1.5px",
|
|
177
|
+
borderColor: "var(--daimo-surface)",
|
|
178
|
+
backgroundColor: "var(--daimo-surface)",
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
const config = sizeConfig[size];
|
|
183
|
+
return (_jsxs("div", { className: `relative ${config.container}`, children: [logoUrl && (_jsx("img", { src: resolveIconUrl(logoUrl), alt: tokenSymbol, className: config.icon, onError: (e) => {
|
|
184
|
+
e.target.style.display = "none";
|
|
185
|
+
} })), _jsx("img", { src: resolveIconUrl(chainLogoUrl), alt: getChainName(tokenChainId), className: `${config.position} ${config.badge} rounded-full ${badgeBorderClass ?? ""}`, style: badgeBorderClass ? undefined : config.style, onError: (e) => {
|
|
186
|
+
e.target.style.display = "none";
|
|
187
|
+
} })] }));
|
|
188
|
+
}
|
|
189
|
+
/** Map chainId to logo filename */
|
|
190
|
+
export function getChainLogoFilename(chainId) {
|
|
191
|
+
return CHAIN_LOGOS[chainId] ?? "ethereum.svg";
|
|
192
|
+
}
|
|
193
|
+
/** Card with label, value, and copy button */
|
|
194
|
+
export function CopyableInfoCard({ label, value, displayValue, suffix, disabled = false, onCopy, }) {
|
|
195
|
+
const { copy, copied } = useCopyToClipboard();
|
|
196
|
+
const handleCopy = () => {
|
|
197
|
+
copy(value);
|
|
198
|
+
onCopy?.(value);
|
|
199
|
+
};
|
|
200
|
+
return (_jsxs("button", { onClick: handleCopy, disabled: disabled, "aria-label": `Copy ${label}`, className: "w-full min-h-[56px] p-4 bg-[var(--daimo-surface-secondary)] rounded-[var(--daimo-radius-lg)] flex items-center justify-between touch-action-manipulation hover:[@media(hover:hover)]:bg-[var(--daimo-surface-hover)] active:scale-[0.98] transition-[background-color,transform] duration-150 ease-out disabled:opacity-50 disabled:cursor-not-allowed", children: [_jsxs("div", { className: "text-left", children: [_jsx("p", { className: "text-sm text-[var(--daimo-text-secondary)] font-medium mb-1", children: label }), _jsxs("p", { className: "text-lg font-semibold text-[var(--daimo-text)] tabular-nums", children: [displayValue ?? value, suffix && _jsx("span", { className: "ml-2", children: suffix })] })] }), _jsx(CopyIcon, { copied: copied })] }));
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/web/components/shared.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type DaimoClient } from "../../client/createDaimoClient.js";
|
|
2
|
+
export declare function DaimoSDKProvider({ apiUrl, children, }: {
|
|
3
|
+
apiUrl?: string;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function useDaimoClient(): DaimoClient;
|
|
7
|
+
//# sourceMappingURL=DaimoClientContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaimoClientContext.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/DaimoClientContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAIxF,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAUA;AAED,wBAAgB,cAAc,IAAI,WAAW,CAI5C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useMemo } from "react";
|
|
3
|
+
import { createDaimoClient } from "../../client/createDaimoClient.js";
|
|
4
|
+
const DaimoClientContext = createContext(null);
|
|
5
|
+
export function DaimoSDKProvider({ apiUrl, children, }) {
|
|
6
|
+
const client = useMemo(() => createDaimoClient({ baseUrl: apiUrl ?? "https://api.daimo.com" }), [apiUrl]);
|
|
7
|
+
return (_jsx(DaimoClientContext.Provider, { value: client, children: children }));
|
|
8
|
+
}
|
|
9
|
+
export function useDaimoClient() {
|
|
10
|
+
const client = useContext(DaimoClientContext);
|
|
11
|
+
if (!client)
|
|
12
|
+
throw new Error("wrap your app in <DaimoSDKProvider>");
|
|
13
|
+
return client;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=DaimoClientContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaimoClientContext.js","sourceRoot":"","sources":["../../../src/web/hooks/DaimoClientContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAoB,MAAM,mCAAmC,CAAC;AAExF,MAAM,kBAAkB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC;AAEnE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,GAIT;IACC,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC,EACvE,CAAC,MAAM,CAAC,CACT,CAAC;IACF,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YACvC,QAAQ,GACmB,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatUserError.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/formatUserError.ts"],"names":[],"mappings":"AASA,qDAAqD;AACrD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,QAAQ,SAAuB,GAC9B,MAAM,CAmBR"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { t } from "./locale.js";
|
|
2
|
+
/** Known error patterns mapped to user-friendly messages */
|
|
3
|
+
function getErrorMappings() {
|
|
4
|
+
return [
|
|
5
|
+
["Failed to fetch", t.networkErrorOffline],
|
|
6
|
+
];
|
|
7
|
+
}
|
|
8
|
+
/** Convert error to user-friendly display message */
|
|
9
|
+
export function formatUserError(err, fallback = t.somethingWentWrong) {
|
|
10
|
+
let raw;
|
|
11
|
+
if (err instanceof Error) {
|
|
12
|
+
raw = err.message;
|
|
13
|
+
}
|
|
14
|
+
else if (err && typeof err === "object" && "message" in err) {
|
|
15
|
+
raw = String(err.message);
|
|
16
|
+
}
|
|
17
|
+
else if (typeof err === "string") {
|
|
18
|
+
raw = err;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
raw = "";
|
|
22
|
+
}
|
|
23
|
+
for (const [pattern, message] of getErrorMappings()) {
|
|
24
|
+
if (typeof pattern === "string" ? raw === pattern : pattern.test(raw)) {
|
|
25
|
+
return message;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return raw || fallback;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=formatUserError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatUserError.js","sourceRoot":"","sources":["../../../src/web/hooks/formatUserError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,4DAA4D;AAC5D,SAAS,gBAAgB;IACvB,OAAO;QACL,CAAC,iBAAiB,EAAE,CAAC,CAAC,mBAAmB,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,QAAQ,GAAG,CAAC,CAAC,kBAAkB;IAE/B,IAAI,GAAW,CAAC;IAChB,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAC9D,GAAG,GAAG,MAAM,CAAE,GAA4B,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,IAAI,QAAQ,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { en } from "./locales/en.js";
|
|
2
|
+
export type DaimoModalLocale = typeof en;
|
|
3
|
+
/** Current active translations. Defaults to English. */
|
|
4
|
+
export declare let t: DaimoModalLocale;
|
|
5
|
+
/** Set the active locale. Accepts full codes (es-ES) or short codes (es). */
|
|
6
|
+
export declare function setLocale(languageCode: string): void;
|
|
7
|
+
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAGrC,MAAM,MAAM,gBAAgB,GAAG,OAAO,EAAE,CAAC;AAIzC,wDAAwD;AACxD,eAAO,IAAI,CAAC,EAAE,gBAAqB,CAAC;AAEpC,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,QAO7C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { en } from "./locales/en.js";
|
|
2
|
+
import { es } from "./locales/es.js";
|
|
3
|
+
const translations = { en, es };
|
|
4
|
+
/** Current active translations. Defaults to English. */
|
|
5
|
+
export let t = en;
|
|
6
|
+
/** Set the active locale. Accepts full codes (es-ES) or short codes (es). */
|
|
7
|
+
export function setLocale(languageCode) {
|
|
8
|
+
if (translations[languageCode]) {
|
|
9
|
+
t = translations[languageCode];
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const short = languageCode.split("-")[0].toLowerCase();
|
|
13
|
+
t = translations[short] ?? en;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../src/web/hooks/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC,MAAM,YAAY,GAAqC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAElE,wDAAwD;AACxD,MAAM,CAAC,IAAI,CAAC,GAAqB,EAAE,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** English (default) strings for DaimoModal UI. */
|
|
2
|
+
export declare const en: {
|
|
3
|
+
confirmYourPayment: string;
|
|
4
|
+
waitingForYourPayment: string;
|
|
5
|
+
paymentReceived: string;
|
|
6
|
+
processingYourPayment: string;
|
|
7
|
+
paymentCompleted: string;
|
|
8
|
+
refundingYourPayment: string;
|
|
9
|
+
returnToApp: string;
|
|
10
|
+
onChain: string;
|
|
11
|
+
expired: string;
|
|
12
|
+
paymentSessionExpired: string;
|
|
13
|
+
continueIn: string;
|
|
14
|
+
toCompleteYourPayment: string;
|
|
15
|
+
openIn: string;
|
|
16
|
+
continueTo: string;
|
|
17
|
+
toCompleteYourDeposit: string;
|
|
18
|
+
open: string;
|
|
19
|
+
selectAmount: string;
|
|
20
|
+
loading: string;
|
|
21
|
+
continue: string;
|
|
22
|
+
selectToken: string;
|
|
23
|
+
noTokensFound: string;
|
|
24
|
+
minimum: string;
|
|
25
|
+
maximum: string;
|
|
26
|
+
deposit: string;
|
|
27
|
+
depositOn: string;
|
|
28
|
+
generateNewAddress: string;
|
|
29
|
+
showQR: string;
|
|
30
|
+
hideQR: string;
|
|
31
|
+
oneTimeAddress: string;
|
|
32
|
+
amount: string;
|
|
33
|
+
expiresIn: string;
|
|
34
|
+
enterAmount: string;
|
|
35
|
+
max: string;
|
|
36
|
+
balance: string;
|
|
37
|
+
error: string;
|
|
38
|
+
reload: string;
|
|
39
|
+
unknownError: string;
|
|
40
|
+
contactSupport: string;
|
|
41
|
+
tellUsHowWeCanHelp: string;
|
|
42
|
+
showReceipt: string;
|
|
43
|
+
poweredByDaimo: string;
|
|
44
|
+
close: string;
|
|
45
|
+
flowError: string;
|
|
46
|
+
back: string;
|
|
47
|
+
tryAgain: string;
|
|
48
|
+
tronUnavailable: string;
|
|
49
|
+
networkErrorOffline: string;
|
|
50
|
+
somethingWentWrong: string;
|
|
51
|
+
missingSessionParam: string;
|
|
52
|
+
failedToLoadSession: string;
|
|
53
|
+
connectWallet: string;
|
|
54
|
+
walletUnavailable: string;
|
|
55
|
+
walletDisconnected: string;
|
|
56
|
+
switchToChain: (chain: string) => string;
|
|
57
|
+
transactionFailed: string;
|
|
58
|
+
closeAndReturn: string;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=en.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../src/web/hooks/locales/en.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAqFU,MAAM;;;CAG9B,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/** English (default) strings for DaimoModal UI. */
|
|
2
|
+
export const en = {
|
|
3
|
+
// ConfirmationPage
|
|
4
|
+
confirmYourPayment: "Confirm your payment",
|
|
5
|
+
waitingForYourPayment: "Waiting for your payment",
|
|
6
|
+
paymentReceived: "Payment Received",
|
|
7
|
+
processingYourPayment: "Processing your payment...",
|
|
8
|
+
paymentCompleted: "Payment Completed",
|
|
9
|
+
refundingYourPayment: "Refunding your payment",
|
|
10
|
+
returnToApp: "Return to app",
|
|
11
|
+
onChain: "on",
|
|
12
|
+
// ExpiredPage
|
|
13
|
+
expired: "Expired",
|
|
14
|
+
paymentSessionExpired: "This payment session has expired",
|
|
15
|
+
// DeeplinkPage
|
|
16
|
+
continueIn: "Continue in",
|
|
17
|
+
toCompleteYourPayment: "to complete your payment",
|
|
18
|
+
openIn: "Open in",
|
|
19
|
+
// ExchangePage
|
|
20
|
+
continueTo: "Continue to",
|
|
21
|
+
toCompleteYourDeposit: "to complete your deposit",
|
|
22
|
+
open: "Open",
|
|
23
|
+
// SelectAmountPage
|
|
24
|
+
selectAmount: "Select Amount",
|
|
25
|
+
loading: "Loading...",
|
|
26
|
+
continue: "Continue",
|
|
27
|
+
// SelectTokenPage
|
|
28
|
+
selectToken: "Select Token",
|
|
29
|
+
noTokensFound: "No tokens found",
|
|
30
|
+
minimum: "Minimum",
|
|
31
|
+
maximum: "Maximum",
|
|
32
|
+
// WaitingDepositAddressPage
|
|
33
|
+
deposit: "Deposit",
|
|
34
|
+
depositOn: "Deposit on",
|
|
35
|
+
generateNewAddress: "Generate New Address",
|
|
36
|
+
showQR: "Show QR",
|
|
37
|
+
hideQR: "Hide QR",
|
|
38
|
+
oneTimeAddress: "One-Time Address",
|
|
39
|
+
amount: "Amount",
|
|
40
|
+
expiresIn: "Expires in:",
|
|
41
|
+
// WalletAmountPage
|
|
42
|
+
enterAmount: "Enter Amount",
|
|
43
|
+
max: "Max",
|
|
44
|
+
balance: "Balance:",
|
|
45
|
+
// ErrorPage
|
|
46
|
+
error: "Error",
|
|
47
|
+
reload: "Reload",
|
|
48
|
+
unknownError: "unknown error",
|
|
49
|
+
// shared
|
|
50
|
+
contactSupport: "Contact support",
|
|
51
|
+
tellUsHowWeCanHelp: "Tell us how we can help",
|
|
52
|
+
showReceipt: "Show receipt",
|
|
53
|
+
poweredByDaimo: "Powered by Daimo",
|
|
54
|
+
// containers
|
|
55
|
+
close: "Close",
|
|
56
|
+
// flows
|
|
57
|
+
flowError: "Error:",
|
|
58
|
+
back: "Back",
|
|
59
|
+
tryAgain: "Try again",
|
|
60
|
+
// hooks/useSessionNav
|
|
61
|
+
tronUnavailable: "Tron unavailable. Try again later.",
|
|
62
|
+
// formatUserError
|
|
63
|
+
networkErrorOffline: "Network error. Offline?",
|
|
64
|
+
somethingWentWrong: "Something went wrong",
|
|
65
|
+
// embed page
|
|
66
|
+
missingSessionParam: "missing session parameter",
|
|
67
|
+
failedToLoadSession: "failed to load session",
|
|
68
|
+
// session page
|
|
69
|
+
connectWallet: "Connect Wallet",
|
|
70
|
+
walletUnavailable: "Wallet unavailable",
|
|
71
|
+
walletDisconnected: "Wallet disconnected",
|
|
72
|
+
switchToChain: (chain) => `Please switch to ${chain}`,
|
|
73
|
+
transactionFailed: "Transaction failed",
|
|
74
|
+
closeAndReturn: "Close this page and return to app",
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../../src/web/hooks/locales/en.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,mBAAmB;IACnB,kBAAkB,EAAE,sBAAsB;IAC1C,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,kBAAkB;IACnC,qBAAqB,EAAE,4BAA4B;IACnD,gBAAgB,EAAE,mBAAmB;IACrC,oBAAoB,EAAE,wBAAwB;IAC9C,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,IAAI;IAEb,cAAc;IACd,OAAO,EAAE,SAAS;IAClB,qBAAqB,EAAE,kCAAkC;IAEzD,eAAe;IACf,UAAU,EAAE,aAAa;IACzB,qBAAqB,EAAE,0BAA0B;IACjD,MAAM,EAAE,SAAS;IAEjB,eAAe;IACf,UAAU,EAAE,aAAa;IACzB,qBAAqB,EAAE,0BAA0B;IACjD,IAAI,EAAE,MAAM;IAEZ,mBAAmB;IACnB,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,UAAU;IAEpB,kBAAkB;IAClB,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,iBAAiB;IAChC,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAElB,4BAA4B;IAC5B,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,YAAY;IACvB,kBAAkB,EAAE,sBAAsB;IAC1C,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,kBAAkB;IAClC,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,aAAa;IAExB,mBAAmB;IACnB,WAAW,EAAE,cAAc;IAC3B,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,UAAU;IAEnB,YAAY;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,eAAe;IAE7B,SAAS;IACT,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,yBAAyB;IAC7C,WAAW,EAAE,cAAc;IAC3B,cAAc,EAAE,kBAAkB;IAElC,aAAa;IACb,KAAK,EAAE,OAAO;IAEd,QAAQ;IACR,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;IAErB,sBAAsB;IACtB,eAAe,EAAE,oCAAoC;IAErD,kBAAkB;IAClB,mBAAmB,EAAE,yBAAyB;IAC9C,kBAAkB,EAAE,sBAAsB;IAE1C,aAAa;IACb,mBAAmB,EAAE,2BAA2B;IAChD,mBAAmB,EAAE,wBAAwB;IAE7C,eAAe;IACf,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,oBAAoB;IACvC,kBAAkB,EAAE,qBAAqB;IACzC,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,oBAAoB,KAAK,EAAE;IAC7D,iBAAiB,EAAE,oBAAoB;IACvC,cAAc,EAAE,mCAAmC;CACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../../src/web/hooks/locales/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,8CAA8C;AAC9C,eAAO,MAAM,EAAE,EAAE,OAAO,EAyDvB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** Spanish translations for DaimoModal UI. */
|
|
2
|
+
export const es = {
|
|
3
|
+
confirmYourPayment: "Confirma tu pago",
|
|
4
|
+
waitingForYourPayment: "Esperando tu pago",
|
|
5
|
+
paymentReceived: "Pago recibido",
|
|
6
|
+
processingYourPayment: "Procesando tu pago...",
|
|
7
|
+
paymentCompleted: "Pago completado",
|
|
8
|
+
refundingYourPayment: "Reembolsando tu pago",
|
|
9
|
+
returnToApp: "Volver a la app",
|
|
10
|
+
onChain: "en",
|
|
11
|
+
expired: "Expirado",
|
|
12
|
+
paymentSessionExpired: "Esta sesión de pago ha expirado",
|
|
13
|
+
continueIn: "Continuar en",
|
|
14
|
+
toCompleteYourPayment: "para completar tu pago",
|
|
15
|
+
openIn: "Abrir en",
|
|
16
|
+
continueTo: "Continuar a",
|
|
17
|
+
toCompleteYourDeposit: "para completar tu depósito",
|
|
18
|
+
open: "Abrir",
|
|
19
|
+
selectAmount: "Seleccionar monto",
|
|
20
|
+
loading: "Cargando...",
|
|
21
|
+
continue: "Continuar",
|
|
22
|
+
selectToken: "Seleccionar token",
|
|
23
|
+
noTokensFound: "No se encontraron tokens",
|
|
24
|
+
minimum: "Mínimo",
|
|
25
|
+
maximum: "Máximo",
|
|
26
|
+
deposit: "Depositar",
|
|
27
|
+
depositOn: "Depositar en",
|
|
28
|
+
generateNewAddress: "Generar nueva dirección",
|
|
29
|
+
showQR: "Mostrar QR",
|
|
30
|
+
hideQR: "Ocultar QR",
|
|
31
|
+
oneTimeAddress: "Dirección de uso único",
|
|
32
|
+
amount: "Monto",
|
|
33
|
+
expiresIn: "Expira en:",
|
|
34
|
+
enterAmount: "Ingresar monto",
|
|
35
|
+
max: "Máx",
|
|
36
|
+
balance: "Saldo:",
|
|
37
|
+
error: "Error",
|
|
38
|
+
reload: "Recargar",
|
|
39
|
+
unknownError: "error desconocido",
|
|
40
|
+
contactSupport: "Contactar soporte",
|
|
41
|
+
tellUsHowWeCanHelp: "Cuéntanos cómo podemos ayudarte",
|
|
42
|
+
showReceipt: "Ver recibo",
|
|
43
|
+
poweredByDaimo: "Powered by Daimo",
|
|
44
|
+
close: "Cerrar",
|
|
45
|
+
flowError: "Error:",
|
|
46
|
+
back: "Volver",
|
|
47
|
+
tryAgain: "Reintentar",
|
|
48
|
+
tronUnavailable: "Tron no disponible. Intenta más tarde.",
|
|
49
|
+
networkErrorOffline: "Error de red. ¿Sin conexión?",
|
|
50
|
+
somethingWentWrong: "Algo salió mal",
|
|
51
|
+
missingSessionParam: "falta el parámetro de sesión",
|
|
52
|
+
failedToLoadSession: "no se pudo cargar la sesión",
|
|
53
|
+
connectWallet: "Conectar billetera",
|
|
54
|
+
walletUnavailable: "Billetera no disponible",
|
|
55
|
+
walletDisconnected: "Billetera desconectada",
|
|
56
|
+
switchToChain: (chain) => `Cambia a ${chain}`,
|
|
57
|
+
transactionFailed: "Transacción fallida",
|
|
58
|
+
closeAndReturn: "Cierra esta página y vuelve a la app",
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../../../src/web/hooks/locales/es.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,CAAC,MAAM,EAAE,GAAc;IAC3B,kBAAkB,EAAE,kBAAkB;IACtC,qBAAqB,EAAE,mBAAmB;IAC1C,eAAe,EAAE,eAAe;IAChC,qBAAqB,EAAE,uBAAuB;IAC9C,gBAAgB,EAAE,iBAAiB;IACnC,oBAAoB,EAAE,sBAAsB;IAC5C,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,UAAU;IACnB,qBAAqB,EAAE,iCAAiC;IACxD,UAAU,EAAE,cAAc;IAC1B,qBAAqB,EAAE,wBAAwB;IAC/C,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,aAAa;IACzB,qBAAqB,EAAE,4BAA4B;IACnD,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,mBAAmB;IACjC,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,mBAAmB;IAChC,aAAa,EAAE,0BAA0B;IACzC,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,cAAc;IACzB,kBAAkB,EAAE,yBAAyB;IAC7C,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,cAAc,EAAE,wBAAwB;IACxC,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,gBAAgB;IAC7B,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,UAAU;IAClB,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,iCAAiC;IACrD,WAAW,EAAE,YAAY;IACzB,cAAc,EAAE,kBAAkB;IAClC,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,YAAY;IACtB,eAAe,EAAE,wCAAwC;IACzD,mBAAmB,EAAE,8BAA8B;IACnD,kBAAkB,EAAE,gBAAgB;IACpC,mBAAmB,EAAE,8BAA8B;IACnD,mBAAmB,EAAE,6BAA6B;IAClD,aAAa,EAAE,oBAAoB;IACnC,iBAAiB,EAAE,yBAAyB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,EAAE;IACrD,iBAAiB,EAAE,qBAAqB;IACxC,cAAc,EAAE,sCAAsC;CACvD,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { NavNode } from "../api/navTree.js";
|
|
2
|
+
import type { DaimoClient } from "../../client/createDaimoClient.js";
|
|
3
|
+
/** Node types from NavNode union */
|
|
4
|
+
export type NavNodeType = NavNode["type"];
|
|
5
|
+
/** Context for every nav event */
|
|
6
|
+
export type NavEventContext = {
|
|
7
|
+
nodeId: string | null;
|
|
8
|
+
nodeType: NavNodeType | null;
|
|
9
|
+
};
|
|
10
|
+
/** All nav event actions with their data */
|
|
11
|
+
export type NavEventAction = {
|
|
12
|
+
action: "nav_open";
|
|
13
|
+
} | {
|
|
14
|
+
action: "nav_close";
|
|
15
|
+
} | {
|
|
16
|
+
action: "nav_select";
|
|
17
|
+
targetNodeId: string;
|
|
18
|
+
targetNodeType: NavNodeType;
|
|
19
|
+
} | {
|
|
20
|
+
action: "nav_back";
|
|
21
|
+
} | {
|
|
22
|
+
action: "nav_deeplink";
|
|
23
|
+
url: string;
|
|
24
|
+
} | {
|
|
25
|
+
action: "flow_amount_continue";
|
|
26
|
+
amountUsd: number;
|
|
27
|
+
} | {
|
|
28
|
+
action: "flow_refresh";
|
|
29
|
+
} | {
|
|
30
|
+
action: "flow_exchange_url";
|
|
31
|
+
exchangeId: string;
|
|
32
|
+
success: boolean;
|
|
33
|
+
url?: string;
|
|
34
|
+
error?: string;
|
|
35
|
+
} | {
|
|
36
|
+
action: "flow_tron_address";
|
|
37
|
+
success: boolean;
|
|
38
|
+
address?: string;
|
|
39
|
+
error?: string;
|
|
40
|
+
} | {
|
|
41
|
+
action: "qr_toggle";
|
|
42
|
+
visible: boolean;
|
|
43
|
+
} | {
|
|
44
|
+
action: "copy_address";
|
|
45
|
+
address: string;
|
|
46
|
+
} | {
|
|
47
|
+
action: "session_expired";
|
|
48
|
+
} | {
|
|
49
|
+
action: "session_completed";
|
|
50
|
+
} | {
|
|
51
|
+
action: "session_bounced";
|
|
52
|
+
} | {
|
|
53
|
+
action: "error_shown";
|
|
54
|
+
error: string;
|
|
55
|
+
};
|
|
56
|
+
/** Full nav event payload */
|
|
57
|
+
export type NavEvent = NavEventContext & NavEventAction;
|
|
58
|
+
/** Create a fire-and-forget nav event logger bound to a DaimoClient. */
|
|
59
|
+
export declare function createNavLogger(client: DaimoClient): (sessionId: string, clientSecret: string, event: NavEvent) => void;
|
|
60
|
+
//# sourceMappingURL=navEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navEvent.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/navEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE1C,kCAAkC;AAClC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,WAAW,CAAA;CAAE,GAC3E;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IACE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,6BAA6B;AAC7B,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,cAAc,CAAC;AAExD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,IAE/C,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,OAAO,QAAQ,KACd,IAAI,CAQR"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Create a fire-and-forget nav event logger bound to a DaimoClient. */
|
|
2
|
+
export function createNavLogger(client) {
|
|
3
|
+
return function logNavEvent(sessionId, clientSecret, event) {
|
|
4
|
+
const { action } = event;
|
|
5
|
+
client.internal.sessions
|
|
6
|
+
.logNavEvent(sessionId, { clientSecret, event: action })
|
|
7
|
+
.catch((e) => {
|
|
8
|
+
console.error("[navEvent] failed to log:", action, e);
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=navEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navEvent.js","sourceRoot":"","sources":["../../../src/web/hooks/navEvent.ts"],"names":[],"mappings":"AA4CA,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,SAAS,WAAW,CACzB,SAAiB,EACjB,YAAoB,EACpB,KAAe;QAEf,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,QAAQ;aACrB,WAAW,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;aACvD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACJ,CAAC"}
|