@rango-dev/ui 0.24.0 → 0.25.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 (211) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/index.js +6 -6
  3. package/dist/index.js.map +4 -4
  4. package/dist/translations/en.d.ts.map +1 -1
  5. package/dist/translations/es.d.ts.map +1 -1
  6. package/dist/translations/fr.d.ts.map +1 -1
  7. package/dist/translations/ja.d.ts.map +1 -1
  8. package/dist/widget/ui/src/components/Alert/Alert.styles.d.ts +157 -0
  9. package/dist/widget/ui/src/components/Alert/Alert.styles.d.ts.map +1 -1
  10. package/dist/widget/ui/src/components/BlockchainsChip/BlockchainsChip.styles.d.ts.map +1 -1
  11. package/dist/widget/ui/src/components/Button/Button.d.ts +54 -54
  12. package/dist/widget/ui/src/components/Button/Button.styles.d.ts.map +1 -1
  13. package/dist/widget/ui/src/components/Checkbox/Checkbox.styles.d.ts.map +1 -1
  14. package/dist/widget/ui/src/components/ListItem/ListItem.styles.d.ts.map +1 -1
  15. package/dist/widget/ui/src/components/ListItemButton/ListItemButton.styles.d.ts.map +1 -1
  16. package/dist/widget/ui/src/components/PriceImpact/PriceImpact.styles.d.ts +158 -0
  17. package/dist/widget/ui/src/components/PriceImpact/PriceImpact.styles.d.ts.map +1 -1
  18. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.d.ts +4 -0
  19. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.d.ts.map +1 -0
  20. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.styles.d.ts +629 -0
  21. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.styles.d.ts.map +1 -0
  22. package/dist/widget/ui/src/components/{RouteCost/RouteCost.types.d.ts → QuoteCost/QuoteCost.types.d.ts} +1 -1
  23. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.types.d.ts.map +1 -0
  24. package/dist/widget/ui/src/components/QuoteCost/index.d.ts +2 -0
  25. package/dist/widget/ui/src/components/QuoteCost/index.d.ts.map +1 -0
  26. package/dist/widget/ui/src/components/Radio/Radio.styles.d.ts.map +1 -1
  27. package/dist/widget/ui/src/components/RoutesOverview/RoutesOverview.d.ts.map +1 -1
  28. package/dist/widget/ui/src/components/SelectableCategoryList/SelectableCategoryList.d.ts.map +1 -1
  29. package/dist/widget/ui/src/components/SelectableCategoryList/SelectableCategoryList.helpers.d.ts +16 -2
  30. package/dist/widget/ui/src/components/SelectableCategoryList/SelectableCategoryList.helpers.d.ts.map +1 -1
  31. package/dist/widget/ui/src/components/SelectableCategoryList/index.d.ts +1 -0
  32. package/dist/widget/ui/src/components/SelectableCategoryList/index.d.ts.map +1 -1
  33. package/dist/widget/ui/src/components/Skeleton/Skeleton.d.ts.map +1 -1
  34. package/dist/widget/ui/src/components/Skeleton/Skeleton.types.d.ts +1 -1
  35. package/dist/widget/ui/src/components/Skeleton/Skeleton.types.d.ts.map +1 -1
  36. package/dist/widget/ui/src/components/StepDetails/StepDetails.d.ts.map +1 -1
  37. package/dist/widget/ui/src/components/StepDetails/StepDetails.styles.d.ts +7 -1
  38. package/dist/widget/ui/src/components/StepDetails/StepDetails.styles.d.ts.map +1 -1
  39. package/dist/widget/ui/src/components/StepDetails/StepDetails.types.d.ts +16 -2
  40. package/dist/widget/ui/src/components/StepDetails/StepDetails.types.d.ts.map +1 -1
  41. package/dist/widget/ui/src/components/StepDetails/index.d.ts +1 -1
  42. package/dist/widget/ui/src/components/StepDetails/index.d.ts.map +1 -1
  43. package/dist/widget/ui/src/components/StepDetails/mock.d.ts +1 -1
  44. package/dist/widget/ui/src/components/StepDetails/mock.d.ts.map +1 -1
  45. package/dist/widget/ui/src/components/SwapListItem/mock.d.ts +1 -1
  46. package/dist/widget/ui/src/components/SwapListItem/mock.d.ts.map +1 -1
  47. package/dist/widget/ui/src/components/Switch/Switch.styles.d.ts.map +1 -1
  48. package/dist/widget/ui/src/components/TextField/TextField.d.ts.map +1 -1
  49. package/dist/widget/ui/src/components/TokenAmount/TokenAmount.d.ts.map +1 -1
  50. package/dist/widget/ui/src/components/TokenAmount/TokenAmount.styles.d.ts +471 -1
  51. package/dist/widget/ui/src/components/TokenAmount/TokenAmount.styles.d.ts.map +1 -1
  52. package/dist/widget/ui/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  53. package/dist/widget/ui/src/components/Tooltip/Tooltip.styles.d.ts +2 -2
  54. package/dist/widget/ui/src/components/Tooltip/Tooltip.styles.d.ts.map +1 -1
  55. package/dist/widget/ui/src/components/Wallet/Wallet.types.d.ts +3 -17
  56. package/dist/widget/ui/src/components/Wallet/Wallet.types.d.ts.map +1 -1
  57. package/dist/widget/ui/src/components/common/Image.d.ts +157 -0
  58. package/dist/widget/ui/src/components/common/Image.d.ts.map +1 -1
  59. package/dist/widget/ui/src/components/common/index.d.ts +1 -1
  60. package/dist/widget/ui/src/components/common/index.d.ts.map +1 -1
  61. package/dist/widget/ui/src/components/index.d.ts +1 -2
  62. package/dist/widget/ui/src/components/index.d.ts.map +1 -1
  63. package/dist/widget/ui/src/containers/BlockchainSelector/BlockchainSelector.d.ts +3 -3
  64. package/dist/widget/ui/src/containers/BlockchainSelector/BlockchainSelector.d.ts.map +1 -1
  65. package/dist/widget/ui/src/containers/SwapHistory/SwapHistory.d.ts +1 -1
  66. package/dist/widget/ui/src/containers/SwapHistory/SwapHistory.d.ts.map +1 -1
  67. package/dist/widget/ui/src/containers/SwapHistory/SwapHistory.stories.d.ts +2 -2
  68. package/dist/widget/ui/src/containers/SwapHistory/SwapHistory.stories.d.ts.map +1 -1
  69. package/dist/widget/ui/src/containers/SwapHistory/mock.d.ts +1 -1
  70. package/dist/widget/ui/src/containers/SwapHistory/mock.d.ts.map +1 -1
  71. package/dist/widget/ui/src/containers/SwapInput/SwapInput.d.ts.map +1 -1
  72. package/dist/widget/ui/src/containers/SwapInput/SwapInput.styles.d.ts +1313 -54
  73. package/dist/widget/ui/src/containers/SwapInput/SwapInput.styles.d.ts.map +1 -1
  74. package/dist/widget/ui/src/containers/SwapInput/SwapInput.types.d.ts +2 -0
  75. package/dist/widget/ui/src/containers/SwapInput/SwapInput.types.d.ts.map +1 -1
  76. package/dist/widget/ui/src/containers/SwapInput/TokenSection.d.ts.map +1 -1
  77. package/dist/widget/ui/src/containers/SwapInput/TokenSection.styles.d.ts +525 -54
  78. package/dist/widget/ui/src/containers/SwapInput/TokenSection.styles.d.ts.map +1 -1
  79. package/dist/widget/ui/src/containers/TokenSelector/TokenSelector.d.ts +2 -2
  80. package/dist/widget/ui/src/containers/TokenSelector/TokenSelector.d.ts.map +1 -1
  81. package/dist/widget/ui/src/icons/CosmosCategory.d.ts +5 -0
  82. package/dist/widget/ui/src/icons/CosmosCategory.d.ts.map +1 -0
  83. package/dist/widget/ui/src/icons/EvmCategory.d.ts +5 -0
  84. package/dist/widget/ui/src/icons/EvmCategory.d.ts.map +1 -0
  85. package/dist/widget/ui/src/icons/Icons.stories.d.ts +1 -1
  86. package/dist/widget/ui/src/icons/Language.d.ts +5 -0
  87. package/dist/widget/ui/src/icons/Language.d.ts.map +1 -0
  88. package/dist/widget/ui/src/icons/OtherCategory.d.ts +5 -0
  89. package/dist/widget/ui/src/icons/OtherCategory.d.ts.map +1 -0
  90. package/dist/widget/ui/src/icons/UtxoCategory.d.ts +5 -0
  91. package/dist/widget/ui/src/icons/UtxoCategory.d.ts.map +1 -0
  92. package/dist/widget/ui/src/icons/index.d.ts +5 -0
  93. package/dist/widget/ui/src/icons/index.d.ts.map +1 -1
  94. package/dist/widget/ui/src/index.d.ts +0 -1
  95. package/dist/widget/ui/src/index.d.ts.map +1 -1
  96. package/dist/widget/ui/src/types/index.d.ts +0 -1
  97. package/dist/widget/ui/src/types/index.d.ts.map +1 -1
  98. package/dist/widget/ui/src/types/swaps.d.ts +1 -27
  99. package/dist/widget/ui/src/types/swaps.d.ts.map +1 -1
  100. package/dist/widget/ui/src/{helper → utils}/index.d.ts +0 -3
  101. package/dist/widget/ui/src/utils/index.d.ts.map +1 -0
  102. package/package.json +7 -6
  103. package/src/components/Alert/Alert.styles.ts +9 -12
  104. package/src/components/Alert/Alert.tsx +2 -2
  105. package/src/components/BlockchainsChip/BlockchainsChip.styles.ts +2 -1
  106. package/src/components/Button/Button.styles.tsx +1 -0
  107. package/src/components/Checkbox/Checkbox.styles.ts +5 -1
  108. package/src/components/ListItem/ListItem.styles.ts +9 -0
  109. package/src/components/ListItem/ListItem.tsx +1 -1
  110. package/src/components/ListItemButton/ListItemButton.styles.ts +1 -0
  111. package/src/components/PriceImpact/PriceImpact.styles.ts +9 -1
  112. package/src/components/PriceImpact/PriceImpact.tsx +5 -5
  113. package/src/components/QuoteCost/QuoteCost.styles.ts +29 -0
  114. package/src/components/{RouteCost/RouteCost.tsx → QuoteCost/QuoteCost.tsx} +14 -10
  115. package/src/components/QuoteCost/index.ts +1 -0
  116. package/src/components/Radio/Radio.styles.tsx +5 -2
  117. package/src/components/RoutesOverview/RoutesOverview.tsx +6 -2
  118. package/src/components/SelectableCategoryList/SelectableCategoryList.helpers.ts +40 -13
  119. package/src/components/SelectableCategoryList/SelectableCategoryList.tsx +47 -46
  120. package/src/components/SelectableCategoryList/index.ts +1 -0
  121. package/src/components/SelectableWalletList/SelectableWalletList.tsx +1 -1
  122. package/src/components/Skeleton/Skeleton.tsx +3 -2
  123. package/src/components/Skeleton/Skeleton.types.ts +1 -1
  124. package/src/components/StepDetails/StepDetails.stories.tsx +1 -1
  125. package/src/components/StepDetails/StepDetails.styles.ts +36 -28
  126. package/src/components/StepDetails/StepDetails.tsx +11 -7
  127. package/src/components/StepDetails/StepDetails.types.ts +17 -2
  128. package/src/components/StepDetails/index.ts +1 -1
  129. package/src/components/StepDetails/mock.ts +1 -1
  130. package/src/components/SvgIcon/SvgIcon.style.ts +1 -1
  131. package/src/components/SwapListItem/mock.ts +21 -6
  132. package/src/components/Switch/Switch.styles.tsx +8 -6
  133. package/src/components/TextField/TextField.tsx +3 -5
  134. package/src/components/TokenAmount/TokenAmount.styles.ts +12 -10
  135. package/src/components/TokenAmount/TokenAmount.tsx +23 -17
  136. package/src/components/Tooltip/Tooltip.styles.ts +8 -5
  137. package/src/components/Tooltip/Tooltip.tsx +2 -3
  138. package/src/components/Wallet/Wallet.styles.ts +1 -1
  139. package/src/components/Wallet/Wallet.types.ts +3 -23
  140. package/src/components/common/Image.tsx +1 -2
  141. package/src/components/common/index.ts +1 -1
  142. package/src/components/index.ts +1 -2
  143. package/src/containers/BlockchainSelector/BlockchainSelector.tsx +9 -8
  144. package/src/containers/SwapHistory/SwapHistory.stories.tsx +5 -2
  145. package/src/containers/SwapHistory/SwapHistory.tsx +1 -1
  146. package/src/containers/SwapHistory/mock.ts +24 -8
  147. package/src/containers/SwapInput/SwapInput.styles.ts +78 -27
  148. package/src/containers/SwapInput/SwapInput.tsx +37 -29
  149. package/src/containers/SwapInput/SwapInput.types.ts +2 -0
  150. package/src/containers/SwapInput/TokenSection.styles.ts +27 -12
  151. package/src/containers/SwapInput/TokenSection.tsx +15 -6
  152. package/src/containers/TokenSelector/TokenSelector.tsx +8 -10
  153. package/src/icons/CosmosCategory.tsx +137 -0
  154. package/src/icons/EvmCategory.tsx +74 -0
  155. package/src/icons/Language.tsx +55 -0
  156. package/src/icons/OtherCategory.tsx +72 -0
  157. package/src/icons/UtxoCategory.tsx +44 -0
  158. package/src/icons/index.ts +5 -0
  159. package/src/index.ts +0 -1
  160. package/src/theme.ts +4 -4
  161. package/src/types/index.ts +0 -1
  162. package/src/types/swaps.ts +0 -38
  163. package/src/utils/index.ts +23 -0
  164. package/dist/widget/ui/src/components/BestRoute/BestRoute.d.ts +0 -4
  165. package/dist/widget/ui/src/components/BestRoute/BestRoute.d.ts.map +0 -1
  166. package/dist/widget/ui/src/components/BestRoute/BestRoute.stories.d.ts +0 -7
  167. package/dist/widget/ui/src/components/BestRoute/BestRoute.stories.d.ts.map +0 -1
  168. package/dist/widget/ui/src/components/BestRoute/BestRoute.styles.d.ts +0 -1429
  169. package/dist/widget/ui/src/components/BestRoute/BestRoute.styles.d.ts.map +0 -1
  170. package/dist/widget/ui/src/components/BestRoute/BestRoute.types.d.ts +0 -34
  171. package/dist/widget/ui/src/components/BestRoute/BestRoute.types.d.ts.map +0 -1
  172. package/dist/widget/ui/src/components/BestRoute/BestRouteSkeleton.d.ts +0 -4
  173. package/dist/widget/ui/src/components/BestRoute/BestRouteSkeleton.d.ts.map +0 -1
  174. package/dist/widget/ui/src/components/BestRoute/BestRouteSkeleton.styles.d.ts +0 -319
  175. package/dist/widget/ui/src/components/BestRoute/BestRouteSkeleton.styles.d.ts.map +0 -1
  176. package/dist/widget/ui/src/components/BestRoute/BestRouteSkeleton.types.d.ts +0 -6
  177. package/dist/widget/ui/src/components/BestRoute/BestRouteSkeleton.types.d.ts.map +0 -1
  178. package/dist/widget/ui/src/components/BestRoute/RouteSummary.d.ts +0 -12
  179. package/dist/widget/ui/src/components/BestRoute/RouteSummary.d.ts.map +0 -1
  180. package/dist/widget/ui/src/components/BestRoute/RouteSummary.styles.d.ts +0 -158
  181. package/dist/widget/ui/src/components/BestRoute/RouteSummary.styles.d.ts.map +0 -1
  182. package/dist/widget/ui/src/components/BestRoute/index.d.ts +0 -5
  183. package/dist/widget/ui/src/components/BestRoute/index.d.ts.map +0 -1
  184. package/dist/widget/ui/src/components/BestRoute/mock.d.ts +0 -3
  185. package/dist/widget/ui/src/components/BestRoute/mock.d.ts.map +0 -1
  186. package/dist/widget/ui/src/components/RouteCost/RouteCost.d.ts +0 -4
  187. package/dist/widget/ui/src/components/RouteCost/RouteCost.d.ts.map +0 -1
  188. package/dist/widget/ui/src/components/RouteCost/RouteCost.styles.d.ts +0 -158
  189. package/dist/widget/ui/src/components/RouteCost/RouteCost.styles.d.ts.map +0 -1
  190. package/dist/widget/ui/src/components/RouteCost/RouteCost.types.d.ts.map +0 -1
  191. package/dist/widget/ui/src/components/RouteCost/index.d.ts +0 -2
  192. package/dist/widget/ui/src/components/RouteCost/index.d.ts.map +0 -1
  193. package/dist/widget/ui/src/containers/History/types.d.ts +0 -2
  194. package/dist/widget/ui/src/containers/History/types.d.ts.map +0 -1
  195. package/dist/widget/ui/src/helper/index.d.ts.map +0 -1
  196. package/src/components/BestRoute/BestRoute.stories.tsx +0 -17
  197. package/src/components/BestRoute/BestRoute.styles.ts +0 -213
  198. package/src/components/BestRoute/BestRoute.tsx +0 -176
  199. package/src/components/BestRoute/BestRoute.types.ts +0 -32
  200. package/src/components/BestRoute/BestRouteSkeleton.styles.ts +0 -110
  201. package/src/components/BestRoute/BestRouteSkeleton.tsx +0 -112
  202. package/src/components/BestRoute/BestRouteSkeleton.types.ts +0 -5
  203. package/src/components/BestRoute/RouteSummary.styles.ts +0 -15
  204. package/src/components/BestRoute/RouteSummary.tsx +0 -48
  205. package/src/components/BestRoute/index.ts +0 -4
  206. package/src/components/BestRoute/mock.ts +0 -142
  207. package/src/components/RouteCost/RouteCost.styles.ts +0 -20
  208. package/src/components/RouteCost/index.ts +0 -1
  209. package/src/containers/History/types.tsx +0 -1
  210. package/src/helper/index.ts +0 -99
  211. /package/src/components/{RouteCost/RouteCost.types.ts → QuoteCost/QuoteCost.types.ts} +0 -0
