@unifold/ui-react 0.1.74 → 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.mts 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';
@@ -535,7 +535,8 @@ interface BuyWithCardProps {
535
535
  declare function BuyWithCard({ userId, publishableKey, view: externalView, onViewChange, maxAmountUsd, accentColor, // Keep prop for backward compatibility but don't use default
536
536
  destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onDepositSuccess, onDepositError, onEvent, themeClass, wallets: externalWallets, assetCdnUrl, hideDepositFlowInfo, hideDisplayDescription, prefilledAmountUsd, destinationAmount, }: BuyWithCardProps): react_jsx_runtime.JSX.Element;
537
537
 
538
- 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;
539
540
  interface BuyWithWalletPayProps {
540
541
  /**
541
542
  * Device wallet the user pays with. Coinbase runs both wallets through the
@@ -594,6 +595,99 @@ interface BuyWithWalletPayHandle {
594
595
  }
595
596
  declare const BuyWithWalletPay: React$1.ForwardRefExoticComponent<BuyWithWalletPayProps & React$1.RefAttributes<BuyWithWalletPayHandle>>;
596
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
+
597
691
  type BuyWithApplePayProps = Omit<BuyWithWalletPayProps, 'method'>;
598
692
  /**
599
693
  * Apple Pay entry point into the headless Coinbase guest-checkout flow.
@@ -664,19 +758,25 @@ interface DepositsModalProps {
664
758
  }
665
759
  declare function DepositsModal({ open, onOpenChange, onCloseAll, executions: sessionExecutions, userId, publishableKey, themeClass, }: DepositsModalProps): react_jsx_runtime.JSX.Element;
666
760
 
761
+ type ErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
667
762
  interface StyledQRCodeProps {
668
763
  value: string;
669
764
  size?: number;
670
765
  imageUrl?: string;
671
766
  imageSize?: number;
672
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;
673
773
  }
674
774
  interface QRCodeSkeletonProps {
675
775
  size?: number;
676
776
  darkMode?: boolean;
677
777
  }
678
778
  declare function QRCodeSkeleton({ size, darkMode }: QRCodeSkeletonProps): react_jsx_runtime.JSX.Element;
679
- 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;
680
780
 
681
781
  interface TransferCryptoButtonProps {
682
782
  onClick: () => void;
@@ -919,9 +1019,6 @@ interface ManualDepositButtonProps {
919
1019
  * Returns null for auto modes or after the user has clicked.
920
1020
  */
921
1021
  declare function ManualDepositButton({ depositConfirmationMode, showWaitingUi, onIveDeposited, }: ManualDepositButtonProps): react_jsx_runtime.JSX.Element | null;
922
- /**
923
- * Inline "Checking for deposit" spinner for the footer row.
924
- */
925
1022
  declare function CheckingForDepositIndicator({ showWaitingUi, hasExecution, }: {
926
1023
  showWaitingUi: boolean;
927
1024
  hasExecution: boolean;
@@ -1309,6 +1406,10 @@ var common = {
1309
1406
  dateTime: "{{date}} at {{time}}",
1310
1407
  "continue": "Continue",
1311
1408
  processing: "Processing",
1409
+ checkingFor: "Checking for {{target}}",
1410
+ depositTarget: "deposit",
1411
+ paymentTarget: "payment",
1412
+ paymentFailed: "Payment failed",
1312
1413
  terms: "Terms",
1313
1414
  help: "Help",
1314
1415
  done: "Done",
@@ -1593,6 +1694,8 @@ var depositModal = {
1593
1694
  verifyEmail: "Verify your email",
1594
1695
  verifyPhone: "Verify your phone",
1595
1696
  amount: "Amount",
1697
+ gettingQuote: "Getting quote",
1698
+ delivering: "Payment received",
1596
1699
  checkingDeposit: "Checking deposit",
1597
1700
  success: "Success",
1598
1701
  limitReached: "Limit reached",
@@ -1603,7 +1706,6 @@ var depositModal = {
1603
1706
  payAmount: "Pay ${{amount}} via Cash App"
1604
1707
  },
1605
1708
  cashAppScan: {
1606
- mobile: "Complete payment in Cash App",
1607
1709
  desktop: "Scan to pay"
1608
1710
  },
1609
1711
  cashAppErrors: {
@@ -1611,6 +1713,9 @@ var depositModal = {
1611
1713
  createSessionFailed: "Failed to create session",
1612
1714
  paymentFailed: "Payment failed",
1613
1715
  cashAppPaymentFailed: "Cash App payment failed"
1716
+ },
1717
+ exchangeScan: {
1718
+ desktop: "Scan to transfer"
1614
1719
  }
1615
1720
  };
1616
1721
  var checkoutModal = {
@@ -1775,11 +1880,26 @@ var buyWithApplePay = {
1775
1880
  tokenRoutingUnavailable: "Token routing unavailable",
1776
1881
  preparing: "Preparing {{wallet}}",
1777
1882
  payWith: "Pay with",
1778
- 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"
1779
1897
  },
1780
1898
  checking: {
1781
1899
  title: "Checking for your deposit…",
1782
- 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."
1783
1903
  },
1784
1904
  upgrade: {
1785
1905
  limitReached: "{{wallet}} limit reached",
@@ -1810,7 +1930,8 @@ var buyWithApplePay = {
1810
1930
  destinationNotConfigured: "Deposit destination not configured. Please contact support.",
1811
1931
  tokenInfoUnavailable: "Unable to load token information. Please try again.",
1812
1932
  depositWalletUnavailable: "Deposit wallet unavailable. Please try again.",
1813
- 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."
1814
1935
  },
1815
1936
  "continue": "Continue",
1816
1937
  cancel: "Cancel",
@@ -1822,7 +1943,9 @@ var buyWithApplePay = {
1822
1943
  verifyInfoFailed: "We couldn't verify your information. Please check your SSN and date of birth and try again.",
1823
1944
  limitUpgradeFailed: "Failed to request limit upgrade",
1824
1945
  verificationFailed: "Verification failed",
1825
- 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."
1826
1949
  }
1827
1950
  };
1828
1951
  var payWithStripeLink = {
@@ -2113,6 +2236,10 @@ declare const i18n: {
2113
2236
  dateTime: string;
2114
2237
  continue: string;
2115
2238
  processing: string;
2239
+ checkingFor: string;
2240
+ depositTarget: string;
2241
+ paymentTarget: string;
2242
+ paymentFailed: string;
2116
2243
  terms: string;
2117
2244
  help: string;
2118
2245
  done: string;
@@ -2397,6 +2524,8 @@ declare const i18n: {
2397
2524
  verifyEmail: string;
2398
2525
  verifyPhone: string;
2399
2526
  amount: string;
2527
+ gettingQuote: string;
2528
+ delivering: string;
2400
2529
  checkingDeposit: string;
2401
2530
  success: string;
2402
2531
  limitReached: string;
@@ -2407,7 +2536,6 @@ declare const i18n: {
2407
2536
  payAmount: string;
2408
2537
  };
2409
2538
  cashAppScan: {
2410
- mobile: string;
2411
2539
  desktop: string;
2412
2540
  };
2413
2541
  cashAppErrors: {
@@ -2416,6 +2544,9 @@ declare const i18n: {
2416
2544
  paymentFailed: string;
2417
2545
  cashAppPaymentFailed: string;
2418
2546
  };
2547
+ exchangeScan: {
2548
+ desktop: string;
2549
+ };
2419
2550
  };
2420
2551
  checkoutModal: {
2421
2552
  title: string;
@@ -2580,10 +2711,25 @@ declare const i18n: {
2580
2711
  preparing: string;
2581
2712
  payWith: string;
2582
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;
2583
2727
  };
2584
2728
  checking: {
2585
2729
  title: string;
2586
2730
  description: string;
2731
+ paidTitle: string;
2732
+ paidDescription: string;
2587
2733
  };
2588
2734
  upgrade: {
2589
2735
  limitReached: string;
@@ -2615,6 +2761,7 @@ declare const i18n: {
2615
2761
  tokenInfoUnavailable: string;
2616
2762
  depositWalletUnavailable: string;
2617
2763
  requestFailed: string;
2764
+ tabBlocked: string;
2618
2765
  };
2619
2766
  continue: string;
2620
2767
  cancel: string;
@@ -2627,6 +2774,8 @@ declare const i18n: {
2627
2774
  limitUpgradeFailed: string;
2628
2775
  verificationFailed: string;
2629
2776
  createPaymentFailed: string;
2777
+ paymentFailed: string;
2778
+ paymentExpired: string;
2630
2779
  };
2631
2780
  };
2632
2781
  payWithStripeLink: {
@@ -3431,4 +3580,4 @@ declare function cn(...inputs: ClassValue[]): string;
3431
3580
  */
3432
3581
  declare function truncateAddress(address: string, startChars?: number, endChars?: number): string;
3433
3582
 
3434
- 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, 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 };
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';
@@ -535,7 +535,8 @@ interface BuyWithCardProps {
535
535
  declare function BuyWithCard({ userId, publishableKey, view: externalView, onViewChange, maxAmountUsd, accentColor, // Keep prop for backward compatibility but don't use default
536
536
  destinationTokenSymbol, recipientAddress, destinationChainType, destinationChainId, destinationTokenAddress, onDepositSuccess, onDepositError, onEvent, themeClass, wallets: externalWallets, assetCdnUrl, hideDepositFlowInfo, hideDisplayDescription, prefilledAmountUsd, destinationAmount, }: BuyWithCardProps): react_jsx_runtime.JSX.Element;
537
537
 
538
- 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;
539
540
  interface BuyWithWalletPayProps {
540
541
  /**
541
542
  * Device wallet the user pays with. Coinbase runs both wallets through the
@@ -594,6 +595,99 @@ interface BuyWithWalletPayHandle {
594
595
  }
595
596
  declare const BuyWithWalletPay: React$1.ForwardRefExoticComponent<BuyWithWalletPayProps & React$1.RefAttributes<BuyWithWalletPayHandle>>;
596
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
+
597
691
  type BuyWithApplePayProps = Omit<BuyWithWalletPayProps, 'method'>;
598
692
  /**
599
693
  * Apple Pay entry point into the headless Coinbase guest-checkout flow.
@@ -664,19 +758,25 @@ interface DepositsModalProps {
664
758
  }
665
759
  declare function DepositsModal({ open, onOpenChange, onCloseAll, executions: sessionExecutions, userId, publishableKey, themeClass, }: DepositsModalProps): react_jsx_runtime.JSX.Element;
666
760
 
761
+ type ErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
667
762
  interface StyledQRCodeProps {
668
763
  value: string;
669
764
  size?: number;
670
765
  imageUrl?: string;
671
766
  imageSize?: number;
672
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;
673
773
  }
674
774
  interface QRCodeSkeletonProps {
675
775
  size?: number;
676
776
  darkMode?: boolean;
677
777
  }
678
778
  declare function QRCodeSkeleton({ size, darkMode }: QRCodeSkeletonProps): react_jsx_runtime.JSX.Element;
679
- 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;
680
780
 
681
781
  interface TransferCryptoButtonProps {
682
782
  onClick: () => void;
@@ -919,9 +1019,6 @@ interface ManualDepositButtonProps {
919
1019
  * Returns null for auto modes or after the user has clicked.
920
1020
  */
921
1021
  declare function ManualDepositButton({ depositConfirmationMode, showWaitingUi, onIveDeposited, }: ManualDepositButtonProps): react_jsx_runtime.JSX.Element | null;
922
- /**
923
- * Inline "Checking for deposit" spinner for the footer row.
924
- */
925
1022
  declare function CheckingForDepositIndicator({ showWaitingUi, hasExecution, }: {
926
1023
  showWaitingUi: boolean;
927
1024
  hasExecution: boolean;
@@ -1309,6 +1406,10 @@ var common = {
1309
1406
  dateTime: "{{date}} at {{time}}",
1310
1407
  "continue": "Continue",
1311
1408
  processing: "Processing",
1409
+ checkingFor: "Checking for {{target}}",
1410
+ depositTarget: "deposit",
1411
+ paymentTarget: "payment",
1412
+ paymentFailed: "Payment failed",
1312
1413
  terms: "Terms",
1313
1414
  help: "Help",
1314
1415
  done: "Done",
@@ -1593,6 +1694,8 @@ var depositModal = {
1593
1694
  verifyEmail: "Verify your email",
1594
1695
  verifyPhone: "Verify your phone",
1595
1696
  amount: "Amount",
1697
+ gettingQuote: "Getting quote",
1698
+ delivering: "Payment received",
1596
1699
  checkingDeposit: "Checking deposit",
1597
1700
  success: "Success",
1598
1701
  limitReached: "Limit reached",
@@ -1603,7 +1706,6 @@ var depositModal = {
1603
1706
  payAmount: "Pay ${{amount}} via Cash App"
1604
1707
  },
1605
1708
  cashAppScan: {
1606
- mobile: "Complete payment in Cash App",
1607
1709
  desktop: "Scan to pay"
1608
1710
  },
1609
1711
  cashAppErrors: {
@@ -1611,6 +1713,9 @@ var depositModal = {
1611
1713
  createSessionFailed: "Failed to create session",
1612
1714
  paymentFailed: "Payment failed",
1613
1715
  cashAppPaymentFailed: "Cash App payment failed"
1716
+ },
1717
+ exchangeScan: {
1718
+ desktop: "Scan to transfer"
1614
1719
  }
1615
1720
  };
1616
1721
  var checkoutModal = {
@@ -1775,11 +1880,26 @@ var buyWithApplePay = {
1775
1880
  tokenRoutingUnavailable: "Token routing unavailable",
1776
1881
  preparing: "Preparing {{wallet}}",
1777
1882
  payWith: "Pay with",
1778
- 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"
1779
1897
  },
1780
1898
  checking: {
1781
1899
  title: "Checking for your deposit…",
1782
- 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."
1783
1903
  },
1784
1904
  upgrade: {
1785
1905
  limitReached: "{{wallet}} limit reached",
@@ -1810,7 +1930,8 @@ var buyWithApplePay = {
1810
1930
  destinationNotConfigured: "Deposit destination not configured. Please contact support.",
1811
1931
  tokenInfoUnavailable: "Unable to load token information. Please try again.",
1812
1932
  depositWalletUnavailable: "Deposit wallet unavailable. Please try again.",
1813
- 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."
1814
1935
  },
1815
1936
  "continue": "Continue",
1816
1937
  cancel: "Cancel",
@@ -1822,7 +1943,9 @@ var buyWithApplePay = {
1822
1943
  verifyInfoFailed: "We couldn't verify your information. Please check your SSN and date of birth and try again.",
1823
1944
  limitUpgradeFailed: "Failed to request limit upgrade",
1824
1945
  verificationFailed: "Verification failed",
1825
- 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."
1826
1949
  }
1827
1950
  };
1828
1951
  var payWithStripeLink = {
@@ -2113,6 +2236,10 @@ declare const i18n: {
2113
2236
  dateTime: string;
2114
2237
  continue: string;
2115
2238
  processing: string;
2239
+ checkingFor: string;
2240
+ depositTarget: string;
2241
+ paymentTarget: string;
2242
+ paymentFailed: string;
2116
2243
  terms: string;
2117
2244
  help: string;
2118
2245
  done: string;
@@ -2397,6 +2524,8 @@ declare const i18n: {
2397
2524
  verifyEmail: string;
2398
2525
  verifyPhone: string;
2399
2526
  amount: string;
2527
+ gettingQuote: string;
2528
+ delivering: string;
2400
2529
  checkingDeposit: string;
2401
2530
  success: string;
2402
2531
  limitReached: string;
@@ -2407,7 +2536,6 @@ declare const i18n: {
2407
2536
  payAmount: string;
2408
2537
  };
2409
2538
  cashAppScan: {
2410
- mobile: string;
2411
2539
  desktop: string;
2412
2540
  };
2413
2541
  cashAppErrors: {
@@ -2416,6 +2544,9 @@ declare const i18n: {
2416
2544
  paymentFailed: string;
2417
2545
  cashAppPaymentFailed: string;
2418
2546
  };
2547
+ exchangeScan: {
2548
+ desktop: string;
2549
+ };
2419
2550
  };
2420
2551
  checkoutModal: {
2421
2552
  title: string;
@@ -2580,10 +2711,25 @@ declare const i18n: {
2580
2711
  preparing: string;
2581
2712
  payWith: string;
2582
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;
2583
2727
  };
2584
2728
  checking: {
2585
2729
  title: string;
2586
2730
  description: string;
2731
+ paidTitle: string;
2732
+ paidDescription: string;
2587
2733
  };
2588
2734
  upgrade: {
2589
2735
  limitReached: string;
@@ -2615,6 +2761,7 @@ declare const i18n: {
2615
2761
  tokenInfoUnavailable: string;
2616
2762
  depositWalletUnavailable: string;
2617
2763
  requestFailed: string;
2764
+ tabBlocked: string;
2618
2765
  };
2619
2766
  continue: string;
2620
2767
  cancel: string;
@@ -2627,6 +2774,8 @@ declare const i18n: {
2627
2774
  limitUpgradeFailed: string;
2628
2775
  verificationFailed: string;
2629
2776
  createPaymentFailed: string;
2777
+ paymentFailed: string;
2778
+ paymentExpired: string;
2630
2779
  };
2631
2780
  };
2632
2781
  payWithStripeLink: {
@@ -3431,4 +3580,4 @@ declare function cn(...inputs: ClassValue[]): string;
3431
3580
  */
3432
3581
  declare function truncateAddress(address: string, startChars?: number, endChars?: number): string;
3433
3582
 
3434
- 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, 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 };