@lifi/widget 3.29.0-beta.0 → 3.29.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 (89) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +2 -1
  3. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  4. package/dist/esm/components/ChainSelect/ChainSelect.d.ts +1 -1
  5. package/dist/esm/components/ChainSelect/ChainSelect.js +20 -24
  6. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  7. package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +3 -0
  8. package/dist/esm/components/ChainSelect/ChainSelect.style.js +40 -3
  9. package/dist/esm/components/ChainSelect/ChainSelect.style.js.map +1 -1
  10. package/dist/esm/components/Header/WalletHeader.js +3 -1
  11. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  12. package/dist/esm/components/Search/SearchInput.style.js +3 -0
  13. package/dist/esm/components/Search/SearchInput.style.js.map +1 -1
  14. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +7 -0
  15. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -1
  16. package/dist/esm/config/version.d.ts +1 -1
  17. package/dist/esm/config/version.js +1 -1
  18. package/dist/esm/config/version.js.map +1 -1
  19. package/dist/esm/hooks/useInternalWalletProvider.d.ts +1 -0
  20. package/dist/esm/hooks/useInternalWalletProvider.js +6 -0
  21. package/dist/esm/hooks/useInternalWalletProvider.js.map +1 -0
  22. package/dist/esm/i18n/bn.json +2 -4
  23. package/dist/esm/i18n/de.json +2 -4
  24. package/dist/esm/i18n/es.json +2 -4
  25. package/dist/esm/i18n/fr.json +2 -4
  26. package/dist/esm/i18n/hi.json +2 -4
  27. package/dist/esm/i18n/id.json +2 -4
  28. package/dist/esm/i18n/it.json +2 -4
  29. package/dist/esm/i18n/ja.json +2 -4
  30. package/dist/esm/i18n/ko.json +2 -4
  31. package/dist/esm/i18n/pl.json +2 -4
  32. package/dist/esm/i18n/pt.json +2 -4
  33. package/dist/esm/i18n/th.json +2 -4
  34. package/dist/esm/i18n/tr.json +2 -4
  35. package/dist/esm/i18n/uk.json +2 -4
  36. package/dist/esm/i18n/vi.json +2 -4
  37. package/dist/esm/i18n/zh.json +2 -4
  38. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +12 -5
  39. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  40. package/dist/esm/providers/WalletProvider/EVMProvider.js +3 -1
  41. package/dist/esm/providers/WalletProvider/EVMProvider.js.map +1 -1
  42. package/dist/esm/providers/WalletProvider/SVMBaseProvider.d.ts +1 -1
  43. package/dist/esm/providers/WalletProvider/SVMBaseProvider.js +18 -14
  44. package/dist/esm/providers/WalletProvider/SVMBaseProvider.js.map +1 -1
  45. package/dist/esm/providers/WalletProvider/SVMProvider.js +3 -1
  46. package/dist/esm/providers/WalletProvider/SVMProvider.js.map +1 -1
  47. package/dist/esm/providers/WalletProvider/SuiProvider.js +3 -1
  48. package/dist/esm/providers/WalletProvider/SuiProvider.js.map +1 -1
  49. package/dist/esm/providers/WalletProvider/UTXOProvider.js +3 -1
  50. package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +1 -1
  51. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +4 -1
  52. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
  53. package/dist/esm/types/widget.d.ts +7 -1
  54. package/dist/esm/types/widget.js +1 -0
  55. package/dist/esm/types/widget.js.map +1 -1
  56. package/package.json +10 -10
  57. package/package.json.tmp +9 -9
  58. package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +4 -1
  59. package/src/components/ChainSelect/ChainSelect.style.tsx +43 -3
  60. package/src/components/ChainSelect/ChainSelect.tsx +32 -39
  61. package/src/components/Header/WalletHeader.tsx +5 -1
  62. package/src/components/Search/SearchInput.style.tsx +3 -0
  63. package/src/components/SelectTokenButton/SelectTokenButton.style.tsx +7 -0
  64. package/src/config/version.ts +1 -1
  65. package/src/hooks/useInternalWalletProvider.ts +6 -0
  66. package/src/i18n/bn.json +2 -4
  67. package/src/i18n/de.json +2 -4
  68. package/src/i18n/es.json +2 -4
  69. package/src/i18n/fr.json +2 -4
  70. package/src/i18n/hi.json +2 -4
  71. package/src/i18n/id.json +2 -4
  72. package/src/i18n/it.json +2 -4
  73. package/src/i18n/ja.json +2 -4
  74. package/src/i18n/ko.json +2 -4
  75. package/src/i18n/pl.json +2 -4
  76. package/src/i18n/pt.json +2 -4
  77. package/src/i18n/th.json +2 -4
  78. package/src/i18n/tr.json +2 -4
  79. package/src/i18n/uk.json +2 -4
  80. package/src/i18n/vi.json +2 -4
  81. package/src/i18n/zh.json +2 -4
  82. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +25 -10
  83. package/src/providers/WalletProvider/EVMProvider.tsx +5 -3
  84. package/src/providers/WalletProvider/SVMBaseProvider.tsx +19 -16
  85. package/src/providers/WalletProvider/SVMProvider.tsx +5 -3
  86. package/src/providers/WalletProvider/SuiProvider.tsx +5 -3
  87. package/src/providers/WalletProvider/UTXOProvider.tsx +5 -3
  88. package/src/providers/WalletProvider/useExternalWalletProvider.ts +4 -1
  89. package/src/types/widget.ts +6 -0
