@rango-dev/widget-embedded 0.17.1-next.9 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/dist/QueueManager.d.ts +3 -1
  3. package/dist/QueueManager.d.ts.map +1 -1
  4. package/dist/components/AppRouter.d.ts.map +1 -1
  5. package/dist/components/AppRoutes.d.ts.map +1 -1
  6. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts.map +1 -1
  7. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +1 -1
  8. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -1
  9. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +690 -61
  10. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  11. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  12. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
  13. package/dist/components/Layout/Layout.d.ts.map +1 -1
  14. package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
  15. package/dist/components/Layout/Layout.types.d.ts +2 -2
  16. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  17. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -1
  18. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +1727 -0
  19. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
  20. package/dist/components/NoResult/NoResult.d.ts.map +1 -1
  21. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  22. package/dist/components/Quote/Quote.d.ts.map +1 -1
  23. package/dist/components/Quote/Quote.styles.d.ts +793 -5
  24. package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
  25. package/dist/components/Quote/Quote.types.d.ts +0 -1
  26. package/dist/components/Quote/Quote.types.d.ts.map +1 -1
  27. package/dist/components/Quote/QuoteSummary.styles.d.ts +157 -0
  28. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -1
  29. package/dist/components/Quote/index.d.ts +0 -1
  30. package/dist/components/Quote/index.d.ts.map +1 -1
  31. package/dist/components/QuoteSkeleton/QuoteSkeleton.d.ts.map +1 -0
  32. package/dist/components/{Quote → QuoteSkeleton}/QuoteSkeleton.styles.d.ts +314 -0
  33. package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts.map +1 -0
  34. package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts.map +1 -0
  35. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts +4 -0
  36. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts.map +1 -0
  37. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts +1571 -0
  38. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts.map +1 -0
  39. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts +6 -0
  40. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts.map +1 -0
  41. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts +4 -0
  42. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts.map +1 -0
  43. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts +786 -0
  44. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts.map +1 -0
  45. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts +4 -0
  46. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts.map +1 -0
  47. package/dist/components/QuoteSkeleton/index.d.ts +4 -0
  48. package/dist/components/QuoteSkeleton/index.d.ts.map +1 -0
  49. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -1
  50. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -1
  51. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
  52. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +1 -0
  53. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -1
  54. package/dist/components/Slippage/Slippage.d.ts.map +1 -1
  55. package/dist/components/Slippage/Slippage.styles.d.ts +158 -0
  56. package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
  57. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  58. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  59. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +1 -1
  60. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
  61. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +628 -0
  62. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
  63. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  64. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  65. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +1 -1
  66. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -1
  67. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +1 -1
  68. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
  69. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
  70. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts +157 -0
  71. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  72. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  73. package/dist/components/TokenList/TokenList.helpers.d.ts +2 -2
  74. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
  75. package/dist/components/TokenList/TokenList.styles.d.ts +1100 -1
  76. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  77. package/dist/components/TokenList/TokenList.types.d.ts +4 -9
  78. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  79. package/dist/components/TokenList/index.d.ts +0 -1
  80. package/dist/components/TokenList/index.d.ts.map +1 -1
  81. package/dist/components/UpdateUrl.d.ts.map +1 -1
  82. package/dist/constants/errors.d.ts.map +1 -1
  83. package/dist/constants/index.d.ts +1 -0
  84. package/dist/constants/index.d.ts.map +1 -1
  85. package/dist/constants/navigationRoutes.d.ts +1 -2
  86. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  87. package/dist/containers/App/App.d.ts +3 -0
  88. package/dist/containers/App/App.d.ts.map +1 -0
  89. package/dist/containers/App/App.styles.d.ts +158 -0
  90. package/dist/containers/App/App.styles.d.ts.map +1 -0
  91. package/dist/containers/App/index.d.ts +2 -0
  92. package/dist/containers/App/index.d.ts.map +1 -0
  93. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -1
  94. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +316 -0
  95. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -1
  96. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +3 -0
  97. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -1
  98. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  99. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  100. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  101. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  102. package/dist/containers/Wallets/index.d.ts +2 -0
  103. package/dist/containers/Wallets/index.d.ts.map +1 -0
  104. package/dist/containers/Widget/Widget.d.ts +5 -0
  105. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  106. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  107. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  108. package/dist/containers/Widget/index.d.ts +3 -0
  109. package/dist/containers/Widget/index.d.ts.map +1 -0
  110. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  111. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  112. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts +20 -0
  113. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts.map +1 -0
  114. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +21 -0
  115. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  116. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  117. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  118. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  119. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  120. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  121. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  122. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  123. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  124. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
  125. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +6 -3
  126. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
  127. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts +1 -1
  128. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -1
  129. package/dist/hooks/useLanguage.d.ts +1 -1
  130. package/dist/hooks/useLanguage.d.ts.map +1 -1
  131. package/dist/hooks/useNavigateBack.d.ts +1 -3
  132. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  133. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  134. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  135. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  136. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +3 -5
  137. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  138. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  139. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  140. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  141. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  142. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  143. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  144. package/dist/hooks/useTheme.d.ts +1 -1
  145. package/dist/hooks/useTheme.d.ts.map +1 -1
  146. package/dist/index.d.ts +20 -8
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +1 -1
  149. package/dist/index.js.map +4 -4
  150. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  151. package/dist/pages/HistoryPage.d.ts.map +1 -1
  152. package/dist/pages/Home.d.ts.map +1 -1
  153. package/dist/pages/LanguagePage.d.ts.map +1 -1
  154. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  155. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  156. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  157. package/dist/pages/SettingsPage.d.ts.map +1 -1
  158. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  159. package/dist/pages/ThemePage.d.ts.map +1 -1
  160. package/dist/pages/WalletsPage.d.ts.map +1 -1
  161. package/dist/store/AppStore.d.ts +37 -1
  162. package/dist/store/AppStore.d.ts.map +1 -1
  163. package/dist/store/app.d.ts +39 -2
  164. package/dist/store/app.d.ts.map +1 -1
  165. package/dist/store/notification.d.ts +4 -3
  166. package/dist/store/notification.d.ts.map +1 -1
  167. package/dist/store/quote.d.ts +9 -9
  168. package/dist/store/quote.d.ts.map +1 -1
  169. package/dist/store/slices/config.d.ts.map +1 -1
  170. package/dist/store/slices/data.d.ts +2 -2
  171. package/dist/store/slices/data.d.ts.map +1 -1
  172. package/dist/store/slices/settings.d.ts +39 -0
  173. package/dist/store/slices/settings.d.ts.map +1 -0
  174. package/dist/store/ui.d.ts +2 -1
  175. package/dist/store/ui.d.ts.map +1 -1
  176. package/dist/store/wallets.d.ts +9 -5
  177. package/dist/store/wallets.d.ts.map +1 -1
  178. package/dist/types/config.d.ts +36 -3
  179. package/dist/types/config.d.ts.map +1 -1
  180. package/dist/types/swap.d.ts +4 -14
  181. package/dist/types/swap.d.ts.map +1 -1
  182. package/dist/types/wallets.d.ts +15 -1
  183. package/dist/types/wallets.d.ts.map +1 -1
  184. package/dist/utils/colors.d.ts.map +1 -1
  185. package/dist/utils/configs.d.ts +1 -0
  186. package/dist/utils/configs.d.ts.map +1 -1
  187. package/dist/utils/meta.d.ts +2 -1
  188. package/dist/utils/meta.d.ts.map +1 -1
  189. package/dist/utils/providers.d.ts +2 -2
  190. package/dist/utils/providers.d.ts.map +1 -1
  191. package/dist/utils/queue.d.ts +2 -2
  192. package/dist/utils/queue.d.ts.map +1 -1
  193. package/dist/utils/quote.d.ts +1 -1
  194. package/dist/utils/quote.d.ts.map +1 -1
  195. package/dist/utils/settings.d.ts +4 -1
  196. package/dist/utils/settings.d.ts.map +1 -1
  197. package/dist/utils/swap.d.ts +13 -5
  198. package/dist/utils/swap.d.ts.map +1 -1
  199. package/dist/utils/time.d.ts +1 -1
  200. package/dist/utils/time.d.ts.map +1 -1
  201. package/dist/utils/wallets.d.ts +7 -8
  202. package/dist/utils/wallets.d.ts.map +1 -1
  203. package/package.json +12 -10
  204. package/src/QueueManager.tsx +4 -3
  205. package/src/components/AppRouter.tsx +2 -27
  206. package/src/components/AppRoutes.tsx +54 -33
  207. package/src/components/BlockchainList/BlockchainList.styles.ts +2 -2
  208. package/src/components/BlockchainsSection/BlockchainsSection.styles.ts +1 -1
  209. package/src/components/BlockchainsSection/BlockchainsSection.tsx +19 -10
  210. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +29 -10
  211. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +15 -7
  212. package/src/components/ConfirmWalletsModal/WalletList.tsx +3 -3
  213. package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
  214. package/src/components/Layout/Layout.styles.ts +2 -0
  215. package/src/components/Layout/Layout.tsx +20 -7
  216. package/src/components/Layout/Layout.types.ts +2 -2
  217. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +65 -61
  218. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +28 -34
  219. package/src/components/NoResult/NoResult.helpers.ts +12 -12
  220. package/src/components/NoResult/NoResult.tsx +2 -5
  221. package/src/components/NotificationContent/NotificationContent.tsx +2 -1
  222. package/src/components/Quote/Quote.styles.ts +49 -12
  223. package/src/components/Quote/Quote.tsx +107 -38
  224. package/src/components/Quote/Quote.types.ts +0 -1
  225. package/src/components/Quote/QuoteSummary.styles.ts +9 -8
  226. package/src/components/Quote/QuoteSummary.tsx +2 -2
  227. package/src/components/Quote/index.ts +0 -1
  228. package/src/components/QuoteSkeleton/QuoteSkeleton.styles.ts +42 -0
  229. package/src/components/QuoteSkeleton/QuoteSkeleton.tsx +30 -0
  230. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.styles.ts +57 -0
  231. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.tsx +76 -0
  232. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.types.ts +6 -0
  233. package/src/components/QuoteSkeleton/StepSkeleton.styles.ts +33 -0
  234. package/src/components/QuoteSkeleton/StepSkeleton.tsx +44 -0
  235. package/src/components/QuoteSkeleton/StepSkeleton.types.ts +1 -0
  236. package/src/components/QuoteSkeleton/index.ts +3 -0
  237. package/src/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx +1 -1
  238. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +11 -4
  239. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts +8 -1
  240. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +13 -13
  241. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +1 -0
  242. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +3 -3
  243. package/src/components/Slippage/Slippage.styles.ts +15 -5
  244. package/src/components/Slippage/Slippage.tsx +11 -10
  245. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -8
  246. package/src/components/SwapDetails/SwapDetails.helpers.tsx +1 -1
  247. package/src/components/SwapDetails/SwapDetails.styles.ts +36 -33
  248. package/src/components/SwapDetails/SwapDetails.tsx +28 -39
  249. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +1 -1
  250. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  251. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  252. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +14 -8
  253. package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +1 -1
  254. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +1 -1
  255. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +1 -1
  256. package/src/components/SwapsGroup/SwapsGroup.styles.ts +10 -1
  257. package/src/components/SwapsGroup/SwapsGroup.tsx +3 -5
  258. package/src/components/TokenList/TokenList.helpers.ts +2 -2
  259. package/src/components/TokenList/TokenList.styles.ts +74 -38
  260. package/src/components/TokenList/TokenList.tsx +30 -20
  261. package/src/components/TokenList/TokenList.types.ts +4 -10
  262. package/src/components/TokenList/index.ts +0 -1
  263. package/src/components/UpdateUrl.tsx +0 -5
  264. package/src/constants/errors.ts +9 -5
  265. package/src/constants/index.ts +1 -0
  266. package/src/constants/navigationRoutes.ts +7 -8
  267. package/src/containers/App/App.styles.ts +18 -0
  268. package/src/containers/App/App.tsx +52 -0
  269. package/src/containers/App/index.ts +1 -0
  270. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +17 -1
  271. package/src/containers/QuoteInfo/QuoteInfo.tsx +46 -44
  272. package/src/containers/QuoteInfo/QuoteInfo.types.ts +3 -0
  273. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +25 -31
  274. package/src/containers/Wallets/Wallets.types.ts +12 -0
  275. package/src/containers/Wallets/index.ts +1 -0
  276. package/src/containers/Widget/Widget.tsx +19 -0
  277. package/src/containers/Widget/Widget.types.ts +5 -0
  278. package/src/containers/Widget/index.ts +2 -0
  279. package/src/containers/WidgetInfo/WidgetInfo.helpers.ts +64 -0
  280. package/src/containers/WidgetInfo/WidgetInfo.tsx +62 -0
  281. package/src/containers/WidgetInfo/WidgetInfo.types.ts +21 -0
  282. package/src/containers/WidgetInfo/index.ts +1 -0
  283. package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
  284. package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
  285. package/src/containers/WidgetProvider/index.ts +1 -0
  286. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +15 -11
  287. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +21 -20
  288. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +1 -1
  289. package/src/hooks/useLanguage.ts +4 -5
  290. package/src/hooks/useNavigateBack.ts +3 -52
  291. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  292. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  293. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  294. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  295. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +15 -6
  296. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  297. package/src/hooks/useSwapInput.ts +86 -28
  298. package/src/hooks/useSyncStoresWithConfig.ts +18 -5
  299. package/src/hooks/useTheme.ts +4 -5
  300. package/src/index.ts +53 -5
  301. package/src/pages/ConfirmSwapPage.tsx +61 -33
  302. package/src/pages/HistoryPage.tsx +2 -7
  303. package/src/pages/Home.tsx +55 -81
  304. package/src/pages/LanguagePage.tsx +0 -5
  305. package/src/pages/LiquiditySourcePage.tsx +3 -7
  306. package/src/pages/SelectBlockchainPage.tsx +26 -18
  307. package/src/pages/SelectSwapItemsPage.tsx +13 -26
  308. package/src/pages/SettingsPage.tsx +26 -17
  309. package/src/pages/SwapDetailsPage.tsx +3 -4
  310. package/src/pages/ThemePage.tsx +2 -7
  311. package/src/pages/WalletsPage.tsx +5 -8
  312. package/src/services/httpService.ts +1 -1
  313. package/src/store/AppStore.tsx +7 -1
  314. package/src/store/app.ts +31 -5
  315. package/src/store/quote.ts +3 -4
  316. package/src/store/slices/config.ts +1 -0
  317. package/src/store/slices/data.ts +10 -6
  318. package/src/store/slices/settings.ts +168 -0
  319. package/src/store/wallets.ts +57 -29
  320. package/src/types/config.ts +48 -3
  321. package/src/types/swap.ts +4 -13
  322. package/src/types/wallets.ts +18 -1
  323. package/src/utils/colors.ts +2 -1
  324. package/src/utils/configs.ts +2 -1
  325. package/src/utils/date.ts +1 -1
  326. package/src/utils/meta.ts +8 -1
  327. package/src/utils/providers.ts +8 -5
  328. package/src/utils/queue.ts +2 -2
  329. package/src/utils/quote.ts +7 -7
  330. package/src/utils/settings.ts +11 -5
  331. package/src/utils/swap.ts +46 -40
  332. package/src/utils/time.ts +1 -1
  333. package/src/utils/wallets.ts +127 -144
  334. package/dist/Wallets.d.ts +0 -18
  335. package/dist/Wallets.d.ts.map +0 -1
  336. package/dist/Widget.d.ts +0 -9
  337. package/dist/Widget.d.ts.map +0 -1
  338. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts +0 -4
  339. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +0 -1
  340. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts +0 -4
  341. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts.map +0 -1
  342. package/dist/components/Quote/QuoteSkeleton.d.ts.map +0 -1
  343. package/dist/components/Quote/QuoteSkeleton.styles.d.ts.map +0 -1
  344. package/dist/components/Quote/QuoteSkeleton.types.d.ts.map +0 -1
  345. package/dist/store/settings.d.ts +0 -82
  346. package/dist/store/settings.d.ts.map +0 -1
  347. package/src/Widget.tsx +0 -106
  348. package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +0 -41
  349. package/src/components/LoadingSwapDetails/LoadingSwapDetails.types.ts +0 -3
  350. package/src/components/Quote/QuoteSkeleton.styles.ts +0 -110
  351. package/src/components/Quote/QuoteSkeleton.tsx +0 -108
  352. package/src/store/settings.ts +0 -161
  353. /package/dist/components/{Quote → QuoteSkeleton}/QuoteSkeleton.d.ts +0 -0
  354. /package/dist/components/{Quote → QuoteSkeleton}/QuoteSkeleton.types.d.ts +0 -0
  355. /package/src/components/{Quote → QuoteSkeleton}/QuoteSkeleton.types.ts +0 -0
