@lifi/widget 3.25.0-beta.0 → 3.25.0-beta.2

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 (396) hide show
  1. package/dist/esm/AppDefault.js +3 -3
  2. package/dist/esm/AppDefault.js.map +1 -1
  3. package/dist/esm/AppDrawer.style.d.ts +1 -1
  4. package/dist/esm/AppProvider.js +2 -2
  5. package/dist/esm/AppProvider.js.map +1 -1
  6. package/dist/esm/components/ActiveTransactions/ActiveTransactions.style.js +1 -1
  7. package/dist/esm/components/ActiveTransactions/ActiveTransactions.style.js.map +1 -1
  8. package/dist/esm/components/AmountInput/AmountInput.style.js +1 -1
  9. package/dist/esm/components/AmountInput/AmountInput.style.js.map +1 -1
  10. package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +1 -1
  11. package/dist/esm/components/AppContainer.js +6 -13
  12. package/dist/esm/components/AppContainer.js.map +1 -1
  13. package/dist/esm/components/Avatar/Avatar.style.js +1 -1
  14. package/dist/esm/components/Avatar/Avatar.style.js.map +1 -1
  15. package/dist/esm/components/ButtonTertiary.d.ts +1 -1
  16. package/dist/esm/components/Card/CardButton.style.js +1 -1
  17. package/dist/esm/components/Card/CardButton.style.js.map +1 -1
  18. package/dist/esm/components/Card/CardHeader.js +1 -1
  19. package/dist/esm/components/Card/CardHeader.js.map +1 -1
  20. package/dist/esm/components/Card/CardIconButton.d.ts +1 -1
  21. package/dist/esm/components/Card/CardLabel.js +1 -1
  22. package/dist/esm/components/Card/CardLabel.js.map +1 -1
  23. package/dist/esm/components/Card/CardTitle.js +1 -1
  24. package/dist/esm/components/Card/CardTitle.js.map +1 -1
  25. package/dist/esm/components/ChainSelect/ChainSelect.js +1 -1
  26. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  27. package/dist/esm/components/ChainSelect/useChainSelect.js +13 -2
  28. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  29. package/dist/esm/components/Chains/ChainList.d.ts +13 -0
  30. package/dist/esm/components/Chains/ChainList.js +17 -0
  31. package/dist/esm/components/Chains/ChainList.js.map +1 -0
  32. package/dist/esm/components/Chains/ChainList.style.d.ts +14 -0
  33. package/dist/esm/components/Chains/ChainList.style.js +38 -0
  34. package/dist/esm/components/Chains/ChainList.style.js.map +1 -0
  35. package/dist/esm/components/Chains/ChainListItem.d.ts +11 -0
  36. package/dist/esm/components/Chains/ChainListItem.js +11 -0
  37. package/dist/esm/components/Chains/ChainListItem.js.map +1 -0
  38. package/dist/esm/components/Chains/ChainSearchInput.d.ts +10 -0
  39. package/dist/esm/components/Chains/ChainSearchInput.js +19 -0
  40. package/dist/esm/components/Chains/ChainSearchInput.js.map +1 -0
  41. package/dist/esm/components/Chains/ChainsExpanded.d.ts +7 -0
  42. package/dist/esm/components/Chains/ChainsExpanded.js +11 -0
  43. package/dist/esm/components/Chains/ChainsExpanded.js.map +1 -0
  44. package/dist/esm/components/Chains/ChainsExpanded.style.d.ts +6 -0
  45. package/dist/esm/components/Chains/ChainsExpanded.style.js +16 -0
  46. package/dist/esm/components/Chains/ChainsExpanded.style.js.map +1 -0
  47. package/dist/esm/components/Chains/SelectChainContent.d.ts +9 -0
  48. package/dist/esm/components/Chains/SelectChainContent.js +60 -0
  49. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -0
  50. package/dist/esm/components/Chains/VirtualizedChainList.d.ts +11 -0
  51. package/dist/esm/components/Chains/VirtualizedChainList.js +40 -0
  52. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -0
  53. package/dist/esm/components/Expansion/Expansion.d.ts +1 -0
  54. package/dist/esm/components/Expansion/Expansion.js +41 -0
  55. package/dist/esm/components/Expansion/Expansion.js.map +1 -0
  56. package/dist/esm/components/Expansion/ExpansionTransition.d.ts +9 -0
  57. package/dist/esm/components/Expansion/ExpansionTransition.js +45 -0
  58. package/dist/esm/components/Expansion/ExpansionTransition.js.map +1 -0
  59. package/dist/esm/components/Header/Header.js +1 -1
  60. package/dist/esm/components/Header/Header.js.map +1 -1
  61. package/dist/esm/components/Header/Header.style.d.ts +1 -1
  62. package/dist/esm/components/Header/Header.style.js +0 -1
  63. package/dist/esm/components/Header/Header.style.js.map +1 -1
  64. package/dist/esm/components/Header/NavigationHeader.js +2 -2
  65. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  66. package/dist/esm/components/Header/SettingsButton.style.d.ts +1 -1
  67. package/dist/esm/components/Header/SettingsButton.style.js +1 -1
  68. package/dist/esm/components/Header/SettingsButton.style.js.map +1 -1
  69. package/dist/esm/components/ListItem/ListItem.js +1 -1
  70. package/dist/esm/components/ListItem/ListItem.js.map +1 -1
  71. package/dist/esm/components/ListItemButton.js +13 -1
  72. package/dist/esm/components/ListItemButton.js.map +1 -1
  73. package/dist/esm/components/ListItemText.js +1 -1
  74. package/dist/esm/components/ListItemText.js.map +1 -1
  75. package/dist/esm/components/ProgressToNextUpdate.js +1 -1
  76. package/dist/esm/components/ProgressToNextUpdate.js.map +1 -1
  77. package/dist/esm/components/RouteCard/RouteCard.js +1 -1
  78. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  79. package/dist/esm/components/RouteCard/RouteNotFoundCard.js +1 -0
  80. package/dist/esm/components/RouteCard/RouteNotFoundCard.js.map +1 -1
  81. package/dist/esm/components/RouteCard/getMatchingLabels.js +5 -3
  82. package/dist/esm/components/RouteCard/getMatchingLabels.js.map +1 -1
  83. package/dist/esm/components/Routes/Routes.js +1 -1
  84. package/dist/esm/components/Routes/Routes.js.map +1 -1
  85. package/dist/esm/components/Routes/RoutesContent.d.ts +14 -0
  86. package/dist/esm/components/Routes/RoutesContent.js +55 -0
  87. package/dist/esm/components/Routes/RoutesContent.js.map +1 -0
  88. package/dist/esm/components/Routes/RoutesExpanded.d.ts +7 -2
  89. package/dist/esm/components/Routes/RoutesExpanded.js +12 -70
  90. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  91. package/dist/esm/components/Routes/RoutesExpanded.style.d.ts +1 -3
  92. package/dist/esm/components/Routes/RoutesExpanded.style.js +4 -16
  93. package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -1
  94. package/dist/esm/components/Search/SearchInput.d.ts +5 -2
  95. package/dist/esm/components/Search/SearchInput.js +7 -3
  96. package/dist/esm/components/Search/SearchInput.js.map +1 -1
  97. package/dist/esm/components/Search/SearchInput.style.d.ts +4 -1
  98. package/dist/esm/components/Search/SearchInput.style.js +25 -3
  99. package/dist/esm/components/Search/SearchInput.style.js.map +1 -1
  100. package/dist/esm/components/Search/SearchNotFound.style.js +2 -1
  101. package/dist/esm/components/Search/SearchNotFound.style.js.map +1 -1
  102. package/dist/esm/components/Select.js +1 -1
  103. package/dist/esm/components/Select.js.map +1 -1
  104. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +1 -1
  105. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -1
  106. package/dist/esm/components/SendToWallet/SendToWalletButton.js +2 -7
  107. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  108. package/dist/esm/components/Skeleton/WidgetSkeleton.style.d.ts +2 -2
  109. package/dist/esm/components/Skeleton/WidgetSkeleton.style.js +0 -1
  110. package/dist/esm/components/Skeleton/WidgetSkeleton.style.js.map +1 -1
  111. package/dist/esm/components/Step/CircularProgress.style.js +1 -1
  112. package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
  113. package/dist/esm/components/StepActions/StepActions.js +2 -2
  114. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  115. package/dist/esm/components/StepActions/StepActions.style.js +1 -1
  116. package/dist/esm/components/StepActions/StepActions.style.js.map +1 -1
  117. package/dist/esm/components/TextFitter/TextFitter.js +1 -1
  118. package/dist/esm/components/TextFitter/TextFitter.js.map +1 -1
  119. package/dist/esm/components/Token/Token.js +2 -2
  120. package/dist/esm/components/Token/Token.js.map +1 -1
  121. package/dist/esm/components/Token/Token.style.js +1 -1
  122. package/dist/esm/components/Token/Token.style.js.map +1 -1
  123. package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
  124. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  125. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js +1 -1
  126. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js.map +1 -1
  127. package/dist/esm/components/TokenList/TokenList.js +3 -3
  128. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  129. package/dist/esm/components/TokenList/TokenList.style.d.ts +2 -1
  130. package/dist/esm/components/TokenList/TokenList.style.js +6 -1
  131. package/dist/esm/components/TokenList/TokenList.style.js.map +1 -1
  132. package/dist/esm/components/TokenList/TokenListItem.js +16 -7
  133. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  134. package/dist/esm/components/TokenList/VirtualizedTokenList.js +13 -7
  135. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  136. package/dist/esm/components/TokenList/types.d.ts +3 -0
  137. package/dist/esm/components/TokenRate/TokenRate.js +1 -1
  138. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  139. package/dist/esm/components/TokenRate/TokenRate.style.js +1 -1
  140. package/dist/esm/components/TokenRate/TokenRate.style.js.map +1 -1
  141. package/dist/esm/components/TransactionDetails.js +1 -3
  142. package/dist/esm/components/TransactionDetails.js.map +1 -1
  143. package/dist/esm/config/coinbase.js +2 -2
  144. package/dist/esm/config/coinbase.js.map +1 -1
  145. package/dist/esm/config/metaMask.js +2 -2
  146. package/dist/esm/config/metaMask.js.map +1 -1
  147. package/dist/esm/config/version.d.ts +1 -1
  148. package/dist/esm/config/version.js +1 -1
  149. package/dist/esm/hooks/timer/time.js +1 -1
  150. package/dist/esm/hooks/timer/time.js.map +1 -1
  151. package/dist/esm/hooks/timer/useTimer.js.map +1 -1
  152. package/dist/esm/hooks/useAvailableChains.js +3 -2
  153. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  154. package/dist/esm/hooks/useChains.js +4 -4
  155. package/dist/esm/hooks/useChains.js.map +1 -1
  156. package/dist/esm/hooks/useExpansionRoutes.d.ts +2 -0
  157. package/dist/esm/hooks/useExpansionRoutes.js +26 -0
  158. package/dist/esm/hooks/useExpansionRoutes.js.map +1 -0
  159. package/dist/esm/hooks/useHasChainExpansion.d.ts +2 -0
  160. package/dist/esm/hooks/useHasChainExpansion.js +16 -0
  161. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -0
  162. package/dist/esm/hooks/useIsBatchingSupported.js +4 -1
  163. package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
  164. package/dist/esm/hooks/useListHeight.js +1 -1
  165. package/dist/esm/hooks/useListHeight.js.map +1 -1
  166. package/dist/esm/hooks/useRouteExecution.js +3 -3
  167. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  168. package/dist/esm/hooks/useRoutes.js +6 -3
  169. package/dist/esm/hooks/useRoutes.js.map +1 -1
  170. package/dist/esm/hooks/useToAddressReset.js +10 -2
  171. package/dist/esm/hooks/useToAddressReset.js.map +1 -1
  172. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  173. package/dist/esm/hooks/useTokenBalances.js +1 -0
  174. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  175. package/dist/esm/hooks/useTokenSearch.js +6 -4
  176. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  177. package/dist/esm/hooks/useTokens.js +5 -3
  178. package/dist/esm/hooks/useTokens.js.map +1 -1
  179. package/dist/esm/hooks/useTools.js +5 -3
  180. package/dist/esm/hooks/useTools.js.map +1 -1
  181. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  182. package/dist/esm/hooks/useWidgetEvents.js.map +1 -1
  183. package/dist/esm/i18n/bn.json +2 -1
  184. package/dist/esm/i18n/de.json +2 -1
  185. package/dist/esm/i18n/en.json +2 -1
  186. package/dist/esm/i18n/es.json +2 -1
  187. package/dist/esm/i18n/fr.json +2 -1
  188. package/dist/esm/i18n/hi.json +1 -0
  189. package/dist/esm/i18n/id.json +2 -1
  190. package/dist/esm/i18n/it.json +2 -1
  191. package/dist/esm/i18n/ja.json +2 -1
  192. package/dist/esm/i18n/ko.json +2 -1
  193. package/dist/esm/i18n/pl.json +350 -0
  194. package/dist/esm/i18n/pt.json +2 -1
  195. package/dist/esm/i18n/th.json +2 -1
  196. package/dist/esm/i18n/tr.json +2 -1
  197. package/dist/esm/i18n/uk.json +14 -13
  198. package/dist/esm/i18n/vi.json +2 -1
  199. package/dist/esm/i18n/zh.json +2 -1
  200. package/dist/esm/icons/lifi.d.ts +1 -1
  201. package/dist/esm/icons/lifi.js +1 -1
  202. package/dist/esm/icons/lifi.js.map +1 -1
  203. package/dist/esm/index.d.ts +8 -8
  204. package/dist/esm/index.js +8 -8
  205. package/dist/esm/index.js.map +1 -1
  206. package/dist/esm/pages/RoutesPage/RoutesPage.js +1 -1
  207. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  208. package/dist/esm/pages/SelectChainPage/SelectChainPage.js +7 -33
  209. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  210. package/dist/esm/pages/SelectEnabledToolsPage.js +1 -1
  211. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  212. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +1 -1
  213. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
  214. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +20 -11
  215. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  216. package/dist/esm/pages/SendToWallet/BookmarksPage.js +1 -1
  217. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  218. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.d.ts +2 -2
  219. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js +1 -1
  220. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -1
  221. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js +1 -1
  222. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -1
  223. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +1 -3
  224. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  225. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +1 -1
  226. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  227. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.js +8 -5
  228. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.js.map +1 -1
  229. package/dist/esm/pages/TransactionPage/RouteTracker.js +2 -2
  230. package/dist/esm/pages/TransactionPage/RouteTracker.js.map +1 -1
  231. package/dist/esm/providers/I18nProvider/I18nProvider.js +8 -4
  232. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  233. package/dist/esm/providers/QueryClientProvider.js.map +1 -1
  234. package/dist/esm/providers/WalletProvider/SDKProviders.js +1 -1
  235. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  236. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js +1 -1
  237. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js.map +1 -1
  238. package/dist/esm/providers/WalletProvider/WalletProvider.js +1 -1
  239. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +1 -1
  240. package/dist/esm/stores/chains/ChainOrderStore.js +5 -3
  241. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  242. package/dist/esm/stores/form/FormStore.js +1 -1
  243. package/dist/esm/stores/form/FormStore.js.map +1 -1
  244. package/dist/esm/stores/form/FormUpdater.js +21 -5
  245. package/dist/esm/stores/form/FormUpdater.js.map +1 -1
  246. package/dist/esm/stores/form/URLSearchParamsBuilder.js +1 -1
  247. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  248. package/dist/esm/stores/form/useFormRef.js.map +1 -1
  249. package/dist/esm/stores/routes/createRouteExecutionStore.js +1 -1
  250. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  251. package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
  252. package/dist/esm/themes/palettes.js +1 -1
  253. package/dist/esm/types/widget.d.ts +25 -6
  254. package/dist/esm/types/widget.js +6 -0
  255. package/dist/esm/types/widget.js.map +1 -1
  256. package/dist/esm/utils/deepEqual.js +2 -2
  257. package/dist/esm/utils/deepEqual.js.map +1 -1
  258. package/dist/esm/utils/item.d.ts +5 -15
  259. package/dist/esm/utils/item.js +23 -19
  260. package/dist/esm/utils/item.js.map +1 -1
  261. package/dist/esm/utils/widgetSize.d.ts +3 -0
  262. package/dist/esm/utils/widgetSize.js +11 -0
  263. package/dist/esm/utils/widgetSize.js.map +1 -0
  264. package/package.json +7 -6
  265. package/package.json.tmp +12 -6
  266. package/src/AppDefault.tsx +3 -3
  267. package/src/AppProvider.tsx +2 -2
  268. package/src/components/ActiveTransactions/ActiveTransactions.style.ts +1 -1
  269. package/src/components/AmountInput/AmountInput.style.tsx +1 -1
  270. package/src/components/AppContainer.tsx +6 -14
  271. package/src/components/Avatar/Avatar.style.tsx +2 -2
  272. package/src/components/Card/CardButton.style.tsx +1 -1
  273. package/src/components/Card/CardHeader.tsx +1 -1
  274. package/src/components/Card/CardLabel.tsx +1 -1
  275. package/src/components/Card/CardTitle.tsx +1 -1
  276. package/src/components/ChainSelect/ChainSelect.tsx +1 -1
  277. package/src/components/ChainSelect/useChainSelect.ts +37 -23
  278. package/src/components/Chains/ChainList.style.tsx +59 -0
  279. package/src/components/Chains/ChainList.tsx +86 -0
  280. package/src/components/Chains/ChainListItem.tsx +52 -0
  281. package/src/components/Chains/ChainSearchInput.tsx +52 -0
  282. package/src/components/Chains/ChainsExpanded.style.tsx +21 -0
  283. package/src/components/Chains/ChainsExpanded.tsx +28 -0
  284. package/src/components/Chains/SelectChainContent.tsx +116 -0
  285. package/src/components/Chains/VirtualizedChainList.tsx +84 -0
  286. package/src/components/Expansion/Expansion.tsx +62 -0
  287. package/src/components/Expansion/ExpansionTransition.tsx +76 -0
  288. package/src/components/Header/Header.style.ts +0 -1
  289. package/src/components/Header/Header.tsx +1 -1
  290. package/src/components/Header/NavigationHeader.tsx +2 -2
  291. package/src/components/Header/SettingsButton.style.tsx +1 -1
  292. package/src/components/ListItem/ListItem.tsx +1 -1
  293. package/src/components/ListItemButton.tsx +17 -1
  294. package/src/components/ListItemText.tsx +1 -1
  295. package/src/components/ProgressToNextUpdate.tsx +1 -1
  296. package/src/components/RouteCard/RouteCard.tsx +1 -1
  297. package/src/components/RouteCard/RouteNotFoundCard.tsx +1 -0
  298. package/src/components/RouteCard/getMatchingLabels.ts +11 -3
  299. package/src/components/Routes/Routes.tsx +1 -1
  300. package/src/components/Routes/RoutesContent.tsx +137 -0
  301. package/src/components/Routes/RoutesExpanded.style.ts +4 -18
  302. package/src/components/Routes/RoutesExpanded.tsx +33 -158
  303. package/src/components/Search/SearchInput.style.tsx +36 -3
  304. package/src/components/Search/SearchInput.tsx +31 -5
  305. package/src/components/Search/SearchNotFound.style.tsx +2 -1
  306. package/src/components/Select.tsx +1 -1
  307. package/src/components/SelectTokenButton/SelectTokenButton.style.tsx +1 -1
  308. package/src/components/SendToWallet/SendToWalletButton.tsx +2 -3
  309. package/src/components/Skeleton/WidgetSkeleton.style.tsx +0 -1
  310. package/src/components/Step/CircularProgress.style.tsx +1 -1
  311. package/src/components/StepActions/StepActions.style.tsx +1 -1
  312. package/src/components/StepActions/StepActions.tsx +3 -3
  313. package/src/components/TextFitter/TextFitter.tsx +1 -1
  314. package/src/components/Token/Token.style.tsx +1 -1
  315. package/src/components/Token/Token.tsx +2 -2
  316. package/src/components/TokenList/TokenDetailsSheet.tsx +1 -0
  317. package/src/components/TokenList/TokenDetailsSheetContent.style.tsx +1 -1
  318. package/src/components/TokenList/TokenDetailsSheetContent.tsx +1 -1
  319. package/src/components/TokenList/TokenList.style.tsx +11 -1
  320. package/src/components/TokenList/TokenList.tsx +6 -2
  321. package/src/components/TokenList/TokenListItem.tsx +53 -37
  322. package/src/components/TokenList/VirtualizedTokenList.tsx +17 -5
  323. package/src/components/TokenList/types.ts +3 -0
  324. package/src/components/TokenRate/TokenRate.style.ts +1 -1
  325. package/src/components/TokenRate/TokenRate.tsx +1 -1
  326. package/src/components/TransactionDetails.tsx +1 -1
  327. package/src/config/coinbase.ts +2 -2
  328. package/src/config/metaMask.ts +2 -2
  329. package/src/config/version.ts +1 -1
  330. package/src/hooks/timer/time.ts +1 -1
  331. package/src/hooks/timer/useTimer.ts +1 -1
  332. package/src/hooks/useAvailableChains.ts +8 -2
  333. package/src/hooks/useChains.ts +10 -4
  334. package/src/hooks/useExpansionRoutes.ts +29 -0
  335. package/src/hooks/useHasChainExpansion.ts +19 -0
  336. package/src/hooks/useIsBatchingSupported.ts +5 -2
  337. package/src/hooks/useListHeight.ts +1 -1
  338. package/src/hooks/useRouteExecution.ts +3 -3
  339. package/src/hooks/useRoutes.ts +8 -2
  340. package/src/hooks/useToAddressReset.ts +32 -21
  341. package/src/hooks/useTokenBalance.ts +1 -1
  342. package/src/hooks/useTokenBalances.ts +1 -0
  343. package/src/hooks/useTokenSearch.ts +23 -6
  344. package/src/hooks/useTokens.ts +16 -6
  345. package/src/hooks/useTools.ts +12 -4
  346. package/src/hooks/useTransactionDetails.ts +1 -1
  347. package/src/hooks/useWidgetEvents.ts +1 -0
  348. package/src/i18n/bn.json +2 -1
  349. package/src/i18n/de.json +2 -1
  350. package/src/i18n/en.json +2 -1
  351. package/src/i18n/es.json +2 -1
  352. package/src/i18n/fr.json +2 -1
  353. package/src/i18n/hi.json +1 -0
  354. package/src/i18n/id.json +2 -1
  355. package/src/i18n/it.json +2 -1
  356. package/src/i18n/ja.json +2 -1
  357. package/src/i18n/ko.json +2 -1
  358. package/src/i18n/pl.json +350 -0
  359. package/src/i18n/pt.json +2 -1
  360. package/src/i18n/th.json +2 -1
  361. package/src/i18n/tr.json +2 -1
  362. package/src/i18n/uk.json +14 -13
  363. package/src/i18n/vi.json +2 -1
  364. package/src/i18n/zh.json +2 -1
  365. package/src/icons/lifi.ts +2 -2
  366. package/src/index.ts +8 -8
  367. package/src/pages/RoutesPage/RoutesPage.tsx +1 -1
  368. package/src/pages/SelectChainPage/SelectChainPage.tsx +18 -71
  369. package/src/pages/SelectEnabledToolsPage.tsx +1 -1
  370. package/src/pages/SelectTokenPage/SearchTokenInput.tsx +2 -0
  371. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +44 -22
  372. package/src/pages/SendToWallet/BookmarksPage.tsx +1 -1
  373. package/src/pages/SendToWallet/SendToWalletPage.style.tsx +3 -3
  374. package/src/pages/SettingsPage/SettingsCard/SettingCard.style.tsx +1 -1
  375. package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +1 -1
  376. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +1 -1
  377. package/src/pages/TransactionHistoryPage/TransactionHistoryPage.tsx +12 -7
  378. package/src/pages/TransactionPage/RouteTracker.tsx +2 -2
  379. package/src/providers/I18nProvider/I18nProvider.tsx +10 -4
  380. package/src/providers/QueryClientProvider.tsx +1 -1
  381. package/src/providers/WalletProvider/SDKProviders.tsx +1 -1
  382. package/src/providers/WalletProvider/SuiBaseProvider.tsx +1 -1
  383. package/src/providers/WalletProvider/WalletProvider.tsx +1 -1
  384. package/src/providers/WalletProvider/useExternalWalletProvider.ts +1 -1
  385. package/src/stores/chains/ChainOrderStore.tsx +8 -3
  386. package/src/stores/form/FormStore.tsx +1 -1
  387. package/src/stores/form/FormUpdater.tsx +40 -6
  388. package/src/stores/form/URLSearchParamsBuilder.tsx +1 -1
  389. package/src/stores/form/useFormRef.ts +50 -54
  390. package/src/stores/routes/createRouteExecutionStore.ts +1 -1
  391. package/src/stores/settings/useSettingsStore.ts +1 -0
  392. package/src/themes/palettes.ts +1 -1
  393. package/src/types/widget.ts +29 -6
  394. package/src/utils/deepEqual.ts +2 -2
  395. package/src/utils/item.ts +46 -40
  396. package/src/utils/widgetSize.ts +17 -0
