@unifold/ui-react 0.1.73 → 0.1.75

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.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { DirectExecutionSucceededEvent, DirectExecutionFailedEvent, DirectExecutionResponse, ChainType, EvmContractCall, DepositMethod, DepositEvent, Wallet, ProductType, WalletPayMethod, FiatCurrency, ExecutionStatus, FeaturedToken, PaymentNetwork, DefaultTokenResponse, ConfirmIntegrationTransferResult, CheckoutMethod, CheckoutPaymentIntent, CheckoutEvent, WithdrawDirectExecutionSucceededEvent, WithdrawEvent, DestinationToken, DestinationTokenChain, PaymentIntent, DepositQuote, PublicIncidentResponse, WithdrawDirectExecutionFailedEvent, SupportedDestinationTokensResponse, SupportedDepositTokensResponse, VerifyAddressResponse } from '@unifold/core';
2
+ import { DirectExecutionSucceededEvent, DirectExecutionFailedEvent, DirectExecutionResponse, ChainType, EvmContractCall, DepositMethod, DepositEvent, Wallet, ProductType, WalletPayMethod, CoinbaseWalletPaySessionResponse, FiatCurrency, ExecutionStatus, FeaturedToken, PaymentNetwork, DefaultTokenResponse, ConfirmIntegrationTransferResult, CheckoutMethod, CheckoutPaymentIntent, CheckoutEvent, WithdrawDirectExecutionSucceededEvent, WithdrawEvent, DestinationToken, DestinationTokenChain, PaymentIntent, DepositQuote, PublicIncidentResponse, WithdrawDirectExecutionFailedEvent, SupportedDestinationTokensResponse, SupportedDepositTokensResponse, VerifyAddressResponse } from '@unifold/core';
3
3
  export { ChainType, DepositMethod } from '@unifold/core';
4
4
  import * as React$1 from 'react';
5
5
  import { MutableRefObject } from 'react';
@@ -12,6 +12,32 @@ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
12
12
  import { EventTracker, AnalyticsProperties, AnalyticsEvent } from '@unifold/analytics';
13
13
  import { ClassValue } from 'clsx';
14
14
 
15
+ /** The two tabs the deposit menu splits funding methods across. */
16
+ type DepositTab = 'crypto' | 'cash';
17
+
18
+ /**
19
+ * How the deposit menu arranges the funding methods.
20
+ * - `'tabs'` (default): options grouped under "Use Crypto" / "Use Cash" tabs.
21
+ * - `'stacked'`: every option in a single list.
22
+ */
23
+ type DepositMenuLayoutType = 'stacked' | 'tabs';
24
+ /** Layout the deposit menu uses, and the options belonging to it. */
25
+ interface DepositMenuLayout {
26
+ /** @default 'tabs' */
27
+ type?: DepositMenuLayoutType;
28
+ /**
29
+ * Order of the tabs under `type: 'tabs'`. Tabs listed here lead, in the order
30
+ * given; any tab left out keeps its default position behind them. The leading
31
+ * tab is the one shown on the main menu until the user picks another, so
32
+ * `['cash', 'crypto']` opens on "Use Cash".
33
+ *
34
+ * `initialScreen` still wins: deep-linking into a method opens that method's
35
+ * tab. Unknown or duplicate ids are ignored, and a tab with no enabled
36
+ * methods stays hidden. @default ['crypto', 'cash']
37
+ */
38
+ tabOrder?: DepositTab[];
39
+ }
40
+
15
41
  type DepositConfirmationMode = 'auto_ui' | 'auto_silent' | 'manual';