@@ -4,19 +4,19 @@ import type { PropTypes } from './SelectableCategoryList.types';
4
4
  import { i18n } from '@lingui/core';
5
5
  import React from 'react';
6
6
 
7
- import { Divider, Image, Skeleton, Typography } from '..';
7
+ import { Divider, Skeleton, Typography } from '..';
8
8
  import { BlockchainsChip } from '../BlockchainsChip';
9
9
 
10
- import { generateBlockchainsLogo } from './SelectableCategoryList.helpers';
11
10
  import {
12
- Container,
13
- FirstImage,
14
- ImageContent,
15
- } from './SelectableCategoryList.styles';
11
+ blockchainCategoryIcons,
12
+ blockchainCategoryLabel,
13
+ hasAnyCategory,
14
+ } from './SelectableCategoryList.helpers';
15
+ import { Container } from './SelectableCategoryList.styles';
16
16
  import { BlockchainCategories } from './SelectableCategoryList.types';
17
17
 
18
18
  export function SelectableCategoryList(props: PropTypes) {
19
- const { setCategory, category, blockchains, isLoading } = props;
19
+ const { setCategory, category, isLoading, blockchains } = props;
20
20
  const categories = Object.keys(
21
21
  BlockchainCategories
22
22
  ) as BlockchainCategories[];
@@ -32,45 +32,46 @@ export function SelectableCategoryList(props: PropTypes) {
32
32
  />
33
33
  ))}
