@imtbl/checkout-widgets 2.7.6-alpha.3 → 2.8.0

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.
Files changed (76) hide show
  1. package/dist/browser/{AddTokensWidget-BtCxQDre.js → AddTokensWidget-DtCyCdCX.js} +10 -10
  2. package/dist/browser/{BridgeWidget-BqQopDTq.js → BridgeWidget-V490AOed.js} +21 -21
  3. package/dist/browser/{CommerceWidget-BK9R-_9f.js → CommerceWidget-D8RW-KTW.js} +14 -14
  4. package/dist/browser/{FeesBreakdown-D__BZ8Ob.js → FeesBreakdown-B1IsEEJy.js} +1 -1
  5. package/dist/browser/{OnRampWidget-Dc-1o5O-.js → OnRampWidget-UN81XLhi.js} +3 -3
  6. package/dist/browser/{SaleWidget-Dg431ujg.js → SaleWidget-B2O2s7A3.js} +10 -10
  7. package/dist/browser/{SpendingCapHero-CuqaDLDZ.js → SpendingCapHero-Bhf2cPGn.js} +1 -1
  8. package/dist/browser/{SwapWidget-BwEhCOrV.js → SwapWidget-Vk5hc51P.js} +15 -15
  9. package/dist/browser/{TokenImage-C0Tdpr1x.js → TokenImage-BPB-nljj.js} +1 -1
  10. package/dist/browser/{TopUpView-CmomVZKf.js → TopUpView-C4l8QKWg.js} +1 -1
  11. package/dist/browser/{WalletApproveHero-DbwKxQoK.js → WalletApproveHero-BPc46r1b.js} +7 -7
  12. package/dist/browser/{WalletWidget-CbYlmBoD.js → WalletWidget-BZH5TsFw.js} +3 -3
  13. package/dist/browser/{auto-track-CW786a-6.js → auto-track-DMycgUFp.js} +1 -1
  14. package/dist/browser/{index-4Mt0QsgH.js → index-BcVfHcD-.js} +1 -1
  15. package/dist/browser/{index-e-IfGJ6a.js → index-BkCyxESR.js} +1 -1
  16. package/dist/browser/{index-BiXL-IXS.js → index-CKeYlxiz.js} +42 -40
  17. package/dist/browser/{index-D5LoG06y.js → index-CZMC4iHl.js} +1 -1
  18. package/dist/browser/{index-DcGT4xg-.js → index-Cd27FvUW.js} +1 -1
  19. package/dist/browser/{index-DWOPOCgF.js → index-CsMW-SZE.js} +1 -1
  20. package/dist/browser/{index-B7uWWX7Q.js → index-DHQRQ_mw.js} +1 -1
  21. package/dist/browser/{index-pznR1IOV.js → index-DJxy24SN.js} +2 -2
  22. package/dist/browser/index.js +1 -1
  23. package/dist/browser/{index.umd-D-GcL5BZ.js → index.umd-BHueIPKI.js} +1 -1
  24. package/dist/browser/{useInterval-Dpkv8i3Z.js → useInterval-BjUysGEJ.js} +1 -1
  25. package/dist/types/components/CoinSelector/CoinSelector.d.ts +2 -1
  26. package/dist/types/components/FormComponents/SelectForm/SelectForm.d.ts +4 -3
  27. package/dist/types/components/FormComponents/SelectInput/SelectInput.d.ts +4 -3
  28. package/dist/types/components/Transactions/Transactions.d.ts +3 -1
  29. package/dist/types/components/WalletDrawer/ConnectWalletDrawer.d.ts +2 -1
  30. package/dist/types/components/WalletDrawer/DeliverToWalletDrawer.d.ts +2 -1
  31. package/dist/types/components/WalletDrawer/PayWithWalletDrawer.d.ts +2 -1
  32. package/dist/types/components/WalletDrawer/WalletDrawer.d.ts +2 -1
  33. package/dist/types/lib/withDefaultWidgetConfig.d.ts +11 -2
  34. package/dist/types/widgets/bridge/components/BridgeForm.d.ts +3 -2
  35. package/dist/types/widgets/bridge/components/WalletAndNetworkSelector.d.ts +4 -1
  36. package/dist/types/widgets/bridge/views/Bridge.d.ts +3 -2
  37. package/dist/types/widgets/bridge/views/WalletNetworkSelectionView.d.ts +3 -1
  38. package/dist/types/widgets/connect/components/WalletList.d.ts +2 -1
  39. package/dist/types/widgets/connect/views/ConnectWallet.d.ts +3 -2
  40. package/dist/types/widgets/purchase/components/PurchaseConnectWalletDrawer.d.ts +2 -1
  41. package/dist/types/widgets/purchase/components/PurchaseDeliverToWalletDrawer.d.ts +2 -1
  42. package/dist/types/widgets/purchase/components/PurchasePayWithWalletDrawer.d.ts +2 -1
  43. package/dist/types/widgets/purchase/views/Purchase.d.ts +3 -2
  44. package/dist/types/widgets/swap/components/SwapForm.d.ts +3 -2
  45. package/dist/types/widgets/swap/views/SwapCoins.d.ts +3 -2
  46. package/package.json +7 -7
  47. package/src/components/CoinSelector/CoinSelector.tsx +10 -3
  48. package/src/components/FormComponents/SelectForm/SelectForm.tsx +6 -3
  49. package/src/components/FormComponents/SelectInput/SelectInput.tsx +5 -3
  50. package/src/components/Transactions/Transactions.tsx +4 -0
  51. package/src/components/WalletDrawer/ConnectWalletDrawer.tsx +3 -0
  52. package/src/components/WalletDrawer/DeliverToWalletDrawer.tsx +3 -0
  53. package/src/components/WalletDrawer/PayWithWalletDrawer.tsx +3 -0
  54. package/src/components/WalletDrawer/WalletDrawer.tsx +4 -0
  55. package/src/context/view-context/test-components/ViewContextTestComponent.tsx +7 -0
  56. package/src/lib/withDefaultWidgetConfig.test.ts +20 -10
  57. package/src/lib/withDefaultWidgetConfig.ts +12 -2
  58. package/src/widgets/BaseWidgetRoot.ts +1 -0
  59. package/src/widgets/add-tokens/views/AddTokens.tsx +2 -0
  60. package/src/widgets/bridge/BridgeWidget.tsx +8 -2
  61. package/src/widgets/bridge/components/BridgeForm.tsx +5 -2
  62. package/src/widgets/bridge/components/WalletAndNetworkSelector.tsx +4 -2
  63. package/src/widgets/bridge/views/Bridge.tsx +4 -1
  64. package/src/widgets/bridge/views/WalletNetworkSelectionView.tsx +4 -2
  65. package/src/widgets/connect/ConnectWidget.tsx +1 -0
  66. package/src/widgets/connect/components/WalletList.tsx +4 -0
  67. package/src/widgets/connect/views/ConnectWallet.tsx +4 -1
  68. package/src/widgets/purchase/PurchaseWidget.tsx +1 -0
  69. package/src/widgets/purchase/components/PurchaseConnectWalletDrawer.tsx +3 -0
  70. package/src/widgets/purchase/components/PurchaseDeliverToWalletDrawer.tsx +3 -0
  71. package/src/widgets/purchase/components/PurchasePayWithWalletDrawer.tsx +3 -0
  72. package/src/widgets/purchase/views/Purchase.tsx +5 -0
  73. package/src/widgets/swap/SwapWidget.tsx +2 -0
  74. package/src/widgets/swap/components/SwapForm.tsx +5 -1
  75. package/src/widgets/swap/views/SwapCoins.tsx +4 -1
  76. package/src/widgets/transfer/TransferForm.tsx +2 -0