16
42
  interface UseDepositPollingOptions {
17
43
  userId: string | undefined;
@@ -231,6 +257,12 @@ interface DepositModalProps {
231
257
  * (US-only availability) always wins regardless of this flag.
232
258
  */
233
259
  enableStripeLink?: boolean;
260
+ /**
261
+ * Fixed crypto (destination) amount for the fiat on-ramp (Deposit with Card).
262
+ * When set, the fiat input is locked (view-only) and the onramp is quoted by
263
+ * this crypto amount with provider fees added on top.
264
+ */
265
+ onrampDestinationAmount?: string;
234
266
  /**
235
267
  * Email for the host platform's signed-in user. Consolidated pre-fill / pre-trust
236
268
  * address shared across onramp flows:
@@ -315,14 +347,25 @@ interface DepositModalProps {
315
347
  /** First screen when the modal opens. Default `main` (deposit menu). */
316
348
  initialScreen?: DepositModalInitialScreen;
317
349
  /**
318
- * Main menu layout.
319
- * - `"stacked"` (default): all deposit options are stacked in a single list.
320
- * - `"tabs"`: options are grouped under "Use Crypto" / "Use Cash" tabs to keep
321
- * the menu compact and mobile-friendly.
350
+ * Main menu layout, and the options belonging to it:
351
+ *
352
+ * ```tsx
353
+ * layout={{ type: 'tabs', tabOrder: ['cash', 'crypto'] }}
354
+ * ```
355
+ *
356
+ * `type` defaults to `"tabs"`, which groups the options under "Use Crypto" /
357
+ * "Use Cash" tabs; `"stacked"` puts them all in a single list.
358
+ */
359
+ layout?: DepositMenuLayout;
360
+ /**
361
+ * Main menu layout: `"tabs"` (default) or `"stacked"`.
362
+ *
363
+ * @deprecated Use `layout` instead, which also carries the layout's own
364
+ * options. `displayMode="stacked"` becomes `layout={{ type: 'stacked' }}`.
322
365
  */
323
- displayMode?: 'stacked' | 'tabs';
366
+ displayMode?: DepositMenuLayoutType;
324
367
  }
325
- declare function DepositModal({ open, onOpenChange, userId, publishableKey, modalTitle, destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, contractCalls, defaultSourceChainType, defaultSourceChainId, defaultSourceTokenAddress, defaultSourceSymbol, prefilledAmountUsd, hideDepositTracker, showBalanceHeader, transferInputVariant, depositConfirmationMode, enableTransferCrypto, enableConnectWallet, browserWalletAmountQuickSelect, enablePayWithExchange, enableFiatOnramp, enableConnectExchange, enableCashApp, enableApplePay, applePayTitle: applePayTitleProp, applePaySubTitle: applePaySubTitleProp, enableGooglePay, googlePayTitle: googlePayTitleProp, googlePaySubTitle: googlePaySubTitleProp, enableBankTransfer, enableIncidentBanner, enableStripeLink, userEmail, hideDepositFlowInfo, hideDisplayDescription, onDepositSuccess, onDepositError, onEvent, theme, hideOverlay, initialScreen, displayMode, transferCryptoTitle: transferCryptoTitleProp, depositWithCardTitle: depositWithCardTitleProp, payWithExchangeTitle: payWithExchangeTitleProp, depositTrackerTitle: depositTrackerTitleProp, depositTrackerSubTitle: depositTrackerSubTitleProp, }: DepositModalProps): react_jsx_runtime.JSX.Element;
368
+ declare function DepositModal({ open, onOpenChange, userId, publishableKey, modalTitle, destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, contractCalls, defaultSourceChainType, defaultSourceChainId, defaultSourceTokenAddress, defaultSourceSymbol, prefilledAmountUsd, hideDepositTracker, showBalanceHeader, transferInputVariant, depositConfirmationMode, enableTransferCrypto, enableConnectWallet, browserWalletAmountQuickSelect, enablePayWithExchange, enableFiatOnramp, enableConnectExchange, enableCashApp, enableApplePay, applePayTitle: applePayTitleProp, applePaySubTitle: applePaySubTitleProp, enableGooglePay, googlePayTitle: googlePayTitleProp, googlePaySubTitle: googlePaySubTitleProp, enableBankTransfer, enableIncidentBanner, enableStripeLink, onrampDestinationAmount, userEmail, hideDepositFlowInfo, hideDisplayDescription, onDepositSuccess, onDepositError, onEvent, theme, hideOverlay, initialScreen, layout, displayMode, transferCryptoTitle: transferCryptoTitleProp, depositWithCardTitle: depositWithCardTitleProp, payWithExchangeTitle: payWithExchangeTitleProp, depositTrackerTitle: depositTrackerTitleProp, depositTrackerSubTitle: depositTrackerSubTitleProp, }: DepositModalProps): react_jsx_runtime.JSX.Element;
326
369
 
327
370
  interface DepositHeaderProps {
328
371
  title: string;
@@ -480,11 +523,20 @@ interface BuyWithCardProps {
480
523
  hideDisplayDescription?: boolean;
481
524
  /** Optional USD prefilled for the amount input (treated like manual user input). */
482
525
  prefilledAmountUsd?: string;
526
+ /**
527
+ * Fixed crypto (destination) amount to buy. When set, the fiat amount input is
528
+ * locked (view-only) and shows the value converted from USD to the selected
529
+ * currency; the onramp quotes/session are requested by this destination amount
530
+ * with provider fees added on top. Only providers that support a fixed
531
+ * destination amount are shown.
532
+ */
533
+ destinationAmount?: string;
483
534
  }
484
535
  declare function BuyWithCard({ userId, publishableKey, view: externalView, onViewChange, maxAmountUsd, accentColor, // Keep prop for backward compatibility but don't use default
485
- destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onDepositSuccess, onDepositError, onEvent, themeClass, wallets: externalWallets, assetCdnUrl, hideDepositFlowInfo, hideDisplayDescription, prefilledAmountUsd, }: BuyWithCardProps): react_jsx_runtime.JSX.Element;
536
+ destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onDepositSuccess, onDepositError, onEvent, themeClass, wallets: externalWallets, assetCdnUrl, hideDepositFlowInfo, hideDisplayDescription, prefilledAmountUsd, destinationAmount, }: BuyWithCardProps): react_jsx_runtime.JSX.Element;
486
537
 