34
34
  {!isLoading &&
35
- categories.map((blockchainCategory) => (
36
- <BlockchainsChip
37
- selected={category === blockchainCategory}
38
- key={blockchainCategory}
39
- onClick={() => setCategory(blockchainCategory)}>
40
- {blockchainCategory !== BlockchainCategories.ALL && (
41
- <>
42
- <ImageContent>
43
- {generateBlockchainsLogo(blockchains, blockchainCategory).map(
44
- (blockchain, index) =>
45
- index === 0 ? (
46
- <FirstImage
47
- key={`image-${blockchain.name}-${blockchain.chainId}`}
48
- src={blockchain.logo}
49
- />
50
- ) : (
51
- <Image
52
- key={`image-${blockchain.name}-${blockchain.chainId}`}
53
- src={blockchain.logo}
54
- size={15}
55
- />
56
- )
57
- )}
58
- </ImageContent>
59
- <Divider size={12} />
60
- </>
61
- )}
62
- <Typography
63
- size="xsmall"
64
- variant="body"
65
- color={
66
- blockchainCategory === BlockchainCategories.ALL
67
- ? 'secondary500'
68
- : undefined
69
- }>
70
- {i18n.t(BlockchainCategories[blockchainCategory])}
71
- </Typography>
72
- </BlockchainsChip>
73
- ))}
35
+ categories.map((blockchainCategory) => {
36
+ const Logo =
37
+ blockchainCategory !== BlockchainCategories.ALL
38
+ ? blockchainCategoryIcons[blockchainCategory]
39
+ : null;
40
+
41
+ const hasBlockchain = hasAnyCategory(blockchains, blockchainCategory);
42
+
43
+ return (
44
+ hasBlockchain && (
45
+ <BlockchainsChip
46
+ selected={category === blockchainCategory}
47
+ key={blockchainCategory}
48
+ onClick={() => setCategory(blockchainCategory)}>
49
+ {Logo && (
50
+ <>
51
+ <Logo size={28} />
52
+ <Divider size={12} />
53
+ </>
54
+ )}
55
+ <Typography
56
+ size="xsmall"
57
+ variant="body"
58
+ color={
59
+ blockchainCategory === BlockchainCategories.ALL
60
+ ? 'secondary500'
61
+ : undefined
62
+ }>
63
+ {i18n.t({
64
+ id: '{blockchainCategory}',
65
+ values: {
66
+ blockchainCategory:
67
+ blockchainCategoryLabel[blockchainCategory],
68
+ },
69
+ })}
70
+ </Typography>
71
+ </BlockchainsChip>
72
+ )
73
+ );
74
+ })}
74
75
  </Container>
