@rango-dev/ui 0.22.1-next.17 → 0.22.1-next.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.js +6 -6
  2. package/dist/index.js.map +4 -4
  3. package/dist/widget/ui/src/components/Alert/Alert.styles.d.ts +157 -0
  4. package/dist/widget/ui/src/components/Alert/Alert.styles.d.ts.map +1 -1
  5. package/dist/widget/ui/src/components/BlockchainsChip/BlockchainsChip.styles.d.ts.map +1 -1
  6. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.d.ts.map +1 -1
  7. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.styles.d.ts +314 -0
  8. package/dist/widget/ui/src/components/QuoteCost/QuoteCost.styles.d.ts.map +1 -1
  9. package/dist/widget/ui/src/components/StepDetails/StepDetails.d.ts.map +1 -1
  10. package/dist/widget/ui/src/components/StepDetails/StepDetails.styles.d.ts +6 -0
  11. package/dist/widget/ui/src/components/StepDetails/StepDetails.styles.d.ts.map +1 -1
  12. package/dist/widget/ui/src/components/TokenAmount/TokenAmount.d.ts.map +1 -1
  13. package/dist/widget/ui/src/components/TokenAmount/TokenAmount.styles.d.ts +471 -1
  14. package/dist/widget/ui/src/components/TokenAmount/TokenAmount.styles.d.ts.map +1 -1
  15. package/dist/widget/ui/src/components/Wallet/Wallet.types.d.ts +3 -17
  16. package/dist/widget/ui/src/components/Wallet/Wallet.types.d.ts.map +1 -1
  17. package/dist/widget/ui/src/components/common/Image.d.ts +157 -0
  18. package/dist/widget/ui/src/components/common/Image.d.ts.map +1 -1
  19. package/dist/widget/ui/src/components/common/index.d.ts +1 -1
  20. package/dist/widget/ui/src/components/common/index.d.ts.map +1 -1
  21. package/dist/widget/ui/src/containers/SwapInput/SwapInput.d.ts.map +1 -1
  22. package/dist/widget/ui/src/containers/SwapInput/SwapInput.styles.d.ts +942 -0
  23. package/dist/widget/ui/src/containers/SwapInput/SwapInput.styles.d.ts.map +1 -1
  24. package/dist/widget/ui/src/containers/SwapInput/TokenSection.d.ts.map +1 -1
  25. package/dist/widget/ui/src/containers/SwapInput/TokenSection.styles.d.ts +471 -0
  26. package/dist/widget/ui/src/containers/SwapInput/TokenSection.styles.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/src/components/Alert/Alert.styles.ts +7 -7
  29. package/src/components/Alert/Alert.tsx +2 -2
  30. package/src/components/BlockchainsChip/BlockchainsChip.styles.ts +2 -1
  31. package/src/components/QuoteCost/QuoteCost.styles.ts +14 -12
  32. package/src/components/QuoteCost/QuoteCost.tsx +12 -7
  33. package/src/components/StepDetails/StepDetails.styles.ts +32 -24
  34. package/src/components/StepDetails/StepDetails.tsx +8 -4
  35. package/src/components/TokenAmount/TokenAmount.styles.ts +12 -10
  36. package/src/components/TokenAmount/TokenAmount.tsx +7 -3
  37. package/src/components/Wallet/Wallet.types.ts +3 -23
  38. package/src/components/common/Image.tsx +1 -2
  39. package/src/components/common/index.ts +1 -1
  40. package/src/containers/SwapInput/SwapInput.styles.ts +34 -27
  41. package/src/containers/SwapInput/SwapInput.tsx +14 -8
  42. package/src/containers/SwapInput/TokenSection.styles.ts +16 -13
  43. package/src/containers/SwapInput/TokenSection.tsx +10 -4