@@ -25,6 +25,8 @@ import {
25
25
  PERCENTAGE_CHANGE_MIN_DECIMALS,
26
26
  TOKEN_AMOUNT_MAX_DECIMALS,
27
27
  TOKEN_AMOUNT_MIN_DECIMALS,
28
+ USD_VALUE_MAX_DECIMALS,
29
+ USD_VALUE_MIN_DECIMALS,
28
30
  } from '../../constants/routing';
29
31
  import {
30
32
  FooterAlert,
@@ -32,6 +34,11 @@ import {
32
34
  } from '../../containers/QuoteInfo/QuoteInfo.styles';
33
35
  import { useAppStore } from '../../store/AppStore';
34
36
  import { QuoteErrorType, QuoteWarningType } from '../../types';
37
+ import { getContainer } from '../../utils/common';
38
+ import {
39
+ getBlockchainShortNameFor,
40
+ getSwapperDisplayName,
41
+ } from '../../utils/meta';
35
42
  import {
36
43
  numberToString,
37
44
  secondsToString,
@@ -41,6 +48,9 @@ import { getPriceImpact, getPriceImpactLevel } from '../../utils/quote';
41
48
  import { getTotalFeeInUsd } from '../../utils/swap';
42
49
 
43
50
  import {
51
+ BasicInfoOutput,
52
+ basicInfoStyles,
53
+ ChainImageContainer,
44
54
  Chains,
45
55
  Content,
46
56
  EXPANDABLE_QUOTE_TRANSITION_DURATION,
@@ -48,7 +58,9 @@ import {
48
58
  HorizontalSeparator,
49
59
  IconContainer,
50
60
  QuoteContainer,
61
+ stepsDetailsStyles,
51
62
  SummaryContainer,
63
+ summaryStyles,
52
64
  } from './Quote.styles';
53
65
  import { QuoteSummary } from './QuoteSummary';
54
66
 
@@ -63,19 +75,38 @@ export function Quote(props: QuoteProps) {
63
75
  recommended = true,
64
76
  } = props;
65
77
  const tokens = useAppStore().tokens();
78
+ const blockchains = useAppStore().blockchains();
79
+ const swappers = useAppStore().swappers();
66
80
 
67
81
  const [expanded, setExpanded] = useState(props.expanded);
68
82
  const quoteRef = useRef<HTMLButtonElement | null>(null);
83
+ const prevExpanded = useRef(expanded);
69
84
  const totalFee = numberToString(
70
85
  getTotalFeeInUsd(quote.result?.swaps ?? [], tokens),
71
86
  GAS_FEE_MIN_DECIMALS,
72
87
  GAS_FEE_MAX_DECIMALS
73
88
  );
74
89
  const totalTime = secondsToString(totalArrivalTime(quote.result?.swaps));
75
-
90
+ const roundedInput = numberToString(
91
+ input.value,
92
+ TOKEN_AMOUNT_MIN_DECIMALS,
93
+ TOKEN_AMOUNT_MAX_DECIMALS
94
+ );
95
+ const roundedOutput = numberToString(
96
+ output.value,
97
+ TOKEN_AMOUNT_MIN_DECIMALS,
98
+ TOKEN_AMOUNT_MAX_DECIMALS
99
+ );
100
+ const roundedOutputUsdValue = output.usdValue
101
+ ? numberToString(
102
+ output.usdValue,
103
+ USD_VALUE_MIN_DECIMALS,
104
+ USD_VALUE_MAX_DECIMALS
105
+ )
106
+ : '';
76
107
  const priceImpact = getPriceImpact(input.usdValue, output.usdValue ?? null);
77
108
  const percentageChange = numberToString(
78
- String(priceImpact),
109
+ priceImpact,
79
110
  PERCENTAGE_CHANGE_MIN_DECIMALS,
80
111
  PERCENTAGE_CHANGE_MAX_DECIMALS
81
112
  );
@@ -87,8 +118,8 @@ export function Quote(props: QuoteProps) {
87
118
  const stepHasError =
88
119
  (error?.type === QuoteErrorType.BRIDGE_LIMIT &&
89
120
  error.swap.swapperId === swap.swapperId) ||
90
- (warning?.type === QuoteWarningType.INSUFFICIENT_SLIPPAGE &&
91
- warning.recommendedSlippages?.has(index));
121
+ (error?.type === QuoteErrorType.INSUFFICIENT_SLIPPAGE &&
122
+ error.recommendedSlippages?.has(index));
92
123
  const stepHasWarning =
93
124
  warning?.type === QuoteWarningType.INSUFFICIENT_SLIPPAGE &&
94
125
  warning.recommendedSlippages?.has(index);
@@ -100,11 +131,17 @@ export function Quote(props: QuoteProps) {
100
131
  }
101
132
 
102
133
  return {
103
- swapper: { displayName: swap.swapperId, image: swap.swapperLogo },
134
+ swapper: {
135
+ displayName: getSwapperDisplayName(swap.swapperId, swappers),
136
+ image: swap.swapperLogo,
137
+ },
104
138
  from: {
105
139
  token: { displayName: swap.from.symbol, image: swap.from.logo },
106
140
  chain: {
107
- displayName: swap.from.blockchain,
141
+ displayName: getBlockchainShortNameFor(
142
+ swap.from.blockchain,
143
+ blockchains
144
+ ),
108
145
  image: swap.from.blockchainLogo,
109
146
  },
110
147
  price: {
@@ -115,17 +152,38 @@ export function Quote(props: QuoteProps) {
115
152
  TOKEN_AMOUNT_MIN_DECIMALS,
116
153
  TOKEN_AMOUNT_MAX_DECIMALS
117
154
  )
118
- : swap.fromAmount,
155
+ : numberToString(
156
+ swap.fromAmount,
157
+ TOKEN_AMOUNT_MIN_DECIMALS,
158
+ TOKEN_AMOUNT_MAX_DECIMALS
159
+ ),
160
+ usdValue: numberToString(
161
+ (swap.from.usdPrice ?? 0) * parseFloat(swap.fromAmount),
162
+ USD_VALUE_MIN_DECIMALS,
163
+ USD_VALUE_MAX_DECIMALS
164
+ ),
119
165
  },
120
166
  },
121
167
  to: {
122
168
  token: { displayName: swap.to.symbol, image: swap.to.logo },
123
169
  chain: {
124
- displayName: swap.to.blockchain,
170
+ displayName: getBlockchainShortNameFor(
171
+ swap.to.blockchain,
172
+ blockchains
173
+ ),
125
174
  image: swap.to.blockchainLogo,
126
175
  },
127
176
  price: {
128
- value: swap.toAmount,
177
+ value: numberToString(
178
+ swap.toAmount,
179
+ TOKEN_AMOUNT_MIN_DECIMALS,
180
+ TOKEN_AMOUNT_MAX_DECIMALS
181
+ ),
182
+ usdValue: numberToString(
183
+ (swap.to.usdPrice ?? 0) * parseFloat(swap.toAmount),
184
+ USD_VALUE_MIN_DECIMALS,
185
+ USD_VALUE_MAX_DECIMALS
186
+ ),
129
187
  },
130
188
  },
131
189
  state: stepState,
@@ -183,7 +241,7 @@ export function Quote(props: QuoteProps) {
183
241
  variant="body"
184
242
  color="neutral900">
185
243
  {i18n.t({
186
- id: 'min required Slippage: {minRequiredSlippage}',
244
+ id: 'Minimum required slippage is {minRequiredSlippage}',
187
245
  values: {
188
246
  ...(error?.type ===
189
247
  QuoteErrorType.INSUFFICIENT_SLIPPAGE && {
@@ -209,14 +267,16 @@ export function Quote(props: QuoteProps) {
209
267
  };
210
268
  const steps = getQuoteSteps(quote.result?.swaps ?? []);
211
269
  const numberOfSteps = steps.length;
270
+ const tooltipContainer = getContainer();
212
271
 
213
272
  useLayoutEffect(() => {
214
- if (expanded && quoteRef.current) {
273
+ if (expanded && !prevExpanded.current && quoteRef.current) {
215
274
  setTimeout(() => {
216
275
  quoteRef?.current?.scrollIntoView({ behavior: 'smooth' });
217
276
  }, EXPANDABLE_QUOTE_TRANSITION_DURATION);
218
277
  }
219
- }, [expanded]);
278
+ prevExpanded.current = expanded;
279
+ }, [expanded, prevExpanded]);
220
280
 
221
281
  return (
222
282
  <>
@@ -224,27 +284,26 @@ export function Quote(props: QuoteProps) {
224
284
  recommended={recommended}
225
285
  listItem={type === 'list-item'}
226
286
  basic={type === 'basic'}>
227
- <div className="summary">
287
+ <div className={summaryStyles()}>
228
288
  <QuoteCost fee={totalFee} time={totalTime} steps={numberOfSteps} />
229
289
  {type === 'basic' && (
230
- <div className="basic-info">
290
+ <div className={basicInfoStyles()}>
231
291
  <FrameIcon>
232
292
  <InfoIcon size={12} color="gray" />
233
293
  </FrameIcon>
234
- <Typography
235
- size="small"
236
- variant="body"
237
- style={{ letterSpacing: 0.4 }}>
238
- {`${input.value} ${steps[0].from.token.displayName} = ${
239
- output.value
240
- } ${steps[steps.length - 1].to.token.displayName}`}
241
- </Typography>
294
+ <BasicInfoOutput size="small" variant="body">
295
+ {`${roundedInput} ${
296
+ steps[0].from.token.displayName
297
+ } = ${roundedOutput} ${
298
+ steps[steps.length - 1].to.token.displayName
299
+ }`}
300
+ </BasicInfoOutput>
242
301
  <Typography
243
302
  color="$neutral600"
244
303
  ml={2}
245
304
  size="xsmall"
246
305
  variant="body">
247
- {`($${output.usdValue})`}
306
+ {`($${roundedOutputUsdValue})`}
248
307
  </Typography>
249
308
  </div>
250
309
  )}
@@ -252,7 +311,7 @@ export function Quote(props: QuoteProps) {
252
311
  <TokenAmount
253
312
  type="output"
254
313
  direction="vertical"
255
- price={{ value: output.value, usdValue: output.usdValue }}
314
+ price={{ value: roundedOutput, usdValue: roundedOutputUsdValue }}
256
315
  token={{
257
316
  displayName: steps[numberOfSteps - 1].to.token.displayName,
258
317
  image: steps[numberOfSteps - 1].to.token.image,
@@ -281,38 +340,48 @@ export function Quote(props: QuoteProps) {
281
340
  <Chains
282
341
  ref={(ref) => (quoteRef.current = ref)}
283
342
  recommended={recommended}
284
- onClick={setExpanded.bind(null, (prevState) => !prevState)}>
343
+ onClick={() => setExpanded((prevState) => !prevState)}>
285
344
  <div>
286
345
  {steps.map((step, index) => {
287
346
  const key = `item-${index}`;
347
+ const arrow = (
348
+ <IconContainer>
349
+ <ChevronRightIcon
350
+ size={12}
351
+ color="black"
352
+ {...(step.state && {
353
+ color: step.state === 'error' ? 'error' : 'warning',
354
+ })}
355
+ />
356
+ </IconContainer>
357
+ );
288
358
  return (
289
359
  <React.Fragment key={key}>
290
360
  <Tooltip
291
- container={props.tooltipContainer}
361
+ container={tooltipContainer}
292
362
  side="bottom"
293
363
  sideOffset={4}
294
364
  content={step.from.chain.displayName}>
295
- <Image src={step.from.chain.image} size={16} />
365
+ <ChainImageContainer
366
+ state={step.state || steps[index - 1]?.state}>
367
+ <Image src={step.from.chain.image} size={16} />
368
+ </ChainImageContainer>
296
369
  </Tooltip>
297
370
  {index === numberOfSteps - 1 && (
298
371
  <>
299
- <IconContainer>
300
- <ChevronRightIcon size={12} color="black" />
301
- </IconContainer>
372
+ {arrow}
302
373
  <Tooltip
303
- container={props.tooltipContainer}
374
+ container={tooltipContainer}
304
375
  side="bottom"
305
376
  sideOffset={4}
306
377
  content={step.to.chain.displayName}>
307
- <Image src={step.to.chain.image} size={16} />
378
+ <ChainImageContainer state={step.state}>
379
+ <Image src={step.to.chain.image} size={16} />
380
+ </ChainImageContainer>
308
381
  </Tooltip>
309
382
  </>
310
383
  )}
311
- {index !== numberOfSteps - 1 && (
312
- <IconContainer>
313
- <ChevronRightIcon size={12} color="black" />
314
- </IconContainer>
315
- )}
384
+ {index !== numberOfSteps - 1 && <>{arrow}</>}
316
385
  </React.Fragment>
317
386
  );
318
387
  })}
@@ -323,7 +392,7 @@ export function Quote(props: QuoteProps) {
323
392
  </Chains>
324
393
  <Content open={expanded}>
325
394
  <HorizontalSeparator />
326
- <div className="steps-details">
395
+ <div className={stepsDetailsStyles()}>
327
396
  {steps.map((step, index) => {
328
397
  const key = `item-${index}`;
329
398
  return (
@@ -12,5 +12,4 @@ export type QuoteProps = {
12
12
  input: { value: string; usdValue: string };
13
13
  output: { value: string; usdValue?: string };
14
14
  expanded?: boolean;
15
- tooltipContainer?: HTMLElement;
16
15
  };
@@ -1,15 +1,16 @@
1
- import { styled } from '@rango-dev/ui';
1
+ import { css, styled } from '@rango-dev/ui';
2
2
 
3
3
  export const Container = styled('div', {
4
4
  position: 'relative',
5
5
  display: 'flex',
6
6
  flexDirection: 'column',
7
7
  width: '100%',
8
- '& .separator': {
9
- height: '14px',
10
- marginLeft: '14px',
11
- position: 'absolute',
12
- borderLeft: '1px solid $foreground',
13
- top: '42%',
14
- },
8
+ });
9
+
10
+ export const separatorStyles = css({
11
+ height: '14px',
12
+ marginLeft: '14px',
13
+ position: 'absolute',
14
+ borderLeft: '1px solid $foreground',
15
+ top: '42%',
15
16
  });
@@ -3,7 +3,7 @@ import type { PriceImpactWarningLevel, Step } from '@rango-dev/ui';
3
3
  import { TokenAmount } from '@rango-dev/ui';
4
4
  import React from 'react';
5
5
 
6
- import { Container } from './QuoteSummary.styles';
6
+ import { Container, separatorStyles } from './QuoteSummary.styles';
7
7
 
8
8
  type PropTypes = {
9
9
  from: Step['from'];
@@ -27,7 +27,7 @@ export function QuoteSummary(props: PropTypes) {
27
27
  }}
28
28
  chain={{ image: from.chain.image }}
29
29
  />
30
- <div className="separator" />
30
+ <div className={separatorStyles()} />
31
31
  <TokenAmount
32
32
  direction="horizontal"
33
33
  label="Estimated output"
@@ -1,3 +1,2 @@
1
1
  export { Quote } from './Quote';
2
- export { QuoteSkeleton } from './QuoteSkeleton';
3
2
  export { QuoteSummary } from './QuoteSummary';
@@ -0,0 +1,42 @@
1
+ import { darkTheme, styled } from '@rango-dev/ui';
2
+
3
+ export const Container = styled('div', {
4
+ $$color: '$colors$neutral100',
5
+ [`.${darkTheme} &`]: {
6
+ $$color: '$colors$neutral300',
7
+ },
8
+ backgroundColor: '$$color',
9
+ borderBottomLeftRadius: '$xm',
10
+ borderBottomRightRadius: '$xm',
11
+ padding: '$15 ',
12
+ variants: {
13
+ rounded: {
14
+ true: {
15
+ borderRadius: '$xm',
16
+ },
17
+ },
18
+ },
19
+ });
20
+
21
+ export const Chains = styled('div', {
22
+ paddingTop: '$2',
23
+ });
24
+
25
+ export const Steps = styled('div', {
26
+ paddingLeft: '$8',
27
+ });
28
+
29
+ export const StepSeparator = styled('div', {
30
+ borderLeft: '1px dashed black',
31
+ minHeight: ' 0',
32
+ margin: '0px 11.5px',
33
+ alignSelf: 'stretch',
34
+ variants: {
35
+ hideSeparator: {
36
+ true: {
37
+ minHeight: 'unset',
38
+ height: '0',
39
+ },
40
+ },
41
+ },
42
+ });
@@ -0,0 +1,30 @@
1
+ import type { PropTypes } from './QuoteSkeleton.types';
2
+
3
+ import { Divider, Skeleton } from '@rango-dev/ui';
4
+ import React from 'react';
5
+
6
+ import { Chains, Container, Steps } from './QuoteSkeleton.styles';
7
+ import { QuoteSummarySkeleton } from './QuoteSummarySkeleton';
8
+ import { StepSkeleton } from './StepSkeleton';
9
+
10
+ export function QuoteSkeleton(props: PropTypes) {
11
+ const { type, expanded, tag = false } = props;
12
+
13
+ return (
14
+ <Container rounded={type !== 'basic'}>
15
+ <QuoteSummarySkeleton type={type} tag={tag} />
16
+ <Chains>
17
+ <Skeleton height={15} variant="rounded" />
18
+ </Chains>
19
+
20
+ {expanded && (
21
+ <Steps>
22
+ <Divider size={20} />
23
+ <StepSkeleton />
24
+ <StepSkeleton />
25
+ <StepSkeleton separator={false} />
26
+ </Steps>
27
+ )}
28
+ </Container>
29
+ );
30
+ }
@@ -0,0 +1,57 @@
1
+ import { styled } from '@rango-dev/ui';
2
+
3
+ export const CostAndTag = styled('div', {
4
+ display: 'flex',
5
+ justifyContent: 'space-between',
6
+ alignItems: 'center',
7
+ height: '22px',
8
+ });
9
+
10
+ export const Cost = styled('div', {
11
+ display: 'flex',
12
+ });
13
+
14
+ export const BasicSummary = styled('div', {
15
+ padding: '$15 $0 14px $0',
16
+ });
17
+
18
+ export const Output = styled('div', {
19
+ padding: '$6 $0 $15 $0',
20
+ display: 'flex',
21
+ flexDirection: 'column',
22
+ });
23
+
24
+ export const OutputTokenInfo = styled('div', {
25
+ display: 'flex',
26
+ justifyContent: 'start',
27
+ alignItems: 'center',
28
+ paddingBottom: '$5',
29
+ });
30
+
31
+ export const QuoteSummary = styled('div', {
32
+ display: 'flex',
33
+ justifyContent: 'space-between',
34
+ alignItems: 'end',
35
+ });
36
+
37
+ export const QuoteSummarySeparator = styled('div', {
38
+ height: '$28',
39
+ marginLeft: '13px',
40
+ borderLeft: '1px solid $neutral700',
41
+ });
42
+
43
+ export const TokenAmount = styled('div', {
44
+ width: '65%',
45
+ display: 'flex',
46
+ justifyContent: 'start',
47
+ });
48
+
49
+ export const TokenAmountLabel = styled('div', {
50
+ display: 'flex',
51
+ flexDirection: 'column',
52
+ alignItems: 'start',
53
+ flexGrow: 1,
54
+ maxWidth: '148px',
55
+ });
56
+
57
+ export const SwapPreview = styled('div', { padding: '$15 $0 $15 $0' });
@@ -0,0 +1,76 @@
1
+ import type { PropTypes } from './QuoteSummarySkeleton.types';
2
+
3
+ import { ChainToken, Divider, Skeleton } from '@rango-dev/ui';
4
+ import React from 'react';
5
+
6
+ import {
7
+ BasicSummary,
8
+ Cost,
9
+ CostAndTag,
10
+ Output,
11
+ OutputTokenInfo,
12
+ QuoteSummary,
13
+ QuoteSummarySeparator,
14
+ SwapPreview,
15
+ TokenAmount,
16
+ TokenAmountLabel,
17
+ } from './QuoteSummarySkeleton.styles';
18
+
19
+ export function QuoteSummarySkeleton(props: PropTypes) {
20
+ const { type, tag = false } = props;
21
+ const quotePreview = (
22
+ <QuoteSummary>
23
+ <TokenAmount>
24
+ <ChainToken loading size="medium" chainImage="" tokenImage="" />
25
+ <Divider size={8} direction="horizontal" />
26
+ <TokenAmountLabel>
27
+ <Skeleton height={10} width={60} variant="rounded" />
28
+ <Divider size={4} />
29
+ <Skeleton height={15} variant="rounded" />
30
+ </TokenAmountLabel>
31
+ </TokenAmount>
32
+ <Skeleton height={12} width={64} variant="rounded" />
33
+ </QuoteSummary>
34
+ );
35
+
36
+ return (
37
+ <div>
38
+ <CostAndTag>
39
+ <Cost>
40
+ <Skeleton width={60} height={10} variant="rounded" />
41
+ <Divider size={4} direction="horizontal" />
42
+ <Skeleton width={60} height={10} variant="rounded" />
43
+ <Divider size={4} direction="horizontal" />
44
+ <Skeleton width={60} height={10} variant="rounded" />
45
+ </Cost>
46
+ {tag && <Skeleton height={22} width={100} variant="rounded" />}
47
+ </CostAndTag>
48
+ {type === 'basic' && (
49
+ <BasicSummary>
50
+ <Skeleton height={15} width={148} variant="rounded" />
51
+ </BasicSummary>
52
+ )}
53
+ {type === 'list-item' && (
54
+ <Output>
55
+ <OutputTokenInfo>
56
+ <ChainToken loading size="medium" chainImage="" tokenImage="" />
57
+ <Divider direction="horizontal" size={4} />
58
+ <Skeleton height={15} width={150} variant="rounded" />
59
+ </OutputTokenInfo>
60
+ <Divider size={4} />
61
+ <Skeleton height={10} width={184} variant="rounded" />
62
+ </Output>
63
+ )}
64
+ {type === 'swap-preview' && (
65
+ <>
66
+ <Divider size={4} />
67
+ <SwapPreview>
68
+ {quotePreview}
69
+ <QuoteSummarySeparator />
70
+ {quotePreview}
71
+ </SwapPreview>
72
+ </>
73
+ )}
74
+ </div>
75
+ );
76
+ }
@@ -0,0 +1,6 @@
1
+ import type { QuoteProps } from '../Quote/Quote.types';
2
+
3
+ export type PropTypes = {
4
+ type: QuoteProps['type'];
5
+ tag?: boolean;
6
+ };
@@ -0,0 +1,33 @@
1
+ import { styled } from '@rango-dev/ui';
2
+
3
+ export const StepContent = styled('div', {
4
+ display: 'flex',
5
+ alignItems: 'start',
6
+ });
7
+
8
+ export const StepTokens = styled('div', {
9
+ flexGrow: 1,
10
+ paddingTop: '$5',
11
+ paddingBottom: '$10',
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ });
15
+
16
+ export const StepTokenInfo = styled('div', {
17
+ display: 'flex',
18
+ alignItems: 'center',
19
+ flexGrow: 1,
20
+ });
21
+
22
+ export const StepIconContainer = styled('div', {
23
+ margin: '$0 $2',
24
+ padding: '$4',
25
+ display: 'flex',
26
+ justifyContent: 'center',
27
+ alignItems: 'center',
28
+ });
29
+
30
+ export const StepTitle = styled('div', {
31
+ display: 'flex',
32
+ alignItems: 'center',
33
+ });
@@ -0,0 +1,44 @@
1
+ import type { PropTypes } from './StepSkeleton.types';
2
+
3
+ import { ChainToken, Divider, NextIcon, Skeleton } from '@rango-dev/ui';
4
+ import React from 'react';
5
+
6
+ import { StepSeparator } from './QuoteSkeleton.styles';
7
+ import {
8
+ StepContent,
9
+ StepIconContainer,
10
+ StepTitle,
11
+ StepTokenInfo,
12
+ StepTokens,
13
+ } from './StepSkeleton.styles';
14
+
15
+ export function StepSkeleton(props: PropTypes) {
16
+ const { separator = true } = props;
17
+ return (
18
+ <>
19
+ <StepTitle>
20
+ <Skeleton height={22} width={22} variant="circular" />
21
+ <Divider direction="horizontal" size={8} />
22
+ <Skeleton height={15} width={148} variant="rounded" />
23
+ </StepTitle>
24
+ <StepContent>
25
+ <StepSeparator hideSeparator={!separator} />
26
+ <StepTokens>
27
+ <StepTokenInfo>
28
+ <ChainToken size="small" loading chainImage="" tokenImage="" />
29
+ <Divider direction="horizontal" size={8} />
30
+ <Skeleton height={12} variant="rounded" />
31
+ </StepTokenInfo>
32
+ <StepIconContainer>
33
+ <NextIcon color="gray" size={16} />
34
+ </StepIconContainer>
35
+ <StepTokenInfo>
36
+ <ChainToken size="small" loading chainImage="" tokenImage="" />
37
+ <Divider direction="horizontal" size={8} />
38
+ <Skeleton height={12} variant="rounded" />
39
+ </StepTokenInfo>
40
+ </StepTokens>
41
+ </StepContent>
42
+ </>
43
+ );
44
+ }
@@ -0,0 +1 @@
1
+ export type PropTypes = { separator?: boolean };
@@ -0,0 +1,3 @@
1
+ export { QuoteSkeleton } from './QuoteSkeleton';
2
+ export { StepSkeleton } from './StepSkeleton';
3
+ export { QuoteSummarySkeleton } from './QuoteSummarySkeleton';
@@ -10,7 +10,7 @@ export function QuoteErrorsModalItem(props: ModalContentData) {
10
10
 
11
11
  return (
12
12
  <Item>
13
- <Typography size="medium" variant="label" color="neutral600">
13
+ <Typography size="medium" variant="label" className="_title">
14
14
  {title}
15
15
  </Typography>
16
16
  <Typography