@unifold/ui-react 0.1.26 → 0.1.27

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/index.d.mts CHANGED
@@ -8,6 +8,42 @@ import * as SelectPrimitive from '@radix-ui/react-select';
8
8
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
9
9
  import { ClassValue } from 'clsx';
10
10
 
11
+ type DepositConfirmationMode = "auto_ui" | "auto_silent" | "manual";
12
+ interface UseDepositPollingOptions {
13
+ userId: string | undefined;
14
+ publishableKey: string;
15
+ /** Controls when polling starts and whether a waiting UI is shown.
16
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
17
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
18
+ * - "manual": User must click "I've made the deposit" to start polling
19
+ */
20
+ depositConfirmationMode?: DepositConfirmationMode;
21
+ /** Deposit wallet ID used to trigger the backend poll endpoint */
22
+ depositWalletId?: string;
23
+ enabled?: boolean;
24
+ onDepositSuccess?: (data: {
25
+ message: string;
26
+ transaction?: unknown;
27
+ executionId?: string;
28
+ }) => void;
29
+ onDepositError?: (error: {
30
+ message: string;
31
+ error?: unknown;
32
+ code?: string;
33
+ }) => void;
34
+ }
35
+ interface UseDepositPollingResult {
36
+ executions: AutoSwapResponse[];
37
+ isPolling: boolean;
38
+ /** Whether the backend poll endpoint has been enabled */
39
+ pollingEnabled: boolean;
40
+ /** Whether the "Processing deposit transactions" card should be shown */
41
+ showWaitingUi: boolean;
42
+ /** Call this when user clicks "I've made the deposit" (manual mode) */
43
+ handleIveDeposited: () => void;
44
+ }
45
+ declare function useDepositPolling({ userId, publishableKey, depositConfirmationMode, depositWalletId, enabled, onDepositSuccess, onDepositError, }: UseDepositPollingOptions): UseDepositPollingResult;
46
+
11
47
  interface DepositModalProps {
12
48
  open: boolean;
13
49
  onOpenChange: (open: boolean) => void;
@@ -16,7 +52,7 @@ interface DepositModalProps {
16
52
  modalTitle?: string;
17
53
  destinationTokenSymbol?: string;
18
54
  recipientAddress?: string;
19
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
55
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
20
56
  destinationChainId?: string;
21
57
  destinationTokenAddress?: string;
22
58
  hideDepositTracker?: boolean;
@@ -24,6 +60,12 @@ interface DepositModalProps {
24
60
  showBalanceHeader?: boolean;
25
61
  /** Input variant for Transfer Crypto view: "single_input" or "double_input" (default) */
26
62
  transferInputVariant?: "single_input" | "double_input";
63
+ /** Controls when deposit polling starts and what UI is shown.
64
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
65
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
66
+ * - "manual": User must click "I've made the deposit" to start polling
67
+ */
68
+ depositConfirmationMode?: DepositConfirmationMode;
27
69
  /** Enable browser wallet connection option. Defaults to false */
28
70
  enableConnectWallet?: boolean;
29
71
  onDepositSuccess?: (data: {
@@ -38,10 +80,11 @@ interface DepositModalProps {
38
80
  }) => void;
39
81
  theme?: "light" | "dark" | "auto";
40
82
  }
41
- declare function DepositModal({ open, onOpenChange, userId, publishableKey, modalTitle, destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, hideDepositTracker, showBalanceHeader, transferInputVariant, enableConnectWallet, onDepositSuccess, onDepositError, theme, }: DepositModalProps): react_jsx_runtime.JSX.Element;
83
+ declare function DepositModal({ open, onOpenChange, userId, publishableKey, modalTitle, destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, hideDepositTracker, showBalanceHeader, transferInputVariant, depositConfirmationMode, enableConnectWallet, onDepositSuccess, onDepositError, theme, }: DepositModalProps): react_jsx_runtime.JSX.Element;
42
84
 
43
85
  interface DepositHeaderProps {
44
86
  title: string;
87
+ subtitle?: string;
45
88
  showBack?: boolean;
46
89
  showClose?: boolean;
47
90
  onBack?: () => void;
@@ -51,20 +94,28 @@ interface DepositHeaderProps {
51
94
  };
52
95
  showBalance?: boolean;
53
96
  balanceAddress?: string;
54
- balanceChainType?: "ethereum" | "solana" | "bitcoin";
97
+ balanceChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
55
98
  balanceChainId?: string;
56
99
  balanceTokenAddress?: string;
100
+ /** Project name for balance label e.g. "{projectName} Balance: $0.00" */
101
+ projectName?: string;
57
102
  publishableKey?: string;
58
103
  }
59
- declare function DepositHeader({ title, showBack, showClose, onBack, onClose, badge, showBalance, balanceAddress, balanceChainType, balanceChainId, balanceTokenAddress, publishableKey, }: DepositHeaderProps): react_jsx_runtime.JSX.Element;
104
+ declare function DepositHeader({ title, subtitle, showBack, showClose, onBack, onClose, badge, showBalance, balanceAddress, balanceChainType, balanceChainId, balanceTokenAddress, projectName, publishableKey, }: DepositHeaderProps): react_jsx_runtime.JSX.Element;
60
105
 
61
106
  interface TransferCryptoSingleInputProps {
62
107
  userId: string;
63
108
  publishableKey: string;
64
109
  recipientAddress?: string;
65
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
110
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
66
111
  destinationChainId?: string;
67
112
  destinationTokenAddress?: string;
113
+ /** Controls when polling starts and whether a waiting UI is shown.
114
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
115
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
116
+ * - "manual": User must click "I've made the deposit" to start polling
117
+ */
118
+ depositConfirmationMode?: DepositConfirmationMode;
68
119
  onExecutionsChange?: (executions: AutoSwapResponse[]) => void;
69
120
  onDepositSuccess?: (data: {
70
121
  message: string;
@@ -78,15 +129,21 @@ interface TransferCryptoSingleInputProps {
78
129
  }) => void;
79
130
  wallets?: Wallet[];
80
131
  }
81
- declare function TransferCryptoSingleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoSingleInputProps): react_jsx_runtime.JSX.Element;
132
+ declare function TransferCryptoSingleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, depositConfirmationMode, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoSingleInputProps): react_jsx_runtime.JSX.Element;
82
133
 
83
134
  interface TransferCryptoDoubleInputProps {
84
135
  userId: string;
85
136
  publishableKey: string;
86
137
  recipientAddress?: string;
87
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
138
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
88
139
  destinationChainId?: string;
89
140
  destinationTokenAddress?: string;
141
+ /** Controls when polling starts and whether a waiting UI is shown.
142
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
143
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
144
+ * - "manual": User must click "I've made the deposit" to start polling
145
+ */
146
+ depositConfirmationMode?: DepositConfirmationMode;
90
147
  onExecutionsChange?: (executions: AutoSwapResponse[]) => void;
91
148
  onDepositSuccess?: (data: {
92
149
  message: string;
@@ -100,7 +157,7 @@ interface TransferCryptoDoubleInputProps {
100
157
  }) => void;
101
158
  wallets?: Wallet[];
102
159
  }
103
- declare function TransferCryptoDoubleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoDoubleInputProps): react_jsx_runtime.JSX.Element;
160
+ declare function TransferCryptoDoubleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, depositConfirmationMode, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoDoubleInputProps): react_jsx_runtime.JSX.Element;
104
161
 
105
162
  interface BuyWithCardProps {
106
163
  userId: string;
@@ -111,7 +168,7 @@ interface BuyWithCardProps {
111
168
  accentColor?: string;
112
169
  destinationTokenSymbol?: string;
113
170
  recipientAddress?: string;
114
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
171
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
115
172
  destinationChainId?: string;
116
173
  destinationTokenAddress?: string;
117
174
  onDepositSuccess?: (data: {
@@ -175,19 +232,6 @@ interface StyledQRCodeProps {
175
232
  imageSize?: number;
176
233
  darkMode?: boolean;
177
234
  }
178
- /**
179
- * Pre-generate a QR code and cache it for instant display later.
180
- * Call this when wallet address is fetched, before modal opens.
181
- */
182
- declare function preloadQRCode(value: string, size?: number, imageUrl?: string, imageSize?: number, darkMode?: boolean): Promise<void>;
183
- /**
184
- * Check if a QR code is already cached
185
- */
186
- declare function isQRCodeCached(value: string, size?: number, imageUrl?: string, darkMode?: boolean): boolean;
187
- /**
188
- * Clear the QR code cache (useful for memory management)
189
- */
190
- declare function clearQRCodeCache(): void;
191
235
  declare function StyledQRCode({ value, size, imageUrl, imageSize, darkMode, }: StyledQRCodeProps): react_jsx_runtime.JSX.Element;
192
236
 
193
237
  interface TransferCryptoButtonProps {
@@ -264,6 +308,23 @@ interface DepositDetailContentProps {
264
308
  }
265
309
  declare function DepositDetailContent({ execution }: DepositDetailContentProps): react_jsx_runtime.JSX.Element;
266
310
 
311
+ interface DepositPollingUiProps {
312
+ depositConfirmationMode: DepositConfirmationMode;
313
+ /** Whether polling has been triggered and waiting UI should be visible */
314
+ showWaitingUi: boolean;
315
+ /** Whether at least one execution has been detected (hides the processing card) */
316
+ hasExecution: boolean;
317
+ /** Called when user clicks "I've made the deposit" in manual mode */
318
+ onIveDeposited: () => void;
319
+ }
320
+ /**
321
+ * Deposit polling UI that renders the correct element based on confirmation mode:
322
+ * - manual (before click): "I've made the deposit" button
323
+ * - auto_ui / manual (after click): "Processing deposit transactions" spinner card
324
+ * - auto_silent: nothing (null)
325
+ */
326
+ declare function DepositPollingUi({ depositConfirmationMode, showWaitingUi, hasExecution, onIveDeposited, }: DepositPollingUiProps): react_jsx_runtime.JSX.Element | null;
327
+
267
328
  interface CurrencyListItemProps {
268
329
  currency: FiatCurrency;
269
330
  isSelected: boolean;
@@ -637,4 +698,4 @@ declare function cn(...inputs: ClassValue[]): string;
637
698
  */
638
699
  declare function truncateAddress(address: string, startChars?: number, endChars?: number): string;
639
700
 
640
- export { type AllowedCountryResult, Button, type ButtonProps, type ButtonTokens, BuyWithCard, type CardTokens, type ComponentConfig, type ComponentOverrides, type ComponentTokens, type ContainerTokens, CurrencyListItem, CurrencyListSection, CurrencyModal, type CustomThemeColors, DepositDetailContent, DepositExecutionItem, DepositHeader, DepositModal, DepositSuccessToast, DepositTrackerButton, DepositWithCardButton, DepositsModal, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type FontConfig, type HeaderTokens, type InputTokens, type ListTokens, type ResolvedFonts, type SearchTokens, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, StyledQRCode, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransferCryptoButton, TransferCryptoDoubleInput, TransferCryptoSingleInput, buttonVariants, clearQRCodeCache, cn, colors, defaultColors, getColors, isQRCodeCached, mergeColors, preloadQRCode, resolveComponentTokens, truncateAddress, useAllowedCountry, useTheme };
701
+ export { type AllowedCountryResult, Button, type ButtonProps, type ButtonTokens, BuyWithCard, type CardTokens, type ComponentConfig, type ComponentOverrides, type ComponentTokens, type ContainerTokens, CurrencyListItem, CurrencyListSection, CurrencyModal, type CustomThemeColors, type DepositConfirmationMode, DepositDetailContent, DepositExecutionItem, DepositHeader, DepositModal, DepositPollingUi, DepositSuccessToast, DepositTrackerButton, DepositWithCardButton, DepositsModal, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type FontConfig, type HeaderTokens, type InputTokens, type ListTokens, type ResolvedFonts, type SearchTokens, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, StyledQRCode, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransferCryptoButton, TransferCryptoDoubleInput, TransferCryptoSingleInput, buttonVariants, cn, colors, defaultColors, getColors, mergeColors, resolveComponentTokens, truncateAddress, useAllowedCountry, useDepositPolling, useTheme };
package/dist/index.d.ts CHANGED
@@ -8,6 +8,42 @@ import * as SelectPrimitive from '@radix-ui/react-select';
8
8
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
9
9
  import { ClassValue } from 'clsx';
10
10
 
11
+ type DepositConfirmationMode = "auto_ui" | "auto_silent" | "manual";
12
+ interface UseDepositPollingOptions {
13
+ userId: string | undefined;
14
+ publishableKey: string;
15
+ /** Controls when polling starts and whether a waiting UI is shown.
16
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
17
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
18
+ * - "manual": User must click "I've made the deposit" to start polling
19
+ */
20
+ depositConfirmationMode?: DepositConfirmationMode;
21
+ /** Deposit wallet ID used to trigger the backend poll endpoint */
22
+ depositWalletId?: string;
23
+ enabled?: boolean;
24
+ onDepositSuccess?: (data: {
25
+ message: string;
26
+ transaction?: unknown;
27
+ executionId?: string;
28
+ }) => void;
29
+ onDepositError?: (error: {
30
+ message: string;
31
+ error?: unknown;
32
+ code?: string;
33
+ }) => void;
34
+ }
35
+ interface UseDepositPollingResult {
36
+ executions: AutoSwapResponse[];
37
+ isPolling: boolean;
38
+ /** Whether the backend poll endpoint has been enabled */
39
+ pollingEnabled: boolean;
40
+ /** Whether the "Processing deposit transactions" card should be shown */
41
+ showWaitingUi: boolean;
42
+ /** Call this when user clicks "I've made the deposit" (manual mode) */
43
+ handleIveDeposited: () => void;
44
+ }
45
+ declare function useDepositPolling({ userId, publishableKey, depositConfirmationMode, depositWalletId, enabled, onDepositSuccess, onDepositError, }: UseDepositPollingOptions): UseDepositPollingResult;
46
+
11
47
  interface DepositModalProps {
12
48
  open: boolean;
13
49
  onOpenChange: (open: boolean) => void;
@@ -16,7 +52,7 @@ interface DepositModalProps {
16
52
  modalTitle?: string;
17
53
  destinationTokenSymbol?: string;
18
54
  recipientAddress?: string;
19
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
55
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
20
56
  destinationChainId?: string;
21
57
  destinationTokenAddress?: string;
22
58
  hideDepositTracker?: boolean;
@@ -24,6 +60,12 @@ interface DepositModalProps {
24
60
  showBalanceHeader?: boolean;
25
61
  /** Input variant for Transfer Crypto view: "single_input" or "double_input" (default) */
26
62
  transferInputVariant?: "single_input" | "double_input";
63
+ /** Controls when deposit polling starts and what UI is shown.
64
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
65
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
66
+ * - "manual": User must click "I've made the deposit" to start polling
67
+ */
68
+ depositConfirmationMode?: DepositConfirmationMode;
27
69
  /** Enable browser wallet connection option. Defaults to false */
28
70
  enableConnectWallet?: boolean;
29
71
  onDepositSuccess?: (data: {
@@ -38,10 +80,11 @@ interface DepositModalProps {
38
80
  }) => void;
39
81
  theme?: "light" | "dark" | "auto";
40
82
  }
41
- declare function DepositModal({ open, onOpenChange, userId, publishableKey, modalTitle, destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, hideDepositTracker, showBalanceHeader, transferInputVariant, enableConnectWallet, onDepositSuccess, onDepositError, theme, }: DepositModalProps): react_jsx_runtime.JSX.Element;
83
+ declare function DepositModal({ open, onOpenChange, userId, publishableKey, modalTitle, destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, hideDepositTracker, showBalanceHeader, transferInputVariant, depositConfirmationMode, enableConnectWallet, onDepositSuccess, onDepositError, theme, }: DepositModalProps): react_jsx_runtime.JSX.Element;
42
84
 
43
85
  interface DepositHeaderProps {
44
86
  title: string;
87
+ subtitle?: string;
45
88
  showBack?: boolean;
46
89
  showClose?: boolean;
47
90
  onBack?: () => void;
@@ -51,20 +94,28 @@ interface DepositHeaderProps {
51
94
  };
52
95
  showBalance?: boolean;
53
96
  balanceAddress?: string;
54
- balanceChainType?: "ethereum" | "solana" | "bitcoin";
97
+ balanceChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
55
98
  balanceChainId?: string;
56
99
  balanceTokenAddress?: string;
100
+ /** Project name for balance label e.g. "{projectName} Balance: $0.00" */
101
+ projectName?: string;
57
102
  publishableKey?: string;
58
103
  }
59
- declare function DepositHeader({ title, showBack, showClose, onBack, onClose, badge, showBalance, balanceAddress, balanceChainType, balanceChainId, balanceTokenAddress, publishableKey, }: DepositHeaderProps): react_jsx_runtime.JSX.Element;
104
+ declare function DepositHeader({ title, subtitle, showBack, showClose, onBack, onClose, badge, showBalance, balanceAddress, balanceChainType, balanceChainId, balanceTokenAddress, projectName, publishableKey, }: DepositHeaderProps): react_jsx_runtime.JSX.Element;
60
105
 
61
106
  interface TransferCryptoSingleInputProps {
62
107
  userId: string;
63
108
  publishableKey: string;
64
109
  recipientAddress?: string;
65
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
110
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
66
111
  destinationChainId?: string;
67
112
  destinationTokenAddress?: string;
113
+ /** Controls when polling starts and whether a waiting UI is shown.
114
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
115
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
116
+ * - "manual": User must click "I've made the deposit" to start polling
117
+ */
118
+ depositConfirmationMode?: DepositConfirmationMode;
68
119
  onExecutionsChange?: (executions: AutoSwapResponse[]) => void;
69
120
  onDepositSuccess?: (data: {
70
121
  message: string;
@@ -78,15 +129,21 @@ interface TransferCryptoSingleInputProps {
78
129
  }) => void;
79
130
  wallets?: Wallet[];
80
131
  }
81
- declare function TransferCryptoSingleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoSingleInputProps): react_jsx_runtime.JSX.Element;
132
+ declare function TransferCryptoSingleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, depositConfirmationMode, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoSingleInputProps): react_jsx_runtime.JSX.Element;
82
133
 
83
134
  interface TransferCryptoDoubleInputProps {
84
135
  userId: string;
85
136
  publishableKey: string;
86
137
  recipientAddress?: string;
87
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
138
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
88
139
  destinationChainId?: string;
89
140
  destinationTokenAddress?: string;
141
+ /** Controls when polling starts and whether a waiting UI is shown.
142
+ * - "auto_ui": After 10s, starts polling and shows "Processing..." card (default)
143
+ * - "auto_silent": After 10s, starts polling silently (no waiting UI)
144
+ * - "manual": User must click "I've made the deposit" to start polling
145
+ */
146
+ depositConfirmationMode?: DepositConfirmationMode;
90
147
  onExecutionsChange?: (executions: AutoSwapResponse[]) => void;
91
148
  onDepositSuccess?: (data: {
92
149
  message: string;
@@ -100,7 +157,7 @@ interface TransferCryptoDoubleInputProps {
100
157
  }) => void;
101
158
  wallets?: Wallet[];
102
159
  }
103
- declare function TransferCryptoDoubleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoDoubleInputProps): react_jsx_runtime.JSX.Element;
160
+ declare function TransferCryptoDoubleInput({ userId, publishableKey, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, depositConfirmationMode, onExecutionsChange, onDepositSuccess, onDepositError, wallets: externalWallets, }: TransferCryptoDoubleInputProps): react_jsx_runtime.JSX.Element;
104
161
 
105
162
  interface BuyWithCardProps {
106
163
  userId: string;
@@ -111,7 +168,7 @@ interface BuyWithCardProps {
111
168
  accentColor?: string;
112
169
  destinationTokenSymbol?: string;
113
170
  recipientAddress?: string;
114
- destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand";
171
+ destinationChainType?: "ethereum" | "solana" | "bitcoin" | "algorand" | "xrpl";
115
172
  destinationChainId?: string;
116
173
  destinationTokenAddress?: string;
117
174
  onDepositSuccess?: (data: {
@@ -175,19 +232,6 @@ interface StyledQRCodeProps {
175
232
  imageSize?: number;
176
233
  darkMode?: boolean;
177
234
  }
178
- /**
179
- * Pre-generate a QR code and cache it for instant display later.
180
- * Call this when wallet address is fetched, before modal opens.
181
- */
182
- declare function preloadQRCode(value: string, size?: number, imageUrl?: string, imageSize?: number, darkMode?: boolean): Promise<void>;
183
- /**
184
- * Check if a QR code is already cached
185
- */
186
- declare function isQRCodeCached(value: string, size?: number, imageUrl?: string, darkMode?: boolean): boolean;
187
- /**
188
- * Clear the QR code cache (useful for memory management)
189
- */
190
- declare function clearQRCodeCache(): void;
191
235
  declare function StyledQRCode({ value, size, imageUrl, imageSize, darkMode, }: StyledQRCodeProps): react_jsx_runtime.JSX.Element;
192
236
 
193
237
  interface TransferCryptoButtonProps {
@@ -264,6 +308,23 @@ interface DepositDetailContentProps {
264
308
  }
265
309
  declare function DepositDetailContent({ execution }: DepositDetailContentProps): react_jsx_runtime.JSX.Element;
266
310
 
311
+ interface DepositPollingUiProps {
312
+ depositConfirmationMode: DepositConfirmationMode;
313
+ /** Whether polling has been triggered and waiting UI should be visible */
314
+ showWaitingUi: boolean;
315
+ /** Whether at least one execution has been detected (hides the processing card) */
316
+ hasExecution: boolean;
317
+ /** Called when user clicks "I've made the deposit" in manual mode */
318
+ onIveDeposited: () => void;
319
+ }
320
+ /**
321
+ * Deposit polling UI that renders the correct element based on confirmation mode:
322
+ * - manual (before click): "I've made the deposit" button
323
+ * - auto_ui / manual (after click): "Processing deposit transactions" spinner card
324
+ * - auto_silent: nothing (null)
325
+ */
326
+ declare function DepositPollingUi({ depositConfirmationMode, showWaitingUi, hasExecution, onIveDeposited, }: DepositPollingUiProps): react_jsx_runtime.JSX.Element | null;
327
+
267
328
  interface CurrencyListItemProps {
268
329
  currency: FiatCurrency;
269
330
  isSelected: boolean;
@@ -637,4 +698,4 @@ declare function cn(...inputs: ClassValue[]): string;
637
698
  */
638
699
  declare function truncateAddress(address: string, startChars?: number, endChars?: number): string;
639
700
 
640
- export { type AllowedCountryResult, Button, type ButtonProps, type ButtonTokens, BuyWithCard, type CardTokens, type ComponentConfig, type ComponentOverrides, type ComponentTokens, type ContainerTokens, CurrencyListItem, CurrencyListSection, CurrencyModal, type CustomThemeColors, DepositDetailContent, DepositExecutionItem, DepositHeader, DepositModal, DepositSuccessToast, DepositTrackerButton, DepositWithCardButton, DepositsModal, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type FontConfig, type HeaderTokens, type InputTokens, type ListTokens, type ResolvedFonts, type SearchTokens, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, StyledQRCode, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransferCryptoButton, TransferCryptoDoubleInput, TransferCryptoSingleInput, buttonVariants, clearQRCodeCache, cn, colors, defaultColors, getColors, isQRCodeCached, mergeColors, preloadQRCode, resolveComponentTokens, truncateAddress, useAllowedCountry, useTheme };
701
+ export { type AllowedCountryResult, Button, type ButtonProps, type ButtonTokens, BuyWithCard, type CardTokens, type ComponentConfig, type ComponentOverrides, type ComponentTokens, type ContainerTokens, CurrencyListItem, CurrencyListSection, CurrencyModal, type CustomThemeColors, type DepositConfirmationMode, DepositDetailContent, DepositExecutionItem, DepositHeader, DepositModal, DepositPollingUi, DepositSuccessToast, DepositTrackerButton, DepositWithCardButton, DepositsModal, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type FontConfig, type HeaderTokens, type InputTokens, type ListTokens, type ResolvedFonts, type SearchTokens, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, StyledQRCode, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransferCryptoButton, TransferCryptoDoubleInput, TransferCryptoSingleInput, buttonVariants, cn, colors, defaultColors, getColors, mergeColors, resolveComponentTokens, truncateAddress, useAllowedCountry, useDepositPolling, useTheme };