@@ -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', {
@@ -31,34 +33,10 @@ 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', {
@@ -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,7 +43,7 @@ const StepDetailsComponent = forwardRef<HTMLDivElement, StepDetailsProps>(
39
43
  state={state}
40
44
  ref={containerRef}
41
45
  tabIndex={tabIndex}>
42
- <div className="swapper">
46
+ <div className={swapperStyles()}>
43
47
  {type === 'swap-progress' && hasSeparator && (
44
48
  <StepSeparator state={state} />
45
49
  )}
@@ -60,10 +64,10 @@ const StepDetailsComponent = forwardRef<HTMLDivElement, StepDetailsProps>(
60
64
  })}
61
65
  </Typography>
62
66
  </div>
63
- <div className="step-info">
67
+ <div className={stepInfoStyles()}>
64
68
  <DashedLine invisible={!hasSeparator || type === 'swap-progress'} />
65
- <div className="tokens-container">
66
- <div className="tokens">
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}
@@ -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}
@@ -42,7 +46,7 @@ export function TokenAmount(props: PropTypes) {
42
46
  </div>
43
47
  </div>
44
48
  {props.price.usdValue && props.price.usdValue !== '0' && (
45
- <div className="usd-value">
49
+ <div className={usdValueStyles()}>
46
50
  {props.type === 'input' && (
47
51
  <Typography mr={4} size="small" variant="body" color="$neutral700">
48
52
  {`~$${props.price.usdValue}`}
@@ -21,26 +21,6 @@ export interface Info {
21
21
  tooltipText: string;
22
22
  }
23
23
 
24
- interface StateConnected {
25
- state: WalletState.CONNECTED;
26
- }
27
- interface StateDisconnected {
28
- state: WalletState.DISCONNECTED;
29
- }
30
- interface StateConnecting {
31
- state: WalletState.CONNECTING;
32
- }
33
- interface StateNotInstalled {
34
- state: WalletState.NOT_INSTALLED;
35
- link: InstallObjects | string;
36
- }
37
-
38
- type State =
39
- | StateConnected
40
- | StateDisconnected
41
- | StateConnecting
42
- | StateNotInstalled;
43
-
44
24
  export interface ContentProps {
45
25
  image: string;
46
26
  title: string;
@@ -48,9 +28,11 @@ export interface ContentProps {
48
28
  descriptionColor?: string;
49
29
  }
50
30
 
51
- interface WalletProps {
31
+ export interface WalletPropTypes {
32
+ state: WalletState;
52
33
  title: string;
53
34
  image: string;
35
+ link: InstallObjects | string;
54
36
  type: WalletType;
55
37
  onClick: (type: WalletType) => void;
56
38
  selected?: boolean;
@@ -59,8 +41,6 @@ interface WalletProps {
59
41
  container?: HTMLElement;
60
42
  }
61
43
 
62
- export type WalletPropTypes = State & WalletProps;
63
-
64
44
  export type SelectablePropTypes = WalletPropTypes & {
65
45
  selected: boolean;
66
46
  };
@@ -2,7 +2,7 @@ import React from 'react';
2
2
 
3
3
  import { styled } from '../../theme';
4
4
 
5
- const ImageContainer = styled('div', {
5
+ export const ImageContainer = styled('div', {
6
6
  display: 'flex',
7
7
  justifyContent: 'center',
8
8
  alignItems: 'center',
@@ -37,7 +37,6 @@ export function Image(props: PropTypes) {
37
37
 
38
38
  return (
39
39
  <ImageContainer
40
- className="image-container"
41
40
  css={{
42
41
  width: size + 'px',
43
42
  height: size + 'px',
@@ -1,2 +1,2 @@
1
1
  export { FilledCircle } from './FilledCircle';
2
- export { Image } from './Image';
2
+ export { Image, ImageContainer } from './Image';
@@ -1,5 +1,7 @@
1
1
  import { Button, TextField } from '../../components';
2
- import { darkTheme, styled } from '../../theme';
2
+ import { css, darkTheme, styled } from '../../theme';
3
+
4
+ export const textStyles = css();
3
5
 
4
6
  export const Container = styled('div', {
5
7
  $$color: '$colors$neutral100',
@@ -17,38 +19,13 @@ export const Container = styled('div', {
17
19
  },
18
20
  },
19
21
  },
20
- '& .gray-text': {
22
+ [`& .${textStyles}`]: {
21
23
  $$color: '$colors$neutral600',
22
24
  [`.${darkTheme} &`]: {
23
25
  $$color: '$colors$neutral700',
24
26
  },
25
27
  color: '$$color',
26
28
  },
27
- '& .label__container': {
28
- paddingBottom: '$5',
29
- },
30
- '& .label': {
31
- display: 'flex',
32
- justifyContent: 'space-between',
33
- alignItems: 'center',
34
- },
35
- '& .balance': {
36
- display: 'flex',
37
- justifyContent: 'center',
38
- alignItems: 'center',
39
- },
40
- '& .form': {
41
- display: 'flex',
42
- justifyContent: 'space-between',
43
- alignItems: 'center',
44
- },
45
- '& .amount': {
46
- display: 'flex',
47
- flexDirection: 'column',
48
- justifyContent: 'center',
49
- alignItems: 'end',
50
- flexGrow: 1,
51
- },
52
29
  });
53
30
 
54
31
  export const InputAmount = styled(TextField, {
@@ -95,3 +72,33 @@ export const ValueTypography = styled('div', {
95
72
  },
96
73
  },
97
74
  });
75
+
76
+ export const formStyles = css({
77
+ display: 'flex',
78
+ justifyContent: 'space-between',
79
+ alignItems: 'center',
80
+ });
81
+
82
+ export const labelStyles = css({
83
+ display: 'flex',
84
+ justifyContent: 'space-between',
85
+ alignItems: 'center',
86
+ });
87
+
88
+ export const balanceStyles = css({
89
+ display: 'flex',
90
+ justifyContent: 'center',
91
+ alignItems: 'center',
92
+ });
93
+
94
+ export const amountStyles = css({
95
+ display: 'flex',
96
+ flexDirection: 'column',
97
+ justifyContent: 'center',
98
+ alignItems: 'end',
99
+ flexGrow: 1,
100
+ });
101
+
102
+ export const labelContainerStyles = css({
103
+ paddingBottom: '$5',
104
+ });
@@ -6,9 +6,15 @@ import React from 'react';
6
6
  import { Divider, PriceImpact, Skeleton, Typography } from '../../components';
7
7
 
8
8
  import {
9
+ amountStyles,
10
+ balanceStyles,
9
11
  Container,
12
+ formStyles,
10
13
  InputAmount,
14
+ labelContainerStyles,
15
+ labelStyles,
11
16
  MaxButton,
17
+ textStyles,
12
18
  ValueTypography,
13
19
  } from './SwapInput.styles';
14
20
  import { TokenSection } from './TokenSection';
@@ -16,15 +22,15 @@ import { TokenSection } from './TokenSection';
16
22
  export function SwapInput(props: SwapInputProps) {
17
23
  return (
18
24
  <Container sharpBottomStyle={props.sharpBottomStyle}>
19
- <div className="label__container">
20
- <div className="label">
21
- <Typography variant="body" size="small" className="gray-text">
25
+ <div className={labelContainerStyles()}>
26
+ <div className={labelStyles()}>
27
+ <Typography variant="body" size="small" className={textStyles()}>
22
28
  {props.label}
23
29
  </Typography>
24
30
  {'balance' in props && !props.loading && (
25
- <div className="balance">
31
+ <div className={balanceStyles()}>
26
32
  <Typography
27
- className="gray-text"
33
+ className={textStyles()}
28
34
  mr={4}
29
35
  variant="body"
30
36
  size="xsmall">
@@ -41,13 +47,13 @@ export function SwapInput(props: SwapInputProps) {
41
47
  </div>
42
48
  )}
43
49
  {props.loading && (
44
- <div className="balance">
50
+ <div className={balanceStyles()}>
45
51
  <Skeleton variant="text" size="large" width={105} />
46
52
  </div>
47
53
  )}
48
54
  </div>
49
55
  </div>
50
- <div className="form">
56
+ <div className={formStyles()}>
51
57
  <TokenSection
52
58
  chain={props.chain.displayName}
53
59
  tokenSymbol={props.token.displayName}
@@ -57,7 +63,7 @@ export function SwapInput(props: SwapInputProps) {
57
63
  onClick={props.onClickToken}
58
64
  loading={props.loading}
59
65
  />
60
- <div className="amount">
66
+ <div className={amountStyles()}>
61
67
  {props.loading || (props.mode === 'To' && props.fetchingQuote) ? (
62
68
  <>
63
69
  <Skeleton variant="text" size="large" width={92} />
@@ -1,5 +1,5 @@
1
1
  import { Button } from '../../components';
2
- import { darkTheme, styled } from '../../theme';
2
+ import { css, darkTheme, styled } from '../../theme';
3
3
 
4
4
  export const Container = styled(Button, {
5
5
  maxWidth: '180px',
@@ -28,6 +28,8 @@ export const Container = styled(Button, {
28
28
  },
29
29
  });
30
30
 
31
+ export const chainNameStyles = css();
32
+
31
33
  export const TokenSectionContainer = styled('div', {
32
34
  width: '10.625rem',
33
35
  padding: '$2 $5',
@@ -36,22 +38,23 @@ export const TokenSectionContainer = styled('div', {
36
38
  justifyContent: 'start',
37
39
  boxSizing: 'border-box',
38
40
  alignItems: 'center',
39
-
40
- '& .blockchain-name': {
41
+ [`& .${chainNameStyles}`]: {
41
42
  $$color: '$colors$neutral600',
42
43
  [`.${darkTheme} &`]: {
43
44
  $$color: '$colors$neutral700',
44
45
  },
45
46
  color: '$$color',
46
47
  },
47
- '& .token-chain-name': {
48
- display: 'flex',
49
- flexDirection: 'column',
50
- justifyContent: 'center',
51
- alignItems: 'start',
52
- paddingLeft: '$10',
53
- },
54
- '& .token-chain-name__skeleton': {
55
- padding: '$5 $0',
56
- },
48
+ });
49
+
50
+ export const tokenChainStyles = css({
51
+ display: 'flex',
52
+ flexDirection: 'column',
53
+ justifyContent: 'center',
54
+ alignItems: 'start',
55
+ paddingLeft: '$10',
56
+ });
57
+
58
+ export const skeletonStyles = css({
59
+ padding: '$5 $0',
57
60
  });
@@ -5,7 +5,13 @@ import React from 'react';
5
5
 
6
6
  import { ChainToken, Divider, Skeleton, Typography } from '../../components';
7
7
 
8
- import { Container, TokenSectionContainer } from './TokenSection.styles';
8
+ import {
9
+ chainNameStyles,
10
+ Container,
11
+ skeletonStyles,
12
+ tokenChainStyles,
13
+ TokenSectionContainer,
14
+ } from './TokenSection.styles';
9
15
 
10
16
  export function TokenSection(props: TokenSectionProps) {
11
17
  const {
@@ -27,9 +33,9 @@ export function TokenSection(props: TokenSectionProps) {
27
33
  tokenImage={tokenImage}
28
34
  loading={loading}
29
35
  />
30
- <div className="token-chain-name">
36
+ <div className={tokenChainStyles()}>
31
37
  {loading ? (
32
- <div className="token-chain-name__skeleton">
38
+ <div className={skeletonStyles()}>
33
39
  <Skeleton variant="text" size="large" width={92} />
34
40
  <Divider size={8} />
35
41
  <Skeleton variant="text" size="medium" width={92} />
@@ -44,7 +50,7 @@ export function TokenSection(props: TokenSectionProps) {
44
50
  <Typography
45
51
  variant="body"
46
52
  size="medium"
47
- className="blockchain-name">
53
+ className={chainNameStyles()}>
48
54
  {error || (!loading && !chain) ? i18n.t('Chain') : chain}
49
55
  </Typography>
50
56
  </>