@lifi/widget 4.0.0-beta.17 → 4.0.0-beta.19

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 (327) hide show
  1. package/dist/esm/App.js.map +1 -1
  2. package/dist/esm/AppDefault.js.map +1 -1
  3. package/dist/esm/AppDrawer.js.map +1 -1
  4. package/dist/esm/AppLayout.js.map +1 -1
  5. package/dist/esm/AppProvider.js.map +1 -1
  6. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  7. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  8. package/dist/esm/components/AmountInput/AmountInputStartAdornment.js.map +1 -1
  9. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  10. package/dist/esm/components/AppContainer.js.map +1 -1
  11. package/dist/esm/components/Avatar/AccountAvatar.js.map +1 -1
  12. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  13. package/dist/esm/components/Avatar/Avatar.style.js.map +1 -1
  14. package/dist/esm/components/Avatar/ChainBadgeContent.js.map +1 -1
  15. package/dist/esm/components/Avatar/SmallAvatar.js.map +1 -1
  16. package/dist/esm/components/Avatar/TokenAvatar.js.map +1 -1
  17. package/dist/esm/components/Avatar/utils.js.map +1 -1
  18. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  19. package/dist/esm/components/BottomSheet/BottomSheet.js.map +1 -1
  20. package/dist/esm/components/Card/Card.js.map +1 -1
  21. package/dist/esm/components/Card/CardIconButton.js.map +1 -1
  22. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  23. package/dist/esm/components/ChainSelect/ChainSelect.style.js.map +1 -1
  24. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  25. package/dist/esm/components/Chains/AllChainsAvatar.js +1 -1
  26. package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -1
  27. package/dist/esm/components/Chains/ChainList.js.map +1 -1
  28. package/dist/esm/components/Chains/ChainList.style.js.map +1 -1
  29. package/dist/esm/components/Chains/ChainListItem.js.map +1 -1
  30. package/dist/esm/components/Chains/ChainSearchInput.js.map +1 -1
  31. package/dist/esm/components/Chains/ChainsExpanded.js.map +1 -1
  32. package/dist/esm/components/Chains/PinChainButton.js.map +1 -1
  33. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
  34. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
  35. package/dist/esm/components/ContextMenu.js.map +1 -1
  36. package/dist/esm/components/ContractComponent/ContractComponent.js.map +1 -1
  37. package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -1
  38. package/dist/esm/components/ContractComponent/NFT/NFT.js.map +1 -1
  39. package/dist/esm/components/ContractComponent/NFT/NFTBase.js.map +1 -1
  40. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  41. package/dist/esm/components/Expansion/Expansion.js.map +1 -1
  42. package/dist/esm/components/Expansion/ExpansionTransition.js.map +1 -1
  43. package/dist/esm/components/FeeBreakdownTooltip.js.map +1 -1
  44. package/dist/esm/components/Header/ActivitiesButton.js.map +1 -1
  45. package/dist/esm/components/Header/BackButton.js.map +1 -1
  46. package/dist/esm/components/Header/CloseDrawerButton.js.map +1 -1
  47. package/dist/esm/components/Header/DisconnectIconButton.js.map +1 -1
  48. package/dist/esm/components/Header/Header.js.map +1 -1
  49. package/dist/esm/components/Header/Header.style.js.map +1 -1
  50. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  51. package/dist/esm/components/Header/SettingsButton.js.map +1 -1
  52. package/dist/esm/components/Header/SettingsButton.style.js.map +1 -1
  53. package/dist/esm/components/Header/SplitNavigationTabs.js.map +1 -1
  54. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  55. package/dist/esm/components/Header/WalletMenu.js.map +1 -1
  56. package/dist/esm/components/IconCircle/IconCircle.js.map +1 -1
  57. package/dist/esm/components/IconCircle/IconCircle.style.js.map +1 -1
  58. package/dist/esm/components/Initializer.js.map +1 -1
  59. package/dist/esm/components/ListItemButton.js.map +1 -1
  60. package/dist/esm/components/Messages/AccountDeployedMessage.js.map +1 -1
  61. package/dist/esm/components/Messages/AccountNotDeployedMessage.js.map +1 -1
  62. package/dist/esm/components/Messages/FundsSufficiencyMessage.js.map +1 -1
  63. package/dist/esm/components/Messages/GasRefuelMessage.js.map +1 -1
  64. package/dist/esm/components/Messages/GasSufficiencyMessage.js.map +1 -1
  65. package/dist/esm/components/Messages/MinFromAmountUSDMessage.js.map +1 -1
  66. package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js.map +1 -1
  67. package/dist/esm/components/Messages/WarningMessages.js.map +1 -1
  68. package/dist/esm/components/Messages/useMessageQueue.js.map +1 -1
  69. package/dist/esm/components/NotFound.js.map +1 -1
  70. package/dist/esm/components/PageEntered.js.map +1 -1
  71. package/dist/esm/components/PoweredBy/PoweredBy.js.map +1 -1
  72. package/dist/esm/components/ProgressToNextUpdate.js.map +1 -1
  73. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  74. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.js.map +1 -1
  75. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  76. package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
  77. package/dist/esm/components/RouteCard/RouteCardSkeleton.js.map +1 -1
  78. package/dist/esm/components/RouteCard/RouteDetails.js.map +1 -1
  79. package/dist/esm/components/RouteCard/RouteNotFoundCard.js.map +1 -1
  80. package/dist/esm/components/RouteCard/RouteToken.js.map +1 -1
  81. package/dist/esm/components/RouteCard/RouteTokens.js.map +1 -1
  82. package/dist/esm/components/RouteCard/getMatchingLabels.js.map +1 -1
  83. package/dist/esm/components/Routes/Routes.js.map +1 -1
  84. package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
  85. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  86. package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -1
  87. package/dist/esm/components/Search/SearchInput.js.map +1 -1
  88. package/dist/esm/components/SelectChainAndToken.js.map +1 -1
  89. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js.map +1 -1
  90. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -1
  91. package/dist/esm/components/SendToWallet/SendToWalletButton.js +1 -1
  92. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  93. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  94. package/dist/esm/components/Skeleton/WidgetSkeleton.js.map +1 -1
  95. package/dist/esm/components/Skeleton/WidgetSkeleton.style.js.map +1 -1
  96. package/dist/esm/components/Step/CircularProgress.js.map +1 -1
  97. package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
  98. package/dist/esm/components/Step/DestinationWalletAddress.js.map +1 -1
  99. package/dist/esm/components/Step/Step.js.map +1 -1
  100. package/dist/esm/components/Step/StepAction.js.map +1 -1
  101. package/dist/esm/components/Step/StepActions.js.map +1 -1
  102. package/dist/esm/components/Step/StepList.js.map +1 -1
  103. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  104. package/dist/esm/components/StepDivider/StepDivider.js.map +1 -1
  105. package/dist/esm/components/Tabs/Tabs.style.js.map +1 -1
  106. package/dist/esm/components/TextFitter/TextFitter.js.map +1 -1
  107. package/dist/esm/components/Timer/StepTimer.js.map +1 -1
  108. package/dist/esm/components/Timer/TimerContent.js.map +1 -1
  109. package/dist/esm/components/Token/Token.js.map +1 -1
  110. package/dist/esm/components/TokenList/PinTokenButton.js.map +1 -1
  111. package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
  112. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  113. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  114. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  115. package/dist/esm/components/TokenList/TokenNotFound.js.map +1 -1
  116. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  117. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  118. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  119. package/dist/esm/components/Tools/ToolItem.js.map +1 -1
  120. package/dist/esm/components/Tools/Tools.js.map +1 -1
  121. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js.map +1 -1
  122. package/dist/esm/components/TransactionCard/TransactionCard.js.map +1 -1
  123. package/dist/esm/components/TransactionCard/TransactionCardSkeleton.js.map +1 -1
  124. package/dist/esm/components/TransactionDetails.js.map +1 -1
  125. package/dist/esm/config/version.d.ts +1 -1
  126. package/dist/esm/config/version.js +1 -1
  127. package/dist/esm/config/version.js.map +1 -1
  128. package/dist/esm/hooks/timer/time.js.map +1 -1
  129. package/dist/esm/hooks/timer/useExecutionTimer.js.map +1 -1
  130. package/dist/esm/hooks/timer/useInterval.js.map +1 -1
  131. package/dist/esm/hooks/timer/useTimer.js.map +1 -1
  132. package/dist/esm/hooks/timer/validate.js.map +1 -1
  133. package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -1
  134. package/dist/esm/hooks/useActionMessage.js +2 -2
  135. package/dist/esm/hooks/useActionMessage.js.map +1 -1
  136. package/dist/esm/hooks/useAddressActivity.js.map +1 -1
  137. package/dist/esm/hooks/useAddressValidation.js.map +1 -1
  138. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  139. package/dist/esm/hooks/useChain.js.map +1 -1
  140. package/dist/esm/hooks/useChains.js.map +1 -1
  141. package/dist/esm/hooks/useContactSupport.js.map +1 -1
  142. package/dist/esm/hooks/useDebouncedWatch.js.map +1 -1
  143. package/dist/esm/hooks/useDefaultElementId.js.map +1 -1
  144. package/dist/esm/hooks/useExplorer.js.map +1 -1
  145. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -1
  146. package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -1
  147. package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
  148. package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
  149. package/dist/esm/hooks/useGasRefuel.js.map +1 -1
  150. package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
  151. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -1
  152. package/dist/esm/hooks/useHeader.js.map +1 -1
  153. package/dist/esm/hooks/useInitializeSDKProviders.js.map +1 -1
  154. package/dist/esm/hooks/useInitializer.js.map +1 -1
  155. package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
  156. package/dist/esm/hooks/useIsContractAddress.js.map +1 -1
  157. package/dist/esm/hooks/useLanguages.js.map +1 -1
  158. package/dist/esm/hooks/useListHeight.js.map +1 -1
  159. package/dist/esm/hooks/useLongPress.js.map +1 -1
  160. package/dist/esm/hooks/useNavigateBack.js.map +1 -1
  161. package/dist/esm/hooks/useRouteExecution.js +0 -2
  162. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  163. package/dist/esm/hooks/useRouteRequiredAccountConnection.js.map +1 -1
  164. package/dist/esm/hooks/useRoutes.js.map +1 -1
  165. package/dist/esm/hooks/useScrollableContainer.js.map +1 -1
  166. package/dist/esm/hooks/useSetContentHeight.js.map +1 -1
  167. package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
  168. package/dist/esm/hooks/useSwapOnly.js.map +1 -1
  169. package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -1
  170. package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
  171. package/dist/esm/hooks/useToAddressReset.js.map +1 -1
  172. package/dist/esm/hooks/useToken.js.map +1 -1
  173. package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
  174. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  175. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  176. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -1
  177. package/dist/esm/hooks/useTokenRateText.js.map +1 -1
  178. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  179. package/dist/esm/hooks/useTokens.js.map +1 -1
  180. package/dist/esm/hooks/useTools.js.map +1 -1
  181. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  182. package/dist/esm/hooks/useTransactionHistory.js.map +1 -1
  183. package/dist/esm/hooks/useTransactionList.js.map +1 -1
  184. package/dist/esm/hooks/useWideVariant.js.map +1 -1
  185. package/dist/esm/hooks/useWidgetChains.js.map +1 -1
  186. package/dist/esm/hooks/useWidgetEvents.js.map +1 -1
  187. package/dist/esm/i18n/bn.json +3 -0
  188. package/dist/esm/i18n/de.json +3 -0
  189. package/dist/esm/i18n/es.json +3 -0
  190. package/dist/esm/i18n/fr.json +3 -0
  191. package/dist/esm/i18n/hi.json +3 -0
  192. package/dist/esm/i18n/id.json +3 -0
  193. package/dist/esm/i18n/it.json +3 -0
  194. package/dist/esm/i18n/ja.json +3 -0
  195. package/dist/esm/i18n/ko.json +3 -0
  196. package/dist/esm/i18n/pl.json +3 -0
  197. package/dist/esm/i18n/pt.json +3 -0
  198. package/dist/esm/i18n/th.json +3 -0
  199. package/dist/esm/i18n/tr.json +3 -0
  200. package/dist/esm/i18n/uk.json +3 -0
  201. package/dist/esm/i18n/vi.json +3 -0
  202. package/dist/esm/i18n/zh.json +3 -0
  203. package/dist/esm/pages/ActivitiesPage/ActiveTransactionItem.js.map +1 -1
  204. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js.map +1 -1
  205. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js.map +1 -1
  206. package/dist/esm/pages/ActivitiesPage/TransactionHistoryEmpty.js.map +1 -1
  207. package/dist/esm/pages/ActivitiesPage/TransactionHistoryItem.js.map +1 -1
  208. package/dist/esm/pages/LanguagesPage.js.map +1 -1
  209. package/dist/esm/pages/MainPage/MainPage.js.map +1 -1
  210. package/dist/esm/pages/MainPage/MainWarningMessages.js.map +1 -1
  211. package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
  212. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  213. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  214. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  215. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
  216. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  217. package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -1
  218. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  219. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  220. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
  221. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
  222. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -1
  223. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  224. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  225. package/dist/esm/pages/SettingsPage/GasPriceSettings.js.map +1 -1
  226. package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -1
  227. package/dist/esm/pages/SettingsPage/ResetSettingsButton.js.map +1 -1
  228. package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js.map +1 -1
  229. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  230. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js.map +1 -1
  231. package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -1
  232. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  233. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js.map +1 -1
  234. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -1
  235. package/dist/esm/pages/SettingsPage/ThemeSettings.js.map +1 -1
  236. package/dist/esm/pages/TransactionDetailsPage/ActionRow.js.map +1 -1
  237. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js.map +1 -1
  238. package/dist/esm/pages/TransactionDetailsPage/ReceiptsCard.js.map +1 -1
  239. package/dist/esm/pages/TransactionDetailsPage/SentToWalletRow.js.map +1 -1
  240. package/dist/esm/pages/TransactionDetailsPage/StepActionRow.js +2 -2
  241. package/dist/esm/pages/TransactionDetailsPage/StepActionRow.js.map +1 -1
  242. package/dist/esm/pages/TransactionDetailsPage/StepActionsList.js +11 -5
  243. package/dist/esm/pages/TransactionDetailsPage/StepActionsList.js.map +1 -1
  244. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  245. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js.map +1 -1
  246. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js.map +1 -1
  247. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js.map +1 -1
  248. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
  249. package/dist/esm/pages/TransactionPage/RouteTracker.js.map +1 -1
  250. package/dist/esm/pages/TransactionPage/StartTransactionButton.js.map +1 -1
  251. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  252. package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js.map +1 -1
  253. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  254. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  255. package/dist/esm/pages/TransactionPage/utils.js.map +1 -1
  256. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  257. package/dist/esm/providers/I18nProvider/i18n.js.map +1 -1
  258. package/dist/esm/providers/QueryClientProvider.js.map +1 -1
  259. package/dist/esm/providers/SDKClientProvider.js.map +1 -1
  260. package/dist/esm/providers/ThemeProvider/ThemeProvider.js.map +1 -1
  261. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  262. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
  263. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  264. package/dist/esm/stores/StoreProvider.js.map +1 -1
  265. package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
  266. package/dist/esm/stores/bookmarks/createBookmarkStore.js.map +1 -1
  267. package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -1
  268. package/dist/esm/stores/bookmarks/useBookmarks.js.map +1 -1
  269. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  270. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  271. package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
  272. package/dist/esm/stores/form/FormStore.js.map +1 -1
  273. package/dist/esm/stores/form/FormUpdater.js.map +1 -1
  274. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  275. package/dist/esm/stores/form/createFormStore.js.map +1 -1
  276. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js.map +1 -1
  277. package/dist/esm/stores/form/useFieldActions.js.map +1 -1
  278. package/dist/esm/stores/form/useFieldValues.js.map +1 -1
  279. package/dist/esm/stores/form/useFormRef.js.map +1 -1
  280. package/dist/esm/stores/form/useFormStore.js.map +1 -1
  281. package/dist/esm/stores/form/useTouchedFields.js.map +1 -1
  282. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  283. package/dist/esm/stores/inputMode/useInputModeStore.js.map +1 -1
  284. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js.map +1 -1
  285. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js.map +1 -1
  286. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  287. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  288. package/dist/esm/stores/routes/useIntermediateRoutesStore.js.map +1 -1
  289. package/dist/esm/stores/routes/useRouteExecutionIndicator.js.map +1 -1
  290. package/dist/esm/stores/routes/useSetExecutableRoute.js.map +1 -1
  291. package/dist/esm/stores/routes/utils.js.map +1 -1
  292. package/dist/esm/stores/settings/SettingsStore.js.map +1 -1
  293. package/dist/esm/stores/settings/createSettingsStore.js.map +1 -1
  294. package/dist/esm/stores/settings/useSettings.js.map +1 -1
  295. package/dist/esm/stores/settings/useSettingsActions.js.map +1 -1
  296. package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
  297. package/dist/esm/themes/createTheme.js.map +1 -1
  298. package/dist/esm/themes/utils.js.map +1 -1
  299. package/dist/esm/types/events.js.map +1 -1
  300. package/dist/esm/types/widget.js.map +1 -1
  301. package/dist/esm/utils/compactNumberFormatter.js.map +1 -1
  302. package/dist/esm/utils/converters.js.map +1 -1
  303. package/dist/esm/utils/currencyExtendedFormatter.js.map +1 -1
  304. package/dist/esm/utils/deepEqual.js.map +1 -1
  305. package/dist/esm/utils/deepMerge.js.map +1 -1
  306. package/dist/esm/utils/fees.js.map +1 -1
  307. package/dist/esm/utils/format.js.map +1 -1
  308. package/dist/esm/utils/getActionMessage.js.map +1 -1
  309. package/dist/esm/utils/getErrorMessage.js.map +1 -1
  310. package/dist/esm/utils/getPriceImpact.js.map +1 -1
  311. package/dist/esm/utils/input.js.map +1 -1
  312. package/dist/esm/utils/item.js.map +1 -1
  313. package/dist/esm/utils/percentFormatter.js.map +1 -1
  314. package/dist/esm/utils/prepareActions.js.map +1 -1
  315. package/dist/esm/utils/timer.js.map +1 -1
  316. package/dist/esm/utils/token.js.map +1 -1
  317. package/dist/esm/utils/tokenList.js.map +1 -1
  318. package/dist/esm/utils/variant.js.map +1 -1
  319. package/dist/esm/utils/widgetSize.js.map +1 -1
  320. package/package.json +12 -12
  321. package/src/components/Chains/AllChainsAvatar.tsx +1 -1
  322. package/src/components/SendToWallet/SendToWalletButton.tsx +1 -1
  323. package/src/config/version.ts +1 -1
  324. package/src/hooks/useActionMessage.ts +4 -3
  325. package/src/hooks/useRouteExecution.ts +0 -2
  326. package/src/pages/TransactionDetailsPage/StepActionRow.tsx +3 -2
  327. package/src/pages/TransactionDetailsPage/StepActionsList.tsx +19 -12
