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

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 (381) 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.style.js +1 -1
  114. package/dist/esm/components/StepActions/StepActions.style.js.map +1 -1
  115. package/dist/esm/components/TextFitter/TextFitter.js +1 -1
  116. package/dist/esm/components/TextFitter/TextFitter.js.map +1 -1
  117. package/dist/esm/components/Token/Token.js +2 -2
  118. package/dist/esm/components/Token/Token.js.map +1 -1
  119. package/dist/esm/components/Token/Token.style.js +1 -1
  120. package/dist/esm/components/Token/Token.style.js.map +1 -1
  121. package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
  122. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  123. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js +1 -1
  124. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js.map +1 -1
  125. package/dist/esm/components/TokenList/TokenList.js +3 -3
  126. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  127. package/dist/esm/components/TokenList/TokenList.style.d.ts +2 -1
  128. package/dist/esm/components/TokenList/TokenList.style.js +6 -1
  129. package/dist/esm/components/TokenList/TokenList.style.js.map +1 -1
  130. package/dist/esm/components/TokenList/TokenListItem.js +16 -7
  131. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  132. package/dist/esm/components/TokenList/VirtualizedTokenList.js +13 -7
  133. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  134. package/dist/esm/components/TokenList/types.d.ts +3 -0
  135. package/dist/esm/components/TokenRate/TokenRate.js +1 -1
  136. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  137. package/dist/esm/components/TokenRate/TokenRate.style.js +1 -1
  138. package/dist/esm/components/TokenRate/TokenRate.style.js.map +1 -1
  139. package/dist/esm/components/TransactionDetails.js +1 -3
  140. package/dist/esm/components/TransactionDetails.js.map +1 -1
  141. package/dist/esm/config/version.d.ts +1 -1
  142. package/dist/esm/config/version.js +1 -1
  143. package/dist/esm/hooks/timer/time.js +1 -1
  144. package/dist/esm/hooks/timer/time.js.map +1 -1
  145. package/dist/esm/hooks/timer/useTimer.js.map +1 -1
  146. package/dist/esm/hooks/useAvailableChains.js +3 -2
  147. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  148. package/dist/esm/hooks/useChains.js +4 -4
  149. package/dist/esm/hooks/useChains.js.map +1 -1
  150. package/dist/esm/hooks/useExpansionRoutes.d.ts +2 -0
  151. package/dist/esm/hooks/useExpansionRoutes.js +26 -0
  152. package/dist/esm/hooks/useExpansionRoutes.js.map +1 -0
  153. package/dist/esm/hooks/useHasChainExpansion.d.ts +2 -0
  154. package/dist/esm/hooks/useHasChainExpansion.js +16 -0
  155. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -0
  156. package/dist/esm/hooks/useIsBatchingSupported.js +4 -1
  157. package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
  158. package/dist/esm/hooks/useListHeight.js +1 -1
  159. package/dist/esm/hooks/useListHeight.js.map +1 -1
  160. package/dist/esm/hooks/useRouteExecution.js +3 -3
  161. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  162. package/dist/esm/hooks/useRoutes.js +6 -3
  163. package/dist/esm/hooks/useRoutes.js.map +1 -1
  164. package/dist/esm/hooks/useToAddressReset.js +10 -2
  165. package/dist/esm/hooks/useToAddressReset.js.map +1 -1
  166. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  167. package/dist/esm/hooks/useTokenBalances.js +1 -0
  168. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  169. package/dist/esm/hooks/useTokenSearch.js +6 -4
  170. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  171. package/dist/esm/hooks/useTokens.js +5 -3
  172. package/dist/esm/hooks/useTokens.js.map +1 -1
  173. package/dist/esm/hooks/useTools.js +5 -3
  174. package/dist/esm/hooks/useTools.js.map +1 -1
  175. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  176. package/dist/esm/hooks/useWidgetEvents.js.map +1 -1
  177. package/dist/esm/i18n/bn.json +2 -1
  178. package/dist/esm/i18n/de.json +2 -1
  179. package/dist/esm/i18n/en.json +2 -1
  180. package/dist/esm/i18n/es.json +2 -1
  181. package/dist/esm/i18n/fr.json +2 -1
  182. package/dist/esm/i18n/hi.json +1 -0
  183. package/dist/esm/i18n/id.json +2 -1
  184. package/dist/esm/i18n/it.json +2 -1
  185. package/dist/esm/i18n/ja.json +2 -1
  186. package/dist/esm/i18n/ko.json +2 -1
  187. package/dist/esm/i18n/pl.json +350 -0
  188. package/dist/esm/i18n/pt.json +2 -1
  189. package/dist/esm/i18n/th.json +2 -1
  190. package/dist/esm/i18n/tr.json +2 -1
  191. package/dist/esm/i18n/uk.json +14 -13
  192. package/dist/esm/i18n/vi.json +2 -1
  193. package/dist/esm/i18n/zh.json +2 -1
  194. package/dist/esm/index.d.ts +8 -8
  195. package/dist/esm/index.js +8 -8
  196. package/dist/esm/index.js.map +1 -1
  197. package/dist/esm/pages/RoutesPage/RoutesPage.js +1 -1
  198. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  199. package/dist/esm/pages/SelectChainPage/SelectChainPage.js +7 -33
  200. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  201. package/dist/esm/pages/SelectEnabledToolsPage.js +1 -1
  202. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  203. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +1 -1
  204. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
  205. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +20 -11
  206. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  207. package/dist/esm/pages/SendToWallet/BookmarksPage.js +1 -1
  208. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  209. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.d.ts +2 -2
  210. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js +1 -1
  211. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -1
  212. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js +1 -1
  213. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -1
  214. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +1 -3
  215. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  216. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +1 -1
  217. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  218. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.js +8 -5
  219. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.js.map +1 -1
  220. package/dist/esm/pages/TransactionPage/RouteTracker.js +2 -2
  221. package/dist/esm/pages/TransactionPage/RouteTracker.js.map +1 -1
  222. package/dist/esm/providers/I18nProvider/I18nProvider.js +8 -4
  223. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  224. package/dist/esm/providers/QueryClientProvider.js.map +1 -1
  225. package/dist/esm/providers/WalletProvider/SDKProviders.js +1 -1
  226. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  227. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js +1 -1
  228. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js.map +1 -1
  229. package/dist/esm/providers/WalletProvider/WalletProvider.js +1 -1
  230. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +1 -1
  231. package/dist/esm/stores/chains/ChainOrderStore.js +5 -3
  232. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  233. package/dist/esm/stores/form/FormStore.js +1 -1
  234. package/dist/esm/stores/form/FormStore.js.map +1 -1
  235. package/dist/esm/stores/form/FormUpdater.js +21 -5
  236. package/dist/esm/stores/form/FormUpdater.js.map +1 -1
  237. package/dist/esm/stores/form/URLSearchParamsBuilder.js +1 -1
  238. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  239. package/dist/esm/stores/form/useFormRef.js.map +1 -1
  240. package/dist/esm/stores/routes/createRouteExecutionStore.js +1 -1
  241. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  242. package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
  243. package/dist/esm/types/widget.d.ts +25 -6
  244. package/dist/esm/types/widget.js +6 -0
  245. package/dist/esm/types/widget.js.map +1 -1
  246. package/dist/esm/utils/deepEqual.js +2 -2
  247. package/dist/esm/utils/deepEqual.js.map +1 -1
  248. package/dist/esm/utils/item.d.ts +5 -15
  249. package/dist/esm/utils/item.js +23 -19
  250. package/dist/esm/utils/item.js.map +1 -1
  251. package/dist/esm/utils/widgetSize.d.ts +3 -0
  252. package/dist/esm/utils/widgetSize.js +11 -0
  253. package/dist/esm/utils/widgetSize.js.map +1 -0
  254. package/package.json +7 -6
  255. package/package.json.tmp +12 -6
  256. package/src/AppDefault.tsx +3 -3
  257. package/src/AppProvider.tsx +2 -2
  258. package/src/components/ActiveTransactions/ActiveTransactions.style.ts +1 -1
  259. package/src/components/AmountInput/AmountInput.style.tsx +1 -1
  260. package/src/components/AppContainer.tsx +6 -14
  261. package/src/components/Avatar/Avatar.style.tsx +2 -2
  262. package/src/components/Card/CardButton.style.tsx +1 -1
  263. package/src/components/Card/CardHeader.tsx +1 -1
  264. package/src/components/Card/CardLabel.tsx +1 -1
  265. package/src/components/Card/CardTitle.tsx +1 -1
  266. package/src/components/ChainSelect/ChainSelect.tsx +1 -1
  267. package/src/components/ChainSelect/useChainSelect.ts +37 -23
  268. package/src/components/Chains/ChainList.style.tsx +59 -0
  269. package/src/components/Chains/ChainList.tsx +86 -0
  270. package/src/components/Chains/ChainListItem.tsx +52 -0
  271. package/src/components/Chains/ChainSearchInput.tsx +52 -0
  272. package/src/components/Chains/ChainsExpanded.style.tsx +21 -0
  273. package/src/components/Chains/ChainsExpanded.tsx +28 -0
  274. package/src/components/Chains/SelectChainContent.tsx +116 -0
  275. package/src/components/Chains/VirtualizedChainList.tsx +84 -0
  276. package/src/components/Expansion/Expansion.tsx +62 -0
  277. package/src/components/Expansion/ExpansionTransition.tsx +76 -0
  278. package/src/components/Header/Header.style.ts +0 -1
  279. package/src/components/Header/Header.tsx +1 -1
  280. package/src/components/Header/NavigationHeader.tsx +2 -2
  281. package/src/components/Header/SettingsButton.style.tsx +1 -1
  282. package/src/components/ListItem/ListItem.tsx +1 -1
  283. package/src/components/ListItemButton.tsx +17 -1
  284. package/src/components/ListItemText.tsx +1 -1
  285. package/src/components/ProgressToNextUpdate.tsx +1 -1
  286. package/src/components/RouteCard/RouteCard.tsx +1 -1
  287. package/src/components/RouteCard/RouteNotFoundCard.tsx +1 -0
  288. package/src/components/RouteCard/getMatchingLabels.ts +11 -3
  289. package/src/components/Routes/Routes.tsx +1 -1
  290. package/src/components/Routes/RoutesContent.tsx +137 -0
  291. package/src/components/Routes/RoutesExpanded.style.ts +4 -18
  292. package/src/components/Routes/RoutesExpanded.tsx +33 -158
  293. package/src/components/Search/SearchInput.style.tsx +36 -3
  294. package/src/components/Search/SearchInput.tsx +31 -5
  295. package/src/components/Search/SearchNotFound.style.tsx +2 -1
  296. package/src/components/Select.tsx +1 -1
  297. package/src/components/SelectTokenButton/SelectTokenButton.style.tsx +1 -1
  298. package/src/components/SendToWallet/SendToWalletButton.tsx +2 -3
  299. package/src/components/Skeleton/WidgetSkeleton.style.tsx +0 -1
  300. package/src/components/Step/CircularProgress.style.tsx +1 -1
  301. package/src/components/StepActions/StepActions.style.tsx +1 -1
  302. package/src/components/TextFitter/TextFitter.tsx +1 -1
  303. package/src/components/Token/Token.style.tsx +1 -1
  304. package/src/components/Token/Token.tsx +2 -2
  305. package/src/components/TokenList/TokenDetailsSheet.tsx +1 -0
  306. package/src/components/TokenList/TokenDetailsSheetContent.style.tsx +1 -1
  307. package/src/components/TokenList/TokenDetailsSheetContent.tsx +1 -1
  308. package/src/components/TokenList/TokenList.style.tsx +11 -1
  309. package/src/components/TokenList/TokenList.tsx +6 -2
  310. package/src/components/TokenList/TokenListItem.tsx +53 -37
  311. package/src/components/TokenList/VirtualizedTokenList.tsx +17 -5
  312. package/src/components/TokenList/types.ts +3 -0
  313. package/src/components/TokenRate/TokenRate.style.ts +1 -1
  314. package/src/components/TokenRate/TokenRate.tsx +1 -1
  315. package/src/components/TransactionDetails.tsx +1 -1
  316. package/src/config/version.ts +1 -1
  317. package/src/hooks/timer/time.ts +1 -1
  318. package/src/hooks/timer/useTimer.ts +1 -1
  319. package/src/hooks/useAvailableChains.ts +8 -2
  320. package/src/hooks/useChains.ts +10 -4
  321. package/src/hooks/useExpansionRoutes.ts +29 -0
  322. package/src/hooks/useHasChainExpansion.ts +19 -0
  323. package/src/hooks/useIsBatchingSupported.ts +5 -2
  324. package/src/hooks/useListHeight.ts +1 -1
  325. package/src/hooks/useRouteExecution.ts +3 -3
  326. package/src/hooks/useRoutes.ts +8 -2
  327. package/src/hooks/useToAddressReset.ts +32 -21
  328. package/src/hooks/useTokenBalance.ts +1 -1
  329. package/src/hooks/useTokenBalances.ts +1 -0
  330. package/src/hooks/useTokenSearch.ts +23 -6
  331. package/src/hooks/useTokens.ts +16 -6
  332. package/src/hooks/useTools.ts +12 -4
  333. package/src/hooks/useTransactionDetails.ts +1 -1
  334. package/src/hooks/useWidgetEvents.ts +1 -0
  335. package/src/i18n/bn.json +2 -1
  336. package/src/i18n/de.json +2 -1
  337. package/src/i18n/en.json +2 -1
  338. package/src/i18n/es.json +2 -1
  339. package/src/i18n/fr.json +2 -1
  340. package/src/i18n/hi.json +1 -0
  341. package/src/i18n/id.json +2 -1
  342. package/src/i18n/it.json +2 -1
  343. package/src/i18n/ja.json +2 -1
  344. package/src/i18n/ko.json +2 -1
  345. package/src/i18n/pl.json +350 -0
  346. package/src/i18n/pt.json +2 -1
  347. package/src/i18n/th.json +2 -1
  348. package/src/i18n/tr.json +2 -1
  349. package/src/i18n/uk.json +14 -13
  350. package/src/i18n/vi.json +2 -1
  351. package/src/i18n/zh.json +2 -1
  352. package/src/index.ts +8 -8
  353. package/src/pages/RoutesPage/RoutesPage.tsx +1 -1
  354. package/src/pages/SelectChainPage/SelectChainPage.tsx +18 -71
  355. package/src/pages/SelectEnabledToolsPage.tsx +1 -1
  356. package/src/pages/SelectTokenPage/SearchTokenInput.tsx +2 -0
  357. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +44 -22
  358. package/src/pages/SendToWallet/BookmarksPage.tsx +1 -1
  359. package/src/pages/SendToWallet/SendToWalletPage.style.tsx +3 -3
  360. package/src/pages/SettingsPage/SettingsCard/SettingCard.style.tsx +1 -1
  361. package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +1 -1
  362. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +1 -1
  363. package/src/pages/TransactionHistoryPage/TransactionHistoryPage.tsx +12 -7
  364. package/src/pages/TransactionPage/RouteTracker.tsx +2 -2
  365. package/src/providers/I18nProvider/I18nProvider.tsx +10 -4
  366. package/src/providers/QueryClientProvider.tsx +1 -1
  367. package/src/providers/WalletProvider/SDKProviders.tsx +1 -1
  368. package/src/providers/WalletProvider/SuiBaseProvider.tsx +1 -1
  369. package/src/providers/WalletProvider/WalletProvider.tsx +1 -1
  370. package/src/providers/WalletProvider/useExternalWalletProvider.ts +1 -1
  371. package/src/stores/chains/ChainOrderStore.tsx +8 -3
  372. package/src/stores/form/FormStore.tsx +1 -1
  373. package/src/stores/form/FormUpdater.tsx +40 -6
  374. package/src/stores/form/URLSearchParamsBuilder.tsx +1 -1
  375. package/src/stores/form/useFormRef.ts +50 -54
  376. package/src/stores/routes/createRouteExecutionStore.ts +1 -1
  377. package/src/stores/settings/useSettingsStore.ts +1 -0
  378. package/src/types/widget.ts +29 -6
  379. package/src/utils/deepEqual.ts +2 -2
  380. package/src/utils/item.ts +46 -40
  381. package/src/utils/widgetSize.ts +17 -0