75
76
  );
76
77
  }
@@ -1,2 +1,3 @@
1
1
  export { SelectableCategoryList } from './SelectableCategoryList';
2
2
  export { BlockchainCategories } from './SelectableCategoryList.types';
3
+ export { getCountCategories } from './SelectableCategoryList.helpers';
@@ -2,8 +2,8 @@ import type { PropsWithChildren } from 'react';
2
2
 
3
3
  import React, { useEffect, useState } from 'react';
4
4
 
5
- import { getConciseAddress } from '../../helper';
6
5
  import { styled } from '../../theme';
6
+ import { getConciseAddress } from '../../utils';
7
7
  import { Image } from '../common';
8
8
  import { Typography } from '../Typography';
9
9
 
@@ -5,12 +5,13 @@ import React from 'react';
5
5
  import { SkeletonContainer } from './Skeleton.styles';
6
6
 
7
7
  export function Skeleton(props: PropTypes) {
8
+ const { width = '100%' } = props;
8
9
  const customCss =
9
10
  props.variant !== 'text'
10
11
  ? {
11
- width: props.width,
12
+ width,
12
13
  height: props.height,
13
14
  }
14
- : { width: props.width };
15
+ : { width };
15
16
  return <SkeletonContainer css={customCss} {...props} />;
16
17
  }