@@ -1,4 +1,4 @@
1
- import { dX as se$1, dY as T$2, dZ as oe$1, d_ as R$1, d$ as a$2, e0 as te$1, e1 as p$1, e2 as ne$1, e3 as y$1 } from './index-BiXL-IXS.js';
1
+ import { dX as se$1, dY as T$2, dZ as oe$1, d_ as R$1, d$ as a$2, e0 as te$1, e1 as p$1, e2 as ne$1, e3 as y$1 } from './index-CKeYlxiz.js';
2
2
 
3
3
  /**
4
4
  * @license
@@ -1,4 +1,4 @@
1
- import { e5 as __awaiter, e6 as __generator, eg as isServer, e8 as getNextIntegrationsURL, e7 as loadScript } from './index-BiXL-IXS.js';
1
+ import { e5 as __awaiter, e6 as __generator, eg as isServer, e8 as getNextIntegrationsURL, e7 as loadScript } from './index-CKeYlxiz.js';
2
2
 
3
3
  function remoteMiddlewares(ctx, settings, obfuscate) {
4
4
  var _a;
@@ -1,4 +1,4 @@
1
- import { e5 as __awaiter, e6 as __generator, e7 as loadScript, e8 as getNextIntegrationsURL, e9 as unloadScript, ea as __spreadArray, eb as isOffline, ec as __assign, ed as ContextCancelation, ee as applyDestinationMiddleware, ef as dist, eg as isServer, eh as mergedOptions, ei as isPlainObject, ej as pWhile, ek as PriorityQueue, el as PersistedPriorityQueue, em as attempt, en as isOnline, eo as Context } from './index-BiXL-IXS.js';
1
+ import { e5 as __awaiter, e6 as __generator, e7 as loadScript, e8 as getNextIntegrationsURL, e9 as unloadScript, ea as __spreadArray, eb as isOffline, ec as __assign, ed as ContextCancelation, ee as applyDestinationMiddleware, ef as dist, eg as isServer, eh as mergedOptions, ei as isPlainObject, ej as pWhile, ek as PriorityQueue, el as PersistedPriorityQueue, em as attempt, en as isOnline, eo as Context } from './index-CKeYlxiz.js';
2
2
  import { i as isPlanEventEnabled } from './is-plan-event-enabled-mXX0dwl-.js';
3
3
 
4
4
  function normalizeName(name) {
@@ -1,4 +1,4 @@
1
- import { eq as gracefulDecodeURIComponent, ei as isPlainObject } from './index-BiXL-IXS.js';
1
+ import { eq as gracefulDecodeURIComponent, ei as isPlainObject } from './index-CKeYlxiz.js';
2
2
 
3
3
  /**
4
4
  * Returns an object containing only the properties prefixed by the input
@@ -1,4 +1,4 @@
1
- import { e5 as __awaiter, e6 as __generator } from './index-BiXL-IXS.js';
1
+ import { e5 as __awaiter, e6 as __generator } from './index-CKeYlxiz.js';
2
2
 
3
3
  function loadLegacyVideoPlugins(analytics) {
4
4
  return __awaiter(this, void 0, void 0, function () {
@@ -7,7 +7,7 @@ function loadLegacyVideoPlugins(analytics) {
7
7
  switch (_a.label) {
8
8
  case 0: return [4 /*yield*/, import(
9
9
  // @ts-expect-error
10
- './index.umd-D-GcL5BZ.js').then(function (n) { return n.i; })
10
+ './index.umd-BHueIPKI.js').then(function (n) { return n.i; })
11
11
  // This is super gross, but we need to support the `window.analytics.plugins` namespace