487
- type View = 'loading_config' | 'disabled' | 'email_input' | 'phone_input' | 'submitting_session' | 'email_otp' | 'phone_otp' | 'amount' | 'checking_deposit' | 'success' | 'guest_limit_reached' | 'limit_upgrade_intro' | 'limit_upgrade_form' | 'limit_upgrade_submitting' | 'limit_upgrade_failed';
538
+ type WalletPayView = 'loading_config' | 'disabled' | 'email_input' | 'phone_input' | 'submitting_session' | 'email_otp' | 'phone_otp' | 'amount' | 'creating_order' | 'payment' | 'checking_deposit' | 'delivering' | 'success' | 'guest_limit_reached' | 'limit_upgrade_intro' | 'limit_upgrade_form' | 'limit_upgrade_submitting' | 'limit_upgrade_failed';
539
+ type View = WalletPayView;
488
540
  interface BuyWithWalletPayProps {
489
541
  /**
490
542
  * Device wallet the user pays with. Coinbase runs both wallets through the
@@ -543,6 +595,99 @@ interface BuyWithWalletPayHandle {
543
595
  }
544
596
  declare const BuyWithWalletPay: React$1.ForwardRefExoticComponent<BuyWithWalletPayProps & React$1.RefAttributes<BuyWithWalletPayHandle>>;
545
597
 
598
+ /**
599
+ * The figures shown on the device-wallet confirm screen.
600
+ *
601
+ * The Coinbase order *is* the quote: it is priced at creation time, and
602
+ * `source_amount` comes back as `paymentTotal` — what the wallet is charged,
603
+ * fees included. Everything here is derived from that one response so the
604
+ * screen can never show a total the user won't actually be billed.
605
+ */
606
+ interface WalletPayQuote {
607
+ /** Fiat charged, inclusive of fees. */
608
+ totalFiat: number;
609
+ /** Fiat before fees. */
610
+ subtotalFiat: number;
611
+ /** Sum of the provider's fees, in `fiatCurrency`. */
612
+ feeFiat: number;
613
+ /** Uppercase ISO 4217 code for every fiat figure above. */
614
+ fiatCurrency: string;
615
+ /** Crypto delivered, when the provider priced it. */
616
+ receiveAmount: string | null;
617
+ receiveCurrency: string;
618
+ receiveNetwork: string;
619
+ }
620
+ declare function buildWalletPayQuote(session: CoinbaseWalletPaySessionResponse): WalletPayQuote;
621
+ /** `1234.5, "USD"` → `"$1,234.50"`, falling back to `"USD 1234.50"`. */
622
+ declare function formatFiat(amount: number, currency: string): string;
623
+ /**
624
+ * Render a crypto amount without the long tail of zeros Coinbase pads its
625
+ * quotes with (`"97.560000"` → `"97.56"`), keeping at most 6 decimals so a
626
+ * sub-cent asset still shows something.
627
+ */
628
+ declare function formatCryptoAmount(value: string): string;
629
+ /**
630
+ * Error-correction level for a QR the user scans off a screen with a phone.
631
+ *
632
+ * `H` (30% recovery) is the nicest choice for short payloads, but it also
633
+ * inflates the module count, and a Coinbase payment link carries a session
634
+ * token. Past a few hundred characters the modules get too small to scan
635
+ * reliably at modal size, so trade recovery for density as the payload grows —
636
+ * a screen-displayed code has no print smudges or creases to recover from.
637
+ */
638
+ declare function qrErrorCorrectionLevel(value: string): 'L' | 'M' | 'Q' | 'H';
639
+
640
+ interface WalletPayQrCheckoutProps {
641
+ method: WalletPayMethod;
642
+ /** Coinbase-hosted checkout page for this order. */
643
+ paymentUrl: string;
644
+ quote: WalletPayQuote;
645
+ }
646
+ /**
647
+ * Desktop hand-off for the headless Coinbase device wallets: the code to scan,
648
+ * what it will cost, and the fact that we're watching for the payment.
649
+ *
650
+ * Apple Pay on the web only renders on a device that has the wallet, on a
651
+ * domain Apple has verified — which is Coinbase's own checkout page, loaded
652
+ * top-level. A desktop browser can't satisfy that, so rather than trying to host
653
+ * the sheet here we hand the priced order to the user's phone. A phone never
654
+ * sees this screen; it pays from the amount screen in one tap.
655
+ *
656
+ * Payment happens entirely on Coinbase's side, on another device, so nothing
657
+ * here reports back — the parent polls the provider and the chain.
658
+ */
659
+ declare function WalletPayQrCheckout({ method, paymentUrl, quote }: WalletPayQrCheckoutProps): react_jsx_runtime.JSX.Element;
660
+
661
+ type MobilePlatform = 'ios' | 'android';
662
+
663
+ /**
664
+ * The mobile OS, or `null` for desktop and for any phone we can't identify.
665
+ *
666
+ * `null` covers desktop, an unfamiliar user agent and the server, because all
667
+ * three mean the same thing to callers: nothing here justifies taking an option
668
+ * away. Anything that hides a payment method on this should treat `null` as
669
+ * "allow", so an unrecognised device never loses something that might have
670
+ * worked.
671
+ */
672
+ declare function useMobilePlatform(): MobilePlatform | null;
673
+
674
+ /**
675
+ * Whether this device can pay with a given wallet itself.
676
+ *
677
+ * A phone only carries the wallet its own OS ships: Apple Pay does not exist on
678
+ * Android, and Coinbase's guest checkout treats Google Pay as the Android rail.
679
+ * Offering the other one is a dead end — the user reaches Coinbase's page and no
680
+ * payment sheet appears.
681
+ *
682
+ * `null` — desktop, an unfamiliar user agent, or a server render — allows both,
683
+ * and that is the important half of the rule. On desktop the QR hands the
684
+ * payment to a phone we know nothing about, so neither wallet can be ruled out;
685
+ * the user picks whichever their own phone has. Guessing here would remove a
686
+ * working option, where guessing on a known platform only ever removes one that
687
+ * would have failed.
688
+ */
689
+ declare function platformSupportsWalletPay(method: WalletPayMethod, platform: MobilePlatform | null): boolean;
690
+
546
691
  type BuyWithApplePayProps = Omit<BuyWithWalletPayProps, 'method'>;
547
692
  /**
548
693
  * Apple Pay entry point into the headless Coinbase guest-checkout flow.
@@ -613,19 +758,25 @@ interface DepositsModalProps {
613
758
  }
614
759
  declare function DepositsModal({ open, onOpenChange, onCloseAll, executions: sessionExecutions, userId, publishableKey, themeClass, }: DepositsModalProps): react_jsx_runtime.JSX.Element;
615
760
 
761
+ type ErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
616
762
  interface StyledQRCodeProps {
617
763
  value: string;
618
764
  size?: number;
619
765
  imageUrl?: string;
620
766
  imageSize?: number;
621
767
  darkMode?: boolean;
768
+ /**
769
+ * Lower levels pack a long payload into fewer, larger modules, which scans
770
+ * better off a screen than a dense high-recovery code.
771
+ */
772
+ errorCorrectionLevel?: ErrorCorrectionLevel;
622
773
  }