@@ -1,4 +1,5 @@
1
1
  import type { ExtendedChain } from '@lifi/sdk'
2
+ import { useCallback } from 'react'
2
3
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
3
4
  import { useBookmarkActions } from '../stores/bookmarks/useBookmarkActions.js'
4
5
  import { useBookmarks } from '../stores/bookmarks/useBookmarks.js'
@@ -13,31 +14,41 @@ export const useToAddressReset = () => {
13
14
  const { setSelectedBookmark } = useBookmarkActions()
14
15
  const { setSendToWallet } = useSendToWalletActions()
15
16
 
16
- const tryResetToAddress = (toChain: ExtendedChain) => {
17
- const requiredToAddress = requiredUI?.includes(RequiredUI.ToAddress)
17
+ const tryResetToAddress = useCallback(
18
+ (toChain: ExtendedChain) => {
19
+ const requiredToAddress = requiredUI?.includes(RequiredUI.ToAddress)
18
20
 
19
- const bookmarkSatisfiesToChainType =
20
- selectedBookmark?.chainType === toChain?.chainType
21
+ const bookmarkSatisfiesToChainType =
22
+ selectedBookmark?.chainType === toChain?.chainType
21
23
 
22
- const shouldResetToAddress =
23
- !requiredToAddress && !bookmarkSatisfiesToChainType
24
+ const shouldResetToAddress =
25
+ !requiredToAddress && !bookmarkSatisfiesToChainType
24
26
 
25
- // The toAddress field is required and always visible when bridging between
26
- // different ecosystems (fromChain and toChain have different chain types).
27
- // We reset toAddress on each chain change if it's no longer required, ensuring that
28
- // switching chain types doesn't leave a previously set toAddress value when
29
- // the "Send to Wallet" field is hidden.
30
- if (shouldResetToAddress) {
31
- setFieldValue('toAddress', '', { isTouched: true })
32
- setSelectedBookmark()
33
- // If toAddress was auto-filled (e.g., when making cross-ecosystem bridging and compatible destination wallet was connected)
34
- // and not manually edited by the user, we need to hide "Send to Wallet".
35
- const isToAddressDirty = isDirty('toAddress')
36
- if (!isToAddressDirty) {
37
- setSendToWallet(false)
27
+ // The toAddress field is required and always visible when bridging between
28
+ // different ecosystems (fromChain and toChain have different chain types).
29
+ // We reset toAddress on each chain change if it's no longer required, ensuring that
30
+ // switching chain types doesn't leave a previously set toAddress value when
31
+ // the "Send to Wallet" field is hidden.
32
+ if (shouldResetToAddress) {
33
+ setFieldValue('toAddress', '', { isTouched: true })
34
+ setSelectedBookmark()
35
+ // If toAddress was auto-filled (e.g., when making cross-ecosystem bridging and compatible destination wallet was connected)
36
+ // and not manually edited by the user, we need to hide "Send to Wallet".
37
+ const isToAddressDirty = isDirty('toAddress')
38
+ if (!isToAddressDirty) {
39
+ setSendToWallet(false)
40
+ }
38
41
  }
39
- }
40
- }
42
+ },
43
+ [
44
+ setFieldValue,
45
+ isDirty,
46
+ setSelectedBookmark,
47
+ setSendToWallet,
48
+ requiredUI,
49
+ selectedBookmark,
50
+ ]
51
+ )
41
52
 
42
53
  return {
43
54
  tryResetToAddress,
@@ -1,4 +1,4 @@
1
- import { type Token, type TokenAmount, getTokenBalances } from '@lifi/sdk'
1
+ import { getTokenBalances, type Token, type TokenAmount } from '@lifi/sdk'
2
2
  import { useQuery, useQueryClient } from '@tanstack/react-query'
3
3
  import { useCallback, useMemo } from 'react'
4
4
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
@@ -36,6 +36,7 @@ export const useTokenBalances = (
36
36
  account.address,
37
37
  selectedChainId,
38
38
  tokens?.length,
39
+ formType,
39
40
  ],
40
41
  queryFn: async ({ queryKey: [, accountAddress] }) => {
41
42
  const tokensWithBalance: TokenAmount[] = await getTokenBalances(
@@ -1,9 +1,14 @@
1
- import { type ChainId, type TokensResponse, getToken } from '@lifi/sdk'
1
+ import {
2
+ type BaseToken,
3
+ type ChainId,
4
+ getToken,
5
+ type TokensResponse,
6
+ } from '@lifi/sdk'
2
7
  import { useQuery, useQueryClient } from '@tanstack/react-query'
3
8
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
4
9
  import type { FormType } from '../stores/form/types.js'
5
10
  import type { TokenAmount } from '../types/token.js'
6
- import { filterConfigTokensByChain, isTokenAllowed } from '../utils/item.js'
11
+ import { getConfigItemSets, isFormItemAllowed } from '../utils/item.js'
7
12
  import { getQueryKey } from '../utils/queries.js'
8
13
 
9
14
  export const useTokenSearch = (
@@ -24,14 +29,26 @@ export const useTokenSearch = (
24
29
 
25
30
  if (token) {
26
31
  // Filter config tokens by chain before checking if token is allowed
27
- const filteredConfigTokens = filterConfigTokensByChain(
32
+ const filteredConfigTokens = getConfigItemSets(
28
33
  configTokens,
29
- formType,
30
- token.chainId
34
+ (tokens: BaseToken[]) =>
35
+ new Set(
36
+ tokens
37
+ .filter((t) => t.chainId === token.chainId)
38
+ .map((t) => t.address)
39
+ ),
40
+ formType
31
41
  )
32
42
 
33
43
  // Return undefined if the token is denied
34
- if (!isTokenAllowed(token, filteredConfigTokens, formType)) {
44
+ if (
45
+ !isFormItemAllowed(
46
+ token,
47
+ filteredConfigTokens,
48
+ formType,
49
+ (t) => t.address
50
+ )
51
+ ) {
35
52
  return undefined
36
53
  }
37
54
 
@@ -1,10 +1,10 @@
1
- import { ChainType, getTokens } from '@lifi/sdk'
1
+ import { type BaseToken, ChainType, getTokens } from '@lifi/sdk'
2
2
  import { useQuery } from '@tanstack/react-query'
3
3
  import { useMemo } from 'react'
4
4
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
5
5
  import type { FormType } from '../stores/form/types.js'
6
6
  import type { TokenAmount } from '../types/token.js'
7
- import { filterConfigTokensByChain, isTokenAllowed } from '../utils/item.js'
7
+ import { getConfigItemSets, isFormItemAllowed } from '../utils/item.js'
8
8
  import { getQueryKey } from '../utils/queries.js'
9
9
  import { useChains } from './useChains.js'
10
10
 
@@ -48,17 +48,27 @@ export const useTokens = (selectedChainId?: number, formType?: FormType) => {
48
48
  }
49
49
 
50
50
  // Filter config tokens by chain before checking if token is allowed
51
- const filteredConfigTokens = filterConfigTokensByChain(
51
+ const filteredConfigTokens = getConfigItemSets(
52
52
  configTokens,
53
- formType,
54
- selectedChainId
53
+ (tokens: BaseToken[]) =>
54
+ new Set(
55
+ tokens
56
+ .filter((t) => t.chainId === selectedChainId)
57
+ .map((t) => t.address)
58
+ ),
59
+ formType
55
60
  )
56
61
 
57
62
  // Get the appropriate allow/deny lists based on formType
58
63
  filteredTokens = filteredTokens.filter(
59
64
  (token) =>
60
65
  token.chainId === selectedChainId &&
61
- isTokenAllowed(token, filteredConfigTokens, formType)
66
+ isFormItemAllowed(
67
+ token,
68
+ filteredConfigTokens,
69
+ formType,
70
+ (t) => t.address
71
+ )
62
72
  )
63
73
 
64
74
  const filteredTokensMap = new Map(
@@ -1,8 +1,8 @@
1
- import { type ToolsResponse, getTools } from '@lifi/sdk'
1
+ import { getTools, type ToolsResponse } from '@lifi/sdk'
2
2
  import { useQuery } from '@tanstack/react-query'
3
3
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
4
4
  import { useSettingsStore } from '../stores/settings/useSettingsStore.js'
5
- import { isItemAllowed } from '../utils/item.js'
5
+ import { getConfigItemSets, isItemAllowedForSets } from '../utils/item.js'
6
6
  import { getQueryKey } from '../utils/queries.js'
7
7
 
8
8
  export const useTools = () => {
@@ -17,12 +17,20 @@ export const useTools = () => {
17
17
  ],
18
18
  queryFn: async (): Promise<ToolsResponse> => {
19
19
  const tools = await getTools()
20
+ const bridgesConfigSets = getConfigItemSets(
21
+ bridges,
22
+ (bridges) => new Set(bridges)
23
+ )
24
+ const exchangesConfigSets = getConfigItemSets(
25
+ exchanges,
26
+ (exchanges) => new Set(exchanges)
27
+ )
20
28
  const result = {
21
29
  bridges: tools.bridges.filter((bridge) =>
22
- isItemAllowed(bridge.key, bridges)
30
+ isItemAllowedForSets(bridge.key, bridgesConfigSets)
23
31
  ),
24
32
  exchanges: tools.exchanges.filter((exchange) =>
25
- isItemAllowed(exchange.key, exchanges)
33
+ isItemAllowedForSets(exchange.key, exchangesConfigSets)
26
34
  ),
27
35
  }
28
36
  const { initializeTools } = useSettingsStore.getState()
@@ -1,5 +1,5 @@
1
1
  import type { FullStatusData } from '@lifi/sdk'
2
- import { type StatusResponse, getStatus } from '@lifi/sdk'
2
+ import { getStatus, type StatusResponse } from '@lifi/sdk'
3
3
  import { useAccount } from '@lifi/wallet-management'
4
4
  import {
5
5
  keepPreviousData,
@@ -1,5 +1,6 @@
1
1
  import _mitt, { type Emitter, type EventHandlerMap, type EventType } from 'mitt'
2
2
  import type { WidgetEvents } from '../types/events.js'
3
+
3
4
  // https://github.com/developit/mitt/issues/191
4
5
  const mitt = _mitt as unknown as <Events extends Record<EventType, unknown>>(
5
6
  all?: EventHandlerMap<Events>
package/src/i18n/bn.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "প্রতি",
310
310
  "tokenOnChain": "{{chainName}} -এ {{tokenSymbol}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "আপনার টোকেন অনুসন্ধান করুন",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "মান ক্ষতি",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""
package/src/i18n/de.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "Zu",
310
310
  "tokenOnChain": "{{tokenSymbol}} auf {{chainName}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "Suchen Sie Ihren Token",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "Wertverlust",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""
package/src/i18n/en.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "To",
310
310
  "tokenOnChain": "{{tokenSymbol}} on {{chainName}}",
311
311
  "tokenOnChainAmount": "{{amount, numberExt}} {{tokenSymbol}} on {{chainName}}",
312
- "tokenSearch": "Search by token name or address",
312
+ "tokenSearch": "Search by token or address",
313
313
  "valueLoss": "Value loss",
314
+ "searchChain": "Search chain",
314
315
  "searchChains": "Search by chain name",
315
316
  "searchBridges": "Search by bridge name",
316
317
  "searchExchanges": "Search by exchange name"
package/src/i18n/es.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "A",
310
310
  "tokenOnChain": "{{tokenSymbol}} en {{chainName}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "Busque su token",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "Valor perdido",
314
+ "searchChain": "",
314
315
  "searchChains": "Buscar por nombre de cadena",
315
316
  "searchBridges": "Buscar por nombre de puente",
316
317
  "searchExchanges": "Buscar por nombre de intercambio"
package/src/i18n/fr.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "À",
310
310
  "tokenOnChain": "{{tokenSymbol}} sur {{chainName}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "Recherche par nom de jeton ou adresse",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "Perte de valeur",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""
package/src/i18n/hi.json CHANGED
@@ -311,6 +311,7 @@
311
311
  "tokenOnChainAmount": "",
312
312
  "tokenSearch": "",
313
313
  "valueLoss": "",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""
package/src/i18n/id.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "Kepada",
310
310
  "tokenOnChain": "{{tokenSymbol}} di {{chainName}}",
311
311
  "tokenOnChainAmount": "{{amount, numberExt}} {{tokenSymbol}} di {{chainName}}",
312
- "tokenSearch": "Cari berdasarkan nama atau alamat token",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "Kehilangan nilai",
314
+ "searchChain": "",
314
315
  "searchChains": "Cari berdasarkan nama rantai",
315
316
  "searchBridges": "Cari berdasarkan nama bridge",
316
317
  "searchExchanges": "Cari berdasarkan nama exchange"
package/src/i18n/it.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "A",
310
310
  "tokenOnChain": "{{tokenSymbol}} su {{chainName}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "Cerca per nome token o indirizzo",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "Perdita di valore",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""
package/src/i18n/ja.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "To",
310
310
  "tokenOnChain": "{{chainName}} の {{tokenSymbol}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "トークン名またはアドレスで検索",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "損失額",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""
package/src/i18n/ko.json CHANGED
@@ -309,8 +309,9 @@
309
309
  "to": "도착",
310
310
  "tokenOnChain": "{{chainName}}의 {{tokenSymbol}}",
311
311
  "tokenOnChainAmount": "",
312
- "tokenSearch": "이름 또는 컨트랙트 주소를 통해 검색",
312
+ "tokenSearch": "",
313
313
  "valueLoss": "가치 손실",
314
+ "searchChain": "",
314
315
  "searchChains": "",
315
316
  "searchBridges": "",
316
317
  "searchExchanges": ""