@lifi/widget 4.0.0-beta.14 → 4.0.0-beta.18

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 (294) hide show
  1. package/dist/esm/AppDefault.js +31 -29
  2. package/dist/esm/AppDefault.js.map +1 -1
  3. package/dist/esm/AppLayout.js +2 -2
  4. package/dist/esm/AppLayout.js.map +1 -1
  5. package/dist/esm/components/AmountInput/AmountInput.js +2 -2
  6. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  7. package/dist/esm/components/AmountInput/AmountInputStartAdornment.js.map +1 -1
  8. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  9. package/dist/esm/components/AppContainer.js +3 -3
  10. package/dist/esm/components/AppContainer.js.map +1 -1
  11. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  12. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  13. package/dist/esm/components/Chains/AllChainsAvatar.js +7 -1
  14. package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -1
  15. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
  16. package/dist/esm/components/ContractComponent/ItemPrice.js +1 -1
  17. package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -1
  18. package/dist/esm/components/ContractComponent/NFT/NFTBase.js +1 -1
  19. package/dist/esm/components/ContractComponent/NFT/NFTBase.js.map +1 -1
  20. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  21. package/dist/esm/components/Expansion/Expansion.js +4 -4
  22. package/dist/esm/components/Expansion/Expansion.js.map +1 -1
  23. package/dist/esm/components/Header/ActivitiesButton.js +1 -1
  24. package/dist/esm/components/Header/ActivitiesButton.js.map +1 -1
  25. package/dist/esm/components/Header/Header.js +2 -2
  26. package/dist/esm/components/Header/Header.js.map +1 -1
  27. package/dist/esm/components/Header/NavigationHeader.js +3 -3
  28. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  29. package/dist/esm/components/Header/WalletHeader.js +3 -3
  30. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  31. package/dist/esm/components/IconCircle/IconCircle.js.map +1 -1
  32. package/dist/esm/components/IconTypography.js.map +1 -1
  33. package/dist/esm/components/Messages/AlertMessage.js +1 -1
  34. package/dist/esm/components/Messages/AlertMessage.js.map +1 -1
  35. package/dist/esm/components/PageEntered.js +2 -2
  36. package/dist/esm/components/PageEntered.js.map +1 -1
  37. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  38. package/dist/esm/components/RouteCard/RouteCard.js +2 -2
  39. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  40. package/dist/esm/components/RouteCard/RouteCardEssentials.js +10 -4
  41. package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
  42. package/dist/esm/components/RouteCard/RouteToken.js +2 -2
  43. package/dist/esm/components/RouteCard/RouteToken.js.map +1 -1
  44. package/dist/esm/components/Routes/RoutesExpanded.js +3 -3
  45. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  46. package/dist/esm/components/SelectChainAndToken.js +8 -5
  47. package/dist/esm/components/SelectChainAndToken.js.map +1 -1
  48. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +1 -2
  49. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -1
  50. package/dist/esm/components/SendToWallet/SendToWalletButton.js +4 -4
  51. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  52. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +3 -3
  53. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  54. package/dist/esm/components/Skeleton/WidgetSkeleton.js.map +1 -1
  55. package/dist/esm/components/Step/Step.js +20 -9
  56. package/dist/esm/components/Step/Step.js.map +1 -1
  57. package/dist/esm/components/Step/StepActions.js +2 -2
  58. package/dist/esm/components/Step/StepActions.js.map +1 -1
  59. package/dist/esm/components/StepActions/StepActions.js +2 -2
  60. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  61. package/dist/esm/components/Tabs/Tabs.style.js.map +1 -1
  62. package/dist/esm/components/Timer/StepTimer.js.map +1 -1
  63. package/dist/esm/components/Timer/TimerContent.js +1 -0
  64. package/dist/esm/components/Timer/TimerContent.js.map +1 -1
  65. package/dist/esm/components/Token/Token.js +2 -2
  66. package/dist/esm/components/Token/Token.js.map +1 -1
  67. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +6 -4
  68. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  69. package/dist/esm/components/TokenList/TokenList.js +2 -2
  70. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  71. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  72. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  73. package/dist/esm/components/TokenList/useTokenSelect.js +2 -2
  74. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  75. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js +2 -3
  76. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js.map +1 -1
  77. package/dist/esm/components/TransactionDetails.js +5 -2
  78. package/dist/esm/components/TransactionDetails.js.map +1 -1
  79. package/dist/esm/config/version.d.ts +1 -1
  80. package/dist/esm/config/version.js +1 -1
  81. package/dist/esm/config/version.js.map +1 -1
  82. package/dist/esm/hooks/timer/time.js.map +1 -1
  83. package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -1
  84. package/dist/esm/hooks/useActionMessage.js +2 -2
  85. package/dist/esm/hooks/useActionMessage.js.map +1 -1
  86. package/dist/esm/hooks/useAddressActivity.js.map +1 -1
  87. package/dist/esm/hooks/useAddressValidation.js +3 -8
  88. package/dist/esm/hooks/useAddressValidation.js.map +1 -1
  89. package/dist/esm/hooks/useAvailableChains.js +2 -1
  90. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  91. package/dist/esm/hooks/useChain.js.map +1 -1
  92. package/dist/esm/hooks/useChains.js.map +1 -1
  93. package/dist/esm/hooks/useContactSupport.js +3 -3
  94. package/dist/esm/hooks/useContactSupport.js.map +1 -1
  95. package/dist/esm/hooks/useDebouncedWatch.js.map +1 -1
  96. package/dist/esm/hooks/useExplorer.js +15 -4
  97. package/dist/esm/hooks/useExplorer.js.map +1 -1
  98. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -1
  99. package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -1
  100. package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
  101. package/dist/esm/hooks/useGasRecommendation.js +2 -2
  102. package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
  103. package/dist/esm/hooks/useGasRefuel.js +2 -2
  104. package/dist/esm/hooks/useGasRefuel.js.map +1 -1
  105. package/dist/esm/hooks/useGasSufficiency.js +2 -2
  106. package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
  107. package/dist/esm/hooks/useHasChainExpansion.js +3 -3
  108. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -1
  109. package/dist/esm/hooks/useIsContractAddress.js.map +1 -1
  110. package/dist/esm/hooks/useListHeight.js +2 -2
  111. package/dist/esm/hooks/useListHeight.js.map +1 -1
  112. package/dist/esm/hooks/useLongPress.js.map +1 -1
  113. package/dist/esm/hooks/useNavigateBack.js.map +1 -1
  114. package/dist/esm/hooks/useRouteExecution.js +5 -7
  115. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  116. package/dist/esm/hooks/useRoutes.js +4 -4
  117. package/dist/esm/hooks/useRoutes.js.map +1 -1
  118. package/dist/esm/hooks/useScrollableContainer.js.map +1 -1
  119. package/dist/esm/hooks/useSwapOnly.js.map +1 -1
  120. package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -1
  121. package/dist/esm/hooks/useToAddressRequirements.js +2 -2
  122. package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
  123. package/dist/esm/hooks/useToAddressReset.js +2 -2
  124. package/dist/esm/hooks/useToAddressReset.js.map +1 -1
  125. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  126. package/dist/esm/hooks/useTokenBalances.js +2 -2
  127. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  128. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -1
  129. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  130. package/dist/esm/hooks/useTokens.js +4 -2
  131. package/dist/esm/hooks/useTokens.js.map +1 -1
  132. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  133. package/dist/esm/hooks/useTransactionHistory.js.map +1 -1
  134. package/dist/esm/hooks/useTransactionList.js +2 -3
  135. package/dist/esm/hooks/useTransactionList.js.map +1 -1
  136. package/dist/esm/hooks/useWidgetEvents.js.map +1 -1
  137. package/dist/esm/i18n/bn.json +3 -0
  138. package/dist/esm/i18n/de.json +3 -0
  139. package/dist/esm/i18n/en.json +3 -0
  140. package/dist/esm/i18n/es.json +3 -0
  141. package/dist/esm/i18n/fr.json +3 -0
  142. package/dist/esm/i18n/hi.json +3 -0
  143. package/dist/esm/i18n/id.json +3 -0
  144. package/dist/esm/i18n/it.json +3 -0
  145. package/dist/esm/i18n/ja.json +3 -0
  146. package/dist/esm/i18n/ko.json +3 -0
  147. package/dist/esm/i18n/pl.json +3 -0
  148. package/dist/esm/i18n/pt.json +3 -0
  149. package/dist/esm/i18n/th.json +3 -0
  150. package/dist/esm/i18n/tr.json +3 -0
  151. package/dist/esm/i18n/uk.json +3 -0
  152. package/dist/esm/i18n/vi.json +3 -0
  153. package/dist/esm/i18n/zh.json +3 -0
  154. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js +1 -2
  155. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js.map +1 -1
  156. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js +1 -1
  157. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js.map +1 -1
  158. package/dist/esm/pages/MainPage/MainPage.js +6 -6
  159. package/dist/esm/pages/MainPage/MainPage.js.map +1 -1
  160. package/dist/esm/pages/MainPage/ReviewButton.js +2 -2
  161. package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
  162. package/dist/esm/pages/RoutesPage/RoutesPage.js +3 -3
  163. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  164. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  165. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  166. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +3 -3
  167. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  168. package/dist/esm/pages/SendToWallet/BookmarksPage.js +1 -1
  169. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  170. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +1 -1
  171. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
  172. package/dist/esm/pages/SendToWallet/SendToWalletPage.js +6 -6
  173. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  174. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +2 -2
  175. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  176. package/dist/esm/pages/SettingsPage/LanguageSetting.js +2 -2
  177. package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -1
  178. package/dist/esm/pages/SettingsPage/SettingsPage.js +2 -2
  179. package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -1
  180. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -1
  181. package/dist/esm/pages/SettingsPage/ThemeSettings.js +2 -2
  182. package/dist/esm/pages/SettingsPage/ThemeSettings.js.map +1 -1
  183. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js.map +1 -1
  184. package/dist/esm/pages/TransactionDetailsPage/StepActionRow.js +2 -2
  185. package/dist/esm/pages/TransactionDetailsPage/StepActionRow.js.map +1 -1
  186. package/dist/esm/pages/TransactionDetailsPage/StepActionsList.js +11 -5
  187. package/dist/esm/pages/TransactionDetailsPage/StepActionsList.js.map +1 -1
  188. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  189. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js +2 -2
  190. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js.map +1 -1
  191. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js +2 -2
  192. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js.map +1 -1
  193. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +1 -1
  194. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
  195. package/dist/esm/pages/TransactionPage/StartTransactionButton.js.map +1 -1
  196. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +20 -21
  197. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  198. package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js +5 -6
  199. package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js.map +1 -1
  200. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +14 -4
  201. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  202. package/dist/esm/pages/TransactionPage/TransactionPage.js +15 -19
  203. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  204. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  205. package/dist/esm/providers/I18nProvider/i18n.js.map +1 -1
  206. package/dist/esm/providers/QueryClientProvider.js.map +1 -1
  207. package/dist/esm/providers/ThemeProvider/ThemeProvider.js.map +1 -1
  208. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  209. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +7 -3
  210. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
  211. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  212. package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -1
  213. package/dist/esm/stores/chains/ChainOrderStore.js +2 -2
  214. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  215. package/dist/esm/stores/chains/createChainOrderStore.js +2 -2
  216. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  217. package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
  218. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  219. package/dist/esm/stores/form/createFormStore.js.map +1 -1
  220. package/dist/esm/stores/form/useFieldActions.js +3 -3
  221. package/dist/esm/stores/form/useFieldActions.js.map +1 -1
  222. package/dist/esm/stores/form/useFieldValues.js.map +1 -1
  223. package/dist/esm/stores/form/useFormRef.js +2 -2
  224. package/dist/esm/stores/form/useFormRef.js.map +1 -1
  225. package/dist/esm/stores/form/useTouchedFields.js.map +1 -1
  226. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  227. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  228. package/dist/esm/stores/routes/createRouteExecutionStore.js +8 -9
  229. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  230. package/dist/esm/stores/routes/useRouteExecutionIndicator.js +2 -3
  231. package/dist/esm/stores/routes/useRouteExecutionIndicator.js.map +1 -1
  232. package/dist/esm/stores/routes/utils.js.map +1 -1
  233. package/dist/esm/stores/settings/SettingsStore.js.map +1 -1
  234. package/dist/esm/stores/settings/createSettingsStore.js +1 -5
  235. package/dist/esm/stores/settings/createSettingsStore.js.map +1 -1
  236. package/dist/esm/stores/settings/useSettingsActions.js +2 -2
  237. package/dist/esm/stores/settings/useSettingsActions.js.map +1 -1
  238. package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
  239. package/dist/esm/themes/createTheme.js +4 -4
  240. package/dist/esm/themes/createTheme.js.map +1 -1
  241. package/dist/esm/types/events.d.ts +0 -5
  242. package/dist/esm/types/events.d.ts.map +1 -1
  243. package/dist/esm/types/events.js +0 -4
  244. package/dist/esm/types/events.js.map +1 -1
  245. package/dist/esm/types/widget.d.ts +1 -5
  246. package/dist/esm/types/widget.d.ts.map +1 -1
  247. package/dist/esm/types/widget.js.map +1 -1
  248. package/dist/esm/utils/converters.js.map +1 -1
  249. package/dist/esm/utils/elements.js +5 -12
  250. package/dist/esm/utils/elements.js.map +1 -1
  251. package/dist/esm/utils/format.js.map +1 -1
  252. package/dist/esm/utils/timer.js.map +1 -1
  253. package/dist/esm/utils/token.js.map +1 -1
  254. package/package.json +11 -11
  255. package/src/AppDefault.tsx +9 -11
  256. package/src/components/Chains/AllChainsAvatar.tsx +7 -1
  257. package/src/components/ContractComponent/ItemPrice.tsx +1 -1
  258. package/src/components/ContractComponent/NFT/NFTBase.tsx +1 -1
  259. package/src/components/Header/ActivitiesButton.tsx +1 -1
  260. package/src/components/IconTypography.ts +8 -8
  261. package/src/components/Messages/AlertMessage.tsx +1 -1
  262. package/src/components/RouteCard/RouteCardEssentials.tsx +2 -2
  263. package/src/components/SelectChainAndToken.tsx +1 -1
  264. package/src/components/SendToWallet/SendToWalletButton.tsx +1 -1
  265. package/src/components/Step/Step.tsx +6 -7
  266. package/src/components/Timer/TimerContent.tsx +1 -0
  267. package/src/components/Token/Token.tsx +2 -2
  268. package/src/components/TokenList/TokenDetailsSheetContent.tsx +6 -4
  269. package/src/components/TransactionCard/ActiveTransactionCard.tsx +1 -1
  270. package/src/components/TransactionDetails.tsx +1 -1
  271. package/src/config/version.ts +1 -1
  272. package/src/hooks/useActionMessage.ts +4 -3
  273. package/src/hooks/useAvailableChains.ts +1 -0
  274. package/src/hooks/useExplorer.ts +16 -5
  275. package/src/hooks/useRouteExecution.ts +0 -2
  276. package/src/hooks/useTokens.ts +2 -0
  277. package/src/pages/ActivitiesPage/ActivitiesPageMenuButton.tsx +1 -1
  278. package/src/pages/MainPage/MainPage.tsx +3 -3
  279. package/src/pages/RoutesPage/RoutesPage.tsx +6 -1
  280. package/src/pages/SendToWallet/BookmarksPage.tsx +1 -1
  281. package/src/pages/SendToWallet/RecentWalletsPage.tsx +1 -1
  282. package/src/pages/TransactionDetailsPage/StepActionRow.tsx +3 -2
  283. package/src/pages/TransactionDetailsPage/StepActionsList.tsx +19 -12
  284. package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +1 -1
  285. package/src/pages/TransactionPage/StatusBottomSheet.tsx +1 -1
  286. package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +27 -5
  287. package/src/pages/TransactionPage/TransactionPage.tsx +2 -9
  288. package/src/providers/WalletProvider/useExternalWalletProvider.ts +9 -1
  289. package/src/stores/settings/createSettingsStore.ts +1 -9
  290. package/src/themes/createTheme.ts +4 -6
  291. package/src/types/events.ts +0 -5
  292. package/src/types/widget.ts +1 -4
  293. package/dist/esm/stores/routes/types.js +0 -14
  294. package/dist/esm/stores/routes/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createRouteExecutionStore.js","names":[],"sources":["../../../../src/stores/routes/createRouteExecutionStore.ts"],"sourcesContent":["import type { Route, RouteExtended } from '@lifi/sdk'\nimport type { StoreApi, UseBoundStore } from 'zustand'\nimport { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\nimport { hasEnumFlag } from '../../utils/enum.js'\nimport type { PersistStoreProps } from '../types.js'\nimport type { RouteExecution, RouteExecutionState } from './types.js'\nimport { RouteExecutionStatus } from './types.js'\nimport {\n isRouteDone,\n isRouteFailed,\n isRoutePartiallyDone,\n isRouteRefunded,\n} from './utils.js'\n\nexport const createRouteExecutionStore = ({\n namePrefix,\n}: PersistStoreProps): UseBoundStore<StoreApi<RouteExecutionState>> =>\n create<RouteExecutionState>()(\n persist(\n (set, get) => ({\n routes: {},\n setExecutableRoute: (route: Route, observableRouteIds?: string[]) => {\n if (!get().routes[route.id]) {\n set((state: RouteExecutionState) => {\n const routes = { ...state.routes }\n // clean previous idle routes\n Object.keys(routes)\n .filter(\n (routeId) =>\n !observableRouteIds?.includes(routeId) &&\n hasEnumFlag(\n routes[routeId]!.status,\n RouteExecutionStatus.Idle\n )\n )\n .forEach((routeId) => {\n delete routes[routeId]\n })\n routes[route.id] = {\n route,\n status: RouteExecutionStatus.Idle,\n }\n return {\n routes,\n }\n })\n }\n },\n updateRoute: (route: RouteExtended) => {\n if (get().routes[route.id]) {\n set((state: RouteExecutionState) => {\n const updatedState = {\n routes: {\n ...state.routes,\n [route.id]: { ...state.routes[route.id]!, route },\n },\n }\n const isFailed = isRouteFailed(route)\n if (isFailed) {\n updatedState.routes[route.id]!.status =\n RouteExecutionStatus.Failed\n return updatedState\n }\n const isDone = isRouteDone(route)\n if (isDone) {\n updatedState.routes[route.id]!.status =\n RouteExecutionStatus.Done\n if (isRoutePartiallyDone(route)) {\n updatedState.routes[route.id]!.status |=\n RouteExecutionStatus.Partial\n } else if (isRouteRefunded(route)) {\n updatedState.routes[route.id]!.status |=\n RouteExecutionStatus.Refunded\n }\n return updatedState\n }\n const isLoading = route.steps.some((step) => step.execution)\n if (isLoading) {\n updatedState.routes[route.id]!.status =\n RouteExecutionStatus.Pending\n }\n return updatedState\n })\n }\n },\n deleteRoutes: (type, accountAddresses) =>\n set((state: RouteExecutionState) => {\n const routes = { ...state.routes }\n Object.keys(routes)\n .filter((routeId) => {\n const route = routes[routeId]\n if (\n accountAddresses &&\n !accountAddresses.includes(route?.route.fromAddress ?? '')\n ) {\n return false\n }\n return type === 'completed'\n ? hasEnumFlag(route?.status ?? 0, RouteExecutionStatus.Done)\n : type === 'failed'\n ? hasEnumFlag(\n route?.status ?? 0,\n RouteExecutionStatus.Failed\n )\n : !hasEnumFlag(\n route?.status ?? 0,\n RouteExecutionStatus.Done\n )\n })\n .forEach((routeId) => {\n delete routes[routeId]\n })\n return {\n routes,\n }\n }),\n deleteRoute: (routeId: string) => {\n if (get().routes[routeId]) {\n set((state: RouteExecutionState) => {\n const routes = { ...state.routes }\n delete routes[routeId]\n return {\n routes,\n }\n })\n }\n },\n }),\n {\n name: `${namePrefix || 'li.fi'}-widget-routes`,\n // Bump version on breaking changes to the stored structure.\n version: 4,\n // Clear stored routes on any version mismatch to avoid errors from incompatible data shapes.\n migrate: () => ({ routes: {} }),\n partialize: (state) => ({ routes: state.routes }),\n merge: (persistedState: any, currentState: RouteExecutionState) => {\n const state = {\n ...currentState,\n ...persistedState,\n } as RouteExecutionState\n try {\n // Keep only the most recent 100 routes, evicting the oldest when the\n // limit is exceeded.\n const maxStoredRoutes = 100\n const allRoutes = Object.values(state.routes) as RouteExecution[]\n const storedRoutes = allRoutes\n .sort(\n (a, b) =>\n (b.route.steps[0]?.execution?.startedAt ?? 0) -\n (a.route.steps[0]?.execution?.startedAt ?? 0)\n )\n .slice(0, maxStoredRoutes)\n const keepIds = new Set(storedRoutes.map((r) => r.route.id))\n for (const id of Object.keys(state.routes)) {\n if (!keepIds.has(id)) {\n delete state.routes[id]\n }\n }\n } catch (error) {\n console.error(error)\n }\n return state\n },\n }\n )\n )\n"],"mappings":"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"}
1
+ {"version":3,"file":"createRouteExecutionStore.js","names":[],"sources":["../../../../src/stores/routes/createRouteExecutionStore.ts"],"sourcesContent":["import type { Route, RouteExtended } from '@lifi/sdk'\nimport type { StoreApi, UseBoundStore } from 'zustand'\nimport { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\nimport { hasEnumFlag } from '../../utils/enum.js'\nimport type { PersistStoreProps } from '../types.js'\nimport type { RouteExecution, RouteExecutionState } from './types.js'\nimport { RouteExecutionStatus } from './types.js'\nimport {\n isRouteDone,\n isRouteFailed,\n isRoutePartiallyDone,\n isRouteRefunded,\n} from './utils.js'\n\nexport const createRouteExecutionStore = ({\n namePrefix,\n}: PersistStoreProps): UseBoundStore<StoreApi<RouteExecutionState>> =>\n create<RouteExecutionState>()(\n persist(\n (set, get) => ({\n routes: {},\n setExecutableRoute: (route: Route, observableRouteIds?: string[]) => {\n if (!get().routes[route.id]) {\n set((state: RouteExecutionState) => {\n const routes = { ...state.routes }\n // clean previous idle routes\n Object.keys(routes)\n .filter(\n (routeId) =>\n !observableRouteIds?.includes(routeId) &&\n hasEnumFlag(\n routes[routeId]!.status,\n RouteExecutionStatus.Idle\n )\n )\n .forEach((routeId) => {\n delete routes[routeId]\n })\n routes[route.id] = {\n route,\n status: RouteExecutionStatus.Idle,\n }\n return {\n routes,\n }\n })\n }\n },\n updateRoute: (route: RouteExtended) => {\n if (get().routes[route.id]) {\n set((state: RouteExecutionState) => {\n const updatedState = {\n routes: {\n ...state.routes,\n [route.id]: { ...state.routes[route.id]!, route },\n },\n }\n const isFailed = isRouteFailed(route)\n if (isFailed) {\n updatedState.routes[route.id]!.status =\n RouteExecutionStatus.Failed\n return updatedState\n }\n const isDone = isRouteDone(route)\n if (isDone) {\n updatedState.routes[route.id]!.status =\n RouteExecutionStatus.Done\n if (isRoutePartiallyDone(route)) {\n updatedState.routes[route.id]!.status |=\n RouteExecutionStatus.Partial\n } else if (isRouteRefunded(route)) {\n updatedState.routes[route.id]!.status |=\n RouteExecutionStatus.Refunded\n }\n return updatedState\n }\n const isLoading = route.steps.some((step) => step.execution)\n if (isLoading) {\n updatedState.routes[route.id]!.status =\n RouteExecutionStatus.Pending\n }\n return updatedState\n })\n }\n },\n deleteRoutes: (type, accountAddresses) =>\n set((state: RouteExecutionState) => {\n const routes = { ...state.routes }\n Object.keys(routes)\n .filter((routeId) => {\n const route = routes[routeId]\n if (\n accountAddresses &&\n !accountAddresses.includes(route?.route.fromAddress ?? '')\n ) {\n return false\n }\n return type === 'completed'\n ? hasEnumFlag(route?.status ?? 0, RouteExecutionStatus.Done)\n : type === 'failed'\n ? hasEnumFlag(\n route?.status ?? 0,\n RouteExecutionStatus.Failed\n )\n : !hasEnumFlag(\n route?.status ?? 0,\n RouteExecutionStatus.Done\n )\n })\n .forEach((routeId) => {\n delete routes[routeId]\n })\n return {\n routes,\n }\n }),\n deleteRoute: (routeId: string) => {\n if (get().routes[routeId]) {\n set((state: RouteExecutionState) => {\n const routes = { ...state.routes }\n delete routes[routeId]\n return {\n routes,\n }\n })\n }\n },\n }),\n {\n name: `${namePrefix || 'li.fi'}-widget-routes`,\n // Bump version on breaking changes to the stored structure.\n version: 4,\n // Clear stored routes on any version mismatch to avoid errors from incompatible data shapes.\n migrate: () => ({ routes: {} }),\n partialize: (state) => ({ routes: state.routes }),\n merge: (persistedState: any, currentState: RouteExecutionState) => {\n const state = {\n ...currentState,\n ...persistedState,\n } as RouteExecutionState\n try {\n // Keep only the most recent 100 routes, evicting the oldest when the\n // limit is exceeded.\n const maxStoredRoutes = 100\n const allRoutes = Object.values(state.routes) as RouteExecution[]\n const storedRoutes = allRoutes\n .sort(\n (a, b) =>\n (b.route.steps[0]?.execution?.startedAt ?? 0) -\n (a.route.steps[0]?.execution?.startedAt ?? 0)\n )\n .slice(0, maxStoredRoutes)\n const keepIds = new Set(storedRoutes.map((r) => r.route.id))\n for (const id of Object.keys(state.routes)) {\n if (!keepIds.has(id)) {\n delete state.routes[id]\n }\n }\n } catch (error) {\n console.error(error)\n }\n return state\n },\n }\n )\n )\n"],"mappings":";;;;;AAeA,MAAa,6BAA6B,EACxC,iBAEA,QAA6B,CAC3B,SACG,KAAK,SAAS;CACb,QAAQ,EAAE;CACV,qBAAqB,OAAc,uBAAkC;AACnE,MAAI,CAAC,KAAK,CAAC,OAAO,MAAM,IACtB,MAAK,UAA+B;GAClC,MAAM,SAAS,EAAE,GAAG,MAAM,QAAQ;AAElC,UAAO,KAAK,OAAO,CAChB,QACE,YACC,CAAC,oBAAoB,SAAS,QAAQ,IACtC,YACE,OAAO,SAAU,QAAA,EAElB,CACJ,CACA,SAAS,YAAY;AACpB,WAAO,OAAO;KACd;AACJ,UAAO,MAAM,MAAM;IACjB;IACA,QAAA;IACD;AACD,UAAO,EACL,QACD;IACD;;CAGN,cAAc,UAAyB;AACrC,MAAI,KAAK,CAAC,OAAO,MAAM,IACrB,MAAK,UAA+B;GAClC,MAAM,eAAe,EACnB,QAAQ;IACN,GAAG,MAAM;KACR,MAAM,KAAK;KAAE,GAAG,MAAM,OAAO,MAAM;KAAM;KAAO;IAClD,EACF;AAED,OADiB,cAAc,MACnB,EAAE;AACZ,iBAAa,OAAO,MAAM,IAAK,SAAA;AAE/B,WAAO;;AAGT,OADe,YAAY,MACjB,EAAE;AACV,iBAAa,OAAO,MAAM,IAAK,SAAA;AAE/B,QAAI,qBAAqB,MAAM,CAC7B,cAAa,OAAO,MAAM,IAAK,UAAA;aAEtB,gBAAgB,MAAM,CAC/B,cAAa,OAAO,MAAM,IAAK,UAAA;AAGjC,WAAO;;AAGT,OADkB,MAAM,MAAM,MAAM,SAAS,KAAK,UACrC,CACX,cAAa,OAAO,MAAM,IAAK,SAAA;AAGjC,UAAO;IACP;;CAGN,eAAe,MAAM,qBACnB,KAAK,UAA+B;EAClC,MAAM,SAAS,EAAE,GAAG,MAAM,QAAQ;AAClC,SAAO,KAAK,OAAO,CAChB,QAAQ,YAAY;GACnB,MAAM,QAAQ,OAAO;AACrB,OACE,oBACA,CAAC,iBAAiB,SAAS,OAAO,MAAM,eAAe,GAAG,CAE1D,QAAO;AAET,UAAO,SAAS,cACZ,YAAY,OAAO,UAAU,GAAA,EAA6B,GAC1D,SAAS,WACP,YACE,OAAO,UAAU,GAAA,EAElB,GACD,CAAC,YACC,OAAO,UAAU,GAAA,EAElB;IACP,CACD,SAAS,YAAY;AACpB,UAAO,OAAO;IACd;AACJ,SAAO,EACL,QACD;GACD;CACJ,cAAc,YAAoB;AAChC,MAAI,KAAK,CAAC,OAAO,SACf,MAAK,UAA+B;GAClC,MAAM,SAAS,EAAE,GAAG,MAAM,QAAQ;AAClC,UAAO,OAAO;AACd,UAAO,EACL,QACD;IACD;;CAGP,GACD;CACE,MAAM,GAAG,cAAc,QAAQ;CAE/B,SAAS;CAET,gBAAgB,EAAE,QAAQ,EAAE,EAAE;CAC9B,aAAa,WAAW,EAAE,QAAQ,MAAM,QAAQ;CAChD,QAAQ,gBAAqB,iBAAsC;EACjE,MAAM,QAAQ;GACZ,GAAG;GACH,GAAG;GACJ;AACD,MAAI;GAKF,MAAM,eADY,OAAO,OAAO,MAAM,OACR,CAC3B,MACE,GAAG,OACD,EAAE,MAAM,MAAM,IAAI,WAAW,aAAa,MAC1C,EAAE,MAAM,MAAM,IAAI,WAAW,aAAa,GAC9C,CACA,MAAM,GAAG,IAAgB;GAC5B,MAAM,UAAU,IAAI,IAAI,aAAa,KAAK,MAAM,EAAE,MAAM,GAAG,CAAC;AAC5D,QAAK,MAAM,MAAM,OAAO,KAAK,MAAM,OAAO,CACxC,KAAI,CAAC,QAAQ,IAAI,GAAG,CAClB,QAAO,MAAM,OAAO;WAGjB,OAAO;AACd,WAAQ,MAAM,MAAM;;AAEtB,SAAO;;CAEV,CACF,CACF"}
@@ -1,4 +1,3 @@
1
- import { RouteExecutionStatus } from "./types.js";
2
1
  import { useRouteExecutionStore } from "./RouteExecutionStore.js";
3
2
  import { useCallback, useMemo } from "react";
4
3
  import { useAccount } from "@lifi/wallet-management";
@@ -13,8 +12,8 @@ const useRouteExecutionIndicator = () => {
13
12
  return useRouteExecutionStore(useCallback((state) => {
14
13
  const recentOwnedRoutes = Object.values(state.routes).filter((route) => accountAddresses.includes(route.route.fromAddress) && isRecentTransaction(route));
15
14
  return {
16
- failed: recentOwnedRoutes.some((r) => r.status === RouteExecutionStatus.Failed),
17
- active: recentOwnedRoutes.some((r) => r.status === RouteExecutionStatus.Pending)
15
+ failed: recentOwnedRoutes.some((r) => r.status === 8),
16
+ active: recentOwnedRoutes.some((r) => r.status === 2)
18
17
  };
19
18
  }, [accountAddresses]));
20
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useRouteExecutionIndicator.js","names":[],"sources":["../../../../src/stores/routes/useRouteExecutionIndicator.ts"],"sourcesContent":["import { useAccount } from '@lifi/wallet-management'\nimport { useCallback, useMemo } from 'react'\nimport { useRouteExecutionStore } from './RouteExecutionStore.js'\nimport type { RouteExecution, RouteExecutionState } from './types.js'\nimport { RouteExecutionStatus } from './types.js'\n\nexport type RouteExecutionIndicator = {\n failed: boolean\n active: boolean\n}\n\nconst isRecentTransaction = (route: RouteExecution): boolean => {\n const startedAt = route.route.steps[0]?.execution?.startedAt ?? 0\n return startedAt > 0 && Date.now() - startedAt < 1000 * 60 * 60 * 24 // 1 day\n}\n\nexport const useRouteExecutionIndicator = (): RouteExecutionIndicator => {\n const { accounts } = useAccount()\n const accountAddresses = useMemo(\n () => accounts.map((account) => account.address),\n [accounts]\n )\n const selector = useCallback(\n (state: RouteExecutionState): RouteExecutionIndicator => {\n const routes = Object.values(state.routes) as RouteExecution[]\n const recentOwnedRoutes = routes.filter(\n (route) =>\n accountAddresses.includes(route.route.fromAddress) &&\n isRecentTransaction(route)\n )\n return {\n failed: recentOwnedRoutes.some(\n (r) => r.status === RouteExecutionStatus.Failed\n ),\n active: recentOwnedRoutes.some(\n (r) => r.status === RouteExecutionStatus.Pending\n ),\n }\n },\n [accountAddresses]\n )\n return useRouteExecutionStore(selector)\n}\n"],"mappings":";;;;;AAWA,MAAM,uBAAuB,UAAmC;CAC9D,MAAM,YAAY,MAAM,MAAM,MAAM,IAAI,WAAW,aAAa;AAChE,QAAO,YAAY,KAAK,KAAK,KAAK,GAAG,YAAY,MAAO,KAAK,KAAK;;AAGpE,MAAa,mCAA4D;CACvE,MAAM,EAAE,aAAa,YAAY;CACjC,MAAM,mBAAmB,cACjB,SAAS,KAAK,YAAY,QAAQ,QAAQ,EAChD,CAAC,SAAS,CACX;AAoBD,QAAO,uBAnBU,aACd,UAAwD;EAEvD,MAAM,oBADS,OAAO,OAAO,MAAM,OAAO,CACT,QAC9B,UACC,iBAAiB,SAAS,MAAM,MAAM,YAAY,IAClD,oBAAoB,MAAM,CAC7B;AACD,SAAO;GACL,QAAQ,kBAAkB,MACvB,MAAM,EAAE,WAAW,qBAAqB,OAC1C;GACD,QAAQ,kBAAkB,MACvB,MAAM,EAAE,WAAW,qBAAqB,QAC1C;GACF;IAEH,CAAC,iBAAiB,CACnB,CACsC"}
1
+ {"version":3,"file":"useRouteExecutionIndicator.js","names":[],"sources":["../../../../src/stores/routes/useRouteExecutionIndicator.ts"],"sourcesContent":["import { useAccount } from '@lifi/wallet-management'\nimport { useCallback, useMemo } from 'react'\nimport { useRouteExecutionStore } from './RouteExecutionStore.js'\nimport type { RouteExecution, RouteExecutionState } from './types.js'\nimport { RouteExecutionStatus } from './types.js'\n\nexport type RouteExecutionIndicator = {\n failed: boolean\n active: boolean\n}\n\nconst isRecentTransaction = (route: RouteExecution): boolean => {\n const startedAt = route.route.steps[0]?.execution?.startedAt ?? 0\n return startedAt > 0 && Date.now() - startedAt < 1000 * 60 * 60 * 24 // 1 day\n}\n\nexport const useRouteExecutionIndicator = (): RouteExecutionIndicator => {\n const { accounts } = useAccount()\n const accountAddresses = useMemo(\n () => accounts.map((account) => account.address),\n [accounts]\n )\n const selector = useCallback(\n (state: RouteExecutionState): RouteExecutionIndicator => {\n const routes = Object.values(state.routes) as RouteExecution[]\n const recentOwnedRoutes = routes.filter(\n (route) =>\n accountAddresses.includes(route.route.fromAddress) &&\n isRecentTransaction(route)\n )\n return {\n failed: recentOwnedRoutes.some(\n (r) => r.status === RouteExecutionStatus.Failed\n ),\n active: recentOwnedRoutes.some(\n (r) => r.status === RouteExecutionStatus.Pending\n ),\n }\n },\n [accountAddresses]\n )\n return useRouteExecutionStore(selector)\n}\n"],"mappings":";;;;AAWA,MAAM,uBAAuB,UAAmC;CAC9D,MAAM,YAAY,MAAM,MAAM,MAAM,IAAI,WAAW,aAAa;AAChE,QAAO,YAAY,KAAK,KAAK,KAAK,GAAG,YAAY,MAAO,KAAK,KAAK;;AAGpE,MAAa,mCAA4D;CACvE,MAAM,EAAE,aAAa,YAAY;CACjC,MAAM,mBAAmB,cACjB,SAAS,KAAK,YAAY,QAAQ,QAAQ,EAChD,CAAC,SAAS,CACX;AAoBD,QAAO,uBAnBU,aACd,UAAwD;EAEvD,MAAM,oBADS,OAAO,OAAO,MAAM,OACH,CAAC,QAC9B,UACC,iBAAiB,SAAS,MAAM,MAAM,YAAY,IAClD,oBAAoB,MAAM,CAC7B;AACD,SAAO;GACL,QAAQ,kBAAkB,MACvB,MAAM,EAAE,WAAA,EACV;GACD,QAAQ,kBAAkB,MACvB,MAAM,EAAE,WAAA,EACV;GACF;IAEH,CAAC,iBAAiB,CAEkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":[],"sources":["../../../../src/stores/routes/utils.ts"],"sourcesContent":["import type { ExecutionAction, RouteExtended } from '@lifi/sdk'\nimport microdiff from 'microdiff'\n\nexport const isRouteDone = (route: RouteExtended): boolean => {\n return route.steps.every((step) => step.execution?.status === 'DONE')\n}\n\nexport const isRoutePartiallyDone = (route: RouteExtended): boolean => {\n return route.steps.some((step) =>\n step.execution?.actions?.some((action) => action.substatus === 'PARTIAL')\n )\n}\n\nexport const isRouteRefunded = (route: RouteExtended): boolean => {\n return route.steps.some((step) =>\n step.execution?.actions?.some((action) => action.substatus === 'REFUNDED')\n )\n}\n\nexport const isRouteFailed = (route: RouteExtended): boolean => {\n return route.steps.some((step) => step.execution?.status === 'FAILED')\n}\n\nexport const isRouteActive = (route?: RouteExtended): boolean => {\n if (!route) {\n return false\n }\n const isDone = isRouteDone(route)\n const isFailed = isRouteFailed(route)\n const alreadyStarted = route.steps.some((step) => step.execution)\n return !isDone && !isFailed && alreadyStarted\n}\n\nexport const getUpdatedAction = (\n currentRoute: RouteExtended,\n updatedRoute: RouteExtended\n): ExecutionAction | undefined => {\n const actionDiff = microdiff(currentRoute, updatedRoute).find((diff) =>\n diff.path.includes('actions')\n )\n if (!actionDiff) {\n return undefined\n }\n // Find action index in the diff array so we can slice the complete action object\n // e.g. ['steps', 0, 'execution', 'actions', 0, 'message']\n const actionDiffIndex = actionDiff.path.indexOf('actions') + 2\n const actionPathSlice = actionDiff.path.slice(0, actionDiffIndex)\n // Reduce updated route using the diff path to get updated process\n const action = actionPathSlice.reduce(\n (obj, path) => obj[path],\n updatedRoute as any\n ) as ExecutionAction\n return action\n}\n\nexport const getSourceTxHash = (route?: RouteExtended): string | undefined => {\n const sourceAction = route?.steps[0].execution?.actions\n ?.filter(\n (action) => !['RESET_ALLOWANCE', 'SET_ALLOWANCE'].includes(action.type)\n )\n .find((action) => action.txHash || action.taskId)\n return sourceAction?.txHash || sourceAction?.taskId\n}\n"],"mappings":";;AAGA,MAAa,eAAe,UAAkC;AAC5D,QAAO,MAAM,MAAM,OAAO,SAAS,KAAK,WAAW,WAAW,OAAO;;AAGvE,MAAa,wBAAwB,UAAkC;AACrE,QAAO,MAAM,MAAM,MAAM,SACvB,KAAK,WAAW,SAAS,MAAM,WAAW,OAAO,cAAc,UAAU,CAC1E;;AAGH,MAAa,mBAAmB,UAAkC;AAChE,QAAO,MAAM,MAAM,MAAM,SACvB,KAAK,WAAW,SAAS,MAAM,WAAW,OAAO,cAAc,WAAW,CAC3E;;AAGH,MAAa,iBAAiB,UAAkC;AAC9D,QAAO,MAAM,MAAM,MAAM,SAAS,KAAK,WAAW,WAAW,SAAS;;AAGxE,MAAa,iBAAiB,UAAmC;AAC/D,KAAI,CAAC,MACH,QAAO;CAET,MAAM,SAAS,YAAY,MAAM;CACjC,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,iBAAiB,MAAM,MAAM,MAAM,SAAS,KAAK,UAAU;AACjE,QAAO,CAAC,UAAU,CAAC,YAAY;;AAGjC,MAAa,oBACX,cACA,iBACgC;CAChC,MAAM,aAAa,UAAU,cAAc,aAAa,CAAC,MAAM,SAC7D,KAAK,KAAK,SAAS,UAAU,CAC9B;AACD,KAAI,CAAC,WACH;CAIF,MAAM,kBAAkB,WAAW,KAAK,QAAQ,UAAU,GAAG;AAO7D,QANwB,WAAW,KAAK,MAAM,GAAG,gBAAgB,CAElC,QAC5B,KAAK,SAAS,IAAI,OACnB,aACD;;AAIH,MAAa,mBAAmB,UAA8C;CAC5E,MAAM,eAAe,OAAO,MAAM,GAAG,WAAW,SAC5C,QACC,WAAW,CAAC,CAAC,mBAAmB,gBAAgB,CAAC,SAAS,OAAO,KAAK,CACxE,CACA,MAAM,WAAW,OAAO,UAAU,OAAO,OAAO;AACnD,QAAO,cAAc,UAAU,cAAc"}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../../src/stores/routes/utils.ts"],"sourcesContent":["import type { ExecutionAction, RouteExtended } from '@lifi/sdk'\nimport microdiff from 'microdiff'\n\nexport const isRouteDone = (route: RouteExtended): boolean => {\n return route.steps.every((step) => step.execution?.status === 'DONE')\n}\n\nexport const isRoutePartiallyDone = (route: RouteExtended): boolean => {\n return route.steps.some((step) =>\n step.execution?.actions?.some((action) => action.substatus === 'PARTIAL')\n )\n}\n\nexport const isRouteRefunded = (route: RouteExtended): boolean => {\n return route.steps.some((step) =>\n step.execution?.actions?.some((action) => action.substatus === 'REFUNDED')\n )\n}\n\nexport const isRouteFailed = (route: RouteExtended): boolean => {\n return route.steps.some((step) => step.execution?.status === 'FAILED')\n}\n\nexport const isRouteActive = (route?: RouteExtended): boolean => {\n if (!route) {\n return false\n }\n const isDone = isRouteDone(route)\n const isFailed = isRouteFailed(route)\n const alreadyStarted = route.steps.some((step) => step.execution)\n return !isDone && !isFailed && alreadyStarted\n}\n\nexport const getUpdatedAction = (\n currentRoute: RouteExtended,\n updatedRoute: RouteExtended\n): ExecutionAction | undefined => {\n const actionDiff = microdiff(currentRoute, updatedRoute).find((diff) =>\n diff.path.includes('actions')\n )\n if (!actionDiff) {\n return undefined\n }\n // Find action index in the diff array so we can slice the complete action object\n // e.g. ['steps', 0, 'execution', 'actions', 0, 'message']\n const actionDiffIndex = actionDiff.path.indexOf('actions') + 2\n const actionPathSlice = actionDiff.path.slice(0, actionDiffIndex)\n // Reduce updated route using the diff path to get updated process\n const action = actionPathSlice.reduce(\n (obj, path) => obj[path],\n updatedRoute as any\n ) as ExecutionAction\n return action\n}\n\nexport const getSourceTxHash = (route?: RouteExtended): string | undefined => {\n const sourceAction = route?.steps[0].execution?.actions\n ?.filter(\n (action) => !['RESET_ALLOWANCE', 'SET_ALLOWANCE'].includes(action.type)\n )\n .find((action) => action.txHash || action.taskId)\n return sourceAction?.txHash || sourceAction?.taskId\n}\n"],"mappings":";;AAGA,MAAa,eAAe,UAAkC;AAC5D,QAAO,MAAM,MAAM,OAAO,SAAS,KAAK,WAAW,WAAW,OAAO;;AAGvE,MAAa,wBAAwB,UAAkC;AACrE,QAAO,MAAM,MAAM,MAAM,SACvB,KAAK,WAAW,SAAS,MAAM,WAAW,OAAO,cAAc,UAAU,CAC1E;;AAGH,MAAa,mBAAmB,UAAkC;AAChE,QAAO,MAAM,MAAM,MAAM,SACvB,KAAK,WAAW,SAAS,MAAM,WAAW,OAAO,cAAc,WAAW,CAC3E;;AAGH,MAAa,iBAAiB,UAAkC;AAC9D,QAAO,MAAM,MAAM,MAAM,SAAS,KAAK,WAAW,WAAW,SAAS;;AAGxE,MAAa,iBAAiB,UAAmC;AAC/D,KAAI,CAAC,MACH,QAAO;CAET,MAAM,SAAS,YAAY,MAAM;CACjC,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,iBAAiB,MAAM,MAAM,MAAM,SAAS,KAAK,UAAU;AACjE,QAAO,CAAC,UAAU,CAAC,YAAY;;AAGjC,MAAa,oBACX,cACA,iBACgC;CAChC,MAAM,aAAa,UAAU,cAAc,aAAa,CAAC,MAAM,SAC7D,KAAK,KAAK,SAAS,UAAU,CAC9B;AACD,KAAI,CAAC,WACH;CAIF,MAAM,kBAAkB,WAAW,KAAK,QAAQ,UAAU,GAAG;AAO7D,QANwB,WAAW,KAAK,MAAM,GAAG,gBAEnB,CAAC,QAC5B,KAAK,SAAS,IAAI,OACnB,aAEW;;AAGf,MAAa,mBAAmB,UAA8C;CAC5E,MAAM,eAAe,OAAO,MAAM,GAAG,WAAW,SAC5C,QACC,WAAW,CAAC,CAAC,mBAAmB,gBAAgB,CAAC,SAAS,OAAO,KAAK,CACxE,CACA,MAAM,WAAW,OAAO,UAAU,OAAO,OAAO;AACnD,QAAO,cAAc,UAAU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsStore.js","names":[],"sources":["../../../../src/stores/settings/SettingsStore.tsx"],"sourcesContent":["import {\n createContext,\n type JSX,\n type PropsWithChildren,\n useContext,\n useRef,\n} from 'react'\nimport type { StoreApi, UseBoundStore } from 'zustand'\nimport { useShallow } from 'zustand/shallow'\nimport { createSettingsStore } from './createSettingsStore.js'\nimport type { SettingsState, SettingsStoreProviderProps } from './types.js'\n\ntype SettingsStore = UseBoundStore<StoreApi<SettingsState>>\n\nconst SettingsStoreContext = createContext<SettingsStore | null>(null)\n\nexport const SettingsStoreProvider = ({\n children,\n config,\n}: PropsWithChildren<SettingsStoreProviderProps>): JSX.Element => {\n const storeRef = useRef<SettingsStore>(null)\n if (!storeRef.current) {\n storeRef.current = createSettingsStore(config)\n }\n return (\n <SettingsStoreContext.Provider value={storeRef.current}>\n {children}\n </SettingsStoreContext.Provider>\n )\n}\n\nexport function useSettingsStoreContext(): any {\n const useStore = useContext(SettingsStoreContext)\n if (!useStore) {\n throw new Error(\n 'You forgot to wrap your component in SettingsStoreContext.'\n )\n }\n return useStore\n}\n\nexport function useSettingsStore<T>(selector: (state: SettingsState) => T): T {\n const useStore = useSettingsStoreContext()\n return useStore(useShallow(selector))\n}\n"],"mappings":";;;;;AAcA,MAAM,uBAAuB,cAAoC,KAAK;AAEtE,MAAa,yBAAyB,EACpC,UACA,aACgE;CAChE,MAAM,WAAW,OAAsB,KAAK;AAC5C,KAAI,CAAC,SAAS,QACZ,UAAS,UAAU,oBAAoB,OAAO;AAEhD,QACE,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO,SAAS;EAC5C;EAC6B,CAAA;;AAIpC,SAAgB,0BAA+B;CAC7C,MAAM,WAAW,WAAW,qBAAqB;AACjD,KAAI,CAAC,SACH,OAAM,IAAI,MACR,6DACD;AAEH,QAAO;;AAGT,SAAgB,iBAAoB,UAA0C;AAE5E,QADiB,yBAAyB,CAC1B,WAAW,SAAS,CAAC"}
1
+ {"version":3,"file":"SettingsStore.js","names":[],"sources":["../../../../src/stores/settings/SettingsStore.tsx"],"sourcesContent":["import {\n createContext,\n type JSX,\n type PropsWithChildren,\n useContext,\n useRef,\n} from 'react'\nimport type { StoreApi, UseBoundStore } from 'zustand'\nimport { useShallow } from 'zustand/shallow'\nimport { createSettingsStore } from './createSettingsStore.js'\nimport type { SettingsState, SettingsStoreProviderProps } from './types.js'\n\ntype SettingsStore = UseBoundStore<StoreApi<SettingsState>>\n\nconst SettingsStoreContext = createContext<SettingsStore | null>(null)\n\nexport const SettingsStoreProvider = ({\n children,\n config,\n}: PropsWithChildren<SettingsStoreProviderProps>): JSX.Element => {\n const storeRef = useRef<SettingsStore>(null)\n if (!storeRef.current) {\n storeRef.current = createSettingsStore(config)\n }\n return (\n <SettingsStoreContext.Provider value={storeRef.current}>\n {children}\n </SettingsStoreContext.Provider>\n )\n}\n\nexport function useSettingsStoreContext(): any {\n const useStore = useContext(SettingsStoreContext)\n if (!useStore) {\n throw new Error(\n 'You forgot to wrap your component in SettingsStoreContext.'\n )\n }\n return useStore\n}\n\nexport function useSettingsStore<T>(selector: (state: SettingsState) => T): T {\n const useStore = useSettingsStoreContext()\n return useStore(useShallow(selector))\n}\n"],"mappings":";;;;;AAcA,MAAM,uBAAuB,cAAoC,KAAK;AAEtE,MAAa,yBAAyB,EACpC,UACA,aACgE;CAChE,MAAM,WAAW,OAAsB,KAAK;AAC5C,KAAI,CAAC,SAAS,QACZ,UAAS,UAAU,oBAAoB,OAAO;AAEhD,QACE,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO,SAAS;EAC5C;EAC6B,CAAA;;AAIpC,SAAgB,0BAA+B;CAC7C,MAAM,WAAW,WAAW,qBAAqB;AACjD,KAAI,CAAC,SACH,OAAM,IAAI,MACR,6DACD;AAEH,QAAO;;AAGT,SAAgB,iBAAoB,UAA0C;AAE5E,QADiB,yBACF,CAAC,WAAW,SAAS,CAAC"}
@@ -104,11 +104,7 @@ const createSettingsStore = (config) => create()(persist((set, get) => ({
104
104
  });
105
105
  return state;
106
106
  },
107
- migrate: (persistedState, version) => {
108
- if (version === 1) persistedState.slippage = defaultConfigurableSettings.slippage;
109
- if (version <= 3) persistedState.routePriority = "CHEAPEST";
110
- return persistedState;
111
- },
107
+ migrate: () => ({}),
112
108
  onRehydrateStorage: () => {
113
109
  const initializeLanguageSettings = async (state, initialLanguage) => {
114
110
  const customLanguages = Object.keys(config?.languageResources || {}).filter((key) => !allLanguages.includes(key));
@@ -1 +1 @@
1
- {"version":3,"file":"createSettingsStore.js","names":[],"sources":["../../../../src/stores/settings/createSettingsStore.ts"],"sourcesContent":["/** biome-ignore-all lint/correctness/noUnusedVariables: allowed in this store */\nimport type { StoreApi, UseBoundStore } from 'zustand'\nimport { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\nimport { allLanguages } from '../../providers/I18nProvider/constants.js'\nimport { loadLocale } from '../../providers/I18nProvider/i18n.js'\nimport type { LanguageKey } from '../../providers/I18nProvider/types.js'\nimport type { WidgetConfig } from '../../types/widget.js'\nimport type { SettingsProps, SettingsState } from './types.js'\nimport { SettingsToolTypes } from './types.js'\nimport { getStateValues } from './utils/getStateValues.js'\n\nexport const defaultSlippage = undefined\n\nexport const defaultConfigurableSettings: Pick<\n SettingsState,\n 'routePriority' | 'slippage' | 'gasPrice'\n> = {\n routePriority: 'CHEAPEST',\n slippage: defaultSlippage,\n gasPrice: 'normal',\n}\n\nconst defaultSettings: SettingsProps = {\n gasPrice: 'normal',\n enabledAutoRefuel: true,\n disabledBridges: [],\n disabledExchanges: [],\n enabledBridges: [],\n enabledExchanges: [],\n _enabledBridges: {},\n _enabledExchanges: {},\n smallBalanceThreshold: undefined,\n}\n\nexport const createSettingsStore = (\n config: WidgetConfig\n): UseBoundStore<StoreApi<SettingsState>> =>\n create<SettingsState>()(\n persist(\n (set, get) => ({\n ...defaultSettings,\n setValue: (key, value) =>\n set(() => ({\n [key]: value,\n })),\n setValues: (values: Partial<SettingsProps>) =>\n set(() => ({\n ...values,\n })),\n getSettings: () => getStateValues(get()),\n getValue: (key) => get()[key],\n initializeTools: (toolType, tools, reset) => {\n if (!tools.length) {\n return\n }\n set((state) => {\n const updatedState = { ...state }\n if (!reset) {\n // Add new tools\n tools.forEach((tool) => {\n if (!Object.hasOwn(updatedState[`_enabled${toolType}`], tool)) {\n updatedState[`_enabled${toolType}`][tool] = true\n }\n })\n // Filter tools we no longer have\n updatedState[`_enabled${toolType}`] = Object.fromEntries(\n Object.entries(updatedState[`_enabled${toolType}`]).filter(\n ([key]) => tools.includes(key)\n )\n )\n } else {\n tools.forEach((tool) => {\n updatedState[`_enabled${toolType}`][tool] = true\n })\n }\n const enabledToolKeys = Object.keys(\n updatedState[`_enabled${toolType}`]\n )\n updatedState[`enabled${toolType}`] = enabledToolKeys.filter(\n (key) => updatedState[`_enabled${toolType}`][key]\n )\n updatedState[`disabled${toolType}`] = enabledToolKeys.filter(\n (key) => !updatedState[`_enabled${toolType}`][key]\n )\n return updatedState\n })\n },\n setToolValue: (toolType, tool, value) =>\n set((state) => {\n const enabledTools = {\n ...state[`_enabled${toolType}`],\n [tool]: value,\n }\n const enabledToolKeys = Object.keys(enabledTools)\n return {\n [`_enabled${toolType}`]: enabledTools,\n [`enabled${toolType}`]: enabledToolKeys.filter(\n (key) => enabledTools[key]\n ),\n [`disabled${toolType}`]: enabledToolKeys.filter(\n (key) => !enabledTools[key]\n ),\n }\n }),\n toggleToolKeys: (toolType, toolKeys) =>\n set((state) => {\n const allKeysInCollectionEnabled = toolKeys.every(\n (toolKey) => state[`_enabled${toolType}`][toolKey]\n )\n\n // then toggle those keys to false\n const updatedTools = toolKeys.reduce(\n (accum, toolKey) => {\n accum[toolKey] = !allKeysInCollectionEnabled\n return accum\n },\n {\n ...state[`_enabled${toolType}`],\n }\n )\n\n const enableKeys: string[] = []\n const disabledKeys: string[] = []\n\n Object.entries(updatedTools).forEach(([key, value]) => {\n if (value) {\n enableKeys.push(key)\n } else {\n disabledKeys.push(key)\n }\n })\n\n return {\n [`_enabled${toolType}`]: updatedTools,\n [`enabled${toolType}`]: enableKeys,\n [`disabled${toolType}`]: disabledKeys,\n }\n }),\n reset: (bridges, exchanges) => {\n set(() => ({\n ...defaultSettings,\n ...defaultConfigurableSettings,\n }))\n get().initializeTools('Bridges', bridges, true)\n get().initializeTools('Exchanges', exchanges, true)\n return { ...get() }\n },\n }),\n {\n name: 'li.fi-widget-settings',\n version: 6,\n partialize: (state) => {\n const {\n disabledBridges,\n disabledExchanges,\n enabledBridges,\n enabledExchanges,\n ...partializedState\n } = state\n return partializedState\n },\n merge: (persistedState: any, currentState: SettingsState) => {\n const state = { ...currentState, ...persistedState }\n SettingsToolTypes.forEach((toolType) => {\n if (persistedState?.[`_enabled${toolType}`]) {\n const enabledToolKeys = Object.keys(\n persistedState[`_enabled${toolType}`]\n )\n state[`enabled${toolType}`] = enabledToolKeys.filter(\n (key) => persistedState[`_enabled${toolType}`][key]\n )\n state[`disabled${toolType}`] = enabledToolKeys.filter(\n (key) => !persistedState[`_enabled${toolType}`][key]\n )\n }\n })\n return state\n },\n migrate: (persistedState: any, version) => {\n if (version === 1) {\n persistedState.slippage = defaultConfigurableSettings.slippage\n }\n if (version <= 3) {\n persistedState.routePriority = 'CHEAPEST'\n }\n return persistedState as SettingsState\n },\n onRehydrateStorage: () => {\n const initializeLanguageSettings = async (\n state: SettingsState,\n initialLanguage?: string\n ) => {\n const customLanguages = Object.keys(\n config?.languageResources || {}\n ).filter((key) => !allLanguages.includes(key as LanguageKey))\n if (\n initialLanguage &&\n // Custom language resources and English are added statically.\n initialLanguage !== 'en' &&\n !customLanguages.includes(initialLanguage)\n ) {\n await loadLocale(\n initialLanguage as LanguageKey,\n config?.languageResources?.[initialLanguage as LanguageKey]\n ).then((languageResource) => {\n state.setValues({\n language: initialLanguage,\n languageCache: languageResource,\n })\n })\n }\n }\n return (state?: SettingsState) => {\n // Preload translations (from existing translation files)\n if (state) {\n // NB: State always exists unless there is any error\n initializeLanguageSettings(\n state,\n state.getValue('language') || config?.languages?.default\n )\n }\n }\n },\n }\n )\n )\n"],"mappings":"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"}
1
+ {"version":3,"file":"createSettingsStore.js","names":[],"sources":["../../../../src/stores/settings/createSettingsStore.ts"],"sourcesContent":["/** biome-ignore-all lint/correctness/noUnusedVariables: allowed in this store */\nimport type { StoreApi, UseBoundStore } from 'zustand'\nimport { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\nimport { allLanguages } from '../../providers/I18nProvider/constants.js'\nimport { loadLocale } from '../../providers/I18nProvider/i18n.js'\nimport type { LanguageKey } from '../../providers/I18nProvider/types.js'\nimport type { WidgetConfig } from '../../types/widget.js'\nimport type { SettingsProps, SettingsState } from './types.js'\nimport { SettingsToolTypes } from './types.js'\nimport { getStateValues } from './utils/getStateValues.js'\n\nexport const defaultSlippage = undefined\n\nexport const defaultConfigurableSettings: Pick<\n SettingsState,\n 'routePriority' | 'slippage' | 'gasPrice'\n> = {\n routePriority: 'CHEAPEST',\n slippage: defaultSlippage,\n gasPrice: 'normal',\n}\n\nconst defaultSettings: SettingsProps = {\n gasPrice: 'normal',\n enabledAutoRefuel: true,\n disabledBridges: [],\n disabledExchanges: [],\n enabledBridges: [],\n enabledExchanges: [],\n _enabledBridges: {},\n _enabledExchanges: {},\n smallBalanceThreshold: undefined,\n}\n\nexport const createSettingsStore = (\n config: WidgetConfig\n): UseBoundStore<StoreApi<SettingsState>> =>\n create<SettingsState>()(\n persist(\n (set, get) => ({\n ...defaultSettings,\n setValue: (key, value) =>\n set(() => ({\n [key]: value,\n })),\n setValues: (values: Partial<SettingsProps>) =>\n set(() => ({\n ...values,\n })),\n getSettings: () => getStateValues(get()),\n getValue: (key) => get()[key],\n initializeTools: (toolType, tools, reset) => {\n if (!tools.length) {\n return\n }\n set((state) => {\n const updatedState = { ...state }\n if (!reset) {\n // Add new tools\n tools.forEach((tool) => {\n if (!Object.hasOwn(updatedState[`_enabled${toolType}`], tool)) {\n updatedState[`_enabled${toolType}`][tool] = true\n }\n })\n // Filter tools we no longer have\n updatedState[`_enabled${toolType}`] = Object.fromEntries(\n Object.entries(updatedState[`_enabled${toolType}`]).filter(\n ([key]) => tools.includes(key)\n )\n )\n } else {\n tools.forEach((tool) => {\n updatedState[`_enabled${toolType}`][tool] = true\n })\n }\n const enabledToolKeys = Object.keys(\n updatedState[`_enabled${toolType}`]\n )\n updatedState[`enabled${toolType}`] = enabledToolKeys.filter(\n (key) => updatedState[`_enabled${toolType}`][key]\n )\n updatedState[`disabled${toolType}`] = enabledToolKeys.filter(\n (key) => !updatedState[`_enabled${toolType}`][key]\n )\n return updatedState\n })\n },\n setToolValue: (toolType, tool, value) =>\n set((state) => {\n const enabledTools = {\n ...state[`_enabled${toolType}`],\n [tool]: value,\n }\n const enabledToolKeys = Object.keys(enabledTools)\n return {\n [`_enabled${toolType}`]: enabledTools,\n [`enabled${toolType}`]: enabledToolKeys.filter(\n (key) => enabledTools[key]\n ),\n [`disabled${toolType}`]: enabledToolKeys.filter(\n (key) => !enabledTools[key]\n ),\n }\n }),\n toggleToolKeys: (toolType, toolKeys) =>\n set((state) => {\n const allKeysInCollectionEnabled = toolKeys.every(\n (toolKey) => state[`_enabled${toolType}`][toolKey]\n )\n\n // then toggle those keys to false\n const updatedTools = toolKeys.reduce(\n (accum, toolKey) => {\n accum[toolKey] = !allKeysInCollectionEnabled\n return accum\n },\n {\n ...state[`_enabled${toolType}`],\n }\n )\n\n const enableKeys: string[] = []\n const disabledKeys: string[] = []\n\n Object.entries(updatedTools).forEach(([key, value]) => {\n if (value) {\n enableKeys.push(key)\n } else {\n disabledKeys.push(key)\n }\n })\n\n return {\n [`_enabled${toolType}`]: updatedTools,\n [`enabled${toolType}`]: enableKeys,\n [`disabled${toolType}`]: disabledKeys,\n }\n }),\n reset: (bridges, exchanges) => {\n set(() => ({\n ...defaultSettings,\n ...defaultConfigurableSettings,\n }))\n get().initializeTools('Bridges', bridges, true)\n get().initializeTools('Exchanges', exchanges, true)\n return { ...get() }\n },\n }),\n {\n name: 'li.fi-widget-settings',\n version: 6,\n partialize: (state) => {\n const {\n disabledBridges,\n disabledExchanges,\n enabledBridges,\n enabledExchanges,\n ...partializedState\n } = state\n return partializedState\n },\n merge: (persistedState: any, currentState: SettingsState) => {\n const state = { ...currentState, ...persistedState }\n SettingsToolTypes.forEach((toolType) => {\n if (persistedState?.[`_enabled${toolType}`]) {\n const enabledToolKeys = Object.keys(\n persistedState[`_enabled${toolType}`]\n )\n state[`enabled${toolType}`] = enabledToolKeys.filter(\n (key) => persistedState[`_enabled${toolType}`][key]\n )\n state[`disabled${toolType}`] = enabledToolKeys.filter(\n (key) => !persistedState[`_enabled${toolType}`][key]\n )\n }\n })\n return state\n },\n migrate: () => ({}),\n onRehydrateStorage: () => {\n const initializeLanguageSettings = async (\n state: SettingsState,\n initialLanguage?: string\n ) => {\n const customLanguages = Object.keys(\n config?.languageResources || {}\n ).filter((key) => !allLanguages.includes(key as LanguageKey))\n if (\n initialLanguage &&\n // Custom language resources and English are added statically.\n initialLanguage !== 'en' &&\n !customLanguages.includes(initialLanguage)\n ) {\n await loadLocale(\n initialLanguage as LanguageKey,\n config?.languageResources?.[initialLanguage as LanguageKey]\n ).then((languageResource) => {\n state.setValues({\n language: initialLanguage,\n languageCache: languageResource,\n })\n })\n }\n }\n return (state?: SettingsState) => {\n // Preload translations (from existing translation files)\n if (state) {\n // NB: State always exists unless there is any error\n initializeLanguageSettings(\n state,\n state.getValue('language') || config?.languages?.default\n )\n }\n }\n },\n }\n )\n )\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { useWidgetEvents } from "../../hooks/useWidgetEvents.js";
2
- import { WidgetEvent } from "../../types/events.js";
2
+ import "../../types/events.js";
3
3
  import { deepEqual } from "../../utils/deepEqual.js";
4
4
  import { defaultConfigurableSettings } from "./createSettingsStore.js";
5
5
  import { useSettingsStore } from "./SettingsStore.js";
@@ -10,7 +10,7 @@ const emitEventOnChange = (emitter, actions, settingFunction, ...args) => {
10
10
  settingFunction(...args);
11
11
  const newSettings = actions.getSettings();
12
12
  if (!deepEqual(oldSettings, newSettings)) Object.keys(oldSettings).forEach((toolKey) => {
13
- if (!deepEqual(oldSettings[toolKey], newSettings[toolKey])) emitter.emit(WidgetEvent.SettingUpdated, {
13
+ if (!deepEqual(oldSettings[toolKey], newSettings[toolKey])) emitter.emit("settingUpdated", {
14
14
  setting: toolKey,
15
15
  newValue: newSettings[toolKey],
16
16
  oldValue: oldSettings[toolKey],
@@ -1 +1 @@
1
- {"version":3,"file":"useSettingsActions.js","names":[],"sources":["../../../../src/stores/settings/useSettingsActions.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport type { widgetEvents } from '../../hooks/useWidgetEvents.js'\nimport { useWidgetEvents } from '../../hooks/useWidgetEvents.js'\nimport { WidgetEvent } from '../../types/events.js'\nimport type { WidgetConfig } from '../../types/widget.js'\nimport { deepEqual } from '../../utils/deepEqual.js'\nimport { defaultConfigurableSettings } from './createSettingsStore.js'\nimport { useSettingsStore } from './SettingsStore.js'\nimport type {\n SettingsActions,\n SettingsProps,\n SettingsToolType,\n ValueSetter,\n} from './types.js'\n\nconst emitEventOnChange = <T extends (...args: any[]) => any>(\n emitter: typeof widgetEvents,\n actions: Omit<SettingsActions, 'initializeTools'>,\n settingFunction: T,\n ...args: Parameters<T>\n) => {\n const oldSettings = actions.getSettings()\n\n settingFunction(...args)\n\n const newSettings = actions.getSettings()\n\n if (!deepEqual(oldSettings, newSettings)) {\n ;(Object.keys(oldSettings) as (keyof SettingsProps)[]).forEach(\n (toolKey) => {\n if (!deepEqual(oldSettings[toolKey], newSettings[toolKey])) {\n emitter.emit(WidgetEvent.SettingUpdated, {\n setting: toolKey,\n newValue: newSettings[toolKey],\n oldValue: oldSettings[toolKey],\n newSettings: newSettings,\n oldSettings: oldSettings,\n })\n }\n }\n )\n }\n}\n\nexport const useSettingsActions = (): {\n setValue: ValueSetter<SettingsProps>\n setValues: (values: Partial<SettingsProps>) => void\n setDefaultSettings: (config?: WidgetConfig) => void\n resetSettings: (bridges: string[], exchanges: string[]) => void\n setToolValue: (\n toolType: SettingsToolType,\n tool: string,\n value: boolean\n ) => void\n toggleToolKeys: (toolType: SettingsToolType, toolKeys: string[]) => void\n} => {\n const emitter = useWidgetEvents()\n const actions = useSettingsStore((state) => ({\n setValue: state.setValue,\n setValues: state.setValues,\n getValue: state.getValue,\n getSettings: state.getSettings,\n reset: state.reset,\n setToolValue: state.setToolValue,\n toggleToolKeys: state.toggleToolKeys,\n }))\n\n const setValueWithEmittedEvent = useCallback<ValueSetter<SettingsProps>>(\n (value, newValue) => {\n const setting = value as keyof SettingsProps\n emitEventOnChange(emitter, actions, actions.setValue, setting, newValue)\n },\n [emitter, actions]\n )\n\n const setValuesWithEmittedEvent = useCallback(\n (values: Partial<SettingsProps>) => {\n Object.entries(values).forEach(([key, value]) => {\n setValueWithEmittedEvent(key as keyof SettingsProps, value)\n })\n },\n [setValueWithEmittedEvent]\n )\n\n const setDefaultSettingsWithEmittedEvents = useCallback(\n (config?: WidgetConfig) => {\n const slippage = actions.getValue('slippage')\n const routePriority = actions.getValue('routePriority')\n const gasPrice = actions.getValue('gasPrice')\n\n const defaultSlippage =\n (config?.slippage || config?.sdkConfig?.routeOptions?.slippage || 0) *\n 100\n const defaultRoutePriority =\n config?.routePriority || config?.sdkConfig?.routeOptions?.order\n\n defaultConfigurableSettings.slippage = (\n defaultSlippage || defaultConfigurableSettings.slippage\n )?.toString()\n\n defaultConfigurableSettings.routePriority =\n defaultRoutePriority || defaultConfigurableSettings.routePriority\n\n if (!slippage) {\n setValueWithEmittedEvent(\n 'slippage',\n defaultConfigurableSettings.slippage\n )\n }\n if (!routePriority) {\n setValueWithEmittedEvent(\n 'routePriority',\n defaultConfigurableSettings.routePriority\n )\n }\n if (!gasPrice) {\n setValueWithEmittedEvent(\n 'gasPrice',\n defaultConfigurableSettings.gasPrice\n )\n }\n },\n [actions, setValueWithEmittedEvent]\n )\n\n const resetWithEmittedEvents = useCallback(\n (bridges: string[], exchanges: string[]) => {\n emitEventOnChange(emitter, actions, actions.reset, bridges, exchanges)\n },\n [emitter, actions]\n )\n\n const setToolValueWithEmittedEvents = useCallback(\n (toolType: SettingsToolType, tool: string, value: boolean) => {\n emitEventOnChange(\n emitter,\n actions,\n actions.setToolValue,\n toolType,\n tool,\n value\n )\n },\n [emitter, actions]\n )\n\n const toggleToolKeysWithEmittedEvents = useCallback(\n (toolType: SettingsToolType, toolKeys: string[]) => {\n emitEventOnChange(\n emitter,\n actions,\n actions.toggleToolKeys,\n toolType,\n toolKeys\n )\n },\n [emitter, actions]\n )\n\n return {\n setValue: setValueWithEmittedEvent,\n setValues: setValuesWithEmittedEvent,\n setDefaultSettings: setDefaultSettingsWithEmittedEvents,\n resetSettings: resetWithEmittedEvents,\n setToolValue: setToolValueWithEmittedEvents,\n toggleToolKeys: toggleToolKeysWithEmittedEvents,\n }\n}\n"],"mappings":";;;;;;;AAeA,MAAM,qBACJ,SACA,SACA,iBACA,GAAG,SACA;CACH,MAAM,cAAc,QAAQ,aAAa;AAEzC,iBAAgB,GAAG,KAAK;CAExB,MAAM,cAAc,QAAQ,aAAa;AAEzC,KAAI,CAAC,UAAU,aAAa,YAAY,CACpC,QAAO,KAAK,YAAY,CAA6B,SACpD,YAAY;AACX,MAAI,CAAC,UAAU,YAAY,UAAU,YAAY,SAAS,CACxD,SAAQ,KAAK,YAAY,gBAAgB;GACvC,SAAS;GACT,UAAU,YAAY;GACtB,UAAU,YAAY;GACT;GACA;GACd,CAAC;GAGP;;AAIL,MAAa,2BAWR;CACH,MAAM,UAAU,iBAAiB;CACjC,MAAM,UAAU,kBAAkB,WAAW;EAC3C,UAAU,MAAM;EAChB,WAAW,MAAM;EACjB,UAAU,MAAM;EAChB,aAAa,MAAM;EACnB,OAAO,MAAM;EACb,cAAc,MAAM;EACpB,gBAAgB,MAAM;EACvB,EAAE;CAEH,MAAM,2BAA2B,aAC9B,OAAO,aAAa;EACnB,MAAM,UAAU;AAChB,oBAAkB,SAAS,SAAS,QAAQ,UAAU,SAAS,SAAS;IAE1E,CAAC,SAAS,QAAQ,CACnB;AAsFD,QAAO;EACL,UAAU;EACV,WAtFgC,aAC/B,WAAmC;AAClC,UAAO,QAAQ,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW;AAC/C,6BAAyB,KAA4B,MAAM;KAC3D;KAEJ,CAAC,yBAAyB,CAC3B;EAgFC,oBA9E0C,aACzC,WAA0B;GACzB,MAAM,WAAW,QAAQ,SAAS,WAAW;GAC7C,MAAM,gBAAgB,QAAQ,SAAS,gBAAgB;GACvD,MAAM,WAAW,QAAQ,SAAS,WAAW;GAE7C,MAAM,mBACH,QAAQ,YAAY,QAAQ,WAAW,cAAc,YAAY,KAClE;GACF,MAAM,uBACJ,QAAQ,iBAAiB,QAAQ,WAAW,cAAc;AAE5D,+BAA4B,YAC1B,mBAAmB,4BAA4B,WAC9C,UAAU;AAEb,+BAA4B,gBAC1B,wBAAwB,4BAA4B;AAEtD,OAAI,CAAC,SACH,0BACE,YACA,4BAA4B,SAC7B;AAEH,OAAI,CAAC,cACH,0BACE,iBACA,4BAA4B,cAC7B;AAEH,OAAI,CAAC,SACH,0BACE,YACA,4BAA4B,SAC7B;KAGL,CAAC,SAAS,yBAAyB,CACpC;EAwCC,eAtC6B,aAC5B,SAAmB,cAAwB;AAC1C,qBAAkB,SAAS,SAAS,QAAQ,OAAO,SAAS,UAAU;KAExE,CAAC,SAAS,QAAQ,CACnB;EAkCC,cAhCoC,aACnC,UAA4B,MAAc,UAAmB;AAC5D,qBACE,SACA,SACA,QAAQ,cACR,UACA,MACA,MACD;KAEH,CAAC,SAAS,QAAQ,CACnB;EAqBC,gBAnBsC,aACrC,UAA4B,aAAuB;AAClD,qBACE,SACA,SACA,QAAQ,gBACR,UACA,SACD;KAEH,CAAC,SAAS,QAAQ,CACnB;EASA"}
1
+ {"version":3,"file":"useSettingsActions.js","names":[],"sources":["../../../../src/stores/settings/useSettingsActions.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport type { widgetEvents } from '../../hooks/useWidgetEvents.js'\nimport { useWidgetEvents } from '../../hooks/useWidgetEvents.js'\nimport { WidgetEvent } from '../../types/events.js'\nimport type { WidgetConfig } from '../../types/widget.js'\nimport { deepEqual } from '../../utils/deepEqual.js'\nimport { defaultConfigurableSettings } from './createSettingsStore.js'\nimport { useSettingsStore } from './SettingsStore.js'\nimport type {\n SettingsActions,\n SettingsProps,\n SettingsToolType,\n ValueSetter,\n} from './types.js'\n\nconst emitEventOnChange = <T extends (...args: any[]) => any>(\n emitter: typeof widgetEvents,\n actions: Omit<SettingsActions, 'initializeTools'>,\n settingFunction: T,\n ...args: Parameters<T>\n) => {\n const oldSettings = actions.getSettings()\n\n settingFunction(...args)\n\n const newSettings = actions.getSettings()\n\n if (!deepEqual(oldSettings, newSettings)) {\n ;(Object.keys(oldSettings) as (keyof SettingsProps)[]).forEach(\n (toolKey) => {\n if (!deepEqual(oldSettings[toolKey], newSettings[toolKey])) {\n emitter.emit(WidgetEvent.SettingUpdated, {\n setting: toolKey,\n newValue: newSettings[toolKey],\n oldValue: oldSettings[toolKey],\n newSettings: newSettings,\n oldSettings: oldSettings,\n })\n }\n }\n )\n }\n}\n\nexport const useSettingsActions = (): {\n setValue: ValueSetter<SettingsProps>\n setValues: (values: Partial<SettingsProps>) => void\n setDefaultSettings: (config?: WidgetConfig) => void\n resetSettings: (bridges: string[], exchanges: string[]) => void\n setToolValue: (\n toolType: SettingsToolType,\n tool: string,\n value: boolean\n ) => void\n toggleToolKeys: (toolType: SettingsToolType, toolKeys: string[]) => void\n} => {\n const emitter = useWidgetEvents()\n const actions = useSettingsStore((state) => ({\n setValue: state.setValue,\n setValues: state.setValues,\n getValue: state.getValue,\n getSettings: state.getSettings,\n reset: state.reset,\n setToolValue: state.setToolValue,\n toggleToolKeys: state.toggleToolKeys,\n }))\n\n const setValueWithEmittedEvent = useCallback<ValueSetter<SettingsProps>>(\n (value, newValue) => {\n const setting = value as keyof SettingsProps\n emitEventOnChange(emitter, actions, actions.setValue, setting, newValue)\n },\n [emitter, actions]\n )\n\n const setValuesWithEmittedEvent = useCallback(\n (values: Partial<SettingsProps>) => {\n Object.entries(values).forEach(([key, value]) => {\n setValueWithEmittedEvent(key as keyof SettingsProps, value)\n })\n },\n [setValueWithEmittedEvent]\n )\n\n const setDefaultSettingsWithEmittedEvents = useCallback(\n (config?: WidgetConfig) => {\n const slippage = actions.getValue('slippage')\n const routePriority = actions.getValue('routePriority')\n const gasPrice = actions.getValue('gasPrice')\n\n const defaultSlippage =\n (config?.slippage || config?.sdkConfig?.routeOptions?.slippage || 0) *\n 100\n const defaultRoutePriority =\n config?.routePriority || config?.sdkConfig?.routeOptions?.order\n\n defaultConfigurableSettings.slippage = (\n defaultSlippage || defaultConfigurableSettings.slippage\n )?.toString()\n\n defaultConfigurableSettings.routePriority =\n defaultRoutePriority || defaultConfigurableSettings.routePriority\n\n if (!slippage) {\n setValueWithEmittedEvent(\n 'slippage',\n defaultConfigurableSettings.slippage\n )\n }\n if (!routePriority) {\n setValueWithEmittedEvent(\n 'routePriority',\n defaultConfigurableSettings.routePriority\n )\n }\n if (!gasPrice) {\n setValueWithEmittedEvent(\n 'gasPrice',\n defaultConfigurableSettings.gasPrice\n )\n }\n },\n [actions, setValueWithEmittedEvent]\n )\n\n const resetWithEmittedEvents = useCallback(\n (bridges: string[], exchanges: string[]) => {\n emitEventOnChange(emitter, actions, actions.reset, bridges, exchanges)\n },\n [emitter, actions]\n )\n\n const setToolValueWithEmittedEvents = useCallback(\n (toolType: SettingsToolType, tool: string, value: boolean) => {\n emitEventOnChange(\n emitter,\n actions,\n actions.setToolValue,\n toolType,\n tool,\n value\n )\n },\n [emitter, actions]\n )\n\n const toggleToolKeysWithEmittedEvents = useCallback(\n (toolType: SettingsToolType, toolKeys: string[]) => {\n emitEventOnChange(\n emitter,\n actions,\n actions.toggleToolKeys,\n toolType,\n toolKeys\n )\n },\n [emitter, actions]\n )\n\n return {\n setValue: setValueWithEmittedEvent,\n setValues: setValuesWithEmittedEvent,\n setDefaultSettings: setDefaultSettingsWithEmittedEvents,\n resetSettings: resetWithEmittedEvents,\n setToolValue: setToolValueWithEmittedEvents,\n toggleToolKeys: toggleToolKeysWithEmittedEvents,\n }\n}\n"],"mappings":";;;;;;;AAeA,MAAM,qBACJ,SACA,SACA,iBACA,GAAG,SACA;CACH,MAAM,cAAc,QAAQ,aAAa;AAEzC,iBAAgB,GAAG,KAAK;CAExB,MAAM,cAAc,QAAQ,aAAa;AAEzC,KAAI,CAAC,UAAU,aAAa,YAAY,CACpC,QAAO,KAAK,YAAY,CAA6B,SACpD,YAAY;AACX,MAAI,CAAC,UAAU,YAAY,UAAU,YAAY,SAAS,CACxD,SAAQ,KAAA,kBAAiC;GACvC,SAAS;GACT,UAAU,YAAY;GACtB,UAAU,YAAY;GACT;GACA;GACd,CAAC;GAGP;;AAIL,MAAa,2BAWR;CACH,MAAM,UAAU,iBAAiB;CACjC,MAAM,UAAU,kBAAkB,WAAW;EAC3C,UAAU,MAAM;EAChB,WAAW,MAAM;EACjB,UAAU,MAAM;EAChB,aAAa,MAAM;EACnB,OAAO,MAAM;EACb,cAAc,MAAM;EACpB,gBAAgB,MAAM;EACvB,EAAE;CAEH,MAAM,2BAA2B,aAC9B,OAAO,aAAa;EACnB,MAAM,UAAU;AAChB,oBAAkB,SAAS,SAAS,QAAQ,UAAU,SAAS,SAAS;IAE1E,CAAC,SAAS,QAAQ,CACnB;AAsFD,QAAO;EACL,UAAU;EACV,WAtFgC,aAC/B,WAAmC;AAClC,UAAO,QAAQ,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW;AAC/C,6BAAyB,KAA4B,MAAM;KAC3D;KAEJ,CAAC,yBAAyB,CAgFU;EACpC,oBA9E0C,aACzC,WAA0B;GACzB,MAAM,WAAW,QAAQ,SAAS,WAAW;GAC7C,MAAM,gBAAgB,QAAQ,SAAS,gBAAgB;GACvD,MAAM,WAAW,QAAQ,SAAS,WAAW;GAE7C,MAAM,mBACH,QAAQ,YAAY,QAAQ,WAAW,cAAc,YAAY,KAClE;GACF,MAAM,uBACJ,QAAQ,iBAAiB,QAAQ,WAAW,cAAc;AAE5D,+BAA4B,YAC1B,mBAAmB,4BAA4B,WAC9C,UAAU;AAEb,+BAA4B,gBAC1B,wBAAwB,4BAA4B;AAEtD,OAAI,CAAC,SACH,0BACE,YACA,4BAA4B,SAC7B;AAEH,OAAI,CAAC,cACH,0BACE,iBACA,4BAA4B,cAC7B;AAEH,OAAI,CAAC,SACH,0BACE,YACA,4BAA4B,SAC7B;KAGL,CAAC,SAAS,yBAAyB,CAwCoB;EACvD,eAtC6B,aAC5B,SAAmB,cAAwB;AAC1C,qBAAkB,SAAS,SAAS,QAAQ,OAAO,SAAS,UAAU;KAExE,CAAC,SAAS,QAAQ,CAkCmB;EACrC,cAhCoC,aACnC,UAA4B,MAAc,UAAmB;AAC5D,qBACE,SACA,SACA,QAAQ,cACR,UACA,MACA,MACD;KAEH,CAAC,SAAS,QAAQ,CAqByB;EAC3C,gBAnBsC,aACrC,UAA4B,aAAuB;AAClD,qBACE,SACA,SACA,QAAQ,gBACR,UACA,SACD;KAEH,CAAC,SAAS,QAAQ,CAS6B;EAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSplitSubvariantStore.js","names":[],"sources":["../../../../src/stores/settings/useSplitSubvariantStore.tsx"],"sourcesContent":["import { createContext, type JSX, useContext, useRef } from 'react'\nimport { create } from 'zustand'\nimport { useShallow } from 'zustand/shallow'\nimport type {\n SplitSubvariantProps,\n SplitSubvariantProviderProps,\n SplitSubvariantState,\n SplitSubvariantStore,\n} from './types.js'\n\nconst SplitSubvariantStoreContext = createContext<SplitSubvariantStore | null>(\n null\n)\n\nconst shouldRecreateStore = (\n store: SplitSubvariantStore,\n props: SplitSubvariantProps\n) => {\n const { state } = store.getState()\n return state !== props.state\n}\n\nexport function SplitSubvariantStoreProvider({\n children,\n ...props\n}: SplitSubvariantProviderProps): JSX.Element {\n const storeRef = useRef<SplitSubvariantStore>(null)\n if (!storeRef.current || shouldRecreateStore(storeRef.current, props)) {\n storeRef.current = createSplitSubvariantStore(props)\n }\n return (\n <SplitSubvariantStoreContext.Provider value={storeRef.current}>\n {children}\n </SplitSubvariantStoreContext.Provider>\n )\n}\n\nfunction useSplitSubvariantStoreContext() {\n const useStore = useContext(SplitSubvariantStoreContext)\n if (!useStore) {\n throw new Error(\n `You forgot to wrap your component in <${SplitSubvariantStoreProvider.name}>.`\n )\n }\n return useStore\n}\n\nexport function useSplitSubvariantStore<T>(\n selector: (state: SplitSubvariantState) => T\n): T {\n const useStore = useSplitSubvariantStoreContext()\n return useStore(useShallow(selector))\n}\n\nconst createSplitSubvariantStore = ({ state }: SplitSubvariantProps) =>\n create<SplitSubvariantState>((set) => ({\n state,\n setState(state) {\n set(() => ({\n state,\n }))\n },\n }))\n"],"mappings":";;;;;AAUA,MAAM,8BAA8B,cAClC,KACD;AAED,MAAM,uBACJ,OACA,UACG;CACH,MAAM,EAAE,UAAU,MAAM,UAAU;AAClC,QAAO,UAAU,MAAM;;AAGzB,SAAgB,6BAA6B,EAC3C,UACA,GAAG,SACyC;CAC5C,MAAM,WAAW,OAA6B,KAAK;AACnD,KAAI,CAAC,SAAS,WAAW,oBAAoB,SAAS,SAAS,MAAM,CACnE,UAAS,UAAU,2BAA2B,MAAM;AAEtD,QACE,oBAAC,4BAA4B,UAA7B;EAAsC,OAAO,SAAS;EACnD;EACoC,CAAA;;AAI3C,SAAS,iCAAiC;CACxC,MAAM,WAAW,WAAW,4BAA4B;AACxD,KAAI,CAAC,SACH,OAAM,IAAI,MACR,yCAAyC,6BAA6B,KAAK,IAC5E;AAEH,QAAO;;AAGT,SAAgB,wBACd,UACG;AAEH,QADiB,gCAAgC,CACjC,WAAW,SAAS,CAAC;;AAGvC,MAAM,8BAA8B,EAAE,YACpC,QAA8B,SAAS;CACrC;CACA,SAAS,OAAO;AACd,aAAW,EACT,OACD,EAAE;;CAEN,EAAE"}
1
+ {"version":3,"file":"useSplitSubvariantStore.js","names":[],"sources":["../../../../src/stores/settings/useSplitSubvariantStore.tsx"],"sourcesContent":["import { createContext, type JSX, useContext, useRef } from 'react'\nimport { create } from 'zustand'\nimport { useShallow } from 'zustand/shallow'\nimport type {\n SplitSubvariantProps,\n SplitSubvariantProviderProps,\n SplitSubvariantState,\n SplitSubvariantStore,\n} from './types.js'\n\nconst SplitSubvariantStoreContext = createContext<SplitSubvariantStore | null>(\n null\n)\n\nconst shouldRecreateStore = (\n store: SplitSubvariantStore,\n props: SplitSubvariantProps\n) => {\n const { state } = store.getState()\n return state !== props.state\n}\n\nexport function SplitSubvariantStoreProvider({\n children,\n ...props\n}: SplitSubvariantProviderProps): JSX.Element {\n const storeRef = useRef<SplitSubvariantStore>(null)\n if (!storeRef.current || shouldRecreateStore(storeRef.current, props)) {\n storeRef.current = createSplitSubvariantStore(props)\n }\n return (\n <SplitSubvariantStoreContext.Provider value={storeRef.current}>\n {children}\n </SplitSubvariantStoreContext.Provider>\n )\n}\n\nfunction useSplitSubvariantStoreContext() {\n const useStore = useContext(SplitSubvariantStoreContext)\n if (!useStore) {\n throw new Error(\n `You forgot to wrap your component in <${SplitSubvariantStoreProvider.name}>.`\n )\n }\n return useStore\n}\n\nexport function useSplitSubvariantStore<T>(\n selector: (state: SplitSubvariantState) => T\n): T {\n const useStore = useSplitSubvariantStoreContext()\n return useStore(useShallow(selector))\n}\n\nconst createSplitSubvariantStore = ({ state }: SplitSubvariantProps) =>\n create<SplitSubvariantState>((set) => ({\n state,\n setState(state) {\n set(() => ({\n state,\n }))\n },\n }))\n"],"mappings":";;;;;AAUA,MAAM,8BAA8B,cAClC,KACD;AAED,MAAM,uBACJ,OACA,UACG;CACH,MAAM,EAAE,UAAU,MAAM,UAAU;AAClC,QAAO,UAAU,MAAM;;AAGzB,SAAgB,6BAA6B,EAC3C,UACA,GAAG,SACyC;CAC5C,MAAM,WAAW,OAA6B,KAAK;AACnD,KAAI,CAAC,SAAS,WAAW,oBAAoB,SAAS,SAAS,MAAM,CACnE,UAAS,UAAU,2BAA2B,MAAM;AAEtD,QACE,oBAAC,4BAA4B,UAA7B;EAAsC,OAAO,SAAS;EACnD;EACoC,CAAA;;AAI3C,SAAS,iCAAiC;CACxC,MAAM,WAAW,WAAW,4BAA4B;AACxD,KAAI,CAAC,SACH,OAAM,IAAI,MACR,yCAAyC,6BAA6B,KAAK,IAC5E;AAEH,QAAO;;AAGT,SAAgB,wBACd,UACG;AAEH,QADiB,gCACF,CAAC,WAAW,SAAS,CAAC;;AAGvC,MAAM,8BAA8B,EAAE,YACpC,QAA8B,SAAS;CACrC;CACA,SAAS,OAAO;AACd,aAAW,EACT,OACD,EAAE;;CAEN,EAAE"}
@@ -18,8 +18,8 @@ const enterKeyframe = keyframes`
18
18
  }
19
19
  `;
20
20
  const createTheme$1 = (widgetTheme = {}) => {
21
- const configuredPaletteLight = widgetTheme.colorSchemes?.light?.palette ?? widgetTheme.palette;
22
- const configuredPaletteDark = widgetTheme.colorSchemes?.dark?.palette ?? widgetTheme.palette;
21
+ const configuredPaletteLight = widgetTheme.colorSchemes?.light?.palette;
22
+ const configuredPaletteDark = widgetTheme.colorSchemes?.dark?.palette;
23
23
  const primaryMainColorLight = (configuredPaletteLight?.primary)?.main ?? palette.primary.main;
24
24
  const primaryMainColorDark = (configuredPaletteDark?.primary)?.main ?? palette.primary.main;
25
25
  const primaryLightenColorLight = lighten(primaryMainColorLight, .84);
@@ -42,7 +42,7 @@ const createTheme$1 = (widgetTheme = {}) => {
42
42
  light: { palette: {
43
43
  ...palette,
44
44
  ...paletteLight,
45
- ...widgetTheme.colorSchemes?.light?.palette ?? widgetTheme.palette,
45
+ ...widgetTheme.colorSchemes?.light?.palette,
46
46
  primary: {
47
47
  main: primaryMainColorLight,
48
48
  light: primaryLightenColorLight,
@@ -57,7 +57,7 @@ const createTheme$1 = (widgetTheme = {}) => {
57
57
  dark: { palette: {
58
58
  ...palette,
59
59
  ...paletteDark,
60
- ...widgetTheme.colorSchemes?.dark?.palette ?? widgetTheme.palette,
60
+ ...widgetTheme.colorSchemes?.dark?.palette,
61
61
  primary: {
62
62
  main: primaryMainColorDark,
63
63
  light: primaryLightenColorDark,
@@ -1 +1 @@
1
- {"version":3,"file":"createTheme.js","names":["createTheme","createMuiTheme"],"sources":["../../../src/themes/createTheme.ts"],"sourcesContent":["import type {\n CSSObject,\n Shape,\n SimplePaletteColorOptions,\n Theme,\n} from '@mui/material'\nimport {\n alpha,\n buttonClasses,\n createTheme as createMuiTheme,\n css,\n darken,\n keyframes,\n lighten,\n tabsClasses,\n touchRippleClasses,\n} from '@mui/material'\nimport type { WidgetTheme } from '../types/widget.js'\nimport { palette, paletteDark, paletteLight } from './palettes.js'\nimport type {} from './types.js'\nimport { getStyleOverrides } from './utils.js'\n\nconst shape: Shape = {\n borderRadius: 12,\n borderRadiusSecondary: 12,\n borderRadiusTertiary: 24,\n}\n\nconst enterKeyframe = keyframes`\n 0% {\n transform: scale(0);\n opacity: 0.05;\n }\n 100% {\n transform: scale(1);\n opacity: 0.1;\n }\n`\n\nexport const createTheme = (widgetTheme: WidgetTheme = {}): Theme => {\n const configuredPaletteLight =\n widgetTheme.colorSchemes?.light?.palette ?? widgetTheme.palette\n const configuredPaletteDark =\n widgetTheme.colorSchemes?.dark?.palette ?? widgetTheme.palette\n\n const primaryMainColorLight =\n (configuredPaletteLight?.primary as SimplePaletteColorOptions)?.main ??\n palette.primary.main\n const primaryMainColorDark =\n (configuredPaletteDark?.primary as SimplePaletteColorOptions)?.main ??\n palette.primary.main\n\n const primaryLightenColorLight = lighten(primaryMainColorLight, 0.84)\n const primaryDarkenColorLight = darken(primaryMainColorLight, 0.2)\n const primaryLightenColorDark =\n primaryMainColorLight === primaryMainColorDark\n ? primaryLightenColorLight\n : lighten(primaryMainColorDark, 0.84)\n const primaryDarkenColorDark =\n primaryMainColorLight === primaryMainColorDark\n ? primaryDarkenColorLight\n : darken(primaryMainColorDark, 0.2)\n\n const secondaryMainColorLight =\n (configuredPaletteLight?.secondary as SimplePaletteColorOptions)?.main ??\n palette.secondary.main\n const secondaryMainColorDark =\n (configuredPaletteDark?.secondary as SimplePaletteColorOptions)?.main ??\n palette.secondary.main\n\n const secondaryLightenColorLight = lighten(secondaryMainColorLight, 0.84)\n const secondaryDarkenColorLight = darken(secondaryMainColorLight, 0.2)\n const secondaryLightenColorDark =\n secondaryMainColorLight === secondaryMainColorDark\n ? secondaryLightenColorLight\n : lighten(secondaryMainColorDark, 0.84)\n const secondaryDarkenColorDark =\n secondaryMainColorLight === secondaryMainColorDark\n ? secondaryDarkenColorLight\n : darken(secondaryMainColorDark, 0.2)\n\n const theme = createMuiTheme({\n cssVariables: {\n cssVarPrefix: 'lifi',\n colorSchemeSelector: 'class',\n nativeColor: true,\n },\n colorSchemes: {\n light: {\n palette: {\n ...palette,\n ...paletteLight,\n ...(widgetTheme.colorSchemes?.light?.palette ?? widgetTheme.palette),\n primary: {\n main: primaryMainColorLight,\n light: primaryLightenColorLight,\n dark: primaryDarkenColorLight,\n },\n secondary: {\n main: secondaryMainColorLight,\n light: secondaryLightenColorLight,\n dark: secondaryDarkenColorLight,\n },\n },\n },\n dark: {\n palette: {\n ...palette,\n ...paletteDark,\n ...(widgetTheme.colorSchemes?.dark?.palette ?? widgetTheme.palette),\n primary: {\n main: primaryMainColorDark,\n light: primaryLightenColorDark,\n dark: primaryDarkenColorDark,\n },\n secondary: {\n main: secondaryMainColorDark,\n light: secondaryLightenColorDark,\n dark: secondaryDarkenColorDark,\n },\n },\n },\n },\n container: widgetTheme.container,\n routesContainer: widgetTheme.routesContainer,\n chainSidebarContainer: widgetTheme.chainSidebarContainer,\n header: widgetTheme.header,\n navigation: {\n edge: true,\n ...widgetTheme.navigation,\n },\n typography: {\n fontFamily: 'Inter, sans-serif',\n ...widgetTheme.typography,\n },\n shape: {\n ...shape,\n ...widgetTheme.shape,\n },\n breakpoints: {\n values: {\n xs: 360,\n sm: 416,\n md: 900,\n lg: 1200,\n xl: 1536,\n },\n },\n components: {\n MuiScopedCssBaseline: {\n styleOverrides: {\n root: {\n fontFamily: 'Inter, sans-serif',\n ...widgetTheme.typography,\n },\n },\n },\n MuiAppBar: {\n styleOverrides: {\n root: ({ ownerState }) => ({\n minHeight: 40,\n padding: 0,\n ...getStyleOverrides('MuiAppBar', 'root', widgetTheme, ownerState),\n }),\n },\n },\n MuiCard: {\n defaultProps: {\n variant: 'outlined',\n ...widgetTheme.components?.MuiCard?.defaultProps,\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => {\n const root = widgetTheme.components?.MuiCard?.styleOverrides\n ?.root as CSSObject\n const rootHover = root?.['&:hover']\n return {\n backgroundColor: theme.vars.palette.background.paper,\n backgroundImage: 'none',\n borderRadius: theme.vars.shape.borderRadius,\n overflow: 'hidden',\n position: 'relative',\n boxSizing: 'border-box',\n transition: theme.transitions.create(\n ['background-color', 'filter'],\n {\n duration: theme.transitions.duration.enteringScreen,\n easing: theme.transitions.easing.easeOut,\n }\n ),\n ...(!!ownerState.onClick && {\n '&:hover': {\n cursor: 'pointer',\n },\n }),\n ...(!!ownerState.onClick &&\n (ownerState.variant === 'outlined' ||\n ownerState.variant === 'filled') && {\n '&:hover': {\n cursor: 'pointer',\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.background.paper} 98%, black)`,\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.background.paper} 98%, white)`,\n }),\n },\n }),\n ...(!!ownerState.onClick &&\n ownerState.variant === 'elevation' && {\n '&:hover': {\n cursor: 'pointer',\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.onBackground} 8%, transparent))`,\n ...theme.applyStyles('dark', {\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.background} 8%, transparent))`,\n }),\n },\n }),\n ...(typeof root === 'object' && root),\n ...(!!ownerState.onClick &&\n !!rootHover && {\n '&:hover': {\n ...rootHover,\n ...theme.applyStyles('dark', {\n ...rootHover,\n }),\n },\n }),\n ...(!ownerState.onClick && {\n '&:hover': {},\n }),\n }\n },\n },\n variants: widgetTheme.components?.MuiCard?.variants ?? [\n {\n props: { variant: 'outlined' },\n style: ({ theme }) => ({\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: theme.vars.palette.grey[300],\n ...theme.applyStyles('dark', {\n borderColor: theme.vars.palette.grey[800],\n }),\n }),\n },\n {\n props: { variant: 'elevation' },\n style: ({ theme }) => ({\n border: 'none',\n boxShadow: 'none',\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent))`,\n ...theme.applyStyles('dark', {\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.background} 4%, transparent))`,\n }),\n }),\n },\n {\n props: { variant: 'filled' },\n style: {\n border: 'none',\n },\n },\n ],\n },\n MuiInputCard: {\n ...widgetTheme.components?.MuiInputCard,\n },\n MuiButtonBase: {\n styleOverrides: {\n // This `css()` function invokes keyframes. `styled-components` only supports keyframes\n // in string templates. Do not convert these styles in JS object as it will break.\n root: css`\n &\n .${touchRippleClasses.ripple}.${touchRippleClasses.rippleVisible} {\n opacity: 0.1;\n animation-name: ${enterKeyframe};\n }\n `,\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n ...widgetTheme.components?.MuiButton?.defaultProps,\n },\n styleOverrides: {\n root: ({ theme, ownerState }) => ({\n borderRadius: theme.vars.shape.borderRadiusSecondary,\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 600,\n '&.Mui-disabled, &.Mui-disabled:hover': {\n color: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 56%, transparent)`,\n cursor: 'not-allowed',\n pointerEvents: 'auto',\n },\n [`&.${buttonClasses.loading}.Mui-disabled`]: {\n backgroundColor: theme.vars.palette.primary.main,\n color: theme.palette.getContrastText(theme.palette.primary.main),\n cursor: 'auto',\n pointerEvents: 'auto',\n },\n [`.${buttonClasses.loadingIndicator}`]: {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n },\n [`&.${buttonClasses.root}.${buttonClasses.loading}`]: {\n color: 'transparent',\n },\n ...getStyleOverrides('MuiButton', 'root', widgetTheme, ownerState),\n }),\n text: ({ theme, ownerState }) => ({\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 8%, transparent)`,\n color: theme.vars.palette.primary.main,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 12%, transparent)`,\n },\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 42%, transparent)`,\n color: theme.palette.getContrastText(\n alpha(theme.palette.primary.main, 0.08)\n ),\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 56%, transparent)`,\n },\n }),\n ...getStyleOverrides('MuiButton', 'text', widgetTheme, ownerState),\n }),\n contained: ({ ownerState }) => ({\n '&:hover': {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n },\n ...getStyleOverrides(\n 'MuiButton',\n 'contained',\n widgetTheme,\n ownerState\n ),\n }),\n sizeMedium: ({ ownerState }) => ({\n padding: '10px 14px',\n ...getStyleOverrides(\n 'MuiButton',\n 'sizeMedium',\n widgetTheme,\n ownerState\n ),\n }),\n },\n },\n MuiIconButton: {\n ...widgetTheme.components?.MuiIconButton,\n styleOverrides: {\n ...widgetTheme.components?.MuiIconButton?.styleOverrides,\n root: ({ ownerState }) => ({\n color: 'inherit',\n '&:hover': {\n color: 'inherit',\n },\n ...getStyleOverrides(\n 'MuiIconButton',\n 'root',\n widgetTheme,\n ownerState\n ),\n }),\n },\n },\n MuiAvatar: {\n styleOverrides: {\n root: {\n height: 40,\n width: 40,\n },\n img: {\n objectFit: 'contain',\n },\n },\n ...widgetTheme.components?.MuiAvatar,\n },\n MuiListItemText: {\n styleOverrides: {\n primary: ({ theme }) => ({\n fontWeight: 600,\n fontSize: '1.125rem',\n lineHeight: '1.2778',\n color: theme.vars.palette.text.primary,\n }),\n secondary: ({ theme }) => ({\n fontWeight: 500,\n fontSize: '0.75rem',\n color: theme.vars.palette.text.secondary,\n }),\n },\n },\n MuiTooltip: {\n defaultProps: {\n enterDelay: 400,\n disableInteractive: true,\n arrow: true,\n placement: 'top',\n },\n styleOverrides: {\n tooltip: ({ theme }) => ({\n backgroundColor: 'rgb(0 0 0 / 64%)',\n backdropFilter: 'blur(3px)',\n fontSize: '0.75rem',\n padding: theme.spacing(1, 1.5),\n }),\n arrow: {\n color: 'rgb(0 0 0 / 64%)',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: ({ theme }) => ({\n backgroundColor: theme.vars.palette.background.paper,\n backgroundImage: 'none',\n }),\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundImage: 'none',\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: 'none',\n },\n },\n },\n MuiTabs: {\n ...widgetTheme.components?.MuiTabs,\n styleOverrides: {\n ...widgetTheme.components?.MuiTabs?.styleOverrides,\n root: ({ theme, ownerState }) => {\n const rootStyleOverrides = getStyleOverrides(\n 'MuiTabs',\n 'root',\n widgetTheme,\n ownerState\n )\n return {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent)`,\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 8%, transparent)`,\n }),\n borderRadius: theme.vars.shape.borderRadius,\n ...rootStyleOverrides,\n [`.${tabsClasses.indicator}`]: {\n backgroundColor: theme.vars.palette.background.paper,\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.background} 56%, transparent)`,\n }),\n borderRadius:\n theme.shape.borderRadius > 0\n ? `calc(${theme.vars.shape.borderRadius} - 4px)`\n : theme.vars.shape.borderRadius,\n boxShadow: `0px 2px 4px color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent)`,\n ...rootStyleOverrides?.[`.${tabsClasses.indicator}`],\n },\n }\n },\n },\n },\n MuiNavigationTabs: {\n ...widgetTheme.components?.MuiNavigationTabs,\n },\n MuiNavigationTab: {\n ...widgetTheme.components?.MuiNavigationTab,\n },\n MuiCheckbox: {\n styleOverrides: {\n root: {\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n },\n ...widgetTheme.components?.MuiCheckbox,\n },\n },\n })\n\n return theme\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"createTheme.js","names":["createTheme","createMuiTheme"],"sources":["../../../src/themes/createTheme.ts"],"sourcesContent":["import type {\n CSSObject,\n Shape,\n SimplePaletteColorOptions,\n Theme,\n} from '@mui/material'\nimport {\n alpha,\n buttonClasses,\n createTheme as createMuiTheme,\n css,\n darken,\n keyframes,\n lighten,\n tabsClasses,\n touchRippleClasses,\n} from '@mui/material'\nimport type { WidgetTheme } from '../types/widget.js'\nimport { palette, paletteDark, paletteLight } from './palettes.js'\nimport type {} from './types.js'\nimport { getStyleOverrides } from './utils.js'\n\nconst shape: Shape = {\n borderRadius: 12,\n borderRadiusSecondary: 12,\n borderRadiusTertiary: 24,\n}\n\nconst enterKeyframe = keyframes`\n 0% {\n transform: scale(0);\n opacity: 0.05;\n }\n 100% {\n transform: scale(1);\n opacity: 0.1;\n }\n`\n\nexport const createTheme = (widgetTheme: WidgetTheme = {}): Theme => {\n const configuredPaletteLight = widgetTheme.colorSchemes?.light?.palette\n const configuredPaletteDark = widgetTheme.colorSchemes?.dark?.palette\n\n const primaryMainColorLight =\n (configuredPaletteLight?.primary as SimplePaletteColorOptions)?.main ??\n palette.primary.main\n const primaryMainColorDark =\n (configuredPaletteDark?.primary as SimplePaletteColorOptions)?.main ??\n palette.primary.main\n\n const primaryLightenColorLight = lighten(primaryMainColorLight, 0.84)\n const primaryDarkenColorLight = darken(primaryMainColorLight, 0.2)\n const primaryLightenColorDark =\n primaryMainColorLight === primaryMainColorDark\n ? primaryLightenColorLight\n : lighten(primaryMainColorDark, 0.84)\n const primaryDarkenColorDark =\n primaryMainColorLight === primaryMainColorDark\n ? primaryDarkenColorLight\n : darken(primaryMainColorDark, 0.2)\n\n const secondaryMainColorLight =\n (configuredPaletteLight?.secondary as SimplePaletteColorOptions)?.main ??\n palette.secondary.main\n const secondaryMainColorDark =\n (configuredPaletteDark?.secondary as SimplePaletteColorOptions)?.main ??\n palette.secondary.main\n\n const secondaryLightenColorLight = lighten(secondaryMainColorLight, 0.84)\n const secondaryDarkenColorLight = darken(secondaryMainColorLight, 0.2)\n const secondaryLightenColorDark =\n secondaryMainColorLight === secondaryMainColorDark\n ? secondaryLightenColorLight\n : lighten(secondaryMainColorDark, 0.84)\n const secondaryDarkenColorDark =\n secondaryMainColorLight === secondaryMainColorDark\n ? secondaryDarkenColorLight\n : darken(secondaryMainColorDark, 0.2)\n\n const theme = createMuiTheme({\n cssVariables: {\n cssVarPrefix: 'lifi',\n colorSchemeSelector: 'class',\n nativeColor: true,\n },\n colorSchemes: {\n light: {\n palette: {\n ...palette,\n ...paletteLight,\n ...widgetTheme.colorSchemes?.light?.palette,\n primary: {\n main: primaryMainColorLight,\n light: primaryLightenColorLight,\n dark: primaryDarkenColorLight,\n },\n secondary: {\n main: secondaryMainColorLight,\n light: secondaryLightenColorLight,\n dark: secondaryDarkenColorLight,\n },\n },\n },\n dark: {\n palette: {\n ...palette,\n ...paletteDark,\n ...widgetTheme.colorSchemes?.dark?.palette,\n primary: {\n main: primaryMainColorDark,\n light: primaryLightenColorDark,\n dark: primaryDarkenColorDark,\n },\n secondary: {\n main: secondaryMainColorDark,\n light: secondaryLightenColorDark,\n dark: secondaryDarkenColorDark,\n },\n },\n },\n },\n container: widgetTheme.container,\n routesContainer: widgetTheme.routesContainer,\n chainSidebarContainer: widgetTheme.chainSidebarContainer,\n header: widgetTheme.header,\n navigation: {\n edge: true,\n ...widgetTheme.navigation,\n },\n typography: {\n fontFamily: 'Inter, sans-serif',\n ...widgetTheme.typography,\n },\n shape: {\n ...shape,\n ...widgetTheme.shape,\n },\n breakpoints: {\n values: {\n xs: 360,\n sm: 416,\n md: 900,\n lg: 1200,\n xl: 1536,\n },\n },\n components: {\n MuiScopedCssBaseline: {\n styleOverrides: {\n root: {\n fontFamily: 'Inter, sans-serif',\n ...widgetTheme.typography,\n },\n },\n },\n MuiAppBar: {\n styleOverrides: {\n root: ({ ownerState }) => ({\n minHeight: 40,\n padding: 0,\n ...getStyleOverrides('MuiAppBar', 'root', widgetTheme, ownerState),\n }),\n },\n },\n MuiCard: {\n defaultProps: {\n variant: 'outlined',\n ...widgetTheme.components?.MuiCard?.defaultProps,\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => {\n const root = widgetTheme.components?.MuiCard?.styleOverrides\n ?.root as CSSObject\n const rootHover = root?.['&:hover']\n return {\n backgroundColor: theme.vars.palette.background.paper,\n backgroundImage: 'none',\n borderRadius: theme.vars.shape.borderRadius,\n overflow: 'hidden',\n position: 'relative',\n boxSizing: 'border-box',\n transition: theme.transitions.create(\n ['background-color', 'filter'],\n {\n duration: theme.transitions.duration.enteringScreen,\n easing: theme.transitions.easing.easeOut,\n }\n ),\n ...(!!ownerState.onClick && {\n '&:hover': {\n cursor: 'pointer',\n },\n }),\n ...(!!ownerState.onClick &&\n (ownerState.variant === 'outlined' ||\n ownerState.variant === 'filled') && {\n '&:hover': {\n cursor: 'pointer',\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.background.paper} 98%, black)`,\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.background.paper} 98%, white)`,\n }),\n },\n }),\n ...(!!ownerState.onClick &&\n ownerState.variant === 'elevation' && {\n '&:hover': {\n cursor: 'pointer',\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.onBackground} 8%, transparent))`,\n ...theme.applyStyles('dark', {\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.background} 8%, transparent))`,\n }),\n },\n }),\n ...(typeof root === 'object' && root),\n ...(!!ownerState.onClick &&\n !!rootHover && {\n '&:hover': {\n ...rootHover,\n ...theme.applyStyles('dark', {\n ...rootHover,\n }),\n },\n }),\n ...(!ownerState.onClick && {\n '&:hover': {},\n }),\n }\n },\n },\n variants: widgetTheme.components?.MuiCard?.variants ?? [\n {\n props: { variant: 'outlined' },\n style: ({ theme }) => ({\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: theme.vars.palette.grey[300],\n ...theme.applyStyles('dark', {\n borderColor: theme.vars.palette.grey[800],\n }),\n }),\n },\n {\n props: { variant: 'elevation' },\n style: ({ theme }) => ({\n border: 'none',\n boxShadow: 'none',\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent))`,\n ...theme.applyStyles('dark', {\n filter: `drop-shadow(0 1px 4px color-mix(in srgb, ${theme.vars.palette.common.background} 4%, transparent))`,\n }),\n }),\n },\n {\n props: { variant: 'filled' },\n style: {\n border: 'none',\n },\n },\n ],\n },\n MuiInputCard: {\n ...widgetTheme.components?.MuiInputCard,\n },\n MuiButtonBase: {\n styleOverrides: {\n // This `css()` function invokes keyframes. `styled-components` only supports keyframes\n // in string templates. Do not convert these styles in JS object as it will break.\n root: css`\n &\n .${touchRippleClasses.ripple}.${touchRippleClasses.rippleVisible} {\n opacity: 0.1;\n animation-name: ${enterKeyframe};\n }\n `,\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n ...widgetTheme.components?.MuiButton?.defaultProps,\n },\n styleOverrides: {\n root: ({ theme, ownerState }) => ({\n borderRadius: theme.vars.shape.borderRadiusSecondary,\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 600,\n '&.Mui-disabled, &.Mui-disabled:hover': {\n color: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 56%, transparent)`,\n cursor: 'not-allowed',\n pointerEvents: 'auto',\n },\n [`&.${buttonClasses.loading}.Mui-disabled`]: {\n backgroundColor: theme.vars.palette.primary.main,\n color: theme.palette.getContrastText(theme.palette.primary.main),\n cursor: 'auto',\n pointerEvents: 'auto',\n },\n [`.${buttonClasses.loadingIndicator}`]: {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n },\n [`&.${buttonClasses.root}.${buttonClasses.loading}`]: {\n color: 'transparent',\n },\n ...getStyleOverrides('MuiButton', 'root', widgetTheme, ownerState),\n }),\n text: ({ theme, ownerState }) => ({\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 8%, transparent)`,\n color: theme.vars.palette.primary.main,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 12%, transparent)`,\n },\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 42%, transparent)`,\n color: theme.palette.getContrastText(\n alpha(theme.palette.primary.main, 0.08)\n ),\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.primary.main} 56%, transparent)`,\n },\n }),\n ...getStyleOverrides('MuiButton', 'text', widgetTheme, ownerState),\n }),\n contained: ({ ownerState }) => ({\n '&:hover': {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n },\n ...getStyleOverrides(\n 'MuiButton',\n 'contained',\n widgetTheme,\n ownerState\n ),\n }),\n sizeMedium: ({ ownerState }) => ({\n padding: '10px 14px',\n ...getStyleOverrides(\n 'MuiButton',\n 'sizeMedium',\n widgetTheme,\n ownerState\n ),\n }),\n },\n },\n MuiIconButton: {\n ...widgetTheme.components?.MuiIconButton,\n styleOverrides: {\n ...widgetTheme.components?.MuiIconButton?.styleOverrides,\n root: ({ ownerState }) => ({\n color: 'inherit',\n '&:hover': {\n color: 'inherit',\n },\n ...getStyleOverrides(\n 'MuiIconButton',\n 'root',\n widgetTheme,\n ownerState\n ),\n }),\n },\n },\n MuiAvatar: {\n styleOverrides: {\n root: {\n height: 40,\n width: 40,\n },\n img: {\n objectFit: 'contain',\n },\n },\n ...widgetTheme.components?.MuiAvatar,\n },\n MuiListItemText: {\n styleOverrides: {\n primary: ({ theme }) => ({\n fontWeight: 600,\n fontSize: '1.125rem',\n lineHeight: '1.2778',\n color: theme.vars.palette.text.primary,\n }),\n secondary: ({ theme }) => ({\n fontWeight: 500,\n fontSize: '0.75rem',\n color: theme.vars.palette.text.secondary,\n }),\n },\n },\n MuiTooltip: {\n defaultProps: {\n enterDelay: 400,\n disableInteractive: true,\n arrow: true,\n placement: 'top',\n },\n styleOverrides: {\n tooltip: ({ theme }) => ({\n backgroundColor: 'rgb(0 0 0 / 64%)',\n backdropFilter: 'blur(3px)',\n fontSize: '0.75rem',\n padding: theme.spacing(1, 1.5),\n }),\n arrow: {\n color: 'rgb(0 0 0 / 64%)',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: ({ theme }) => ({\n backgroundColor: theme.vars.palette.background.paper,\n backgroundImage: 'none',\n }),\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundImage: 'none',\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: 'none',\n },\n },\n },\n MuiTabs: {\n ...widgetTheme.components?.MuiTabs,\n styleOverrides: {\n ...widgetTheme.components?.MuiTabs?.styleOverrides,\n root: ({ theme, ownerState }) => {\n const rootStyleOverrides = getStyleOverrides(\n 'MuiTabs',\n 'root',\n widgetTheme,\n ownerState\n )\n return {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent)`,\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 8%, transparent)`,\n }),\n borderRadius: theme.vars.shape.borderRadius,\n ...rootStyleOverrides,\n [`.${tabsClasses.indicator}`]: {\n backgroundColor: theme.vars.palette.background.paper,\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.background} 56%, transparent)`,\n }),\n borderRadius:\n theme.shape.borderRadius > 0\n ? `calc(${theme.vars.shape.borderRadius} - 4px)`\n : theme.vars.shape.borderRadius,\n boxShadow: `0px 2px 4px color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent)`,\n ...rootStyleOverrides?.[`.${tabsClasses.indicator}`],\n },\n }\n },\n },\n },\n MuiNavigationTabs: {\n ...widgetTheme.components?.MuiNavigationTabs,\n },\n MuiNavigationTab: {\n ...widgetTheme.components?.MuiNavigationTab,\n },\n MuiCheckbox: {\n styleOverrides: {\n root: {\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n },\n ...widgetTheme.components?.MuiCheckbox,\n },\n },\n })\n\n return theme\n}\n"],"mappings":"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"}
@@ -13,10 +13,6 @@ declare enum WidgetEvent {
13
13
  FormFieldChanged = "formFieldChanged",
14
14
  LowAddressActivityConfirmed = "lowAddressActivityConfirmed",
15
15
  PageEntered = "pageEntered",
16
- /**
17
- * @deprecated Use `PageEntered` event instead.
18
- */
19
- ReviewTransactionPageEntered = "reviewTransactionPageEntered",
20
16
  RouteExecutionCompleted = "routeExecutionCompleted",
21
17
  RouteExecutionFailed = "routeExecutionFailed",
22
18
  RouteExecutionStarted = "routeExecutionStarted",
@@ -37,7 +33,6 @@ type WidgetEvents = {
37
33
  formFieldChanged: FormFieldChanged;
38
34
  lowAddressActivityConfirmed: LowAddressActivityConfirmed;
39
35
  pageEntered: NavigationRouteType;
40
- reviewTransactionPageEntered?: Route;
41
36
  routeExecutionCompleted: Route;
42
37
  routeExecutionFailed: RouteExecutionUpdate;
43
38
  routeExecutionStarted: Route;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","names":[],"sources":["../../../src/types/events.ts"],"mappings":";;;;;;;aAMY,WAAA;EACV,eAAA;EACA,WAAA;EACA,cAAA;EACA,6BAAA;EACA,gBAAA;EACA,2BAAA;EACA,WAAA;;;;EAIA,4BAAA;EACA,uBAAA;EACA,oBAAA;EACA,qBAAA;EACA,qBAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;EACA,wBAAA;EACA,WAAA;EACA,cAAA;AAAA;AAAA,KAGU,YAAA;EACV,eAAA,EAAiB,KAAA;EACjB,WAAA,EAAa,WAAA;EACb,cAAA,EAAgB,cAAA;EAChB,6BAAA,EAA+B,kBAAA;EAC/B,gBAAA,EAAkB,gBAAA;EAClB,2BAAA,EAA6B,2BAAA;EAC7B,WAAA,EAAa,mBAAA;EACb,4BAAA,GAA+B,KAAA;EAC/B,uBAAA,EAAyB,KAAA;EACzB,oBAAA,EAAsB,oBAAA;EACtB,qBAAA,EAAuB,KAAA;EACvB,qBAAA,EAAuB,oBAAA;EACvB,kBAAA,EAAoB,wBAAA;EACpB,aAAA,EAAe,aAAA;EACf,mBAAA;EACA,cAAA,EAAgB,cAAA;EAChB,wBAAA,EAA0B,kBAAA;EAC1B,WAAA,EAAa,WAAA;EACb,eAAA,EAAiB,eAAA;EACjB,cAAA;AAAA;AAAA,KAGU,cAAA;EACV,SAAA;AAAA;AAAA,KAGU,wBAAA;EACV,aAAA;EACA,WAAA;EACA,UAAA;EACA,UAAA;EACA,SAAA;AAAA;AAAA,KAGU,oBAAA;EACV,KAAA,EAAO,KAAA;EACP,MAAA,EAAQ,eAAA;AAAA;AAAA,KAGE,aAAA;EACV,KAAA,EAAO,KAAA;EACP,MAAA,EAAQ,KAAA;AAAA;AAAA,KAGE,WAAA;EACV,KAAA;EACA,MAAA,EAAQ,aAAA;AAAA;AAAA,KAGE,kBAAA;EACV,OAAA,EAAS,OAAA;EACT,YAAA;AAAA;AAAA,KAGU,eAAA;EACV,OAAA;EACA,OAAA;EACA,SAAA,GAAY,SAAA;AAAA;AAAA,KAGF,gBAAA,iBACE,aAAA;EACV,SAAA,EAAW,CAAA;EACX,QAAA,EAAU,aAAA,CAAc,CAAA;EACxB,QAAA,EAAU,aAAA,CAAc,CAAA;AAAA,UAEpB,aAAA;AAAA,KAEI,cAAA,iBACM,aAAA,SAAsB,aAAA;EAEtC,OAAA,EAAS,CAAA;EACT,QAAA,EAAU,aAAA,CAAc,CAAA;EACxB,QAAA,EAAU,aAAA,CAAc,CAAA;EACxB,WAAA,EAAa,aAAA;EACb,WAAA,EAAa,aAAA;AAAA;AAAA,KAGH,WAAA;EACV,OAAA;EACA,MAAA;AAAA;AAAA,KAGU,2BAAA;EACV,OAAA;EACA,OAAA;AAAA"}
1
+ {"version":3,"file":"events.d.ts","names":[],"sources":["../../../src/types/events.ts"],"mappings":";;;;;;;aAMY,WAAA;EACV,eAAA;EACA,WAAA;EACA,cAAA;EACA,6BAAA;EACA,gBAAA;EACA,2BAAA;EACA,WAAA;EACA,uBAAA;EACA,oBAAA;EACA,qBAAA;EACA,qBAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;EACA,wBAAA;EACA,WAAA;EACA,cAAA;AAAA;AAAA,KAGU,YAAA;EACV,eAAA,EAAiB,KAAA;EACjB,WAAA,EAAa,WAAA;EACb,cAAA,EAAgB,cAAA;EAChB,6BAAA,EAA+B,kBAAA;EAC/B,gBAAA,EAAkB,gBAAA;EAClB,2BAAA,EAA6B,2BAAA;EAC7B,WAAA,EAAa,mBAAA;EACb,uBAAA,EAAyB,KAAA;EACzB,oBAAA,EAAsB,oBAAA;EACtB,qBAAA,EAAuB,KAAA;EACvB,qBAAA,EAAuB,oBAAA;EACvB,kBAAA,EAAoB,wBAAA;EACpB,aAAA,EAAe,aAAA;EACf,mBAAA;EACA,cAAA,EAAgB,cAAA;EAChB,wBAAA,EAA0B,kBAAA;EAC1B,WAAA,EAAa,WAAA;EACb,eAAA,EAAiB,eAAA;EACjB,cAAA;AAAA;AAAA,KAGU,cAAA;EACV,SAAA;AAAA;AAAA,KAGU,wBAAA;EACV,aAAA;EACA,WAAA;EACA,UAAA;EACA,UAAA;EACA,SAAA;AAAA;AAAA,KAGU,oBAAA;EACV,KAAA,EAAO,KAAA;EACP,MAAA,EAAQ,eAAA;AAAA;AAAA,KAGE,aAAA;EACV,KAAA,EAAO,KAAA;EACP,MAAA,EAAQ,KAAA;AAAA;AAAA,KAGE,WAAA;EACV,KAAA;EACA,MAAA,EAAQ,aAAA;AAAA;AAAA,KAGE,kBAAA;EACV,OAAA,EAAS,OAAA;EACT,YAAA;AAAA;AAAA,KAGU,eAAA;EACV,OAAA;EACA,OAAA;EACA,SAAA,GAAY,SAAA;AAAA;AAAA,KAGF,gBAAA,iBACE,aAAA;EACV,SAAA,EAAW,CAAA;EACX,QAAA,EAAU,aAAA,CAAc,CAAA;EACxB,QAAA,EAAU,aAAA,CAAc,CAAA;AAAA,UAEpB,aAAA;AAAA,KAEI,cAAA,iBACM,aAAA,SAAsB,aAAA;EAEtC,OAAA,EAAS,CAAA;EACT,QAAA,EAAU,aAAA,CAAc,CAAA;EACxB,QAAA,EAAU,aAAA,CAAc,CAAA;EACxB,WAAA,EAAa,aAAA;EACb,WAAA,EAAa,aAAA;AAAA;AAAA,KAGH,WAAA;EACV,OAAA;EACA,MAAA;AAAA;AAAA,KAGU,2BAAA;EACV,OAAA;EACA,OAAA;AAAA"}
@@ -7,10 +7,6 @@ let WidgetEvent = /* @__PURE__ */ function(WidgetEvent) {
7
7
  WidgetEvent["FormFieldChanged"] = "formFieldChanged";
8
8
  WidgetEvent["LowAddressActivityConfirmed"] = "lowAddressActivityConfirmed";
9
9
  WidgetEvent["PageEntered"] = "pageEntered";
10
- /**
11
- * @deprecated Use `PageEntered` event instead.
12
- */
13
- WidgetEvent["ReviewTransactionPageEntered"] = "reviewTransactionPageEntered";
14
10
  WidgetEvent["RouteExecutionCompleted"] = "routeExecutionCompleted";
15
11
  WidgetEvent["RouteExecutionFailed"] = "routeExecutionFailed";
16
12
  WidgetEvent["RouteExecutionStarted"] = "routeExecutionStarted";
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":[],"sources":["../../../src/types/events.ts"],"sourcesContent":["import type { ChainId, ChainType, ExecutionAction, Route } from '@lifi/sdk'\nimport type { DefaultValues } from '../stores/form/types.js'\nimport type { SettingsProps } from '../stores/settings/types.js'\nimport type { NavigationRouteType } from '../utils/navigationRoutes.js'\nimport type { TokenAmount } from './token.js'\n\nexport enum WidgetEvent {\n AvailableRoutes = 'availableRoutes',\n ChainPinned = 'chainPinned',\n ContactSupport = 'contactSupport',\n DestinationChainTokenSelected = 'destinationChainTokenSelected',\n FormFieldChanged = 'formFieldChanged',\n LowAddressActivityConfirmed = 'lowAddressActivityConfirmed',\n PageEntered = 'pageEntered',\n /**\n * @deprecated Use `PageEntered` event instead.\n */\n ReviewTransactionPageEntered = 'reviewTransactionPageEntered',\n RouteExecutionCompleted = 'routeExecutionCompleted',\n RouteExecutionFailed = 'routeExecutionFailed',\n RouteExecutionStarted = 'routeExecutionStarted',\n RouteExecutionUpdated = 'routeExecutionUpdated',\n RouteHighValueLoss = 'routeHighValueLoss',\n RouteSelected = 'routeSelected',\n SendToWalletToggled = 'sendToWalletToggled',\n SettingUpdated = 'settingUpdated',\n SourceChainTokenSelected = 'sourceChainTokenSelected',\n TokenSearch = 'tokenSearch',\n WidgetExpanded = 'widgetExpanded',\n}\n\nexport type WidgetEvents = {\n availableRoutes: Route[]\n chainPinned: ChainPinned\n contactSupport: ContactSupport\n destinationChainTokenSelected: ChainTokenSelected\n formFieldChanged: FormFieldChanged\n lowAddressActivityConfirmed: LowAddressActivityConfirmed\n pageEntered: NavigationRouteType\n reviewTransactionPageEntered?: Route\n routeExecutionCompleted: Route\n routeExecutionFailed: RouteExecutionUpdate\n routeExecutionStarted: Route\n routeExecutionUpdated: RouteExecutionUpdate\n routeHighValueLoss: RouteHighValueLossUpdate\n routeSelected: RouteSelected\n sendToWalletToggled: boolean\n settingUpdated: SettingUpdated\n sourceChainTokenSelected: ChainTokenSelected\n tokenSearch: TokenSearch\n walletConnected: WalletConnected\n widgetExpanded: boolean\n}\n\nexport type ContactSupport = {\n supportId?: string\n}\n\nexport type RouteHighValueLossUpdate = {\n fromAmountUSD: number\n toAmountUSD: number\n gasCostUSD?: number\n feeCostUSD?: number\n valueLoss: number\n}\n\nexport type RouteExecutionUpdate = {\n route: Route\n action: ExecutionAction\n}\n\nexport type RouteSelected = {\n route: Route\n routes: Route[]\n}\n\nexport type TokenSearch = {\n value: string\n tokens: TokenAmount[]\n}\n\nexport type ChainTokenSelected = {\n chainId: ChainId\n tokenAddress: string\n}\n\nexport type WalletConnected = {\n address?: string\n chainId?: number\n chainType?: ChainType\n}\n\nexport type FormFieldChanged = {\n [K in keyof DefaultValues]: {\n fieldName: K\n newValue: DefaultValues[K]\n oldValue: DefaultValues[K]\n }\n}[keyof DefaultValues]\n\nexport type SettingUpdated<\n K extends keyof SettingsProps = keyof SettingsProps,\n> = {\n setting: K\n newValue: SettingsProps[K]\n oldValue: SettingsProps[K]\n newSettings: SettingsProps\n oldSettings: SettingsProps\n}\n\nexport type ChainPinned = {\n chainId: number\n pinned: boolean\n}\n\nexport type LowAddressActivityConfirmed = {\n address: string\n chainId: number\n}\n"],"mappings":";AAMA,IAAY,cAAL,yBAAA,aAAA;AACL,aAAA,qBAAA;AACA,aAAA,iBAAA;AACA,aAAA,oBAAA;AACA,aAAA,mCAAA;AACA,aAAA,sBAAA;AACA,aAAA,iCAAA;AACA,aAAA,iBAAA;;;;AAIA,aAAA,kCAAA;AACA,aAAA,6BAAA;AACA,aAAA,0BAAA;AACA,aAAA,2BAAA;AACA,aAAA,2BAAA;AACA,aAAA,wBAAA;AACA,aAAA,mBAAA;AACA,aAAA,yBAAA;AACA,aAAA,oBAAA;AACA,aAAA,8BAAA;AACA,aAAA,iBAAA;AACA,aAAA,oBAAA;;KACD"}
1
+ {"version":3,"file":"events.js","names":[],"sources":["../../../src/types/events.ts"],"sourcesContent":["import type { ChainId, ChainType, ExecutionAction, Route } from '@lifi/sdk'\nimport type { DefaultValues } from '../stores/form/types.js'\nimport type { SettingsProps } from '../stores/settings/types.js'\nimport type { NavigationRouteType } from '../utils/navigationRoutes.js'\nimport type { TokenAmount } from './token.js'\n\nexport enum WidgetEvent {\n AvailableRoutes = 'availableRoutes',\n ChainPinned = 'chainPinned',\n ContactSupport = 'contactSupport',\n DestinationChainTokenSelected = 'destinationChainTokenSelected',\n FormFieldChanged = 'formFieldChanged',\n LowAddressActivityConfirmed = 'lowAddressActivityConfirmed',\n PageEntered = 'pageEntered',\n RouteExecutionCompleted = 'routeExecutionCompleted',\n RouteExecutionFailed = 'routeExecutionFailed',\n RouteExecutionStarted = 'routeExecutionStarted',\n RouteExecutionUpdated = 'routeExecutionUpdated',\n RouteHighValueLoss = 'routeHighValueLoss',\n RouteSelected = 'routeSelected',\n SendToWalletToggled = 'sendToWalletToggled',\n SettingUpdated = 'settingUpdated',\n SourceChainTokenSelected = 'sourceChainTokenSelected',\n TokenSearch = 'tokenSearch',\n WidgetExpanded = 'widgetExpanded',\n}\n\nexport type WidgetEvents = {\n availableRoutes: Route[]\n chainPinned: ChainPinned\n contactSupport: ContactSupport\n destinationChainTokenSelected: ChainTokenSelected\n formFieldChanged: FormFieldChanged\n lowAddressActivityConfirmed: LowAddressActivityConfirmed\n pageEntered: NavigationRouteType\n routeExecutionCompleted: Route\n routeExecutionFailed: RouteExecutionUpdate\n routeExecutionStarted: Route\n routeExecutionUpdated: RouteExecutionUpdate\n routeHighValueLoss: RouteHighValueLossUpdate\n routeSelected: RouteSelected\n sendToWalletToggled: boolean\n settingUpdated: SettingUpdated\n sourceChainTokenSelected: ChainTokenSelected\n tokenSearch: TokenSearch\n walletConnected: WalletConnected\n widgetExpanded: boolean\n}\n\nexport type ContactSupport = {\n supportId?: string\n}\n\nexport type RouteHighValueLossUpdate = {\n fromAmountUSD: number\n toAmountUSD: number\n gasCostUSD?: number\n feeCostUSD?: number\n valueLoss: number\n}\n\nexport type RouteExecutionUpdate = {\n route: Route\n action: ExecutionAction\n}\n\nexport type RouteSelected = {\n route: Route\n routes: Route[]\n}\n\nexport type TokenSearch = {\n value: string\n tokens: TokenAmount[]\n}\n\nexport type ChainTokenSelected = {\n chainId: ChainId\n tokenAddress: string\n}\n\nexport type WalletConnected = {\n address?: string\n chainId?: number\n chainType?: ChainType\n}\n\nexport type FormFieldChanged = {\n [K in keyof DefaultValues]: {\n fieldName: K\n newValue: DefaultValues[K]\n oldValue: DefaultValues[K]\n }\n}[keyof DefaultValues]\n\nexport type SettingUpdated<\n K extends keyof SettingsProps = keyof SettingsProps,\n> = {\n setting: K\n newValue: SettingsProps[K]\n oldValue: SettingsProps[K]\n newSettings: SettingsProps\n oldSettings: SettingsProps\n}\n\nexport type ChainPinned = {\n chainId: number\n pinned: boolean\n}\n\nexport type LowAddressActivityConfirmed = {\n address: string\n chainId: number\n}\n"],"mappings":";AAMA,IAAY,cAAL,yBAAA,aAAA;AACL,aAAA,qBAAA;AACA,aAAA,iBAAA;AACA,aAAA,oBAAA;AACA,aAAA,mCAAA;AACA,aAAA,sBAAA;AACA,aAAA,iCAAA;AACA,aAAA,iBAAA;AACA,aAAA,6BAAA;AACA,aAAA,0BAAA;AACA,aAAA,2BAAA;AACA,aAAA,2BAAA;AACA,aAAA,wBAAA;AACA,aAAA,mBAAA;AACA,aAAA,yBAAA;AACA,aAAA,oBAAA;AACA,aAAA,8BAAA;AACA,aAAA,iBAAA;AACA,aAAA,oBAAA;;KACD"}
@@ -38,10 +38,6 @@ interface NavigationProps {
38
38
  }
39
39
  type WidgetThemeComponents = Partial<Pick<Components<Theme>, "MuiAppBar" | "MuiAvatar" | "MuiButton" | "MuiCard" | "MuiIconButton" | "MuiInputCard" | "MuiNavigationTabs" | "MuiNavigationTab" | "MuiTabs" | "MuiCheckbox">>;
40
40
  type WidgetTheme = {
41
- /**
42
- * @deprecated Use `colorScheme` instead.
43
- */
44
- palette?: PaletteOptions;
45
41
  colorSchemes?: {
46
42
  light?: {
47
43
  palette: PaletteOptions;
@@ -119,7 +115,7 @@ interface WidgetWalletConfig {
119
115
  */
120
116
  forceInternalWalletManagement?: boolean;
121
117
  }
122
- interface WidgetSDKConfig extends Omit<SDKConfig, "apiKey" | "disableVersionCheck" | "integrator" | "routeOptions" | "widgetVersion"> {
118
+ interface WidgetSDKConfig extends Omit<SDKConfig, "apiKey" | "disableVersionCheck" | "integrator" | "providers" | "routeOptions" | "widgetVersion"> {
123
119
  routeOptions?: Omit<RouteOptions, "bridges" | "exchanges">;
124
120
  executionOptions?: Pick<ExecutionOptions, "updateTransactionRequestHook">;
125
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","names":[],"sources":["../../../src/types/widget.ts"],"mappings":"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"}
1
+ {"version":3,"file":"widget.d.ts","names":[],"sources":["../../../src/types/widget.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","names":[],"sources":["../../../src/types/widget.ts"],"sourcesContent":["import type {\n BaseToken,\n ChainType,\n ContractCall,\n ExecutionOptions,\n ExtendedChain,\n Order,\n RouteExtended,\n RouteOptions,\n SDKConfig,\n StaticToken,\n Token,\n} from '@lifi/sdk'\nimport type { WalletMenuOpenArgs } from '@lifi/wallet-management'\nimport type { WidgetProviderProps } from '@lifi/widget-provider'\nimport type {\n Components,\n PaletteMode,\n PaletteOptions,\n Shape,\n SxProps,\n Theme,\n} from '@mui/material'\nimport type { TypographyVariantsOptions } from '@mui/material/styles'\nimport type {\n CSSProperties,\n FC,\n PropsWithChildren,\n ReactNode,\n RefObject,\n} from 'react'\nimport type {\n LanguageKey,\n LanguageResources,\n} from '../providers/I18nProvider/types.js'\nimport type { DefaultFieldValues } from '../stores/form/types.js'\n\nexport type WidgetVariant = 'compact' | 'wide' | 'drawer'\nexport type WidgetSubvariant = 'default' | 'split' | 'custom' | 'refuel'\nexport type SplitSubvariant = 'bridge' | 'swap'\nexport type SplitSubvariantOptions = {\n defaultTab: SplitSubvariant\n}\nexport type CustomSubvariant = 'checkout' | 'deposit'\nexport type WideSubvariant = {\n disableChainSidebar?: boolean\n}\nexport interface SubvariantOptions {\n /**\n * Configure split subvariant behavior:\n * - 'bridge' | 'swap': Single mode without tabs\n * - { defaultTab: 'bridge' | 'swap' }: Tabs mode with configurable default tab\n */\n split?: SplitSubvariant | SplitSubvariantOptions\n custom?: CustomSubvariant\n wide?: WideSubvariant\n}\n\nexport type Appearance = PaletteMode | 'system'\nexport interface NavigationProps {\n /**\n * If given, uses a negative margin to counteract the padding on sides for navigation elements like icon buttons.\n * @default true\n */\n edge?: boolean\n}\nexport type WidgetThemeComponents = Partial<\n Pick<\n Components<Theme>,\n | 'MuiAppBar'\n | 'MuiAvatar'\n | 'MuiButton'\n | 'MuiCard'\n | 'MuiIconButton'\n | 'MuiInputCard'\n | 'MuiNavigationTabs'\n | 'MuiNavigationTab'\n | 'MuiTabs'\n | 'MuiCheckbox'\n >\n>\n\nexport type WidgetTheme = {\n /**\n * @deprecated Use `colorScheme` instead.\n */\n palette?: PaletteOptions\n colorSchemes?: {\n light?: {\n palette: PaletteOptions\n }\n dark?: {\n palette: PaletteOptions\n }\n }\n shape?: Partial<Shape>\n typography?: TypographyVariantsOptions\n components?: WidgetThemeComponents\n container?: CSSProperties\n routesContainer?: CSSProperties\n chainSidebarContainer?: CSSProperties\n header?: CSSProperties\n navigation?: NavigationProps\n}\n\nexport enum DisabledUI {\n FromAmount = 'fromAmount',\n FromToken = 'fromToken',\n ToAddress = 'toAddress',\n ToToken = 'toToken',\n}\nexport type DisabledUIType = `${DisabledUI}`\n\nexport enum HiddenUI {\n Appearance = 'appearance',\n DrawerCloseButton = 'drawerCloseButton',\n History = 'history',\n Language = 'language',\n PoweredBy = 'poweredBy',\n ToAddress = 'toAddress',\n FromToken = 'fromToken',\n ToToken = 'toToken',\n WalletMenu = 'walletMenu',\n IntegratorStepDetails = 'integratorStepDetails',\n ReverseTokensButton = 'reverseTokensButton',\n RouteTokenDescription = 'routeTokenDescription',\n RouteCardPriceImpact = 'routeCardPriceImpact',\n ChainSelect = 'chainSelect',\n BridgesSettings = 'bridgesSettings',\n AddressBookConnectedWallets = 'addressBookConnectedWallets',\n LowAddressActivityConfirmation = 'lowAddressActivityConfirmation',\n GasRefuelMessage = 'gasRefuelMessage',\n SearchTokenInput = 'searchTokenInput',\n InsufficientGasMessage = 'insufficientGasMessage',\n ContactSupport = 'contactSupport',\n HideSmallBalances = 'hideSmallBalances',\n AllNetworks = 'allNetworks',\n}\nexport type HiddenUIType = `${HiddenUI}`\n\nexport enum RequiredUI {\n ToAddress = 'toAddress',\n AccountDeployedMessage = 'accountDeployedMessage',\n}\nexport type RequiredUIType = `${RequiredUI}`\n\nexport type DefaultUI = {\n transactionDetailsExpanded?: boolean\n navigationHeaderTitleNoWrap?: boolean\n}\n\nexport interface WidgetWalletConfig {\n walletEcosystemsOrder?: Record<string, ChainType[]>\n onConnect?(args?: WalletMenuOpenArgs): void\n /**\n * Determines whether the widget should provide partial wallet management functionality.\n *\n * In partial mode, external wallet management will be used for \"opt-out\" providers,\n * while the internal management is applied for any remaining providers that do not opt out.\n * This allows a flexible balance between the integrator's custom wallet menu and the widget's native wallet menu.\n * @default false\n */\n usePartialWalletManagement?: boolean\n /**\n * This option forces the widget to always use internal wallet management ignoring external wallet management contexts\n * @default false\n */\n forceInternalWalletManagement?: boolean\n}\n\nexport interface WidgetSDKConfig\n extends Omit<\n SDKConfig,\n | 'apiKey'\n | 'disableVersionCheck'\n | 'integrator'\n | 'routeOptions'\n | 'widgetVersion'\n > {\n routeOptions?: Omit<RouteOptions, 'bridges' | 'exchanges'>\n executionOptions?: Pick<ExecutionOptions, 'updateTransactionRequestHook'>\n}\n\nexport interface WidgetContractTool {\n name: string\n logoURI: string\n}\n\nexport interface CalculateFeeParams {\n fromChain: ExtendedChain\n toChain: ExtendedChain\n fromToken: Token\n toToken: Token\n fromAddress?: string\n toAddress?: string\n fromAmount?: bigint\n toAmount?: bigint\n slippage?: number\n}\n\nexport interface WidgetFeeConfig {\n name?: string\n logoURI?: string\n fee?: number\n /**\n * Whether to show the fee percentage in the fee details.\n * @default false\n */\n showFeePercentage?: boolean\n /**\n * Whether to show a tooltip with the fee details. Requires `name` or `feeTooltipComponent` to be set.\n * @default false\n */\n showFeeTooltip?: boolean\n /**\n * Custom tooltip component to show with the fee details.\n */\n feeTooltipComponent?: ReactNode\n /**\n * Function to calculate fees before fetching quotes.\n * If provided, this function will be used instead of the `fee` parameter.\n * Only one of `fee` or `calculateFee` should be used.\n *\n * @param params Object containing the fee calculation parameters\n * @returns A promise that resolves to the calculated fee as a number (e.g., 0.03 represents a 3% fee)\n */\n calculateFee?(params: CalculateFeeParams): Promise<number | undefined>\n /**\n * @internal\n */\n _vcComponent?: FC<{ route: RouteExtended }>\n}\n\nexport interface ToAddress {\n name?: string\n address: string\n chainType: ChainType\n logoURI?: string\n}\n\nexport interface AllowDeny<T> {\n allow?: T[]\n deny?: T[]\n}\n\nexport type AllowDenySetItem = string | number\nexport interface AllowDenySet {\n allow?: Set<AllowDenySetItem>\n deny?: Set<AllowDenySetItem>\n}\n\nexport type AllowDenySets = {\n from?: AllowDenySet\n to?: AllowDenySet\n} & AllowDenySet\n\nexport type AllowDenyItems<T> = {\n from?: AllowDeny<T>\n to?: AllowDeny<T>\n} & AllowDeny<T>\n\nexport type WidgetChains = {\n types?: AllowDeny<ChainType>\n} & AllowDenyItems<number>\n\nexport type WidgetTokens = {\n featured?: StaticToken[]\n include?: Token[]\n popular?: StaticToken[]\n} & AllowDenyItems<BaseToken>\n\nexport type WidgetLanguages = {\n default?: LanguageKey\n} & AllowDeny<LanguageKey>\n\nexport type PoweredByType = 'default' | 'jumper'\n\nexport interface RouteLabel {\n text: string\n sx?: SxProps<Theme>\n}\n\nexport interface RouteLabelRule {\n label: RouteLabel\n // Matching criteria\n bridges?: AllowDeny<string>\n exchanges?: AllowDeny<string>\n fromChainId?: number[]\n toChainId?: number[]\n fromTokenAddress?: string[]\n toTokenAddress?: string[]\n}\n\nexport type ExplorerUrl =\n | string\n | {\n url: string\n txPath?: string\n addressPath?: string\n }\n\nexport type WidgetProvider = (\n props: PropsWithChildren<WidgetProviderProps>\n) => ReactNode\n\nexport interface WidgetConfig {\n fromChain?: number\n toChain?: number\n fromToken?: string\n toToken?: string\n toAddress?: ToAddress\n toAddresses?: ToAddress[]\n fromAmount?: number | string\n minFromAmountUSD?: number\n toAmount?: number | string\n formUpdateKey?: string\n\n providers?: WidgetProvider[]\n\n contractCalls?: ContractCall[]\n contractComponent?: ReactNode\n contractSecondaryComponent?: ReactNode\n contractCompactComponent?: ReactNode\n contractTool?: WidgetContractTool\n integrator: string\n apiKey?: string\n fee?: number\n feeConfig?: WidgetFeeConfig\n referrer?: string\n\n routePriority?: Order\n slippage?: number\n\n variant?: WidgetVariant\n subvariant?: WidgetSubvariant\n subvariantOptions?: SubvariantOptions\n\n appearance?: Appearance\n theme?: WidgetTheme\n\n disabledUI?: DisabledUIType[]\n hiddenUI?: HiddenUIType[]\n requiredUI?: RequiredUIType[]\n defaultUI?: DefaultUI\n useRecommendedRoute?: boolean\n useRelayerRoutes?: boolean\n\n walletConfig?: WidgetWalletConfig\n sdkConfig?: WidgetSDKConfig\n\n buildUrl?: boolean\n keyPrefix?: string\n\n bridges?: AllowDeny<string>\n exchanges?: AllowDeny<string>\n chains?: WidgetChains\n tokens?: WidgetTokens\n languages?: WidgetLanguages\n languageResources?: LanguageResources\n explorerUrls?: Record<number, ExplorerUrl[]> &\n Partial<Record<'internal', ExplorerUrl[]>>\n poweredBy?: PoweredByType\n\n /**\n * Custom labels/badges to show on routes based on specified rules\n */\n routeLabels?: RouteLabelRule[]\n}\n\nexport interface FormFieldOptions {\n setUrlSearchParam: boolean\n}\n\nexport interface FieldValues\n extends Omit<DefaultFieldValues, 'fromAmount' | 'toAmount' | 'toAddress'> {\n fromAmount?: number | string\n toAmount?: number | string\n toAddress?: ToAddress | string\n}\n\nexport type FieldNames = keyof FieldValues\n\nexport type SetFieldValueFunction = <K extends FieldNames>(\n key: K,\n value: FieldValues[K],\n options?: FormFieldOptions\n) => void\n\nexport type FormState = {\n setFieldValue: SetFieldValueFunction\n}\n\nexport type FormRef = RefObject<FormState | null>\n\nexport interface FormRefProps {\n formRef?: FormRef\n}\n\nexport interface WidgetConfigProps extends FormRefProps {\n config: WidgetConfig\n}\n\nexport interface WidgetConfigPartialProps {\n config?: Partial<WidgetConfig>\n}\n\nexport type WidgetProps = WidgetDrawerProps &\n WidgetConfig &\n WidgetConfigPartialProps &\n FormRefProps\n\nexport interface WidgetDrawerProps extends WidgetConfigPartialProps {\n elementRef?: RefObject<HTMLDivElement>\n open?: boolean\n /**\n * Make sure to make the onClose callback stable (e.g. using useCallback) to avoid causing re-renders of the entire widget\n */\n onClose?(): void\n}\n\nexport enum ExpansionType {\n Routes = 'routes',\n FromChain = 'fromChain',\n ToChain = 'toChain',\n}\n"],"mappings":";AAyGA,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,gBAAA;AACA,YAAA,eAAA;AACA,YAAA,eAAA;AACA,YAAA,aAAA;;KACD;AAGD,IAAY,WAAL,yBAAA,UAAA;AACL,UAAA,gBAAA;AACA,UAAA,uBAAA;AACA,UAAA,aAAA;AACA,UAAA,cAAA;AACA,UAAA,eAAA;AACA,UAAA,eAAA;AACA,UAAA,eAAA;AACA,UAAA,aAAA;AACA,UAAA,gBAAA;AACA,UAAA,2BAAA;AACA,UAAA,yBAAA;AACA,UAAA,2BAAA;AACA,UAAA,0BAAA;AACA,UAAA,iBAAA;AACA,UAAA,qBAAA;AACA,UAAA,iCAAA;AACA,UAAA,oCAAA;AACA,UAAA,sBAAA;AACA,UAAA,sBAAA;AACA,UAAA,4BAAA;AACA,UAAA,oBAAA;AACA,UAAA,uBAAA;AACA,UAAA,iBAAA;;KACD;AAGD,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,eAAA;AACA,YAAA,4BAAA;;KACD;AAqRD,IAAY,gBAAL,yBAAA,eAAA;AACL,eAAA,YAAA;AACA,eAAA,eAAA;AACA,eAAA,aAAA;;KACD"}
1
+ {"version":3,"file":"widget.js","names":[],"sources":["../../../src/types/widget.ts"],"sourcesContent":["import type {\n BaseToken,\n ChainType,\n ContractCall,\n ExecutionOptions,\n ExtendedChain,\n Order,\n RouteExtended,\n RouteOptions,\n SDKConfig,\n StaticToken,\n Token,\n} from '@lifi/sdk'\nimport type { WalletMenuOpenArgs } from '@lifi/wallet-management'\nimport type { WidgetProviderProps } from '@lifi/widget-provider'\nimport type {\n Components,\n PaletteMode,\n PaletteOptions,\n Shape,\n SxProps,\n Theme,\n} from '@mui/material'\nimport type { TypographyVariantsOptions } from '@mui/material/styles'\nimport type {\n CSSProperties,\n FC,\n PropsWithChildren,\n ReactNode,\n RefObject,\n} from 'react'\nimport type {\n LanguageKey,\n LanguageResources,\n} from '../providers/I18nProvider/types.js'\nimport type { DefaultFieldValues } from '../stores/form/types.js'\n\nexport type WidgetVariant = 'compact' | 'wide' | 'drawer'\nexport type WidgetSubvariant = 'default' | 'split' | 'custom' | 'refuel'\nexport type SplitSubvariant = 'bridge' | 'swap'\nexport type SplitSubvariantOptions = {\n defaultTab: SplitSubvariant\n}\nexport type CustomSubvariant = 'checkout' | 'deposit'\nexport type WideSubvariant = {\n disableChainSidebar?: boolean\n}\nexport interface SubvariantOptions {\n /**\n * Configure split subvariant behavior:\n * - 'bridge' | 'swap': Single mode without tabs\n * - { defaultTab: 'bridge' | 'swap' }: Tabs mode with configurable default tab\n */\n split?: SplitSubvariant | SplitSubvariantOptions\n custom?: CustomSubvariant\n wide?: WideSubvariant\n}\n\nexport type Appearance = PaletteMode | 'system'\nexport interface NavigationProps {\n /**\n * If given, uses a negative margin to counteract the padding on sides for navigation elements like icon buttons.\n * @default true\n */\n edge?: boolean\n}\nexport type WidgetThemeComponents = Partial<\n Pick<\n Components<Theme>,\n | 'MuiAppBar'\n | 'MuiAvatar'\n | 'MuiButton'\n | 'MuiCard'\n | 'MuiIconButton'\n | 'MuiInputCard'\n | 'MuiNavigationTabs'\n | 'MuiNavigationTab'\n | 'MuiTabs'\n | 'MuiCheckbox'\n >\n>\n\nexport type WidgetTheme = {\n colorSchemes?: {\n light?: {\n palette: PaletteOptions\n }\n dark?: {\n palette: PaletteOptions\n }\n }\n shape?: Partial<Shape>\n typography?: TypographyVariantsOptions\n components?: WidgetThemeComponents\n container?: CSSProperties\n routesContainer?: CSSProperties\n chainSidebarContainer?: CSSProperties\n header?: CSSProperties\n navigation?: NavigationProps\n}\n\nexport enum DisabledUI {\n FromAmount = 'fromAmount',\n FromToken = 'fromToken',\n ToAddress = 'toAddress',\n ToToken = 'toToken',\n}\nexport type DisabledUIType = `${DisabledUI}`\n\nexport enum HiddenUI {\n Appearance = 'appearance',\n DrawerCloseButton = 'drawerCloseButton',\n History = 'history',\n Language = 'language',\n PoweredBy = 'poweredBy',\n ToAddress = 'toAddress',\n FromToken = 'fromToken',\n ToToken = 'toToken',\n WalletMenu = 'walletMenu',\n IntegratorStepDetails = 'integratorStepDetails',\n ReverseTokensButton = 'reverseTokensButton',\n RouteTokenDescription = 'routeTokenDescription',\n RouteCardPriceImpact = 'routeCardPriceImpact',\n ChainSelect = 'chainSelect',\n BridgesSettings = 'bridgesSettings',\n AddressBookConnectedWallets = 'addressBookConnectedWallets',\n LowAddressActivityConfirmation = 'lowAddressActivityConfirmation',\n GasRefuelMessage = 'gasRefuelMessage',\n SearchTokenInput = 'searchTokenInput',\n InsufficientGasMessage = 'insufficientGasMessage',\n ContactSupport = 'contactSupport',\n HideSmallBalances = 'hideSmallBalances',\n AllNetworks = 'allNetworks',\n}\nexport type HiddenUIType = `${HiddenUI}`\n\nexport enum RequiredUI {\n ToAddress = 'toAddress',\n AccountDeployedMessage = 'accountDeployedMessage',\n}\nexport type RequiredUIType = `${RequiredUI}`\n\nexport type DefaultUI = {\n transactionDetailsExpanded?: boolean\n navigationHeaderTitleNoWrap?: boolean\n}\n\nexport interface WidgetWalletConfig {\n walletEcosystemsOrder?: Record<string, ChainType[]>\n onConnect?(args?: WalletMenuOpenArgs): void\n /**\n * Determines whether the widget should provide partial wallet management functionality.\n *\n * In partial mode, external wallet management will be used for \"opt-out\" providers,\n * while the internal management is applied for any remaining providers that do not opt out.\n * This allows a flexible balance between the integrator's custom wallet menu and the widget's native wallet menu.\n * @default false\n */\n usePartialWalletManagement?: boolean\n /**\n * This option forces the widget to always use internal wallet management ignoring external wallet management contexts\n * @default false\n */\n forceInternalWalletManagement?: boolean\n}\n\nexport interface WidgetSDKConfig\n extends Omit<\n SDKConfig,\n | 'apiKey'\n | 'disableVersionCheck'\n | 'integrator'\n | 'providers'\n | 'routeOptions'\n | 'widgetVersion'\n > {\n routeOptions?: Omit<RouteOptions, 'bridges' | 'exchanges'>\n executionOptions?: Pick<ExecutionOptions, 'updateTransactionRequestHook'>\n}\n\nexport interface WidgetContractTool {\n name: string\n logoURI: string\n}\n\nexport interface CalculateFeeParams {\n fromChain: ExtendedChain\n toChain: ExtendedChain\n fromToken: Token\n toToken: Token\n fromAddress?: string\n toAddress?: string\n fromAmount?: bigint\n toAmount?: bigint\n slippage?: number\n}\n\nexport interface WidgetFeeConfig {\n name?: string\n logoURI?: string\n fee?: number\n /**\n * Whether to show the fee percentage in the fee details.\n * @default false\n */\n showFeePercentage?: boolean\n /**\n * Whether to show a tooltip with the fee details. Requires `name` or `feeTooltipComponent` to be set.\n * @default false\n */\n showFeeTooltip?: boolean\n /**\n * Custom tooltip component to show with the fee details.\n */\n feeTooltipComponent?: ReactNode\n /**\n * Function to calculate fees before fetching quotes.\n * If provided, this function will be used instead of the `fee` parameter.\n * Only one of `fee` or `calculateFee` should be used.\n *\n * @param params Object containing the fee calculation parameters\n * @returns A promise that resolves to the calculated fee as a number (e.g., 0.03 represents a 3% fee)\n */\n calculateFee?(params: CalculateFeeParams): Promise<number | undefined>\n /**\n * @internal\n */\n _vcComponent?: FC<{ route: RouteExtended }>\n}\n\nexport interface ToAddress {\n name?: string\n address: string\n chainType: ChainType\n logoURI?: string\n}\n\nexport interface AllowDeny<T> {\n allow?: T[]\n deny?: T[]\n}\n\nexport type AllowDenySetItem = string | number\nexport interface AllowDenySet {\n allow?: Set<AllowDenySetItem>\n deny?: Set<AllowDenySetItem>\n}\n\nexport type AllowDenySets = {\n from?: AllowDenySet\n to?: AllowDenySet\n} & AllowDenySet\n\nexport type AllowDenyItems<T> = {\n from?: AllowDeny<T>\n to?: AllowDeny<T>\n} & AllowDeny<T>\n\nexport type WidgetChains = {\n types?: AllowDeny<ChainType>\n} & AllowDenyItems<number>\n\nexport type WidgetTokens = {\n featured?: StaticToken[]\n include?: Token[]\n popular?: StaticToken[]\n} & AllowDenyItems<BaseToken>\n\nexport type WidgetLanguages = {\n default?: LanguageKey\n} & AllowDeny<LanguageKey>\n\nexport type PoweredByType = 'default' | 'jumper'\n\nexport interface RouteLabel {\n text: string\n sx?: SxProps<Theme>\n}\n\nexport interface RouteLabelRule {\n label: RouteLabel\n // Matching criteria\n bridges?: AllowDeny<string>\n exchanges?: AllowDeny<string>\n fromChainId?: number[]\n toChainId?: number[]\n fromTokenAddress?: string[]\n toTokenAddress?: string[]\n}\n\nexport type ExplorerUrl =\n | string\n | {\n url: string\n txPath?: string\n addressPath?: string\n }\n\nexport type WidgetProvider = (\n props: PropsWithChildren<WidgetProviderProps>\n) => ReactNode\n\nexport interface WidgetConfig {\n fromChain?: number\n toChain?: number\n fromToken?: string\n toToken?: string\n toAddress?: ToAddress\n toAddresses?: ToAddress[]\n fromAmount?: number | string\n minFromAmountUSD?: number\n toAmount?: number | string\n formUpdateKey?: string\n\n providers?: WidgetProvider[]\n\n contractCalls?: ContractCall[]\n contractComponent?: ReactNode\n contractSecondaryComponent?: ReactNode\n contractCompactComponent?: ReactNode\n contractTool?: WidgetContractTool\n integrator: string\n apiKey?: string\n fee?: number\n feeConfig?: WidgetFeeConfig\n referrer?: string\n\n routePriority?: Order\n slippage?: number\n\n variant?: WidgetVariant\n subvariant?: WidgetSubvariant\n subvariantOptions?: SubvariantOptions\n\n appearance?: Appearance\n theme?: WidgetTheme\n\n disabledUI?: DisabledUIType[]\n hiddenUI?: HiddenUIType[]\n requiredUI?: RequiredUIType[]\n defaultUI?: DefaultUI\n useRecommendedRoute?: boolean\n useRelayerRoutes?: boolean\n\n walletConfig?: WidgetWalletConfig\n sdkConfig?: WidgetSDKConfig\n\n buildUrl?: boolean\n keyPrefix?: string\n\n bridges?: AllowDeny<string>\n exchanges?: AllowDeny<string>\n chains?: WidgetChains\n tokens?: WidgetTokens\n languages?: WidgetLanguages\n languageResources?: LanguageResources\n explorerUrls?: Record<number, ExplorerUrl[]> &\n Partial<Record<'internal', ExplorerUrl[]>>\n poweredBy?: PoweredByType\n\n /**\n * Custom labels/badges to show on routes based on specified rules\n */\n routeLabels?: RouteLabelRule[]\n}\n\nexport interface FormFieldOptions {\n setUrlSearchParam: boolean\n}\n\nexport interface FieldValues\n extends Omit<DefaultFieldValues, 'fromAmount' | 'toAmount' | 'toAddress'> {\n fromAmount?: number | string\n toAmount?: number | string\n toAddress?: ToAddress | string\n}\n\nexport type FieldNames = keyof FieldValues\n\nexport type SetFieldValueFunction = <K extends FieldNames>(\n key: K,\n value: FieldValues[K],\n options?: FormFieldOptions\n) => void\n\nexport type FormState = {\n setFieldValue: SetFieldValueFunction\n}\n\nexport type FormRef = RefObject<FormState | null>\n\nexport interface FormRefProps {\n formRef?: FormRef\n}\n\nexport interface WidgetConfigProps extends FormRefProps {\n config: WidgetConfig\n}\n\nexport interface WidgetConfigPartialProps {\n config?: Partial<WidgetConfig>\n}\n\nexport type WidgetProps = WidgetDrawerProps &\n WidgetConfig &\n WidgetConfigPartialProps &\n FormRefProps\n\nexport interface WidgetDrawerProps extends WidgetConfigPartialProps {\n elementRef?: RefObject<HTMLDivElement>\n open?: boolean\n /**\n * Make sure to make the onClose callback stable (e.g. using useCallback) to avoid causing re-renders of the entire widget\n */\n onClose?(): void\n}\n\nexport enum ExpansionType {\n Routes = 'routes',\n FromChain = 'fromChain',\n ToChain = 'toChain',\n}\n"],"mappings":";AAqGA,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,gBAAA;AACA,YAAA,eAAA;AACA,YAAA,eAAA;AACA,YAAA,aAAA;;KACD;AAGD,IAAY,WAAL,yBAAA,UAAA;AACL,UAAA,gBAAA;AACA,UAAA,uBAAA;AACA,UAAA,aAAA;AACA,UAAA,cAAA;AACA,UAAA,eAAA;AACA,UAAA,eAAA;AACA,UAAA,eAAA;AACA,UAAA,aAAA;AACA,UAAA,gBAAA;AACA,UAAA,2BAAA;AACA,UAAA,yBAAA;AACA,UAAA,2BAAA;AACA,UAAA,0BAAA;AACA,UAAA,iBAAA;AACA,UAAA,qBAAA;AACA,UAAA,iCAAA;AACA,UAAA,oCAAA;AACA,UAAA,sBAAA;AACA,UAAA,sBAAA;AACA,UAAA,4BAAA;AACA,UAAA,oBAAA;AACA,UAAA,uBAAA;AACA,UAAA,iBAAA;;KACD;AAGD,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,eAAA;AACA,YAAA,4BAAA;;KACD;AAsRD,IAAY,gBAAL,yBAAA,eAAA;AACL,eAAA,YAAA;AACA,eAAA,eAAA;AACA,eAAA,aAAA;;KACD"}