@rango-dev/ui 0.1.10-next.69

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 (349) hide show
  1. package/README.md +181 -0
  2. package/dist/components/Alert/Alert.d.ts +6 -0
  3. package/dist/components/Alert/Alert.stories.d.ts +4 -0
  4. package/dist/components/Alert/index.d.ts +1 -0
  5. package/dist/components/BestRoute/BestRoute.d.ts +8 -0
  6. package/dist/components/BestRoute/BestRoute.stories.d.ts +8 -0
  7. package/dist/components/BestRoute/index.d.ts +1 -0
  8. package/dist/components/BestRoute/mock.d.ts +4 -0
  9. package/dist/components/BlockchainSelector/BlockchainSelector.d.ts +14 -0
  10. package/dist/components/BlockchainSelector/BlockchainSelector.stories.d.ts +4 -0
  11. package/dist/components/BlockchainSelector/index.d.ts +1 -0
  12. package/dist/components/BlockchainsList/BlockchainsList.d.ts +7 -0
  13. package/dist/components/BlockchainsList/BlockchainsList.stories.d.ts +4 -0
  14. package/dist/components/BlockchainsList/index.d.ts +1 -0
  15. package/dist/components/BlockchainsList/mockData.d.ts +2 -0
  16. package/dist/components/Button/Button.d.ts +17 -0
  17. package/dist/components/Button/Button.stories.d.ts +8 -0
  18. package/dist/components/Button/index.d.ts +1 -0
  19. package/dist/components/Checkbox/Checkbox.d.ts +11 -0
  20. package/dist/components/Checkbox/Checkbox.stories.d.ts +5 -0
  21. package/dist/components/Checkbox/index.d.ts +1 -0
  22. package/dist/components/Chip/Chip.d.ts +12 -0
  23. package/dist/components/Chip/Chip.stories.d.ts +6 -0
  24. package/dist/components/Chip/index.d.ts +1 -0
  25. package/dist/components/ConnectWalletsModal/ConnectWallets.stories.d.ts +4 -0
  26. package/dist/components/ConnectWalletsModal/ConnectWalletsModal.d.ts +10 -0
  27. package/dist/components/ConnectWalletsModal/index.d.ts +1 -0
  28. package/dist/components/ConnectWalletsModal/mockData.d.ts +2 -0
  29. package/dist/components/Drawer/Drawer.d.ts +12 -0
  30. package/dist/components/Drawer/Drawer.stories.d.ts +7 -0
  31. package/dist/components/Drawer/index.d.ts +1 -0
  32. package/dist/components/Icon/AddCircleIcon.d.ts +3 -0
  33. package/dist/components/Icon/AddIcon.d.ts +3 -0
  34. package/dist/components/Icon/AddWalletIcon.d.ts +3 -0
  35. package/dist/components/Icon/AngleDownIcon.d.ts +3 -0
  36. package/dist/components/Icon/AngleLeftIcon.d.ts +3 -0
  37. package/dist/components/Icon/AngleRightIcon.d.ts +3 -0
  38. package/dist/components/Icon/AngleUpIcon.d.ts +3 -0
  39. package/dist/components/Icon/BagIcon.d.ts +3 -0
  40. package/dist/components/Icon/BanIcon.d.ts +3 -0
  41. package/dist/components/Icon/CheckCircleIcon.d.ts +3 -0
  42. package/dist/components/Icon/CheckIcon.d.ts +3 -0
  43. package/dist/components/Icon/CheckSquareIcon.d.ts +3 -0
  44. package/dist/components/Icon/CheckWalletIcon.d.ts +3 -0
  45. package/dist/components/Icon/CloseIcon.d.ts +1 -0
  46. package/dist/components/Icon/DeleteCircleIcon.d.ts +3 -0
  47. package/dist/components/Icon/DeleteWalletIcon.d.ts +3 -0
  48. package/dist/components/Icon/DownloadIcon.d.ts +3 -0
  49. package/dist/components/Icon/GasIcon.d.ts +3 -0
  50. package/dist/components/Icon/HistoryIcon.d.ts +3 -0
  51. package/dist/components/Icon/HorizontalSwapIcon.d.ts +3 -0
  52. package/dist/components/Icon/Icons.stories.d.ts +5 -0
  53. package/dist/components/Icon/InfoCircleIcon.d.ts +3 -0
  54. package/dist/components/Icon/MinusCircleIcon.d.ts +3 -0
  55. package/dist/components/Icon/RetryIcon.d.ts +3 -0
  56. package/dist/components/Icon/RetryLeftIcon.d.ts +3 -0
  57. package/dist/components/Icon/RetryRightIcon.d.ts +3 -0
  58. package/dist/components/Icon/SearchIcon.d.ts +3 -0
  59. package/dist/components/Icon/SearchMinusIcon.d.ts +3 -0
  60. package/dist/components/Icon/SettingIcon.d.ts +3 -0
  61. package/dist/components/Icon/SignatureIcon.d.ts +3 -0
  62. package/dist/components/Icon/SwapWalletIcon.d.ts +3 -0
  63. package/dist/components/Icon/TimeIcon.d.ts +3 -0
  64. package/dist/components/Icon/TrashIcon.d.ts +3 -0
  65. package/dist/components/Icon/TryAgainIcon.d.ts +3 -0
  66. package/dist/components/Icon/VerticalSwapIcon.d.ts +3 -0
  67. package/dist/components/Icon/WalletIconIcon.d.ts +3 -0
  68. package/dist/components/Icon/WarningIcon.d.ts +3 -0
  69. package/dist/components/Icon/common.d.ts +2 -0
  70. package/dist/components/Icon/index.d.ts +36 -0
  71. package/dist/components/Icon/types.d.ts +6 -0
  72. package/dist/components/LiquiditySourceList/LiquiditySource.stories.d.ts +4 -0
  73. package/dist/components/LiquiditySourceList/LiquiditySourceList.d.ts +8 -0
  74. package/dist/components/LiquiditySourceList/index.d.ts +1 -0
  75. package/dist/components/LiquiditySourceList/mockData.d.ts +2 -0
  76. package/dist/components/LiquiditySourcesSelector/LiquiditySourcesSelector.d.ts +11 -0
  77. package/dist/components/LiquiditySourcesSelector/LiquiditySourcesSelector.stories.d.ts +4 -0
  78. package/dist/components/LiquiditySourcesSelector/index.d.ts +1 -0
  79. package/dist/components/Modal/Modal.d.ts +11 -0
  80. package/dist/components/Modal/Modal.stories.d.ts +4 -0
  81. package/dist/components/Modal/index.d.ts +1 -0
  82. package/dist/components/Radio/Radio.d.ts +12 -0
  83. package/dist/components/Radio/Radio.stories.d.ts +4 -0
  84. package/dist/components/Radio/index.d.ts +1 -0
  85. package/dist/components/SecondaryPage/SecondaryPage.d.ts +18 -0
  86. package/dist/components/SecondaryPage/SecondaryPage.stories.d.ts +2 -0
  87. package/dist/components/SecondaryPage/index.d.ts +1 -0
  88. package/dist/components/SelectableWalletList/SelectableWalletList.d.ts +7 -0
  89. package/dist/components/SelectableWalletList/SelectableWalletList.stories.d.ts +5 -0
  90. package/dist/components/SelectableWalletList/index.d.ts +1 -0
  91. package/dist/components/SelectableWalletList/mock.d.ts +2 -0
  92. package/dist/components/Settings/Settings.d.ts +19 -0
  93. package/dist/components/Settings/Settings.stories.d.ts +4 -0
  94. package/dist/components/Settings/index.d.ts +1 -0
  95. package/dist/components/Skeleton/Skeleton.d.ts +5 -0
  96. package/dist/components/Skeleton/Skeleton.stories.d.ts +4 -0
  97. package/dist/components/Skeleton/index.d.ts +1 -0
  98. package/dist/components/Spacer/Spacer.d.ts +5 -0
  99. package/dist/components/Spacer/Spacer.stories.d.ts +4 -0
  100. package/dist/components/Spacer/index.d.ts +1 -0
  101. package/dist/components/Spinner/Spinner.d.ts +5 -0
  102. package/dist/components/Spinner/Spinner.stories.d.ts +4 -0
  103. package/dist/components/Spinner/index.d.ts +1 -0
  104. package/dist/components/StatusDrawer/StatusDrawer.d.ts +11 -0
  105. package/dist/components/StatusDrawer/StatusDrawer.stories.d.ts +4 -0
  106. package/dist/components/StatusDrawer/index.d.ts +1 -0
  107. package/dist/components/StepDetail/StepDetail.d.ts +10 -0
  108. package/dist/components/StepDetail/StepDetail.stories.d.ts +5 -0
  109. package/dist/components/StepDetail/index.d.ts +1 -0
  110. package/dist/components/SwapContainer/SwapContainer.d.ts +6 -0
  111. package/dist/components/SwapContainer/SwapContainer.stories.d.ts +5 -0
  112. package/dist/components/SwapContainer/index.d.ts +1 -0
  113. package/dist/components/SwapDetail/SwapDetail.d.ts +8 -0
  114. package/dist/components/SwapDetail/SwapDetail.stories.d.ts +5 -0
  115. package/dist/components/SwapDetail/index.d.ts +1 -0
  116. package/dist/components/SwapDetail/mock.d.ts +2 -0
  117. package/dist/components/Switch/Switch.d.ts +5 -0
  118. package/dist/components/Switch/Switch.stories.d.ts +4 -0
  119. package/dist/components/Switch/index.d.ts +1 -0
  120. package/dist/components/TextField/TextField.d.ts +10 -0
  121. package/dist/components/TextField/TextField.stories.d.ts +7 -0
  122. package/dist/components/TextField/index.d.ts +1 -0
  123. package/dist/components/TokenList/TokenList.d.ts +14 -0
  124. package/dist/components/TokenList/TokenList.stories.d.ts +4 -0
  125. package/dist/components/TokenList/index.d.ts +1 -0
  126. package/dist/components/TokenList/mockData.d.ts +2 -0
  127. package/dist/components/TokenSelector/TokenSelector.d.ts +10 -0
  128. package/dist/components/TokenSelector/TokenSelector.stories.d.ts +4 -0
  129. package/dist/components/TokenSelector/index.d.ts +1 -0
  130. package/dist/components/Tooltip/Tooltip.d.ts +7 -0
  131. package/dist/components/Tooltip/Tooltip.stories.d.ts +5 -0
  132. package/dist/components/Tooltip/index.d.ts +1 -0
  133. package/dist/components/Typography/Typography.d.ts +14 -0
  134. package/dist/components/Typography/Typography.stories.d.ts +5 -0
  135. package/dist/components/Typography/index.d.ts +1 -0
  136. package/dist/components/VirtualizedList/VirtualizedList.d.ts +18 -0
  137. package/dist/components/Wallet/State.d.ts +6 -0
  138. package/dist/components/Wallet/Wallet.d.ts +6 -0
  139. package/dist/components/Wallet/Wallet.stories.d.ts +4 -0
  140. package/dist/components/Wallet/index.d.ts +1 -0
  141. package/dist/components/common/FilledCircle.d.ts +1 -0
  142. package/dist/components/common/index.d.ts +1 -0
  143. package/dist/components/index.d.ts +24 -0
  144. package/dist/containers/ConfirmSwap/ConfirmSwap.d.ts +23 -0
  145. package/dist/containers/ConfirmSwap/ConfirmSwap.stories.d.ts +5 -0
  146. package/dist/containers/ConfirmSwap/index.d.ts +1 -0
  147. package/dist/containers/ConfirmSwap/mock.d.ts +2 -0
  148. package/dist/containers/ConfirmWallets/ConfirmWallets.d.ts +14 -0
  149. package/dist/containers/ConfirmWallets/ConfirmWallets.stories.d.ts +6 -0
  150. package/dist/containers/ConfirmWallets/index.d.ts +1 -0
  151. package/dist/containers/ConfirmWallets/mock.d.ts +5 -0
  152. package/dist/containers/ConfirmWallets/types.d.ts +8 -0
  153. package/dist/containers/History/History.d.ts +8 -0
  154. package/dist/containers/History/History.stories.d.ts +5 -0
  155. package/dist/containers/History/index.d.ts +1 -0
  156. package/dist/containers/History/mock.d.ts +2 -0
  157. package/dist/containers/History/types.d.ts +59 -0
  158. package/dist/containers/SwapHistory/SwapHistory.d.ts +7 -0
  159. package/dist/containers/SwapHistory/SwapHistory.stories.d.ts +4 -0
  160. package/dist/containers/SwapHistory/index.d.ts +1 -0
  161. package/dist/containers/SwapHistory/mock.d.ts +2 -0
  162. package/dist/containers/index.d.ts +4 -0
  163. package/dist/helper/index.d.ts +6 -0
  164. package/dist/helper/swaps.d.ts +5 -0
  165. package/dist/helpers.d.ts +1 -0
  166. package/dist/index.d.ts +4 -0
  167. package/dist/index.js +8 -0
  168. package/dist/theme.d.ts +8 -0
  169. package/dist/types/index.d.ts +1 -0
  170. package/dist/types/meta.d.ts +22 -0
  171. package/dist/types/swaps.d.ts +22 -0
  172. package/dist/types/wallet.d.ts +14 -0
  173. package/dist/ui.cjs.development.js +4103 -0
  174. package/dist/ui.cjs.development.js.map +1 -0
  175. package/dist/ui.cjs.production.min.js +2 -0
  176. package/dist/ui.cjs.production.min.js.map +1 -0
  177. package/dist/ui.esm.js +4028 -0
  178. package/dist/ui.esm.js.map +1 -0
  179. package/package.json +89 -0
  180. package/src/components/Alert/Alert.stories.tsx +22 -0
  181. package/src/components/Alert/Alert.tsx +78 -0
  182. package/src/components/Alert/index.ts +1 -0
  183. package/src/components/BestRoute/BestRoute.stories.tsx +31 -0
  184. package/src/components/BestRoute/BestRoute.tsx +189 -0
  185. package/src/components/BestRoute/index.ts +1 -0
  186. package/src/components/BestRoute/mock.ts +544 -0
  187. package/src/components/BlockchainSelector/BlockchainSelector.stories.tsx +25 -0
  188. package/src/components/BlockchainSelector/BlockchainSelector.tsx +93 -0
  189. package/src/components/BlockchainSelector/index.ts +1 -0
  190. package/src/components/BlockchainsList/BlockchainsList.stories.tsx +25 -0
  191. package/src/components/BlockchainsList/BlockchainsList.tsx +60 -0
  192. package/src/components/BlockchainsList/index.ts +1 -0
  193. package/src/components/BlockchainsList/mockData.ts +2972 -0
  194. package/src/components/Button/Button.stories.tsx +59 -0
  195. package/src/components/Button/Button.tsx +407 -0
  196. package/src/components/Button/index.ts +1 -0
  197. package/src/components/Checkbox/Checkbox.stories.tsx +22 -0
  198. package/src/components/Checkbox/Checkbox.tsx +54 -0
  199. package/src/components/Checkbox/index.ts +1 -0
  200. package/src/components/Chip/Chip.stories.tsx +37 -0
  201. package/src/components/Chip/Chip.tsx +45 -0
  202. package/src/components/Chip/index.ts +1 -0
  203. package/src/components/ConnectWalletsModal/ConnectWallets.stories.tsx +13 -0
  204. package/src/components/ConnectWalletsModal/ConnectWalletsModal.tsx +42 -0
  205. package/src/components/ConnectWalletsModal/index.ts +1 -0
  206. package/src/components/ConnectWalletsModal/mockData.ts +118 -0
  207. package/src/components/Drawer/Drawer.stories.tsx +86 -0
  208. package/src/components/Drawer/Drawer.tsx +128 -0
  209. package/src/components/Drawer/index.ts +1 -0
  210. package/src/components/Icon/AddCircleIcon.tsx +29 -0
  211. package/src/components/Icon/AddIcon.tsx +28 -0
  212. package/src/components/Icon/AddWalletIcon.tsx +48 -0
  213. package/src/components/Icon/AngleDownIcon.tsx +30 -0
  214. package/src/components/Icon/AngleLeftIcon.tsx +31 -0
  215. package/src/components/Icon/AngleRightIcon.tsx +30 -0
  216. package/src/components/Icon/AngleUpIcon.tsx +30 -0
  217. package/src/components/Icon/BagIcon.tsx +37 -0
  218. package/src/components/Icon/BanIcon.tsx +30 -0
  219. package/src/components/Icon/CheckCircleIcon.tsx +37 -0
  220. package/src/components/Icon/CheckIcon.tsx +28 -0
  221. package/src/components/Icon/CheckSquareIcon.tsx +35 -0
  222. package/src/components/Icon/CheckWalletIcon.tsx +43 -0
  223. package/src/components/Icon/CloseIcon.tsx +9 -0
  224. package/src/components/Icon/DeleteCircleIcon.tsx +29 -0
  225. package/src/components/Icon/DeleteWalletIcon.tsx +48 -0
  226. package/src/components/Icon/DownloadIcon.tsx +35 -0
  227. package/src/components/Icon/GasIcon.tsx +35 -0
  228. package/src/components/Icon/HistoryIcon.tsx +38 -0
  229. package/src/components/Icon/HorizontalSwapIcon.tsx +36 -0
  230. package/src/components/Icon/Icons.stories.tsx +44 -0
  231. package/src/components/Icon/InfoCircleIcon.tsx +37 -0
  232. package/src/components/Icon/MinusCircleIcon.tsx +29 -0
  233. package/src/components/Icon/RetryIcon.tsx +30 -0
  234. package/src/components/Icon/RetryLeftIcon.tsx +29 -0
  235. package/src/components/Icon/RetryRightIcon.tsx +29 -0
  236. package/src/components/Icon/SearchIcon.tsx +29 -0
  237. package/src/components/Icon/SearchMinusIcon.tsx +29 -0
  238. package/src/components/Icon/SettingIcon.tsx +37 -0
  239. package/src/components/Icon/SignatureIcon.tsx +30 -0
  240. package/src/components/Icon/SwapWalletIcon.tsx +48 -0
  241. package/src/components/Icon/TimeIcon.tsx +29 -0
  242. package/src/components/Icon/TrashIcon.tsx +29 -0
  243. package/src/components/Icon/TryAgainIcon.tsx +29 -0
  244. package/src/components/Icon/VerticalSwapIcon.tsx +36 -0
  245. package/src/components/Icon/WalletIconIcon.tsx +38 -0
  246. package/src/components/Icon/WarningIcon.tsx +35 -0
  247. package/src/components/Icon/common.ts +69 -0
  248. package/src/components/Icon/index.ts +44 -0
  249. package/src/components/Icon/types.tsx +44 -0
  250. package/src/components/LiquiditySourceList/LiquiditySource.stories.tsx +13 -0
  251. package/src/components/LiquiditySourceList/LiquiditySourceList.tsx +114 -0
  252. package/src/components/LiquiditySourceList/index.ts +1 -0
  253. package/src/components/LiquiditySourceList/mockData.ts +316 -0
  254. package/src/components/LiquiditySourcesSelector/LiquiditySourcesSelector.stories.tsx +16 -0
  255. package/src/components/LiquiditySourcesSelector/LiquiditySourcesSelector.tsx +55 -0
  256. package/src/components/LiquiditySourcesSelector/index.ts +1 -0
  257. package/src/components/Modal/Modal.stories.tsx +22 -0
  258. package/src/components/Modal/Modal.tsx +76 -0
  259. package/src/components/Modal/index.ts +1 -0
  260. package/src/components/Radio/Radio.stories.tsx +23 -0
  261. package/src/components/Radio/Radio.tsx +95 -0
  262. package/src/components/Radio/index.ts +1 -0
  263. package/src/components/SecondaryPage/SecondaryPage.stories.tsx +7 -0
  264. package/src/components/SecondaryPage/SecondaryPage.tsx +95 -0
  265. package/src/components/SecondaryPage/index.ts +1 -0
  266. package/src/components/SelectableWalletList/SelectableWalletList.stories.tsx +14 -0
  267. package/src/components/SelectableWalletList/SelectableWalletList.tsx +113 -0
  268. package/src/components/SelectableWalletList/index.ts +1 -0
  269. package/src/components/SelectableWalletList/mock.ts +12 -0
  270. package/src/components/Settings/Settings.stories.tsx +34 -0
  271. package/src/components/Settings/Settings.tsx +160 -0
  272. package/src/components/Settings/index.ts +1 -0
  273. package/src/components/Skeleton/Skeleton.stories.tsx +24 -0
  274. package/src/components/Skeleton/Skeleton.tsx +66 -0
  275. package/src/components/Skeleton/index.ts +1 -0
  276. package/src/components/Spacer/Spacer.stories.tsx +18 -0
  277. package/src/components/Spacer/Spacer.tsx +98 -0
  278. package/src/components/Spacer/index.ts +1 -0
  279. package/src/components/Spinner/Spinner.stories.tsx +25 -0
  280. package/src/components/Spinner/Spinner.tsx +61 -0
  281. package/src/components/Spinner/index.ts +1 -0
  282. package/src/components/StatusDrawer/StatusDrawer.stories.tsx +38 -0
  283. package/src/components/StatusDrawer/StatusDrawer.tsx +81 -0
  284. package/src/components/StatusDrawer/index.ts +1 -0
  285. package/src/components/StepDetail/StepDetail.stories.tsx +37 -0
  286. package/src/components/StepDetail/StepDetail.tsx +97 -0
  287. package/src/components/StepDetail/index.ts +1 -0
  288. package/src/components/SwapContainer/SwapContainer.stories.tsx +13 -0
  289. package/src/components/SwapContainer/SwapContainer.tsx +35 -0
  290. package/src/components/SwapContainer/index.ts +1 -0
  291. package/src/components/SwapDetail/SwapDetail.stories.tsx +19 -0
  292. package/src/components/SwapDetail/SwapDetail.tsx +150 -0
  293. package/src/components/SwapDetail/index.ts +1 -0
  294. package/src/components/SwapDetail/mock.ts +275 -0
  295. package/src/components/Switch/Switch.stories.tsx +9 -0
  296. package/src/components/Switch/Switch.tsx +52 -0
  297. package/src/components/Switch/index.ts +1 -0
  298. package/src/components/TextField/TextField.stories.tsx +31 -0
  299. package/src/components/TextField/TextField.tsx +129 -0
  300. package/src/components/TextField/index.ts +1 -0
  301. package/src/components/TokenList/TokenList.stories.tsx +18 -0
  302. package/src/components/TokenList/TokenList.tsx +180 -0
  303. package/src/components/TokenList/index.ts +1 -0
  304. package/src/components/TokenList/mockData.ts +1721 -0
  305. package/src/components/TokenSelector/TokenSelector.stories.tsx +18 -0
  306. package/src/components/TokenSelector/TokenSelector.tsx +35 -0
  307. package/src/components/TokenSelector/index.ts +1 -0
  308. package/src/components/Tooltip/Tooltip.stories.tsx +52 -0
  309. package/src/components/Tooltip/Tooltip.tsx +110 -0
  310. package/src/components/Tooltip/index.ts +1 -0
  311. package/src/components/Typography/Typography.stories.tsx +68 -0
  312. package/src/components/Typography/Typography.tsx +199 -0
  313. package/src/components/Typography/index.ts +1 -0
  314. package/src/components/VirtualizedList/VirtualizedList.tsx +78 -0
  315. package/src/components/Wallet/State.tsx +36 -0
  316. package/src/components/Wallet/Wallet.stories.tsx +36 -0
  317. package/src/components/Wallet/Wallet.tsx +42 -0
  318. package/src/components/Wallet/index.ts +1 -0
  319. package/src/components/common/FilledCircle.tsx +8 -0
  320. package/src/components/common/index.ts +1 -0
  321. package/src/components/index.ts +24 -0
  322. package/src/containers/ConfirmSwap/ConfirmSwap.stories.tsx +13 -0
  323. package/src/containers/ConfirmSwap/ConfirmSwap.tsx +154 -0
  324. package/src/containers/ConfirmSwap/index.ts +1 -0
  325. package/src/containers/ConfirmSwap/mock.ts +146 -0
  326. package/src/containers/ConfirmWallets/ConfirmWallets.stories.tsx +26 -0
  327. package/src/containers/ConfirmWallets/ConfirmWallets.tsx +98 -0
  328. package/src/containers/ConfirmWallets/index.ts +1 -0
  329. package/src/containers/ConfirmWallets/mock.ts +222 -0
  330. package/src/containers/ConfirmWallets/types.ts +9 -0
  331. package/src/containers/History/History.stories.tsx +14 -0
  332. package/src/containers/History/History.tsx +93 -0
  333. package/src/containers/History/index.ts +1 -0
  334. package/src/containers/History/mock.ts +825 -0
  335. package/src/containers/History/types.tsx +66 -0
  336. package/src/containers/SwapHistory/SwapHistory.stories.tsx +13 -0
  337. package/src/containers/SwapHistory/SwapHistory.tsx +165 -0
  338. package/src/containers/SwapHistory/index.ts +1 -0
  339. package/src/containers/SwapHistory/mock.ts +275 -0
  340. package/src/containers/index.ts +4 -0
  341. package/src/helper/index.ts +23 -0
  342. package/src/helper/swaps.ts +23 -0
  343. package/src/helpers.ts +2 -0
  344. package/src/index.ts +4 -0
  345. package/src/theme.ts +161 -0
  346. package/src/types/index.ts +1 -0
  347. package/src/types/meta.ts +20 -0
  348. package/src/types/swaps.tsx +36 -0
  349. package/src/types/wallet.ts +20 -0
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import { SvgWithFillColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const SignatureIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithFillColor
9
+ width={size}
10
+ height={size}
11
+ color={color}
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ viewBox="0 0 122.88 107.95"
14
+ xmlSpace="preserve"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ d="M82.19 0c1.22-.01 2.27.4 3.18 1.27l13.27 12.7c.86.82 1.28 1.91 1.3 3.11.02 1.22-.34 2.33-1.18 3.18l-7.06 7.35L72.09 8.67l6.99-7.28C79.94.5 80.98.02 82.19 0zM20.08 68.29a4.536 4.536 0 1 1 2.67 8.67c-6.98 2.14-11.66 6.28-13.21 10.17-.41 1.04-.55 1.99-.39 2.77.12.59.48 1.13 1.07 1.56 2.55 1.86 8.04 2.34 17.26.1 5.46-1.33 11.31-3.13 16.49-4.73 5.29-1.63 9.91-3.06 13.12-3.66 5.92-1.1 11.83-1.85 16.6-1.61 6.26.31 10.96 2.32 12.57 7.13 1.04 3.11.75 5.81.49 8.23-.09.87-.18 1.68-.14 2.21 0 .02.95-.05 5.53-.41 5.3-.42 10.79-2.51 16.21-4.58 2.78-1.06 5.54-2.11 8.67-3.07 2.4-.73 4.93.63 5.65 3.02.73 2.4-.63 4.93-3.02 5.65-2.43.74-5.24 1.82-8.06 2.89-6.04 2.3-12.14 4.63-18.74 5.15-12.07.95-14.87-2.46-15.3-7.95-.1-1.29.03-2.54.17-3.88.16-1.5.34-3.18-.07-4.39-.18-.54-1.89-.82-4.39-.94-3.99-.2-9.22.48-14.54 1.47-2.65.49-7.05 1.85-12.09 3.41-5.27 1.63-11.22 3.46-17.02 4.87-12.14 2.95-20.21 1.7-24.73-1.6-2.54-1.85-4.05-4.27-4.63-7-.54-2.54-.23-5.28.85-8 2.46-6.14 9.23-12.5 18.98-15.48zm21.19-19.84L53.3 60.02l-14.71 3.95c-.53.1-.74-.11-.65-.6l3.33-14.92zm24.6-33.34 19.59 18.87L58.7 62.23l-23.98 6.43c-.86.17-1.2-.17-1.06-.98l5.43-24.31 26.78-28.26z"
20
+ style={{
21
+ fillRule: 'evenodd',
22
+ clipRule: 'evenodd',
23
+ }}
24
+ />
25
+ </SvgWithFillColor>
26
+ );
27
+ }
28
+ );
29
+
30
+ SignatureIcon.toString = () => '._icon';
@@ -0,0 +1,48 @@
1
+ import * as React from 'react';
2
+ import { SvgWithFillColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const SwapWalletIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithFillColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 24 24"
12
+ color={color}
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ fillRule="evenodd"
20
+ clipRule="evenodd"
21
+ d="M5.244 7.205a3.018 3.018 0 0 0-3.01 3.01v1.73a.75.75 0 0 1-1.5 0v-1.73a4.518 4.518 0 0 1 4.51-4.51h11.48a4.518 4.518 0 0 1 4.51 4.51v1.44a.75.75 0 0 1-.75.75h-2.02c-.359 0-.674.14-.902.373l-.014.014c-.266.26-.414.63-.377 1.022v.009c.054.635.664 1.182 1.413 1.182h1.9a.75.75 0 0 1 .75.75v1.19a4.518 4.518 0 0 1-4.51 4.51h-5.48a.75.75 0 0 1 0-1.5h5.48a3.018 3.018 0 0 0 3.01-3.01v-.44h-1.15c-1.41 0-2.777-1.03-2.907-2.553a2.758 2.758 0 0 1 .817-2.227 2.743 2.743 0 0 1 1.97-.82h1.27v-.69a3.018 3.018 0 0 0-3.01-3.01H5.244Z"
22
+ />
23
+ <path
24
+ fillRule="evenodd"
25
+ clipRule="evenodd"
26
+ d="M13.084 2.655a1.15 1.15 0 0 0-1.554-1.078l-7.94 3a2.098 2.098 0 0 0-1.356 1.968v4.57a.75.75 0 0 1-1.5 0v-4.57c0-1.5.922-2.84 2.325-3.371l7.94-3c1.732-.657 3.585.629 3.585 2.481v3.8a.75.75 0 0 1-1.5 0v-3.8ZM18.463 12.405c-.359 0-.675.14-.902.374l-.014.013c-.266.26-.415.63-.377 1.022v.01c.053.634.664 1.181 1.413 1.181h1.943a.276.276 0 0 0 .267-.27v-2.06a.276.276 0 0 0-.267-.27h-2.063Zm-1.97-.68a2.743 2.743 0 0 1 1.97-.82h2.107a1.777 1.777 0 0 1 1.723 1.77v2.06a1.777 1.777 0 0 1-1.75 1.77h-1.96c-1.41 0-2.777-1.03-2.907-2.553a2.758 2.758 0 0 1 .816-2.227Z"
27
+ />
28
+ <path
29
+ fillRule="evenodd"
30
+ clipRule="evenodd"
31
+ d="M5.234 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM1.234 15.205a.75.75 0 0 1 .75-.75h5.34a1.91 1.91 0 0 1 1.91 1.91v1.28a.75.75 0 0 1-1.5 0v-1.28a.41.41 0 0 0-.41-.41h-5.34a.75.75 0 0 1-.75-.75Z"
32
+ />
33
+ <path
34
+ fillRule="evenodd"
35
+ clipRule="evenodd"
36
+ d="M3.735 13.455a.75.75 0 0 1 0 1.06l-.69.69.69.69a.75.75 0 1 1-1.061 1.06l-1.22-1.22a.75.75 0 0 1 0-1.06l1.22-1.22a.75.75 0 0 1 1.06 0ZM1.984 17.296a.75.75 0 0 1 .75.75v1.28c0 .225.185.41.41.41h5.34a.75.75 0 0 1 0 1.5h-5.34a1.91 1.91 0 0 1-1.91-1.91v-1.28a.75.75 0 0 1 .75-.75Z"
37
+ />
38
+ <path
39
+ fillRule="evenodd"
40
+ clipRule="evenodd"
41
+ d="M6.735 18.735a.75.75 0 0 1 1.061 0l1.22 1.22a.75.75 0 0 1 0 1.061l-1.22 1.22a.75.75 0 1 1-1.06-1.06l.689-.69-.69-.69a.75.75 0 0 1 0-1.06Z"
42
+ />
43
+ </SvgWithFillColor>
44
+ );
45
+ }
46
+ );
47
+
48
+ SwapWalletIcon.toString = () => '._icon';
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { SvgWithStrokeColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const TimeIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, ...props }, forwardedRef) => {
7
+ return (
8
+ <SvgWithStrokeColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 20 20"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ className="_icon"
15
+ {...props}
16
+ ref={forwardedRef}
17
+ >
18
+ <circle cx={10} cy={10} r={7.25} strokeWidth={1.5} />
19
+ <path
20
+ fillRule="evenodd"
21
+ clipRule="evenodd"
22
+ d="M10.134 6.6a.6.6 0 0 0-1.2 0v4.27a.6.6 0 0 0 .28.507c.009.01.018.019.029.028l2.59 2.373a.472.472 0 0 0 .753-.109.763.763 0 0 0-.133-.919l-2.319-2.123V6.6Z"
23
+ />
24
+ </SvgWithStrokeColor>
25
+ );
26
+ }
27
+ );
28
+
29
+ TimeIcon.toString = () => '._icon';
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { SvgWithStrokeColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const TrashIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithStrokeColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 24 24"
12
+ color={color}
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ d="M21.5 5.98c-3.33-.33-6.68-.5-10.02-.5-1.98 0-3.96.1-5.94.3l-2.04.2M9 4.97l.22-1.31C9.38 2.71 9.5 2 11.19 2h2.62c1.69 0 1.82.75 1.97 1.67l.22 1.3M19.35 9.14l-.65 10.07c-.11 1.57-.2 2.79-2.99 2.79H9.29c-2.79 0-2.88-1.22-2.99-2.79L5.65 9.14M10.83 16.5h3.33M10 12.5h5"
20
+ strokeWidth={1.5}
21
+ strokeLinecap="round"
22
+ strokeLinejoin="round"
23
+ />
24
+ </SvgWithStrokeColor>
25
+ );
26
+ }
27
+ );
28
+
29
+ TrashIcon.toString = () => '._icon';
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { SvgWithStrokeColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const TryAgainIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithStrokeColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 24 24"
12
+ color={color}
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ d="M22 12c0 5.52-4.48 10-10 10s-8.89-5.56-8.89-5.56m0 0h4.52m-4.52 0v5M2 12C2 6.48 6.44 2 12 2c6.67 0 10 5.56 10 5.56m0 0v-5m0 5h-4.44"
20
+ strokeWidth={1.5}
21
+ strokeLinecap="round"
22
+ strokeLinejoin="round"
23
+ />
24
+ </SvgWithStrokeColor>
25
+ );
26
+ }
27
+ );
28
+
29
+ TryAgainIcon.toString = () => '._icon';
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ import { SvgWithStrokeColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const VerticalSwapIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithStrokeColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 24 24"
12
+ color={color}
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ d="m13.82 6.85 3.04 3.04M13.82 17.15V6.85M10.18 17.15l-3.04-3.04M10.18 6.85v10.3"
20
+ strokeWidth={1.5}
21
+ strokeMiterlimit={10}
22
+ strokeLinecap="round"
23
+ strokeLinejoin="round"
24
+ />
25
+ <path
26
+ d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z"
27
+ strokeWidth={1.5}
28
+ strokeLinecap="round"
29
+ strokeLinejoin="round"
30
+ />
31
+ </SvgWithStrokeColor>
32
+ );
33
+ }
34
+ );
35
+
36
+ VerticalSwapIcon.toString = () => '._icon';
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+ import { SvgWithFillColor } from './common';
3
+ import { IconProps } from './types';
4
+
5
+ export const WalletIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithFillColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 24 24"
12
+ color={color}
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ fillRule="evenodd"
20
+ clipRule="evenodd"
21
+ d="M4.51 7.205a3.018 3.018 0 0 0-3.01 3.01v6.73a3.018 3.018 0 0 0 3.01 3.01h11.48a3.018 3.018 0 0 0 3.01-3.01v-.44h-1.15c-1.41 0-2.778-1.03-2.907-2.553a2.758 2.758 0 0 1 .816-2.227 2.743 2.743 0 0 1 1.971-.82H19v-.69a3.018 3.018 0 0 0-3.01-3.01H4.51ZM0 10.215a4.518 4.518 0 0 1 4.51-4.51h11.48a4.518 4.518 0 0 1 4.51 4.51v1.44a.75.75 0 0 1-.75.75h-2.02c-.36 0-.675.14-.903.373l-.013.014c-.266.26-.415.63-.377 1.022v.009c.053.635.664 1.182 1.413 1.182h1.9a.75.75 0 0 1 .75.75v1.19a4.518 4.518 0 0 1-4.51 4.51H4.51A4.518 4.518 0 0 1 0 16.945v-6.73Z"
22
+ />
23
+ <path
24
+ fillRule="evenodd"
25
+ clipRule="evenodd"
26
+ d="M12.35 2.655a1.15 1.15 0 0 0-1.554-1.079l-7.94 3A2.098 2.098 0 0 0 1.5 6.547v4.569a.75.75 0 1 1-1.5 0v-4.57c0-1.5.922-2.84 2.325-3.371l7.94-3s-.001 0 0 0c1.732-.657 3.585.629 3.585 2.481v3.8a.75.75 0 0 1-1.5 0v-3.8ZM17.729 12.405c-.36 0-.675.14-.903.373l-.013.014c-.266.26-.415.63-.377 1.022v.009c.053.635.664 1.182 1.413 1.182h1.943a.276.276 0 0 0 .267-.27v-2.06a.276.276 0 0 0-.267-.27h-2.063Zm-1.97-.68a2.743 2.743 0 0 1 1.97-.82h2.107a1.777 1.777 0 0 1 1.723 1.77v2.06a1.777 1.777 0 0 1-1.75 1.77h-1.96c-1.41 0-2.778-1.03-2.907-2.553a2.759 2.759 0 0 1 .816-2.227Z"
27
+ />
28
+ <path
29
+ fillRule="evenodd"
30
+ clipRule="evenodd"
31
+ d="M4.5 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75Z"
32
+ />
33
+ </SvgWithFillColor>
34
+ );
35
+ }
36
+ );
37
+
38
+ WalletIcon.toString = () => '._icon';
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { IconProps } from './types';
3
+ import { SvgWithStrokeColor } from './common';
4
+
5
+ export const WarningIcon = React.forwardRef<SVGSVGElement, IconProps>(
6
+ ({ size = 16, color, ...props }) => {
7
+ return (
8
+ <SvgWithStrokeColor
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 24 24"
12
+ color={color}
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ className="_icon"
16
+ {...props}
17
+ >
18
+ <path
19
+ d="M12 9v5M12 21.41H5.94c-3.47 0-4.92-2.48-3.24-5.51l3.12-5.62L8.76 5c1.78-3.21 4.7-3.21 6.48 0l2.94 5.29 3.12 5.62c1.68 3.03.22 5.51-3.24 5.51H12v-.01Z"
20
+ strokeWidth={1.5}
21
+ strokeLinecap="round"
22
+ strokeLinejoin="round"
23
+ />
24
+ <path
25
+ d="M11.994 17h.01"
26
+ strokeWidth={2}
27
+ strokeLinecap="round"
28
+ strokeLinejoin="round"
29
+ />
30
+ </SvgWithStrokeColor>
31
+ );
32
+ }
33
+ );
34
+
35
+ WarningIcon.toString = () => '._icon';
@@ -0,0 +1,69 @@
1
+ import { darkTheme, styled } from '../../theme';
2
+
3
+ export const SvgWithStrokeColor = styled('svg', {
4
+ stroke: '$foreground',
5
+ variants: {
6
+ color: {
7
+ primary: {
8
+ stroke: '$primary',
9
+ },
10
+ error: {
11
+ stroke: '$error',
12
+ },
13
+ warning: {
14
+ stroke: '$warning',
15
+ },
16
+ success: {
17
+ stroke: '$success',
18
+ },
19
+ black: {
20
+ $$color: '$colors$foreground',
21
+ [`.${darkTheme} &`]: {
22
+ $$color: '$colors$background',
23
+ },
24
+ stroke: '$$color',
25
+ },
26
+ white: {
27
+ $$color: '$colors$background',
28
+ [`.${darkTheme} &`]: {
29
+ $$color: '$colors$foreground',
30
+ },
31
+ stroke: '$$color',
32
+ },
33
+ },
34
+ },
35
+ });
36
+
37
+ export const SvgWithFillColor = styled('svg', {
38
+ fill: '$foreground',
39
+ variants: {
40
+ color: {
41
+ primary: {
42
+ fill: '$primary',
43
+ },
44
+ error: {
45
+ fill: '$error',
46
+ },
47
+ warning: {
48
+ fill: '$warning',
49
+ },
50
+ success: {
51
+ fill: '$success',
52
+ },
53
+ black: {
54
+ $$color: '$colors$foreground',
55
+ [`.${darkTheme} &`]: {
56
+ $$color: '$colors$background',
57
+ },
58
+ fill: '$$color',
59
+ },
60
+ white: {
61
+ $$color: '$colors$background',
62
+ [`.${darkTheme} &`]: {
63
+ $$color: '$colors$foreground',
64
+ },
65
+ fill: '$$color',
66
+ },
67
+ },
68
+ },
69
+ });
@@ -0,0 +1,44 @@
1
+ export { DeleteCircleIcon } from './DeleteCircleIcon';
2
+ export { CheckSquareIcon } from './CheckSquareIcon';
3
+ export { AddIcon } from './AddIcon';
4
+ export { InfoCircleIcon } from './InfoCircleIcon';
5
+ export { AddCircleIcon } from './AddCircleIcon';
6
+ export { MinusCircleIcon } from './MinusCircleIcon';
7
+ export { CheckCircleIcon } from './CheckCircleIcon';
8
+ export { CheckIcon } from './CheckIcon';
9
+
10
+ export { BanIcon } from './BanIcon';
11
+ export { WarningIcon } from './WarningIcon';
12
+
13
+ export { HistoryIcon } from './HistoryIcon';
14
+ export { GasIcon } from './GasIcon';
15
+ export { SettingsIcon } from './SettingIcon';
16
+ export { TrashIcon } from './TrashIcon';
17
+
18
+ export { SearchMinusIcon } from './SearchMinusIcon';
19
+ export { SearchIcon } from './SearchIcon';
20
+
21
+ export { AngleRightIcon } from './AngleRightIcon';
22
+ export { AngleUpIcon } from './AngleUpIcon';
23
+ export { AngleDownIcon } from './AngleDownIcon';
24
+ export { AngleLeftIcon } from './AngleLeftIcon';
25
+ export { DownloadIcon } from './DownloadIcon';
26
+
27
+ export { RetryRightIcon } from './RetryRightIcon';
28
+ export { RetryLeftIcon } from './RetryLeftIcon';
29
+ export { TryAgainIcon } from './TryAgainIcon';
30
+ export { VerticalSwapIcon } from './VerticalSwapIcon';
31
+ export { HorizontalSwapIcon } from './HorizontalSwapIcon';
32
+ export { RetryIcon } from './RetryIcon';
33
+
34
+ export { WalletIcon } from './WalletIconIcon';
35
+ export { AddWalletIcon } from './AddWalletIcon';
36
+ export { DeleteWalletIcon } from './DeleteWalletIcon';
37
+ export { CheckWalletIcon } from './CheckWalletIcon';
38
+ export { SwapWalletIcon } from './SwapWalletIcon';
39
+
40
+ export { BagIcon } from './BagIcon';
41
+
42
+ export { TimeIcon } from './TimeIcon';
43
+ export { CloseIcon } from './CloseIcon';
44
+ export { SignatureIcon } from './SignatureIcon';
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+
3
+ export interface IconProps extends React.SVGAttributes<SVGElement> {
4
+ size?: 16 | 18 | 20 | 24 | 28 | 32 | 36 | 40;
5
+ color?: 'primary' | 'error' | 'warning' | 'success' | 'black' | 'white';
6
+ }
7
+
8
+ export type Icon =
9
+ | 'DeleteCircleIcon'
10
+ | 'CheckSquareIcon'
11
+ | 'AddIcon'
12
+ | 'InfoCircleIcon'
13
+ | 'AddCircleIcon'
14
+ | 'MinusCircleIcon'
15
+ | 'CheckCircleIcon'
16
+ | 'CheckIcon'
17
+ | 'BanIcon'
18
+ | 'WarningIcon'
19
+ | 'HistoryIcon'
20
+ | 'GasIcon'
21
+ | 'SettingsIcon'
22
+ | 'TrashIcon'
23
+ | 'SearchMinusIcon'
24
+ | 'SearchIcon'
25
+ | 'AngleRightIcon'
26
+ | 'AngleUpIcon'
27
+ | 'AngleDownIcon'
28
+ | 'AngleLeftIcon'
29
+ | 'DownloadIcon'
30
+ | 'RetryRightIcon'
31
+ | 'RetryLeftIcon'
32
+ | 'TryAgainIcon'
33
+ | 'VerticalSwapIcon'
34
+ | 'HorizontalSwapIcon'
35
+ | 'RetryIcon'
36
+ | 'WalletIcon'
37
+ | 'AddWalletIcon'
38
+ | 'DeleteWalletIcon'
39
+ | 'CheckWalletIcon'
40
+ | 'SwapWalletIcon'
41
+ | 'BagIcon'
42
+ | 'TimeIcon'
43
+ | 'CloseIcon'
44
+ | 'SignatureIcon';
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { ComponentMeta } from '@storybook/react';
3
+ import { LiquiditySourceList, PropTypes } from './LiquiditySourceList';
4
+ import { liquiditySources } from './mockData';
5
+
6
+ export default {
7
+ title: 'Liquidity Source List',
8
+ component: LiquiditySourceList,
9
+ } as ComponentMeta<typeof LiquiditySourceList>;
10
+
11
+ export const Main = (args: PropTypes) => (
12
+ <LiquiditySourceList {...args} list={liquiditySources} />
13
+ );
@@ -0,0 +1,114 @@
1
+ import { CSSProperties } from '@stitches/react';
2
+ import React, { useState } from 'react';
3
+ import { styled } from '../../theme';
4
+ import { LiquiditySource } from '../../types/meta';
5
+ import { Button } from '../Button/Button';
6
+ import { Spacer } from '../Spacer';
7
+ import { Switch } from '../Switch';
8
+ import { Typography } from '../Typography';
9
+
10
+ const groupLiquiditySources = (
11
+ liquiditySources: LiquiditySource[]
12
+ ): { [key in 'bridge' | 'exchange']: LiquiditySource[] } => ({
13
+ bridge: liquiditySources.filter(
14
+ (liquiditySource) =>
15
+ liquiditySource.type === 'BRIDGE' || liquiditySource.type === 'AGGREGATOR'
16
+ ),
17
+ exchange: liquiditySources.filter(
18
+ (liquiditySource) => liquiditySource.type === 'DEX'
19
+ ),
20
+ });
21
+
22
+ const LiquiditySourceType = styled(Typography, {
23
+ position: 'sticky',
24
+ top: '0',
25
+ marginTop: '$8',
26
+ marginBottom: '$8',
27
+ backgroundColor: '$background',
28
+ zIndex: '9999',
29
+ paddingTop: '$8',
30
+ paddingBottom: '$8',
31
+ });
32
+
33
+ const LiquidityImage = styled('img', {
34
+ width: '$20',
35
+ maxHeight: '$20',
36
+ marginRight: '$16',
37
+ });
38
+
39
+ export interface PropTypes {
40
+ list: LiquiditySource[];
41
+ onChange: (liquiditySource: LiquiditySource) => void;
42
+ listContainerStyle?: CSSProperties;
43
+ }
44
+
45
+ export function LiquiditySourceList(props: PropTypes) {
46
+ const { list, onChange, listContainerStyle } = props;
47
+
48
+ const [selected, setSelected] = useState(
49
+ list.filter((item) => item.selected)
50
+ );
51
+
52
+ const changeLiquiditySources = (clickedItem: LiquiditySource) => {
53
+ clickedItem.selected = !clickedItem.selected;
54
+ setSelected((prevState) => {
55
+ if (clickedItem.selected) return [...prevState, clickedItem];
56
+ return prevState.filter((item) => item.title != clickedItem.title);
57
+ });
58
+ onChange(clickedItem);
59
+ };
60
+
61
+ const LiquiditySourceItem = ({
62
+ liquiditySource,
63
+ selected,
64
+ }: {
65
+ liquiditySource: LiquiditySource;
66
+ selected: boolean;
67
+ }) => {
68
+ return (
69
+ <Button
70
+ size="large"
71
+ align="start"
72
+ variant="outlined"
73
+ prefix={<LiquidityImage src={liquiditySource.logo} />}
74
+ suffix={<Switch checked={selected} />}
75
+ style={{ marginBottom: '12px' }}
76
+ type={selected ? 'primary' : undefined}
77
+ onClick={changeLiquiditySources.bind(null, liquiditySource)}
78
+ >
79
+ <Typography variant="body1">{liquiditySource.title}</Typography>
80
+ </Button>
81
+ );
82
+ };
83
+
84
+ const isSelected = (liquiditySource: LiquiditySource) =>
85
+ !!selected.find((item) => liquiditySource.title === item.title);
86
+
87
+ return (
88
+ <div style={{ height: '450px', ...listContainerStyle }}>
89
+ <div>
90
+ <LiquiditySourceType variant="h5">Bridges</LiquiditySourceType>
91
+ <Spacer size={16} direction="vertical"/>
92
+ {groupLiquiditySources(list).bridge.map((liquiditySource, index) => (
93
+ <LiquiditySourceItem
94
+ liquiditySource={liquiditySource}
95
+ key={index}
96
+ selected={isSelected(liquiditySource)}
97
+ />
98
+ ))}
99
+ </div>
100
+ <div>
101
+ <LiquiditySourceType variant="h5">Exchanges</LiquiditySourceType>
102
+ <Spacer size={16} direction="vertical" />
103
+
104
+ {groupLiquiditySources(list).exchange.map((liquiditySource, index) => (
105
+ <LiquiditySourceItem
106
+ liquiditySource={liquiditySource}
107
+ key={index}
108
+ selected={isSelected(liquiditySource)}
109
+ />
110
+ ))}
111
+ </div>
112
+ </div>
113
+ );
114
+ }
@@ -0,0 +1 @@
1
+ export { LiquiditySourceList } from './LiquiditySourceList';