@@ -1 +1 @@
1
- {"version":3,"file":"WalletHeader.js","names":[],"sources":["../../../../src/components/Header/WalletHeader.tsx"],"sourcesContent":["import {\n getConnectorIcon,\n useAccount,\n useWalletMenu,\n} from '@lifi/wallet-management'\nimport type { Account } from '@lifi/widget-provider'\nimport ExpandMore from '@mui/icons-material/ExpandMore'\nimport Wallet from '@mui/icons-material/Wallet'\nimport { Avatar, Badge } from '@mui/material'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useChain } from '../../hooks/useChain.js'\nimport { useExternalWalletProvider } from '../../providers/WalletProvider/useExternalWalletProvider.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { useFieldValues } from '../../stores/form/useFieldValues.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { SmallAvatar } from '../Avatar/SmallAvatar.js'\nimport { CloseDrawerButton } from './CloseDrawerButton.js'\nimport {\n DrawerWalletContainer,\n HeaderAppBar,\n WalletAvatar,\n WalletButton,\n} from './Header.style.js'\nimport { WalletMenu } from './WalletMenu.js'\nimport { WalletMenuContainer } from './WalletMenu.style.js'\n\nconst useInternalWalletManagement = () => {\n const { hiddenUI } = useWidgetConfig()\n const { useExternalWalletProvidersOnly } = useExternalWalletProvider()\n\n const isWalletMenuHidden = hiddenUI?.includes(HiddenUI.WalletMenu)\n\n const shouldShowWalletMenu =\n !useExternalWalletProvidersOnly && !isWalletMenuHidden\n\n return {\n shouldShowWalletMenu,\n }\n}\n\nexport const WalletHeader: React.FC = () => {\n const { shouldShowWalletMenu } = useInternalWalletManagement()\n\n return shouldShowWalletMenu ? (\n <HeaderAppBar elevation={0} sx={{ justifyContent: 'flex-end' }}>\n <WalletMenuButton />\n </HeaderAppBar>\n ) : null\n}\n\nconst WalletMenuButton: React.FC = () => {\n const { variant, hiddenUI } = useWidgetConfig()\n const { account, accounts } = useAccount()\n\n const [fromChainId] = useFieldValues('fromChain')\n const { chain: fromChain } = useChain(fromChainId)\n\n const activeAccount =\n (fromChain\n ? accounts.find((account) => account.chainType === fromChain.chainType)\n : undefined) || account\n\n if (variant === 'drawer') {\n return (\n <DrawerWalletContainer>\n {activeAccount.isConnected ? (\n <ConnectedButton account={activeAccount} />\n ) : (\n <ConnectButton />\n )}\n {!hiddenUI?.includes(HiddenUI.DrawerCloseButton) ? (\n <CloseDrawerButton header=\"wallet\" />\n ) : null}\n </DrawerWalletContainer>\n )\n }\n return activeAccount.isConnected ? (\n <ConnectedButton account={activeAccount} />\n ) : (\n <ConnectButton />\n )\n}\n\nconst ConnectButton = () => {\n const { t } = useTranslation()\n const { walletConfig, variant } = useWidgetConfig()\n const { openWalletMenu } = useWalletMenu()\n const connect = async (event: React.MouseEvent<HTMLElement>) => {\n if (\n !walletConfig?.usePartialWalletManagement &&\n !walletConfig?.forceInternalWalletManagement &&\n walletConfig?.onConnect\n ) {\n walletConfig.onConnect()\n return\n }\n openWalletMenu()\n event.currentTarget.blur() // Remove focus to prevent accessibility issues when opening drawer\n }\n\n const walletPosition = variant === 'drawer' ? 'start' : 'end'\n\n return (\n <WalletButton\n withOffset={walletPosition === 'end'}\n endIcon={walletPosition === 'end' ? <Wallet /> : undefined}\n startIcon={\n walletPosition === 'start' ? (\n <Wallet sx={{ marginLeft: -0.25 }} />\n ) : undefined\n }\n onClick={connect}\n >\n {t('button.connectWallet')}\n </WalletButton>\n )\n}\n\nconst ConnectedButton = ({ account }: { account: Account }) => {\n const { chain } = useChain(account.chainId)\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\n const walletAddress = shortenAddress(account.address)\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget)\n event.currentTarget.blur() // Remove focus to prevent accessibility issues when opening drawer\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <WalletButton\n withOffset\n endIcon={<ExpandMore />}\n startIcon={\n chain?.logoURI ? (\n <Badge\n overlap=\"circular\"\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeContent={\n <SmallAvatar\n src={chain?.logoURI}\n alt={chain?.name}\n sx={{ width: 12, height: 12 }}\n >\n {chain?.name[0]}\n </SmallAvatar>\n }\n >\n <WalletAvatar\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n >\n {account.connector?.name[0]}\n </WalletAvatar>\n </Badge>\n ) : (\n <Avatar\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n sx={{ width: 24, height: 24 }}\n >\n {account.connector?.name[0]}\n </Avatar>\n )\n }\n onClick={handleClick}\n >\n {walletAddress}\n </WalletButton>\n <WalletMenuContainer\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n <WalletMenu onClose={handleClose} />\n </WalletMenuContainer>\n </>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"WalletHeader.js","names":[],"sources":["../../../../src/components/Header/WalletHeader.tsx"],"sourcesContent":["import {\n getConnectorIcon,\n useAccount,\n useWalletMenu,\n} from '@lifi/wallet-management'\nimport type { Account } from '@lifi/widget-provider'\nimport ExpandMore from '@mui/icons-material/ExpandMore'\nimport Wallet from '@mui/icons-material/Wallet'\nimport { Avatar, Badge } from '@mui/material'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useChain } from '../../hooks/useChain.js'\nimport { useExternalWalletProvider } from '../../providers/WalletProvider/useExternalWalletProvider.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { useFieldValues } from '../../stores/form/useFieldValues.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { SmallAvatar } from '../Avatar/SmallAvatar.js'\nimport { CloseDrawerButton } from './CloseDrawerButton.js'\nimport {\n DrawerWalletContainer,\n HeaderAppBar,\n WalletAvatar,\n WalletButton,\n} from './Header.style.js'\nimport { WalletMenu } from './WalletMenu.js'\nimport { WalletMenuContainer } from './WalletMenu.style.js'\n\nconst useInternalWalletManagement = () => {\n const { hiddenUI } = useWidgetConfig()\n const { useExternalWalletProvidersOnly } = useExternalWalletProvider()\n\n const isWalletMenuHidden = hiddenUI?.includes(HiddenUI.WalletMenu)\n\n const shouldShowWalletMenu =\n !useExternalWalletProvidersOnly && !isWalletMenuHidden\n\n return {\n shouldShowWalletMenu,\n }\n}\n\nexport const WalletHeader: React.FC = () => {\n const { shouldShowWalletMenu } = useInternalWalletManagement()\n\n return shouldShowWalletMenu ? (\n <HeaderAppBar elevation={0} sx={{ justifyContent: 'flex-end' }}>\n <WalletMenuButton />\n </HeaderAppBar>\n ) : null\n}\n\nconst WalletMenuButton: React.FC = () => {\n const { variant, hiddenUI } = useWidgetConfig()\n const { account, accounts } = useAccount()\n\n const [fromChainId] = useFieldValues('fromChain')\n const { chain: fromChain } = useChain(fromChainId)\n\n const activeAccount =\n (fromChain\n ? accounts.find((account) => account.chainType === fromChain.chainType)\n : undefined) || account\n\n if (variant === 'drawer') {\n return (\n <DrawerWalletContainer>\n {activeAccount.isConnected ? (\n <ConnectedButton account={activeAccount} />\n ) : (\n <ConnectButton />\n )}\n {!hiddenUI?.includes(HiddenUI.DrawerCloseButton) ? (\n <CloseDrawerButton header=\"wallet\" />\n ) : null}\n </DrawerWalletContainer>\n )\n }\n return activeAccount.isConnected ? (\n <ConnectedButton account={activeAccount} />\n ) : (\n <ConnectButton />\n )\n}\n\nconst ConnectButton = () => {\n const { t } = useTranslation()\n const { walletConfig, variant } = useWidgetConfig()\n const { openWalletMenu } = useWalletMenu()\n const connect = async (event: React.MouseEvent<HTMLElement>) => {\n if (\n !walletConfig?.usePartialWalletManagement &&\n !walletConfig?.forceInternalWalletManagement &&\n walletConfig?.onConnect\n ) {\n walletConfig.onConnect()\n return\n }\n openWalletMenu()\n event.currentTarget.blur() // Remove focus to prevent accessibility issues when opening drawer\n }\n\n const walletPosition = variant === 'drawer' ? 'start' : 'end'\n\n return (\n <WalletButton\n withOffset={walletPosition === 'end'}\n endIcon={walletPosition === 'end' ? <Wallet /> : undefined}\n startIcon={\n walletPosition === 'start' ? (\n <Wallet sx={{ marginLeft: -0.25 }} />\n ) : undefined\n }\n onClick={connect}\n >\n {t('button.connectWallet')}\n </WalletButton>\n )\n}\n\nconst ConnectedButton = ({ account }: { account: Account }) => {\n const { chain } = useChain(account.chainId)\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\n const walletAddress = shortenAddress(account.address)\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget)\n event.currentTarget.blur() // Remove focus to prevent accessibility issues when opening drawer\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <WalletButton\n withOffset\n endIcon={<ExpandMore />}\n startIcon={\n chain?.logoURI ? (\n <Badge\n overlap=\"circular\"\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeContent={\n <SmallAvatar\n src={chain?.logoURI}\n alt={chain?.name}\n sx={{ width: 12, height: 12 }}\n >\n {chain?.name[0]}\n </SmallAvatar>\n }\n >\n <WalletAvatar\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n >\n {account.connector?.name[0]}\n </WalletAvatar>\n </Badge>\n ) : (\n <Avatar\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n sx={{ width: 24, height: 24 }}\n >\n {account.connector?.name[0]}\n </Avatar>\n )\n }\n onClick={handleClick}\n >\n {walletAddress}\n </WalletButton>\n <WalletMenuContainer\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n <WalletMenu onClose={handleClose} />\n </WalletMenuContainer>\n </>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WalletMenu.js","names":[],"sources":["../../../../src/components/Header/WalletMenu.tsx"],"sourcesContent":["import {\n getConnectorIcon,\n useAccount,\n useWalletMenu,\n} from '@lifi/wallet-management'\nimport ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'\nimport PowerSettingsNewRounded from '@mui/icons-material/PowerSettingsNewRounded'\nimport { Avatar, Badge, Box, Button, IconButton, MenuItem } from '@mui/material'\nimport type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useAvailableChains } from '../../hooks/useAvailableChains.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { AvatarMasked } from '../Avatar/Avatar.style.js'\nimport { SmallAvatar } from '../Avatar/SmallAvatar.js'\nimport { DisconnectIconButton } from './DisconnectIconButton.js'\n\nexport const WalletMenu = ({\n onClose,\n}: {\n onClose: () => void\n}): JSX.Element => {\n const { t } = useTranslation()\n const { accounts } = useAccount()\n const { getChainById } = useAvailableChains()\n const { openWalletMenu } = useWalletMenu()\n const connect = async () => {\n openWalletMenu()\n onClose()\n }\n const { getAddressLink } = useExplorer()\n\n return (\n <>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {accounts.map((account) => {\n const chain = getChainById(account.chainId)\n const walletAddress = shortenAddress(account.address)\n const handleCopyAddress = async () => {\n await navigator.clipboard.writeText(account.address ?? '')\n onClose()\n }\n\n return (\n <MenuItem key={account.address} disableTouchRipple>\n <Box\n sx={{\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n }}\n >\n {chain?.logoURI ? (\n <Badge\n overlap=\"circular\"\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeContent={\n <SmallAvatar src={chain?.logoURI} alt={chain?.name}>\n {chain?.name[0]}\n </SmallAvatar>\n }\n sx={{ marginRight: 1.5 }}\n >\n <AvatarMasked\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n >\n {account.connector?.name[0]}\n </AvatarMasked>\n </Badge>\n ) : (\n <Avatar\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n sx={{\n marginRight: 1.5,\n }}\n >\n {account.connector?.name[0]}\n </Avatar>\n )}\n {walletAddress}\n </Box>\n <Box\n sx={{\n ml: 2,\n }}\n >\n <IconButton size=\"medium\" onClick={handleCopyAddress}>\n <ContentCopyRounded />\n </IconButton>\n <IconButton\n size=\"medium\"\n component=\"a\"\n onClick={onClose}\n href={\n account.address\n ? getAddressLink(account.address, chain)\n : undefined\n }\n target=\"_blank\"\n >\n <OpenInNewRounded />\n </IconButton>\n <DisconnectIconButton account={account} />\n </Box>\n </MenuItem>\n )\n })}\n </Box>\n <Button\n onClick={connect}\n fullWidth\n startIcon={<PowerSettingsNewRounded />}\n sx={{\n marginTop: 1,\n }}\n >\n {t('button.connectAnotherWallet')}\n </Button>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAa,cAAc,EACzB,cAGiB;CACjB,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,aAAa,YAAY;CACjC,MAAM,EAAE,iBAAiB,oBAAoB;CAC7C,MAAM,EAAE,mBAAmB,eAAe;CAC1C,MAAM,UAAU,YAAY;AAC1B,kBAAgB;AAChB,WAAS;;CAEX,MAAM,EAAE,mBAAmB,aAAa;AAExC,QACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,KAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GAChB;YAEA,SAAS,KAAK,YAAY;GACzB,MAAM,QAAQ,aAAa,QAAQ,QAAQ;GAC3C,MAAM,gBAAgB,eAAe,QAAQ,QAAQ;GACrD,MAAM,oBAAoB,YAAY;AACpC,UAAM,UAAU,UAAU,UAAU,QAAQ,WAAW,GAAG;AAC1D,aAAS;;AAGX,UACE,qBAAC,UAAD;IAAgC,oBAAA;cAAhC,CACE,qBAAC,KAAD;KACE,IAAI;MACF,MAAM;MACN,SAAS;MACT,YAAY;MACb;eALH,CAOG,OAAO,UACN,oBAAC,OAAD;MACE,SAAQ;MACR,cAAc;OAAE,UAAU;OAAU,YAAY;OAAS;MACzD,cACE,oBAAC,aAAD;OAAa,KAAK,OAAO;OAAS,KAAK,OAAO;iBAC3C,OAAO,KAAK;OACD,CAAA;MAEhB,IAAI,EAAE,aAAa,KAAK;gBAExB,oBAAC,cAAD;OACE,KAAK,iBAAiB,QAAQ,UAAU;OACxC,KAAK,QAAQ,WAAW;iBAEvB,QAAQ,WAAW,KAAK;OACZ,CAAA;MACT,CAAA,GAER,oBAAC,QAAD;MACE,KAAK,iBAAiB,QAAQ,UAAU;MACxC,KAAK,QAAQ,WAAW;MACxB,IAAI,EACF,aAAa,KACd;gBAEA,QAAQ,WAAW,KAAK;MAClB,CAAA,EAEV,cACG;QACN,qBAAC,KAAD;KACE,IAAI,EACF,IAAI,GACL;eAHH;MAKE,oBAAC,YAAD;OAAY,MAAK;OAAS,SAAS;iBACjC,oBAAC,oBAAD,EAAsB,CAAA;OACX,CAAA;MACb,oBAAC,YAAD;OACE,MAAK;OACL,WAAU;OACV,SAAS;OACT,MACE,QAAQ,UACJ,eAAe,QAAQ,SAAS,MAAM,GACtC,KAAA;OAEN,QAAO;iBAEP,oBAAC,kBAAD,EAAoB,CAAA;OACT,CAAA;MACb,oBAAC,sBAAD,EAA+B,SAAW,CAAA;MACtC;OACG;MA9DI,QAAQ,QA8DZ;IAEb;EACE,CAAA,EACN,oBAAC,QAAD;EACE,SAAS;EACT,WAAA;EACA,WAAW,oBAAC,yBAAD,EAA2B,CAAA;EACtC,IAAI,EACF,WAAW,GACZ;YAEA,EAAE,8BAA8B;EAC1B,CAAA,CACR,EAAA,CAAA"}
1
+ {"version":3,"file":"WalletMenu.js","names":[],"sources":["../../../../src/components/Header/WalletMenu.tsx"],"sourcesContent":["import {\n getConnectorIcon,\n useAccount,\n useWalletMenu,\n} from '@lifi/wallet-management'\nimport ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'\nimport PowerSettingsNewRounded from '@mui/icons-material/PowerSettingsNewRounded'\nimport { Avatar, Badge, Box, Button, IconButton, MenuItem } from '@mui/material'\nimport type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useAvailableChains } from '../../hooks/useAvailableChains.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { AvatarMasked } from '../Avatar/Avatar.style.js'\nimport { SmallAvatar } from '../Avatar/SmallAvatar.js'\nimport { DisconnectIconButton } from './DisconnectIconButton.js'\n\nexport const WalletMenu = ({\n onClose,\n}: {\n onClose: () => void\n}): JSX.Element => {\n const { t } = useTranslation()\n const { accounts } = useAccount()\n const { getChainById } = useAvailableChains()\n const { openWalletMenu } = useWalletMenu()\n const connect = async () => {\n openWalletMenu()\n onClose()\n }\n const { getAddressLink } = useExplorer()\n\n return (\n <>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {accounts.map((account) => {\n const chain = getChainById(account.chainId)\n const walletAddress = shortenAddress(account.address)\n const handleCopyAddress = async () => {\n await navigator.clipboard.writeText(account.address ?? '')\n onClose()\n }\n\n return (\n <MenuItem key={account.address} disableTouchRipple>\n <Box\n sx={{\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n }}\n >\n {chain?.logoURI ? (\n <Badge\n overlap=\"circular\"\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeContent={\n <SmallAvatar src={chain?.logoURI} alt={chain?.name}>\n {chain?.name[0]}\n </SmallAvatar>\n }\n sx={{ marginRight: 1.5 }}\n >\n <AvatarMasked\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n >\n {account.connector?.name[0]}\n </AvatarMasked>\n </Badge>\n ) : (\n <Avatar\n src={getConnectorIcon(account.connector)}\n alt={account.connector?.name}\n sx={{\n marginRight: 1.5,\n }}\n >\n {account.connector?.name[0]}\n </Avatar>\n )}\n {walletAddress}\n </Box>\n <Box\n sx={{\n ml: 2,\n }}\n >\n <IconButton size=\"medium\" onClick={handleCopyAddress}>\n <ContentCopyRounded />\n </IconButton>\n <IconButton\n size=\"medium\"\n component=\"a\"\n onClick={onClose}\n href={\n account.address\n ? getAddressLink(account.address, chain)\n : undefined\n }\n target=\"_blank\"\n >\n <OpenInNewRounded />\n </IconButton>\n <DisconnectIconButton account={account} />\n </Box>\n </MenuItem>\n )\n })}\n </Box>\n <Button\n onClick={connect}\n fullWidth\n startIcon={<PowerSettingsNewRounded />}\n sx={{\n marginTop: 1,\n }}\n >\n {t('button.connectAnotherWallet')}\n </Button>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAa,cAAc,EACzB,cAGiB;CACjB,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,aAAa,YAAY;CACjC,MAAM,EAAE,iBAAiB,oBAAoB;CAC7C,MAAM,EAAE,mBAAmB,eAAe;CAC1C,MAAM,UAAU,YAAY;EAC1B,gBAAgB;EAChB,SAAS;;CAEX,MAAM,EAAE,mBAAmB,aAAa;CAExC,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,KAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GAChB;YAEA,SAAS,KAAK,YAAY;GACzB,MAAM,QAAQ,aAAa,QAAQ,QAAQ;GAC3C,MAAM,gBAAgB,eAAe,QAAQ,QAAQ;GACrD,MAAM,oBAAoB,YAAY;IACpC,MAAM,UAAU,UAAU,UAAU,QAAQ,WAAW,GAAG;IAC1D,SAAS;;GAGX,OACE,qBAAC,UAAD;IAAgC,oBAAA;cAAhC,CACE,qBAAC,KAAD;KACE,IAAI;MACF,MAAM;MACN,SAAS;MACT,YAAY;MACb;eALH,CAOG,OAAO,UACN,oBAAC,OAAD;MACE,SAAQ;MACR,cAAc;OAAE,UAAU;OAAU,YAAY;OAAS;MACzD,cACE,oBAAC,aAAD;OAAa,KAAK,OAAO;OAAS,KAAK,OAAO;iBAC3C,OAAO,KAAK;OACD,CAAA;MAEhB,IAAI,EAAE,aAAa,KAAK;gBAExB,oBAAC,cAAD;OACE,KAAK,iBAAiB,QAAQ,UAAU;OACxC,KAAK,QAAQ,WAAW;iBAEvB,QAAQ,WAAW,KAAK;OACZ,CAAA;MACT,CAAA,GAER,oBAAC,QAAD;MACE,KAAK,iBAAiB,QAAQ,UAAU;MACxC,KAAK,QAAQ,WAAW;MACxB,IAAI,EACF,aAAa,KACd;gBAEA,QAAQ,WAAW,KAAK;MAClB,CAAA,EAEV,cACG;QACN,qBAAC,KAAD;KACE,IAAI,EACF,IAAI,GACL;eAHH;MAKE,oBAAC,YAAD;OAAY,MAAK;OAAS,SAAS;iBACjC,oBAAC,oBAAD,EAAsB,CAAA;OACX,CAAA;MACb,oBAAC,YAAD;OACE,MAAK;OACL,WAAU;OACV,SAAS;OACT,MACE,QAAQ,UACJ,eAAe,QAAQ,SAAS,MAAM,GACtC,KAAA;OAEN,QAAO;iBAEP,oBAAC,kBAAD,EAAoB,CAAA;OACT,CAAA;MACb,oBAAC,sBAAD,EAA+B,SAAW,CAAA;MACtC;OACG;MA9DI,QAAQ,QA8DZ;IAEb;EACE,CAAA,EACN,oBAAC,QAAD;EACE,SAAS;EACT,WAAA;EACA,WAAW,oBAAC,yBAAD,EAA2B,CAAA;EACtC,IAAI,EACF,WAAW,GACZ;YAEA,EAAE,8BAA8B;EAC1B,CAAA,CACR,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconCircle.js","names":[],"sources":["../../../../src/components/IconCircle/IconCircle.tsx"],"sourcesContent":["import type { BoxProps } from '@mui/material'\nimport { useTheme } from '@mui/material'\nimport {\n getStatusColor,\n IconCircleRoot,\n iconCircleSize,\n} from './IconCircle.style.js'\nimport { type StatusIcon, statusIcons } from './statusIcons.js'\n\ninterface IconCircleProps extends Omit<BoxProps, 'color'> {\n status: StatusIcon\n size?: number\n}\n\nexport const IconCircle: React.FC<IconCircleProps> = ({\n status,\n size = iconCircleSize,\n ...rest\n}) => {\n const theme = useTheme()\n const colorConfig = getStatusColor(status, theme)\n const Icon = statusIcons[status]\n\n return (\n <IconCircleRoot colorConfig={colorConfig} circleSize={size} {...rest}>\n <Icon />\n </IconCircleRoot>\n )\n}\n"],"mappings":";;;;;AAcA,MAAa,cAAyC,EACpD,QACA,OAAA,IACA,GAAG,WACC;CAEJ,MAAM,cAAc,eAAe,QADrB,UAAU,CACyB;CACjD,MAAM,OAAO,YAAY;AAEzB,QACE,oBAAC,gBAAD;EAA6B;EAAa,YAAY;EAAM,GAAI;YAC9D,oBAAC,MAAD,EAAQ,CAAA;EACO,CAAA"}
1
+ {"version":3,"file":"IconCircle.js","names":[],"sources":["../../../../src/components/IconCircle/IconCircle.tsx"],"sourcesContent":["import type { BoxProps } from '@mui/material'\nimport { useTheme } from '@mui/material'\nimport {\n getStatusColor,\n IconCircleRoot,\n iconCircleSize,\n} from './IconCircle.style.js'\nimport { type StatusIcon, statusIcons } from './statusIcons.js'\n\ninterface IconCircleProps extends Omit<BoxProps, 'color'> {\n status: StatusIcon\n size?: number\n}\n\nexport const IconCircle: React.FC<IconCircleProps> = ({\n status,\n size = iconCircleSize,\n ...rest\n}) => {\n const theme = useTheme()\n const colorConfig = getStatusColor(status, theme)\n const Icon = statusIcons[status]\n\n return (\n <IconCircleRoot colorConfig={colorConfig} circleSize={size} {...rest}>\n <Icon />\n </IconCircleRoot>\n )\n}\n"],"mappings":";;;;;AAcA,MAAa,cAAyC,EACpD,QACA,OAAA,IACA,GAAG,WACC;CAEJ,MAAM,cAAc,eAAe,QADrB,UACkC,CAAC;CACjD,MAAM,OAAO,YAAY;CAEzB,OACE,oBAAC,gBAAD;EAA6B;EAAa,YAAY;EAAM,GAAI;YAC9D,oBAAC,MAAD,EAAQ,CAAA;EACO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconCircle.style.js","names":[],"sources":["../../../../src/components/IconCircle/IconCircle.style.tsx"],"sourcesContent":["import type { Theme } from '@mui/material'\nimport { Box, styled } from '@mui/material'\nimport type React from 'react'\nimport type { StatusIcon } from './statusIcons'\n\nexport const iconCircleSize = 90\n\ninterface StatusColorConfig {\n color: string\n mixAmount: number\n lightDarken: number\n darkDarken: number\n}\n\nexport const getStatusColor = (\n status: StatusIcon,\n theme: Theme\n): StatusColorConfig => {\n switch (status) {\n case 'success':\n return {\n color: theme.vars.palette.success.main,\n mixAmount: 12,\n lightDarken: 0,\n darkDarken: 0,\n }\n case 'error':\n return {\n color: theme.vars.palette.error.main,\n mixAmount: 12,\n lightDarken: 0,\n darkDarken: 0,\n }\n case 'warning':\n return {\n color: theme.vars.palette.warning.main,\n mixAmount: 48,\n lightDarken: 0.32,\n darkDarken: 0,\n }\n case 'info':\n return {\n color: theme.vars.palette.info.main,\n mixAmount: 12,\n lightDarken: 0,\n darkDarken: 0,\n }\n }\n}\n\nexport const iconSizeRatio: number = 48 / 90\n\nexport const IconCircleRoot: React.FC<\n React.ComponentProps<typeof Box> & {\n colorConfig: StatusColorConfig\n circleSize: number\n }\n> = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'colorConfig' && prop !== 'circleSize',\n})<{ colorConfig: StatusColorConfig; circleSize: number }>(\n ({ theme, colorConfig, circleSize }) => {\n const svgSize = Math.round(circleSize * iconSizeRatio)\n return {\n backgroundColor: `color-mix(in srgb, ${colorConfig.color} ${colorConfig.mixAmount}%, ${theme.vars.palette.background.paper})`,\n borderRadius: '50%',\n width: circleSize,\n height: circleSize,\n display: 'grid',\n position: 'relative',\n placeItems: 'center',\n '& > svg': {\n color: `color-mix(in srgb, ${colorConfig.color} ${(1 - colorConfig.lightDarken) * 100}%, black)`,\n width: svgSize,\n height: svgSize,\n },\n ...theme.applyStyles('dark', {\n '& > svg': {\n color: `color-mix(in srgb, ${colorConfig.color} ${(1 - colorConfig.darkDarken) * 100}%, black)`,\n width: svgSize,\n height: svgSize,\n },\n }),\n }\n }\n)\n"],"mappings":";;AAcA,MAAa,kBACX,QACA,UACsB;AACtB,SAAQ,QAAR;EACE,KAAK,UACH,QAAO;GACL,OAAO,MAAM,KAAK,QAAQ,QAAQ;GAClC,WAAW;GACX,aAAa;GACb,YAAY;GACb;EACH,KAAK,QACH,QAAO;GACL,OAAO,MAAM,KAAK,QAAQ,MAAM;GAChC,WAAW;GACX,aAAa;GACb,YAAY;GACb;EACH,KAAK,UACH,QAAO;GACL,OAAO,MAAM,KAAK,QAAQ,QAAQ;GAClC,WAAW;GACX,aAAa;GACb,YAAY;GACb;EACH,KAAK,OACH,QAAO;GACL,OAAO,MAAM,KAAK,QAAQ,KAAK;GAC/B,WAAW;GACX,aAAa;GACb,YAAY;GACb;;;AAIP,MAAa,gBAAwB,KAAK;AAE1C,MAAa,iBAKT,OAAO,KAAK,EACd,oBAAoB,SAAS,SAAS,iBAAiB,SAAS,cACjE,CAAC,EACC,EAAE,OAAO,aAAa,iBAAiB;CACtC,MAAM,UAAU,KAAK,MAAM,aAAa,cAAc;AACtD,QAAO;EACL,iBAAiB,sBAAsB,YAAY,MAAM,GAAG,YAAY,UAAU,KAAK,MAAM,KAAK,QAAQ,WAAW,MAAM;EAC3H,cAAc;EACd,OAAO;EACP,QAAQ;EACR,SAAS;EACT,UAAU;EACV,YAAY;EACZ,WAAW;GACT,OAAO,sBAAsB,YAAY,MAAM,IAAI,IAAI,YAAY,eAAe,IAAI;GACtF,OAAO;GACP,QAAQ;GACT;EACD,GAAG,MAAM,YAAY,QAAQ,EAC3B,WAAW;GACT,OAAO,sBAAsB,YAAY,MAAM,IAAI,IAAI,YAAY,cAAc,IAAI;GACrF,OAAO;GACP,QAAQ;GACT,EACF,CAAC;EACH;EAEJ"}
1
+ {"version":3,"file":"IconCircle.style.js","names":[],"sources":["../../../../src/components/IconCircle/IconCircle.style.tsx"],"sourcesContent":["import type { Theme } from '@mui/material'\nimport { Box, styled } from '@mui/material'\nimport type React from 'react'\nimport type { StatusIcon } from './statusIcons'\n\nexport const iconCircleSize = 90\n\ninterface StatusColorConfig {\n color: string\n mixAmount: number\n lightDarken: number\n darkDarken: number\n}\n\nexport const getStatusColor = (\n status: StatusIcon,\n theme: Theme\n): StatusColorConfig => {\n switch (status) {\n case 'success':\n return {\n color: theme.vars.palette.success.main,\n mixAmount: 12,\n lightDarken: 0,\n darkDarken: 0,\n }\n case 'error':\n return {\n color: theme.vars.palette.error.main,\n mixAmount: 12,\n lightDarken: 0,\n darkDarken: 0,\n }\n case 'warning':\n return {\n color: theme.vars.palette.warning.main,\n mixAmount: 48,\n lightDarken: 0.32,\n darkDarken: 0,\n }\n case 'info':\n return {\n color: theme.vars.palette.info.main,\n mixAmount: 12,\n lightDarken: 0,\n darkDarken: 0,\n }\n }\n}\n\nexport const iconSizeRatio: number = 48 / 90\n\nexport const IconCircleRoot: React.FC<\n React.ComponentProps<typeof Box> & {\n colorConfig: StatusColorConfig\n circleSize: number\n }\n> = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'colorConfig' && prop !== 'circleSize',\n})<{ colorConfig: StatusColorConfig; circleSize: number }>(\n ({ theme, colorConfig, circleSize }) => {\n const svgSize = Math.round(circleSize * iconSizeRatio)\n return {\n backgroundColor: `color-mix(in srgb, ${colorConfig.color} ${colorConfig.mixAmount}%, ${theme.vars.palette.background.paper})`,\n borderRadius: '50%',\n width: circleSize,\n height: circleSize,\n display: 'grid',\n position: 'relative',\n placeItems: 'center',\n '& > svg': {\n color: `color-mix(in srgb, ${colorConfig.color} ${(1 - colorConfig.lightDarken) * 100}%, black)`,\n width: svgSize,\n height: svgSize,\n },\n ...theme.applyStyles('dark', {\n '& > svg': {\n color: `color-mix(in srgb, ${colorConfig.color} ${(1 - colorConfig.darkDarken) * 100}%, black)`,\n width: svgSize,\n height: svgSize,\n },\n }),\n }\n }\n)\n"],"mappings":";;AAcA,MAAa,kBACX,QACA,UACsB;CACtB,QAAQ,QAAR;EACE,KAAK,WACH,OAAO;GACL,OAAO,MAAM,KAAK,QAAQ,QAAQ;GAClC,WAAW;GACX,aAAa;GACb,YAAY;GACb;EACH,KAAK,SACH,OAAO;GACL,OAAO,MAAM,KAAK,QAAQ,MAAM;GAChC,WAAW;GACX,aAAa;GACb,YAAY;GACb;EACH,KAAK,WACH,OAAO;GACL,OAAO,MAAM,KAAK,QAAQ,QAAQ;GAClC,WAAW;GACX,aAAa;GACb,YAAY;GACb;EACH,KAAK,QACH,OAAO;GACL,OAAO,MAAM,KAAK,QAAQ,KAAK;GAC/B,WAAW;GACX,aAAa;GACb,YAAY;GACb;;;AAIP,MAAa,gBAAwB,KAAK;AAE1C,MAAa,iBAKT,OAAO,KAAK,EACd,oBAAoB,SAAS,SAAS,iBAAiB,SAAS,cACjE,CAAC,EACC,EAAE,OAAO,aAAa,iBAAiB;CACtC,MAAM,UAAU,KAAK,MAAM,aAAa,cAAc;CACtD,OAAO;EACL,iBAAiB,sBAAsB,YAAY,MAAM,GAAG,YAAY,UAAU,KAAK,MAAM,KAAK,QAAQ,WAAW,MAAM;EAC3H,cAAc;EACd,OAAO;EACP,QAAQ;EACR,SAAS;EACT,UAAU;EACV,YAAY;EACZ,WAAW;GACT,OAAO,sBAAsB,YAAY,MAAM,IAAI,IAAI,YAAY,eAAe,IAAI;GACtF,OAAO;GACP,QAAQ;GACT;EACD,GAAG,MAAM,YAAY,QAAQ,EAC3B,WAAW;GACT,OAAO,sBAAsB,YAAY,MAAM,IAAI,IAAI,YAAY,cAAc,IAAI;GACrF,OAAO;GACP,QAAQ;GACT,EACF,CAAC;EACH;EAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Initializer.js","names":[],"sources":["../../../src/components/Initializer.tsx"],"sourcesContent":["import { useInitializer } from '../hooks/useInitializer.js'\n\nexport const Initializer: React.FC = () => {\n useInitializer()\n return null\n}\n"],"mappings":";;AAEA,MAAa,oBAA8B;AACzC,iBAAgB;AAChB,QAAO"}
1
+ {"version":3,"file":"Initializer.js","names":[],"sources":["../../../src/components/Initializer.tsx"],"sourcesContent":["import { useInitializer } from '../hooks/useInitializer.js'\n\nexport const Initializer: React.FC = () => {\n useInitializer()\n return null\n}\n"],"mappings":";;AAEA,MAAa,oBAA8B;CACzC,gBAAgB;CAChB,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemButton.js","names":["ListItemButton","MuiListItemButton"],"sources":["../../../src/components/ListItemButton.tsx"],"sourcesContent":["import {\n listItemButtonClasses,\n ListItemButton as MuiListItemButton,\n styled,\n} from '@mui/material'\nimport type React from 'react'\n\nexport const ListItemButton: React.FC<\n React.ComponentProps<typeof MuiListItemButton>\n> = styled(MuiListItemButton)(({ theme }) => {\n return {\n borderRadius: theme.vars.shape.borderRadius,\n paddingLeft: theme.spacing(1.5),\n height: 56,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent)`,\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 24%, white)`,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 28%, white)`,\n },\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 24%, black)`,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 28%, black)`,\n },\n }),\n },\n variants: [\n {\n props: ({ disabled }) => disabled,\n style: {\n opacity: 0.5,\n cursor: 'auto',\n '&:hover': {\n backgroundColor: 'none',\n },\n },\n },\n ],\n }\n})\n"],"mappings":";;AAOA,MAAaA,mBAET,OAAOC,eAAkB,EAAE,EAAE,YAAY;AAC3C,QAAO;EACL,cAAc,MAAM,KAAK,MAAM;EAC/B,aAAa,MAAM,QAAQ,IAAI;EAC/B,QAAQ;EACR,WAAW,EACT,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,OAAO,aAAa,oBAC/E;GACA,KAAK,sBAAsB,aAAa;GACvC,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK;GACzE,WAAW,EACT,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK,eAC1E;GACD,GAAG,MAAM,YAAY,QAAQ;IAC3B,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK;IACzE,WAAW,EACT,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK,eAC1E;IACF,CAAC;GACH;EACD,UAAU,CACR;GACE,QAAQ,EAAE,eAAe;GACzB,OAAO;IACL,SAAS;IACT,QAAQ;IACR,WAAW,EACT,iBAAiB,QAClB;IACF;GACF,CACF;EACF;EACD"}
1
+ {"version":3,"file":"ListItemButton.js","names":["ListItemButton","MuiListItemButton"],"sources":["../../../src/components/ListItemButton.tsx"],"sourcesContent":["import {\n listItemButtonClasses,\n ListItemButton as MuiListItemButton,\n styled,\n} from '@mui/material'\nimport type React from 'react'\n\nexport const ListItemButton: React.FC<\n React.ComponentProps<typeof MuiListItemButton>\n> = styled(MuiListItemButton)(({ theme }) => {\n return {\n borderRadius: theme.vars.shape.borderRadius,\n paddingLeft: theme.spacing(1.5),\n height: 56,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.common.onBackground} 4%, transparent)`,\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 24%, white)`,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 28%, white)`,\n },\n ...theme.applyStyles('dark', {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 24%, black)`,\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${theme.vars.palette.secondary.main} 28%, black)`,\n },\n }),\n },\n variants: [\n {\n props: ({ disabled }) => disabled,\n style: {\n opacity: 0.5,\n cursor: 'auto',\n '&:hover': {\n backgroundColor: 'none',\n },\n },\n },\n ],\n }\n})\n"],"mappings":";;AAOA,MAAaA,mBAET,OAAOC,eAAkB,EAAE,EAAE,YAAY;CAC3C,OAAO;EACL,cAAc,MAAM,KAAK,MAAM;EAC/B,aAAa,MAAM,QAAQ,IAAI;EAC/B,QAAQ;EACR,WAAW,EACT,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,OAAO,aAAa,oBAC/E;GACA,KAAK,sBAAsB,aAAa;GACvC,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK;GACzE,WAAW,EACT,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK,eAC1E;GACD,GAAG,MAAM,YAAY,QAAQ;IAC3B,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK;IACzE,WAAW,EACT,iBAAiB,sBAAsB,MAAM,KAAK,QAAQ,UAAU,KAAK,eAC1E;IACF,CAAC;GACH;EACD,UAAU,CACR;GACE,QAAQ,EAAE,eAAe;GACzB,OAAO;IACL,SAAS;IACT,QAAQ;IACR,WAAW,EACT,iBAAiB,QAClB;IACF;GACF,CACF;EACF;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountDeployedMessage.js","names":[],"sources":["../../../../src/components/Messages/AccountDeployedMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport type { BoxProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\nexport const AccountDeployedMessage: React.FC<BoxProps> = ({ ...props }) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n title={\n <Typography\n variant=\"body2\"\n sx={{\n px: 1,\n color: 'text.primary',\n }}\n >\n {t('info.message.accountDeployedMessage')}\n </Typography>\n }\n icon={<WarningRounded />}\n severity=\"warning\"\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AAMA,MAAa,0BAA8C,EAAE,GAAG,YAAY;CAC1E,MAAM,EAAE,MAAM,gBAAgB;AAC9B,QACE,oBAAC,cAAD;EACE,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,OAAO;IACR;aAEA,EAAE,sCAAsC;GAC9B,CAAA;EAEf,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,UAAS;EACT,WAAA;EACA,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"AccountDeployedMessage.js","names":[],"sources":["../../../../src/components/Messages/AccountDeployedMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport type { BoxProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\nexport const AccountDeployedMessage: React.FC<BoxProps> = ({ ...props }) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n title={\n <Typography\n variant=\"body2\"\n sx={{\n px: 1,\n color: 'text.primary',\n }}\n >\n {t('info.message.accountDeployedMessage')}\n </Typography>\n }\n icon={<WarningRounded />}\n severity=\"warning\"\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AAMA,MAAa,0BAA8C,EAAE,GAAG,YAAY;CAC1E,MAAM,EAAE,MAAM,gBAAgB;CAC9B,OACE,oBAAC,cAAD;EACE,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,OAAO;IACR;aAEA,EAAE,sCAAsC;GAC9B,CAAA;EAEf,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,UAAS;EACT,WAAA;EACA,GAAI;EACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountNotDeployedMessage.js","names":[],"sources":["../../../../src/components/Messages/AccountNotDeployedMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\nexport const AccountNotDeployedMessage: React.FC<BoxProps> = (props) => {\n const { t } = useTranslation()\n\n return (\n <AlertMessage\n title={\n <Typography variant=\"body2\" sx={{ color: 'text.primary' }}>\n {t('warning.message.accountNotDeployedMessage')}\n </Typography>\n }\n icon={<WarningRounded />}\n severity=\"warning\"\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AAKA,MAAa,6BAAiD,UAAU;CACtE,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,oBAAC,cAAD;EACE,OACE,oBAAC,YAAD;GAAY,SAAQ;GAAQ,IAAI,EAAE,OAAO,gBAAgB;aACtD,EAAE,4CAA4C;GACpC,CAAA;EAEf,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,UAAS;EACT,WAAA;EACA,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"AccountNotDeployedMessage.js","names":[],"sources":["../../../../src/components/Messages/AccountNotDeployedMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\nexport const AccountNotDeployedMessage: React.FC<BoxProps> = (props) => {\n const { t } = useTranslation()\n\n return (\n <AlertMessage\n title={\n <Typography variant=\"body2\" sx={{ color: 'text.primary' }}>\n {t('warning.message.accountNotDeployedMessage')}\n </Typography>\n }\n icon={<WarningRounded />}\n severity=\"warning\"\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AAKA,MAAa,6BAAiD,UAAU;CACtE,MAAM,EAAE,MAAM,gBAAgB;CAE9B,OACE,oBAAC,cAAD;EACE,OACE,oBAAC,YAAD;GAAY,SAAQ;GAAQ,IAAI,EAAE,OAAO,gBAAgB;aACtD,EAAE,4CAA4C;GACpC,CAAA;EAEf,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,UAAS;EACT,WAAA;EACA,GAAI;EACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FundsSufficiencyMessage.js","names":[],"sources":["../../../../src/components/Messages/FundsSufficiencyMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\nexport const FundsSufficiencyMessage: React.FC<BoxProps> = (props) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n severity=\"warning\"\n icon={<WarningRounded />}\n title={\n <Typography\n variant=\"body2\"\n sx={{\n color: 'text.primary',\n }}\n >\n {t('warning.message.insufficientFunds')}\n </Typography>\n }\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AAKA,MAAa,2BAA+C,UAAU;CACpE,MAAM,EAAE,MAAM,gBAAgB;AAC9B,QACE,oBAAC,cAAD;EACE,UAAS;EACT,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI,EACF,OAAO,gBACR;aAEA,EAAE,oCAAoC;GAC5B,CAAA;EAEf,WAAA;EACA,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"FundsSufficiencyMessage.js","names":[],"sources":["../../../../src/components/Messages/FundsSufficiencyMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\nexport const FundsSufficiencyMessage: React.FC<BoxProps> = (props) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n severity=\"warning\"\n icon={<WarningRounded />}\n title={\n <Typography\n variant=\"body2\"\n sx={{\n color: 'text.primary',\n }}\n >\n {t('warning.message.insufficientFunds')}\n </Typography>\n }\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AAKA,MAAa,2BAA+C,UAAU;CACpE,MAAM,EAAE,MAAM,gBAAgB;CAC9B,OACE,oBAAC,cAAD;EACE,UAAS;EACT,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI,EACF,OAAO,gBACR;aAEA,EAAE,oCAAoC;GAC5B,CAAA;EAEf,WAAA;EACA,GAAI;EACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"GasRefuelMessage.js","names":[],"sources":["../../../../src/components/Messages/GasRefuelMessage.tsx"],"sourcesContent":["import EvStation from '@mui/icons-material/EvStation'\nimport type { BoxProps } from '@mui/material'\nimport { Box, Collapse, Typography } from '@mui/material'\nimport type { ChangeEvent } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useGasRefuel } from '../../hooks/useGasRefuel.js'\nimport { useSettings } from '../../stores/settings/useSettings.js'\nimport { useSettingsActions } from '../../stores/settings/useSettingsActions.js'\nimport { AlertMessage } from './AlertMessage.js'\nimport { InfoMessageSwitch } from './GasRefuelMessage.style.js'\n\nexport const GasRefuelMessage: React.FC<BoxProps> = (props) => {\n const { t } = useTranslation()\n\n const { setValue } = useSettingsActions()\n const { enabledAutoRefuel } = useSettings(['enabledAutoRefuel'])\n\n const { enabled, chain, isLoading: isRefuelLoading } = useGasRefuel()\n\n const onChange = (_: ChangeEvent<HTMLInputElement>, checked: boolean) => {\n setValue('enabledAutoRefuel', checked)\n }\n\n const showGasRefuelMessage = chain && enabled && !isRefuelLoading\n\n return (\n <Collapse\n timeout={225}\n in={showGasRefuelMessage}\n unmountOnExit\n mountOnEnter\n >\n <AlertMessage\n icon={<EvStation />}\n title={\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexGrow: 1,\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 700,\n }}\n >\n {t('info.title.autoRefuel', { chainName: chain?.name ?? '' })}\n </Typography>\n <InfoMessageSwitch\n checked={enabledAutoRefuel}\n onChange={onChange}\n />\n </Box>\n }\n {...props}\n >\n <Collapse\n timeout={225}\n in={enabledAutoRefuel}\n unmountOnExit\n mountOnEnter\n >\n <Typography\n variant=\"body2\"\n sx={{\n px: 2,\n pt: 1,\n }}\n >\n {t('info.message.autoRefuel', {\n chainName: chain?.name,\n })}\n </Typography>\n </Collapse>\n </AlertMessage>\n </Collapse>\n )\n}\n"],"mappings":";;;;;;;;;;AAWA,MAAa,oBAAwC,UAAU;CAC7D,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,EAAE,aAAa,oBAAoB;CACzC,MAAM,EAAE,sBAAsB,YAAY,CAAC,oBAAoB,CAAC;CAEhE,MAAM,EAAE,SAAS,OAAO,WAAW,oBAAoB,cAAc;CAErE,MAAM,YAAY,GAAkC,YAAqB;AACvE,WAAS,qBAAqB,QAAQ;;AAKxC,QACE,oBAAC,UAAD;EACE,SAAS;EACT,IALyB,SAAS,WAAW,CAAC;EAM9C,eAAA;EACA,cAAA;YAEA,oBAAC,cAAD;GACE,MAAM,oBAAC,WAAD,EAAa,CAAA;GACnB,OACE,qBAAC,KAAD;IACE,IAAI;KACF,SAAS;KACT,YAAY;KACZ,gBAAgB;KAChB,UAAU;KACX;cANH,CAQE,oBAAC,YAAD;KACE,SAAQ;KACR,IAAI,EACF,YAAY,KACb;eAEA,EAAE,yBAAyB,EAAE,WAAW,OAAO,QAAQ,IAAI,CAAC;KAClD,CAAA,EACb,oBAAC,mBAAD;KACE,SAAS;KACC;KACV,CAAA,CACE;;GAER,GAAI;aAEJ,oBAAC,UAAD;IACE,SAAS;IACT,IAAI;IACJ,eAAA;IACA,cAAA;cAEA,oBAAC,YAAD;KACE,SAAQ;KACR,IAAI;MACF,IAAI;MACJ,IAAI;MACL;eAEA,EAAE,2BAA2B,EAC5B,WAAW,OAAO,MACnB,CAAC;KACS,CAAA;IACJ,CAAA;GACE,CAAA;EACN,CAAA"}
1
+ {"version":3,"file":"GasRefuelMessage.js","names":[],"sources":["../../../../src/components/Messages/GasRefuelMessage.tsx"],"sourcesContent":["import EvStation from '@mui/icons-material/EvStation'\nimport type { BoxProps } from '@mui/material'\nimport { Box, Collapse, Typography } from '@mui/material'\nimport type { ChangeEvent } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useGasRefuel } from '../../hooks/useGasRefuel.js'\nimport { useSettings } from '../../stores/settings/useSettings.js'\nimport { useSettingsActions } from '../../stores/settings/useSettingsActions.js'\nimport { AlertMessage } from './AlertMessage.js'\nimport { InfoMessageSwitch } from './GasRefuelMessage.style.js'\n\nexport const GasRefuelMessage: React.FC<BoxProps> = (props) => {\n const { t } = useTranslation()\n\n const { setValue } = useSettingsActions()\n const { enabledAutoRefuel } = useSettings(['enabledAutoRefuel'])\n\n const { enabled, chain, isLoading: isRefuelLoading } = useGasRefuel()\n\n const onChange = (_: ChangeEvent<HTMLInputElement>, checked: boolean) => {\n setValue('enabledAutoRefuel', checked)\n }\n\n const showGasRefuelMessage = chain && enabled && !isRefuelLoading\n\n return (\n <Collapse\n timeout={225}\n in={showGasRefuelMessage}\n unmountOnExit\n mountOnEnter\n >\n <AlertMessage\n icon={<EvStation />}\n title={\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexGrow: 1,\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 700,\n }}\n >\n {t('info.title.autoRefuel', { chainName: chain?.name ?? '' })}\n </Typography>\n <InfoMessageSwitch\n checked={enabledAutoRefuel}\n onChange={onChange}\n />\n </Box>\n }\n {...props}\n >\n <Collapse\n timeout={225}\n in={enabledAutoRefuel}\n unmountOnExit\n mountOnEnter\n >\n <Typography\n variant=\"body2\"\n sx={{\n px: 2,\n pt: 1,\n }}\n >\n {t('info.message.autoRefuel', {\n chainName: chain?.name,\n })}\n </Typography>\n </Collapse>\n </AlertMessage>\n </Collapse>\n )\n}\n"],"mappings":";;;;;;;;;;AAWA,MAAa,oBAAwC,UAAU;CAC7D,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,EAAE,aAAa,oBAAoB;CACzC,MAAM,EAAE,sBAAsB,YAAY,CAAC,oBAAoB,CAAC;CAEhE,MAAM,EAAE,SAAS,OAAO,WAAW,oBAAoB,cAAc;CAErE,MAAM,YAAY,GAAkC,YAAqB;EACvE,SAAS,qBAAqB,QAAQ;;CAKxC,OACE,oBAAC,UAAD;EACE,SAAS;EACT,IALyB,SAAS,WAAW,CAAC;EAM9C,eAAA;EACA,cAAA;YAEA,oBAAC,cAAD;GACE,MAAM,oBAAC,WAAD,EAAa,CAAA;GACnB,OACE,qBAAC,KAAD;IACE,IAAI;KACF,SAAS;KACT,YAAY;KACZ,gBAAgB;KAChB,UAAU;KACX;cANH,CAQE,oBAAC,YAAD;KACE,SAAQ;KACR,IAAI,EACF,YAAY,KACb;eAEA,EAAE,yBAAyB,EAAE,WAAW,OAAO,QAAQ,IAAI,CAAC;KAClD,CAAA,EACb,oBAAC,mBAAD;KACE,SAAS;KACC;KACV,CAAA,CACE;;GAER,GAAI;aAEJ,oBAAC,UAAD;IACE,SAAS;IACT,IAAI;IACJ,eAAA;IACA,cAAA;cAEA,oBAAC,YAAD;KACE,SAAQ;KACR,IAAI;MACF,IAAI;MACJ,IAAI;MACL;eAEA,EAAE,2BAA2B,EAC5B,WAAW,OAAO,MACnB,CAAC;KACS,CAAA;IACJ,CAAA;GACE,CAAA;EACN,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"GasSufficiencyMessage.js","names":[],"sources":["../../../../src/components/Messages/GasSufficiencyMessage.tsx"],"sourcesContent":["import { formatUnits } from '@lifi/sdk'\nimport EvStation from '@mui/icons-material/EvStation'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport type { GasSufficiency } from '../../hooks/useGasSufficiency.js'\nimport { AlertMessage } from './AlertMessage.js'\n\ninterface GasSufficiencyMessageProps extends BoxProps {\n insufficientGas?: GasSufficiency[]\n}\n\nexport const GasSufficiencyMessage: React.FC<GasSufficiencyMessageProps> = ({\n insufficientGas,\n ...props\n}) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n severity=\"warning\"\n icon={<EvStation />}\n title={\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 700,\n }}\n >\n {t('warning.title.insufficientGas')}\n </Typography>\n }\n {...props}\n >\n <Typography\n variant=\"body2\"\n sx={{\n px: 2,\n pt: 1,\n }}\n >\n {t('warning.message.insufficientGas')}\n </Typography>\n {insufficientGas?.map((item, index) => (\n <Typography\n key={index}\n variant=\"body2\"\n sx={{\n px: 2,\n pt: 0.5,\n }}\n >\n {t('main.tokenOnChainAmount', {\n amount: formatUnits(\n item.insufficientAmount ?? 0n,\n item.token.decimals\n ),\n tokenSymbol: item.token.symbol,\n chainName: item.chain?.name,\n })}\n </Typography>\n ))}\n </AlertMessage>\n )\n}\n"],"mappings":";;;;;;;AAWA,MAAa,yBAA+D,EAC1E,iBACA,GAAG,YACC;CACJ,MAAM,EAAE,MAAM,gBAAgB;AAC9B,QACE,qBAAC,cAAD;EACE,UAAS;EACT,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI,EACF,YAAY,KACb;aAEA,EAAE,gCAAgC;GACxB,CAAA;EAEf,GAAI;YAbN,CAeE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,IAAI;IACL;aAEA,EAAE,kCAAkC;GAC1B,CAAA,EACZ,iBAAiB,KAAK,MAAM,UAC3B,oBAAC,YAAD;GAEE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,IAAI;IACL;aAEA,EAAE,2BAA2B;IAC5B,QAAQ,YACN,KAAK,sBAAsB,IAC3B,KAAK,MAAM,SACZ;IACD,aAAa,KAAK,MAAM;IACxB,WAAW,KAAK,OAAO;IACxB,CAAC;GACS,EAfN,MAeM,CACb,CACW"}
1
+ {"version":3,"file":"GasSufficiencyMessage.js","names":[],"sources":["../../../../src/components/Messages/GasSufficiencyMessage.tsx"],"sourcesContent":["import { formatUnits } from '@lifi/sdk'\nimport EvStation from '@mui/icons-material/EvStation'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport type { GasSufficiency } from '../../hooks/useGasSufficiency.js'\nimport { AlertMessage } from './AlertMessage.js'\n\ninterface GasSufficiencyMessageProps extends BoxProps {\n insufficientGas?: GasSufficiency[]\n}\n\nexport const GasSufficiencyMessage: React.FC<GasSufficiencyMessageProps> = ({\n insufficientGas,\n ...props\n}) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n severity=\"warning\"\n icon={<EvStation />}\n title={\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 700,\n }}\n >\n {t('warning.title.insufficientGas')}\n </Typography>\n }\n {...props}\n >\n <Typography\n variant=\"body2\"\n sx={{\n px: 2,\n pt: 1,\n }}\n >\n {t('warning.message.insufficientGas')}\n </Typography>\n {insufficientGas?.map((item, index) => (\n <Typography\n key={index}\n variant=\"body2\"\n sx={{\n px: 2,\n pt: 0.5,\n }}\n >\n {t('main.tokenOnChainAmount', {\n amount: formatUnits(\n item.insufficientAmount ?? 0n,\n item.token.decimals\n ),\n tokenSymbol: item.token.symbol,\n chainName: item.chain?.name,\n })}\n </Typography>\n ))}\n </AlertMessage>\n )\n}\n"],"mappings":";;;;;;;AAWA,MAAa,yBAA+D,EAC1E,iBACA,GAAG,YACC;CACJ,MAAM,EAAE,MAAM,gBAAgB;CAC9B,OACE,qBAAC,cAAD;EACE,UAAS;EACT,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI,EACF,YAAY,KACb;aAEA,EAAE,gCAAgC;GACxB,CAAA;EAEf,GAAI;YAbN,CAeE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,IAAI;IACL;aAEA,EAAE,kCAAkC;GAC1B,CAAA,EACZ,iBAAiB,KAAK,MAAM,UAC3B,oBAAC,YAAD;GAEE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,IAAI;IACL;aAEA,EAAE,2BAA2B;IAC5B,QAAQ,YACN,KAAK,sBAAsB,IAC3B,KAAK,MAAM,SACZ;IACD,aAAa,KAAK,MAAM;IACxB,WAAW,KAAK,OAAO;IACxB,CAAC;GACS,EAfN,MAeM,CACb,CACW"}
@@ -1 +1 @@
1
- {"version":3,"file":"MinFromAmountUSDMessage.js","names":[],"sources":["../../../../src/components/Messages/MinFromAmountUSDMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\ntype MinFromAmountUSDMessageProps = BoxProps & {\n minFromAmountUSD: number\n}\n\nexport const MinFromAmountUSDMessage: React.FC<\n MinFromAmountUSDMessageProps\n> = ({ minFromAmountUSD, ...props }) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n severity=\"warning\"\n icon={<WarningRounded />}\n title={\n <Typography\n variant=\"body2\"\n sx={{\n color: 'text.primary',\n }}\n >\n {t('warning.message.minFromAmountUSD', {\n amount: minFromAmountUSD,\n minimumFractionDigits: 0,\n })}\n </Typography>\n }\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AASA,MAAa,2BAER,EAAE,kBAAkB,GAAG,YAAY;CACtC,MAAM,EAAE,MAAM,gBAAgB;AAC9B,QACE,oBAAC,cAAD;EACE,UAAS;EACT,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI,EACF,OAAO,gBACR;aAEA,EAAE,oCAAoC;IACrC,QAAQ;IACR,uBAAuB;IACxB,CAAC;GACS,CAAA;EAEf,WAAA;EACA,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"MinFromAmountUSDMessage.js","names":[],"sources":["../../../../src/components/Messages/MinFromAmountUSDMessage.tsx"],"sourcesContent":["import WarningRounded from '@mui/icons-material/WarningRounded'\nimport { type BoxProps, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { AlertMessage } from './AlertMessage.js'\n\ntype MinFromAmountUSDMessageProps = BoxProps & {\n minFromAmountUSD: number\n}\n\nexport const MinFromAmountUSDMessage: React.FC<\n MinFromAmountUSDMessageProps\n> = ({ minFromAmountUSD, ...props }) => {\n const { t } = useTranslation()\n return (\n <AlertMessage\n severity=\"warning\"\n icon={<WarningRounded />}\n title={\n <Typography\n variant=\"body2\"\n sx={{\n color: 'text.primary',\n }}\n >\n {t('warning.message.minFromAmountUSD', {\n amount: minFromAmountUSD,\n minimumFractionDigits: 0,\n })}\n </Typography>\n }\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;AASA,MAAa,2BAER,EAAE,kBAAkB,GAAG,YAAY;CACtC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,OACE,oBAAC,cAAD;EACE,UAAS;EACT,MAAM,oBAAC,gBAAD,EAAkB,CAAA;EACxB,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI,EACF,OAAO,gBACR;aAEA,EAAE,oCAAoC;IACrC,QAAQ;IACR,uBAAuB;IACxB,CAAC;GACS,CAAA;EAEf,WAAA;EACA,GAAI;EACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MissingRouteRequiredAccountMessage.js","names":[],"sources":["../../../../src/components/Messages/MissingRouteRequiredAccountMessage.tsx"],"sourcesContent":["import type { ExtendedChain } from '@lifi/sdk'\nimport Wallet from '@mui/icons-material/Wallet'\nimport type { BoxProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { AlertMessage } from './AlertMessage.js'\n\ninterface MissingRouteRequiredAccountMessageProps extends BoxProps {\n chain?: ExtendedChain\n address?: string\n}\n\nexport const MissingRouteRequiredAccountMessage: React.FC<\n MissingRouteRequiredAccountMessageProps\n> = ({ chain, address, ...props }) => {\n const { t } = useTranslation()\n\n if (!chain) {\n return null\n }\n\n return (\n <AlertMessage\n title={\n <Typography\n variant=\"body2\"\n sx={{\n px: 1,\n color: 'text.primary',\n }}\n >\n {t('info.message.missingRouteRequiredAccount', {\n chainName: chain.name,\n address: address ? `(${shortenAddress(address)})` : '',\n })}\n </Typography>\n }\n icon={<Wallet />}\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;;AAaA,MAAa,sCAER,EAAE,OAAO,SAAS,GAAG,YAAY;CACpC,MAAM,EAAE,MAAM,gBAAgB;AAE9B,KAAI,CAAC,MACH,QAAO;AAGT,QACE,oBAAC,cAAD;EACE,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,OAAO;IACR;aAEA,EAAE,4CAA4C;IAC7C,WAAW,MAAM;IACjB,SAAS,UAAU,IAAI,eAAe,QAAQ,CAAC,KAAK;IACrD,CAAC;GACS,CAAA;EAEf,MAAM,oBAAC,QAAD,EAAU,CAAA;EAChB,WAAA;EACA,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"MissingRouteRequiredAccountMessage.js","names":[],"sources":["../../../../src/components/Messages/MissingRouteRequiredAccountMessage.tsx"],"sourcesContent":["import type { ExtendedChain } from '@lifi/sdk'\nimport Wallet from '@mui/icons-material/Wallet'\nimport type { BoxProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { AlertMessage } from './AlertMessage.js'\n\ninterface MissingRouteRequiredAccountMessageProps extends BoxProps {\n chain?: ExtendedChain\n address?: string\n}\n\nexport const MissingRouteRequiredAccountMessage: React.FC<\n MissingRouteRequiredAccountMessageProps\n> = ({ chain, address, ...props }) => {\n const { t } = useTranslation()\n\n if (!chain) {\n return null\n }\n\n return (\n <AlertMessage\n title={\n <Typography\n variant=\"body2\"\n sx={{\n px: 1,\n color: 'text.primary',\n }}\n >\n {t('info.message.missingRouteRequiredAccount', {\n chainName: chain.name,\n address: address ? `(${shortenAddress(address)})` : '',\n })}\n </Typography>\n }\n icon={<Wallet />}\n multiline\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;;AAaA,MAAa,sCAER,EAAE,OAAO,SAAS,GAAG,YAAY;CACpC,MAAM,EAAE,MAAM,gBAAgB;CAE9B,IAAI,CAAC,OACH,OAAO;CAGT,OACE,oBAAC,cAAD;EACE,OACE,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,OAAO;IACR;aAEA,EAAE,4CAA4C;IAC7C,WAAW,MAAM;IACjB,SAAS,UAAU,IAAI,eAAe,QAAQ,CAAC,KAAK;IACrD,CAAC;GACS,CAAA;EAEf,MAAM,oBAAC,QAAD,EAAU,CAAA;EAChB,WAAA;EACA,GAAI;EACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"WarningMessages.js","names":[],"sources":["../../../../src/components/Messages/WarningMessages.tsx"],"sourcesContent":["import type { Route } from '@lifi/sdk'\nimport type { BoxProps } from '@mui/material'\nimport { Collapse } from '@mui/material'\nimport { AccountDeployedMessage } from './AccountDeployedMessage.js'\nimport { AccountNotDeployedMessage } from './AccountNotDeployedMessage.js'\nimport { FundsSufficiencyMessage } from './FundsSufficiencyMessage.js'\nimport { GasSufficiencyMessage } from './GasSufficiencyMessage.js'\nimport { MinFromAmountUSDMessage } from './MinFromAmountUSDMessage.js'\nimport { MissingRouteRequiredAccountMessage } from './MissingRouteRequiredAccountMessage.js'\nimport { useMessageQueue } from './useMessageQueue.js'\n\ntype WarningMessagesProps = BoxProps & {\n route?: Route\n allowInteraction?: boolean\n}\n\nexport const WarningMessages: React.FC<WarningMessagesProps> = ({\n route,\n allowInteraction,\n ...props\n}) => {\n const { messages, hasMessages } = useMessageQueue(route, allowInteraction)\n\n const getMessage = () => {\n switch (messages[0]?.id) {\n case 'MISSING_ROUTE_REQUIRED_ACCOUNT':\n return (\n <MissingRouteRequiredAccountMessage\n chain={messages[0].props?.chain}\n address={messages[0].props?.address}\n {...props}\n />\n )\n case 'INSUFFICIENT_FUNDS':\n return <FundsSufficiencyMessage {...props} />\n case 'INSUFFICIENT_GAS':\n return (\n <GasSufficiencyMessage\n insufficientGas={messages[0].props?.insufficientGas}\n {...props}\n />\n )\n case 'MIN_FROM_AMOUNT_USD':\n return (\n <MinFromAmountUSDMessage\n minFromAmountUSD={messages[0].props?.minFromAmountUSD}\n {...props}\n />\n )\n case 'ACCOUNT_NOT_DEPLOYED':\n return <AccountNotDeployedMessage {...props} />\n case 'ACCOUNT_DEPLOYED':\n return <AccountDeployedMessage {...props} />\n default:\n return null\n }\n }\n\n return (\n <Collapse in={hasMessages} timeout={225} unmountOnExit mountOnEnter>\n {getMessage()}\n </Collapse>\n )\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAa,mBAAmD,EAC9D,OACA,kBACA,GAAG,YACC;CACJ,MAAM,EAAE,UAAU,gBAAgB,gBAAgB,OAAO,iBAAiB;CAE1E,MAAM,mBAAmB;AACvB,UAAQ,SAAS,IAAI,IAArB;GACE,KAAK,iCACH,QACE,oBAAC,oCAAD;IACE,OAAO,SAAS,GAAG,OAAO;IAC1B,SAAS,SAAS,GAAG,OAAO;IAC5B,GAAI;IACJ,CAAA;GAEN,KAAK,qBACH,QAAO,oBAAC,yBAAD,EAAyB,GAAI,OAAS,CAAA;GAC/C,KAAK,mBACH,QACE,oBAAC,uBAAD;IACE,iBAAiB,SAAS,GAAG,OAAO;IACpC,GAAI;IACJ,CAAA;GAEN,KAAK,sBACH,QACE,oBAAC,yBAAD;IACE,kBAAkB,SAAS,GAAG,OAAO;IACrC,GAAI;IACJ,CAAA;GAEN,KAAK,uBACH,QAAO,oBAAC,2BAAD,EAA2B,GAAI,OAAS,CAAA;GACjD,KAAK,mBACH,QAAO,oBAAC,wBAAD,EAAwB,GAAI,OAAS,CAAA;GAC9C,QACE,QAAO;;;AAIb,QACE,oBAAC,UAAD;EAAU,IAAI;EAAa,SAAS;EAAK,eAAA;EAAc,cAAA;YACpD,YAAY;EACJ,CAAA"}
1
+ {"version":3,"file":"WarningMessages.js","names":[],"sources":["../../../../src/components/Messages/WarningMessages.tsx"],"sourcesContent":["import type { Route } from '@lifi/sdk'\nimport type { BoxProps } from '@mui/material'\nimport { Collapse } from '@mui/material'\nimport { AccountDeployedMessage } from './AccountDeployedMessage.js'\nimport { AccountNotDeployedMessage } from './AccountNotDeployedMessage.js'\nimport { FundsSufficiencyMessage } from './FundsSufficiencyMessage.js'\nimport { GasSufficiencyMessage } from './GasSufficiencyMessage.js'\nimport { MinFromAmountUSDMessage } from './MinFromAmountUSDMessage.js'\nimport { MissingRouteRequiredAccountMessage } from './MissingRouteRequiredAccountMessage.js'\nimport { useMessageQueue } from './useMessageQueue.js'\n\ntype WarningMessagesProps = BoxProps & {\n route?: Route\n allowInteraction?: boolean\n}\n\nexport const WarningMessages: React.FC<WarningMessagesProps> = ({\n route,\n allowInteraction,\n ...props\n}) => {\n const { messages, hasMessages } = useMessageQueue(route, allowInteraction)\n\n const getMessage = () => {\n switch (messages[0]?.id) {\n case 'MISSING_ROUTE_REQUIRED_ACCOUNT':\n return (\n <MissingRouteRequiredAccountMessage\n chain={messages[0].props?.chain}\n address={messages[0].props?.address}\n {...props}\n />\n )\n case 'INSUFFICIENT_FUNDS':\n return <FundsSufficiencyMessage {...props} />\n case 'INSUFFICIENT_GAS':\n return (\n <GasSufficiencyMessage\n insufficientGas={messages[0].props?.insufficientGas}\n {...props}\n />\n )\n case 'MIN_FROM_AMOUNT_USD':\n return (\n <MinFromAmountUSDMessage\n minFromAmountUSD={messages[0].props?.minFromAmountUSD}\n {...props}\n />\n )\n case 'ACCOUNT_NOT_DEPLOYED':\n return <AccountNotDeployedMessage {...props} />\n case 'ACCOUNT_DEPLOYED':\n return <AccountDeployedMessage {...props} />\n default:\n return null\n }\n }\n\n return (\n <Collapse in={hasMessages} timeout={225} unmountOnExit mountOnEnter>\n {getMessage()}\n </Collapse>\n )\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAa,mBAAmD,EAC9D,OACA,kBACA,GAAG,YACC;CACJ,MAAM,EAAE,UAAU,gBAAgB,gBAAgB,OAAO,iBAAiB;CAE1E,MAAM,mBAAmB;EACvB,QAAQ,SAAS,IAAI,IAArB;GACE,KAAK,kCACH,OACE,oBAAC,oCAAD;IACE,OAAO,SAAS,GAAG,OAAO;IAC1B,SAAS,SAAS,GAAG,OAAO;IAC5B,GAAI;IACJ,CAAA;GAEN,KAAK,sBACH,OAAO,oBAAC,yBAAD,EAAyB,GAAI,OAAS,CAAA;GAC/C,KAAK,oBACH,OACE,oBAAC,uBAAD;IACE,iBAAiB,SAAS,GAAG,OAAO;IACpC,GAAI;IACJ,CAAA;GAEN,KAAK,uBACH,OACE,oBAAC,yBAAD;IACE,kBAAkB,SAAS,GAAG,OAAO;IACrC,GAAI;IACJ,CAAA;GAEN,KAAK,wBACH,OAAO,oBAAC,2BAAD,EAA2B,GAAI,OAAS,CAAA;GACjD,KAAK,oBACH,OAAO,oBAAC,wBAAD,EAAwB,GAAI,OAAS,CAAA;GAC9C,SACE,OAAO;;;CAIb,OACE,oBAAC,UAAD;EAAU,IAAI;EAAa,SAAS;EAAK,eAAA;EAAc,cAAA;YACpD,YAAY;EACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageQueue.js","names":[],"sources":["../../../../src/components/Messages/useMessageQueue.ts"],"sourcesContent":["import type { Route } from '@lifi/sdk'\nimport { useMemo } from 'react'\nimport { useFromAmountThreshold } from '../../hooks/useFromAmountThreshold.js'\nimport { useFromTokenSufficiency } from '../../hooks/useFromTokenSufficiency.js'\nimport { useGasSufficiency } from '../../hooks/useGasSufficiency.js'\nimport { useRouteRequiredAccountConnection } from '../../hooks/useRouteRequiredAccountConnection.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\n\nexport interface QueuedMessage {\n id: string\n priority: number\n props?: Record<string, any>\n}\n\nexport const useMessageQueue = (\n route?: Route,\n allowInteraction?: boolean\n): {\n messages: QueuedMessage[]\n hasMessages: boolean\n isLoading: boolean\n} => {\n const {\n requiredToAddress,\n accountNotDeployedAtDestination,\n accountDeployedAtDestination,\n isLoading: isToAddressRequirementsLoading,\n } = useToAddressRequirements(route)\n const { insufficientFromToken, isLoading: isFromTokenSufficiencyLoading } =\n useFromTokenSufficiency(route)\n const { insufficientGas, isLoading: isGasSufficiencyLoading } =\n useGasSufficiency(route)\n const { missingChain, missingAccountAddress } =\n useRouteRequiredAccountConnection(route)\n const { belowMinFromAmountUSD, minFromAmountUSD } = useFromAmountThreshold()\n\n const messageQueue = useMemo(() => {\n const queue: QueuedMessage[] = []\n\n if (missingChain) {\n queue.push({\n id: 'MISSING_ROUTE_REQUIRED_ACCOUNT',\n priority: 1,\n props: { chain: missingChain, address: missingAccountAddress },\n })\n }\n\n if (insufficientFromToken) {\n queue.push({\n id: 'INSUFFICIENT_FUNDS',\n priority: 2,\n })\n }\n\n if (belowMinFromAmountUSD) {\n queue.push({\n id: 'MIN_FROM_AMOUNT_USD',\n priority: 3,\n props: { minFromAmountUSD },\n })\n }\n\n if (insufficientGas?.length) {\n queue.push({\n id: 'INSUFFICIENT_GAS',\n priority: 4,\n props: { insufficientGas },\n })\n }\n\n if (accountNotDeployedAtDestination && !allowInteraction) {\n queue.push({\n id: 'ACCOUNT_NOT_DEPLOYED',\n priority: 5,\n })\n }\n\n if (\n requiredToAddress &&\n accountDeployedAtDestination &&\n !allowInteraction\n ) {\n queue.push({\n id: 'ACCOUNT_DEPLOYED',\n priority: 6,\n })\n }\n\n return queue.sort((a, b) => a.priority - b.priority)\n }, [\n allowInteraction,\n insufficientFromToken,\n insufficientGas,\n accountDeployedAtDestination,\n accountNotDeployedAtDestination,\n requiredToAddress,\n missingChain,\n missingAccountAddress,\n belowMinFromAmountUSD,\n minFromAmountUSD,\n ])\n\n return {\n messages: messageQueue,\n hasMessages: messageQueue.length > 0,\n isLoading:\n isGasSufficiencyLoading ||\n isFromTokenSufficiencyLoading ||\n isToAddressRequirementsLoading,\n }\n}\n"],"mappings":";;;;;;;AAcA,MAAa,mBACX,OACA,qBAKG;CACH,MAAM,EACJ,mBACA,iCACA,8BACA,WAAW,mCACT,yBAAyB,MAAM;CACnC,MAAM,EAAE,uBAAuB,WAAW,kCACxC,wBAAwB,MAAM;CAChC,MAAM,EAAE,iBAAiB,WAAW,4BAClC,kBAAkB,MAAM;CAC1B,MAAM,EAAE,cAAc,0BACpB,kCAAkC,MAAM;CAC1C,MAAM,EAAE,uBAAuB,qBAAqB,wBAAwB;CAE5E,MAAM,eAAe,cAAc;EACjC,MAAM,QAAyB,EAAE;AAEjC,MAAI,aACF,OAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACV,OAAO;IAAE,OAAO;IAAc,SAAS;IAAuB;GAC/D,CAAC;AAGJ,MAAI,sBACF,OAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACX,CAAC;AAGJ,MAAI,sBACF,OAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACV,OAAO,EAAE,kBAAkB;GAC5B,CAAC;AAGJ,MAAI,iBAAiB,OACnB,OAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACV,OAAO,EAAE,iBAAiB;GAC3B,CAAC;AAGJ,MAAI,mCAAmC,CAAC,iBACtC,OAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACX,CAAC;AAGJ,MACE,qBACA,gCACA,CAAC,iBAED,OAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACX,CAAC;AAGJ,SAAO,MAAM,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,SAAS;IACnD;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QAAO;EACL,UAAU;EACV,aAAa,aAAa,SAAS;EACnC,WACE,2BACA,iCACA;EACH"}
1
+ {"version":3,"file":"useMessageQueue.js","names":[],"sources":["../../../../src/components/Messages/useMessageQueue.ts"],"sourcesContent":["import type { Route } from '@lifi/sdk'\nimport { useMemo } from 'react'\nimport { useFromAmountThreshold } from '../../hooks/useFromAmountThreshold.js'\nimport { useFromTokenSufficiency } from '../../hooks/useFromTokenSufficiency.js'\nimport { useGasSufficiency } from '../../hooks/useGasSufficiency.js'\nimport { useRouteRequiredAccountConnection } from '../../hooks/useRouteRequiredAccountConnection.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\n\nexport interface QueuedMessage {\n id: string\n priority: number\n props?: Record<string, any>\n}\n\nexport const useMessageQueue = (\n route?: Route,\n allowInteraction?: boolean\n): {\n messages: QueuedMessage[]\n hasMessages: boolean\n isLoading: boolean\n} => {\n const {\n requiredToAddress,\n accountNotDeployedAtDestination,\n accountDeployedAtDestination,\n isLoading: isToAddressRequirementsLoading,\n } = useToAddressRequirements(route)\n const { insufficientFromToken, isLoading: isFromTokenSufficiencyLoading } =\n useFromTokenSufficiency(route)\n const { insufficientGas, isLoading: isGasSufficiencyLoading } =\n useGasSufficiency(route)\n const { missingChain, missingAccountAddress } =\n useRouteRequiredAccountConnection(route)\n const { belowMinFromAmountUSD, minFromAmountUSD } = useFromAmountThreshold()\n\n const messageQueue = useMemo(() => {\n const queue: QueuedMessage[] = []\n\n if (missingChain) {\n queue.push({\n id: 'MISSING_ROUTE_REQUIRED_ACCOUNT',\n priority: 1,\n props: { chain: missingChain, address: missingAccountAddress },\n })\n }\n\n if (insufficientFromToken) {\n queue.push({\n id: 'INSUFFICIENT_FUNDS',\n priority: 2,\n })\n }\n\n if (belowMinFromAmountUSD) {\n queue.push({\n id: 'MIN_FROM_AMOUNT_USD',\n priority: 3,\n props: { minFromAmountUSD },\n })\n }\n\n if (insufficientGas?.length) {\n queue.push({\n id: 'INSUFFICIENT_GAS',\n priority: 4,\n props: { insufficientGas },\n })\n }\n\n if (accountNotDeployedAtDestination && !allowInteraction) {\n queue.push({\n id: 'ACCOUNT_NOT_DEPLOYED',\n priority: 5,\n })\n }\n\n if (\n requiredToAddress &&\n accountDeployedAtDestination &&\n !allowInteraction\n ) {\n queue.push({\n id: 'ACCOUNT_DEPLOYED',\n priority: 6,\n })\n }\n\n return queue.sort((a, b) => a.priority - b.priority)\n }, [\n allowInteraction,\n insufficientFromToken,\n insufficientGas,\n accountDeployedAtDestination,\n accountNotDeployedAtDestination,\n requiredToAddress,\n missingChain,\n missingAccountAddress,\n belowMinFromAmountUSD,\n minFromAmountUSD,\n ])\n\n return {\n messages: messageQueue,\n hasMessages: messageQueue.length > 0,\n isLoading:\n isGasSufficiencyLoading ||\n isFromTokenSufficiencyLoading ||\n isToAddressRequirementsLoading,\n }\n}\n"],"mappings":";;;;;;;AAcA,MAAa,mBACX,OACA,qBAKG;CACH,MAAM,EACJ,mBACA,iCACA,8BACA,WAAW,mCACT,yBAAyB,MAAM;CACnC,MAAM,EAAE,uBAAuB,WAAW,kCACxC,wBAAwB,MAAM;CAChC,MAAM,EAAE,iBAAiB,WAAW,4BAClC,kBAAkB,MAAM;CAC1B,MAAM,EAAE,cAAc,0BACpB,kCAAkC,MAAM;CAC1C,MAAM,EAAE,uBAAuB,qBAAqB,wBAAwB;CAE5E,MAAM,eAAe,cAAc;EACjC,MAAM,QAAyB,EAAE;EAEjC,IAAI,cACF,MAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACV,OAAO;IAAE,OAAO;IAAc,SAAS;IAAuB;GAC/D,CAAC;EAGJ,IAAI,uBACF,MAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACX,CAAC;EAGJ,IAAI,uBACF,MAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACV,OAAO,EAAE,kBAAkB;GAC5B,CAAC;EAGJ,IAAI,iBAAiB,QACnB,MAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACV,OAAO,EAAE,iBAAiB;GAC3B,CAAC;EAGJ,IAAI,mCAAmC,CAAC,kBACtC,MAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACX,CAAC;EAGJ,IACE,qBACA,gCACA,CAAC,kBAED,MAAM,KAAK;GACT,IAAI;GACJ,UAAU;GACX,CAAC;EAGJ,OAAO,MAAM,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,SAAS;IACnD;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,OAAO;EACL,UAAU;EACV,aAAa,aAAa,SAAS;EACnC,WACE,2BACA,iCACA;EACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotFound.js","names":[],"sources":["../../../src/components/NotFound.tsx"],"sourcesContent":["import Block from '@mui/icons-material/Block'\nimport { Box, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\n\nexport const NotFound: React.FC = () => {\n const { t } = useTranslation()\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n flex: 1,\n padding: 3,\n }}\n >\n <Typography\n sx={{\n fontSize: 48,\n }}\n >\n <Block fontSize=\"inherit\" />\n </Typography>\n <Typography\n sx={{\n fontSize: 18,\n fontWeight: 700,\n }}\n >\n {t('tooltip.notFound.title')}\n </Typography>\n <Typography\n sx={{\n fontSize: 14,\n color: 'text.secondary',\n textAlign: 'center',\n mt: 2,\n }}\n >\n {t('tooltip.notFound.text')}\n </Typography>\n </Box>\n )\n}\n"],"mappings":";;;;;AAIA,MAAa,iBAA2B;CACtC,MAAM,EAAE,MAAM,gBAAgB;AAC9B,QACE,qBAAC,KAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;GAChB,YAAY;GACZ,eAAe;GACf,MAAM;GACN,SAAS;GACV;YARH;GAUE,oBAAC,YAAD;IACE,IAAI,EACF,UAAU,IACX;cAED,oBAAC,OAAD,EAAO,UAAS,WAAY,CAAA;IACjB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,YAAY;KACb;cAEA,EAAE,yBAAyB;IACjB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,OAAO;KACP,WAAW;KACX,IAAI;KACL;cAEA,EAAE,wBAAwB;IAChB,CAAA;GACT"}
1
+ {"version":3,"file":"NotFound.js","names":[],"sources":["../../../src/components/NotFound.tsx"],"sourcesContent":["import Block from '@mui/icons-material/Block'\nimport { Box, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\n\nexport const NotFound: React.FC = () => {\n const { t } = useTranslation()\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n flex: 1,\n padding: 3,\n }}\n >\n <Typography\n sx={{\n fontSize: 48,\n }}\n >\n <Block fontSize=\"inherit\" />\n </Typography>\n <Typography\n sx={{\n fontSize: 18,\n fontWeight: 700,\n }}\n >\n {t('tooltip.notFound.title')}\n </Typography>\n <Typography\n sx={{\n fontSize: 14,\n color: 'text.secondary',\n textAlign: 'center',\n mt: 2,\n }}\n >\n {t('tooltip.notFound.text')}\n </Typography>\n </Box>\n )\n}\n"],"mappings":";;;;;AAIA,MAAa,iBAA2B;CACtC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,OACE,qBAAC,KAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;GAChB,YAAY;GACZ,eAAe;GACf,MAAM;GACN,SAAS;GACV;YARH;GAUE,oBAAC,YAAD;IACE,IAAI,EACF,UAAU,IACX;cAED,oBAAC,OAAD,EAAO,UAAS,WAAY,CAAA;IACjB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,YAAY;KACb;cAEA,EAAE,yBAAyB;IACjB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,OAAO;KACP,WAAW;KACX,IAAI;KACL;cAEA,EAAE,wBAAwB;IAChB,CAAA;GACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageEntered.js","names":[],"sources":["../../../src/components/PageEntered.ts"],"sourcesContent":["import { useLocation } from '@tanstack/react-router'\nimport { useEffect } from 'react'\nimport { useWidgetEvents } from '../hooks/useWidgetEvents.js'\nimport { WidgetEvent } from '../types/events.js'\n\nexport function PageEntered() {\n const location = useLocation()\n const emitter = useWidgetEvents()\n\n useEffect(() => {\n emitter.emit(WidgetEvent.PageEntered, location.pathname)\n }, [emitter, location.pathname])\n return null\n}\n"],"mappings":";;;;;AAKA,SAAgB,cAAc;CAC5B,MAAM,WAAW,aAAa;CAC9B,MAAM,UAAU,iBAAiB;AAEjC,iBAAgB;AACd,UAAQ,KAAA,eAA8B,SAAS,SAAS;IACvD,CAAC,SAAS,SAAS,SAAS,CAAC;AAChC,QAAO"}
1
+ {"version":3,"file":"PageEntered.js","names":[],"sources":["../../../src/components/PageEntered.ts"],"sourcesContent":["import { useLocation } from '@tanstack/react-router'\nimport { useEffect } from 'react'\nimport { useWidgetEvents } from '../hooks/useWidgetEvents.js'\nimport { WidgetEvent } from '../types/events.js'\n\nexport function PageEntered() {\n const location = useLocation()\n const emitter = useWidgetEvents()\n\n useEffect(() => {\n emitter.emit(WidgetEvent.PageEntered, location.pathname)\n }, [emitter, location.pathname])\n return null\n}\n"],"mappings":";;;;;AAKA,SAAgB,cAAc;CAC5B,MAAM,WAAW,aAAa;CAC9B,MAAM,UAAU,iBAAiB;CAEjC,gBAAgB;EACd,QAAQ,KAAA,eAA8B,SAAS,SAAS;IACvD,CAAC,SAAS,SAAS,SAAS,CAAC;CAChC,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"PoweredBy.js","names":["Link"],"sources":["../../../../src/components/PoweredBy/PoweredBy.tsx"],"sourcesContent":["import { Box, Tooltip, Typography } from '@mui/material'\nimport { version } from '../../config/version.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { Link } from './PoweredBy.style.js'\n\nconst poweredByConfig = {\n default: {\n url: 'https://li.fi',\n text: 'LI.FI',\n },\n jumper: {\n url: 'https://jumper.exchange',\n text: 'Jumper',\n },\n}\n\nexport const PoweredBy: React.FC = () => {\n const { poweredBy = 'default' } = useWidgetConfig()\n\n return (\n <Box\n sx={{\n pt: 1,\n pb: 2,\n flex: 1,\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n }}\n >\n <Tooltip title={`v${version}`} enterDelay={1000}>\n <Link\n href={poweredByConfig[poweredBy].url}\n target=\"_blank\"\n underline=\"none\"\n color=\"text.primary\"\n >\n <Typography\n sx={{\n color: 'text.secondary',\n fontSize: 12,\n fontWeight: 500,\n px: 0.5,\n }}\n >\n Powered by\n </Typography>\n <Typography\n sx={{\n color: 'text.primary',\n fontSize: 12,\n fontWeight: 600,\n }}\n >\n {poweredByConfig[poweredBy].text}\n </Typography>\n </Link>\n </Tooltip>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAKA,MAAM,kBAAkB;CACtB,SAAS;EACP,KAAK;EACL,MAAM;EACP;CACD,QAAQ;EACN,KAAK;EACL,MAAM;EACP;CACF;AAED,MAAa,kBAA4B;CACvC,MAAM,EAAE,YAAY,cAAc,iBAAiB;AAEnD,QACE,oBAAC,KAAD;EACE,IAAI;GACF,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,SAAS;GACT,YAAY;GACZ,gBAAgB;GACjB;YAED,oBAAC,SAAD;GAAS,OAAO,IAAI;GAAW,YAAY;aACzC,qBAACA,QAAD;IACE,MAAM,gBAAgB,WAAW;IACjC,QAAO;IACP,WAAU;IACV,OAAM;cAJR,CAME,oBAAC,YAAD;KACE,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACZ,IAAI;MACL;eACF;KAEY,CAAA,EACb,oBAAC,YAAD;KACE,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACb;eAEA,gBAAgB,WAAW;KACjB,CAAA,CACR;;GACC,CAAA;EACN,CAAA"}
1
+ {"version":3,"file":"PoweredBy.js","names":["Link"],"sources":["../../../../src/components/PoweredBy/PoweredBy.tsx"],"sourcesContent":["import { Box, Tooltip, Typography } from '@mui/material'\nimport { version } from '../../config/version.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { Link } from './PoweredBy.style.js'\n\nconst poweredByConfig = {\n default: {\n url: 'https://li.fi',\n text: 'LI.FI',\n },\n jumper: {\n url: 'https://jumper.exchange',\n text: 'Jumper',\n },\n}\n\nexport const PoweredBy: React.FC = () => {\n const { poweredBy = 'default' } = useWidgetConfig()\n\n return (\n <Box\n sx={{\n pt: 1,\n pb: 2,\n flex: 1,\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n }}\n >\n <Tooltip title={`v${version}`} enterDelay={1000}>\n <Link\n href={poweredByConfig[poweredBy].url}\n target=\"_blank\"\n underline=\"none\"\n color=\"text.primary\"\n >\n <Typography\n sx={{\n color: 'text.secondary',\n fontSize: 12,\n fontWeight: 500,\n px: 0.5,\n }}\n >\n Powered by\n </Typography>\n <Typography\n sx={{\n color: 'text.primary',\n fontSize: 12,\n fontWeight: 600,\n }}\n >\n {poweredByConfig[poweredBy].text}\n </Typography>\n </Link>\n </Tooltip>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAKA,MAAM,kBAAkB;CACtB,SAAS;EACP,KAAK;EACL,MAAM;EACP;CACD,QAAQ;EACN,KAAK;EACL,MAAM;EACP;CACF;AAED,MAAa,kBAA4B;CACvC,MAAM,EAAE,YAAY,cAAc,iBAAiB;CAEnD,OACE,oBAAC,KAAD;EACE,IAAI;GACF,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,SAAS;GACT,YAAY;GACZ,gBAAgB;GACjB;YAED,oBAAC,SAAD;GAAS,OAAO,IAAI;GAAW,YAAY;aACzC,qBAACA,QAAD;IACE,MAAM,gBAAgB,WAAW;IACjC,QAAO;IACP,WAAU;IACV,OAAM;cAJR,CAME,oBAAC,YAAD;KACE,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACZ,IAAI;MACL;eACF;KAEY,CAAA,EACb,oBAAC,YAAD;KACE,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACb;eAEA,gBAAgB,WAAW;KACjB,CAAA,CACR;;GACC,CAAA;EACN,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressToNextUpdate.js","names":[],"sources":["../../../src/components/ProgressToNextUpdate.tsx"],"sourcesContent":["import type { IconButtonProps } from '@mui/material'\nimport { Box, CircularProgress, IconButton, Tooltip } from '@mui/material'\nimport { useEffect, useState } from 'react'\nimport { Trans } from 'react-i18next'\n\nconst getProgressValue = (updatedAt: number, timeToUpdate: number) =>\n updatedAt ? Math.min(100, ((Date.now() - updatedAt) / timeToUpdate) * 100) : 0\n\nconst getSecondsToUpdate = (updatedAt: number, timeToUpdate: number) =>\n Math.max(Math.round((timeToUpdate - (Date.now() - updatedAt)) / 1000), 0)\n\nexport const ProgressToNextUpdate: React.FC<\n {\n updatedAt: number\n timeToUpdate: number\n isLoading?: boolean\n } & IconButtonProps\n> = ({ updatedAt, timeToUpdate, isLoading, onClick, ...other }) => {\n const [value, setValue] = useState(() =>\n getProgressValue(updatedAt, timeToUpdate)\n )\n\n useEffect(() => {\n setValue(getProgressValue(updatedAt, timeToUpdate))\n const id = setInterval(() => {\n const time = getProgressValue(updatedAt, timeToUpdate)\n setValue(time)\n if (time >= 100) {\n clearInterval(id)\n }\n }, 1000)\n return () => clearInterval(id)\n }, [timeToUpdate, updatedAt])\n\n useEffect(() => {\n if (isLoading) {\n setValue(0)\n }\n }, [isLoading])\n\n return (\n <IconButton onClick={onClick} disabled={isLoading} {...other}>\n <Tooltip\n title={\n <Trans\n i18nKey=\"tooltip.progressToNextUpdate\"\n values={{\n value: getSecondsToUpdate(updatedAt, timeToUpdate),\n }}\n // biome-ignore lint/correctness/useJsxKeyInIterable: allowed in react-i18next\n components={[<br />]}\n />\n }\n >\n <Box\n sx={{\n display: 'grid',\n position: 'relative',\n placeItems: 'center',\n width: 24,\n height: 24,\n }}\n >\n <CircularProgress\n variant=\"determinate\"\n size={24}\n value={100}\n sx={(theme) => ({\n position: 'absolute',\n color: theme.vars.palette.grey[300],\n ...theme.applyStyles('dark', {\n color: theme.vars.palette.grey[800],\n }),\n })}\n />\n <CircularProgress\n variant={isLoading ? 'indeterminate' : 'determinate'}\n size={24}\n value={value}\n sx={(theme) => ({\n opacity: value === 100 && !isLoading ? 0.5 : 1,\n color: theme.vars.palette.primary.main,\n ...theme.applyStyles('dark', {\n color: theme.vars.palette.primary.light,\n }),\n })}\n />\n </Box>\n </Tooltip>\n </IconButton>\n )\n}\n"],"mappings":";;;;;AAKA,MAAM,oBAAoB,WAAmB,iBAC3C,YAAY,KAAK,IAAI,MAAO,KAAK,KAAK,GAAG,aAAa,eAAgB,IAAI,GAAG;AAE/E,MAAM,sBAAsB,WAAmB,iBAC7C,KAAK,IAAI,KAAK,OAAO,gBAAgB,KAAK,KAAK,GAAG,cAAc,IAAK,EAAE,EAAE;AAE3E,MAAa,wBAMR,EAAE,WAAW,cAAc,WAAW,SAAS,GAAG,YAAY;CACjE,MAAM,CAAC,OAAO,YAAY,eACxB,iBAAiB,WAAW,aAAa,CAC1C;AAED,iBAAgB;AACd,WAAS,iBAAiB,WAAW,aAAa,CAAC;EACnD,MAAM,KAAK,kBAAkB;GAC3B,MAAM,OAAO,iBAAiB,WAAW,aAAa;AACtD,YAAS,KAAK;AACd,OAAI,QAAQ,IACV,eAAc,GAAG;KAElB,IAAK;AACR,eAAa,cAAc,GAAG;IAC7B,CAAC,cAAc,UAAU,CAAC;AAE7B,iBAAgB;AACd,MAAI,UACF,UAAS,EAAE;IAEZ,CAAC,UAAU,CAAC;AAEf,QACE,oBAAC,YAAD;EAAqB;EAAS,UAAU;EAAW,GAAI;YACrD,oBAAC,SAAD;GACE,OACE,oBAAC,OAAD;IACE,SAAQ;IACR,QAAQ,EACN,OAAO,mBAAmB,WAAW,aAAa,EACnD;IAED,YAAY,CAAC,oBAAC,MAAD,EAAM,CAAA,CAAC;IACpB,CAAA;aAGJ,qBAAC,KAAD;IACE,IAAI;KACF,SAAS;KACT,UAAU;KACV,YAAY;KACZ,OAAO;KACP,QAAQ;KACT;cAPH,CASE,oBAAC,kBAAD;KACE,SAAQ;KACR,MAAM;KACN,OAAO;KACP,KAAK,WAAW;MACd,UAAU;MACV,OAAO,MAAM,KAAK,QAAQ,KAAK;MAC/B,GAAG,MAAM,YAAY,QAAQ,EAC3B,OAAO,MAAM,KAAK,QAAQ,KAAK,MAChC,CAAC;MACH;KACD,CAAA,EACF,oBAAC,kBAAD;KACE,SAAS,YAAY,kBAAkB;KACvC,MAAM;KACC;KACP,KAAK,WAAW;MACd,SAAS,UAAU,OAAO,CAAC,YAAY,KAAM;MAC7C,OAAO,MAAM,KAAK,QAAQ,QAAQ;MAClC,GAAG,MAAM,YAAY,QAAQ,EAC3B,OAAO,MAAM,KAAK,QAAQ,QAAQ,OACnC,CAAC;MACH;KACD,CAAA,CACE;;GACE,CAAA;EACC,CAAA"}
1
+ {"version":3,"file":"ProgressToNextUpdate.js","names":[],"sources":["../../../src/components/ProgressToNextUpdate.tsx"],"sourcesContent":["import type { IconButtonProps } from '@mui/material'\nimport { Box, CircularProgress, IconButton, Tooltip } from '@mui/material'\nimport { useEffect, useState } from 'react'\nimport { Trans } from 'react-i18next'\n\nconst getProgressValue = (updatedAt: number, timeToUpdate: number) =>\n updatedAt ? Math.min(100, ((Date.now() - updatedAt) / timeToUpdate) * 100) : 0\n\nconst getSecondsToUpdate = (updatedAt: number, timeToUpdate: number) =>\n Math.max(Math.round((timeToUpdate - (Date.now() - updatedAt)) / 1000), 0)\n\nexport const ProgressToNextUpdate: React.FC<\n {\n updatedAt: number\n timeToUpdate: number\n isLoading?: boolean\n } & IconButtonProps\n> = ({ updatedAt, timeToUpdate, isLoading, onClick, ...other }) => {\n const [value, setValue] = useState(() =>\n getProgressValue(updatedAt, timeToUpdate)\n )\n\n useEffect(() => {\n setValue(getProgressValue(updatedAt, timeToUpdate))\n const id = setInterval(() => {\n const time = getProgressValue(updatedAt, timeToUpdate)\n setValue(time)\n if (time >= 100) {\n clearInterval(id)\n }\n }, 1000)\n return () => clearInterval(id)\n }, [timeToUpdate, updatedAt])\n\n useEffect(() => {\n if (isLoading) {\n setValue(0)\n }\n }, [isLoading])\n\n return (\n <IconButton onClick={onClick} disabled={isLoading} {...other}>\n <Tooltip\n title={\n <Trans\n i18nKey=\"tooltip.progressToNextUpdate\"\n values={{\n value: getSecondsToUpdate(updatedAt, timeToUpdate),\n }}\n // biome-ignore lint/correctness/useJsxKeyInIterable: allowed in react-i18next\n components={[<br />]}\n />\n }\n >\n <Box\n sx={{\n display: 'grid',\n position: 'relative',\n placeItems: 'center',\n width: 24,\n height: 24,\n }}\n >\n <CircularProgress\n variant=\"determinate\"\n size={24}\n value={100}\n sx={(theme) => ({\n position: 'absolute',\n color: theme.vars.palette.grey[300],\n ...theme.applyStyles('dark', {\n color: theme.vars.palette.grey[800],\n }),\n })}\n />\n <CircularProgress\n variant={isLoading ? 'indeterminate' : 'determinate'}\n size={24}\n value={value}\n sx={(theme) => ({\n opacity: value === 100 && !isLoading ? 0.5 : 1,\n color: theme.vars.palette.primary.main,\n ...theme.applyStyles('dark', {\n color: theme.vars.palette.primary.light,\n }),\n })}\n />\n </Box>\n </Tooltip>\n </IconButton>\n )\n}\n"],"mappings":";;;;;AAKA,MAAM,oBAAoB,WAAmB,iBAC3C,YAAY,KAAK,IAAI,MAAO,KAAK,KAAK,GAAG,aAAa,eAAgB,IAAI,GAAG;AAE/E,MAAM,sBAAsB,WAAmB,iBAC7C,KAAK,IAAI,KAAK,OAAO,gBAAgB,KAAK,KAAK,GAAG,cAAc,IAAK,EAAE,EAAE;AAE3E,MAAa,wBAMR,EAAE,WAAW,cAAc,WAAW,SAAS,GAAG,YAAY;CACjE,MAAM,CAAC,OAAO,YAAY,eACxB,iBAAiB,WAAW,aAAa,CAC1C;CAED,gBAAgB;EACd,SAAS,iBAAiB,WAAW,aAAa,CAAC;EACnD,MAAM,KAAK,kBAAkB;GAC3B,MAAM,OAAO,iBAAiB,WAAW,aAAa;GACtD,SAAS,KAAK;GACd,IAAI,QAAQ,KACV,cAAc,GAAG;KAElB,IAAK;EACR,aAAa,cAAc,GAAG;IAC7B,CAAC,cAAc,UAAU,CAAC;CAE7B,gBAAgB;EACd,IAAI,WACF,SAAS,EAAE;IAEZ,CAAC,UAAU,CAAC;CAEf,OACE,oBAAC,YAAD;EAAqB;EAAS,UAAU;EAAW,GAAI;YACrD,oBAAC,SAAD;GACE,OACE,oBAAC,OAAD;IACE,SAAQ;IACR,QAAQ,EACN,OAAO,mBAAmB,WAAW,aAAa,EACnD;IAED,YAAY,CAAC,oBAAC,MAAD,EAAM,CAAA,CAAC;IACpB,CAAA;aAGJ,qBAAC,KAAD;IACE,IAAI;KACF,SAAS;KACT,UAAU;KACV,YAAY;KACZ,OAAO;KACP,QAAQ;KACT;cAPH,CASE,oBAAC,kBAAD;KACE,SAAQ;KACR,MAAM;KACN,OAAO;KACP,KAAK,WAAW;MACd,UAAU;MACV,OAAO,MAAM,KAAK,QAAQ,KAAK;MAC/B,GAAG,MAAM,YAAY,QAAQ,EAC3B,OAAO,MAAM,KAAK,QAAQ,KAAK,MAChC,CAAC;MACH;KACD,CAAA,EACF,oBAAC,kBAAD;KACE,SAAS,YAAY,kBAAkB;KACvC,MAAM;KACC;KACP,KAAK,WAAW;MACd,SAAS,UAAU,OAAO,CAAC,YAAY,KAAM;MAC7C,OAAO,MAAM,KAAK,QAAQ,QAAQ;MAClC,GAAG,MAAM,YAAY,QAAQ,EAC3B,OAAO,MAAM,KAAK,QAAQ,QAAQ,OACnC,CAAC;MACH;KACD,CAAA,CACE;;GACE,CAAA;EACC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReverseTokensButton.js","names":[],"sources":["../../../../src/components/ReverseTokensButton/ReverseTokensButton.tsx"],"sourcesContent":["import ArrowForward from '@mui/icons-material/ArrowForward'\nimport type { JSX } from 'react'\nimport { useAvailableChains } from '../../hooks/useAvailableChains.js'\nimport { useToAddressAutoPopulate } from '../../hooks/useToAddressAutoPopulate.js'\nimport { useToAddressReset } from '../../hooks/useToAddressReset.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { IconCard, ReverseContainer } from './ReverseTokensButton.style.js'\n\nexport const ReverseTokensButton = (): JSX.Element => {\n const { setFieldValue, getFieldValues } = useFieldActions()\n const { getChainById } = useAvailableChains()\n const { tryResetToAddress } = useToAddressReset()\n const autoPopulateToAddress = useToAddressAutoPopulate()\n\n const handleClick = () => {\n const [fromChainId, fromToken, toChainId, toToken, toAddress] =\n getFieldValues(\n 'fromChain',\n 'fromToken',\n 'toChain',\n 'toToken',\n 'toAddress'\n )\n setFieldValue('fromAmount', '', { isTouched: true })\n setFieldValue('fromChain', toChainId, { isTouched: true })\n setFieldValue('fromToken', toToken, { isTouched: true })\n setFieldValue('toChain', fromChainId, { isTouched: true })\n setFieldValue('toToken', fromToken, { isTouched: true })\n\n const autoPopulatedToAddress = autoPopulateToAddress({\n formType: 'from',\n selectedToAddress: toAddress,\n selectedChainId: toChainId,\n selectedOppositeChainId: fromChainId,\n selectedOppositeTokenAddress: fromToken,\n })\n\n // Returning early as a compatible connected wallet was found, and toAddress has been populated\n if (autoPopulatedToAddress) {\n return\n }\n\n // Auto-population applies in certain scenarios, but otherwise,\n // we attempt to reset `toAddress` when bridging across ecosystems\n // fromChainId becomes toChainId after using reverse\n const toChain = getChainById(fromChainId)\n if (toChain) {\n tryResetToAddress(toChain)\n }\n }\n return (\n <ReverseContainer>\n <IconCard onClick={handleClick}>\n <ArrowForward fontSize=\"inherit\" />\n </IconCard>\n </ReverseContainer>\n )\n}\n"],"mappings":";;;;;;;;AAQA,MAAa,4BAAyC;CACpD,MAAM,EAAE,eAAe,mBAAmB,iBAAiB;CAC3D,MAAM,EAAE,iBAAiB,oBAAoB;CAC7C,MAAM,EAAE,sBAAsB,mBAAmB;CACjD,MAAM,wBAAwB,0BAA0B;CAExD,MAAM,oBAAoB;EACxB,MAAM,CAAC,aAAa,WAAW,WAAW,SAAS,aACjD,eACE,aACA,aACA,WACA,WACA,YACD;AACH,gBAAc,cAAc,IAAI,EAAE,WAAW,MAAM,CAAC;AACpD,gBAAc,aAAa,WAAW,EAAE,WAAW,MAAM,CAAC;AAC1D,gBAAc,aAAa,SAAS,EAAE,WAAW,MAAM,CAAC;AACxD,gBAAc,WAAW,aAAa,EAAE,WAAW,MAAM,CAAC;AAC1D,gBAAc,WAAW,WAAW,EAAE,WAAW,MAAM,CAAC;AAWxD,MAT+B,sBAAsB;GACnD,UAAU;GACV,mBAAmB;GACnB,iBAAiB;GACjB,yBAAyB;GACzB,8BAA8B;GAC/B,CAAC,CAIA;EAMF,MAAM,UAAU,aAAa,YAAY;AACzC,MAAI,QACF,mBAAkB,QAAQ;;AAG9B,QACE,oBAAC,kBAAD,EAAA,UACE,oBAAC,UAAD;EAAU,SAAS;YACjB,oBAAC,cAAD,EAAc,UAAS,WAAY,CAAA;EAC1B,CAAA,EACM,CAAA"}
1
+ {"version":3,"file":"ReverseTokensButton.js","names":[],"sources":["../../../../src/components/ReverseTokensButton/ReverseTokensButton.tsx"],"sourcesContent":["import ArrowForward from '@mui/icons-material/ArrowForward'\nimport type { JSX } from 'react'\nimport { useAvailableChains } from '../../hooks/useAvailableChains.js'\nimport { useToAddressAutoPopulate } from '../../hooks/useToAddressAutoPopulate.js'\nimport { useToAddressReset } from '../../hooks/useToAddressReset.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { IconCard, ReverseContainer } from './ReverseTokensButton.style.js'\n\nexport const ReverseTokensButton = (): JSX.Element => {\n const { setFieldValue, getFieldValues } = useFieldActions()\n const { getChainById } = useAvailableChains()\n const { tryResetToAddress } = useToAddressReset()\n const autoPopulateToAddress = useToAddressAutoPopulate()\n\n const handleClick = () => {\n const [fromChainId, fromToken, toChainId, toToken, toAddress] =\n getFieldValues(\n 'fromChain',\n 'fromToken',\n 'toChain',\n 'toToken',\n 'toAddress'\n )\n setFieldValue('fromAmount', '', { isTouched: true })\n setFieldValue('fromChain', toChainId, { isTouched: true })\n setFieldValue('fromToken', toToken, { isTouched: true })\n setFieldValue('toChain', fromChainId, { isTouched: true })\n setFieldValue('toToken', fromToken, { isTouched: true })\n\n const autoPopulatedToAddress = autoPopulateToAddress({\n formType: 'from',\n selectedToAddress: toAddress,\n selectedChainId: toChainId,\n selectedOppositeChainId: fromChainId,\n selectedOppositeTokenAddress: fromToken,\n })\n\n // Returning early as a compatible connected wallet was found, and toAddress has been populated\n if (autoPopulatedToAddress) {\n return\n }\n\n // Auto-population applies in certain scenarios, but otherwise,\n // we attempt to reset `toAddress` when bridging across ecosystems\n // fromChainId becomes toChainId after using reverse\n const toChain = getChainById(fromChainId)\n if (toChain) {\n tryResetToAddress(toChain)\n }\n }\n return (\n <ReverseContainer>\n <IconCard onClick={handleClick}>\n <ArrowForward fontSize=\"inherit\" />\n </IconCard>\n </ReverseContainer>\n )\n}\n"],"mappings":";;;;;;;;AAQA,MAAa,4BAAyC;CACpD,MAAM,EAAE,eAAe,mBAAmB,iBAAiB;CAC3D,MAAM,EAAE,iBAAiB,oBAAoB;CAC7C,MAAM,EAAE,sBAAsB,mBAAmB;CACjD,MAAM,wBAAwB,0BAA0B;CAExD,MAAM,oBAAoB;EACxB,MAAM,CAAC,aAAa,WAAW,WAAW,SAAS,aACjD,eACE,aACA,aACA,WACA,WACA,YACD;EACH,cAAc,cAAc,IAAI,EAAE,WAAW,MAAM,CAAC;EACpD,cAAc,aAAa,WAAW,EAAE,WAAW,MAAM,CAAC;EAC1D,cAAc,aAAa,SAAS,EAAE,WAAW,MAAM,CAAC;EACxD,cAAc,WAAW,aAAa,EAAE,WAAW,MAAM,CAAC;EAC1D,cAAc,WAAW,WAAW,EAAE,WAAW,MAAM,CAAC;EAWxD,IAT+B,sBAAsB;GACnD,UAAU;GACV,mBAAmB;GACnB,iBAAiB;GACjB,yBAAyB;GACzB,8BAA8B;GAC/B,CAGyB,EACxB;EAMF,MAAM,UAAU,aAAa,YAAY;EACzC,IAAI,SACF,kBAAkB,QAAQ;;CAG9B,OACE,oBAAC,kBAAD,EAAA,UACE,oBAAC,UAAD;EAAU,SAAS;YACjB,oBAAC,cAAD,EAAc,UAAS,WAAY,CAAA;EAC1B,CAAA,EACM,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReverseTokensButton.style.js","names":["Card"],"sources":["../../../../src/components/ReverseTokensButton/ReverseTokensButton.style.tsx"],"sourcesContent":["import { Box, styled } from '@mui/material'\nimport type React from 'react'\nimport { Card } from '../Card/Card.js'\n\nexport const IconCard: React.FC<React.ComponentProps<typeof Card>> = styled(\n Card\n)(({ theme }) => ({\n height: 32,\n width: 32,\n fontSize: 16,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: theme.vars.shape.borderRadiusTertiary,\n zIndex: 1110,\n}))\n\nexport const ReverseContainer: React.FC<React.ComponentProps<typeof Box>> =\n styled(Box)(({ theme }) => {\n return {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(-1),\n }\n })\n\nexport const ReverseTokensButtonEmpty: React.FC<\n React.ComponentProps<typeof Box>\n> = styled(Box)(({ theme }) => {\n return {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(1),\n }\n})\n"],"mappings":";;;AAIA,MAAa,WAAwD,OACnEA,OACD,EAAE,EAAE,aAAa;CAChB,QAAQ;CACR,OAAO;CACP,UAAU;CACV,SAAS;CACT,YAAY;CACZ,gBAAgB;CAChB,cAAc,MAAM,KAAK,MAAM;CAC/B,QAAQ;CACT,EAAE;AAEH,MAAa,mBACX,OAAO,IAAI,EAAE,EAAE,YAAY;AACzB,QAAO;EACL,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,QAAQ,MAAM,QAAQ,GAAG;EAC1B;EACD;AAEJ,MAAa,2BAET,OAAO,IAAI,EAAE,EAAE,YAAY;AAC7B,QAAO;EACL,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,QAAQ,MAAM,QAAQ,EAAE;EACzB;EACD"}
1
+ {"version":3,"file":"ReverseTokensButton.style.js","names":["Card"],"sources":["../../../../src/components/ReverseTokensButton/ReverseTokensButton.style.tsx"],"sourcesContent":["import { Box, styled } from '@mui/material'\nimport type React from 'react'\nimport { Card } from '../Card/Card.js'\n\nexport const IconCard: React.FC<React.ComponentProps<typeof Card>> = styled(\n Card\n)(({ theme }) => ({\n height: 32,\n width: 32,\n fontSize: 16,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: theme.vars.shape.borderRadiusTertiary,\n zIndex: 1110,\n}))\n\nexport const ReverseContainer: React.FC<React.ComponentProps<typeof Box>> =\n styled(Box)(({ theme }) => {\n return {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(-1),\n }\n })\n\nexport const ReverseTokensButtonEmpty: React.FC<\n React.ComponentProps<typeof Box>\n> = styled(Box)(({ theme }) => {\n return {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(1),\n }\n})\n"],"mappings":";;;AAIA,MAAa,WAAwD,OACnEA,OACD,EAAE,EAAE,aAAa;CAChB,QAAQ;CACR,OAAO;CACP,UAAU;CACV,SAAS;CACT,YAAY;CACZ,gBAAgB;CAChB,cAAc,MAAM,KAAK,MAAM;CAC/B,QAAQ;CACT,EAAE;AAEH,MAAa,mBACX,OAAO,IAAI,EAAE,EAAE,YAAY;CACzB,OAAO;EACL,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,QAAQ,MAAM,QAAQ,GAAG;EAC1B;EACD;AAEJ,MAAa,2BAET,OAAO,IAAI,EAAE,EAAE,YAAY;CAC7B,OAAO;EACL,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,QAAQ,MAAM,QAAQ,EAAE;EACzB;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteCard.js","names":["Card"],"sources":["../../../../src/components/RouteCard/RouteCard.tsx"],"sourcesContent":["import type { TokenAmount } from '@lifi/sdk'\nimport { Box, Tooltip } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI, type RouteLabel } from '../../types/widget.js'\nimport { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'\nimport type { CardProps } from '../Card/Card.js'\nimport { Card } from '../Card/Card.js'\nimport { CardLabel, CardLabelTypography } from '../Card/CardLabel.js'\nimport { getMatchingLabels } from './getMatchingLabels.js'\nimport { RouteToken } from './RouteToken.js'\nimport type { RouteCardProps } from './types.js'\n\nexport const RouteCard: React.FC<\n RouteCardProps & Omit<CardProps, 'variant'>\n> = ({\n route,\n active,\n variant = 'default',\n expanded: defaultExpanded,\n ...other\n}) => {\n const { t } = useTranslation()\n const { subvariant, subvariantOptions, routeLabels, hiddenUI } =\n useWidgetConfig()\n\n const token: TokenAmount =\n subvariant === 'custom' && subvariantOptions?.custom !== 'deposit'\n ? { ...route.fromToken, amount: BigInt(route.fromAmount) }\n : { ...route.toToken, amount: BigInt(route.toAmount) }\n const impactToken: TokenAmount | undefined =\n subvariant !== 'custom' &&\n !hiddenUI?.includes(HiddenUI.RouteCardPriceImpact)\n ? { ...route.fromToken, amount: BigInt(route.fromAmount) }\n : undefined\n\n const [tags, customLabels]: [string[], RouteLabel[]] = useMemo(() => {\n const mainTag = route.tags?.find(\n (tag) => tag === 'CHEAPEST' || tag === 'FASTEST'\n )\n const tags: string[] = mainTag ? [mainTag] : []\n const { combinedFeesUSD } = getAccumulatedFeeCostsBreakdown(route)\n if (!combinedFeesUSD) {\n tags.push('gasless')\n }\n if (route.steps.length > 1) {\n tags.push('multistep')\n }\n const customLabels = getMatchingLabels(route, routeLabels)\n return [tags, customLabels]\n }, [route.tags, route, routeLabels])\n\n const cardContent = (\n <Box\n sx={{\n flex: 1,\n }}\n >\n {subvariant !== 'refuel' && (tags.length || customLabels.length) ? (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n mb: 2,\n gap: 1,\n flexWrap: 'wrap',\n }}\n >\n {tags?.map((tag) => {\n const formattedTag = tag.toLowerCase()\n const tooltipKey = `tooltip.${formattedTag}` as any\n const tooltipText = t(tooltipKey)\n const hasTooltip = tooltipText !== tooltipKey\n\n const cardLabel = (\n <CardLabel\n variant={\n tag === 'gasless'\n ? 'success'\n : active\n ? 'secondary'\n : undefined\n }\n key={tag}\n >\n <CardLabelTypography>\n {t(`main.tags.${formattedTag}` as any)}\n </CardLabelTypography>\n </CardLabel>\n )\n\n return hasTooltip ? (\n <Tooltip key={tag} title={tooltipText} arrow placement=\"top\">\n {cardLabel}\n </Tooltip>\n ) : (\n cardLabel\n )\n })}\n {customLabels.map((label, index) => (\n <CardLabel key={index} sx={label.sx}>\n <CardLabelTypography>{label.text}</CardLabelTypography>\n </CardLabel>\n ))}\n </Box>\n ) : null}\n <RouteToken\n route={route}\n token={token}\n impactToken={impactToken}\n defaultExpanded={defaultExpanded}\n showEssentials\n />\n </Box>\n )\n\n return subvariant === 'refuel' || variant === 'cardless' ? (\n cardContent\n ) : (\n <Card\n type={active ? 'selected' : 'default'}\n selectionColor=\"secondary\"\n indented\n {...other}\n >\n {cardContent}\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAa,aAER,EACH,OACA,QACA,UAAU,WACV,UAAU,iBACV,GAAG,YACC;CACJ,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,YAAY,mBAAmB,aAAa,aAClD,iBAAiB;CAEnB,MAAM,QACJ,eAAe,YAAY,mBAAmB,WAAW,YACrD;EAAE,GAAG,MAAM;EAAW,QAAQ,OAAO,MAAM,WAAW;EAAE,GACxD;EAAE,GAAG,MAAM;EAAS,QAAQ,OAAO,MAAM,SAAS;EAAE;CAC1D,MAAM,cACJ,eAAe,YACf,CAAC,UAAU,SAAA,uBAAuC,GAC9C;EAAE,GAAG,MAAM;EAAW,QAAQ,OAAO,MAAM,WAAW;EAAE,GACxD,KAAA;CAEN,MAAM,CAAC,MAAM,gBAA0C,cAAc;EACnE,MAAM,UAAU,MAAM,MAAM,MACzB,QAAQ,QAAQ,cAAc,QAAQ,UACxC;EACD,MAAM,OAAiB,UAAU,CAAC,QAAQ,GAAG,EAAE;EAC/C,MAAM,EAAE,oBAAoB,gCAAgC,MAAM;AAClE,MAAI,CAAC,gBACH,MAAK,KAAK,UAAU;AAEtB,MAAI,MAAM,MAAM,SAAS,EACvB,MAAK,KAAK,YAAY;AAGxB,SAAO,CAAC,MADa,kBAAkB,OAAO,YAAY,CAC/B;IAC1B;EAAC,MAAM;EAAM;EAAO;EAAY,CAAC;CAEpC,MAAM,cACJ,qBAAC,KAAD;EACE,IAAI,EACF,MAAM,GACP;YAHH,CAKG,eAAe,aAAa,KAAK,UAAU,aAAa,UACvD,qBAAC,KAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACZ,IAAI;IACJ,KAAK;IACL,UAAU;IACX;aAPH,CASG,MAAM,KAAK,QAAQ;IAClB,MAAM,eAAe,IAAI,aAAa;IACtC,MAAM,aAAa,WAAW;IAC9B,MAAM,cAAc,EAAE,WAAW;IACjC,MAAM,aAAa,gBAAgB;IAEnC,MAAM,YACJ,oBAAC,WAAD;KACE,SACE,QAAQ,YACJ,YACA,SACE,cACA,KAAA;eAIR,oBAAC,qBAAD,EAAA,UACG,EAAE,aAAa,eAAsB,EAClB,CAAA;KACZ,EALL,IAKK;AAGd,WAAO,aACL,oBAAC,SAAD;KAAmB,OAAO;KAAa,OAAA;KAAM,WAAU;eACpD;KACO,EAFI,IAEJ,GAEV;KAEF,EACD,aAAa,KAAK,OAAO,UACxB,oBAAC,WAAD;IAAuB,IAAI,MAAM;cAC/B,oBAAC,qBAAD,EAAA,UAAsB,MAAM,MAA2B,CAAA;IAC7C,EAFI,MAEJ,CACZ,CACE;OACJ,MACJ,oBAAC,YAAD;GACS;GACA;GACM;GACI;GACjB,gBAAA;GACA,CAAA,CACE;;AAGR,QAAO,eAAe,YAAY,YAAY,aAC5C,cAEA,oBAACA,QAAD;EACE,MAAM,SAAS,aAAa;EAC5B,gBAAe;EACf,UAAA;EACA,GAAI;YAEH;EACI,CAAA"}
1
+ {"version":3,"file":"RouteCard.js","names":["Card"],"sources":["../../../../src/components/RouteCard/RouteCard.tsx"],"sourcesContent":["import type { TokenAmount } from '@lifi/sdk'\nimport { Box, Tooltip } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI, type RouteLabel } from '../../types/widget.js'\nimport { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'\nimport type { CardProps } from '../Card/Card.js'\nimport { Card } from '../Card/Card.js'\nimport { CardLabel, CardLabelTypography } from '../Card/CardLabel.js'\nimport { getMatchingLabels } from './getMatchingLabels.js'\nimport { RouteToken } from './RouteToken.js'\nimport type { RouteCardProps } from './types.js'\n\nexport const RouteCard: React.FC<\n RouteCardProps & Omit<CardProps, 'variant'>\n> = ({\n route,\n active,\n variant = 'default',\n expanded: defaultExpanded,\n ...other\n}) => {\n const { t } = useTranslation()\n const { subvariant, subvariantOptions, routeLabels, hiddenUI } =\n useWidgetConfig()\n\n const token: TokenAmount =\n subvariant === 'custom' && subvariantOptions?.custom !== 'deposit'\n ? { ...route.fromToken, amount: BigInt(route.fromAmount) }\n : { ...route.toToken, amount: BigInt(route.toAmount) }\n const impactToken: TokenAmount | undefined =\n subvariant !== 'custom' &&\n !hiddenUI?.includes(HiddenUI.RouteCardPriceImpact)\n ? { ...route.fromToken, amount: BigInt(route.fromAmount) }\n : undefined\n\n const [tags, customLabels]: [string[], RouteLabel[]] = useMemo(() => {\n const mainTag = route.tags?.find(\n (tag) => tag === 'CHEAPEST' || tag === 'FASTEST'\n )\n const tags: string[] = mainTag ? [mainTag] : []\n const { combinedFeesUSD } = getAccumulatedFeeCostsBreakdown(route)\n if (!combinedFeesUSD) {\n tags.push('gasless')\n }\n if (route.steps.length > 1) {\n tags.push('multistep')\n }\n const customLabels = getMatchingLabels(route, routeLabels)\n return [tags, customLabels]\n }, [route.tags, route, routeLabels])\n\n const cardContent = (\n <Box\n sx={{\n flex: 1,\n }}\n >\n {subvariant !== 'refuel' && (tags.length || customLabels.length) ? (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n mb: 2,\n gap: 1,\n flexWrap: 'wrap',\n }}\n >\n {tags?.map((tag) => {\n const formattedTag = tag.toLowerCase()\n const tooltipKey = `tooltip.${formattedTag}` as any\n const tooltipText = t(tooltipKey)\n const hasTooltip = tooltipText !== tooltipKey\n\n const cardLabel = (\n <CardLabel\n variant={\n tag === 'gasless'\n ? 'success'\n : active\n ? 'secondary'\n : undefined\n }\n key={tag}\n >\n <CardLabelTypography>\n {t(`main.tags.${formattedTag}` as any)}\n </CardLabelTypography>\n </CardLabel>\n )\n\n return hasTooltip ? (\n <Tooltip key={tag} title={tooltipText} arrow placement=\"top\">\n {cardLabel}\n </Tooltip>\n ) : (\n cardLabel\n )\n })}\n {customLabels.map((label, index) => (\n <CardLabel key={index} sx={label.sx}>\n <CardLabelTypography>{label.text}</CardLabelTypography>\n </CardLabel>\n ))}\n </Box>\n ) : null}\n <RouteToken\n route={route}\n token={token}\n impactToken={impactToken}\n defaultExpanded={defaultExpanded}\n showEssentials\n />\n </Box>\n )\n\n return subvariant === 'refuel' || variant === 'cardless' ? (\n cardContent\n ) : (\n <Card\n type={active ? 'selected' : 'default'}\n selectionColor=\"secondary\"\n indented\n {...other}\n >\n {cardContent}\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAa,aAER,EACH,OACA,QACA,UAAU,WACV,UAAU,iBACV,GAAG,YACC;CACJ,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,YAAY,mBAAmB,aAAa,aAClD,iBAAiB;CAEnB,MAAM,QACJ,eAAe,YAAY,mBAAmB,WAAW,YACrD;EAAE,GAAG,MAAM;EAAW,QAAQ,OAAO,MAAM,WAAW;EAAE,GACxD;EAAE,GAAG,MAAM;EAAS,QAAQ,OAAO,MAAM,SAAS;EAAE;CAC1D,MAAM,cACJ,eAAe,YACf,CAAC,UAAU,SAAA,uBAAuC,GAC9C;EAAE,GAAG,MAAM;EAAW,QAAQ,OAAO,MAAM,WAAW;EAAE,GACxD,KAAA;CAEN,MAAM,CAAC,MAAM,gBAA0C,cAAc;EACnE,MAAM,UAAU,MAAM,MAAM,MACzB,QAAQ,QAAQ,cAAc,QAAQ,UACxC;EACD,MAAM,OAAiB,UAAU,CAAC,QAAQ,GAAG,EAAE;EAC/C,MAAM,EAAE,oBAAoB,gCAAgC,MAAM;EAClE,IAAI,CAAC,iBACH,KAAK,KAAK,UAAU;EAEtB,IAAI,MAAM,MAAM,SAAS,GACvB,KAAK,KAAK,YAAY;EAGxB,OAAO,CAAC,MADa,kBAAkB,OAAO,YACpB,CAAC;IAC1B;EAAC,MAAM;EAAM;EAAO;EAAY,CAAC;CAEpC,MAAM,cACJ,qBAAC,KAAD;EACE,IAAI,EACF,MAAM,GACP;YAHH,CAKG,eAAe,aAAa,KAAK,UAAU,aAAa,UACvD,qBAAC,KAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACZ,IAAI;IACJ,KAAK;IACL,UAAU;IACX;aAPH,CASG,MAAM,KAAK,QAAQ;IAClB,MAAM,eAAe,IAAI,aAAa;IACtC,MAAM,aAAa,WAAW;IAC9B,MAAM,cAAc,EAAE,WAAW;IACjC,MAAM,aAAa,gBAAgB;IAEnC,MAAM,YACJ,oBAAC,WAAD;KACE,SACE,QAAQ,YACJ,YACA,SACE,cACA,KAAA;eAIR,oBAAC,qBAAD,EAAA,UACG,EAAE,aAAa,eAAsB,EAClB,CAAA;KACZ,EALL,IAKK;IAGd,OAAO,aACL,oBAAC,SAAD;KAAmB,OAAO;KAAa,OAAA;KAAM,WAAU;eACpD;KACO,EAFI,IAEJ,GAEV;KAEF,EACD,aAAa,KAAK,OAAO,UACxB,oBAAC,WAAD;IAAuB,IAAI,MAAM;cAC/B,oBAAC,qBAAD,EAAA,UAAsB,MAAM,MAA2B,CAAA;IAC7C,EAFI,MAEJ,CACZ,CACE;OACJ,MACJ,oBAAC,YAAD;GACS;GACA;GACM;GACI;GACjB,gBAAA;GACA,CAAA,CACE;;CAGR,OAAO,eAAe,YAAY,YAAY,aAC5C,cAEA,oBAACA,QAAD;EACE,MAAM,SAAS,aAAa;EAC5B,gBAAe;EACf,UAAA;EACA,GAAI;YAEH;EACI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteCardEssentials.js","names":[],"sources":["../../../../src/components/RouteCard/RouteCardEssentials.tsx"],"sourcesContent":["import AccessTimeFilled from '@mui/icons-material/AccessTimeFilled'\nimport LocalGasStationRounded from '@mui/icons-material/LocalGasStationRounded'\nimport { Box, Tooltip, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'\nimport { formatDuration } from '../../utils/format.js'\nimport { FeeBreakdownTooltip } from '../FeeBreakdownTooltip.js'\nimport { IconTypography } from '../IconTypography.js'\nimport { TokenRate } from '../TokenRate/TokenRate.js'\nimport type { RouteCardEssentialsProps } from './types.js'\n\nexport const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({\n route,\n}) => {\n const { t, i18n } = useTranslation()\n const executionTimeSeconds = Math.floor(\n route.steps.reduce(\n (duration, step) => duration + step.estimate.executionDuration,\n 0\n )\n )\n\n const { gasCosts, feeCosts, combinedFeesUSD } =\n getAccumulatedFeeCostsBreakdown(route)\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flex: 1,\n mt: 2,\n }}\n >\n <TokenRate route={route} />\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <FeeBreakdownTooltip\n gasCosts={gasCosts}\n feeCosts={feeCosts}\n gasless={!combinedFeesUSD}\n >\n <Box\n sx={{\n display: 'flex',\n mr: 1.5,\n alignItems: 'center',\n }}\n >\n <IconTypography component=\"span\" sx={{ mr: 0.5, fontSize: 16 }}>\n <LocalGasStationRounded fontSize=\"inherit\" />\n </IconTypography>\n <Typography\n data-value={combinedFeesUSD}\n sx={{\n fontSize: 14,\n color: 'text.primary',\n fontWeight: 600,\n lineHeight: 1,\n }}\n >\n {!combinedFeesUSD\n ? t('main.fees.free')\n : t('format.currency', {\n value: combinedFeesUSD,\n })}\n </Typography>\n </Box>\n </FeeBreakdownTooltip>\n <Tooltip title={t('tooltip.estimatedTime')} sx={{ cursor: 'help' }}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <IconTypography component=\"span\" sx={{ mr: 0.5, fontSize: 16 }}>\n <AccessTimeFilled fontSize=\"inherit\" />\n </IconTypography>\n <Typography\n sx={{\n fontSize: 14,\n color: 'text.primary',\n fontWeight: 600,\n lineHeight: 1,\n }}\n >\n {formatDuration(executionTimeSeconds, i18n.language)}\n </Typography>\n </Box>\n </Tooltip>\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAWA,MAAa,uBAA2D,EACtE,YACI;CACJ,MAAM,EAAE,GAAG,SAAS,gBAAgB;CACpC,MAAM,uBAAuB,KAAK,MAChC,MAAM,MAAM,QACT,UAAU,SAAS,WAAW,KAAK,SAAS,mBAC7C,EACD,CACF;CAED,MAAM,EAAE,UAAU,UAAU,oBAC1B,gCAAgC,MAAM;AACxC,QACE,qBAAC,KAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,MAAM;GACN,IAAI;GACL;YAPH,CASE,oBAAC,WAAD,EAAkB,OAAS,CAAA,EAC3B,qBAAC,KAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACb;aAJH,CAME,oBAAC,qBAAD;IACY;IACA;IACV,SAAS,CAAC;cAEV,qBAAC,KAAD;KACE,IAAI;MACF,SAAS;MACT,IAAI;MACJ,YAAY;MACb;eALH,CAOE,oBAAC,gBAAD;MAAgB,WAAU;MAAO,IAAI;OAAE,IAAI;OAAK,UAAU;OAAI;gBAC5D,oBAAC,wBAAD,EAAwB,UAAS,WAAY,CAAA;MAC9B,CAAA,EACjB,oBAAC,YAAD;MACE,cAAY;MACZ,IAAI;OACF,UAAU;OACV,OAAO;OACP,YAAY;OACZ,YAAY;OACb;gBAEA,CAAC,kBACE,EAAE,iBAAiB,GACnB,EAAE,mBAAmB,EACnB,OAAO,iBACR,CAAC;MACK,CAAA,CACT;;IACc,CAAA,EACtB,oBAAC,SAAD;IAAS,OAAO,EAAE,wBAAwB;IAAE,IAAI,EAAE,QAAQ,QAAQ;cAChE,qBAAC,KAAD;KACE,IAAI;MACF,SAAS;MACT,YAAY;MACb;eAJH,CAME,oBAAC,gBAAD;MAAgB,WAAU;MAAO,IAAI;OAAE,IAAI;OAAK,UAAU;OAAI;gBAC5D,oBAAC,kBAAD,EAAkB,UAAS,WAAY,CAAA;MACxB,CAAA,EACjB,oBAAC,YAAD;MACE,IAAI;OACF,UAAU;OACV,OAAO;OACP,YAAY;OACZ,YAAY;OACb;gBAEA,eAAe,sBAAsB,KAAK,SAAS;MACzC,CAAA,CACT;;IACE,CAAA,CACN;KACF"}
1
+ {"version":3,"file":"RouteCardEssentials.js","names":[],"sources":["../../../../src/components/RouteCard/RouteCardEssentials.tsx"],"sourcesContent":["import AccessTimeFilled from '@mui/icons-material/AccessTimeFilled'\nimport LocalGasStationRounded from '@mui/icons-material/LocalGasStationRounded'\nimport { Box, Tooltip, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'\nimport { formatDuration } from '../../utils/format.js'\nimport { FeeBreakdownTooltip } from '../FeeBreakdownTooltip.js'\nimport { IconTypography } from '../IconTypography.js'\nimport { TokenRate } from '../TokenRate/TokenRate.js'\nimport type { RouteCardEssentialsProps } from './types.js'\n\nexport const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({\n route,\n}) => {\n const { t, i18n } = useTranslation()\n const executionTimeSeconds = Math.floor(\n route.steps.reduce(\n (duration, step) => duration + step.estimate.executionDuration,\n 0\n )\n )\n\n const { gasCosts, feeCosts, combinedFeesUSD } =\n getAccumulatedFeeCostsBreakdown(route)\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flex: 1,\n mt: 2,\n }}\n >\n <TokenRate route={route} />\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <FeeBreakdownTooltip\n gasCosts={gasCosts}\n feeCosts={feeCosts}\n gasless={!combinedFeesUSD}\n >\n <Box\n sx={{\n display: 'flex',\n mr: 1.5,\n alignItems: 'center',\n }}\n >\n <IconTypography component=\"span\" sx={{ mr: 0.5, fontSize: 16 }}>\n <LocalGasStationRounded fontSize=\"inherit\" />\n </IconTypography>\n <Typography\n data-value={combinedFeesUSD}\n sx={{\n fontSize: 14,\n color: 'text.primary',\n fontWeight: 600,\n lineHeight: 1,\n }}\n >\n {!combinedFeesUSD\n ? t('main.fees.free')\n : t('format.currency', {\n value: combinedFeesUSD,\n })}\n </Typography>\n </Box>\n </FeeBreakdownTooltip>\n <Tooltip title={t('tooltip.estimatedTime')} sx={{ cursor: 'help' }}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <IconTypography component=\"span\" sx={{ mr: 0.5, fontSize: 16 }}>\n <AccessTimeFilled fontSize=\"inherit\" />\n </IconTypography>\n <Typography\n sx={{\n fontSize: 14,\n color: 'text.primary',\n fontWeight: 600,\n lineHeight: 1,\n }}\n >\n {formatDuration(executionTimeSeconds, i18n.language)}\n </Typography>\n </Box>\n </Tooltip>\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAWA,MAAa,uBAA2D,EACtE,YACI;CACJ,MAAM,EAAE,GAAG,SAAS,gBAAgB;CACpC,MAAM,uBAAuB,KAAK,MAChC,MAAM,MAAM,QACT,UAAU,SAAS,WAAW,KAAK,SAAS,mBAC7C,EACD,CACF;CAED,MAAM,EAAE,UAAU,UAAU,oBAC1B,gCAAgC,MAAM;CACxC,OACE,qBAAC,KAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,MAAM;GACN,IAAI;GACL;YAPH,CASE,oBAAC,WAAD,EAAkB,OAAS,CAAA,EAC3B,qBAAC,KAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACb;aAJH,CAME,oBAAC,qBAAD;IACY;IACA;IACV,SAAS,CAAC;cAEV,qBAAC,KAAD;KACE,IAAI;MACF,SAAS;MACT,IAAI;MACJ,YAAY;MACb;eALH,CAOE,oBAAC,gBAAD;MAAgB,WAAU;MAAO,IAAI;OAAE,IAAI;OAAK,UAAU;OAAI;gBAC5D,oBAAC,wBAAD,EAAwB,UAAS,WAAY,CAAA;MAC9B,CAAA,EACjB,oBAAC,YAAD;MACE,cAAY;MACZ,IAAI;OACF,UAAU;OACV,OAAO;OACP,YAAY;OACZ,YAAY;OACb;gBAEA,CAAC,kBACE,EAAE,iBAAiB,GACnB,EAAE,mBAAmB,EACnB,OAAO,iBACR,CAAC;MACK,CAAA,CACT;;IACc,CAAA,EACtB,oBAAC,SAAD;IAAS,OAAO,EAAE,wBAAwB;IAAE,IAAI,EAAE,QAAQ,QAAQ;cAChE,qBAAC,KAAD;KACE,IAAI;MACF,SAAS;MACT,YAAY;MACb;eAJH,CAME,oBAAC,gBAAD;MAAgB,WAAU;MAAO,IAAI;OAAE,IAAI;OAAK,UAAU;OAAI;gBAC5D,oBAAC,kBAAD,EAAkB,UAAS,WAAY,CAAA;MACxB,CAAA,EACjB,oBAAC,YAAD;MACE,IAAI;OACF,UAAU;OACV,OAAO;OACP,YAAY;OACZ,YAAY;OACb;gBAEA,eAAe,sBAAsB,KAAK,SAAS;MACzC,CAAA,CACT;;IACE,CAAA,CACN;KACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteCardSkeleton.js","names":["Card"],"sources":["../../../../src/components/RouteCard/RouteCardSkeleton.tsx"],"sourcesContent":["import { Box, Skeleton } from '@mui/material'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { CardProps } from '../Card/Card.js'\nimport { Card } from '../Card/Card.js'\nimport { TokenSkeleton } from '../Token/Token.js'\nimport type { RouteCardSkeletonProps } from './types.js'\n\nexport const RouteCardSkeleton: React.FC<\n RouteCardSkeletonProps & Omit<CardProps, 'variant'>\n> = ({ variant, ...other }) => {\n const { subvariant } = useWidgetConfig()\n\n const cardContent = (\n <Box\n sx={{\n flex: 1,\n }}\n >\n {subvariant !== 'refuel' && subvariant !== 'custom' ? (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n mb: 2,\n }}\n >\n <Skeleton\n variant=\"rectangular\"\n width={112}\n height={24}\n sx={(theme) => ({\n borderRadius: theme.vars.shape.borderRadius,\n })}\n />\n </Box>\n ) : null}\n <TokenSkeleton />\n <Box\n sx={{\n mt: 2,\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <Skeleton variant=\"text\" width={64} height={20} />\n <Skeleton variant=\"text\" width={56} height={20} />\n </Box>\n </Box>\n )\n\n return subvariant === 'refuel' || variant === 'cardless' ? (\n cardContent\n ) : (\n <Card indented {...other}>\n {cardContent}\n </Card>\n )\n}\n"],"mappings":";;;;;;AAOA,MAAa,qBAER,EAAE,SAAS,GAAG,YAAY;CAC7B,MAAM,EAAE,eAAe,iBAAiB;CAExC,MAAM,cACJ,qBAAC,KAAD;EACE,IAAI,EACF,MAAM,GACP;YAHH;GAKG,eAAe,YAAY,eAAe,WACzC,oBAAC,KAAD;IACE,IAAI;KACF,SAAS;KACT,YAAY;KACZ,IAAI;KACL;cAED,oBAAC,UAAD;KACE,SAAQ;KACR,OAAO;KACP,QAAQ;KACR,KAAK,WAAW,EACd,cAAc,MAAM,KAAK,MAAM,cAChC;KACD,CAAA;IACE,CAAA,GACJ;GACJ,oBAAC,eAAD,EAAiB,CAAA;GACjB,qBAAC,KAAD;IACE,IAAI;KACF,IAAI;KACJ,SAAS;KACT,gBAAgB;KACjB;cALH,CAOE,oBAAC,UAAD;KAAU,SAAQ;KAAO,OAAO;KAAI,QAAQ;KAAM,CAAA,EAClD,oBAAC,UAAD;KAAU,SAAQ;KAAO,OAAO;KAAI,QAAQ;KAAM,CAAA,CAC9C;;GACF;;AAGR,QAAO,eAAe,YAAY,YAAY,aAC5C,cAEA,oBAACA,QAAD;EAAM,UAAA;EAAS,GAAI;YAChB;EACI,CAAA"}
1
+ {"version":3,"file":"RouteCardSkeleton.js","names":["Card"],"sources":["../../../../src/components/RouteCard/RouteCardSkeleton.tsx"],"sourcesContent":["import { Box, Skeleton } from '@mui/material'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { CardProps } from '../Card/Card.js'\nimport { Card } from '../Card/Card.js'\nimport { TokenSkeleton } from '../Token/Token.js'\nimport type { RouteCardSkeletonProps } from './types.js'\n\nexport const RouteCardSkeleton: React.FC<\n RouteCardSkeletonProps & Omit<CardProps, 'variant'>\n> = ({ variant, ...other }) => {\n const { subvariant } = useWidgetConfig()\n\n const cardContent = (\n <Box\n sx={{\n flex: 1,\n }}\n >\n {subvariant !== 'refuel' && subvariant !== 'custom' ? (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n mb: 2,\n }}\n >\n <Skeleton\n variant=\"rectangular\"\n width={112}\n height={24}\n sx={(theme) => ({\n borderRadius: theme.vars.shape.borderRadius,\n })}\n />\n </Box>\n ) : null}\n <TokenSkeleton />\n <Box\n sx={{\n mt: 2,\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <Skeleton variant=\"text\" width={64} height={20} />\n <Skeleton variant=\"text\" width={56} height={20} />\n </Box>\n </Box>\n )\n\n return subvariant === 'refuel' || variant === 'cardless' ? (\n cardContent\n ) : (\n <Card indented {...other}>\n {cardContent}\n </Card>\n )\n}\n"],"mappings":";;;;;;AAOA,MAAa,qBAER,EAAE,SAAS,GAAG,YAAY;CAC7B,MAAM,EAAE,eAAe,iBAAiB;CAExC,MAAM,cACJ,qBAAC,KAAD;EACE,IAAI,EACF,MAAM,GACP;YAHH;GAKG,eAAe,YAAY,eAAe,WACzC,oBAAC,KAAD;IACE,IAAI;KACF,SAAS;KACT,YAAY;KACZ,IAAI;KACL;cAED,oBAAC,UAAD;KACE,SAAQ;KACR,OAAO;KACP,QAAQ;KACR,KAAK,WAAW,EACd,cAAc,MAAM,KAAK,MAAM,cAChC;KACD,CAAA;IACE,CAAA,GACJ;GACJ,oBAAC,eAAD,EAAiB,CAAA;GACjB,qBAAC,KAAD;IACE,IAAI;KACF,IAAI;KACJ,SAAS;KACT,gBAAgB;KACjB;cALH,CAOE,oBAAC,UAAD;KAAU,SAAQ;KAAO,OAAO;KAAI,QAAQ;KAAM,CAAA,EAClD,oBAAC,UAAD;KAAU,SAAQ;KAAO,OAAO;KAAI,QAAQ;KAAM,CAAA,CAC9C;;GACF;;CAGR,OAAO,eAAe,YAAY,YAAY,aAC5C,cAEA,oBAACA,QAAD;EAAM,UAAA;EAAS,GAAI;YAChB;EACI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteDetails.js","names":[],"sources":["../../../../src/components/RouteCard/RouteDetails.tsx"],"sourcesContent":["import type { RouteExtended } from '@lifi/sdk'\nimport { useEthereumContext } from '@lifi/widget-provider'\nimport { Box, Tooltip } from '@mui/material'\nimport type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useTokenRateText } from '../../hooks/useTokenRateText.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { isRouteDone } from '../../stores/routes/utils.js'\nimport { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'\nimport {\n formatDuration,\n formatTokenAmount,\n formatTokenPrice,\n} from '../../utils/format.js'\nimport { getPriceImpact } from '../../utils/getPriceImpact.js'\nimport { FeeBreakdownTooltip } from '../FeeBreakdownTooltip.js'\nimport { StepActions } from '../Step/StepActions.js'\nimport {\n DetailInfoIcon,\n DetailLabel,\n DetailLabelContainer,\n DetailRow,\n DetailValue,\n} from './RouteDetails.style.js'\n\ninterface RouteDetailsProps {\n route: RouteExtended\n}\n\nexport const RouteDetails = ({ route }: RouteDetailsProps): JSX.Element => {\n const { t, i18n } = useTranslation()\n const { rateText, toggleRate } = useTokenRateText(route)\n const { feeConfig } = useWidgetConfig()\n const { isGaslessStep } = useEthereumContext()\n\n const { gasCosts, feeCosts, gasCostUSD, feeCostUSD } =\n getAccumulatedFeeCostsBreakdown(route)\n\n const priceImpact = getPriceImpact({\n fromAmount: BigInt(route.fromAmount),\n toAmount: BigInt(route.toAmount),\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n\n let feeAmountUSD = 0\n let feePercentage = 0\n\n const feeCollectionStep = route.steps[0].includedSteps.find(\n (includedStep) => includedStep.tool === 'feeCollection'\n )\n\n if (feeCollectionStep) {\n const estimatedFromAmount =\n BigInt(feeCollectionStep.estimate.fromAmount) -\n BigInt(feeCollectionStep.estimate.toAmount)\n\n feeAmountUSD = formatTokenPrice(\n estimatedFromAmount,\n feeCollectionStep.action.fromToken.priceUSD,\n feeCollectionStep.action.fromToken.decimals\n )\n\n feePercentage =\n feeCollectionStep.estimate.feeCosts?.reduce(\n (percentage, feeCost) =>\n percentage + Number.parseFloat(feeCost.percentage || '0'),\n 0\n ) ?? 0\n }\n\n const executionTimeSeconds = Math.floor(\n route.steps.reduce(\n (duration, step) => duration + step.estimate.executionDuration,\n 0\n )\n )\n\n const hasGaslessSupport = route.steps.every((step) => isGaslessStep?.(step))\n\n const showIntegratorFeeCollectionDetails =\n (feeAmountUSD || Number.isFinite(feeConfig?.fee)) && !hasGaslessSupport\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1, pt: 1.5 }}>\n <StepActions route={route} />\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.fees.network')}</DetailLabel>\n <FeeBreakdownTooltip gasCosts={gasCosts} gasless={hasGaslessSupport}>\n <DetailInfoIcon />\n </FeeBreakdownTooltip>\n </DetailLabelContainer>\n <DetailValue>\n {!gasCostUSD\n ? t('main.fees.free')\n : t('format.currency', { value: gasCostUSD })}\n </DetailValue>\n </DetailRow>\n {feeCosts.length ? (\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.fees.provider')}</DetailLabel>\n <FeeBreakdownTooltip feeCosts={feeCosts}>\n <DetailInfoIcon />\n </FeeBreakdownTooltip>\n </DetailLabelContainer>\n <DetailValue>\n {t('format.currency', { value: feeCostUSD })}\n </DetailValue>\n </DetailRow>\n ) : null}\n {showIntegratorFeeCollectionDetails ? (\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>\n {feeConfig?.name || t('main.fees.defaultIntegrator')}\n {feeConfig?.showFeePercentage && (\n <> ({t('format.percent', { value: feePercentage })})</>\n )}\n </DetailLabel>\n {feeConfig?.showFeeTooltip &&\n (feeConfig?.name || feeConfig?.feeTooltipComponent) ? (\n <Tooltip\n title={\n feeConfig?.feeTooltipComponent ||\n t('tooltip.feeCollection', { tool: feeConfig.name })\n }\n >\n <DetailInfoIcon />\n </Tooltip>\n ) : null}\n </DetailLabelContainer>\n <DetailValue>\n {t('format.currency', { value: feeAmountUSD })}\n </DetailValue>\n </DetailRow>\n ) : null}\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.priceImpact')}</DetailLabel>\n <Tooltip title={t('tooltip.priceImpact')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {t('format.percent', { value: priceImpact, usePlusSign: true })}\n </DetailValue>\n </DetailRow>\n {!isRouteDone(route) ? (\n <>\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.maxSlippage')}</DetailLabel>\n <Tooltip title={t('tooltip.slippage')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {route.steps[0].action.slippage\n ? t('format.percent', {\n value: route.steps[0].action.slippage,\n })\n : t('button.auto')}\n </DetailValue>\n </DetailRow>\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.minReceived')}</DetailLabel>\n <Tooltip title={t('tooltip.minReceived')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {t('format.tokenAmount', {\n value: formatTokenAmount(\n BigInt(route.toAmountMin),\n route.toToken.decimals\n ),\n })}{' '}\n {route.toToken.symbol}\n </DetailValue>\n </DetailRow>\n </>\n ) : null}\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.exchangeRate')}</DetailLabel>\n <Tooltip title={t('tooltip.exchangeRate')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue\n onClick={toggleRate}\n role=\"button\"\n sx={{ cursor: 'pointer' }}\n >\n {rateText}\n </DetailValue>\n </DetailRow>\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.estimatedTime')}</DetailLabel>\n <Tooltip title={t('tooltip.estimatedTime')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {formatDuration(executionTimeSeconds, i18n.language)}\n </DetailValue>\n </DetailRow>\n </Box>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RouteDetails.js","names":[],"sources":["../../../../src/components/RouteCard/RouteDetails.tsx"],"sourcesContent":["import type { RouteExtended } from '@lifi/sdk'\nimport { useEthereumContext } from '@lifi/widget-provider'\nimport { Box, Tooltip } from '@mui/material'\nimport type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useTokenRateText } from '../../hooks/useTokenRateText.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { isRouteDone } from '../../stores/routes/utils.js'\nimport { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'\nimport {\n formatDuration,\n formatTokenAmount,\n formatTokenPrice,\n} from '../../utils/format.js'\nimport { getPriceImpact } from '../../utils/getPriceImpact.js'\nimport { FeeBreakdownTooltip } from '../FeeBreakdownTooltip.js'\nimport { StepActions } from '../Step/StepActions.js'\nimport {\n DetailInfoIcon,\n DetailLabel,\n DetailLabelContainer,\n DetailRow,\n DetailValue,\n} from './RouteDetails.style.js'\n\ninterface RouteDetailsProps {\n route: RouteExtended\n}\n\nexport const RouteDetails = ({ route }: RouteDetailsProps): JSX.Element => {\n const { t, i18n } = useTranslation()\n const { rateText, toggleRate } = useTokenRateText(route)\n const { feeConfig } = useWidgetConfig()\n const { isGaslessStep } = useEthereumContext()\n\n const { gasCosts, feeCosts, gasCostUSD, feeCostUSD } =\n getAccumulatedFeeCostsBreakdown(route)\n\n const priceImpact = getPriceImpact({\n fromAmount: BigInt(route.fromAmount),\n toAmount: BigInt(route.toAmount),\n fromToken: route.fromToken,\n toToken: route.toToken,\n })\n\n let feeAmountUSD = 0\n let feePercentage = 0\n\n const feeCollectionStep = route.steps[0].includedSteps.find(\n (includedStep) => includedStep.tool === 'feeCollection'\n )\n\n if (feeCollectionStep) {\n const estimatedFromAmount =\n BigInt(feeCollectionStep.estimate.fromAmount) -\n BigInt(feeCollectionStep.estimate.toAmount)\n\n feeAmountUSD = formatTokenPrice(\n estimatedFromAmount,\n feeCollectionStep.action.fromToken.priceUSD,\n feeCollectionStep.action.fromToken.decimals\n )\n\n feePercentage =\n feeCollectionStep.estimate.feeCosts?.reduce(\n (percentage, feeCost) =>\n percentage + Number.parseFloat(feeCost.percentage || '0'),\n 0\n ) ?? 0\n }\n\n const executionTimeSeconds = Math.floor(\n route.steps.reduce(\n (duration, step) => duration + step.estimate.executionDuration,\n 0\n )\n )\n\n const hasGaslessSupport = route.steps.every((step) => isGaslessStep?.(step))\n\n const showIntegratorFeeCollectionDetails =\n (feeAmountUSD || Number.isFinite(feeConfig?.fee)) && !hasGaslessSupport\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1, pt: 1.5 }}>\n <StepActions route={route} />\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.fees.network')}</DetailLabel>\n <FeeBreakdownTooltip gasCosts={gasCosts} gasless={hasGaslessSupport}>\n <DetailInfoIcon />\n </FeeBreakdownTooltip>\n </DetailLabelContainer>\n <DetailValue>\n {!gasCostUSD\n ? t('main.fees.free')\n : t('format.currency', { value: gasCostUSD })}\n </DetailValue>\n </DetailRow>\n {feeCosts.length ? (\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.fees.provider')}</DetailLabel>\n <FeeBreakdownTooltip feeCosts={feeCosts}>\n <DetailInfoIcon />\n </FeeBreakdownTooltip>\n </DetailLabelContainer>\n <DetailValue>\n {t('format.currency', { value: feeCostUSD })}\n </DetailValue>\n </DetailRow>\n ) : null}\n {showIntegratorFeeCollectionDetails ? (\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>\n {feeConfig?.name || t('main.fees.defaultIntegrator')}\n {feeConfig?.showFeePercentage && (\n <> ({t('format.percent', { value: feePercentage })})</>\n )}\n </DetailLabel>\n {feeConfig?.showFeeTooltip &&\n (feeConfig?.name || feeConfig?.feeTooltipComponent) ? (\n <Tooltip\n title={\n feeConfig?.feeTooltipComponent ||\n t('tooltip.feeCollection', { tool: feeConfig.name })\n }\n >\n <DetailInfoIcon />\n </Tooltip>\n ) : null}\n </DetailLabelContainer>\n <DetailValue>\n {t('format.currency', { value: feeAmountUSD })}\n </DetailValue>\n </DetailRow>\n ) : null}\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.priceImpact')}</DetailLabel>\n <Tooltip title={t('tooltip.priceImpact')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {t('format.percent', { value: priceImpact, usePlusSign: true })}\n </DetailValue>\n </DetailRow>\n {!isRouteDone(route) ? (\n <>\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.maxSlippage')}</DetailLabel>\n <Tooltip title={t('tooltip.slippage')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {route.steps[0].action.slippage\n ? t('format.percent', {\n value: route.steps[0].action.slippage,\n })\n : t('button.auto')}\n </DetailValue>\n </DetailRow>\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.minReceived')}</DetailLabel>\n <Tooltip title={t('tooltip.minReceived')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {t('format.tokenAmount', {\n value: formatTokenAmount(\n BigInt(route.toAmountMin),\n route.toToken.decimals\n ),\n })}{' '}\n {route.toToken.symbol}\n </DetailValue>\n </DetailRow>\n </>\n ) : null}\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.exchangeRate')}</DetailLabel>\n <Tooltip title={t('tooltip.exchangeRate')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue\n onClick={toggleRate}\n role=\"button\"\n sx={{ cursor: 'pointer' }}\n >\n {rateText}\n </DetailValue>\n </DetailRow>\n <DetailRow>\n <DetailLabelContainer>\n <DetailLabel>{t('main.estimatedTime')}</DetailLabel>\n <Tooltip title={t('tooltip.estimatedTime')}>\n <DetailInfoIcon />\n </Tooltip>\n </DetailLabelContainer>\n <DetailValue>\n {formatDuration(executionTimeSeconds, i18n.language)}\n </DetailValue>\n </DetailRow>\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteNotFoundCard.js","names":[],"sources":["../../../../src/components/RouteCard/RouteNotFoundCard.tsx"],"sourcesContent":["import Route from '@mui/icons-material/Route'\nimport { Box, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\n\nexport const RouteNotFoundCard: React.FC = () => {\n const { t } = useTranslation()\n return (\n <Box\n sx={{\n py: 1.625,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n flex: 1,\n whiteSpace: 'normal',\n }}\n >\n <Typography\n sx={{\n fontSize: 48,\n }}\n >\n <Route fontSize=\"inherit\" />\n </Typography>\n <Typography\n sx={{\n fontSize: 18,\n fontWeight: 700,\n }}\n >\n {t('info.title.routeNotFound')}\n </Typography>\n <Typography\n sx={{\n fontSize: 14,\n color: 'text.secondary',\n textAlign: 'center',\n mt: 2,\n }}\n >\n {t('info.message.routeNotFound')}\n </Typography>\n </Box>\n )\n}\n"],"mappings":";;;;;AAIA,MAAa,0BAAoC;CAC/C,MAAM,EAAE,MAAM,gBAAgB;AAC9B,QACE,qBAAC,KAAD;EACE,IAAI;GACF,IAAI;GACJ,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,eAAe;GACf,MAAM;GACN,YAAY;GACb;YATH;GAWE,oBAAC,YAAD;IACE,IAAI,EACF,UAAU,IACX;cAED,oBAAC,OAAD,EAAO,UAAS,WAAY,CAAA;IACjB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,YAAY;KACb;cAEA,EAAE,2BAA2B;IACnB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,OAAO;KACP,WAAW;KACX,IAAI;KACL;cAEA,EAAE,6BAA6B;IACrB,CAAA;GACT"}
1
+ {"version":3,"file":"RouteNotFoundCard.js","names":[],"sources":["../../../../src/components/RouteCard/RouteNotFoundCard.tsx"],"sourcesContent":["import Route from '@mui/icons-material/Route'\nimport { Box, Typography } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\n\nexport const RouteNotFoundCard: React.FC = () => {\n const { t } = useTranslation()\n return (\n <Box\n sx={{\n py: 1.625,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n flex: 1,\n whiteSpace: 'normal',\n }}\n >\n <Typography\n sx={{\n fontSize: 48,\n }}\n >\n <Route fontSize=\"inherit\" />\n </Typography>\n <Typography\n sx={{\n fontSize: 18,\n fontWeight: 700,\n }}\n >\n {t('info.title.routeNotFound')}\n </Typography>\n <Typography\n sx={{\n fontSize: 14,\n color: 'text.secondary',\n textAlign: 'center',\n mt: 2,\n }}\n >\n {t('info.message.routeNotFound')}\n </Typography>\n </Box>\n )\n}\n"],"mappings":";;;;;AAIA,MAAa,0BAAoC;CAC/C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,OACE,qBAAC,KAAD;EACE,IAAI;GACF,IAAI;GACJ,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,eAAe;GACf,MAAM;GACN,YAAY;GACb;YATH;GAWE,oBAAC,YAAD;IACE,IAAI,EACF,UAAU,IACX;cAED,oBAAC,OAAD,EAAO,UAAS,WAAY,CAAA;IACjB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,YAAY;KACb;cAEA,EAAE,2BAA2B;IACnB,CAAA;GACb,oBAAC,YAAD;IACE,IAAI;KACF,UAAU;KACV,OAAO;KACP,WAAW;KACX,IAAI;KACL;cAEA,EAAE,6BAA6B;IACrB,CAAA;GACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteToken.js","names":[],"sources":["../../../../src/components/RouteCard/RouteToken.tsx"],"sourcesContent":["import type { RouteExtended, TokenAmount } from '@lifi/sdk'\nimport ExpandLess from '@mui/icons-material/ExpandLess'\nimport ExpandMore from '@mui/icons-material/ExpandMore'\nimport { Box, Collapse } from '@mui/material'\nimport type { JSX } from 'react'\nimport { type MouseEventHandler, useState } from 'react'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { CardIconButton } from '../Card/CardIconButton.js'\nimport { Token } from '../Token/Token.js'\nimport { RouteCardEssentials } from './RouteCardEssentials.js'\nimport { RouteDetails } from './RouteDetails.js'\nimport { TokenContainer } from './RouteToken.style.js'\n\ninterface RouteTokenProps {\n route: RouteExtended\n token: TokenAmount\n impactToken?: TokenAmount\n defaultExpanded?: boolean\n showEssentials?: boolean\n}\n\nexport const RouteToken = ({\n route,\n token,\n impactToken,\n defaultExpanded,\n showEssentials,\n}: RouteTokenProps): JSX.Element => {\n const { hiddenUI } = useWidgetConfig()\n\n const [cardExpanded, setCardExpanded] = useState(defaultExpanded)\n\n const handleExpand: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.stopPropagation()\n setCardExpanded((expanded) => !expanded)\n }\n\n return (\n <Box>\n <TokenContainer>\n <Token\n token={token}\n impactToken={impactToken}\n step={route.steps[0]}\n stepVisible={!cardExpanded}\n disableDescription={hiddenUI?.includes(\n HiddenUI.RouteTokenDescription\n )}\n />\n {!defaultExpanded ? (\n <CardIconButton onClick={handleExpand} size=\"small\">\n {cardExpanded ? (\n <ExpandLess fontSize=\"inherit\" />\n ) : (\n <ExpandMore fontSize=\"inherit\" />\n )}\n </CardIconButton>\n ) : null}\n </TokenContainer>\n <Collapse timeout={225} in={cardExpanded} mountOnEnter unmountOnExit>\n <RouteDetails route={route} />\n </Collapse>\n {showEssentials ? (\n <Collapse timeout={225} in={!cardExpanded}>\n <RouteCardEssentials route={route} />\n </Collapse>\n ) : null}\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAa,cAAc,EACzB,OACA,OACA,aACA,iBACA,qBACkC;CAClC,MAAM,EAAE,aAAa,iBAAiB;CAEtC,MAAM,CAAC,cAAc,mBAAmB,SAAS,gBAAgB;CAEjE,MAAM,gBAAsD,MAAM;AAChE,IAAE,iBAAiB;AACnB,mBAAiB,aAAa,CAAC,SAAS;;AAG1C,QACE,qBAAC,KAAD,EAAA,UAAA;EACE,qBAAC,gBAAD,EAAA,UAAA,CACE,oBAAC,OAAD;GACS;GACM;GACb,MAAM,MAAM,MAAM;GAClB,aAAa,CAAC;GACd,oBAAoB,UAAU,SAAA,wBAE7B;GACD,CAAA,EACD,CAAC,kBACA,oBAAC,gBAAD;GAAgB,SAAS;GAAc,MAAK;aACzC,eACC,oBAAC,YAAD,EAAY,UAAS,WAAY,CAAA,GAEjC,oBAAC,YAAD,EAAY,UAAS,WAAY,CAAA;GAEpB,CAAA,GACf,KACW,EAAA,CAAA;EACjB,oBAAC,UAAD;GAAU,SAAS;GAAK,IAAI;GAAc,cAAA;GAAa,eAAA;aACrD,oBAAC,cAAD,EAAqB,OAAS,CAAA;GACrB,CAAA;EACV,iBACC,oBAAC,UAAD;GAAU,SAAS;GAAK,IAAI,CAAC;aAC3B,oBAAC,qBAAD,EAA4B,OAAS,CAAA;GAC5B,CAAA,GACT;EACA,EAAA,CAAA"}
1
+ {"version":3,"file":"RouteToken.js","names":[],"sources":["../../../../src/components/RouteCard/RouteToken.tsx"],"sourcesContent":["import type { RouteExtended, TokenAmount } from '@lifi/sdk'\nimport ExpandLess from '@mui/icons-material/ExpandLess'\nimport ExpandMore from '@mui/icons-material/ExpandMore'\nimport { Box, Collapse } from '@mui/material'\nimport type { JSX } from 'react'\nimport { type MouseEventHandler, useState } from 'react'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { CardIconButton } from '../Card/CardIconButton.js'\nimport { Token } from '../Token/Token.js'\nimport { RouteCardEssentials } from './RouteCardEssentials.js'\nimport { RouteDetails } from './RouteDetails.js'\nimport { TokenContainer } from './RouteToken.style.js'\n\ninterface RouteTokenProps {\n route: RouteExtended\n token: TokenAmount\n impactToken?: TokenAmount\n defaultExpanded?: boolean\n showEssentials?: boolean\n}\n\nexport const RouteToken = ({\n route,\n token,\n impactToken,\n defaultExpanded,\n showEssentials,\n}: RouteTokenProps): JSX.Element => {\n const { hiddenUI } = useWidgetConfig()\n\n const [cardExpanded, setCardExpanded] = useState(defaultExpanded)\n\n const handleExpand: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.stopPropagation()\n setCardExpanded((expanded) => !expanded)\n }\n\n return (\n <Box>\n <TokenContainer>\n <Token\n token={token}\n impactToken={impactToken}\n step={route.steps[0]}\n stepVisible={!cardExpanded}\n disableDescription={hiddenUI?.includes(\n HiddenUI.RouteTokenDescription\n )}\n />\n {!defaultExpanded ? (\n <CardIconButton onClick={handleExpand} size=\"small\">\n {cardExpanded ? (\n <ExpandLess fontSize=\"inherit\" />\n ) : (\n <ExpandMore fontSize=\"inherit\" />\n )}\n </CardIconButton>\n ) : null}\n </TokenContainer>\n <Collapse timeout={225} in={cardExpanded} mountOnEnter unmountOnExit>\n <RouteDetails route={route} />\n </Collapse>\n {showEssentials ? (\n <Collapse timeout={225} in={!cardExpanded}>\n <RouteCardEssentials route={route} />\n </Collapse>\n ) : null}\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAa,cAAc,EACzB,OACA,OACA,aACA,iBACA,qBACkC;CAClC,MAAM,EAAE,aAAa,iBAAiB;CAEtC,MAAM,CAAC,cAAc,mBAAmB,SAAS,gBAAgB;CAEjE,MAAM,gBAAsD,MAAM;EAChE,EAAE,iBAAiB;EACnB,iBAAiB,aAAa,CAAC,SAAS;;CAG1C,OACE,qBAAC,KAAD,EAAA,UAAA;EACE,qBAAC,gBAAD,EAAA,UAAA,CACE,oBAAC,OAAD;GACS;GACM;GACb,MAAM,MAAM,MAAM;GAClB,aAAa,CAAC;GACd,oBAAoB,UAAU,SAAA,wBAE7B;GACD,CAAA,EACD,CAAC,kBACA,oBAAC,gBAAD;GAAgB,SAAS;GAAc,MAAK;aACzC,eACC,oBAAC,YAAD,EAAY,UAAS,WAAY,CAAA,GAEjC,oBAAC,YAAD,EAAY,UAAS,WAAY,CAAA;GAEpB,CAAA,GACf,KACW,EAAA,CAAA;EACjB,oBAAC,UAAD;GAAU,SAAS;GAAK,IAAI;GAAc,cAAA;GAAa,eAAA;aACrD,oBAAC,cAAD,EAAqB,OAAS,CAAA;GACrB,CAAA;EACV,iBACC,oBAAC,UAAD;GAAU,SAAS;GAAK,IAAI,CAAC;aAC3B,oBAAC,qBAAD,EAA4B,OAAS,CAAA;GAC5B,CAAA,GACT;EACA,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteTokens.js","names":[],"sources":["../../../../src/components/RouteCard/RouteTokens.tsx"],"sourcesContent":["import type { RouteExtended } from '@lifi/sdk'\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward'\nimport { Box } from '@mui/material'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { Token } from '../Token/Token.js'\nimport { RouteToken } from './RouteToken.js'\n\nexport const RouteTokens: React.FC<{\n route: RouteExtended\n showEssentials?: boolean\n}> = ({ route, showEssentials }) => {\n const { subvariant } = useWidgetConfig()\n\n const fromToken = {\n ...route.steps[0].action.fromToken,\n amount: BigInt(route.steps[0].action.fromAmount),\n }\n\n const lastStepIndex = route.steps.length - 1\n const toToken = {\n ...(route.steps[lastStepIndex].execution?.toToken ??\n route.steps[lastStepIndex].action.toToken),\n amount: route.steps[lastStepIndex].execution?.toAmount\n ? BigInt(route.steps[lastStepIndex].execution.toAmount)\n : subvariant === 'custom'\n ? BigInt(route.toAmount)\n : BigInt(route.steps[lastStepIndex].estimate.toAmount),\n }\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n {fromToken ? <Token token={fromToken} /> : null}\n <Box\n sx={{\n width: 40,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <ArrowDownwardIcon sx={{ fontSize: 16 }} />\n </Box>\n {toToken ? (\n <RouteToken\n route={route}\n token={toToken}\n impactToken={fromToken}\n showEssentials={showEssentials}\n />\n ) : null}\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAOA,MAAa,eAGP,EAAE,OAAO,qBAAqB;CAClC,MAAM,EAAE,eAAe,iBAAiB;CAExC,MAAM,YAAY;EAChB,GAAG,MAAM,MAAM,GAAG,OAAO;EACzB,QAAQ,OAAO,MAAM,MAAM,GAAG,OAAO,WAAW;EACjD;CAED,MAAM,gBAAgB,MAAM,MAAM,SAAS;CAC3C,MAAM,UAAU;EACd,GAAI,MAAM,MAAM,eAAe,WAAW,WACxC,MAAM,MAAM,eAAe,OAAO;EACpC,QAAQ,MAAM,MAAM,eAAe,WAAW,WAC1C,OAAO,MAAM,MAAM,eAAe,UAAU,SAAS,GACrD,eAAe,WACb,OAAO,MAAM,SAAS,GACtB,OAAO,MAAM,MAAM,eAAe,SAAS,SAAS;EAC3D;AAED,QACE,qBAAC,KAAD;EAAK,IAAI;GAAE,SAAS;GAAQ,eAAe;GAAU,KAAK;GAAK;YAA/D;GACG,YAAY,oBAAC,OAAD,EAAO,OAAO,WAAa,CAAA,GAAG;GAC3C,oBAAC,KAAD;IACE,IAAI;KACF,OAAO;KACP,QAAQ;KACR,SAAS;KACT,YAAY;KACZ,gBAAgB;KACjB;cAED,oBAAC,mBAAD,EAAmB,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;IACvC,CAAA;GACL,UACC,oBAAC,YAAD;IACS;IACP,OAAO;IACP,aAAa;IACG;IAChB,CAAA,GACA;GACA"}
1
+ {"version":3,"file":"RouteTokens.js","names":[],"sources":["../../../../src/components/RouteCard/RouteTokens.tsx"],"sourcesContent":["import type { RouteExtended } from '@lifi/sdk'\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward'\nimport { Box } from '@mui/material'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { Token } from '../Token/Token.js'\nimport { RouteToken } from './RouteToken.js'\n\nexport const RouteTokens: React.FC<{\n route: RouteExtended\n showEssentials?: boolean\n}> = ({ route, showEssentials }) => {\n const { subvariant } = useWidgetConfig()\n\n const fromToken = {\n ...route.steps[0].action.fromToken,\n amount: BigInt(route.steps[0].action.fromAmount),\n }\n\n const lastStepIndex = route.steps.length - 1\n const toToken = {\n ...(route.steps[lastStepIndex].execution?.toToken ??\n route.steps[lastStepIndex].action.toToken),\n amount: route.steps[lastStepIndex].execution?.toAmount\n ? BigInt(route.steps[lastStepIndex].execution.toAmount)\n : subvariant === 'custom'\n ? BigInt(route.toAmount)\n : BigInt(route.steps[lastStepIndex].estimate.toAmount),\n }\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n {fromToken ? <Token token={fromToken} /> : null}\n <Box\n sx={{\n width: 40,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <ArrowDownwardIcon sx={{ fontSize: 16 }} />\n </Box>\n {toToken ? (\n <RouteToken\n route={route}\n token={toToken}\n impactToken={fromToken}\n showEssentials={showEssentials}\n />\n ) : null}\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAOA,MAAa,eAGP,EAAE,OAAO,qBAAqB;CAClC,MAAM,EAAE,eAAe,iBAAiB;CAExC,MAAM,YAAY;EAChB,GAAG,MAAM,MAAM,GAAG,OAAO;EACzB,QAAQ,OAAO,MAAM,MAAM,GAAG,OAAO,WAAW;EACjD;CAED,MAAM,gBAAgB,MAAM,MAAM,SAAS;CAC3C,MAAM,UAAU;EACd,GAAI,MAAM,MAAM,eAAe,WAAW,WACxC,MAAM,MAAM,eAAe,OAAO;EACpC,QAAQ,MAAM,MAAM,eAAe,WAAW,WAC1C,OAAO,MAAM,MAAM,eAAe,UAAU,SAAS,GACrD,eAAe,WACb,OAAO,MAAM,SAAS,GACtB,OAAO,MAAM,MAAM,eAAe,SAAS,SAAS;EAC3D;CAED,OACE,qBAAC,KAAD;EAAK,IAAI;GAAE,SAAS;GAAQ,eAAe;GAAU,KAAK;GAAK;YAA/D;GACG,YAAY,oBAAC,OAAD,EAAO,OAAO,WAAa,CAAA,GAAG;GAC3C,oBAAC,KAAD;IACE,IAAI;KACF,OAAO;KACP,QAAQ;KACR,SAAS;KACT,YAAY;KACZ,gBAAgB;KACjB;cAED,oBAAC,mBAAD,EAAmB,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;IACvC,CAAA;GACL,UACC,oBAAC,YAAD;IACS;IACP,OAAO;IACP,aAAa;IACG;IAChB,CAAA,GACA;GACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getMatchingLabels.js","names":[],"sources":["../../../../src/components/RouteCard/getMatchingLabels.ts"],"sourcesContent":["import type { Route } from '@lifi/sdk'\nimport type { RouteLabel, RouteLabelRule } from '../../types/widget.js'\nimport { getConfigItemSets, isItemAllowedForSets } from '../../utils/item.js'\n\nexport const getMatchingLabels = (\n route: Route,\n routeLabels?: RouteLabelRule[]\n): RouteLabel[] => {\n if (!routeLabels?.length) {\n return []\n }\n\n return routeLabels\n .filter((rule) => {\n const conditions: boolean[] = []\n\n // Check bridge/exchange matches if specified\n if (rule.bridges || rule.exchanges) {\n const toolNames = route.steps.flatMap((step) =>\n step.includedSteps.map((s) => s.tool)\n )\n const bridgesConfigSets = getConfigItemSets(\n rule.bridges,\n (bridges) => new Set(bridges)\n )\n const exchangesConfigSets = getConfigItemSets(\n rule.exchanges,\n (exchanges) => new Set(exchanges)\n )\n conditions.push(\n toolNames.some(\n (toolName) =>\n isItemAllowedForSets(toolName, bridgesConfigSets) &&\n isItemAllowedForSets(toolName, exchangesConfigSets)\n )\n )\n }\n\n // Check token matches if specified\n if (rule.fromTokenAddress?.length) {\n conditions.push(rule.fromTokenAddress.includes(route.fromToken.address))\n }\n\n if (rule.toTokenAddress?.length) {\n conditions.push(rule.toTokenAddress.includes(route.toToken.address))\n }\n\n // Check chain matches if specified\n if (rule.fromChainId?.length) {\n conditions.push(rule.fromChainId.includes(route.fromChainId))\n }\n\n if (rule.toChainId?.length) {\n conditions.push(rule.toChainId.includes(route.toChainId))\n }\n\n // Must have at least one condition and all conditions must be true\n return conditions.length && conditions.every(Boolean)\n })\n .map((rule) => rule.label)\n}\n"],"mappings":";;AAIA,MAAa,qBACX,OACA,gBACiB;AACjB,KAAI,CAAC,aAAa,OAChB,QAAO,EAAE;AAGX,QAAO,YACJ,QAAQ,SAAS;EAChB,MAAM,aAAwB,EAAE;AAGhC,MAAI,KAAK,WAAW,KAAK,WAAW;GAClC,MAAM,YAAY,MAAM,MAAM,SAAS,SACrC,KAAK,cAAc,KAAK,MAAM,EAAE,KAAK,CACtC;GACD,MAAM,oBAAoB,kBACxB,KAAK,UACJ,YAAY,IAAI,IAAI,QAAQ,CAC9B;GACD,MAAM,sBAAsB,kBAC1B,KAAK,YACJ,cAAc,IAAI,IAAI,UAAU,CAClC;AACD,cAAW,KACT,UAAU,MACP,aACC,qBAAqB,UAAU,kBAAkB,IACjD,qBAAqB,UAAU,oBAAoB,CACtD,CACF;;AAIH,MAAI,KAAK,kBAAkB,OACzB,YAAW,KAAK,KAAK,iBAAiB,SAAS,MAAM,UAAU,QAAQ,CAAC;AAG1E,MAAI,KAAK,gBAAgB,OACvB,YAAW,KAAK,KAAK,eAAe,SAAS,MAAM,QAAQ,QAAQ,CAAC;AAItE,MAAI,KAAK,aAAa,OACpB,YAAW,KAAK,KAAK,YAAY,SAAS,MAAM,YAAY,CAAC;AAG/D,MAAI,KAAK,WAAW,OAClB,YAAW,KAAK,KAAK,UAAU,SAAS,MAAM,UAAU,CAAC;AAI3D,SAAO,WAAW,UAAU,WAAW,MAAM,QAAQ;GACrD,CACD,KAAK,SAAS,KAAK,MAAM"}
1
+ {"version":3,"file":"getMatchingLabels.js","names":[],"sources":["../../../../src/components/RouteCard/getMatchingLabels.ts"],"sourcesContent":["import type { Route } from '@lifi/sdk'\nimport type { RouteLabel, RouteLabelRule } from '../../types/widget.js'\nimport { getConfigItemSets, isItemAllowedForSets } from '../../utils/item.js'\n\nexport const getMatchingLabels = (\n route: Route,\n routeLabels?: RouteLabelRule[]\n): RouteLabel[] => {\n if (!routeLabels?.length) {\n return []\n }\n\n return routeLabels\n .filter((rule) => {\n const conditions: boolean[] = []\n\n // Check bridge/exchange matches if specified\n if (rule.bridges || rule.exchanges) {\n const toolNames = route.steps.flatMap((step) =>\n step.includedSteps.map((s) => s.tool)\n )\n const bridgesConfigSets = getConfigItemSets(\n rule.bridges,\n (bridges) => new Set(bridges)\n )\n const exchangesConfigSets = getConfigItemSets(\n rule.exchanges,\n (exchanges) => new Set(exchanges)\n )\n conditions.push(\n toolNames.some(\n (toolName) =>\n isItemAllowedForSets(toolName, bridgesConfigSets) &&\n isItemAllowedForSets(toolName, exchangesConfigSets)\n )\n )\n }\n\n // Check token matches if specified\n if (rule.fromTokenAddress?.length) {\n conditions.push(rule.fromTokenAddress.includes(route.fromToken.address))\n }\n\n if (rule.toTokenAddress?.length) {\n conditions.push(rule.toTokenAddress.includes(route.toToken.address))\n }\n\n // Check chain matches if specified\n if (rule.fromChainId?.length) {\n conditions.push(rule.fromChainId.includes(route.fromChainId))\n }\n\n if (rule.toChainId?.length) {\n conditions.push(rule.toChainId.includes(route.toChainId))\n }\n\n // Must have at least one condition and all conditions must be true\n return conditions.length && conditions.every(Boolean)\n })\n .map((rule) => rule.label)\n}\n"],"mappings":";;AAIA,MAAa,qBACX,OACA,gBACiB;CACjB,IAAI,CAAC,aAAa,QAChB,OAAO,EAAE;CAGX,OAAO,YACJ,QAAQ,SAAS;EAChB,MAAM,aAAwB,EAAE;EAGhC,IAAI,KAAK,WAAW,KAAK,WAAW;GAClC,MAAM,YAAY,MAAM,MAAM,SAAS,SACrC,KAAK,cAAc,KAAK,MAAM,EAAE,KAAK,CACtC;GACD,MAAM,oBAAoB,kBACxB,KAAK,UACJ,YAAY,IAAI,IAAI,QAAQ,CAC9B;GACD,MAAM,sBAAsB,kBAC1B,KAAK,YACJ,cAAc,IAAI,IAAI,UAAU,CAClC;GACD,WAAW,KACT,UAAU,MACP,aACC,qBAAqB,UAAU,kBAAkB,IACjD,qBAAqB,UAAU,oBAAoB,CACtD,CACF;;EAIH,IAAI,KAAK,kBAAkB,QACzB,WAAW,KAAK,KAAK,iBAAiB,SAAS,MAAM,UAAU,QAAQ,CAAC;EAG1E,IAAI,KAAK,gBAAgB,QACvB,WAAW,KAAK,KAAK,eAAe,SAAS,MAAM,QAAQ,QAAQ,CAAC;EAItE,IAAI,KAAK,aAAa,QACpB,WAAW,KAAK,KAAK,YAAY,SAAS,MAAM,YAAY,CAAC;EAG/D,IAAI,KAAK,WAAW,QAClB,WAAW,KAAK,KAAK,UAAU,SAAS,MAAM,UAAU,CAAC;EAI3D,OAAO,WAAW,UAAU,WAAW,MAAM,QAAQ;GACrD,CACD,KAAK,SAAS,KAAK,MAAM"}