12
12
  // that is linked in the segment docs in order to be backwards compatible with ajs-classic
13
13
  // @ts-expect-error
@@ -1 +1 @@
1
- export { er as WidgetsFactory } from './index-BiXL-IXS.js';
1
+ export { er as WidgetsFactory } from './index-CKeYlxiz.js';
@@ -1,4 +1,4 @@
1
- import { ay as getDefaultExportFromCjs } from './index-BiXL-IXS.js';
1
+ import { ay as getDefaultExportFromCjs } from './index-CKeYlxiz.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -1,4 +1,4 @@
1
- import { r as reactExports, dW as useBrowserLayoutEffect } from './index-BiXL-IXS.js';
1
+ import { r as reactExports, dW as useBrowserLayoutEffect } from './index-CKeYlxiz.js';
2
2
 
3
3
  // Inspired by https://usehooks-ts.com/react-hook/use-interval
4
4
  function useInterval(callback, delay) {
@@ -7,6 +7,7 @@ type CoinSelectorProps = {
7
7
  optionsLoading?: boolean;
8
8
  children?: any;
9
9
  visible?: boolean;
10
+ drawerBackground: string | undefined;
10
11
  };
11
- export declare function CoinSelector({ heading, options, defaultTokenImage, optionsLoading, children, onCloseDrawer, visible, }: CoinSelectorProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
+ export declare function CoinSelector({ heading, options, defaultTokenImage, optionsLoading, children, onCloseDrawer, visible, drawerBackground, }: CoinSelectorProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -1,6 +1,6 @@
1
1
  import { OptionKey } from '@biom3/react';
2
2
  import { Environment } from '@imtbl/config';
3
- import { WidgetTheme } from '@imtbl/checkout-sdk';
3
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
4
4
  import { CoinSelectorOptionProps } from '../../CoinSelector/CoinSelectorOption';
5
5
  import { UserJourney } from '../../../context/analytics-provider/SegmentAnalyticsProvider';
6
6
  interface SelectFormProps {
@@ -19,7 +19,8 @@ interface SelectFormProps {
19
19
  screen: string;
20
20
  control: string;
21
21
  environment?: Environment;
22
- theme?: WidgetTheme;
22
+ theme: WidgetTheme;
23
+ themeOverrides: ThemeOverrides;
23
24
  }
24
- export declare function SelectForm({ testId, options, optionsLoading, subtext, onSelectChange, textAlign, errorMessage, disabled, selectedOption, coinSelectorHeading, defaultTokenImage, userJourney, screen, control, environment, theme, }: SelectFormProps): import("@emotion/react/jsx-runtime").JSX.Element;
25
+ export declare function SelectForm({ testId, options, optionsLoading, subtext, onSelectChange, textAlign, errorMessage, disabled, selectedOption, coinSelectorHeading, defaultTokenImage, userJourney, screen, control, environment, theme, themeOverrides, }: SelectFormProps): import("@emotion/react/jsx-runtime").JSX.Element;
25
26
  export {};
@@ -1,5 +1,5 @@
1
1
  import { OptionKey } from '@biom3/react';
2
- import { WidgetTheme } from '@imtbl/checkout-sdk';
2
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
3
3
  import { Environment } from '@imtbl/config';
4
4
  import { InputMode, TextInputType } from '../TextInputForm/TextInputForm';
5
5
  import { CoinSelectorOptionProps } from '../../CoinSelector/CoinSelectorOption';
@@ -32,7 +32,8 @@ interface SelectInputProps {
32
32
  screen: string;
33
33
  control: string;
34
34
  environment?: Environment;
35
- theme?: WidgetTheme;
35
+ theme: WidgetTheme;
36
+ themeOverrides: ThemeOverrides;
36
37
  }
37
- export declare function SelectInput({ testId, options, textInputValue, textInputPlaceholder, textInputValidator, textInputType, onTextInputChange, onTextInputBlur, onTextInputFocus, textInputTextAlign, textInputSubtext, textInputErrorMessage, testInputMode, selectTextAlign, selectSubtext, selectErrorMessage, textInputMaxButtonClick, onSelectChange, textInputDisabled, selectInputDisabled, selectedOption, coinSelectorHeading, defaultTokenImage, userJourney, screen, control, environment, theme, }: SelectInputProps): import("@emotion/react/jsx-runtime").JSX.Element;
38
+ export declare function SelectInput({ testId, options, textInputValue, textInputPlaceholder, textInputValidator, textInputType, onTextInputChange, onTextInputBlur, onTextInputFocus, textInputTextAlign, textInputSubtext, textInputErrorMessage, testInputMode, selectTextAlign, selectSubtext, selectErrorMessage, textInputMaxButtonClick, onSelectChange, textInputDisabled, selectInputDisabled, selectedOption, coinSelectorHeading, defaultTokenImage, userJourney, screen, control, environment, theme, themeOverrides, }: SelectInputProps): import("@emotion/react/jsx-runtime").JSX.Element;
38
39
  export {};
@@ -1,6 +1,8 @@
1
+ import { ThemeOverrides } from '@imtbl/checkout-sdk';
1
2
  type TransactionsProps = {
2
3
  defaultTokenImage: string;
3
4
  onBackButtonClick: () => void;
5
+ themeOverrides: ThemeOverrides;
4
6
  };
5
- export declare function Transactions({ defaultTokenImage, onBackButtonClick, }: TransactionsProps): import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export declare function Transactions({ defaultTokenImage, onBackButtonClick, themeOverrides, }: TransactionsProps): import("@emotion/react/jsx-runtime").JSX.Element;
6
8
  export {};
@@ -18,6 +18,7 @@ type ConnectWalletDrawerProps = {
18
18
  }[];
19
19
  getShouldRequestWalletPermissions?: (providerInfo: EIP6963ProviderInfo) => boolean | undefined;
20
20
  shouldIdentifyUser?: boolean;
21
+ drawerBackground: string | undefined;
21
22
  };
22
- export declare function ConnectWalletDrawer({ heading, visible, onClose, onConnect, onError, providerType, walletOptions, bottomSlot, menuItemSize, disabledOptions, getShouldRequestWalletPermissions, shouldIdentifyUser, }: ConnectWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
23
+ export declare function ConnectWalletDrawer({ heading, visible, onClose, onConnect, onError, providerType, walletOptions, bottomSlot, menuItemSize, disabledOptions, getShouldRequestWalletPermissions, shouldIdentifyUser, drawerBackground, }: ConnectWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
23
24
  export {};
@@ -4,6 +4,7 @@ type DeliverToWalletDrawerProps = {
4
4
  onClose: (toAddress?: string) => void;
5
5
  walletOptions: EIP6963ProviderDetail[];
6
6
  onConnect?: (providerType: 'from' | 'to', provider: WrappedBrowserProvider, providerInfo: EIP6963ProviderInfo) => void;
7
+ drawerBackground: string | undefined;
7
8
  };
8
- export declare function DeliverToWalletDrawer({ visible, onClose, onConnect, walletOptions, }: DeliverToWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export declare function DeliverToWalletDrawer({ visible, onClose, onConnect, walletOptions, drawerBackground, }: DeliverToWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
9
10
  export {};
@@ -7,6 +7,7 @@ type PayWithWalletDrawerProps = {
7
7
  walletOptions: EIP6963ProviderDetail[];
8
8
  insufficientBalance?: boolean;
9
9
  showOnRampOption?: boolean;
10
+ drawerBackground: string | undefined;
10
11
  };
11
- export declare function PayWithWalletDrawer({ visible, onClose, onConnect, onPayWithCard, walletOptions, insufficientBalance, showOnRampOption, }: PayWithWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
+ export declare function PayWithWalletDrawer({ visible, onClose, onConnect, onPayWithCard, walletOptions, insufficientBalance, showOnRampOption, drawerBackground, }: PayWithWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -20,6 +20,7 @@ interface WalletDrawerProps {
20
20
  label: string;
21
21
  rdns: string;
22
22
  }[];
23
+ drawerBackground: string | undefined;
23
24
  }
24
- export declare function WalletDrawer({ testId, drawerText, walletOptions, showWalletConnect, showWalletSelectorTarget, showDrawer, setShowDrawer, onWalletChange, menuItemSize, bottomSlot, disabledOptions, }: WalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
25
+ export declare function WalletDrawer({ testId, drawerText, walletOptions, showWalletConnect, showWalletSelectorTarget, showDrawer, setShowDrawer, onWalletChange, menuItemSize, bottomSlot, disabledOptions, drawerBackground, }: WalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
25
26
  export {};
@@ -1,11 +1,20 @@
1
1
  import { Environment } from '@imtbl/config';
2
- import { WidgetTheme } from '@imtbl/checkout-sdk';
2
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
3
3
  export type StrongCheckoutWidgetsConfig = {
4
4
  theme: WidgetTheme;
5
+ themeOverrides: ThemeOverrides;
5
6
  environment: Environment;
6
7
  isOnRampEnabled: boolean;
7
8
  isSwapEnabled: boolean;
8
9
  isBridgeEnabled: boolean;
9
10
  isAddTokensEnabled: boolean;
10
11
  };
11
- export declare const withDefaultWidgetConfigs: (configs?: any) => StrongCheckoutWidgetsConfig;
12
+ export declare const withDefaultWidgetConfigs: (configs: {
13
+ theme: WidgetTheme | undefined;
14
+ themeOverrides: ThemeOverrides | undefined;
15
+ environment: Environment;
16
+ isOnRampEnabled: boolean;
17
+ isSwapEnabled: boolean;
18
+ isBridgeEnabled: boolean;
19
+ isAddTokensEnabled?: boolean;
20
+ }) => StrongCheckoutWidgetsConfig;
@@ -1,4 +1,4 @@
1
- import { WidgetTheme } from '@imtbl/checkout-sdk';
1
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
2
2
  import { Environment } from '@imtbl/config';
3
3
  interface BridgeFormProps {
4
4
  testId?: string;
@@ -7,7 +7,8 @@ interface BridgeFormProps {
7
7
  isTokenBalancesLoading?: boolean;
8
8
  defaultTokenImage: string;
9
9
  environment?: Environment;
10
- theme?: WidgetTheme;
10
+ theme: WidgetTheme;
11
+ themeOverrides: ThemeOverrides;
11
12
  }
12
13
  export declare function BridgeForm(props: BridgeFormProps): import("@emotion/react/jsx-runtime").JSX.Element;
13
14
  export {};
@@ -1 +1,4 @@
1
- export declare function WalletAndNetworkSelector(): import("@emotion/react/jsx-runtime").JSX.Element;
1
+ import { ThemeOverrides } from '@imtbl/checkout-sdk';
2
+ export declare function WalletAndNetworkSelector({ themeOverrides }: {
3
+ themeOverrides: ThemeOverrides;
4
+ }): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,8 +1,9 @@
1
- import { WidgetTheme } from '@imtbl/checkout-sdk';
1
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
2
2
  export interface BridgeProps {
3
3
  amount?: string;
4
4
  tokenAddress?: string;
5
5
  defaultTokenImage: string;
6
6
  theme: WidgetTheme;
7
+ themeOverrides: ThemeOverrides;
7
8
  }
8
- export declare function Bridge({ amount, tokenAddress, defaultTokenImage, theme, }: BridgeProps): import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export declare function Bridge({ amount, tokenAddress, defaultTokenImage, theme, themeOverrides, }: BridgeProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,5 +1,7 @@
1
+ import { ThemeOverrides } from '@imtbl/checkout-sdk';
1
2
  type WalletNetworkSelectionViewProps = {
2
3
  showBackButton?: boolean;
4
+ themeOverrides: ThemeOverrides;
3
5
  };
4
- export declare function WalletNetworkSelectionView({ showBackButton, }: WalletNetworkSelectionViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
6
+ export declare function WalletNetworkSelectionView({ showBackButton, themeOverrides, }: WalletNetworkSelectionViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
5
7
  export {};
@@ -1,4 +1,4 @@
1
- import { ChainId } from '@imtbl/checkout-sdk';
1
+ import { ChainId, ThemeOverrides } from '@imtbl/checkout-sdk';
2
2
  export interface WalletListProps {
3
3
  targetWalletRdns?: string;
4
4
  targetChainId: ChainId;
@@ -6,5 +6,6 @@ export interface WalletListProps {
6
6
  allowlistWalletRdns?: string[];
7
7
  blocklistWalletRdns: string[];
8
8
  isCheckNetworkEnabled: boolean;
9
+ themeOverrides: ThemeOverrides;
9
10
  }
10
11
  export declare function WalletList(props: WalletListProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { ChainId } from '@imtbl/checkout-sdk';
1
+ import { ChainId, ThemeOverrides } from '@imtbl/checkout-sdk';
2
2
  export interface ConnectWalletProps {
3
3
  targetWalletRdns?: string;
4
4
  targetChainId: ChainId;
@@ -8,5 +8,6 @@ export interface ConnectWalletProps {
8
8
  checkNetwork: boolean;
9
9
  showBackButton?: boolean;
10
10
  onBackButtonClick?: () => void;
11
+ themeOverrides: ThemeOverrides;
11
12
  }
12
- export declare function ConnectWallet({ targetWalletRdns, targetChainId, allowedChains, allowlistWalletRdns, blocklistWalletRdns, checkNetwork, showBackButton, onBackButtonClick, }: ConnectWalletProps): import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export declare function ConnectWallet({ targetWalletRdns, targetChainId, allowedChains, allowlistWalletRdns, blocklistWalletRdns, checkNetwork, showBackButton, onBackButtonClick, themeOverrides, }: ConnectWalletProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -17,6 +17,7 @@ type PurchaseConnectWalletDrawerProps = {
17
17
  rdns: string;
18
18
  }[];
19
19
  shouldIdentifyUser?: boolean;
20
+ drawerBackground: string | undefined;
20
21
  };
21
- export declare function PurchaseConnectWalletDrawer({ heading, visible, onClose, onConnect, onError, providerType, walletOptions, bottomSlot, menuItemSize, disabledOptions, shouldIdentifyUser, }: PurchaseConnectWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
+ export declare function PurchaseConnectWalletDrawer({ heading, visible, onClose, onConnect, onError, providerType, walletOptions, bottomSlot, menuItemSize, disabledOptions, shouldIdentifyUser, drawerBackground, }: PurchaseConnectWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
23
  export {};
@@ -5,6 +5,7 @@ type PurchaseDeliverToWalletDrawerProps = {
5
5
  onClose: (toAddress?: string) => void;
6
6
  walletOptions: EIP6963ProviderDetail[];
7
7
  onConnect?: (providerType: 'from' | 'to', provider: BrowserProvider, providerInfo: EIP6963ProviderInfo) => void;
8
+ drawerBackground: string | undefined;
8
9
  };
9
- export declare function PurchaseDeliverToWalletDrawer({ visible, onClose, onConnect, walletOptions, }: PurchaseDeliverToWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export declare function PurchaseDeliverToWalletDrawer({ visible, onClose, onConnect, walletOptions, drawerBackground, }: PurchaseDeliverToWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
11
  export {};
@@ -7,6 +7,7 @@ type PurchasePayWithWalletDrawerProps = {
7
7
  walletOptions: EIP6963ProviderDetail[];
8
8
  insufficientBalance?: boolean;
9
9
  showOnRampOption?: boolean;
10
+ drawerBackground: string | undefined;
10
11
  };
11
- export declare function PurchasePayWithWalletDrawer({ visible, onClose, onConnect, onPayWithCard, walletOptions, insufficientBalance, showOnRampOption, }: PurchasePayWithWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
+ export declare function PurchasePayWithWalletDrawer({ visible, onClose, onConnect, onPayWithCard, walletOptions, insufficientBalance, showOnRampOption, drawerBackground, }: PurchasePayWithWalletDrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -1,10 +1,11 @@
1
- import { Checkout } from '@imtbl/checkout-sdk';
1
+ import { Checkout, ThemeOverrides } from '@imtbl/checkout-sdk';
2
2
  interface PurchaseProps {
3
3
  checkout: Checkout;
4
4
  environmentId: string;
5
5
  showBackButton?: boolean;
6
6
  onCloseButtonClick?: () => void;
7
7
  onBackButtonClick?: () => void;
8
+ themeOverrides: ThemeOverrides;
8
9
  }
9
- export declare function Purchase({ checkout, environmentId, onCloseButtonClick, showBackButton, onBackButtonClick, }: PurchaseProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export declare function Purchase({ checkout, environmentId, onCloseButtonClick, showBackButton, onBackButtonClick, themeOverrides, }: PurchaseProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
11
  export {};
@@ -1,9 +1,10 @@
1
- import { WidgetTheme } from '@imtbl/checkout-sdk';
1
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
2
2
  import { SwapFormData } from './swapFormTypes';
3
3
  export interface SwapFromProps {
4
4
  data?: SwapFormData;
5
5
  theme: WidgetTheme;
6
+ themeOverrides: ThemeOverrides;
6
7
  cancelAutoProceed: () => void;
7
8
  subTitle: string;
8
9
  }
9
- export declare function SwapForm({ data, theme, cancelAutoProceed, subTitle, }: SwapFromProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export declare function SwapForm({ data, theme, themeOverrides, cancelAutoProceed, subTitle, }: SwapFromProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
- import { WidgetTheme } from '@imtbl/checkout-sdk';
1
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
2
2
  export interface SwapCoinsProps {
3
3
  theme: WidgetTheme;
4
+ themeOverrides: ThemeOverrides;
4
5
  cancelAutoProceed: () => void;
5
6
  fromAmount?: string;
6
7
  toAmount?: string;
@@ -11,4 +12,4 @@ export interface SwapCoinsProps {
11
12
  title: string;
12
13
  subTitle: string;
13
14
  }
14
- export declare function SwapCoins({ theme, cancelAutoProceed, fromAmount, toAmount, fromTokenAddress, toTokenAddress, showBackButton, showHeader, title, subTitle, }: SwapCoinsProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ export declare function SwapCoins({ theme, themeOverrides, cancelAutoProceed, fromAmount, toAmount, fromTokenAddress, toTokenAddress, showBackButton, showHeader, title, subTitle, }: SwapCoinsProps): import("@emotion/react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imtbl/checkout-widgets",
3
- "version": "2.7.6-alpha.3",
3
+ "version": "2.8.0",
4
4
  "browserslist": {
5
5
  "production": [
6
6
  ">0.2%",
@@ -18,12 +18,12 @@
18
18
  "@biom3/design-tokens": "^0.4.5",
19
19
  "@biom3/react": "^0.29.4",
20
20
  "@emotion/react": "^11.11.3",
21
- "@imtbl/bridge-sdk": "2.7.6-alpha.3",
22
- "@imtbl/checkout-sdk": "2.7.6-alpha.3",
23
- "@imtbl/config": "2.7.6-alpha.3",
24
- "@imtbl/cryptofiat": "2.7.6-alpha.3",
25
- "@imtbl/dex-sdk": "2.7.6-alpha.3",
26
- "@imtbl/passport": "2.7.6-alpha.3",
21
+ "@imtbl/bridge-sdk": "2.8.0",
22
+ "@imtbl/checkout-sdk": "2.8.0",
23
+ "@imtbl/config": "2.8.0",
24
+ "@imtbl/cryptofiat": "2.8.0",
25
+ "@imtbl/dex-sdk": "2.8.0",
26
+ "@imtbl/passport": "2.8.0",
27
27
  "@imtbl/react-analytics": "0.3.4-alpha",
28
28
  "@rive-app/react-canvas-lite": "^4.9.0",
29
29
  "@walletconnect/ethereum-provider": "^2.11.1",
@@ -18,6 +18,7 @@ type CoinSelectorProps = {
18
18
  optionsLoading?: boolean;
19
19
  children?: any;
20
20
  visible?: boolean;
21
+ drawerBackground: string | undefined;
21
22
  };
22
23
 
23
24
  const filterOptions = (filterBy: string, options: CoinSelectorOptionProps[]) => {
@@ -28,7 +29,7 @@ const filterOptions = (filterBy: string, options: CoinSelectorOptionProps[]) =>
28
29
  };
29
30
 
30
31
  export function CoinSelector({
31
- heading, options, defaultTokenImage, optionsLoading, children, onCloseDrawer, visible,
32
+ heading, options, defaultTokenImage, optionsLoading, children, onCloseDrawer, visible, drawerBackground,
32
33
  }: CoinSelectorProps) {
33
34
  const { t } = useTranslation();
34
35
 
@@ -43,7 +44,7 @@ export function CoinSelector({
43
44
  return options;
44
45
  }
45
46
  return filterOptions(searchValue, options);
46
- }, [options, searchValue, filterOptions]);
47
+ }, [options, searchValue]);
47
48
 
48
49
  const handleCloseDrawer = () => {
49
50
  setSearchValue('');
@@ -51,7 +52,13 @@ export function CoinSelector({
51
52
  };
52
53
 
53
54
  return (
54
- <Drawer headerBarTitle={heading} size="full" onCloseDrawer={handleCloseDrawer} visible={visible}>
55
+ <Drawer
56
+ headerBarTitle={heading}
57
+ size="full"
58
+ onCloseDrawer={handleCloseDrawer}
59
+ visible={visible}
60
+ bgOverlaySx={drawerBackground ? { background: drawerBackground } : undefined}
61
+ >
55
62
  <Drawer.Target>
56
63
  {children}
57
64
  </Drawer.Target>
@@ -3,7 +3,7 @@ import {
3
3
  } from '@biom3/react';
4
4
  import { useCallback, useMemo, useState } from 'react';
5
5
  import { Environment } from '@imtbl/config';
6
- import { WidgetTheme } from '@imtbl/checkout-sdk';
6
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
7
7
  import { TokenImage } from '../../TokenImage/TokenImage';
8
8
  import { FormControlWrapper } from '../FormControlWrapper/FormControlWrapper';
9
9
  import { CoinSelector } from '../../CoinSelector/CoinSelector';
@@ -26,7 +26,8 @@ interface SelectFormProps {
26
26
  screen: string;
27
27
  control: string;
28
28
  environment?: Environment;
29
- theme?: WidgetTheme,
29
+ theme: WidgetTheme,
30
+ themeOverrides: ThemeOverrides,
30
31
  }
31
32
 
32
33
  export function SelectForm({
@@ -45,7 +46,8 @@ export function SelectForm({
45
46
  screen,
46
47
  control,
47
48
  environment = Environment.PRODUCTION,
48
- theme = WidgetTheme.DARK,
49
+ theme,
50
+ themeOverrides,
49
51
  }: SelectFormProps) {
50
52
  const { track } = useAnalytics();
51
53
  const [coinSelectorOpen, setCoinSelectorOpen] = useState<boolean>(false);
@@ -87,6 +89,7 @@ export function SelectForm({
87
89
  optionsLoading={optionsLoading ?? false}
88
90
  visible={coinSelectorOpen}
89
91
  onCloseDrawer={() => setCoinSelectorOpen(false)}
92
+ drawerBackground={themeOverrides.drawerBackground}
90
93
  />
91
94
  <FormControlWrapper
92
95
  testId={`${testId}-select-control`}
@@ -1,5 +1,5 @@
1
1
  import { Box, OptionKey } from '@biom3/react';
2
- import { WidgetTheme } from '@imtbl/checkout-sdk';
2
+ import { ThemeOverrides, WidgetTheme } from '@imtbl/checkout-sdk';
3
3
  import { Environment } from '@imtbl/config';
4
4
  import {
5
5
  inputStyle,
@@ -12,7 +12,6 @@ import { CoinSelectorOptionProps } from '../../CoinSelector/CoinSelectorOption';
12
12
  import { UserJourney } from '../../../context/analytics-provider/SegmentAnalyticsProvider';
13
13
 
14
14
  interface SelectInputProps {
15
-
16
15
  testId: string;
17
16
  options: CoinSelectorOptionProps[];
18
17
  selectTextAlign?: 'left' | 'right';
@@ -40,7 +39,8 @@ interface SelectInputProps {
40
39
  screen: string;
41
40
  control: string;
42
41
  environment?: Environment;
43
- theme?: WidgetTheme;
42
+ theme: WidgetTheme;
43
+ themeOverrides: ThemeOverrides;
44
44
  }
45
45
 
46
46
  export function SelectInput({
@@ -72,6 +72,7 @@ export function SelectInput({
72
72
  control,
73
73
  environment,
74
74
  theme,
75
+ themeOverrides,
75
76
  }: SelectInputProps) {
76
77
  return (
77
78
  <Box sx={selectInputBoxStyle}>
@@ -92,6 +93,7 @@ export function SelectInput({
92
93
  screen={screen}
93
94
  environment={environment}
94
95
  theme={theme}
96
+ themeOverrides={themeOverrides}
95
97
  />
96
98
  </Box>
97
99
  <Box sx={inputStyle}>
@@ -11,6 +11,7 @@ import {
11
11
  WalletProviderRdns,
12
12
  ChainSlug,
13
13
  Checkout,
14
+ ThemeOverrides,
14
15
  } from '@imtbl/checkout-sdk';
15
16
  import { useTranslation } from 'react-i18next';
16
17
  import { JsonRpcProvider } from 'ethers';
@@ -60,6 +61,7 @@ import { WalletChangeEvent } from '../WalletDrawer/WalletDrawerEvents';
60
61
  type TransactionsProps = {
61
62
  defaultTokenImage: string;
62
63
  onBackButtonClick: () => void;
64
+ themeOverrides: ThemeOverrides;
63
65
  };
64
66
 
65
67
  const getTransactionsDetails = async (tokenBridge: TokenBridge, checkout: Checkout, recipient: string) => {
@@ -99,6 +101,7 @@ const getTransactionsDetails = async (tokenBridge: TokenBridge, checkout: Checko
99
101
  export function Transactions({
100
102
  defaultTokenImage,
101
103
  onBackButtonClick,
104
+ themeOverrides,
102
105
  }: TransactionsProps) {
103
106
  const {
104
107
  eventTargetState: { eventTarget },
@@ -448,6 +451,7 @@ export function Transactions({
448
451
  setShowWalletDrawer(show);
449
452
  }}
450
453
  onWalletChange={handleWalletChange}
454
+ drawerBackground={themeOverrides.drawerBackground}
451
455
  />
452
456
  </Box>
453
457
  </SimpleLayout>
@@ -46,6 +46,7 @@ type ConnectWalletDrawerProps = {
46
46
  }[];
47
47
  getShouldRequestWalletPermissions?: (providerInfo: EIP6963ProviderInfo) => boolean | undefined;
48
48
  shouldIdentifyUser?: boolean;
49
+ drawerBackground: string | undefined;
49
50
  };
50
51
 
51
52
  export function ConnectWalletDrawer({
@@ -61,6 +62,7 @@ export function ConnectWalletDrawer({
61
62
  disabledOptions = [],
62
63
  getShouldRequestWalletPermissions,
63
64
  shouldIdentifyUser = true,
65
+ drawerBackground,
64
66
  }: ConnectWalletDrawerProps) {
65
67
  const {
66
68
  providersState: { checkout, fromProvider, lockedToProvider },
@@ -222,6 +224,7 @@ export function ConnectWalletDrawer({
222
224
  }}
223
225
  onWalletChange={handleOnWalletChangeEvent}
224
226
  bottomSlot={bottomSlot}
227
+ drawerBackground={drawerBackground}
225
228
  />
226
229
  <UnableToConnectDrawer
227
230
  visible={showUnableToConnectDrawer}
@@ -16,6 +16,7 @@ type DeliverToWalletDrawerProps = {
16
16
  provider: WrappedBrowserProvider,
17
17
  providerInfo: EIP6963ProviderInfo
18
18
  ) => void;
19
+ drawerBackground: string | undefined;
19
20
  };
20
21
 
21
22
  export function DeliverToWalletDrawer({
@@ -23,6 +24,7 @@ export function DeliverToWalletDrawer({
23
24
  onClose,
24
25
  onConnect,
25
26
  walletOptions,
27
+ drawerBackground,
26
28
  }: DeliverToWalletDrawerProps) {
27
29
  const {
28
30
  providersState: { fromProviderInfo },
@@ -50,6 +52,7 @@ export function DeliverToWalletDrawer({
50
52
  providerType="to"
51
53
  walletOptions={walletOptions}
52
54
  onConnect={handleOnConnect}
55
+ drawerBackground={drawerBackground}
53
56
  getShouldRequestWalletPermissions={
54
57
  selectedSameFromWalletType
55
58
  }
@@ -13,6 +13,7 @@ type PayWithWalletDrawerProps = {
13
13
  walletOptions: EIP6963ProviderDetail[];
14
14
  insufficientBalance?: boolean;
15
15
  showOnRampOption?: boolean;
16
+ drawerBackground: string | undefined;
16
17
  };
17
18
 
18
19
  export function PayWithWalletDrawer({
@@ -23,6 +24,7 @@ export function PayWithWalletDrawer({
23
24
  walletOptions,
24
25
  insufficientBalance,
25
26
  showOnRampOption = true,
27
+ drawerBackground,
26
28
  }: PayWithWalletDrawerProps) {
27
29
  const { t } = useTranslation();
28
30
  const { providersState: { fromProviderInfo } } = useProvidersContext();
@@ -79,6 +81,7 @@ export function PayWithWalletDrawer({
79
81
  bottomSlot={payWithCardItem}
80
82
  onConnect={handleOnConnect}
81
83
  shouldIdentifyUser={false}
84
+ drawerBackground={drawerBackground}
82
85
  />
83
86
  );
84
87
  }
@@ -35,7 +35,9 @@ interface WalletDrawerProps {
35
35
  label: string;
36
36
  rdns: string;
37
37
  }[];
38
+ drawerBackground: string | undefined;
38
39
  }
40
+
39
41
  export function WalletDrawer({
40
42
  testId,
41
43
  drawerText,
@@ -48,6 +50,7 @@ export function WalletDrawer({
48
50
  menuItemSize,
49
51
  bottomSlot,
50
52
  disabledOptions,
53
+ drawerBackground,
51
54
  }: WalletDrawerProps) {
52
55
  const { t } = useTranslation();
53
56
  const { isWalletConnectEnabled, openWalletConnectModal } = useWalletConnect();
@@ -105,6 +108,7 @@ export function WalletDrawer({
105
108
  setShowDrawer(false);
106
109
  }}
107
110
  visible={showDrawer}
111
+ bgOverlaySx={drawerBackground ? { background: drawerBackground } : undefined}
108
112
  >
109
113
  {showWalletSelectorTarget && (
110
114
  <Drawer.Target>