623
774
  interface QRCodeSkeletonProps {
624
775
  size?: number;
625
776
  darkMode?: boolean;
626
777
  }
627
778
  declare function QRCodeSkeleton({ size, darkMode }: QRCodeSkeletonProps): react_jsx_runtime.JSX.Element;
628
- declare function StyledQRCode({ value, size, imageUrl, imageSize, darkMode, }: StyledQRCodeProps): react_jsx_runtime.JSX.Element;
779
+ declare function StyledQRCode({ value, size, imageUrl, imageSize, darkMode, errorCorrectionLevel, }: StyledQRCodeProps): react_jsx_runtime.JSX.Element;
629
780
 
630
781
  interface TransferCryptoButtonProps {
631
782
  onClick: () => void;
@@ -868,9 +1019,6 @@ interface ManualDepositButtonProps {
868
1019
  * Returns null for auto modes or after the user has clicked.
869
1020
  */
870
1021
  declare function ManualDepositButton({ depositConfirmationMode, showWaitingUi, onIveDeposited, }: ManualDepositButtonProps): react_jsx_runtime.JSX.Element | null;
871
- /**
872
- * Inline "Checking for deposit" spinner for the footer row.
873
- */
874
1022
  declare function CheckingForDepositIndicator({ showWaitingUi, hasExecution, }: {
875
1023
  showWaitingUi: boolean;
876
1024
  hasExecution: boolean;
@@ -1258,6 +1406,10 @@ var common = {
1258
1406
  dateTime: "{{date}} at {{time}}",
1259
1407
  "continue": "Continue",
1260
1408
  processing: "Processing",
1409
+ checkingFor: "Checking for {{target}}",
1410
+ depositTarget: "deposit",
1411
+ paymentTarget: "payment",
1412
+ paymentFailed: "Payment failed",
1261
1413
  terms: "Terms",
1262
1414
  help: "Help",
1263
1415
  done: "Done",
@@ -1542,6 +1694,8 @@ var depositModal = {
1542
1694
  verifyEmail: "Verify your email",
1543
1695
  verifyPhone: "Verify your phone",
1544
1696
  amount: "Amount",
1697
+ gettingQuote: "Getting quote",
1698
+ delivering: "Payment received",
1545
1699
  checkingDeposit: "Checking deposit",
1546
1700
  success: "Success",
1547
1701
  limitReached: "Limit reached",
@@ -1552,7 +1706,6 @@ var depositModal = {
1552
1706
  payAmount: "Pay ${{amount}} via Cash App"
1553
1707
  },
1554
1708
  cashAppScan: {
1555
- mobile: "Complete payment in Cash App",
1556
1709
  desktop: "Scan to pay"
1557
1710
  },
1558
1711
  cashAppErrors: {
@@ -1560,6 +1713,9 @@ var depositModal = {
1560
1713
  createSessionFailed: "Failed to create session",
1561
1714
  paymentFailed: "Payment failed",
1562
1715
  cashAppPaymentFailed: "Cash App payment failed"
1716
+ },
1717
+ exchangeScan: {
1718
+ desktop: "Scan to transfer"
1563
1719
  }
1564
1720
  };
1565
1721
  var checkoutModal = {
@@ -1724,11 +1880,26 @@ var buyWithApplePay = {
1724
1880
  tokenRoutingUnavailable: "Token routing unavailable",
1725
1881
  preparing: "Preparing {{wallet}}",
1726
1882
  payWith: "Pay with",
1727
- pay: "Pay"
1883
+ pay: "Pay",
1884
+ confirm: "Confirm",
1885
+ gettingQuote: "Getting your quote…"
1886
+ },
1887
+ payment: {
1888
+ scanToPay: "Scan to pay",
1889
+ total: "Total",
1890
+ viewBreakdown: "View breakdown",
1891
+ hideBreakdown: "Hide breakdown",
1892
+ subtotal: "Amount",
1893
+ fees: "Fees",
1894
+ youReceive: "You receive",
1895
+ copyLink: "Copy payment link",
1896
+ copied: "Copied"
1728
1897
  },
1729
1898
  checking: {
1730
1899
  title: "Checking for your deposit…",
1731
- description: "Return if the payment is not made."
1900
+ description: "Return if the payment is not made.",
1901
+ paidTitle: "Payment received",
1902
+ paidDescription: "Your funds are on the way. This usually takes less than a minute."
1732
1903
  },
1733
1904
  upgrade: {
1734
1905
  limitReached: "{{wallet}} limit reached",
@@ -1759,7 +1930,8 @@ var buyWithApplePay = {
1759
1930
  destinationNotConfigured: "Deposit destination not configured. Please contact support.",
1760
1931
  tokenInfoUnavailable: "Unable to load token information. Please try again.",
1761
1932
  depositWalletUnavailable: "Deposit wallet unavailable. Please try again.",
1762
- requestFailed: "Unable to process your request. Please try again later."
1933
+ requestFailed: "Unable to process your request. Please try again later.",
1934
+ tabBlocked: "Couldn't open the {{wallet}} page. Allow pop-ups for this site and try again."
1763
1935
  },
1764
1936
  "continue": "Continue",
1765
1937
  cancel: "Cancel",
@@ -1771,7 +1943,9 @@ var buyWithApplePay = {
1771
1943
  verifyInfoFailed: "We couldn't verify your information. Please check your SSN and date of birth and try again.",
1772
1944
  limitUpgradeFailed: "Failed to request limit upgrade",
1773
1945
  verificationFailed: "Verification failed",
1774
- createPaymentFailed: "Failed to create payment"
1946
+ createPaymentFailed: "Failed to create payment",
1947
+ paymentFailed: "That payment didn't go through. Check the amount and try again.",
1948
+ paymentExpired: "This payment expired before it was completed. Try again."
1775
1949
  }
1776
1950
  };
1777
1951
  var payWithStripeLink = {
@@ -2062,6 +2236,10 @@ declare const i18n: {
2062
2236
  dateTime: string;
2063
2237
  continue: string;
2064
2238
  processing: string;
2239
+ checkingFor: string;
2240
+ depositTarget: string;
2241
+ paymentTarget: string;
2242
+ paymentFailed: string;
2065
2243
  terms: string;
2066
2244
  help: string;
2067
2245
  done: string;
@@ -2346,6 +2524,8 @@ declare const i18n: {
2346
2524
  verifyEmail: string;
2347
2525
  verifyPhone: string;
2348
2526
  amount: string;
2527
+ gettingQuote: string;
2528
+ delivering: string;
2349
2529
  checkingDeposit: string;
2350
2530
  success: string;
2351
2531
  limitReached: string;
@@ -2356,7 +2536,6 @@ declare const i18n: {
2356
2536
  payAmount: string;
2357
2537
  };
2358
2538
  cashAppScan: {
2359
- mobile: string;
2360
2539
  desktop: string;
2361
2540
  };
2362
2541
  cashAppErrors: {
@@ -2365,6 +2544,9 @@ declare const i18n: {
2365
2544
  paymentFailed: string;
2366
2545
  cashAppPaymentFailed: string;
2367
2546
  };
2547
+ exchangeScan: {
2548
+ desktop: string;
2549
+ };
2368
2550
  };
2369
2551
  checkoutModal: {
2370
2552
  title: string;
@@ -2529,10 +2711,25 @@ declare const i18n: {
2529
2711
  preparing: string;
2530
2712
  payWith: string;
2531
2713
  pay: string;
2714
+ confirm: string;
2715
+ gettingQuote: string;
2716
+ };
2717
+ payment: {
2718
+ scanToPay: string;
2719
+ total: string;
2720
+ viewBreakdown: string;
2721
+ hideBreakdown: string;
2722
+ subtotal: string;
2723
+ fees: string;
2724
+ youReceive: string;
2725
+ copyLink: string;
2726
+ copied: string;
2532
2727
  };
2533
2728
  checking: {
2534
2729
  title: string;
2535
2730
  description: string;
2731
+ paidTitle: string;
2732
+ paidDescription: string;
2536
2733
  };
2537
2734
  upgrade: {
2538
2735
  limitReached: string;
@@ -2564,6 +2761,7 @@ declare const i18n: {
2564
2761
  tokenInfoUnavailable: string;
2565
2762
  depositWalletUnavailable: string;
2566
2763
  requestFailed: string;
2764
+ tabBlocked: string;
2567
2765
  };
2568
2766
  continue: string;
2569
2767
  cancel: string;
@@ -2576,6 +2774,8 @@ declare const i18n: {
2576
2774
  limitUpgradeFailed: string;
2577
2775
  verificationFailed: string;
2578
2776
  createPaymentFailed: string;
2777
+ paymentFailed: string;
2778
+ paymentExpired: string;
2579
2779
  };
2580
2780
  };
2581
2781
  payWithStripeLink: {
@@ -3380,4 +3580,4 @@ declare function cn(...inputs: ClassValue[]): string;
3380
3580
  */
3381
3581
  declare function truncateAddress(address: string, startChars?: number, endChars?: number): string;
3382
3582
 
3383
- export { type AllowedCountryResult, AnalyticsProvider, type AnalyticsProviderProps, BankTransfer, BankTransferButton, type BankTransferProps, type BankTransferView, type BrowserWalletAmountQuickSelect, Button, type ButtonProps, type ButtonTokens, BuyWithApplePay, type BuyWithApplePayProps, BuyWithCard, type BuyWithCardProps, BuyWithGooglePay, type BuyWithGooglePayProps, BuyWithWalletPay, type BuyWithWalletPayHandle, type BuyWithWalletPayProps, type CardTokens, CheckingForDepositIndicator, CheckoutModal, type CheckoutModalProps, CoinbaseConnect, type ComponentConfig, type ComponentOverrides, type ComponentTokens, ConfirmingView, ConnectExchangeButton, type ContainerTokens, CurrencyListItem, CurrencyListSection, CurrencyModal, type CustomThemeColors, type DepositConfirmationMode, DepositDetailContent, DepositExecutionItem, DepositHeader, DepositModal, type DepositModalInitialScreen, DepositSuccessToast, DepositTrackerButton, DepositWithCardButton, DepositsModal, type DetectedWallet, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type EvmWalletProvider, type FontConfig, HYPERCORE_CHAIN_ID, type HeaderTokens, type I18nContextValue, I18nProvider, type I18nProviderProps, type I18nStrings, type InputTokens, type ListTokens, type LocaleCode, ManualDepositButton, PayWithStripeLink, type PayWithStripeLinkProps, QRCodeSkeleton, type ResolvedFonts, SUPPORTED_LOCALES, type SearchTokens, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type SolanaWalletProvider, type StoredWalletPaySession as StoredApplePaySession, type StoredWalletPaySession, StripeLinkButton, type StripeLinkStep, StyledQRCode, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransferCryptoButton, TransferCryptoDoubleInput, TransferCryptoSingleInput, type UseDepositQuoteParams, type UsePaymentIntentParams, type UseSupportedDepositTokensOptions, WithdrawConfirmingView, WithdrawDoubleInput, WithdrawExecutionItem, WithdrawForm, WithdrawModal, type WithdrawModalProps, WithdrawTokenSelector, type WithdrawTransactionInfo, buttonVariants, clearStoredWalletPaySession as clearStoredApplePaySession, clearStoredWalletPaySession, cn, colors, defaultColors, detectBrowserLocale, detectBrowserWallet, getActiveLocale, getActiveStrings, getColors, getStoredWalletPaySession as getStoredApplePaySession, getStoredWalletPaySession, getStrings, i18n, interpolate, isHypercoreChain, isOnrampTokenFresh, mergeColors, normalizeLocale, resolveComponentTokens, sendEvmWithdraw, sendHypercoreWithdraw, sendSolanaWithdraw, setActiveLocale, setStoredWalletPaySession as setStoredApplePaySession, setStoredWalletPaySession, truncateAddress, useAddressBalance, useAllowedCountry, useAnalytics, useDebounce, useDepositPolling, useDepositQuote, useI18n, usePaymentIntent, usePublicIncident, useSourceTokenValidation, useSupportedDepositTokens, useSupportedDestinationTokens, useTheme, useVerifyRecipientAddress, useWithdrawPolling };
3583
+ export { type AllowedCountryResult, AnalyticsProvider, type AnalyticsProviderProps, BankTransfer, BankTransferButton, type BankTransferProps, type BankTransferView, type BrowserWalletAmountQuickSelect, Button, type ButtonProps, type ButtonTokens, BuyWithApplePay, type BuyWithApplePayProps, BuyWithCard, type BuyWithCardProps, BuyWithGooglePay, type BuyWithGooglePayProps, BuyWithWalletPay, type BuyWithWalletPayHandle, type BuyWithWalletPayProps, type CardTokens, CheckingForDepositIndicator, CheckoutModal, type CheckoutModalProps, CoinbaseConnect, type ComponentConfig, type ComponentOverrides, type ComponentTokens, ConfirmingView, ConnectExchangeButton, type ContainerTokens, CurrencyListItem, CurrencyListSection, CurrencyModal, type CustomThemeColors, type DepositConfirmationMode, DepositDetailContent, DepositExecutionItem, DepositHeader, type DepositMenuLayout, type DepositMenuLayoutType, DepositModal, type DepositModalInitialScreen, DepositSuccessToast, type DepositTab, DepositTrackerButton, DepositWithCardButton, DepositsModal, type DetectedWallet, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type EvmWalletProvider, type FontConfig, HYPERCORE_CHAIN_ID, type HeaderTokens, type I18nContextValue, I18nProvider, type I18nProviderProps, type I18nStrings, type InputTokens, type ListTokens, type LocaleCode, ManualDepositButton, type MobilePlatform, PayWithStripeLink, type PayWithStripeLinkProps, QRCodeSkeleton, type ResolvedFonts, SUPPORTED_LOCALES, type SearchTokens, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type SolanaWalletProvider, type StoredWalletPaySession as StoredApplePaySession, type StoredWalletPaySession, StripeLinkButton, type StripeLinkStep, StyledQRCode, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransferCryptoButton, TransferCryptoDoubleInput, TransferCryptoSingleInput, type UseDepositQuoteParams, type UsePaymentIntentParams, type UseSupportedDepositTokensOptions, WalletPayQrCheckout, type WalletPayQrCheckoutProps, type WalletPayQuote, type WalletPayView, WithdrawConfirmingView, WithdrawDoubleInput, WithdrawExecutionItem, WithdrawForm, WithdrawModal, type WithdrawModalProps, WithdrawTokenSelector, type WithdrawTransactionInfo, buildWalletPayQuote, buttonVariants, clearStoredWalletPaySession as clearStoredApplePaySession, clearStoredWalletPaySession, cn, colors, defaultColors, detectBrowserLocale, detectBrowserWallet, formatCryptoAmount, formatFiat, getActiveLocale, getActiveStrings, getColors, getStoredWalletPaySession as getStoredApplePaySession, getStoredWalletPaySession, getStrings, i18n, interpolate, isHypercoreChain, isOnrampTokenFresh, mergeColors, normalizeLocale, platformSupportsWalletPay, qrErrorCorrectionLevel, resolveComponentTokens, sendEvmWithdraw, sendHypercoreWithdraw, sendSolanaWithdraw, setActiveLocale, setStoredWalletPaySession as setStoredApplePaySession, setStoredWalletPaySession, truncateAddress, useAddressBalance, useAllowedCountry, useAnalytics, useDebounce, useDepositPolling, useDepositQuote, useI18n, useMobilePlatform, usePaymentIntent, usePublicIncident, useSourceTokenValidation, useSupportedDepositTokens, useSupportedDestinationTokens, useTheme, useVerifyRecipientAddress, useWithdrawPolling };