@@ -104,7 +104,7 @@ export const URLSearchParamsBuilder = () => {
104
104
  addRecentWallet,
105
105
  ])
106
106
 
107
- // biome-ignore lint/correctness/useExhaustiveDependencies:
107
+ // biome-ignore lint/correctness/useExhaustiveDependencies: run only when pathname changes
108
108
  useEffect(() => {
109
109
  // set the values on the querysting
110
110
  const url = new URL(window.location as any)
@@ -9,58 +9,54 @@ export const useFormRef = (formStore: FormStoreStore, formRef?: FormRef) => {
9
9
  const { setSendToWallet } = useSendToWalletActions()
10
10
  const { setSelectedBookmark } = useBookmarkActions()
11
11
 
12
- useImperativeHandle(
13
- formRef,
14
- () => {
15
- const sanitizeValue: {
16
- [key: string]: (value: any) => GenericFormValue
17
- } = {
18
- fromAmount: (value) =>
19
- (typeof value === 'number' ? value?.toPrecision() : value) ||
20
- formDefaultValues.fromAmount,
21
- toAmount: (value) =>
22
- (typeof value === 'number' ? value?.toPrecision() : value) ||
23
- formDefaultValues.toAmount,
24
- toAddress: (value) => {
25
- const isToAddressObj = typeof value !== 'string'
26
-
27
- const address =
28
- (isToAddressObj ? value?.address : value) ||
29
- formDefaultValues.toAddress
30
-
31
- // sets the send to wallet button state to be open
32
- // if there is an address to display
33
- if (address) {
34
- setSendToWallet(address)
35
- }
36
-
37
- // we can assume that the toAddress has been passed as ToAddress object
38
- // and display it accordingly - this ensures that if a name is included
39
- // that it is displayed in the Send To Wallet form field correctly
40
- if (isToAddressObj) {
41
- setSelectedBookmark(value)
42
- }
43
-
44
- return address
45
- },
46
- }
47
-
48
- return {
49
- setFieldValue: (fieldName, value, options) => {
50
- const sanitizedValue = (
51
- sanitizeValue[fieldName] ? sanitizeValue[fieldName](value) : value
52
- ) as GenericFormValue
53
-
54
- const fieldValueOptions = options?.setUrlSearchParam
55
- ? { isTouched: options?.setUrlSearchParam }
56
- : undefined
57
-
58
- formStore
59
- .getState()
60
- .setFieldValue(fieldName, sanitizedValue, fieldValueOptions)
61
- },
62
- }
63
- },
64
- [formStore, setSendToWallet, setSelectedBookmark]
65
- )
12
+ useImperativeHandle(formRef, () => {
13
+ const sanitizeValue: {
14
+ [key: string]: (value: any) => GenericFormValue
15
+ } = {
16
+ fromAmount: (value) =>
17
+ (typeof value === 'number' ? value?.toPrecision() : value) ||
18
+ formDefaultValues.fromAmount,
19
+ toAmount: (value) =>
20
+ (typeof value === 'number' ? value?.toPrecision() : value) ||
21
+ formDefaultValues.toAmount,
22
+ toAddress: (value) => {
23
+ const isToAddressObj = typeof value !== 'string'
24
+
25
+ const address =
26
+ (isToAddressObj ? value?.address : value) ||
27
+ formDefaultValues.toAddress
28
+
29
+ // sets the send to wallet button state to be open
30
+ // if there is an address to display
31
+ if (address) {
32
+ setSendToWallet(address)
33
+ }
34
+
35
+ // we can assume that the toAddress has been passed as ToAddress object
36
+ // and display it accordingly - this ensures that if a name is included
37
+ // that it is displayed in the Send To Wallet form field correctly
38
+ if (isToAddressObj) {
39
+ setSelectedBookmark(value)
40
+ }
41
+
42
+ return address
43
+ },
44
+ }
45
+
46
+ return {
47
+ setFieldValue: (fieldName, value, options) => {
48
+ const sanitizedValue = (
49
+ sanitizeValue[fieldName] ? sanitizeValue[fieldName](value) : value
50
+ ) as GenericFormValue
51
+
52
+ const fieldValueOptions = options?.setUrlSearchParam
53
+ ? { isTouched: options?.setUrlSearchParam }
54
+ : undefined
55
+
56
+ formStore
57
+ .getState()
58
+ .setFieldValue(fieldName, sanitizedValue, fieldValueOptions)
59
+ },
60
+ }
61
+ }, [formStore, setSendToWallet, setSelectedBookmark])
66
62
  }
@@ -140,7 +140,7 @@ export const createRouteExecutionStore = ({ namePrefix }: PersistStoreProps) =>
140
140
  } as RouteExecutionState
141
141
  try {
142
142
  // Remove failed transactions from history after 1 day
143
- const currentTime = new Date().getTime()
143
+ const currentTime = Date.now()
144
144
  const oneDay = 1000 * 60 * 60 * 24
145
145
  Object.values(state.routes).forEach((routeExecution) => {
146
146
  const startedAt =
@@ -1,3 +1,4 @@
1
+ /** biome-ignore-all lint/correctness/noUnusedVariables: allowed in this store */
1
2
  import type { StateCreator } from 'zustand'
2
3
  import { persist } from 'zustand/middleware'
3
4
  import { createWithEqualityFn } from 'zustand/traditional'
@@ -36,9 +36,13 @@ export type WidgetVariant = 'compact' | 'wide' | 'drawer'
36
36
  export type WidgetSubvariant = 'default' | 'split' | 'custom' | 'refuel'
37
37
  export type SplitSubvariant = 'bridge' | 'swap'
38
38
  export type CustomSubvariant = 'checkout' | 'deposit'
39
+ export type WideSubvariant = {
40
+ enableChainSidebar?: boolean
41
+ }
39
42
  export interface SubvariantOptions {
40
43
  split?: SplitSubvariant
41
44
  custom?: CustomSubvariant
45
+ wide?: WideSubvariant
42
46
  }
43
47
 
44
48
  export type Appearance = PaletteMode | 'system'
@@ -117,6 +121,7 @@ export type RequiredUIType = `${RequiredUI}`
117
121
 
118
122
  export type DefaultUI = {
119
123
  transactionDetailsExpanded?: boolean
124
+ navigationHeaderTitleNoWrap?: boolean
120
125
  }
121
126
 
122
127
  export interface WidgetWalletConfig {
@@ -209,19 +214,31 @@ export interface AllowDeny<T> {
209
214
  deny?: T[]
210
215
  }
211
216
 
217
+ export type AllowDenySetItem = string | number
218
+ export interface AllowDenySet {
219
+ allow?: Set<AllowDenySetItem>
220
+ deny?: Set<AllowDenySetItem>
221
+ }
222
+
223
+ export type AllowDenySets = {
224
+ from?: AllowDenySet
225
+ to?: AllowDenySet
226
+ } & AllowDenySet
227
+
228
+ export type AllowDenyItems<T> = {
229
+ from?: AllowDeny<T>
230
+ to?: AllowDeny<T>
231
+ } & AllowDeny<T>
232
+
212
233
  export type WidgetChains = {
213
- from?: AllowDeny<number>
214
- to?: AllowDeny<number>
215
234
  types?: AllowDeny<ChainType>
216
- } & AllowDeny<number>
235
+ } & AllowDenyItems<number>
217
236
 
218
237
  export type WidgetTokens = {
219
238
  featured?: StaticToken[]
220
239
  include?: Token[]
221
240
  popular?: StaticToken[]
222
- from?: AllowDeny<BaseToken>
223
- to?: AllowDeny<BaseToken>
224
- } & AllowDeny<BaseToken>
241
+ } & AllowDenyItems<BaseToken>
225
242
 
226
243
  export type WidgetLanguages = {
227
244
  default?: LanguageKey
@@ -364,3 +381,9 @@ export interface WidgetDrawerProps extends WidgetConfigPartialProps {
364
381
  */
365
382
  onClose?(): void
366
383
  }
384
+
385
+ export enum ExpansionType {
386
+ Routes = 'routes',
387
+ FromChain = 'fromChain',
388
+ ToChain = 'toChain',
389
+ }
@@ -40,7 +40,7 @@ export function deepEqual(a: any, b: any) {
40
40
  }
41
41
 
42
42
  for (i = length; i-- !== 0; ) {
43
- if (!Object.prototype.hasOwnProperty.call(b, keys[i]!)) {
43
+ if (!Object.hasOwn(b, keys[i]!)) {
44
44
  return false
45
45
  }
46
46
  }
@@ -57,6 +57,6 @@ export function deepEqual(a: any, b: any) {
57
57
  }
58
58
 
59
59
  // true if both NaN, false otherwise
60
- // biome-ignore lint/suspicious/noSelfCompare: <explanation>
60
+ // biome-ignore lint/suspicious/noSelfCompare: allowed in typescript
61
61
  return a !== a && b !== b
62
62
  }
package/src/utils/item.ts CHANGED
@@ -1,59 +1,65 @@
1
- import type { BaseToken } from '@lifi/sdk'
2
1
  import type { FormType } from '../stores/form/types.js'
3
- import type { AllowDeny, WidgetTokens } from '../types/widget.js'
4
-
5
- type IncludesFn<T> = (list: T[], item: T) => boolean
2
+ import type {
3
+ AllowDeny,
4
+ AllowDenyItems,
5
+ AllowDenySet,
6
+ AllowDenySetItem,
7
+ AllowDenySets,
8
+ } from '../types/widget.js'
6
9
 
10
+ // Use for a single item check
7
11
  export const isItemAllowed = <T>(
8
12
  item: T,
9
- items?: AllowDeny<T>,
10
- includes: IncludesFn<T> = (list, val) => list.includes(val)
13
+ items: AllowDeny<T> | undefined
11
14
  ): boolean => {
12
15
  if (items?.allow?.length) {
13
- return includes(items.allow, item)
16
+ return items.allow.includes(item)
14
17
  }
15
-
16
- return !includes(items?.deny ?? [], item)
18
+ return !items?.deny?.includes(item)
17
19
  }
18
20
 
19
- const tokenIncludes = (list: BaseToken[], item: BaseToken) =>
20
- list.some((t) => t.address === item.address && t.chainId === item.chainId)
21
-
22
- export const isTokenAllowed = (
23
- token: BaseToken,
24
- configTokens: WidgetTokens | undefined,
25
- formType: FormType | undefined
26
- ) => {
27
- return (
28
- isItemAllowed(token, configTokens, tokenIncludes) &&
29
- (formType
30
- ? isItemAllowed(token, configTokens?.[formType], tokenIncludes)
31
- : true)
32
- )
21
+ // Use for a O(1) set lookup of multiple items check
22
+ export const isItemAllowedForSets = <T>(
23
+ item: T,
24
+ items: AllowDenySet | undefined,
25
+ getKey?: (item: T) => AllowDenySetItem
26
+ ): boolean => {
27
+ if (items?.allow?.size) {
28
+ return items.allow.has(getKey?.(item) ?? (item as AllowDenySetItem))
29
+ }
30
+ return !items?.deny?.has(getKey?.(item) ?? (item as AllowDenySetItem))
33
31
  }
34
32
 
35
- export const filterConfigTokensByChain = (
36
- configTokens: WidgetTokens | undefined,
37
- formType: FormType | undefined,
38
- chainId: number
39
- ) => {
40
- if (!configTokens) {
41
- return configTokens
33
+ export const getConfigItemSets = <T>(
34
+ items: AllowDenyItems<T> | undefined,
35
+ getSet: (items: T[]) => Set<AllowDenySetItem>,
36
+ formType?: FormType
37
+ ): AllowDenySets | undefined => {
38
+ if (!items) {
39
+ return undefined
42
40
  }
43
-
44
41
  return {
45
- ...configTokens,
46
- allow: configTokens.allow?.filter((t) => t.chainId === chainId) ?? [],
47
- deny: configTokens.deny?.filter((t) => t.chainId === chainId) ?? [],
42
+ allow: getSet(items.allow ?? []),
43
+ deny: getSet(items.deny ?? []),
48
44
  ...(formType && {
49
45
  [formType]: {
50
- allow:
51
- configTokens[formType]?.allow?.filter((t) => t.chainId === chainId) ??
52
- [],
53
- deny:
54
- configTokens[formType]?.deny?.filter((t) => t.chainId === chainId) ??
55
- [],
46
+ allow: getSet(items[formType]?.allow ?? []),
47
+ deny: getSet(items[formType]?.deny ?? []),
56
48
  },
57
49
  }),
58
50
  }
59
51
  }
52
+
53
+ export const isFormItemAllowed = <T>(
54
+ item: T,
55
+ configTokens: AllowDenySets | undefined,
56
+ formType?: FormType,
57
+ getKey?: (item: T) => AllowDenySetItem
58
+ ) => {
59
+ return (
60
+ isItemAllowedForSets(item, configTokens, getKey) &&
61
+ (formType
62
+ ? isItemAllowedForSets(item, configTokens?.[formType], getKey)
63
+ : true)
64
+ )
65
+ }
@@ -0,0 +1,17 @@
1
+ import type { Theme } from '@mui/material'
2
+ import { defaultMaxHeight } from '../config/constants'
3
+ import type { WidgetTheme } from '../types/widget'
4
+
5
+ export const getWidgetMaxHeight = (
6
+ theme: Theme | WidgetTheme | undefined
7
+ ): number | string => {
8
+ if (theme?.container?.maxHeight) {
9
+ return theme?.container?.maxHeight
10
+ }
11
+
12
+ if (theme?.container?.height && theme?.container?.height !== 'fit-content') {
13
+ return theme?.container?.height
14
+ }
15
+
16
+ return defaultMaxHeight
17
+ }