@@ -6,24 +6,27 @@ import {
6
6
  WalletProvider,
7
7
  } from '@solana/wallet-adapter-react'
8
8
  import { clusterApiUrl } from '@solana/web3.js'
9
- import type { FC, PropsWithChildren } from 'react'
10
-
11
- const endpoint = clusterApiUrl(WalletAdapterNetwork.Mainnet)
12
- /**
13
- * Wallets that implement either of these standards will be available automatically.
14
- *
15
- * - Solana Mobile Stack Mobile Wallet Adapter Protocol
16
- * (https://github.com/solana-mobile/mobile-wallet-adapter)
17
- * - Solana Wallet Standard
18
- * (https://github.com/solana-labs/wallet-standard)
19
- *
20
- * If you wish to support a wallet that supports neither of those standards,
21
- * instantiate its legacy wallet adapter here. Common legacy adapters can be found
22
- * in the npm package `@solana/wallet-adapter-wallets`.
23
- */
24
- const wallets: Adapter[] = [new CoinbaseWalletAdapter()]
9
+ import { type FC, type PropsWithChildren, useMemo } from 'react'
25
10
 
26
11
  export const SVMBaseProvider: FC<PropsWithChildren> = ({ children }) => {
12
+ const [endpoint, wallets] = useMemo(() => {
13
+ const endpoint = clusterApiUrl(WalletAdapterNetwork.Mainnet)
14
+ /**
15
+ * Wallets that implement either of these standards will be available automatically.
16
+ *
17
+ * - Solana Mobile Stack Mobile Wallet Adapter Protocol
18
+ * (https://github.com/solana-mobile/mobile-wallet-adapter)
19
+ * - Solana Wallet Standard
20
+ * (https://github.com/solana-labs/wallet-standard)
21
+ *
22
+ * If you wish to support a wallet that supports neither of those standards,
23
+ * instantiate its legacy wallet adapter here. Common legacy adapters can be found
24
+ * in the npm package `@solana/wallet-adapter-wallets`.
25
+ */
26
+ const wallets: Adapter[] = [new CoinbaseWalletAdapter()]
27
+ return [endpoint, wallets]
28
+ }, [])
29
+
27
30
  return (
28
31
  <ConnectionProvider endpoint={endpoint}>
29
32
  <WalletProvider wallets={wallets} autoConnect>
@@ -1,6 +1,7 @@
1
1
  import { ChainType } from '@lifi/sdk'
2
2
  import { ConnectionContext } from '@solana/wallet-adapter-react'
3
3
  import { type FC, type PropsWithChildren, useContext } from 'react'
4
+ import { useInternalWalletProvider } from '../../hooks/useInternalWalletProvider.js'
4
5
  import { isItemAllowed } from '../../utils/item.js'
5
6
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
6
7
  import { SVMBaseProvider } from './SVMBaseProvider.js'
@@ -16,12 +17,13 @@ export function useInSolanaContext(): boolean {
16
17
 
17
18
  export const SVMProvider: FC<PropsWithChildren> = ({ children }) => {
18
19
  const inSolanaContext = useInSolanaContext()
20
+ const useInternalWallet = useInternalWalletProvider(inSolanaContext)
19
21
 
20
- return inSolanaContext ? (
22
+ return useInternalWallet ? (
23
+ <SVMBaseProvider>{children}</SVMBaseProvider>
24
+ ) : (
21
25
  <SVMExternalContext.Provider value={inSolanaContext}>
22
26
  {children}
23
27
  </SVMExternalContext.Provider>
24
- ) : (
25
- <SVMBaseProvider>{children}</SVMBaseProvider>
26
28
  )
27
29
  }
@@ -1,6 +1,7 @@
1
1
  import { ChainType } from '@lifi/sdk'
2
2
  import { SuiClientContext } from '@mysten/dapp-kit'
3
3
  import { type FC, type PropsWithChildren, useContext } from 'react'
4
+ import { useInternalWalletProvider } from '../../hooks/useInternalWalletProvider.js'
4
5
  import { isItemAllowed } from '../../utils/item.js'
5
6
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
6
7
  import { SuiBaseProvider } from './SuiBaseProvider.js'
@@ -15,12 +16,13 @@ export function useInSuiContext(): boolean {
15
16
 
16
17
  export const SuiProvider: FC<PropsWithChildren> = ({ children }) => {
17
18
  const inSuiContext = useInSuiContext()
19
+ const useInternalWallet = useInternalWalletProvider(inSuiContext)
18
20
 
19
- return inSuiContext ? (
21
+ return useInternalWallet ? (
22
+ <SuiBaseProvider>{children}</SuiBaseProvider>
23
+ ) : (
20
24
  <SuiExternalContext.Provider value={inSuiContext}>
21
25
  {children}
22
26
  </SuiExternalContext.Provider>
23
- ) : (
24
- <SuiBaseProvider>{children}</SuiBaseProvider>
25
27
  )
26
28
  }
@@ -1,6 +1,7 @@
1
1
  import { BigmiContext } from '@bigmi/react'
2
2
  import { ChainType } from '@lifi/sdk'
3
3
  import { type FC, type PropsWithChildren, useContext } from 'react'
4
+ import { useInternalWalletProvider } from '../../hooks/useInternalWalletProvider.js'
4
5
  import { isItemAllowed } from '../../utils/item.js'
5
6
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
6
7
  import { UTXOBaseProvider } from './UTXOBaseProvider.js'
@@ -15,12 +16,13 @@ export function useInBigmiContext(): boolean {
15
16
 
16
17
  export const UTXOProvider: FC<PropsWithChildren> = ({ children }) => {
17
18
  const inBigmiContext = useInBigmiContext()
19
+ const useInternalWallet = useInternalWalletProvider(inBigmiContext)
18
20
 
19
- return inBigmiContext ? (
21
+ return useInternalWallet ? (
22
+ <UTXOBaseProvider>{children}</UTXOBaseProvider>
23
+ ) : (
20
24
  <UTXOExternalContext.Provider value={inBigmiContext}>
21
25
  {children}
22
26
  </UTXOExternalContext.Provider>
23
- ) : (
24
- <UTXOBaseProvider>{children}</UTXOBaseProvider>
25
27
  )
26
28
  }
@@ -46,7 +46,9 @@ export function useExternalWalletProvider(): ExternalWalletProvider {
46
46
  hasExternalSuiContext
47
47
 
48
48
  const useExternalWalletProvidersOnly =
49
- hasExternalProvider && !walletConfig?.usePartialWalletManagement
49
+ hasExternalProvider &&
50
+ !walletConfig?.usePartialWalletManagement &&
51
+ !walletConfig?.forceInternalWalletManagement
50
52
  return {
51
53
  useExternalWalletProvidersOnly,
52
54
  externalChainTypes: providers,
@@ -60,6 +62,7 @@ export function useExternalWalletProvider(): ExternalWalletProvider {
60
62
  hasExternalUTXOContext,
61
63
  hasExternalSuiContext,
62
64
  walletConfig?.usePartialWalletManagement,
65
+ walletConfig?.forceInternalWalletManagement,
63
66
  ])
64
67
 
65
68
  return data
@@ -117,6 +117,7 @@ export enum HiddenUI {
117
117
  AddressBookConnectedWallets = 'addressBookConnectedWallets',
118
118
  LowAddressActivityConfirmation = 'lowAddressActivityConfirmation',
119
119
  GasRefuelMessage = 'gasRefuelMessage',
120
+ SearchTokenInput = 'searchTokenInput',
120
121
  }
121
122
  export type HiddenUIType = `${HiddenUI}`
122
123
 
@@ -145,6 +146,11 @@ export interface WidgetWalletConfig {
145
146
  * @default false
146
147
  */
147
148
  usePartialWalletManagement?: boolean
149
+ /**
150
+ * This option forces the widget to always use internal wallet management ignoring external wallet management contexts
151
+ * @default false
152
+ */
153
+ forceInternalWalletManagement?: boolean
148
154
  }
149
155
 
150
156
  export interface WidgetSDKConfig