@@ -8,7 +8,7 @@ type BaseSizes = Exclude<BaseProps['size'], object>;
8
8
  type TextVariant = {
9
9
  variant: 'text';
10
10
  size: BaseSizes;
11
- width: number;
11
+ width?: number;
12
12
  };
13
13
 
14
14
  type OtherVariant = {
@@ -17,7 +17,7 @@ type Story = StoryObj<typeof StepDetails>;
17
17
  export const Main: Story = {
18
18
  args: {
19
19
  step: { ...step1, alerts: <Alert title="test alert" type="warning" /> },
20
- type: 'route-progress',
20
+ type: 'swap-progress',
21
21
  state: 'completed',
22
22
  },
23
23
  };
@@ -1,3 +1,5 @@
1
+ import { css } from '@stitches/react';
2
+
1
3
  import { darkTheme, styled } from '../../theme';
2
4
 
3
5
  export const Container = styled('div', {
@@ -8,8 +10,8 @@ export const Container = styled('div', {
8
10
  border: '1px solid transparent',
9
11
  variants: {
10
12
  type: {
11
- 'route-details': { border: 'none' },
12
- 'route-progress': {
13
+ 'quote-details': { border: 'none' },
14
+ 'swap-progress': {
13
15
  $$color: '$colors$neutral100',
14
16
  [`.${darkTheme} &`]: {
15
17
  $$color: '$colors$neutral300',
@@ -31,40 +33,16 @@ export const Container = styled('div', {
31
33
  error: { borderColor: '$error500' },
32
34
  },
33
35
  },
34
- '& .swapper': {
35
- display: 'flex',
36
- alignItems: 'center',
37
- },
38
36
  '& .swapper__description': {
39
37
  fontWeight: '$medium',
40
38
  },
41
- '& .step-info': {
42
- display: 'flex',
43
- flex: '1',
44
- width: '100%',
45
- alignItems: 'start',
46
- variants: {
47
- tx: {
48
- true: {
49
- paddingLeft: '36px',
50
- },
51
- },
52
- },
53
- },
54
39
  '& div:nth-child(3)': { display: 'flex', flexDirection: 'column', flex: 1 },
55
- '& .tokens-container': { width: '100%' },
56
- '& .tokens': {
57
- display: 'flex',
58
- paddingTop: '$5',
59
- paddingBottom: '$10',
60
- alignItems: 'center',
61
- },
62
40
  });
63
41
 
64
42
  export const SwapperImage = styled('div', {
65
43
  borderRadius: '100%',
66
- width: 'max-content',
67
- height: 'max-content',
44
+ width: '24px',
45
+ height: '24px',
68
46
  overflow: 'hidden',
69
47
  border: '1.5px solid transparent',
70
48
  variants: {
@@ -131,3 +109,33 @@ export const StepSeparator = styled('div', {
131
109
  },
132
110
  },
133
111
  });
112
+
113
+ export const tokensContainerStyles = css({
114
+ width: '100%',
115
+ });
116
+
117
+ export const swapperStyles = css({
118
+ display: 'flex',
119
+ alignItems: 'center',
120
+ });
121
+
122
+ export const stepInfoStyles = css({
123
+ display: 'flex',
124
+ flex: '1',
125
+ width: '100%',
126
+ alignItems: 'start',
127
+ variants: {
128
+ tx: {
129
+ true: {
130
+ paddingLeft: '36px',
131
+ },
132
+ },
133
+ },
134
+ });
135
+
136
+ export const tokensStyles = css({
137
+ display: 'flex',
138
+ paddingTop: '$5',
139
+ paddingBottom: '$10',
140
+ alignItems: 'center',
141
+ });
@@ -13,8 +13,12 @@ import {
13
13
  Alerts,
14
14
  Container,
15
15
  DashedLine,
16
+ stepInfoStyles,
16
17
  StepSeparator,
17
18
  SwapperImage,
19
+ swapperStyles,
20
+ tokensContainerStyles,
21
+ tokensStyles,
18
22
  } from './StepDetails.styles';
19
23
 
20
24
  const StepDetailsComponent = forwardRef<HTMLDivElement, StepDetailsProps>(
@@ -39,8 +43,8 @@ const StepDetailsComponent = forwardRef<HTMLDivElement, StepDetailsProps>(
39
43
  state={state}
40
44
  ref={containerRef}
41
45
  tabIndex={tabIndex}>
42
- <div className="swapper">
43
- {type === 'route-progress' && hasSeparator && (
46
+ <div className={swapperStyles()}>
47
+ {type === 'swap-progress' && hasSeparator && (
44
48
  <StepSeparator state={state} />
45
49
  )}
46
50
  <SwapperImage state={state}>
@@ -60,10 +64,10 @@ const StepDetailsComponent = forwardRef<HTMLDivElement, StepDetailsProps>(
60
64
  })}
61
65
  </Typography>
62
66
  </div>
63
- <div className="step-info">
64
- <DashedLine invisible={!hasSeparator || type === 'route-progress'} />
65
- <div className="tokens-container">
66
- <div className="tokens">
67
+ <div className={stepInfoStyles()}>
68
+ <DashedLine invisible={!hasSeparator || type === 'swap-progress'} />
69
+ <div className={tokensContainerStyles()}>
70
+ <div className={tokensStyles()}>
67
71
  <ChainToken
68
72
  chainImage={step.from.chain.image}
69
73
  tokenImage={step.from.token.image}
@@ -90,7 +94,7 @@ const StepDetailsComponent = forwardRef<HTMLDivElement, StepDetailsProps>(
90
94
  step.to.price.value
91
95
  } ${step.to.token.displayName}`}</Typography>
92
96
  </div>
93
- <Alerts pb={hasSeparator && type === 'route-details'}>
97
+ <Alerts pb={hasSeparator && type === 'quote-details'}>
94
98
  {step.alerts}
95
99
  </Alerts>
96
100
  </div>
@@ -1,9 +1,24 @@
1
- import type { Step } from '../BestRoute/BestRoute.types';
1
+ import type { ReactNode } from 'react';
2
+ import type { SwapInputProps } from 'src/containers/SwapInput/SwapInput.types';
3
+
4
+ type BaseStep = Pick<SwapInputProps, 'chain' | 'token' | 'price'>;
5
+
6
+ export type Step = {
7
+ swapper: SwapInputProps['chain'];
8
+ from: BaseStep;
9
+ to: BaseStep;
10
+ error?: {
11
+ title?: string;
12
+ description?: string;
13
+ };
14
+ alerts?: ReactNode;
15
+ state?: 'error' | 'warning';
16
+ };
2
17
 
3
18
  export type StepDetailsProps = {
4
19
  step: Step;
5
20
  hasSeparator: boolean;
6
- type: 'route-details' | 'route-progress';
21
+ type: 'quote-details' | 'swap-progress';
7
22
  state?: 'default' | 'in-progress' | 'completed' | 'warning' | 'error';
8
23
  isFocused?: boolean;
9
24
  tabIndex?: number;
@@ -1,2 +1,2 @@
1
1
  export { StepDetails } from './StepDetails';
2
- export type { StepDetailsProps } from './StepDetails.types';
2
+ export type { StepDetailsProps, Step } from './StepDetails.types';
@@ -1,4 +1,4 @@
1
- import type { Step } from '../BestRoute/BestRoute.types';
1
+ import type { Step } from './StepDetails.types';
2
2
 
3
3
  export const step1: Step = {
4
4
  swapper: {
@@ -28,7 +28,7 @@ export const SvgWithColor = styled('svg', {
28
28
  color: '$info500',
29
29
  },
30
30
  gray: {
31
- color: '$neutral600',
31
+ color: '$neutral700',
32
32
  },
33
33
  },
34
34
  },
@@ -1,11 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-magic-numbers */
2
- // TODO: fix ts errors
3
- // eslint-disable-next-line
4
- // @ts-nocheck
5
2
  import type { SwapTokenData } from './SwapListItem.types';
6
- import type { PendingSwap } from '../../containers/History/types';
3
+ import type { PendingSwap } from 'rango-types';
7
4
 
8
- import { RoutingResultType, TransactionType } from 'rango-sdk';
5
+ import {
6
+ MessageSeverity,
7
+ RoutingResultType,
8
+ TransactionType,
9
+ } from 'rango-types';
9
10
 
10
11
  export const swap: PendingSwap = {
11
12
  creationTime: '1673164511955',
@@ -21,7 +22,7 @@ export const swap: PendingSwap = {
21
22
  status: 'running',
22
23
  isPaused: false,
23
24
  extraMessage: null,
24
- extraMessageSeverity: 'info',
25
+ extraMessageSeverity: MessageSeverity.info,
25
26
  extraMessageDetail: '',
26
27
  extraMessageErrorCode: null,
27
28
  networkStatusExtraMessage: null,
@@ -75,6 +76,7 @@ export const swap: PendingSwap = {
75
76
  expenseType: 'FROM_SOURCE_WALLET',
76
77
  name: 'Network Fee',
77
78
  amount: '0',
79
+ price: null,
78
80
  },
79
81
  ],
80
82
  estimatedTimeInSeconds: 45,
@@ -150,6 +152,7 @@ export const swap: PendingSwap = {
150
152
  includesDestinationTx: false,
151
153
  maxRequiredSign: 1,
152
154
  warnings: [],
155
+ internalSwaps: null,
153
156
  },
154
157
  ],
155
158
  },
@@ -164,16 +167,20 @@ export const swap: PendingSwap = {
164
167
  'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',
165
168
  fromDecimals: 6,
166
169
  fromAmountPrecision: null,
170
+ fromAmountRestrictionType: 'EXCLUSIVE',
171
+ estimatedTimeInSeconds: 5,
167
172
  fromAmountMinValue: null,
168
173
  fromAmountMaxValue: null,
169
174
  toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',
170
175
  fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',
176
+ fromUsdPrice: null,
171
177
  toBlockchain: 'OSMOSIS',
172
178
  fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',
173
179
  toSymbol: 'OSMO',
174
180
  toSymbolAddress: null,
175
181
  toDecimals: 6,
176
182
  toLogo: 'https://api.rango.exchange/i/mJQPS2',
183
+ toUsdPrice: null,
177
184
  startTransactionTime: 1673164519916,
178
185
  swapperId: 'Osmosis',
179
186
  swapperLogo: 'https://api.rango.exchange/swappers/osmosis.png',
@@ -189,6 +196,13 @@ export const swap: PendingSwap = {
189
196
  description: null,
190
197
  },
191
198
  ],
199
+ starknetApprovalTransaction: null,
200
+ starknetTransaction: null,
201
+ tronApprovalTransaction: null,
202
+ tonTransaction: null,
203
+ tronTransaction: null,
204
+ feeInUsd: null,
205
+ executedTransactionTime: null,
192
206
  cosmosTransaction: {
193
207
  type: TransactionType.COSMOS,
194
208
  fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',
@@ -276,6 +290,7 @@ export const swap: PendingSwap = {
276
290
  transferTransaction: null,
277
291
  diagnosisUrl: null,
278
292
  internalSteps: null,
293
+ internalSwaps: null,
279
294
  },
280
295
  ],
281
296
  };
@@ -5,13 +5,15 @@ import { darkTheme, styled } from '../../theme';
5
5
  export const StyledSwitchRoot = styled(RadixSwitch.Root, {
6
6
  boxSizing: 'border-box',
7
7
  boxShadow: 'none',
8
- borderStyle: 'solid',
9
8
  width: '24px',
10
9
  height: '16px',
11
- backgroundColor: '$neutral600',
12
- borderColor: '$neutral600',
10
+ $$color: '$colors$neutral600',
11
+ [`.${darkTheme} &`]: {
12
+ $$color: '$colors$neutral700',
13
+ },
14
+ backgroundColor: '$$color',
15
+ border: 'none',
13
16
  borderRadius: '99999px',
14
- position: 'relative',
15
17
  padding: '0',
16
18
  cursor: 'pointer',
17
19
  transition: 'all 0.35s',
@@ -28,9 +30,9 @@ export const StyledSwitchRoot = styled(RadixSwitch.Root, {
28
30
  });
29
31
 
30
32
  export const StyledSwitchThumb = styled(RadixSwitch.Thumb, {
31
- position: 'absolute',
32
- top: '0',
33
33
  boxSizing: 'border-box',
34
+ position: 'relative',
35
+ left: '$2',
34
36
  display: 'block',
35
37
  width: '12px',
36
38
  height: '12px',
@@ -23,9 +23,7 @@ function TextFieldComponent(props: PropsWithChildren<PropTypes>, ref?: Ref) {
23
23
  <>
24
24
  {label && (
25
25
  <>
26
- <Label
27
- className="_text"
28
- {...(inputAttributes.id && { htmlFor: inputAttributes.id })}>
26
+ <Label {...(inputAttributes.id && { htmlFor: inputAttributes.id })}>
29
27
  <Typography variant="label" size="large">
30
28
  {label}
31
29
  </Typography>
@@ -39,10 +37,9 @@ function TextFieldComponent(props: PropsWithChildren<PropTypes>, ref?: Ref) {
39
37
  variant={variant}
40
38
  size={size}
41
39
  style={style}
42
- className="_text">
40
+ className="_text-field">
43
41
  {prefix || null}
44
42
  <Input
45
- className="_text"
46
43
  {...inputAttributes}
47
44
  spellCheck={false}
48
45
  suffix={!!suffix}
@@ -56,5 +53,6 @@ function TextFieldComponent(props: PropsWithChildren<PropTypes>, ref?: Ref) {
56
53
 
57
54
  const TextField = React.forwardRef(TextFieldComponent);
58
55
  TextField.displayName = 'TextField';
56
+ TextField.toString = () => '._text-field';
59
57
 
60
58
  export { TextField };
@@ -1,4 +1,4 @@
1
- import { styled } from '@stitches/react';
1
+ import { css, styled } from '../../theme';
2
2
 
3
3
  export const Container = styled('div', {
4
4
  display: 'flex',
@@ -15,13 +15,15 @@ export const Container = styled('div', {
15
15
  true: { alignItems: 'center', justifyContent: 'center' },
16
16
  },
17
17
  },
18
- '& .token-amount': {
19
- display: 'flex',
20
- justifyContent: 'center',
21
- alignItems: 'center',
22
- },
23
- '& .usd-value': {
24
- display: 'flex',
25
- paddingTop: '$5',
26
- },
18
+ });
19
+
20
+ export const tokenAmountStyles = css({
21
+ display: 'flex',
22
+ justifyContent: 'center',
23
+ alignItems: 'center',
24
+ });
25
+
26
+ export const usdValueStyles = css({
27
+ display: 'flex',
28
+ paddingTop: '$5',
27
29
  });
@@ -6,12 +6,16 @@ import { ChainToken } from '../ChainToken';
6
6
  import { PriceImpact } from '../PriceImpact/PriceImpact';
7
7
  import { Typography } from '../Typography';
8
8
 
9
- import { Container } from './TokenAmount.styles';
9
+ import {
10
+ Container,
11
+ tokenAmountStyles,
12
+ usdValueStyles,
13
+ } from './TokenAmount.styles';
10
14
 
11
15
  export function TokenAmount(props: PropTypes) {
12
16
  return (
13
17
  <Container direction={props.direction} centerAlign={props.centerAlign}>
14
- <div className="token-amount">
18
+ <div className={tokenAmountStyles()}>
15
19
  <ChainToken
16
20
  chainImage={props.chain.image}
17
21
  tokenImage={props.token.image}
@@ -41,21 +45,23 @@ export function TokenAmount(props: PropTypes) {
41
45
  </div>
42
46
  </div>
43
47
  </div>
44
- <div className="usd-value">
45
- {props.type === 'input' && (
46
- <Typography mr={4} size="small" variant="body" color="$neutral700">
47
- {`~$${props.price.usdValue}`}
48
- </Typography>
49
- )}
50
- {props.type === 'output' && (
51
- <PriceImpact
52
- size="small"
53
- outputUsdValue={props.price.usdValue}
54
- percentageChange={props.percentageChange}
55
- warningLevel={props.warningLevel}
56
- />
57
- )}
58
- </div>
48
+ {props.price.usdValue && props.price.usdValue !== '0' && (
49
+ <div className={usdValueStyles()}>
50
+ {props.type === 'input' && (
51
+ <Typography mr={4} size="small" variant="body" color="$neutral700">
52
+ {`~$${props.price.usdValue}`}
53
+ </Typography>
54
+ )}
55
+ {props.type === 'output' && (
56
+ <PriceImpact
57
+ size="small"
58
+ outputUsdValue={props.price.usdValue}
59
+ percentageChange={props.percentageChange}
60
+ warningLevel={props.warningLevel}
61
+ />
62
+ )}
63
+ </div>
64
+ )}
59
65
  </Container>
60
66
  );
61
67
  }
@@ -7,13 +7,16 @@ export const TooltipContent = styled(RadixTooltip.Content, {
7
7
  zIndex: '999999',
8
8
  });
9
9
 
10
- export const TooltipArrow = styled(RadixTooltip.Arrow, {
11
- fill: '$neutral100',
12
- });
13
-
14
10
  export const TooltipTypography = styled(Typography, {
15
11
  borderRadius: '$md',
16
12
  padding: '$5 $10',
17
- boxShadow: '5px 5px 10px 0px rgba(0, 0, 0, 0.10)',
13
+ boxShadow:
14
+ 'inset 0 0 0.5px 1px rgba(255, 255, 255, 0.075), 0 0 0 1px rgba(0, 0, 0, 0.05), 0 0.3px 0.4px rgba(0, 0, 0, 0.02), 0.9px 1.5px rgba(0, 0, 0, 0.045), 0 3.5px 6px rgba(0, 0, 0, 0.09)',
18
15
  backgroundColor: '$neutral100',
19
16
  });
17
+
18
+ export const TriggerContent = styled('div', {
19
+ display: 'flex',
20
+ justifyContent: 'center',
21
+ alignItems: 'center',
22
+ });
@@ -5,9 +5,9 @@ import * as RadixTooltip from '@radix-ui/react-tooltip';
5
5
  import React from 'react';
6
6
 
7
7
  import {
8
- TooltipArrow,
9
8
  TooltipContent,
10
9
  TooltipTypography,
10
+ TriggerContent,
11
11
  } from './Tooltip.styles';
12
12
 
13
13
  export function Tooltip(props: PropsWithChildren<PropTypes>) {
@@ -24,14 +24,13 @@ export function Tooltip(props: PropsWithChildren<PropTypes>) {
24
24
  <RadixTooltip.Provider delayDuration={0}>
25
25
  <RadixTooltip.Root open={open}>
26
26
  <RadixTooltip.Trigger asChild>
27
- <div>{children}</div>
27
+ <TriggerContent>{children}</TriggerContent>
28
28
  </RadixTooltip.Trigger>
29
29
  <RadixTooltip.Portal container={container}>
30
30
  <TooltipContent side={side} sideOffset={sideOffset}>
31
31
  <TooltipTypography variant="label" size="medium" color={color}>
32
32
  {content}
33
33
  </TooltipTypography>
34
- <TooltipArrow />
35
34
  </TooltipContent>
36
35
  </RadixTooltip.Portal>
37
36
  </RadixTooltip.Root>
@@ -30,7 +30,7 @@ export const WalletButton = styled('button', {
30
30
  backgroundColor: '$$color',
31
31
  alignItems: 'center',
32
32
  cursor: 'pointer',
33
- width: 110,
33
+ width: 100,
34
34
  position: 'relative',
35
35
  fontFamily: 'inherit',
36
36
  '&:hover': {