@rango-dev/ui 0.1.10-next.92 → 0.1.10
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.
- package/README.md +1 -181
- package/dist/components/Alert/LoadingFailedAlert.d.ts +2 -0
- package/dist/components/Alert/NotFoundAlert.d.ts +7 -0
- package/dist/components/Alert/index.d.ts +1 -0
- package/dist/components/BlockchainSelector/BlockchainSelector.d.ts +1 -1
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Divider/Divider.d.ts +6 -0
- package/dist/components/Divider/index.d.ts +1 -0
- package/dist/components/Header/Header.d.ts +9 -0
- package/dist/components/Header/index.d.ts +1 -0
- package/dist/components/Icon/ArrowRightIcon.d.ts +3 -0
- package/dist/components/Icon/index.d.ts +1 -0
- package/dist/components/LiquiditySourceList/LiquiditySourceList.d.ts +3 -1
- package/dist/components/LiquiditySourcesSelector/LiquiditySourcesSelector.d.ts +2 -1
- package/dist/components/SelectableWalletList/mock.d.ts +1 -1
- package/dist/components/Settings/Settings.d.ts +2 -1
- package/dist/components/SwapContainer/SwapContainer.d.ts +1 -0
- package/dist/components/SwapDetail/Token.d.ts +16 -0
- package/dist/components/TokenSelector/TokenSelector.d.ts +3 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/containers/ConfirmSwap/ConfirmSwap.d.ts +10 -17
- package/dist/containers/ConfirmSwap/ConfirmSwap.stories.d.ts +1 -0
- package/dist/containers/ConfirmSwap/mock.d.ts +3 -0
- package/dist/containers/History/History.d.ts +6 -1
- package/dist/containers/History/index.d.ts +1 -1
- package/dist/containers/History/types.d.ts +3 -24
- package/dist/containers/SwapHistory/SwapHistory.d.ts +16 -3
- package/dist/containers/SwapHistory/SwapMessages.d.ts +17 -0
- package/dist/containers/index.d.ts +0 -1
- package/dist/helper/index.d.ts +1 -0
- package/dist/types/meta.d.ts +1 -0
- package/dist/ui.cjs.development.js +1062 -838
- package/dist/ui.cjs.development.js.map +1 -1
- package/dist/ui.cjs.production.min.js +1 -1
- package/dist/ui.cjs.production.min.js.map +1 -1
- package/dist/ui.esm.js +1061 -840
- package/dist/ui.esm.js.map +1 -1
- package/package.json +3 -2
- package/src/components/Alert/Alert.tsx +33 -12
- package/src/components/Alert/LoadingFailedAlert.tsx +11 -0
- package/src/components/Alert/NotFoundAlert.tsx +19 -0
- package/src/components/Alert/index.ts +1 -0
- package/src/components/BestRoute/mock.ts +10 -0
- package/src/components/BlockchainSelector/BlockchainSelector.tsx +13 -19
- package/src/components/Button/Button.tsx +2 -1
- package/src/components/ConnectWalletsModal/mockData.ts +16 -0
- package/src/components/Divider/Divider.tsx +41 -0
- package/src/components/Divider/index.ts +1 -0
- package/src/components/Header/Header.tsx +39 -0
- package/src/components/Header/index.ts +1 -0
- package/src/components/Icon/ArrowRightIcon.tsx +31 -0
- package/src/components/Icon/index.ts +1 -0
- package/src/components/LiquiditySourceList/LiquiditySourceList.tsx +72 -22
- package/src/components/LiquiditySourcesSelector/LiquiditySourcesSelector.tsx +15 -10
- package/src/components/SecondaryPage/SecondaryPage.tsx +26 -52
- package/src/components/SelectableWalletList/SelectableWalletList.tsx +5 -0
- package/src/components/SelectableWalletList/mock.ts +4 -3
- package/src/components/Settings/Settings.tsx +30 -11
- package/src/components/StatusDrawer/StatusDrawer.tsx +1 -0
- package/src/components/StepDetail/StepDetail.tsx +1 -0
- package/src/components/SwapContainer/SwapContainer.tsx +21 -16
- package/src/components/SwapDetail/SwapDetail.tsx +77 -115
- package/src/components/SwapDetail/Token.tsx +68 -0
- package/src/components/SwapDetail/mock.ts +1 -0
- package/src/components/TextField/TextField.tsx +1 -0
- package/src/components/TokenList/TokenItem.tsx +4 -1
- package/src/components/TokenList/TokenList.tsx +16 -18
- package/src/components/TokenSelector/TokenSelector.tsx +47 -10
- package/src/components/Wallet/Wallet.tsx +1 -1
- package/src/components/index.ts +2 -0
- package/src/containers/ConfirmSwap/ConfirmSwap.stories.tsx +11 -2
- package/src/containers/ConfirmSwap/ConfirmSwap.tsx +103 -117
- package/src/containers/ConfirmSwap/mock.ts +79 -2
- package/src/containers/History/History.tsx +57 -38
- package/src/containers/History/index.ts +1 -1
- package/src/containers/History/mock.ts +1 -0
- package/src/containers/History/types.tsx +2 -30
- package/src/containers/SwapHistory/SwapHistory.tsx +309 -165
- package/src/containers/SwapHistory/SwapMessages.tsx +116 -0
- package/src/containers/SwapHistory/mock.ts +1 -0
- package/src/containers/index.ts +0 -1
- package/src/helper/index.ts +14 -0
- package/src/types/meta.ts +2 -0
- package/dist/containers/ConfirmWallets/ConfirmWallets.d.ts +0 -16
- package/dist/containers/ConfirmWallets/ConfirmWallets.stories.d.ts +0 -6
- package/dist/containers/ConfirmWallets/index.d.ts +0 -1
- package/dist/containers/ConfirmWallets/mock.d.ts +0 -5
- package/dist/helper/swaps.d.ts +0 -5
- package/src/containers/ConfirmWallets/ConfirmWallets.stories.tsx +0 -26
- package/src/containers/ConfirmWallets/ConfirmWallets.tsx +0 -143
- package/src/containers/ConfirmWallets/index.ts +0 -1
- package/src/containers/ConfirmWallets/mock.ts +0 -222
- package/src/helper/swaps.ts +0 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.cjs.production.min.js","sources":["../src/theme.ts","../src/components/Icon/common.ts","../src/components/Icon/DeleteCircleIcon.tsx","../src/components/Icon/CheckSquareIcon.tsx","../src/components/Icon/AddIcon.tsx","../src/components/Icon/InfoCircleIcon.tsx","../src/components/Icon/AddCircleIcon.tsx","../src/components/Icon/MinusCircleIcon.tsx","../src/components/Icon/CheckCircleIcon.tsx","../src/components/Icon/CheckIcon.tsx","../src/components/Icon/BanIcon.tsx","../src/components/Icon/WarningIcon.tsx","../src/components/Icon/HistoryIcon.tsx","../src/components/Icon/GasIcon.tsx","../src/components/Icon/SettingIcon.tsx","../src/components/Icon/TrashIcon.tsx","../src/components/Icon/SearchMinusIcon.tsx","../src/components/Icon/SearchIcon.tsx","../src/components/Icon/AngleRightIcon.tsx","../src/components/Icon/AngleUpIcon.tsx","../src/components/Icon/AngleDownIcon.tsx","../src/components/Icon/AngleLeftIcon.tsx","../src/components/Icon/DownloadIcon.tsx","../src/components/Icon/ChevronRightIcon.tsx","../src/components/Icon/RetryRightIcon.tsx","../src/components/Icon/RetryLeftIcon.tsx","../src/components/Icon/TryAgainIcon.tsx","../src/components/Icon/VerticalSwapIcon.tsx","../src/components/Icon/HorizontalSwapIcon.tsx","../src/components/Icon/RetryIcon.tsx","../src/components/Icon/WalletIconIcon.tsx","../src/components/Icon/AddWalletIcon.tsx","../src/components/Icon/DeleteWalletIcon.tsx","../src/components/Icon/CheckWalletIcon.tsx","../src/components/Icon/SwapWalletIcon.tsx","../src/components/Icon/DisconnectIcon.tsx","../src/components/Icon/BagIcon.tsx","../src/components/Icon/TimeIcon.tsx","../src/components/Icon/CloseIcon.tsx","../src/components/Icon/SignatureIcon.tsx","../src/components/Icon/CopyIcon.tsx","../src/components/Typography/Typography.tsx","../src/components/StepDetail/StepDetail.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/BestRoute/BestRoute.tsx","../src/components/Button/Button.tsx","../src/components/common/FilledCircle.tsx","../src/components/BlockchainsList/BlockchainsList.tsx","../src/components/TextField/TextField.tsx","../src/components/SecondaryPage/SecondaryPage.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Alert/Alert.tsx","../src/helper/index.ts","../src/components/BlockchainSelector/BlockchainSelector.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chip/Chip.tsx","../src/components/Modal/Modal.tsx","../src/types/wallet.ts","../src/components/Wallet/State.tsx","../src/components/Wallet/Wallet.tsx","../src/components/ConnectWalletsModal/ConnectWalletsModal.tsx","../src/components/Switch/Switch.tsx","../src/components/LiquiditySourceList/LiquiditySourceList.tsx","../src/components/LiquiditySourcesSelector/LiquiditySourcesSelector.tsx","../src/components/SelectableWalletList/SelectableWalletList.tsx","../src/components/Radio/Radio.tsx","../src/components/Settings/Settings.tsx","../src/components/SwapContainer/SwapContainer.tsx","../src/components/SwapDetail/SwapDetail.tsx","../src/components/VirtualizedList/VirtualizedList.tsx","../src/components/TokenList/TokenItem.tsx","../src/components/TokenList/TokenList.tsx","../src/components/TokenSelector/TokenSelector.tsx","../src/components/ColorPicker/ColorPicker.tsx","../src/components/Drawer/Drawer.tsx","../src/containers/ConfirmSwap/ConfirmSwap.tsx","../src/containers/ConfirmWallets/ConfirmWallets.tsx","../src/containers/History/History.tsx","../src/helper/swaps.ts","../src/containers/SwapHistory/SwapHistory.tsx"],"sourcesContent":["// TSDX + stiches doesn't work with import statement and has a bug.\n\nimport { PropertyValue, CreateStitches } from '@stitches/react';\nimport { DefaultThemeMap } from '@stitches/react/types/config';\n\n// Solution: (https://github.com/stitchesjs/stitches/issues/833#issuecomment-950707025)\nconst { createStitches } = require('@stitches/react');\n\n/* ----------------------- Values ----------------------- */\nconst theme = {\n colors: {\n primary: '#5FA425',\n primary100: '#9FC87C',\n primary200: '#8FBF66',\n primary300: '#7FB651',\n primary400: '#6FAD3B',\n primary500: '#5FA425',\n primary600: '#4C831E',\n primary700: '#396216',\n primary800: '#26420F',\n primary900: '#132107',\n neutrals200: '#FAFAFA',\n neutrals300: '#EAEAEA',\n neutrals400: '#999999',\n neutrals500: '#888888',\n neutrals600: '#666666',\n neutrals700: '#444444',\n neutrals800: '#333333',\n neutrals900: '#111111',\n background: '#fff',\n foreground: '#000',\n success: '#0070F3',\n success100: '#D3E5FF',\n success300: '#3291FF',\n success500: '#0070F3',\n success700: '#0761D1',\n warning: '#F5A623',\n warning100: '#FFEFCF',\n warning300: '#F7B955',\n warning500: '#F5A623',\n warning700: '#AB570A',\n error: '#FF0000',\n error100: '#F7D4D6',\n error300: '#FF3333',\n error500: '#FF0000',\n error700: '#E60000',\n // Only use this color when you are going to use white for both dark and light theme.\n white: '#fff',\n },\n space: {\n 2: '2px',\n 4: '4px',\n 6: '6px',\n 8: '8px',\n 10: '10px',\n 12: '12px',\n 16: '16px',\n 20: '20px',\n 24: '24px',\n 28: '28px',\n 30: '30px',\n 32: '32px',\n },\n fontSizes: {\n 10: '10px',\n 12: '12px',\n 14: '14px',\n 16: '16px',\n 18: '18px',\n 20: '20px',\n 24: '24px',\n 32: '32px',\n 36: '36px',\n 40: '40px',\n 48: '48px',\n },\n fonts: {},\n fontWeights: {\n 400: '400',\n 500: '500',\n 600: '600',\n 700: '700',\n },\n lineHeights: {},\n letterSpacings: {},\n sizes: {\n 4: '4px',\n 6: '6px',\n 8: '8px',\n 12: '12px',\n 16: '16px',\n 20: '20px',\n 24: '24px',\n 28: '28px',\n 32: '32px',\n 36: '36px',\n 40: '40px',\n 48: '48px',\n },\n borderWidths: {},\n borderStyles: {},\n radii: {\n 5: '8px',\n 10: '12px',\n },\n shadows: {\n s: '0px 3px 5px 3px #f0f2f5, 0px 6px 10px 3px #f0f2f5, 0px 1px 18px 3px #f0f2f5',\n },\n zIndices: {},\n transitions: {},\n};\nconst media = {\n sm: '(min-width: 640px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 1024px)',\n};\nconst utils = {\n bc: (value: PropertyValue<'backgroundColor'>) => ({\n backgroundColor: value,\n }),\n};\n\n/* ----------------------- End of Values ----------------------- */\n\nconst typedCreateStiches = createStitches as CreateStitches;\n\n// Note: it seems there is a bug on tsdx and when it compiles the code, it goes through an error\n// We can directly check it with `tsc` to see if the error is correct or not.\n// We `ignore` it for now, to get safety check on VSCode.\n// @ts-ignore\nexport const { styled, css, createTheme, keyframes, globalCss } =\n typedCreateStiches<\n '',\n typeof media,\n typeof theme,\n DefaultThemeMap,\n // TODO: Make `utils` typesafe as well.\n {}\n >({\n media,\n theme,\n utils,\n });\n\nexport const lightTheme = createTheme({});\n\nexport const darkTheme = createTheme({\n colors: {\n neutrals200: '#111111',\n neutrals300: '#333333',\n neutrals400: '#444444',\n neutrals500: '#666666',\n neutrals600: '#888888',\n neutrals700: '#999999',\n neutrals800: '#EAEAEA',\n neutrals900: '#FAFAFA',\n foreground: '#fff',\n background: '#000',\n },\n shadows: {\n s: '0px 3px 5px 3px #222, 0px 6px 10px 3px #222, 0px 1px 18px 3px #222',\n },\n});\n","import { darkTheme, styled } from '../../theme';\n\nexport const SvgWithStrokeColor = styled('svg', {\n stroke: '$foreground',\n variants: {\n color: {\n primary: {\n stroke: '$primary',\n },\n error: {\n stroke: '$error',\n },\n warning: {\n stroke: '$warning',\n },\n success: {\n stroke: '$success',\n },\n black: {\n $$color: '$colors$foreground',\n [`.${darkTheme} &`]: {\n $$color: '$colors$background',\n },\n stroke: '$$color',\n },\n white: {\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n stroke: '$$color',\n },\n },\n },\n});\n\nexport const SvgWithFillColor = styled('svg', {\n fill: '$foreground',\n variants: {\n color: {\n primary: {\n fill: '$primary',\n },\n error: {\n fill: '$error',\n },\n warning: {\n fill: '$warning',\n },\n success: {\n fill: '$success',\n },\n black: {\n $$color: '$colors$foreground',\n [`.${darkTheme} &`]: {\n $$color: '$colors$background',\n },\n fill: '$$color',\n },\n white: {\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n fill: '$$color',\n },\n },\n },\n});\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const DeleteCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM9.17 14.83l5.66-5.66M14.83 14.83 9.17 9.17\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nDeleteCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const CheckSquareIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M9 22h6c5 0 7-2 7-7V9c0-5-2-7-7-7H9C4 2 2 4 2 9v6c0 5 2 7 7 7Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"m7.75 12 2.83 2.83 5.67-5.66\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nCheckSquareIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const AddIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M6 12h12M12 18V6\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAddIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithFillColor } from './common';\n\nexport const InfoCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM12 8v5\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n <path\n d=\"M11.994 16h.01\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n </SvgWithFillColor>\n );\n};\n\nInfoCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const AddCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM8 12h8M12 16V8\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAddCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const MinusCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M11.92 22c5.5 0 10-4.5 10-10s-4.5-10-10-10-10 4.5-10 10 4.5 10 10 10ZM7.92 12h8\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nMinusCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithFillColor } from './common';\n\nexport const CheckCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n <path\n d=\"m7.75 12 2.83 2.83 5.67-5.66\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n </SvgWithFillColor>\n );\n};\n\nCheckCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const CheckIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n color={color}\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n </SvgWithFillColor>\n );\n};\n\nCheckIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const BanIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10ZM18.9 5l-14 14\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nBanIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const WarningIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M11.994 17h.01\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nWarningIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const HistoryIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </SvgWithStrokeColor>\n );\n};\n\nHistoryIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const GasIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M4 22V5c0-2 1.34-3 3-3h8c1.66 0 3 1 3 3v17H4ZM2.5 22h17\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.89 10h4.23c1.04 0 1.89-.5 1.89-1.89V6.88c0-1.39-.85-1.89-1.89-1.89H8.89C7.85 4.99 7 5.49 7 6.88v1.23C7 9.5 7.85 10 8.89 10ZM7 13h3M18 16.01l4.5-.01v-6l-2-1\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nGasIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const SettingsIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path>\n </SvgWithStrokeColor>\n );\n};\n\nSettingsIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const TrashIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nTrashIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const SearchMinusIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M9 11.7h5M11.5 21a9.5 9.5 0 1 0 0-19 9.5 9.5 0 0 0 0 19ZM22 22l-2-2\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nSearchMinusIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const SearchIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M11.5 21a9.5 9.5 0 1 0 0-19 9.5 9.5 0 0 0 0 19ZM22 22l-2-2\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nSearchIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const AngleRightIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n color={color}\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m8.91 19.92 6.52-6.52c.77-.77.77-2.03 0-2.8L8.91 4.08\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAngleRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const AngleUpIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n color={color}\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M19.92 15.05 13.4 8.53c-.77-.77-2.03-.77-2.8 0l-6.52 6.52\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAngleUpIcon.toString = () => '._icon';\n","import React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const AngleDownIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m19.92 8.95-6.52 6.52c-.77.77-2.03.77-2.8 0L4.08 8.95\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n);\n\nAngleDownIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\nimport { AngleDownIcon } from './AngleDownIcon';\n\nexport const AngleLeftIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n color={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M15 19.92 8.48 13.4c-.77-.77-.77-2.03 0-2.8L15 4.08\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAngleDownIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const DownloadIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M16.44 8.9c3.6.31 5.07 2.16 5.07 6.21v.13c0 4.47-1.79 6.26-6.26 6.26H8.74c-4.47 0-6.26-1.79-6.26-6.26v-.13c0-4.02 1.45-5.87 4.99-6.2M12 2v12.88\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M15.35 12.65 12 16l-3.35-3.35\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nDownloadIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const ChevronRightIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'black', size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n color={color}\n viewBox={`0 0 24 24`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </SvgWithStrokeColor>\n );\n }\n);\n\nChevronRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const RetryRightIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M14.89 5.08c-.87-.26-1.83-.43-2.89-.43-4.79 0-8.67 3.88-8.67 8.67C3.33 18.12 7.21 22 12 22s8.67-3.88 8.67-8.67c0-1.78-.54-3.44-1.46-4.82M16.13 5.32 13.24 2M16.13 5.32l-3.37 2.46\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nRetryRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const RetryLeftIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M9.11 5.08c.87-.26 1.83-.43 2.89-.43 4.79 0 8.67 3.88 8.67 8.67s-3.88 8.67-8.67 8.67-8.67-3.88-8.67-8.67c0-1.78.54-3.44 1.46-4.82M7.87 5.32 10.76 2M7.87 5.32l3.37 2.46\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nRetryLeftIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const TryAgainIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nTryAgainIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const VerticalSwapIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m13.82 6.85 3.04 3.04M13.82 17.15V6.85M10.18 17.15l-3.04-3.04M10.18 6.85v10.3\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nVerticalSwapIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const HorizontalSwapIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m17.15 13.82-3.04 3.04M6.85 13.82h10.3M6.85 10.18l3.04-3.04M17.15 10.18H6.85\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nHorizontalSwapIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const RetryIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'black', size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n color={color}\n viewBox={`0 0 24 24`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <polyline points=\"23 4 23 10 17 10\"></polyline>\n <path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"></path>\n </SvgWithStrokeColor>\n );\n }\n);\n\nRetryIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const WalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n </SvgWithFillColor>\n );\n};\n\nWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const AddWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.569 7.205a3.018 3.018 0 0 0-3.01 3.01v3.076a4.749 4.749 0 0 1 6.5 4.414c0 .808-.206 1.579-.574 2.25h8.564a3.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.97-.82h1.27v-.69a3.018 3.018 0 0 0-3.01-3.01H6.569Zm-4.51 3.01a4.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-.014.014c-.266.26-.414.63-.377 1.022l.001.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.51H7.939a.75.75 0 0 1-.482-1.324c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-5.283-2.533.75.75 0 0 1-1.217-.587v-4.37Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.409 2.655a1.15 1.15 0 0 0-1.555-1.078l-7.94 3a2.098 2.098 0 0 0-1.355 1.968v4.57a.75.75 0 0 1-1.5 0v-4.57c0-1.5.921-2.84 2.324-3.371l7.94-3c1.733-.657 3.586.629 3.586 2.481v3.8a.75.75 0 0 1-1.5 0v-3.8ZM19.787 12.405c-.359 0-.674.14-.902.374l-.014.013c-.266.26-.414.63-.377 1.022v.01c.054.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.759 2.759 0 0 1 .817-2.227Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.559 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM5.309 14.455c-.762 0-1.469.267-2.033.717h-.001a3.22 3.22 0 0 0-1.216 2.533c0 .61.17 1.184.468 1.667l.006.01a3.22 3.22 0 0 0 2.776 1.573 3.155 3.155 0 0 0 2.148-.824c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-3.25-3.25Zm-2.967-.457a4.749 4.749 0 0 1 7.717 3.707c0 .888-.248 1.73-.687 2.446-.25.427-.57.808-.941 1.12a4.656 4.656 0 0 1-3.122 1.184 4.72 4.72 0 0 1-4.062-2.301 4.671 4.671 0 0 1-.688-2.449 4.72 4.72 0 0 1 1.783-3.707Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.07 17.685a.75.75 0 0 1 .75-.75H6.8a.75.75 0 0 1 0 1.5H3.82a.75.75 0 0 1-.75-.75Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.309 15.475a.75.75 0 0 1 .75.75v2.99a.75.75 0 0 1-1.5 0v-2.99a.75.75 0 0 1 .75-.75Z\"\n />\n </SvgWithFillColor>\n );\n};\n\nAddWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const DeleteWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.627 7.205a3.018 3.018 0 0 0-3.01 3.01v3.076a4.749 4.749 0 0 1 6.5 4.414c0 .808-.205 1.579-.573 2.25h8.563a3.018 3.018 0 0 0 3.01-3.01v-.44h-1.15c-1.41 0-2.777-1.03-2.907-2.553a2.759 2.759 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.01H6.627Zm-4.51 3.01a4.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-.675.14-.902.373l-.014.014c-.266.26-.415.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.51H7.997a.75.75 0 0 1-.482-1.325c.243-.203.457-.456.624-.743l.01-.016a3.17 3.17 0 0 0 .468-1.666 3.249 3.249 0 0 0-5.282-2.533.75.75 0 0 1-1.218-.587v-4.37Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.467 2.655a1.15 1.15 0 0 0-1.554-1.079l-7.94 3a2.098 2.098 0 0 0-1.356 1.97v4.569a.75.75 0 1 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.8ZM19.846 12.405c-.359 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.617 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM5.367 14.455c-.761 0-1.468.267-2.032.717h-.002a3.22 3.22 0 0 0-1.216 2.533c0 .61.17 1.183.469 1.666l.006.01a3.22 3.22 0 0 0 2.775 1.574 3.155 3.155 0 0 0 2.148-.825c.243-.203.457-.456.624-.743l.01-.016a3.17 3.17 0 0 0 .468-1.666 3.249 3.249 0 0 0-3.25-3.25ZM2.4 13.998a4.749 4.749 0 0 1 7.717 3.707 4.67 4.67 0 0 1-.687 2.446c-.25.427-.57.808-.94 1.12a4.655 4.655 0 0 1-3.123 1.184 4.72 4.72 0 0 1-4.061-2.301 4.67 4.67 0 0 1-.689-2.449A4.72 4.72 0 0 1 2.4 13.998Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.785 16.106a.75.75 0 0 1 1.06-.003l2.12 2.11a.75.75 0 1 1-1.058 1.064l-2.12-2.11a.75.75 0 0 1-.002-1.061Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.948 16.136a.75.75 0 0 1-.002 1.06l-2.12 2.11a.75.75 0 0 1-1.058-1.063l2.12-2.11a.75.75 0 0 1 1.06.003Z\"\n />\n </SvgWithFillColor>\n );\n};\n\nDeleteWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithFillColor } from './common';\n\nexport const CheckWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.686 7.205a3.018 3.018 0 0 0-3.01 3.01v3.076a4.749 4.749 0 0 1 6.5 4.414c0 .808-.205 1.579-.573 2.25h8.563a3.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.97-.82h1.27v-.69a3.018 3.018 0 0 0-3.01-3.01H6.686Zm-4.51 3.01a4.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-.378 1.022l.001.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.51H8.056a.75.75 0 0 1-.482-1.324c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-5.283-2.533.75.75 0 0 1-1.217-.587v-4.37Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.526 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.921-2.84 2.324-3.371l7.94-3c1.733-.657 3.586.629 3.586 2.481v3.8a.75.75 0 0 1-1.5 0v-3.8ZM19.905 12.405c-.36 0-.675.14-.903.374l-.014.013c-.265.26-.414.63-.377 1.022l.001.01c.053.634.664 1.181 1.413 1.181h1.942a.276.276 0 0 0 .268-.27v-2.06a.276.276 0 0 0-.268-.27h-2.062Zm-1.971-.68a2.743 2.743 0 0 1 1.97-.82h2.107a1.777 1.777 0 0 1 1.724 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.758 2.758 0 0 1 .816-2.227Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.676 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM5.426 14.455c-.762 0-1.469.267-2.033.717h-.001a3.22 3.22 0 0 0-1.216 2.533c0 .61.17 1.184.468 1.667l.006.01a3.22 3.22 0 0 0 2.776 1.573 3.155 3.155 0 0 0 2.148-.824c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-3.25-3.25Zm-2.967-.457a4.749 4.749 0 0 1 7.717 3.707c0 .888-.248 1.73-.687 2.446-.25.427-.57.808-.941 1.12a4.656 4.656 0 0 1-3.122 1.184 4.72 4.72 0 0 1-4.062-2.301 4.671 4.671 0 0 1-.688-2.449 4.72 4.72 0 0 1 1.783-3.707Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.538 16.215a.75.75 0 0 1-.042 1.06l-2.13 1.97a.75.75 0 0 1-1.04-.02l-.99-.99a.75.75 0 1 1 1.062-1.06l.48.48 1.6-1.48a.75.75 0 0 1 1.06.04Z\"\n />\n </SvgWithFillColor>\n );\n};\n\nCheckWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const SwapWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n </SvgWithFillColor>\n );\n};\n\nSwapWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const DisconnectIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'black', size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n color={color}\n viewBox={`0 0 24 24`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"></path>\n <polyline points=\"16 17 21 12 16 7\"></polyline>\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"></line>\n </SvgWithStrokeColor>\n );\n }\n);\n\nDisconnectIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const BagIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 32 32\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <g clipPath=\"url(#a)\" strokeWidth={1.5}>\n <path d=\"M9.333 9.333V4.8a.8.8 0 0 1 .8-.8h11.734a.8.8 0 0 1 .8.8v4.533M13.333 4v5.333M16 4v5.333m9.333 17.334H6.667A2.667 2.667 0 0 1 4 24V12a2.667 2.667 0 0 1 2.667-2.667h18.666A2.667 2.667 0 0 1 28 12v12a2.667 2.667 0 0 1-2.667 2.667Z\" />\n <path\n d=\"M22 18.666a.667.667 0 1 1 0-1.334.667.667 0 0 1 0 1.334Z\"\n fill={color}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill={color} d=\"M0 0h32v32H0z\" />\n </clipPath>\n </defs>\n </SvgWithStrokeColor>\n );\n};\n\nBagIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const TimeIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <circle cx={10} cy={10} r={7.25} strokeWidth={1.5} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n </SvgWithStrokeColor>\n );\n }\n);\n\nTimeIcon.toString = () => '._icon';\n","import { styled } from '../../theme';\nimport { AddIcon } from './AddIcon';\n\nexport const CloseIcon = styled(AddIcon, {\n transform: 'rotate(45deg)',\n cursor: 'pointer',\n});\n\nCloseIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const SignatureIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n color={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 122.88 107.95\"\n xmlSpace=\"preserve\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n style={{\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n />\n </SvgWithFillColor>\n );\n};\n\nSignatureIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const CopyIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 64 64\"\n color={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <g id=\"Text-files\">\n <path\n d=\"M53.9791489,9.1429005H50.010849c-0.0826988,0-0.1562004,0.0283995-0.2331009,0.0469999V5.0228\n\t\tC49.7777481,2.253,47.4731483,0,44.6398468,0h-34.422596C7.3839517,0,5.0793519,2.253,5.0793519,5.0228v46.8432999\n\t\tc0,2.7697983,2.3045998,5.0228004,5.1378999,5.0228004h6.0367002v2.2678986C16.253952,61.8274002,18.4702511,64,21.1954517,64\n\t\th32.783699c2.7252007,0,4.9414978-2.1725998,4.9414978-4.8432007V13.9861002\n\t\tC58.9206467,11.3155003,56.7043495,9.1429005,53.9791489,9.1429005z M7.1110516,51.8661003V5.0228\n\t\tc0-1.6487999,1.3938999-2.9909999,3.1062002-2.9909999h34.422596c1.7123032,0,3.1062012,1.3422,3.1062012,2.9909999v46.8432999\n\t\tc0,1.6487999-1.393898,2.9911003-3.1062012,2.9911003h-34.422596C8.5049515,54.8572006,7.1110516,53.5149002,7.1110516,51.8661003z\n\t\t M56.8888474,59.1567993c0,1.550602-1.3055,2.8115005-2.9096985,2.8115005h-32.783699\n\t\tc-1.6042004,0-2.9097996-1.2608986-2.9097996-2.8115005v-2.2678986h26.3541946\n\t\tc2.8333015,0,5.1379013-2.2530022,5.1379013-5.0228004V11.1275997c0.0769005,0.0186005,0.1504021,0.0469999,0.2331009,0.0469999\n\t\th3.9682999c1.6041985,0,2.9096985,1.2609005,2.9096985,2.8115005V59.1567993z\"\n />\n <path\n d=\"M38.6031494,13.2063999H16.253952c-0.5615005,0-1.0159006,0.4542999-1.0159006,1.0158005\n\t\tc0,0.5615997,0.4544001,1.0158997,1.0159006,1.0158997h22.3491974c0.5615005,0,1.0158997-0.4542999,1.0158997-1.0158997\n\t\tC39.6190491,13.6606998,39.16465,13.2063999,38.6031494,13.2063999z\"\n />\n <path\n d=\"M38.6031494,21.3334007H16.253952c-0.5615005,0-1.0159006,0.4542999-1.0159006,1.0157986\n\t\tc0,0.5615005,0.4544001,1.0159016,1.0159006,1.0159016h22.3491974c0.5615005,0,1.0158997-0.454401,1.0158997-1.0159016\n\t\tC39.6190491,21.7877007,39.16465,21.3334007,38.6031494,21.3334007z\"\n />\n <path\n d=\"M38.6031494,29.4603004H16.253952c-0.5615005,0-1.0159006,0.4543991-1.0159006,1.0158997\n\t\ts0.4544001,1.0158997,1.0159006,1.0158997h22.3491974c0.5615005,0,1.0158997-0.4543991,1.0158997-1.0158997\n\t\tS39.16465,29.4603004,38.6031494,29.4603004z\"\n />\n <path\n d=\"M28.4444485,37.5872993H16.253952c-0.5615005,0-1.0159006,0.4543991-1.0159006,1.0158997\n\t\ts0.4544001,1.0158997,1.0159006,1.0158997h12.1904964c0.5615025,0,1.0158005-0.4543991,1.0158005-1.0158997\n\t\tS29.0059509,37.5872993,28.4444485,37.5872993z\"\n />\n </g>\n </SvgWithFillColor>\n );\n};\n\nCopyIcon.toString = () => '._icon';\n","import { CSSProperties } from '@stitches/react';\nimport React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\n\nconst TypographyContainer = styled('span', {\n margin: 0,\n display: 'inline-block',\n variants: {\n variant: {\n h1: {\n fontSize: '$36',\n fontWeight: '$700',\n '@md': {\n fontSize: '$40',\n },\n '@lg': {\n fontSize: '$48',\n },\n },\n h2: {\n fontSize: '$32',\n fontWeight: '$700',\n '@md': {\n fontSize: '$36',\n },\n '@lg': {\n fontSize: '$40',\n },\n },\n h3: {\n fontSize: '$20',\n fontWeight: '$700',\n '@md': {\n fontSize: '$24',\n },\n '@lg': {\n fontSize: '$32',\n },\n },\n h4: {\n fontSize: '$18',\n fontWeight: '$600',\n '@md': {\n fontSize: '$20',\n },\n '@lg': {\n fontSize: '$24',\n },\n },\n h5: {\n fontSize: '$16',\n fontWeight: '$600',\n },\n h6: {\n fontSize: '$14',\n fontWeight: '$500',\n '@md': {\n fontSize: '$16',\n },\n '@lg': {\n fontSize: '$18',\n },\n },\n body1: {\n fontSize: '$14',\n fontWeight: '$400',\n '@md': {\n fontSize: '$16',\n },\n '@lg': {\n fontSize: '$18',\n },\n },\n body2: {\n fontSize: '$14',\n fontWeight: '$400',\n '@lg': {\n fontSize: '$16',\n },\n },\n body3: {\n fontSize: '$12',\n fontWeight: '$400',\n },\n caption: {\n fontSize: '$10',\n fontWeight: '$400',\n '@lg': {\n fontSize: '$12',\n },\n },\n },\n align: {\n center: {\n textAlign: 'center',\n },\n left: {\n textAlign: 'left',\n },\n right: {\n textAlign: 'right',\n },\n },\n noWrap: {\n true: {\n whiteSpace: 'nowrap',\n },\n },\n ml: {\n 2: {\n marginLeft: '$2',\n },\n 4: {\n marginLeft: '$4',\n },\n 8: {\n marginLeft: '$8',\n },\n 12: {\n marginLeft: '$12',\n },\n },\n mt: {\n 2: {\n marginTop: '$2',\n },\n 4: {\n marginTop: '$4',\n },\n 8: {\n marginTop: '$8',\n },\n 12: {\n marginTop: '$12',\n },\n },\n mr: {\n 2: {\n marginRight: '$2',\n },\n 4: {\n marginRight: '$4',\n },\n 8: {\n marginRight: '$8',\n },\n 12: {\n marginRight: '$12',\n },\n },\n mb: {\n 2: {\n marginBottom: '$2',\n },\n 4: {\n marginBottom: '$4',\n },\n 8: {\n marginBottom: '$8',\n },\n 12: {\n marginBottom: '$12',\n },\n },\n },\n});\n\nexport interface PropTypes {\n variant:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'body1'\n | 'body2'\n | 'body3'\n | 'caption';\n align?: 'center' | 'left' | 'right';\n noWrap?: boolean;\n mt?: 2 | 4 | 8 | 12;\n mb?: 2 | 4 | 8 | 12;\n ml?: 2 | 4 | 8 | 12;\n mr?: 2 | 4 | 8 | 12;\n className?: string;\n style?: CSSProperties;\n color?: string;\n}\n\nexport function Typography({\n children,\n className,\n color,\n ...props\n}: PropsWithChildren<PropTypes>) {\n const customCss = color\n ? {\n color: color.startsWith('$') ? color : `$${color}`,\n }\n : {\n color: '$foreground',\n };\n\n return (\n <TypographyContainer\n className={`_typography _text ${className || ''}`}\n css={customCss}\n {...props}\n >\n {children}\n </TypographyContainer>\n );\n}\n\nTypography.toString = () => '._typography';\n","import React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\n\nconst StepLogoContainer = styled('div', {\n position: 'relative',\n width: '$28',\n height: '$28',\n variants: {\n direction: {\n vertical: {\n margin: 'auto',\n },\n horizontal: {},\n },\n },\n});\nconst Logo = styled('img', {\n width: '$28',\n height: '$28',\n borderRadius: '50%',\n});\n\nconst ChainLogo = styled('div', {\n position: 'absolute',\n right: -4,\n bottom: -4,\n width: '$16',\n height: '$16',\n padding: '$2',\n borderRadius: '50%',\n backgroundColor: '$background',\n border: '1px solid $neutrals400',\n\n img: {\n width: '100%',\n display: 'block',\n },\n});\nconst StepContainer = styled('div', {\n display: 'flex',\n variants: {\n direction: {\n horizontal: {\n alignItems: 'center',\n },\n vertical: {\n flexDirection: 'column',\n textAlign: 'center',\n justifyContent: 'center',\n },\n },\n },\n});\nconst Detail = styled('div', {\n variants: {\n pl: {\n true: {\n paddingLeft: '$4',\n '@lg': {\n paddingLeft: '$8',\n },\n },\n false: {\n paddingTop: '$8',\n },\n },\n },\n});\nconst SubTitle = styled(Typography, {\n color: '$neutrals600',\n});\nexport interface PropTypes {\n logo: string;\n chainLogo: string;\n amount: string;\n symbol: string;\n blockchain: string;\n direction?: 'horizontal' | 'vertical';\n}\n\nexport function StepDetail({\n logo,\n chainLogo,\n amount,\n symbol,\n blockchain,\n direction = 'horizontal',\n}: PropsWithChildren<PropTypes>) {\n return (\n <StepContainer direction={direction}>\n <StepLogoContainer direction={direction}>\n <Logo src={logo} alt={symbol} />\n <ChainLogo>\n <img src={chainLogo} alt={blockchain} />\n </ChainLogo>\n </StepLogoContainer>\n <Detail pl={direction === 'horizontal'}>\n <Typography noWrap variant={direction === 'vertical' ? 'body2' : 'h6'}>\n {amount ? parseFloat(amount).toFixed(2) : '?'} {symbol}\n </Typography>\n <SubTitle noWrap variant=\"caption\" color=\"neutrals800\">\n on {blockchain}\n </SubTitle>\n </Detail>\n </StepContainer>\n );\n}\n","import React from 'react';\nimport { keyframes, styled } from '../../theme';\n\nconst waveSquares = keyframes({\n '0%': {\n backgroundPosition: '-468px 0',\n },\n '100%': {\n backgroundPosition: '468px 0',\n },\n});\n\nconst SkeletonContainer = styled('div', {\n borderRadius: '$5',\n backgroundColor: '$neutrals300',\n background: `linear-gradient(to right, rgba(130, 130, 130, 0.2) 8%, rgba(130, 130, 130, 0.3) 18%, rgba(130, 130, 130, 0.2) 33%)`,\n backgroundSize: '800px 100px',\n animation: `${waveSquares} 2s infinite ease-out`,\n variants: {\n width: {\n 16: {\n width: '$16',\n },\n 20: {\n width: '$20',\n },\n 24: {\n width: '$24',\n },\n 36: {\n width: '$36',\n },\n 48: {\n width: '$48',\n },\n },\n height: {\n 16: {\n height: '$16',\n },\n 20: {\n height: '$20',\n },\n 24: {\n height: '$24',\n },\n 36: {\n height: '$36',\n },\n 48: {\n height: '$48',\n },\n 94: {\n height: 94,\n },\n },\n },\n});\nexport interface PropTypes {\n width?: 20 | 24 | 36 | 48;\n height?: 20 | 24 | 36 | 48 | 94;\n}\n\nexport function Skeleton({ width = 20, height = 20 }: PropTypes) {\n return <SkeletonContainer width={width} height={height} />;\n}\n","import React from 'react';\nimport { keyframes, styled } from '../../theme';\n\nconst spin = keyframes({\n '100%': {\n transform: 'rotate(360deg)',\n },\n});\n\nconst SpinnerContainer = styled('div', {\n borderRadius: '50%',\n position: 'relative',\n border: `2px solid $neutrals300`,\n borderRight: `2px solid`,\n animation: `${spin} 1.5s linear infinite`,\n margin: `0px $8`,\n variants: {\n color: {\n primary: {\n borderRightColor: '$primary',\n },\n error: {\n borderRightColor: '$error',\n },\n warning: {\n borderRightColor: '$warning',\n },\n success: {\n borderRightColor: '$success',\n },\n black: {\n borderRightColor: '$black',\n },\n white: {\n borderRightColor: '$white',\n },\n },\n size: {\n 16: {\n width: '$16',\n height: '$16',\n },\n 20: {\n width: '$20',\n height: '$20',\n },\n 24: {\n width: '$24',\n height: '$24',\n },\n },\n },\n});\nexport interface PropTypes {\n size?: 16 | 20 | 24;\n color?: 'primary' | 'error' | 'warning' | 'success' | 'black' | 'white';\n}\n\nexport function Spinner({ size = 16, color = 'primary' }: PropTypes) {\n return <SpinnerContainer size={size} color={color} />;\n}\n","import * as RadixTooltip from '@radix-ui/react-tooltip';\nimport { styled } from '../../theme';\nimport React, { PropsWithChildren } from 'react';\n\nexport interface PropTypes {\n content: string;\n side?: 'top' | 'right' | 'bottom' | 'left';\n color?:\n | 'primary'\n | 'error'\n | 'warning'\n | 'success'\n | 'gray'\n | 'white'\n | 'black';\n}\nconst TooltipTrigger = styled(RadixTooltip.Trigger, {\n border: 0,\n padding: 0,\n\n backgroundColor: 'transparent',\n});\nconst TooltipContent = styled(RadixTooltip.Content, {\n borderRadius: '$5',\n padding: '$4 $8',\n fontSize: '$14',\n animationDuration: '400ms',\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\n willChange: 'transform, opacity',\n variants: {\n color: {\n primary: {\n backgroundColor: '$primary',\n color: '$white',\n },\n error: {\n backgroundColor: '$error',\n color: '$white',\n },\n warning: {\n backgroundColor: '$warning',\n color: '$white',\n },\n success: {\n backgroundColor: '$success',\n color: '$white',\n },\n gray: {\n backgroundColor: '$neutrals300',\n color: '$black',\n },\n black: {\n backgroundColor: '$black',\n color: '$white',\n },\n white: {\n backgroundColor: '$white',\n color: '$black',\n },\n },\n },\n});\nconst TooltipArrow = styled(RadixTooltip.Arrow, {\n variants: {\n color: {\n primary: {\n fill: '$primary',\n },\n error: {\n fill: '$error',\n },\n warning: {\n fill: '$warning',\n },\n success: {\n fill: '$success',\n },\n gray: {\n fill: '$neutrals300',\n },\n black: {\n fill: '$black',\n },\n white: {\n fill: '$white',\n },\n },\n },\n});\n\nconst ChildrenWrapper = styled('div', {\n display: 'inline-block',\n});\n\nexport function Tooltip({\n children,\n content,\n side = 'top',\n color = 'gray',\n}: PropsWithChildren<PropTypes>) {\n return (\n <RadixTooltip.Provider>\n <RadixTooltip.Root>\n <TooltipTrigger asChild>\n <ChildrenWrapper>{children}</ChildrenWrapper>\n </TooltipTrigger>\n <RadixTooltip.Portal>\n <TooltipContent color={color} side={side} sideOffset={5}>\n {content}\n <TooltipArrow color={color} />\n </TooltipContent>\n </RadixTooltip.Portal>\n </RadixTooltip.Root>\n </RadixTooltip.Provider>\n );\n}\n","import React, { Fragment, PropsWithChildren } from 'react';\nimport { GasIcon, TimeIcon } from '../../components/Icon';\nimport { StepDetail } from '../../components/StepDetail';\nimport { Typography } from '../../components/Typography';\nimport { keyframes, styled } from '../../theme';\nimport { Skeleton } from '../Skeleton';\nimport { Spinner } from '../Spinner';\nimport { BestRouteResponse } from 'rango-sdk';\nimport { Tooltip } from '../Tooltip';\n\nconst Container = styled('div', {\n borderRadius: '$5',\n border: '1px solid $neutrals300',\n display: 'flex',\n alignItems: 'center',\n minHeight: 126,\n justifyContent: 'space-between',\n});\n\nconst ErrorMsg = styled(Typography, {\n color: '$error',\n});\nconst BestRouteContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n margin: '0 auto',\n overflowX: 'auto',\n overflowY: 'hidden',\n alignSelf: 'stretch',\n padding: '$4',\n '@md': {\n padding: '$8',\n },\n});\nconst Line = styled('div', {\n height: '0',\n width: '$20',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n '@lg': {\n width: '$32',\n },\n});\n\nconst HR = styled('hr', {\n width: '100%',\n border: '1px solid $neutrals400',\n margin: '$8 0',\n});\n\nconst SwapperLogo = styled('img', {\n width: '$16',\n height: '$16',\n});\nconst RelativeContainer = styled('div', {\n position: 'relative',\n});\nconst Dot = styled('div', {\n width: '$6',\n height: '$6',\n backgroundColor: '$foreground',\n position: 'absolute',\n top: '45%',\n right: -5,\n marginLeft: '$8',\n borderRadius: '50%',\n '@md': {\n width: '$8',\n height: '$8',\n right: -8,\n top: '45%',\n },\n});\nconst ArrowRight = styled('div', {\n width: '0px',\n height: '0px',\n borderTop: '5px solid transparent',\n borderBottom: '5px solid transparent',\n borderLeft: '5px solid $foreground',\n});\n\nexport const pulse = keyframes({\n '0%': {\n opacity: 1,\n },\n '50%': {\n opacity: 0.3,\n },\n '100%': {\n opacity: 1,\n },\n});\n\nconst GasContainer = styled('div', {\n backgroundColor: '$neutrals300',\n borderRadius: '5px',\n margin: '$4',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '$4',\n '@md': {\n padding: '$8',\n margin: '$8',\n },\n});\n\nconst CostContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n variants: {\n warning: {\n true: {\n animation: `${pulse} 2s ease-in-out infinite`,\n },\n },\n },\n});\n\nconst TotalFee = styled(Typography, {\n variants: {\n warning: {\n true: {\n color: '$warning300',\n },\n },\n },\n});\n\nconst SkeletonContainer = styled('div', {\n padding: '$4',\n '@md': {\n padding: '$8',\n },\n});\nconst SwapperContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nexport interface PropTypes {\n data: BestRouteResponse | null;\n totalFee: string;\n feeWarning: boolean;\n totalTime: string;\n loading?: boolean;\n error?: string;\n}\nexport function BestRoute(props: PropsWithChildren<PropTypes>) {\n const { data, loading, error, totalFee, feeWarning, totalTime } = props;\n return (\n <Container>\n {loading ? (\n <SkeletonContainer>\n <Skeleton width={48} height={94} />\n </SkeletonContainer>\n ) : (\n <GasContainer>\n <Tooltip content=\"Transaction cost (fee)\">\n <CostContainer warning={feeWarning}>\n <GasIcon size={20} color={feeWarning ? 'warning' : undefined} />\n <TotalFee\n mt={4}\n align=\"center\"\n variant=\"caption\"\n warning={feeWarning}\n >\n {error && '-'}\n {!!data && `$${totalFee}`}\n </TotalFee>\n </CostContainer>\n </Tooltip>\n <HR />\n <Tooltip content=\"Time estimate\">\n <CostContainer warning={feeWarning}>\n <TimeIcon size={20} />\n <Typography mt={4} align=\"center\" variant=\"caption\">\n {error && '-'}\n {!!data && `~${totalTime}m`}\n </Typography>\n </CostContainer>\n </Tooltip>\n </GasContainer>\n )}\n <BestRouteContainer>\n {loading && <Spinner color=\"primary\" />}\n\n {error && <ErrorMsg variant=\"caption\">{error}</ErrorMsg>}\n\n {!!data &&\n data.result?.swaps.map((swap, index) => (\n <Fragment key={index}>\n {index === 0 && (\n <RelativeContainer>\n <StepDetail\n direction=\"vertical\"\n logo={swap.from.logo}\n symbol={swap.from.symbol}\n chainLogo={swap.from.blockchainLogo}\n blockchain={swap.from.blockchain}\n amount={swap.fromAmount}\n />\n <Dot />\n </RelativeContainer>\n )}\n <SwapperContainer>\n <Line />\n <SwapperLogo src={swap.swapperLogo} alt={swap.swapperId} />\n <Line />\n </SwapperContainer>\n\n {index + 1 === data.result?.swaps.length && <ArrowRight />}\n <StepDetail\n direction=\"vertical\"\n logo={swap.to.logo}\n symbol={swap.to.symbol}\n chainLogo={swap.to.blockchainLogo}\n blockchain={swap.to.blockchain}\n amount={swap.toAmount}\n />\n </Fragment>\n ))}\n {!!data && !data?.result && (\n <Typography variant=\"body2\">No routes found</Typography>\n )}\n </BestRouteContainer>\n </Container>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { PropsWithChildren, HTMLAttributes } from 'react';\nimport { darkTheme, styled } from '../../theme';\nimport { Spinner } from '../Spinner';\nimport { Typography } from '../Typography';\n\nconst ButtonContainer = styled('button', {\n borderRadius: '$5',\n fontSize: '$16',\n fontWeight: '$400',\n cursor: 'pointer',\n padding: '0 $12',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'all 0.35s',\n border: '0',\n\n '&:active': {\n transform: 'scale(0.95)',\n },\n\n variants: {\n align: {\n start: {\n display: 'flex',\n width: '100%',\n },\n grow: {\n display: 'flex',\n width: '100%',\n },\n },\n size: {\n compact: {},\n small: {\n height: '$32',\n },\n medium: {\n height: '$40',\n },\n large: {\n height: '$48',\n },\n },\n variant: {\n contained: {\n backgroundColor: '$neutrals300',\n color: '$foreground',\n border: 0,\n '&:hover': {\n backgroundColor: '$neutrals200',\n },\n '&:disabled': {\n background: '$neutrals400',\n },\n '&:disabled:hover': {\n background: '$neutrals400',\n transform: 'unset',\n },\n },\n outlined: {\n backgroundColor: '$background',\n border: 1,\n borderStyle: 'solid',\n borderColor: '$neutrals400',\n color: '$foreground',\n '&:hover': {\n borderColor: '$neutrals600',\n },\n '&:disabled': {\n borderColor: '$neutrals300',\n color: '$neutrals400',\n },\n },\n ghost: {\n color: '$foreground',\n '&:hover': {\n backgroundColor: '$neutrals200',\n },\n '&:disabled': {\n color: '$neutrals400 !important',\n },\n background: 'transparent',\n border: 0,\n\n [`& ${Typography}`]: {\n color: 'inherit',\n },\n },\n },\n fullWidth: {\n true: {\n width: '100%',\n },\n },\n loading: {\n true: {},\n },\n type: {\n primary: {},\n error: {},\n warning: {},\n success: {},\n },\n },\n\n compoundVariants: [\n {\n type: 'primary',\n variant: 'contained',\n css: {\n background: '$primary',\n color: '$white',\n '&:hover': {\n background: '$primary700',\n },\n '&:visited': {\n background: '$primary900',\n },\n '&:focus': {\n background: '$primary600',\n },\n },\n },\n {\n type: 'primary',\n variant: 'outlined',\n css: {\n color: '$primary !important',\n borderColor: '$primary',\n '&:hover': {\n color: '$primary700 !important',\n borderColor: '$primary700 !important',\n },\n '&:visited': {\n color: '$primary900 !important',\n borderColor: '$primary900 !important',\n },\n '&:focus': {\n color: '$primary600 !important',\n borderColor: '$primary600 !important',\n },\n },\n },\n {\n type: 'primary',\n variant: 'ghost',\n css: {\n color: '$primary',\n '&:hover': {\n color: '$primary700',\n },\n '&:visited': { color: '$primary900' },\n '&:focus': {\n color: '$primary600',\n },\n },\n },\n {\n type: 'error',\n variant: 'contained',\n css: {\n background: '$error',\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\n '&:hover': {\n background: '$error300',\n },\n '&:visited': {\n background: '$error700',\n },\n '&:focus': {\n background: '$error700',\n },\n },\n },\n {\n type: 'error',\n variant: 'outlined',\n css: {\n color: '$error !important',\n borderColor: '$error',\n '&:hover': {\n color: '$error300 !important',\n borderColor: '$error300 !important',\n },\n '&:visited': {\n color: '$error700 !important',\n borderColor: '$error700 !important',\n },\n '&:focus': {\n color: '$error700 !important',\n borderColor: '$error700 !important',\n },\n },\n },\n {\n type: 'error',\n variant: 'ghost',\n css: {\n color: '$error',\n '&:hover': {\n color: '$error300',\n },\n '&:visited': {\n color: '$error700',\n },\n '&:focus': {\n color: '$error700',\n },\n },\n },\n {\n type: 'warning',\n variant: 'contained',\n css: {\n background: '$warning',\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\n '&:hover': {\n background: '$warning300',\n },\n '&:visited': {\n background: '$warning700',\n },\n '&:focus': {\n background: '$warning700',\n },\n },\n },\n {\n type: 'warning',\n variant: 'outlined',\n css: {\n color: '$warning !important',\n borderColor: '$warning',\n '&:hover': {\n color: '$warning300 !important',\n borderColor: '$warning300 !important',\n },\n '&:visited': {\n color: '$warning700 !important',\n borderColor: '$warning700 !important',\n },\n '&:focus': {\n color: '$warning700 !important',\n borderColor: '$warning700 !important',\n },\n },\n },\n {\n type: 'warning',\n variant: 'ghost',\n css: {\n color: '$warning',\n '&:hover': {\n color: '$warning300',\n },\n '&:visited': {\n color: '$warning700',\n },\n '&:focus': {\n color: '$warning700',\n },\n },\n },\n {\n type: 'success',\n variant: 'contained',\n css: {\n background: '$success',\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\n '&:hover': {\n background: '$success300',\n },\n '&:visited': {\n background: '$success700',\n },\n '&:focus': {\n background: '$success700',\n },\n },\n },\n {\n type: 'success',\n variant: 'outlined',\n css: {\n color: '$success !important',\n borderColor: '$success',\n '&:hover': {\n color: '$success300 !important',\n borderColor: '$success300 !important',\n },\n '&:visited': {\n color: '$success700 !important',\n borderColor: '$success700 !important',\n },\n '&:focus': {\n color: '$success700 !important',\n borderColor: '$success700 !important',\n },\n },\n },\n {\n type: 'success',\n variant: 'ghost',\n css: {\n color: '$success',\n '&:hover': {\n color: '$success300',\n },\n '&:visited': {\n color: '$success700',\n },\n '&:focus': {\n color: '$success700',\n },\n },\n },\n {\n size: 'compact',\n css: {\n padding: '$2 $4',\n fontSize: '$12',\n },\n },\n ],\n defaultVariants: {\n size: 'medium',\n variant: 'contained',\n },\n});\n\nconst Content = styled('div', {\n flex: 1,\n variants: {\n align: {\n start: {\n textAlign: 'left',\n },\n grow: {\n textAlign: 'center',\n },\n },\n ml: {\n true: {\n marginLeft: '$8',\n },\n },\n mr: {\n true: {\n marginRight: '$8',\n },\n },\n flexContent: {\n true: {\n display: 'flex',\n alignItems: 'center',\n },\n },\n },\n});\n\nexport interface PropTypes\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'prefix'> {\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large' | 'compact';\n variant?: 'contained' | 'outlined' | 'ghost';\n type?: 'primary' | 'error' | 'warning' | 'success';\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n align?: 'start' | 'grow';\n loading?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n style?: CSSProperties;\n flexContent?: boolean;\n}\n\nexport function Button({\n children,\n loading,\n disabled,\n prefix,\n suffix,\n align,\n flexContent,\n ...props\n}: PropsWithChildren<PropTypes>) {\n const isDisabled = loading || disabled;\n return (\n <ButtonContainer disabled={isDisabled} {...props} align={align}>\n {prefix}\n {children && (\n <Content\n align={align}\n ml={!!prefix}\n mr={!!suffix && !loading}\n flexContent={flexContent}\n className=\"_text\"\n >\n {children}\n </Content>\n )}\n {loading && <Spinner size={16} color={props.type} />}\n {suffix}\n </ButtonContainer>\n );\n}\n","import { styled } from '../../theme';\n\nexport const FilledCircle = styled('span', {\n width: '10px',\n height: '10px',\n backgroundColor: '$primary',\n borderRadius: '99999px',\n});\n","import React, { useState } from 'react';\nimport { styled } from '../../theme';\nimport { BlockchainMeta } from 'rango-sdk';\nimport { Button } from '../Button/Button';\nimport { FilledCircle } from '../common';\nimport { Typography } from '../Typography';\n\nexport interface PropTypes {\n list: BlockchainMeta[];\n selected?: BlockchainMeta | null;\n onChange: (blockchain: BlockchainMeta) => void;\n multiSelect?: boolean;\n selectedList?: BlockchainMeta[] | 'all';\n}\n\nconst ListContainer = styled('div', {\n display: 'grid',\n gap: '.5rem',\n gridTemplateColumns: ' repeat(2, minmax(0, 1fr))',\n alignContent: 'baseline',\n width: '100%',\n height: '100%',\n});\n\nconst Image = styled('img', {\n width: '1.5rem',\n maxHeight: '1.5rem',\n marginRight: '$4',\n});\n\nexport function BlockchainsList(props: PropTypes) {\n const { list, onChange, multiSelect, selectedList } = props;\n const [selected, setSelected] = useState(props.selected);\n\n const changeSelectedBlockchain = (blockchain: BlockchainMeta) => {\n setSelected(blockchain);\n onChange(blockchain);\n };\n\n const isSelect = (name: string) => {\n if (multiSelect && selectedList) {\n return (\n selectedList === 'all' ||\n selectedList.findIndex((item) => name === item.name) > -1\n );\n }\n return name === selected?.name;\n };\n\n return (\n <ListContainer>\n {list.map((blockchain, index) => {\n return (\n <Button\n type={isSelect(blockchain.name) ? 'primary' : undefined}\n variant=\"outlined\"\n size=\"large\"\n prefix={<Image src={blockchain.logo} />}\n suffix={isSelect(blockchain.name) ? <FilledCircle /> : undefined}\n align=\"start\"\n onClick={changeSelectedBlockchain.bind(null, blockchain)}\n key={index}\n >\n <Typography variant=\"body2\">{blockchain.displayName}</Typography>\n </Button>\n );\n })}\n </ListContainer>\n );\n}\n","import React, { PropsWithChildren, RefObject } from 'react';\n\nimport { styled } from '../../theme';\n\nconst InputContainer = styled('div', {\n backgroundColor: '$background',\n boxSizing: 'border-box',\n border: '1px solid $neutrals400',\n borderRadius: '$5',\n height: '$48',\n display: 'flex',\n flexGrow: 1,\n position: 'relative',\n alignItems: 'center',\n color: '$foreground',\n transition: 'border-color ease .3s',\n '&:focus-within': {\n borderColor: '$success',\n outline: '1px solid $success',\n },\n variants: {\n size: {\n small: {\n height: '$32',\n },\n medium: {\n height: '$40',\n },\n large: {\n height: '$48',\n },\n },\n disabled: {\n true: {\n backgroundColor: '$neutrals300',\n cursor: 'not-allowed',\n filter: 'grayscale(100%)',\n },\n },\n prefix: {\n true: {\n paddingLeft: '$16',\n },\n false: {\n paddingLeft: '$0',\n },\n },\n suffix: {\n true: {\n paddingRight: '$16',\n },\n false: {\n paddingRight: '$0',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n});\n\nconst Input = styled('input', {\n color: '$foreground',\n paddingLeft: '$16',\n paddingRight: '$16',\n flexGrow: 1,\n width: '100%',\n border: 'none',\n borderRadius: '$5',\n outline: 'none',\n fontSize: '$l',\n backgroundColor: 'transparent',\n '-webkit-appearance': 'none',\n margin: 0,\n '&:disabled': {\n cursor: 'not-allowed',\n },\n});\nconst Label = styled('label', {\n display: 'inline-block',\n fontSize: '$14',\n color: '$foreground',\n marginBottom: '$4',\n});\n\nexport type PropTypes = {\n label?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n size?: 'small' | 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'prefix' | 'size'> & {\n ref?:\n | ((instance: HTMLInputElement | null) => void)\n | React.RefObject<HTMLInputElement>\n | null\n | undefined;\n };\n\nexport const TextField = React.forwardRef(\n (\n props: PropsWithChildren<PropTypes>,\n ref:\n | RefObject<HTMLInputElement>\n | ((instance: HTMLInputElement | null) => void)\n | null\n | undefined\n ) => {\n const { label, prefix, suffix, children, size, style, ...inputAttributes } =\n props;\n return (\n <>\n {label && (\n <Label\n className=\"_text\"\n {...(inputAttributes.id && { htmlFor: inputAttributes.id })}\n >\n {label}\n </Label>\n )}\n <InputContainer\n disabled={inputAttributes.disabled}\n prefix={!!prefix}\n suffix={!!suffix}\n size={size}\n style={style}\n className=\"_text\"\n >\n {prefix || null}\n <Input\n className=\"_text\"\n {...inputAttributes}\n spellCheck={false}\n ref={ref}\n />\n {suffix || null}\n </InputContainer>\n </>\n );\n }\n);\n","import React, { ReactNode, useState } from 'react';\nimport { styled } from '../../theme';\nimport { AngleLeftIcon, SearchIcon } from '../Icon';\nimport { TextField } from '../TextField/TextField';\nimport { Typography } from '../Typography';\n\nexport type PropTypes = (\n | {\n textField: true;\n children?: (searchedFor: string) => ReactNode;\n textFieldPlaceholder: string;\n }\n | {\n textField: false;\n children?: ReactNode;\n }\n) & {\n title?: string;\n onBack?: () => void;\n TopButton?: React.ReactNode;\n Footer?: React.ReactNode;\n hasHeader?: boolean;\n};\n\nconst Container = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n width: '100%',\n padding: '$12 0',\n position: 'relative',\n\n '@lg': {\n padding: '$16 0',\n },\n});\n\nconst HeaderContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '$16',\n position: 'relative',\n});\n\nconst BackIcon = styled(AngleLeftIcon, {\n position: 'absolute',\n left: '0',\n});\nconst StyledBackIcon = styled(BackIcon, {\n cursor: 'pointer',\n});\n\nconst ContentContainer = styled('div', {\n flex: '1',\n overflowY: 'auto',\n overflowX: 'hidden',\n marginTop: '$16',\n});\n\nexport function SecondaryPage(props: PropTypes) {\n const { title, Footer, TopButton, onBack, hasHeader = true } = props;\n const [searchedFor, setSearchedFor] = useState('');\n\n return (\n <Container>\n {hasHeader && (\n <HeaderContainer>\n <StyledBackIcon size={24} onClick={onBack} />\n <Typography variant=\"h4\">{title}</Typography>\n {TopButton}\n </HeaderContainer>\n )}\n\n {props.textField && (\n <div>\n <TextField\n size=\"large\"\n prefix={<SearchIcon size={24} />}\n placeholder={props.textFieldPlaceholder}\n onChange={(event) => setSearchedFor(event.target.value)}\n value={searchedFor}\n autoFocus\n />\n </div>\n )}\n <ContentContainer>\n {props.textField && props.children?.(searchedFor)}\n {!props.textField && props.children}\n </ContentContainer>\n {Footer}\n </Container>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\n\nconst SpacerContainer = styled('div', {\n variants: {\n size: {\n 4: {},\n 8: {},\n 12: {},\n 16: {},\n 18: {},\n 20: {},\n 24: {},\n },\n direction: {\n vertical: {},\n horizontal: {},\n },\n },\n compoundVariants: [\n {\n size: 4,\n direction: 'horizontal',\n css: {\n width: '$4',\n },\n },\n {\n size: 4,\n direction: 'vertical',\n css: {\n height: '$4',\n },\n },\n {\n size: 8,\n direction: 'horizontal',\n css: {\n width: '$8',\n },\n },\n {\n size: 8,\n direction: 'vertical',\n css: {\n height: '$8',\n },\n },\n {\n size: 12,\n direction: 'horizontal',\n css: {\n width: '$12',\n },\n },\n {\n size: 12,\n direction: 'vertical',\n css: {\n height: '$12',\n },\n },\n {\n size: 16,\n direction: 'horizontal',\n css: {\n width: '$16',\n },\n },\n {\n size: 16,\n direction: 'vertical',\n css: {\n height: '$16',\n },\n },\n {\n size: 18,\n direction: 'horizontal',\n css: {\n width: '$18',\n },\n },\n {\n size: 18,\n direction: 'vertical',\n css: {\n height: '$18',\n },\n },\n {\n size: 20,\n direction: 'horizontal',\n css: {\n width: '$20',\n },\n },\n {\n size: 20,\n direction: 'vertical',\n css: {\n height: '$20',\n },\n },\n {\n size: 24,\n direction: 'horizontal',\n css: {\n width: '$24',\n },\n },\n {\n size: 24,\n direction: 'vertical',\n css: {\n height: '$24',\n },\n },\n ],\n});\nexport interface PropTypes {\n size?: 4 | 8 | 12 | 16 | 18 | 20 | 24;\n direction?: 'vertical' | 'horizontal';\n}\n\nexport function Spacer({ size = 12, direction = 'horizontal' }: PropTypes) {\n return <SpacerContainer size={size} direction={direction} />;\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { CheckCircleIcon, InfoCircleIcon, WarningIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { styled } from '../../theme';\nimport { Spacer } from '../Spacer';\n\nconst MainContainer = styled('div', {\n width: '100%',\n padding: '$16',\n borderRadius: '$5',\n backgroundColor: '$neutrals300',\n color: '$neutrals800',\n\n '.main': {\n display: 'flex',\n alignItems: 'center',\n },\n\n '.footer': {\n paddingTop: '$8',\n },\n '&.hasIcon .footer': {\n paddingLeft: '$32',\n },\n\n variants: {\n type: {\n primary: {\n color: '$primary200',\n },\n secondary: {\n color: '$secondary',\n },\n success: {\n color: '$success300',\n },\n warning: {\n color: '$warning500',\n },\n error: {\n color: '$error300',\n },\n },\n },\n});\n\nexport interface PropTypes {\n type?: 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n title?: string;\n footer?: ReactNode;\n}\n\nexport function Alert(props: PropsWithChildren<PropTypes>) {\n const { type, children, title } = props;\n\n const showIcon = (\n ['error', 'success', 'warning'] as PropTypes['type'][]\n ).includes(type);\n\n return (\n <MainContainer type={type} className={showIcon ? 'hasIcon' : ''}>\n <div className=\"main\">\n {showIcon && (\n <>\n {type === 'success' && <CheckCircleIcon color={type} size={24} />}\n {type === 'warning' && <WarningIcon color={type} size={24} />}\n {type === 'error' && <InfoCircleIcon color={type} size={24} />}\n <Spacer size={8} />\n </>\n )}\n {title && (\n <Typography variant=\"h6\" color={type}>\n {title}\n </Typography>\n )}\n {children}\n </div>\n {props.footer ? <div className=\"footer\">{props.footer}</div> : null}\n </MainContainer>\n );\n}\n","export const containsText = (text: string, searchText: string) =>\n text.toLowerCase().indexOf(searchText.toLowerCase()) > -1;\n","import React from 'react';\nimport { BlockchainMeta } from 'rango-sdk';\nimport { BlockchainsList } from '../BlockchainsList';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\nimport { Alert } from '../Alert';\nimport { Spinner } from '../Spinner';\nimport { styled } from '../../theme';\nimport { CSSProperties } from '@stitches/react';\nimport { containsText } from '../../helper';\nimport { Typography } from '../Typography';\n\nconst ListContainer = styled('div', {\n height: '450px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst filterBlockchains = (list: BlockchainMeta[], searchedFor: string) =>\n list.filter(\n (blockchain) =>\n containsText(blockchain.name, searchedFor) ||\n containsText(blockchain.displayName, searchedFor)\n );\n\nexport type LoadingStatus = 'loading' | 'success' | 'failed';\n\nexport interface PropTypes {\n type?: 'Source' | 'Destination';\n list: BlockchainMeta[];\n selected?: BlockchainMeta | null;\n onChange: (blockchain: BlockchainMeta) => void;\n onBack?: () => void;\n loadingStatus: LoadingStatus;\n hasHeader?: boolean;\n listContainerStyle?: CSSProperties;\n multiSelect?: boolean;\n selectedList?: BlockchainMeta[] | 'all';\n}\n\nexport function BlockchainSelector(props: PropTypes) {\n const {\n type,\n list,\n onChange,\n selected,\n onBack,\n loadingStatus,\n hasHeader,\n listContainerStyle,\n multiSelect,\n selectedList,\n } = props;\n\n return (\n <SecondaryPage\n textField={true}\n hasHeader={hasHeader}\n textFieldPlaceholder=\"Search Blockchain By Name\"\n title={`Select ${type} Network`}\n onBack={onBack}\n >\n {(searchedFor) => {\n const filteredBlockchains = filterBlockchains(list, searchedFor);\n return (\n <ListContainer style={listContainerStyle} key=\"1\">\n {loadingStatus === 'loading' && (\n <div>\n <Spinner size={24} />\n </div>\n )}\n {loadingStatus === 'failed' && (\n <Alert type=\"error\">\n <Typography variant=\"body2\">\n Error connecting server, please reload the app and try again\n </Typography>\n </Alert>\n )}\n {loadingStatus === 'success' && (\n <>\n {filteredBlockchains.length > 0 ? (\n <BlockchainsList\n list={filteredBlockchains}\n selected={selected}\n multiSelect={multiSelect}\n selectedList={selectedList}\n onChange={onChange}\n />\n ) : (\n <Alert>{`${searchedFor} not found`}</Alert>\n )}\n </>\n )}\n </ListContainer>\n );\n }}\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\nimport * as RadixCheckbox from '@radix-ui/react-checkbox';\nimport { CheckIcon } from '../Icon';\n\nconst CheckboxContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst CheckboxRoot = styled(RadixCheckbox.Root, {\n borderRadius: '5px',\n width: 20,\n padding: 0,\n height: 20,\n border: '1px solid $foreground',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$2',\n backgroundColor: '$neutral-100',\n});\nconst Label = styled('label', {\n color: '$foreground',\n fontSize: '$m',\n marginLeft: '$8',\n});\n\nexport interface PropTypes {\n id: string;\n defaultChecked?: boolean;\n label: string;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n name?: string;\n}\n\nexport function Checkbox({\n label,\n id,\n ...props\n}: PropsWithChildren<PropTypes>) {\n return (\n <CheckboxContainer>\n <CheckboxRoot id={id} {...props}>\n <RadixCheckbox.Indicator>\n <CheckIcon size={20} />\n </RadixCheckbox.Indicator>\n </CheckboxRoot>\n <Label className=\"_text\" htmlFor={id}>\n {label}\n </Label>\n </CheckboxContainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React from 'react';\nimport { styled } from '../../theme';\n\nconst ChipCointainer = styled('div', {\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '$5',\n padding: '$4 $8',\n height: '32',\n fontSize: '$14',\n cursor: 'pointer',\n transition: 'all 0.35s',\n color: '$foreground',\n\n '&:hover': {\n backgroundColor: '$success700',\n color: '$background',\n },\n variants: {\n selected: {\n true: { backgroundColor: '$success', color: '$background' },\n false: { backgroundColor: '$background' },\n },\n },\n});\n\nexport interface PropTypes {\n label: string;\n selected?: boolean;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n className?: string;\n style?: CSSProperties;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n}\n\nexport function Chip(props: PropTypes) {\n const { label, selected, prefix, suffix, onClick, style } = props;\n return (\n <ChipCointainer selected={selected} onClick={onClick} style={style}>\n {prefix || null}\n {label}\n {suffix || null}\n </ChipCointainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { styled } from '../../theme';\nimport { CloseIcon } from '../Icon/CloseIcon';\nimport { Typography } from '../Typography';\n\nexport interface PropTypes {\n title: string;\n open: boolean;\n onClose: () => void;\n content: React.ReactNode;\n action?: React.ReactNode;\n containerStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nconst BackDrop = styled('div', {\n position: 'fixed',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n top: '0',\n left: '0',\n width: '100vw',\n height: '100vh',\n backgroundColor: 'rgba(0,0,0,.1)',\n});\n\nconst ModalContainer = styled('div', {\n backgroundColor: '$background',\n borderRadius: '$10',\n padding: '$16 $16',\n display: 'flex',\n flexDirection: 'column',\n boxShadow: '$s',\n zIndex: 10,\n});\nconst Row = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\nconst ModalHeader = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n marginBottom: '$16',\n});\n\nconst ContentContainer = styled('div', {});\n\nexport function Modal(props: PropTypes) {\n const {\n title,\n content,\n open,\n onClose,\n containerStyle,\n action,\n contentStyle,\n } = props;\n\n const handleBackDropClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) onClose();\n };\n useEffect(() => {\n if (open) document.body.style.overflow = 'hidden';\n else document.body.style.overflow = 'unset';\n }, [open]);\n return (\n <>\n {open &&\n createPortal(\n <BackDrop onClick={handleBackDropClick}>\n <ModalContainer style={containerStyle}>\n <ModalHeader>\n <Typography variant=\"h4\">{title}</Typography>\n <Row>\n {action}\n <CloseIcon size={24} onClick={onClose} />\n </Row>\n </ModalHeader>\n <ContentContainer style={contentStyle}>\n {content}\n </ContentContainer>\n </ModalContainer>\n </BackDrop>,\n document.body\n )}\n </>\n );\n}\n","import { InstallObjects, WalletType } from '@rango-dev/wallets-shared';\n\nexport enum WalletState {\n NOT_INSTALLED = 'not installed',\n DISCONNECTED = 'disconnected',\n CONNECTING = 'connecting',\n CONNECTED = 'connected',\n}\n\nexport type WalletInfo = {\n state:\n | WalletState.CONNECTED\n | WalletState.DISCONNECTED\n | WalletState.CONNECTING\n | WalletState.NOT_INSTALLED;\n installLink: InstallObjects | string;\n name: string;\n image: string;\n type: WalletType;\n showOnMobile: boolean;\n};\n\nexport interface SelectableWallet {\n chain: string;\n walletType: WalletType;\n address: string;\n image: string;\n selected: boolean;\n name: string;\n}\n","import React, { Fragment } from 'react';\nimport { styled } from '../../theme';\nimport { DisconnectIcon, DownloadIcon } from '../Icon';\nimport { Spinner } from '../Spinner';\nimport { WalletState } from '../../types/wallet';\nimport { InstallObjects, detectInstallLink } from '@rango-dev/wallets-shared';\n\nconst StateIconContainer = styled('span', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nexport const State = ({\n walletState,\n installLink,\n}: {\n walletState: WalletState;\n installLink: InstallObjects | string;\n}) => (\n <Fragment>\n {walletState !== WalletState.DISCONNECTED && (\n <StateIconContainer>\n {walletState === WalletState.NOT_INSTALLED && (\n <a href={detectInstallLink(installLink)} target=\"_blank\">\n <DownloadIcon size={24} color=\"success\" />\n </a>\n )}\n {walletState === WalletState.CONNECTING && <Spinner />}\n {walletState === WalletState.CONNECTED && <DisconnectIcon />}\n </StateIconContainer>\n )}\n </Fragment>\n);\n","import { detectInstallLink, WalletType } from '@rango-dev/wallets-shared';\nimport React from 'react';\n\nimport { styled } from '../../theme';\nimport { WalletInfo, WalletState } from '../../types/wallet';\nimport { Button } from '../Button/Button';\nimport { Typography } from '../Typography';\nimport { State } from './State';\n\nconst WalletImage = styled('img', {\n width: '$24',\n height: '$24',\n marginRight: '$12',\n});\nconst Text = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst ExtendedButton = styled(Button, {\n variants: {\n type: {\n primary: {\n outline: '1px solid $primary',\n borderColor: '$primary',\n\n '&:hover': {\n borderColor: '$primary',\n },\n },\n },\n },\n});\n\nexport type PropTypes = WalletInfo & {\n onClick: (walletType: WalletType) => void;\n};\n\nexport function Wallet(props: PropTypes) {\n const { name, type, image, state, onClick, installLink } = props;\n\n return (\n <ExtendedButton\n type={state === WalletState.CONNECTED ? 'primary' : undefined}\n disabled={!state}\n onClick={() => {\n if (state === WalletState.NOT_INSTALLED) {\n window.open(detectInstallLink(installLink), '_blank');\n } else onClick(type);\n }}\n align=\"start\"\n variant=\"outlined\"\n size=\"large\"\n prefix={<WalletImage src={image} />}\n suffix={<State walletState={state} installLink={installLink} />}\n >\n <Text>\n <Typography variant=\"h5\" noWrap={false}>\n {name}\n </Typography>\n {state === WalletState.CONNECTED ? (\n <Typography variant=\"caption\" noWrap={false} color=\"primary\">\n Connected\n </Typography>\n ) : null}\n </Text>\n </ExtendedButton>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\nimport { WalletInfo } from '../../types/wallet';\nimport { Modal } from '../Modal';\nimport { WalletType } from '@rango-dev/wallets-shared';\nimport { Wallet } from '../Wallet';\n\nexport interface PropTypes {\n open: boolean;\n list: WalletInfo[];\n onSelect: (walletType: WalletType) => void;\n onClose: () => void;\n error?: string;\n}\n\nconst ModalContent = styled('div', {\n display: 'grid',\n gap: '$8',\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n});\n\nexport function ConnectWalletsModal(props: PropTypes) {\n const { open, list, onSelect, onClose } = props;\n\n const Content = (\n <ModalContent>\n {list.map((info, index) => (\n <Wallet {...info} key={index} onClick={onSelect} />\n ))}\n </ModalContent>\n );\n\n return (\n <Modal\n title=\"Connect Wallets\"\n open={open}\n content={Content}\n onClose={onClose}\n containerStyle={{ width: '75%', maxWidth: '30rem', height: '70%' }}\n />\n );\n}\n","import React from 'react';\nimport * as RadixSwitch from '@radix-ui/react-switch';\n\nimport { styled } from '../../theme';\n\nconst StyledSwitchRoot = styled(RadixSwitch.Root, {\n boxSizing: 'border-box',\n boxShadow: 'none',\n borderStyle: 'solid',\n width: '42px',\n height: '22px',\n backgroundColor: '$neutrals600',\n borderColor: '$neutrals600',\n borderRadius: '99999px',\n position: 'relative',\n padding: '0',\n cursor: 'pointer',\n\n '&[data-state=\"checked\"]': {\n backgroundColor: '$success',\n borderColor: '$success',\n },\n '-webkit-tap-highlight-color': 'rgba(0, 0, 0, 0)',\n});\n\nconst StyledSwitchThumb = styled(RadixSwitch.Thumb, {\n position: 'absolute',\n top: '0',\n boxSizing: 'border-box',\n display: 'block',\n width: '18px',\n height: '18px',\n backgroundColor: '$white',\n transition: ' transform 300ms',\n borderRadius: '999999px',\n willChange: 'transform',\n\n '&[data-state=\"checked\"]': {\n transform: 'translateX(20px)',\n },\n});\n\nexport interface PropTypes {\n checked: boolean;\n onChange?: (checked: boolean) => void;\n}\n\nexport function Switch(props: PropTypes) {\n const { checked, onChange } = props;\n return (\n <StyledSwitchRoot checked={checked} onCheckedChange={onChange}>\n <StyledSwitchThumb />\n </StyledSwitchRoot>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { useEffect, useState } from 'react';\nimport { styled } from '../../theme';\nimport { LiquiditySource } from '../../types/meta';\nimport { Button } from '../Button/Button';\nimport { Spacer } from '../Spacer';\nimport { Switch } from '../Switch';\nimport { Typography } from '../Typography';\n\nconst groupLiquiditySources = (\n liquiditySources: LiquiditySource[]\n): { [key in 'bridge' | 'exchange']: LiquiditySource[] } => ({\n bridge: liquiditySources.filter(\n (liquiditySource) =>\n liquiditySource.type === 'BRIDGE' || liquiditySource.type === 'AGGREGATOR'\n ),\n exchange: liquiditySources.filter(\n (liquiditySource) => liquiditySource.type === 'DEX'\n ),\n});\n\nconst LiquiditySourceType = styled('div', {\n position: 'sticky',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n top: '0',\n marginTop: '$8',\n marginBottom: '$8',\n backgroundColor: '$background',\n zIndex: '9999',\n paddingTop: '$8',\n paddingBottom: '$8',\n});\n\nconst LiquidityImage = styled('img', {\n width: '$20',\n maxHeight: '$20',\n marginRight: '$16',\n});\n\nexport interface PropTypes {\n list: LiquiditySource[];\n onChange: (liquiditySource: LiquiditySource) => void;\n listContainerStyle?: CSSProperties;\n}\n\nexport function LiquiditySourceList(props: PropTypes) {\n const { list, onChange, listContainerStyle } = props;\n\n const [selected, setSelected] = useState(\n list.filter((item) => item.selected)\n );\n\n const changeLiquiditySources = (clickedItem: LiquiditySource) => {\n clickedItem.selected = !clickedItem.selected;\n setSelected((prevState) => {\n if (clickedItem.selected) return [...prevState, clickedItem];\n return prevState.filter((item) => item.title != clickedItem.title);\n });\n onChange(clickedItem);\n };\n\n const isSelected = (liquiditySource: LiquiditySource) =>\n !!selected.find((item) => liquiditySource.title === item.title);\n\n useEffect(() => {\n setSelected(list.filter((item) => item.selected));\n }, [list]);\n\n const sections = groupLiquiditySources(list);\n const bridges = sections.bridge;\n const exchanges = sections.exchange;\n\n const totalBridges = bridges.length;\n const totalExchanges = exchanges.length;\n // TODO: This is not performant\n const totalSelectedBridges = bridges.filter(isSelected).length;\n const totalSelectedExchanges = exchanges.filter(isSelected).length;\n\n return (\n <div style={{ height: '450px', ...listContainerStyle }}>\n <div>\n <LiquiditySourceType>\n <Typography variant=\"h5\">Bridges</Typography>\n <Typography variant=\"body1\" color=\"neutrals800\">\n {totalSelectedBridges === totalBridges\n ? totalBridges\n : `${totalSelectedBridges} / ${totalBridges}`}\n </Typography>\n </LiquiditySourceType>\n <Spacer size={12} direction=\"vertical\" />\n {bridges.map((liquiditySource, index) => (\n <LiquiditySourceItem\n liquiditySource={liquiditySource}\n key={index}\n selected={isSelected(liquiditySource)}\n onChange={changeLiquiditySources}\n />\n ))}\n </div>\n <div>\n <LiquiditySourceType>\n <Typography variant=\"h5\">Exchanges</Typography>\n <Typography variant=\"body1\" color=\"neutrals800\">\n {totalSelectedExchanges === totalExchanges\n ? totalExchanges\n : `${totalSelectedExchanges} / ${totalExchanges}`}\n </Typography>\n </LiquiditySourceType>\n <Spacer size={12} direction=\"vertical\" />\n {exchanges.map((liquiditySource, index) => (\n <LiquiditySourceItem\n liquiditySource={liquiditySource}\n key={index}\n selected={isSelected(liquiditySource)}\n onChange={changeLiquiditySources}\n />\n ))}\n </div>\n </div>\n );\n}\n\nconst LiquiditySourceItem = ({\n liquiditySource,\n selected,\n onChange,\n}: {\n liquiditySource: LiquiditySource;\n selected: boolean;\n onChange: (clickedItem: LiquiditySource) => void;\n}) => (\n <Button\n size=\"large\"\n align=\"start\"\n variant=\"outlined\"\n prefix={<LiquidityImage src={liquiditySource.logo} />}\n suffix={<Switch checked={selected} />}\n style={{ marginBottom: '12px' }}\n onClick={onChange.bind(null, liquiditySource)}\n >\n <Typography variant=\"body1\">{liquiditySource.title}</Typography>\n </Button>\n);\n","import { CSSProperties } from '@stitches/react';\nimport React from 'react';\nimport { containsText } from '../../helper';\nimport { styled } from '../../theme';\nimport { LiquiditySource } from '../../types/meta';\nimport { Button } from '../Button';\nimport { LiquiditySourceList } from '../LiquiditySourceList';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\n\nconst filterLiquiditySources = (\n liquiditySources: LiquiditySource[],\n searchedFor: string\n) =>\n liquiditySources.filter((liquiditySource) =>\n containsText(liquiditySource.title, searchedFor || '')\n );\nexport interface PropTypes {\n list: LiquiditySource[];\n onChange: (liquiditySource: LiquiditySource) => void;\n toggleAll?: () => void;\n onBack?: () => void;\n hasHeader?: boolean;\n listContainerStyle?: CSSProperties;\n}\nconst ActionButton = styled(Button, {\n position: 'absolute',\n right: 0,\n});\n\nexport function LiquiditySourcesSelector(props: PropTypes) {\n const { list, onChange, onBack, hasHeader, listContainerStyle, toggleAll } =\n props;\n\n return (\n <SecondaryPage\n textField={true}\n textFieldPlaceholder=\"Search By Name\"\n title=\"Liquidity Sources\"\n TopButton={\n <ActionButton variant=\"ghost\" type=\"primary\" onClick={toggleAll}>\n {list.find((item) => item.selected) ? 'Deselect all' : 'Select all'}\n </ActionButton>\n }\n hasHeader={hasHeader}\n onBack={onBack}\n >\n {(searchedFor) => (\n <LiquiditySourceList\n listContainerStyle={listContainerStyle}\n list={filterLiquiditySources(list, searchedFor)}\n onChange={onChange}\n />\n )}\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { styled } from '../../theme';\nimport { SelectableWallet } from '../../types';\nimport { Typography } from '../Typography';\n\nconst Row = styled('div', {\n display: 'flex',\n flexWrap: 'wrap',\n});\n\nconst Circle = styled('div', {\n width: 12,\n height: 12,\n borderRadius: 6,\n border: '1px solid $neutrals400',\n position: 'absolute',\n top: 12,\n right: 12,\n variants: {\n checked: {\n true: {\n borderColor: '$success',\n },\n false: {\n borderColor: '$neutrals400',\n },\n },\n },\n});\nconst SolidCircle = styled('div', {\n width: 6,\n margin: '20% auto',\n height: 6,\n borderRadius: 3,\n variants: {\n checked: {\n true: {\n backgroundColor: '$success',\n },\n false: {\n backgroundColor: '$neutrals400',\n },\n },\n },\n});\nconst Container = styled('div', {\n border: '1.5px solid',\n borderRadius: '$5',\n padding: '$12',\n flexBasis: 'calc(33.33% - 10px)',\n margin: 5,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n width: 124,\n height: 92,\n cursor: 'pointer',\n position: 'relative',\n variants: {\n checked: {\n true: {\n borderColor: '$success',\n color: '$success',\n },\n false: {\n borderColor: '$neutrals400',\n color: '$neutrals400',\n },\n },\n },\n});\nexport interface PropTypes {\n list: SelectableWallet[];\n onChange: (w: SelectableWallet) => void;\n}\n\nexport function SelectableWalletList({\n list,\n onChange,\n}: PropsWithChildren<PropTypes>) {\n const [active, setActive] = useState<string>(\n list.find((item) => item.selected)?.walletType || ''\n );\n const onClick = (w: SelectableWallet) => {\n setActive(w.walletType);\n onChange(w);\n };\n\n useEffect(() => {\n setActive(list.find((item) => item.selected)?.walletType || '');\n }, [list]);\n\n return (\n <Row>\n {list.map((w, index) => {\n const checked = active === w.walletType;\n return (\n <Container\n checked={checked}\n onClick={onClick.bind(null, w)}\n key={index}\n >\n <img src={w.image} alt={w.walletType} width={24} height={24} />\n <Typography variant=\"body2\">{w.name}</Typography>\n <Circle checked={checked}>\n <SolidCircle checked={checked} />\n </Circle>\n </Container>\n );\n })}\n </Row>\n );\n}\n","import React from 'react';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\nimport { CSSProperties } from '@stitches/react';\n\nconst StyledRoot = styled(RadioGroup.Root, {\n variants: {\n direction: {\n horizontal: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n vertical: {\n display: 'grid',\n gridGap: '$24',\n },\n },\n },\n});\n\nconst ItemContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n marginRight: '$8',\n});\nconst StyledItem = styled(RadioGroup.Item, {\n padding: '0',\n width: '20px',\n height: '20px',\n borderRadius: '100%',\n cursor: 'pointer',\n backgroundColor: '$background',\n border: '1px solid $neutrals400',\n\n '&:hover': {\n borderColor: '$neutrals600',\n },\n});\n\nconst Container = styled('div', {\n display: 'flex',\n});\n\nconst StyledIndicator = styled(RadioGroup.Indicator, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n position: 'relative',\n '&::after': {\n content: '',\n display: 'block',\n width: '10px',\n height: '10px',\n borderRadius: '50%',\n backgroundColor: '$success',\n },\n});\n\nconst Label = styled('label', {\n paddingLeft: '$8',\n cursor: 'pointer',\n color: '$foreground',\n});\n\nexport interface PropTypes {\n options: { label: string; value: string }[];\n value: string;\n onChange: (value: string) => void;\n direction?: 'vertical' | 'horizontal';\n style?: CSSProperties;\n}\n\nexport function Radio(props: PropTypes) {\n const { value, onChange, direction = 'vertical', style } = props;\n return (\n <Container>\n <StyledRoot\n onValueChange={onChange}\n value={value}\n direction={direction}\n style={style}\n >\n {props.options.map((option, index) => (\n <ItemContainer key={index}>\n <StyledItem value={option.value} id={option.value}>\n <StyledIndicator />\n </StyledItem>\n <Label className=\"_text\" htmlFor={option.value}>\n <Typography variant=\"body2\">{option.label}</Typography>\n </Label>\n </ItemContainer>\n ))}\n </StyledRoot>\n </Container>\n );\n}\n","import { styled } from '../../theme';\nimport React, { useState } from 'react';\nimport { AngleRightIcon } from '../Icon';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\nimport { Typography } from '../Typography';\nimport { Chip } from '../Chip';\nimport { LiquiditySource } from '../../types/meta';\nimport { TextField } from '../TextField';\nimport { Radio } from '../Radio';\nimport { Switch } from '../Switch';\n\nconst BaseContainer = styled('div', {\n borderRadius: '$5',\n backgroundColor: '$neutrals300',\n padding: '$16',\n});\n\nconst Title = styled(Typography, { marginBottom: '$16' });\n\nconst SlippageChipsContainer = styled('div', {\n display: 'grid',\n rowGap: '$16',\n gridTemplateColumns: 'repeat(auto-fill, 64px)',\n});\n\nconst LiquiditySourceContainer = styled(BaseContainer, {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '$32',\n cursor: 'pointer',\n});\nconst InfiniteContainer = styled(BaseContainer, {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '$32',\n});\n\nconst StyledAngleRight = styled(AngleRightIcon, { marginLeft: '$8' });\n\nconst LiquiditySourceNumber = styled('div', {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\nconst ThemesContainer = styled(BaseContainer, {\n marginTop: '$32',\n});\nconst Head = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingBottom: '$16',\n});\n\ntype Theme = 'dark' | 'light' | 'auto';\n\nexport interface PropTypes {\n slippages: number[];\n selectedSlippage: number;\n customSlippage: number;\n maxSlippage: number;\n minSlippage: number;\n liquiditySources: LiquiditySource[];\n onLiquiditySourcesClick: () => void;\n selectedLiquiditySources: LiquiditySource[];\n onSlippageChange: (slippage: number) => void;\n onCustomSlippageChange: (customSlippage: number | null) => void;\n selectedTheme: Theme;\n onThemeChange: (theme: Theme) => void;\n onBack: () => void;\n infiniteApprove: boolean;\n toggleInfiniteApprove: (infinite: boolean) => void;\n}\n\nexport function Settings(props: PropTypes) {\n const {\n slippages,\n selectedLiquiditySources,\n liquiditySources,\n onSlippageChange,\n onLiquiditySourcesClick,\n onBack,\n customSlippage,\n onCustomSlippageChange,\n maxSlippage,\n minSlippage,\n selectedTheme,\n onThemeChange,\n toggleInfiniteApprove,\n infiniteApprove,\n } = props;\n\n const [selectedSlippage, setSelectedSlippage] = useState(\n props.selectedSlippage\n );\n\n const changeSlippage = (slippage: number) => {\n setSelectedSlippage(slippage);\n onSlippageChange(slippage);\n };\n\n const PageContent = (\n <>\n <BaseContainer>\n <Head>\n <Typography variant=\"body1\">Slippage tolerance per swap</Typography>\n {customSlippage ? (\n <Typography variant=\"caption\" color=\"error\">\n {customSlippage}% Custom\n </Typography>\n ) : undefined}\n </Head>\n <SlippageChipsContainer>\n {slippages.map((slippage, index) => (\n <Chip\n key={index}\n onClick={() => {\n if (customSlippage) onCustomSlippageChange(null);\n changeSlippage(slippage);\n }}\n selected={!customSlippage && slippage === selectedSlippage}\n label={`${slippage.toString()}%`}\n style={{\n marginRight: '8px',\n }}\n />\n ))}\n <TextField\n type=\"number\"\n value={customSlippage}\n onChange={(event) => {\n const parsedValue = parseFloat(event.target.value);\n if (\n !parsedValue ||\n (parsedValue >= minSlippage && parsedValue <= maxSlippage)\n )\n onCustomSlippageChange(parsedValue);\n }}\n suffix={\n customSlippage && <Typography variant=\"body2\">%</Typography>\n }\n size=\"small\"\n placeholder=\"Custom %\"\n style={{\n width: '128px',\n flexGrow: 'initial',\n }}\n />\n </SlippageChipsContainer>\n </BaseContainer>\n <ThemesContainer>\n <Title variant=\"body2\">Theme</Title>\n <Radio\n value={selectedTheme}\n options={[\n { value: 'dark', label: 'Dark' },\n { value: 'light', label: 'Light' },\n { value: 'auto', label: 'Auto' },\n ]}\n onChange={(value) => onThemeChange(value as Theme)}\n direction=\"horizontal\"\n style={{ marginTop: '$24' }}\n />\n </ThemesContainer>\n <InfiniteContainer>\n <Typography variant=\"body1\">Infinite Approval</Typography>\n <Switch checked={infiniteApprove} onChange={toggleInfiniteApprove} />\n </InfiniteContainer>\n <LiquiditySourceContainer onClick={onLiquiditySourcesClick}>\n <Typography variant=\"body1\">Liquidity Sources</Typography>\n <LiquiditySourceNumber>\n <Typography variant=\"body2\" color=\"neutrals800\">\n {liquiditySources.length !== selectedLiquiditySources.length\n ? `${selectedLiquiditySources.length} / ${liquiditySources.length}`\n : liquiditySources.length}\n </Typography>\n <StyledAngleRight />\n </LiquiditySourceNumber>\n </LiquiditySourceContainer>\n </>\n );\n\n return (\n <SecondaryPage title=\"Settings\" textField={false} onBack={onBack}>\n {PageContent}\n </SecondaryPage>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\n\nconst MainContainer = styled('div', {\n borderRadius: '$10',\n maxWidth: '512px',\n boxShadow: '$s',\n minWidth: '375px',\n width: '100%',\n backgroundColor: '$background',\n height: 'fit-content',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'end',\n padding: '$16',\n boxSizing: 'border-box',\n position: 'relative',\n});\n\nconst ContentContainer = styled('div', {\n width: '100%',\n // maxHeight: '600px',\n});\n\nexport interface PropTypes {\n style?: CSSProperties;\n}\n\nexport function SwapContainer(props: PropsWithChildren<PropTypes>) {\n const { children, style } = props;\n\n return (\n <MainContainer style={style} id=\"swap-box\">\n <ContentContainer>{children}</ContentContainer>\n </MainContainer>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { PendingSwap } from '../../containers/History/types';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\nimport { CheckCircleIcon, InfoCircleIcon, TryAgainIcon } from '../Icon';\nimport { StepDetail } from '../StepDetail';\n\nconst Container = styled('div', {\n position: 'relative',\n});\n\nconst ButtonContainer = styled('div', {\n paddingTop: '$8',\n});\nconst SwapContainer = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n '@md': {\n padding: '$12',\n },\n '&:hover': {\n borderColor: '$primary',\n },\n\n variants: {\n status: {\n failed: {\n borderColor: '$error',\n },\n running: {\n borderColor: '$neutrals400',\n },\n success: {\n borderColor: '$success',\n },\n },\n },\n});\nconst Arrow = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\nconst Line = styled('div', {\n height: '0',\n width: '$20',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n '@md': {\n width: '$36',\n },\n '@lg': {\n width: '$48',\n },\n});\nconst Dot = styled('div', {\n width: '$6',\n height: '$6',\n backgroundColor: '$foreground',\n borderRadius: '50%',\n '@lg': {\n width: '$8',\n height: '$8',\n },\n});\nconst ArrowRight = styled('div', {\n width: '0px',\n height: '0px',\n borderTop: '5px solid transparent',\n borderBottom: '5px solid transparent',\n borderLeft: '5px solid $foreground',\n});\nconst StatusContainer = styled('div', {\n position: 'absolute',\n right: '-8px',\n top: '30%',\n background: '$background',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n\n '@md': {\n top: '40%',\n right: '-8px',\n },\n});\nexport interface PropTypes {\n swap: PendingSwap;\n status: 'running' | 'failed' | 'success';\n onClick: (requestId: string) => void;\n}\n\nexport function SwapDetail({\n swap,\n status,\n onClick,\n}: PropsWithChildren<PropTypes>) {\n const firstStep = swap.steps[0];\n const lastStep = swap.steps[swap.steps.length - 1];\n\n return (\n <Container onClick={onClick.bind(null, swap.requestId)}>\n <ButtonContainer>\n <Button\n variant=\"outlined\"\n align=\"grow\"\n size=\"large\"\n type={\n status === 'failed'\n ? 'error'\n : status === 'success'\n ? 'success'\n : undefined\n }\n >\n <SwapContainer>\n <StepDetail\n logo={firstStep.fromLogo}\n symbol={firstStep.fromSymbol}\n chainLogo={firstStep.fromBlockchainLogo}\n blockchain={firstStep.fromBlockchain}\n amount={swap.inputAmount}\n />\n <Arrow>\n <Dot />\n <Line />\n <ArrowRight />\n </Arrow>\n <StepDetail\n logo={lastStep.toLogo}\n symbol={lastStep.toSymbol}\n chainLogo={lastStep.toBlockchainLogo}\n blockchain={lastStep.toBlockchain}\n amount={lastStep.outputAmount}\n />\n </SwapContainer>\n </Button>\n </ButtonContainer>\n <StatusContainer>\n {status === 'running' ? (\n <TryAgainIcon size={16} />\n ) : status === 'failed' ? (\n <InfoCircleIcon size={18} color=\"error\" />\n ) : (\n <CheckCircleIcon size={18} color=\"success\" />\n )}\n </StatusContainer>\n </Container>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { ReactElementType, VariableSizeList as List } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { CSSProperties } from '@stitches/react';\n\nexport type VirtualizedListItem = ({\n index,\n style,\n}: {\n index: number;\n style: CSSProperties | undefined;\n}) => JSX.Element | null;\n\ntype PropTypes = {\n itemCount: number;\n hasNextPage: boolean;\n loadNextPage: () => void;\n Item: VirtualizedListItem;\n innerElementType: ReactElementType | undefined;\n size: number;\n};\n\nexport function VirtualizedList(props: PropsWithChildren<PropTypes>) {\n const { itemCount, hasNextPage, loadNextPage, Item, innerElementType, size } =\n props;\n\n const isItemLoaded = (index: number) => !hasNextPage || index < itemCount;\n\n return (\n <AutoSizer>\n {({ width, height }) => (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={hasNextPage ? itemCount + 1 : itemCount}\n loadMoreItems={loadNextPage}\n threshold={1}\n >\n {({ onItemsRendered, ref }) => {\n return (\n <List\n innerElementType={innerElementType}\n ref={ref}\n itemSize={() => size}\n itemCount={itemCount}\n height={height || 0}\n width={width || 0}\n onItemsRendered={onItemsRendered}\n >\n {({ index, style }) =>\n isItemLoaded(index) ? (\n <Item index={index} style={style as CSSProperties} />\n ) : null\n }\n </List>\n );\n }}\n </InfiniteLoader>\n )}\n </AutoSizer>\n );\n}\n","import { Token } from 'rango-sdk';\nimport React, { CSSProperties } from 'react';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\nimport { Typography } from '../Typography';\nimport { TokenWithAmount } from './TokenList';\n\nconst TokenImage = styled('img', {\n width: '$32',\n maxHeight: '$32',\n marginRight: '$16',\n});\n\nconst TokenNameContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TokenAmountContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n});\n\ninterface PropTypes {\n token: TokenWithAmount;\n selected: boolean;\n onClick: (token: Token) => void;\n style?: CSSProperties;\n}\n\nexport function TokenItem(props: PropTypes) {\n const { token, style, onClick, selected } = props;\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n ...style,\n height: '48px',\n top: `${parseFloat(style?.top as string) + 0}px`,\n }}\n >\n <Button\n variant=\"outlined\"\n size=\"large\"\n align=\"start\"\n onClick={onClick.bind(null, token)}\n type={selected ? 'primary' : undefined}\n prefix={<TokenImage src={token.image} />}\n suffix={\n token.balance?.amount && (\n <TokenAmountContainer>\n <Typography variant=\"body2\">{token.balance.amount}</Typography>\n <Typography variant=\"caption\">\n {`${token.balance.usdValue}$`}\n </Typography>\n </TokenAmountContainer>\n )\n }\n >\n <TokenNameContainer>\n <Typography variant=\"body1\">{token.symbol}</Typography>\n <Typography variant=\"body2\">{token.name}</Typography>\n </TokenNameContainer>\n </Button>\n </div>\n );\n}\n","import React, { forwardRef, useEffect, useState } from 'react';\nimport { CommonProps } from 'react-window';\nimport { Token } from 'rango-sdk';\nimport { VirtualizedList } from '../VirtualizedList/VirtualizedList';\nimport { TokenItem } from './TokenItem';\n\nexport interface TokenWithAmount extends Token {\n balance?: {\n amount: string;\n usdValue: string;\n };\n}\n\nconst PAGE_SIZE = 20;\nexport interface PropTypes {\n list: TokenWithAmount[];\n selected?: TokenWithAmount | null;\n searchedText: string;\n onChange: (token: TokenWithAmount) => void;\n multiSelect?: boolean;\n selectedList?: TokenWithAmount[] | 'all';\n}\n\nexport function TokenList(props: PropTypes) {\n const { list, searchedText, onChange, multiSelect, selectedList } = props;\n const [selected, setSelected] = useState(props.selected);\n\n const changeSelected = (token: TokenWithAmount) => {\n setSelected(token);\n onChange(token);\n };\n\n const isSelected = (token: Token) => {\n if (multiSelect && selectedList) {\n return (\n selectedList === 'all' ||\n selectedList\n .map((item) => item.symbol + item.address)\n .indexOf(token.symbol + token.address) > -1\n );\n }\n return (\n selected?.symbol === token.symbol && selected?.address === token.address\n );\n };\n\n const [hasNextPage, setHasNextPage] = useState<boolean>(true);\n const [tokens, setTokens] = useState<TokenWithAmount[]>(list);\n\n const loadNextPage = () => {\n setTokens(list.slice(0, tokens.length + PAGE_SIZE));\n };\n\n useEffect(() => {\n setTokens(list.slice(0, PAGE_SIZE));\n }, [searchedText]);\n\n useEffect(() => {\n setHasNextPage(list.length > tokens.length);\n }, [tokens.length]);\n\n const innerElementType: React.FC<CommonProps> = forwardRef(\n ({ style, ...rest }, ref) => {\n return (\n <div\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={{\n ...style,\n height: `${parseFloat(style?.height as string) + 8 * 2}px`,\n }}\n {...rest}\n />\n );\n }\n );\n\n return (\n <div style={{ height: '450px' }}>\n <VirtualizedList\n Item={({ index, style }) => (\n <TokenItem\n token={tokens[index]}\n style={style}\n onClick={changeSelected}\n selected={isSelected(tokens[index])}\n />\n )}\n hasNextPage={hasNextPage}\n itemCount={tokens.length}\n loadNextPage={loadNextPage}\n innerElementType={innerElementType}\n size={56}\n />\n </div>\n );\n}\n","import React from 'react';\nimport { containsText } from '../../helper';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\nimport { TokenList } from '../TokenList';\nimport { TokenWithAmount } from '../TokenList/TokenList';\n\nexport interface PropTypes {\n list: TokenWithAmount[];\n type?: 'Source' | 'Destination';\n selected: TokenWithAmount | null;\n onChange: (token: TokenWithAmount) => void;\n hasHeader?: boolean;\n multiSelect?: boolean;\n onBack?: () => void;\n selectedList?: TokenWithAmount[] | 'all';\n}\n\nconst filterTokens = (list: TokenWithAmount[], searchedFor: string) =>\n list.filter(\n (token) =>\n containsText(token.symbol, searchedFor) ||\n containsText(token.address || '', searchedFor) ||\n containsText(token.name || '', searchedFor)\n );\n\nexport function TokenSelector(props: PropTypes) {\n const {\n list,\n type,\n selected,\n onChange,\n hasHeader,\n multiSelect,\n selectedList,\n onBack,\n } = props;\n\n return (\n <SecondaryPage\n textField={true}\n textFieldPlaceholder=\"Search Blockchain By Name\"\n title={`Select ${type} Token`}\n hasHeader={hasHeader}\n onBack={onBack}\n >\n {(searchedFor) => (\n <TokenList\n searchedText={searchedFor}\n list={filterTokens(list, searchedFor)}\n selected={selected}\n selectedList={selectedList}\n multiSelect={multiSelect}\n onChange={onChange}\n />\n )}\n </SecondaryPage>\n );\n}\n","import React, { useState } from 'react';\nimport { ChromePicker, ColorResult } from 'react-color';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\n\nconst Container = styled('div', {\n position: 'relative',\n});\n\nconst Color = styled('div', {\n border: '1px solid $neutrals300',\n borderRadius: '$5',\n width: '$32',\n height: '$32',\n});\nconst Cover = styled('div', {\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n});\nconst Popover = styled('div', {\n position: 'absolute',\n zIndex: '2',\n variants: {\n place: {\n top: {\n top: '-241px',\n },\n bottom: {},\n left: {\n top: '-50%',\n left: '-225px',\n },\n right: {\n top: '-50%',\n right: '-225px',\n },\n },\n },\n});\nexport interface PropTypes {\n color: string;\n place: 'top' | 'bottom' | 'left' | 'right';\n onChangeColor: (\n color: ColorResult,\n event: React.ChangeEvent<HTMLInputElement>\n ) => void;\n label?: string;\n}\n\nconst Label = styled('label', {\n display: 'inline-block',\n fontSize: '$14',\n marginBottom: '$4',\n color: '$foreground',\n});\n\nexport function ColorPicker({ color, onChangeColor, label, place }: PropTypes) {\n const [displayColorPicker, setDisplayColorPicker] = useState<boolean>(false);\n\n return (\n <Container>\n <Label className=\"_text\">{label}</Label>\n <Button\n variant=\"outlined\"\n prefix={<Color style={{ backgroundColor: color }} />}\n fullWidth\n align=\"start\"\n size=\"large\"\n onClick={() => setDisplayColorPicker((prev) => !prev)}\n >\n {color}\n </Button>\n\n {displayColorPicker && (\n <Popover place={place}>\n <Cover onClick={() => setDisplayColorPicker(false)} />\n <ChromePicker color={color} onChange={onChangeColor} />\n </Popover>\n )}\n </Container>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\nimport { CloseIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { createPortal } from 'react-dom';\n\nexport interface PropTypes {\n title?: string;\n open: boolean;\n onClose: () => void;\n content: React.ReactNode;\n containerStyle?: React.CSSProperties;\n anchor?: 'bottom' | 'left' | 'right' | 'top';\n showClose?: boolean;\n footer?: React.ReactNode;\n container: Element | null;\n}\n\nconst BackDrop = styled('div', {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n zIndex: 9999999,\n backgroundColor: 'rgba(0,0,0,.1)',\n borderRadius: '$10',\n});\n\nconst DrawerContainer = styled('div', {\n position: 'absolute',\n boxShadow: '$s',\n background: '$background',\n padding: '$20',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n zIndex: 9999999,\n borderRadius: '$10',\n\n variants: {\n anchor: {\n left: {\n top: 0,\n left: 0,\n height: '100%',\n minWidth: '300px',\n maxWidth: '90%',\n },\n right: {\n top: 0,\n right: 0,\n height: '100%',\n minWidth: '300px',\n maxWidth: '90%',\n },\n bottom: {\n bottom: 0,\n width: '100%',\n maxHeight: '90%',\n },\n top: {\n top: 0,\n width: '100%',\n maxHeight: '90%',\n },\n },\n },\n});\n\nconst DrawerHeader = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n marginBottom: '$16',\n});\n\nconst Body = styled('div', {\n overflowY: 'auto',\n height: '100%',\n});\nconst Footer = styled('footer', {\n width: '100%',\n marginTop: '$28',\n});\n\nexport function Drawer(props: PropTypes) {\n const {\n title,\n content,\n open,\n onClose,\n containerStyle,\n anchor = 'bottom',\n showClose = false,\n footer,\n container,\n } = props;\n\n const handleBackDropClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) onClose();\n };\n\n return (\n <>\n {open &&\n container &&\n createPortal(\n <BackDrop onClick={handleBackDropClick}>\n <DrawerContainer anchor={anchor} style={containerStyle}>\n <DrawerHeader>\n <Typography variant=\"h4\">{title}</Typography>\n {showClose && <CloseIcon size={24} onClick={onClose} />}\n </DrawerHeader>\n <Body>{content}</Body>\n <Footer>{footer}</Footer>\n </DrawerContainer>\n </BackDrop>,\n container\n )}\n </>\n );\n}\n","import React, { Fragment, PropsWithChildren, ReactNode } from 'react';\nimport { Spacer } from '../../components';\nimport { Alert } from '../../components/Alert';\nimport { Button } from '../../components/Button';\nimport { RetryIcon, GasIcon } from '../../components/Icon';\nimport { SecondaryPage } from '../../components/SecondaryPage/';\nimport { StepDetail } from '../../components/StepDetail';\nimport { Typography } from '../../components/Typography';\nimport { styled } from '../../theme';\nimport { BestRouteWithFee } from '../../types/swaps';\n\nconst MainContainer = styled('div', {\n overflow: 'hidden',\n});\n\nexport const Line = styled('div', {\n width: '0',\n marginLeft: '$12',\n height: '36px',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n});\nexport const SwapperContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n marginLeft: '6px',\n});\nexport const BodyError = styled('div', {\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\nexport const ErrorMsg = styled(Typography, {\n color: '$error',\n});\nexport const Fee = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\nexport const SwapperLogo = styled('img', {\n width: '$16',\n height: '$16',\n});\nexport const RelativeContainer = styled('div', {\n position: 'relative',\n});\n\nexport const Footer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\nexport const Dot = styled('div', {\n width: '$8',\n height: '$8',\n backgroundColor: '$foreground',\n borderRadius: '4px',\n marginLeft: '$8',\n});\nexport const ArrowDown = styled('div', {\n width: '0px',\n height: '0px',\n borderLeft: '5px solid transparent',\n borderRight: '5px solid transparent',\n borderTop: '5px solid $foreground',\n marginLeft: '$8',\n});\nexport const UpdateIcon = styled(RetryIcon, {\n position: 'absolute',\n right: '0',\n});\nexport const StyledUpdateIcon = styled(UpdateIcon, {\n cursor: 'pointer',\n});\n\nconst BestRouteContainer = styled('div', {\n overflow: 'auto',\n});\n\nconst Alerts = styled('div', { paddingBottom: '$16' });\nexport interface PropTypes {\n bestRoute: BestRouteWithFee | null;\n onRefresh?: React.MouseEventHandler<SVGElement>;\n confirmButtonTitle: string;\n confirmButtonDisabled: boolean;\n onBack: () => void;\n onConfirm?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n loading?: boolean;\n errors?: ReactNode[];\n warnings?: ReactNode[];\n extraMessages?: ReactNode;\n}\nexport function ConfirmSwap(props: PropsWithChildren<PropTypes>) {\n const {\n bestRoute,\n onBack,\n onConfirm,\n loading,\n errors,\n warnings,\n extraMessages,\n confirmButtonTitle,\n confirmButtonDisabled,\n } = props;\n\n return (\n <SecondaryPage\n textField={false}\n title=\"Swap\"\n onBack={onBack}\n Footer={\n <Footer>\n <Button\n type=\"primary\"\n fullWidth\n loading={loading}\n variant=\"contained\"\n onClick={onConfirm}\n disabled={confirmButtonDisabled}\n >\n {confirmButtonTitle}\n </Button>\n </Footer>\n }\n >\n <MainContainer>\n <div>\n {extraMessages || null}\n <Alerts>\n {errors?.map((error, index) => (\n <>\n <Spacer direction=\"vertical\" />\n <Alert type=\"error\" key={index}>\n {error}\n </Alert>\n </>\n ))}\n {warnings?.map((warning, index) => (\n <>\n <Spacer direction=\"vertical\" />\n <Alert type=\"warning\" key={index}>\n {warning}\n </Alert>\n </>\n ))}\n </Alerts>\n </div>\n <BestRouteContainer>\n {bestRoute?.result?.swaps.map((swap, index) => (\n <Fragment key={index}>\n {index === 0 && (\n <RelativeContainer>\n <StepDetail\n logo={swap.from.logo}\n symbol={swap.from.symbol}\n chainLogo={swap.from.blockchainLogo}\n blockchain={swap.from.blockchain}\n amount={swap.fromAmount}\n />\n <Dot />\n </RelativeContainer>\n )}\n <Line />\n <SwapperContainer>\n <SwapperLogo src={swap.swapperLogo} alt={swap.swapperId} />\n <div>\n <Typography ml={4} variant=\"caption\">\n {swap.swapperType} from {swap.from.symbol} to{' '}\n {swap.to.symbol} via {swap.swapperId}{' '}\n </Typography>\n <Fee>\n <GasIcon />\n <Typography ml={4} variant=\"caption\">\n ${swap.feeInUsd} estimated gas fee\n </Typography>\n </Fee>\n </div>\n </SwapperContainer>\n <Line />\n {index + 1 === bestRoute.result?.swaps.length && <ArrowDown />}\n <StepDetail\n logo={swap.to.logo}\n symbol={swap.to.symbol}\n chainLogo={swap.to.blockchainLogo}\n blockchain={swap.to.blockchain}\n amount={swap.toAmount}\n />\n </Fragment>\n ))}\n </BestRouteContainer>\n </MainContainer>\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { Alert, Spacer } from '../../components';\nimport { Button } from '../../components/Button';\nimport { SecondaryPage } from '../../components/SecondaryPage/SecondaryPage';\nimport { SelectableWalletList } from '../../components/SelectableWalletList';\nimport { Typography } from '../../components/Typography';\nimport { styled } from '../../theme';\nimport { SelectableWallet } from '../../types';\n\nconst Section = styled('div', {\n paddingBottom: '$32',\n marginBottom: '$32',\n borderBottom: '1px solid $neutrals400',\n});\n\nconst Footer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst AlertContainer = styled('div', {\n padding: '$16 0',\n});\n\nconst ConfirmButton = styled(Button, {\n marginTop: '$16',\n});\n\nconst Container = styled('div', {\n paddingBottom: '$24',\n\n '.title': {\n paddingBottom: '$8',\n display: 'flex',\n alignItems: 'center',\n },\n '.num': {\n backgroundColor: '$neutrals300',\n display: 'inline-flex',\n width: '24px',\n height: '24px',\n color: '$neutrals800',\n borderRadius: '50%',\n fontSize: '$14',\n border: '1px solid $neutrals400',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport interface PropTypes {\n onBack: () => void;\n onConfirm?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n confirmDisabled?: boolean;\n loading?: boolean;\n requiredWallets: string[];\n selectableWallets: SelectableWallet[];\n onChange: (w: SelectableWallet) => void;\n isExperimentalChain?: (wallet: string) => boolean;\n handleConnectChain?: (wallet: string) => void;\n previewInputs?: ReactNode;\n previewRoutes?: ReactNode;\n}\nexport function ConfirmWallets(props: PropsWithChildren<PropTypes>) {\n const {\n onBack,\n loading,\n onConfirm,\n requiredWallets,\n selectableWallets,\n onChange,\n confirmDisabled,\n isExperimentalChain,\n handleConnectChain,\n } = props;\n\n return (\n <SecondaryPage\n textField={false}\n title=\"Confirm Swap\"\n onBack={onBack}\n Footer={\n <Footer>\n <ConfirmButton\n fullWidth\n loading={loading}\n type=\"primary\"\n variant=\"contained\"\n onClick={onConfirm}\n disabled={confirmDisabled}\n >\n Confirm Swap\n </ConfirmButton>\n </Footer>\n }\n >\n {props.previewInputs || props.previewRoutes ? (\n <Section>\n {props.previewInputs}\n {!!props.previewRoutes ? (\n <Spacer size={16} direction=\"vertical\" />\n ) : null}\n {props.previewRoutes}\n </Section>\n ) : null}\n\n {requiredWallets.map((wallet, index) => {\n const list = selectableWallets.filter((w) => wallet === w.chain);\n return (\n <Container key={index}>\n <div className=\"title\">\n <div className=\"num\">{index + 1}</div>\n <Spacer size={8} />\n <Typography variant=\"body2\">Your {wallet} Wallet</Typography>\n </div>\n {list.length === 0 && (\n <>\n <AlertContainer>\n <Alert type=\"error\">\n You need to connect a compatible wallet with {wallet}\n </Alert>\n </AlertContainer>\n {isExperimentalChain?.(wallet) && (\n <Button\n variant=\"contained\"\n type=\"primary\"\n align=\"grow\"\n onClick={() => handleConnectChain?.(wallet)}\n >\n {`Add ${wallet} chain to Cosmos wallets`}\n </Button>\n )}\n </>\n )}\n {list.length != 0 && (\n <SelectableWalletList list={list} onChange={onChange} />\n )}\n </Container>\n );\n })}\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { SecondaryPage } from '../../components/SecondaryPage';\nimport { SwapDetail } from '../../components/SwapDetail';\nimport { Typography } from '../../components/Typography';\nimport { containsText } from '../../helper';\nimport { groupingOfSwaps } from '../../helper/swaps';\nimport { styled } from '../../theme';\nimport { PendingSwap } from './types';\n\nconst BodyError = styled('div', {\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\nconst ErrorMsg = styled(Typography, {\n color: '$error',\n});\nconst filteredHistory = (\n list: PendingSwap[],\n searchedFor: string\n): PendingSwap[] => {\n return list.filter((swap) => {\n const firstStep = swap.steps[0];\n const lastStep = swap.steps[swap.steps.length - 1];\n return (\n containsText(firstStep.fromBlockchain, searchedFor) ||\n containsText(firstStep.fromSymbol, searchedFor) ||\n containsText(lastStep.toBlockchain, searchedFor) ||\n containsText(lastStep.toSymbol, searchedFor) ||\n containsText(swap.requestId, searchedFor)\n );\n });\n};\nconst Group = styled('div', {\n marginBottom: '$24',\n paddingRight: '$8',\n maxHeight: '600px',\n});\nconst GroupTitle = styled(Typography, {\n color: '$neutrals500',\n});\n\nexport interface PropTypes {\n list: PendingSwap[];\n onBack: () => void;\n onSwapClick: (requestId: string) => void;\n}\nconst SwapsGroup = (props: Omit<PropTypes, 'onBack'>) => {\n const { list, onSwapClick } = props;\n const swapsInGroup = groupingOfSwaps(list);\n\n return (\n <>\n {swapsInGroup.map((group, index) => (\n <Group key={index}>\n <GroupTitle variant=\"body2\">{group.title}</GroupTitle>\n {group.swaps.map((swap: PendingSwap, index: number) => (\n <SwapDetail\n key={index}\n swap={swap}\n status={swap.status}\n onClick={onSwapClick}\n />\n ))}\n </Group>\n ))}\n </>\n );\n};\n\nexport function History({\n list = [],\n onBack,\n onSwapClick,\n}: PropsWithChildren<PropTypes>) {\n return (\n <SecondaryPage\n onBack={onBack}\n textField={true}\n textFieldPlaceholder=\"Search By Blockchain Or Token\"\n title=\"Swaps\"\n >\n {(searchedFor) => {\n const filterSwaps = filteredHistory(list, searchedFor);\n return filterSwaps.length ? (\n <SwapsGroup list={filterSwaps} onSwapClick={onSwapClick} />\n ) : (\n <BodyError>\n <ErrorMsg variant=\"caption\">Not Found</ErrorMsg>\n </BodyError>\n );\n }}\n </SecondaryPage>\n );\n}\n","import { PendingSwap } from '../containers/History/types';\n\nexport function groupingOfSwaps(list: PendingSwap[]) {\n return list.reduce(\n (acc: Array<{ title: string; swaps: PendingSwap[] }>, swap) => {\n const categoryIndex = acc.findIndex(\n (item) =>\n (swap.status === 'running' && item.title == 'Active Swaps') ||\n (swap.status !== 'running' && item.title == 'Recent Swaps')\n );\n if (categoryIndex > -1) {\n acc[categoryIndex].swaps.push(swap);\n } else {\n acc.push({\n title: swap.status === 'running' ? 'Active Swaps' : 'Recent Swaps',\n swaps: [swap],\n });\n }\n return acc;\n },\n []\n );\n}\n","import React, { useState } from 'react';\nimport {\n StepDetail,\n SecondaryPage,\n GasIcon,\n Typography,\n CheckCircleIcon,\n InfoCircleIcon,\n CopyIcon,\n Spacer,\n CheckSquareIcon,\n Button,\n Alert,\n Drawer,\n} from '../../components';\nimport { styled } from '../../theme';\nimport {\n RelativeContainer,\n Dot,\n SwapperContainer,\n SwapperLogo,\n ArrowDown,\n Fee,\n} from '../ConfirmSwap/ConfirmSwap';\nimport { PendingSwap } from '../History/types';\nimport { pulse } from '../../components/BestRoute/BestRoute';\n\nconst StyledAnchor = styled('a', {\n color: '$primary',\n fontWeight: '$600',\n marginLeft: '$12',\n});\n\nconst InternalDetailsContainer = styled('div', {\n display: 'flex',\n});\n\nconst InternalDetail = styled('div', {\n display: 'flex',\n padding: '$10',\n});\n\nconst DescriptionContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst Description = styled(Typography, {\n color: '$success',\n marginLeft: '$8',\n});\n\nconst Error = styled(Description, {\n color: '$error',\n});\n\nexport const Line = styled('div', {\n width: '0',\n minHeight: '$16',\n marginLeft: '$12',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n});\n\nconst RequestIdContainer = styled('div', {\n cursor: 'pointer',\n backgroundColor: '$neutrals200',\n padding: '$4',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '$5',\n marginBottom: '$16',\n});\n\nconst RequestId = styled(Typography, {\n color: '$warning500',\n});\n\nconst CancelButtonContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst StepContainer = styled('div', {\n variants: {\n hasNotStarted: {\n true: {\n filter: 'grayscale(100%)',\n },\n },\n isRunning: {\n true: {\n animation: `${pulse} 2s ease-in-out infinite`,\n },\n },\n },\n});\n\nexport interface PropTypes {\n pendingSwap: PendingSwap;\n onCopy: (requestId: string) => void;\n onBack: () => void;\n isCopied: boolean;\n onCancel: (requestId: string) => void;\n}\n\nexport function SwapHistory(props: PropTypes) {\n const { pendingSwap, onBack, onCopy, isCopied, onCancel } = props;\n const [showDrawer, setShowDrawer] = useState(false);\n\n return (\n <SecondaryPage title=\"Swap Details\" textField={false} onBack={onBack}>\n <div style={{ overflow: 'hidden' }}>\n <div>\n <Typography variant=\"body1\"> request ID :</Typography>\n <RequestIdContainer\n onClick={onCopy.bind(null, pendingSwap?.requestId)}\n >\n <RequestId variant=\"body1\">{pendingSwap?.requestId}</RequestId>\n <Spacer size={12} />\n {isCopied ? (\n <CheckSquareIcon color=\"success\" size={18} />\n ) : (\n <CopyIcon color=\"warning\" size={18} />\n )}\n </RequestIdContainer>\n </div>\n <div style={{ overflow: 'auto', position: 'relative' }}>\n {pendingSwap?.steps.map((step, index) => (\n <StepContainer\n key={index}\n hasNotStarted={step.status === 'created'}\n isRunning={\n step.status != 'failed' &&\n step.status != 'success' &&\n step.status != 'created'\n }\n >\n {index === 0 && (\n <RelativeContainer>\n <StepDetail\n logo={step.fromLogo}\n symbol={step.fromSymbol}\n chainLogo={step.fromBlockchainLogo}\n blockchain={step.fromBlockchain}\n amount={pendingSwap.inputAmount}\n />\n <Dot />\n </RelativeContainer>\n )}\n <Line />\n <SwapperContainer>\n <SwapperLogo src={step.swapperLogo} alt={step.swapperId} />\n <div>\n <Typography ml={4} variant=\"caption\">\n {step.swapperType} from {step.fromSymbol} to {step.toSymbol}\n via {step.swapperId}\n </Typography>\n <Fee>\n <GasIcon />\n <Typography ml={4} variant=\"caption\">\n ${step.feeInUsd} estimated gas fee\n </Typography>\n </Fee>\n </div>\n </SwapperContainer>\n <div\n style={{\n display: 'flex',\n }}\n >\n <InternalDetailsContainer>\n <Line />\n {!!step.explorerUrl && (\n <div>\n {step.explorerUrl.map((item, index) => (\n <InternalDetail key={index}>\n <DescriptionContainer>\n <CheckCircleIcon color=\"success\" />\n <Description variant=\"body2\">\n {!item.description ? (\n <b>View transaction</b>\n ) : (\n <b>\n {item.description\n .substring(0, 1)\n .toUpperCase()}\n {item.description.substring(1)}\n </b>\n )}\n </Description>\n </DescriptionContainer>\n <StyledAnchor\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n key={index}\n >\n TX-Link\n </StyledAnchor>\n </InternalDetail>\n ))}\n {step.status === 'failed' && (\n <InternalDetail>\n <DescriptionContainer>\n <InfoCircleIcon color=\"error\" />\n <Error variant=\"body2\">Step failed</Error>\n </DescriptionContainer>\n </InternalDetail>\n )}\n </div>\n )}\n </InternalDetailsContainer>\n </div>\n {index + 1 === pendingSwap.steps.length && <ArrowDown />}\n <StepDetail\n logo={step.toLogo}\n symbol={step.toSymbol}\n chainLogo={step.toBlockchainLogo}\n blockchain={step.toBlockchain}\n amount={step.outputAmount}\n />\n </StepContainer>\n ))}\n {pendingSwap?.status === 'running' && (\n <CancelButtonContainer>\n <Button\n variant=\"contained\"\n type=\"error\"\n onClick={setShowDrawer.bind(null, true)}\n >\n Cancel\n </Button>\n </CancelButtonContainer>\n )}\n </div>\n </div>\n <Drawer\n onClose={setShowDrawer.bind(null, false)}\n open={showDrawer}\n showClose={true}\n anchor=\"bottom\"\n title=\"Cancel Progress\"\n content={\n <>\n <Alert type=\"warning\">\n <Typography variant=\"body2\">\n <p>\n Warning: Rango <u>neither reverts</u> your transaction\n <u>nor refunds</u> you if you've already signed and sent a\n transaction to the blockchain since it's out of Rango's\n control. Beware that \"Cancel\" only stops next steps from being\n executed.\n </p>\n <Spacer size={12} direction=\"vertical\" />\n <p>\n If you have already signed your transaction to blockchain, you\n should wait for that to complete or rollback\n </p>\n </Typography>\n </Alert>\n </>\n }\n footer={\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Button\n variant=\"contained\"\n type=\"success\"\n onClick={setShowDrawer.bind(null, false)}\n >\n Skip\n </Button>\n <Spacer size={16} />\n <Button\n variant=\"contained\"\n type=\"error\"\n onClick={() => {\n onCancel(pendingSwap.requestId);\n setShowDrawer(false);\n }}\n >\n Cancel progress\n </Button>\n </div>\n }\n container={document.getElementById('swap-box')!}\n />\n </SecondaryPage>\n );\n}\n"],"names":["_typedCreateStiches","createStitches","require","media","sm","md","lg","theme","colors","primary","primary100","primary200","primary300","primary400","primary500","primary600","primary700","primary800","primary900","neutrals200","neutrals300","neutrals400","neutrals500","neutrals600","neutrals700","neutrals800","neutrals900","background","foreground","success","success100","success300","success500","success700","warning","warning100","warning300","warning500","warning700","error","error100","error300","error500","error700","white","space","2","4","6","8","10","12","16","20","24","28","30","32","fontSizes","14","18","36","40","48","fonts","fontWeights","400","500","600","700","lineHeights","letterSpacings","sizes","borderWidths","borderStyles","radii","5","shadows","s","zIndices","transitions","utils","bc","value","backgroundColor","styled","css","createTheme","keyframes","globalCss","lightTheme","darkTheme","SvgWithStrokeColor","stroke","variants","color","black","_black","$$color","_white","SvgWithFillColor","fill","_black2","_white2","DeleteCircleIcon","_ref","size","_ref$size","props","_objectWithoutPropertiesLoose","_excluded","React","width","height","viewBox","xmlns","className","d","strokeWidth","strokeLinecap","strokeLinejoin","toString","CheckSquareIcon","AddIcon","InfoCircleIcon","AddCircleIcon","MinusCircleIcon","CheckCircleIcon","CheckIcon","fillRule","clipRule","BanIcon","strokeMiterlimit","WarningIcon","HistoryIcon","points","x1","y1","x2","y2","GasIcon","SettingsIcon","cx","cy","r","TrashIcon","SearchMinusIcon","SearchIcon","AngleRightIcon","AngleUpIcon","AngleDownIcon","AngleLeftIcon","DownloadIcon","ChevronRightIcon","forwardedRef","_ref$color","ref","RetryRightIcon","RetryLeftIcon","TryAgainIcon","VerticalSwapIcon","HorizontalSwapIcon","RetryIcon","WalletIcon","AddWalletIcon","DeleteWalletIcon","CheckWalletIcon","SwapWalletIcon","DisconnectIcon","BagIcon","clipPath","id","TimeIcon","CloseIcon","transform","cursor","SignatureIcon","xmlSpace","style","CopyIcon","TypographyContainer","margin","display","variant","h1","fontSize","fontWeight","@md","@lg","h2","h3","h4","h5","h6","body1","body2","body3","caption","align","center","textAlign","left","right","noWrap","true","whiteSpace","ml","marginLeft","mt","marginTop","mr","marginRight","mb","marginBottom","Typography","children","customCss","startsWith","StepLogoContainer","position","direction","vertical","horizontal","Logo","borderRadius","ChainLogo","bottom","padding","border","img","StepContainer","alignItems","flexDirection","justifyContent","Detail","pl","paddingLeft","false","paddingTop","SubTitle","StepDetail","chainLogo","amount","symbol","blockchain","_ref$direction","src","logo","alt","parseFloat","toFixed","SkeletonContainer","backgroundSize","animation","0%","backgroundPosition","100%","94","Skeleton","_ref$height","_ref$width","SpinnerContainer","borderRight","borderRightColor","Spinner","TooltipTrigger","RadixTooltip","TooltipContent","animationDuration","animationTimingFunction","willChange","gray","TooltipArrow","ChildrenWrapper","Tooltip","content","_ref$side","side","asChild","sideOffset","Container","minHeight","ErrorMsg","BestRouteContainer","overflowX","overflowY","alignSelf","Line","HR","SwapperLogo","RelativeContainer","Dot","top","ArrowRight","borderTop","borderBottom","borderLeft","pulse","opacity","50%","GasContainer","CostContainer","TotalFee","SwapperContainer","ButtonContainer","transition","&:active","start","grow","compact","small","medium","large","contained","&:hover","&:disabled","&:disabled:hover","outlined","borderStyle","borderColor","ghost","_ghost","fullWidth","loading","type","compoundVariants","&:visited","&:focus","_css","_css2","_css3","defaultVariants","Content","flex","flexContent","Button","disabled","prefix","suffix","FilledCircle","ListContainer","gap","gridTemplateColumns","alignContent","Image","maxHeight","BlockchainsList","list","onChange","multiSelect","selectedList","_useState","useState","selected","setSelected","changeSelectedBlockchain","isSelect","name","findIndex","item","map","index","undefined","onClick","bind","key","displayName","InputContainer","boxSizing","flexGrow","&:focus-within","outline","filter","paddingRight","Input","-webkit-appearance","Label","TextField","forwardRef","label","inputAttributes","htmlFor","spellCheck","HeaderContainer","StyledBackIcon","ContentContainer","SecondaryPage","title","Footer","TopButton","onBack","_props$hasHeader","hasHeader","searchedFor","setSearchedFor","textField","placeholder","textFieldPlaceholder","event","target","autoFocus","SpacerContainer","Spacer","MainContainer",".main",".footer","&.hasIcon .footer","secondary","Alert","showIcon","includes","footer","containsText","text","searchText","toLowerCase","indexOf","CheckboxContainer","CheckboxRoot","RadixCheckbox","ChipCointainer","Chip","WalletState","BackDrop","ModalContainer","boxShadow","zIndex","Row","ModalHeader","Modal","open","onClose","containerStyle","action","contentStyle","useEffect","document","body","overflow","createPortal","currentTarget","StateIconContainer","State","walletState","Fragment","DISCONNECTED","NOT_INSTALLED","href","detectInstallLink","installLink","CONNECTING","CONNECTED","WalletImage","Text","ExtendedButton","Wallet","state","window","image","ModalContent","StyledSwitchRoot","RadixSwitch","&[data-state=\"checked\"]","-webkit-tap-highlight-color","StyledSwitchThumb","Switch","checked","onCheckedChange","LiquiditySourceType","paddingBottom","LiquidityImage","LiquiditySourceList","listContainerStyle","changeLiquiditySources","clickedItem","prevState","concat","isSelected","liquiditySource","find","liquiditySources","sections","bridge","exchange","bridges","exchanges","totalBridges","length","totalExchanges","totalSelectedBridges","totalSelectedExchanges","_extends","LiquiditySourceItem","filterLiquiditySources","ActionButton","flexWrap","Circle","SolidCircle","flexBasis","SelectableWalletList","_list$find","walletType","active","setActive","w","_list$find2","StyledRoot","RadioGroup","gridGap","ItemContainer","StyledItem","StyledIndicator","&::after","Radio","_props$direction","onValueChange","options","option","BaseContainer","Title","SlippageChipsContainer","rowGap","LiquiditySourceContainer","InfiniteContainer","StyledAngleRight","LiquiditySourceNumber","ThemesContainer","Head","maxWidth","minWidth","SwapContainer","status","failed","running","Arrow","StatusContainer","SwapDetail","swap","firstStep","steps","lastStep","requestId","fromLogo","fromSymbol","fromBlockchainLogo","fromBlockchain","inputAmount","toLogo","toSymbol","toBlockchainLogo","toBlockchain","outputAmount","VirtualizedList","itemCount","hasNextPage","loadNextPage","Item","innerElementType","isItemLoaded","AutoSizer","InfiniteLoader","loadMoreItems","threshold","_ref2","List","itemSize","onItemsRendered","_ref3","TokenImage","TokenNameContainer","TokenAmountContainer","TokenItem","token","_token$balance","balance","usdValue","TokenList","searchedText","changeSelected","_useState2","setHasNextPage","_useState3","tokens","setTokens","slice","rest","address","filterTokens","Color","Cover","Popover","place","DrawerContainer","anchor","DrawerHeader","Body","Drawer","_props$anchor","_props$showClose","showClose","container","Fee","ArrowDown","Alerts","Section","AlertContainer","ConfirmButton",".title",".num","BodyError","Group","GroupTitle","SwapsGroup","onSwapClick","swapsInGroup","reduce","acc","categoryIndex","swaps","push","group","StyledAnchor","InternalDetailsContainer","InternalDetail","DescriptionContainer","Description","Error","RequestIdContainer","RequestId","CancelButtonContainer","hasNotStarted","isRunning","data","totalFee","feeWarning","totalTime","_data$result","result","_data$result2","from","blockchainLogo","fromAmount","swapperLogo","swapperId","to","toAmount","loadingStatus","filteredBlockchains","filterBlockchains","onChangeColor","displayColorPicker","setDisplayColorPicker","prev","ChromePicker","bestRoute","errors","warnings","extraMessages","onConfirm","confirmButtonDisabled","confirmButtonTitle","_bestRoute$result","_bestRoute$result2","swapperType","feeInUsd","requiredWallets","selectableWallets","isExperimentalChain","handleConnectChain","confirmDisabled","previewInputs","previewRoutes","wallet","chain","onSelect","info","_ref$list","filterSwaps","filteredHistory","toggleAll","slippages","selectedLiquiditySources","onSlippageChange","onLiquiditySourcesClick","customSlippage","onCustomSlippageChange","maxSlippage","minSlippage","selectedTheme","onThemeChange","toggleInfiniteApprove","infiniteApprove","selectedSlippage","setSelectedSlippage","PageContent","slippage","changeSlippage","parsedValue","pendingSwap","onCopy","isCopied","onCancel","showDrawer","setShowDrawer","step","explorerUrl","description","substring","toUpperCase","url","rel","getElementById"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.cjs.production.min.js","sources":["../src/theme.ts","../src/components/Icon/common.ts","../src/components/Icon/DeleteCircleIcon.tsx","../src/components/Icon/CheckSquareIcon.tsx","../src/components/Icon/AddIcon.tsx","../src/components/Icon/InfoCircleIcon.tsx","../src/components/Icon/AddCircleIcon.tsx","../src/components/Icon/MinusCircleIcon.tsx","../src/components/Icon/CheckCircleIcon.tsx","../src/components/Icon/CheckIcon.tsx","../src/components/Icon/BanIcon.tsx","../src/components/Icon/WarningIcon.tsx","../src/components/Icon/HistoryIcon.tsx","../src/components/Icon/GasIcon.tsx","../src/components/Icon/SettingIcon.tsx","../src/components/Icon/TrashIcon.tsx","../src/components/Icon/SearchMinusIcon.tsx","../src/components/Icon/SearchIcon.tsx","../src/components/Icon/AngleRightIcon.tsx","../src/components/Icon/AngleUpIcon.tsx","../src/components/Icon/AngleDownIcon.tsx","../src/components/Icon/AngleLeftIcon.tsx","../src/components/Icon/DownloadIcon.tsx","../src/components/Icon/ChevronRightIcon.tsx","../src/components/Icon/ArrowRightIcon.tsx","../src/components/Icon/RetryRightIcon.tsx","../src/components/Icon/RetryLeftIcon.tsx","../src/components/Icon/TryAgainIcon.tsx","../src/components/Icon/VerticalSwapIcon.tsx","../src/components/Icon/HorizontalSwapIcon.tsx","../src/components/Icon/RetryIcon.tsx","../src/components/Icon/WalletIconIcon.tsx","../src/components/Icon/AddWalletIcon.tsx","../src/components/Icon/DeleteWalletIcon.tsx","../src/components/Icon/CheckWalletIcon.tsx","../src/components/Icon/SwapWalletIcon.tsx","../src/components/Icon/DisconnectIcon.tsx","../src/components/Icon/BagIcon.tsx","../src/components/Icon/TimeIcon.tsx","../src/components/Icon/CloseIcon.tsx","../src/components/Icon/SignatureIcon.tsx","../src/components/Icon/CopyIcon.tsx","../src/components/Typography/Typography.tsx","../src/components/StepDetail/StepDetail.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/BestRoute/BestRoute.tsx","../src/components/Button/Button.tsx","../src/components/common/FilledCircle.tsx","../src/components/BlockchainsList/BlockchainsList.tsx","../src/components/Divider/Divider.tsx","../src/components/Header/Header.tsx","../src/components/TextField/TextField.tsx","../src/components/SecondaryPage/SecondaryPage.tsx","../src/helper/index.ts","../src/components/Spacer/Spacer.tsx","../src/components/Alert/Alert.tsx","../src/components/Alert/LoadingFailedAlert.tsx","../src/components/Alert/NotFoundAlert.tsx","../src/components/VirtualizedList/VirtualizedList.tsx","../src/components/TokenList/TokenItem.tsx","../src/components/TokenList/TokenList.tsx","../src/components/TokenSelector/TokenSelector.tsx","../src/components/BlockchainSelector/BlockchainSelector.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chip/Chip.tsx","../src/components/Modal/Modal.tsx","../src/types/wallet.ts","../src/components/Wallet/State.tsx","../src/components/Wallet/Wallet.tsx","../src/components/ConnectWalletsModal/ConnectWalletsModal.tsx","../src/components/Switch/Switch.tsx","../src/components/LiquiditySourceList/LiquiditySourceList.tsx","../src/components/LiquiditySourcesSelector/LiquiditySourcesSelector.tsx","../src/components/SelectableWalletList/SelectableWalletList.tsx","../src/components/Radio/Radio.tsx","../src/components/Settings/Settings.tsx","../src/components/SwapContainer/SwapContainer.tsx","../src/components/SwapDetail/Token.tsx","../src/components/SwapDetail/SwapDetail.tsx","../src/components/ColorPicker/ColorPicker.tsx","../src/components/Drawer/Drawer.tsx","../src/containers/ConfirmSwap/ConfirmSwap.tsx","../src/containers/History/History.tsx","../src/containers/SwapHistory/SwapMessages.tsx","../src/containers/SwapHistory/SwapHistory.tsx"],"sourcesContent":["// TSDX + stiches doesn't work with import statement and has a bug.\n\nimport { PropertyValue, CreateStitches } from '@stitches/react';\nimport { DefaultThemeMap } from '@stitches/react/types/config';\n\n// Solution: (https://github.com/stitchesjs/stitches/issues/833#issuecomment-950707025)\nconst { createStitches } = require('@stitches/react');\n\n/* ----------------------- Values ----------------------- */\nconst theme = {\n colors: {\n primary: '#5FA425',\n primary100: '#9FC87C',\n primary200: '#8FBF66',\n primary300: '#7FB651',\n primary400: '#6FAD3B',\n primary500: '#5FA425',\n primary600: '#4C831E',\n primary700: '#396216',\n primary800: '#26420F',\n primary900: '#132107',\n neutrals200: '#FAFAFA',\n neutrals300: '#EAEAEA',\n neutrals400: '#999999',\n neutrals500: '#888888',\n neutrals600: '#666666',\n neutrals700: '#444444',\n neutrals800: '#333333',\n neutrals900: '#111111',\n background: '#fff',\n foreground: '#000',\n success: '#0070F3',\n success100: '#D3E5FF',\n success300: '#3291FF',\n success500: '#0070F3',\n success700: '#0761D1',\n warning: '#F5A623',\n warning100: '#FFEFCF',\n warning300: '#F7B955',\n warning500: '#F5A623',\n warning700: '#AB570A',\n error: '#FF0000',\n error100: '#F7D4D6',\n error300: '#FF3333',\n error500: '#FF0000',\n error700: '#E60000',\n // Only use this color when you are going to use white for both dark and light theme.\n white: '#fff',\n },\n space: {\n 2: '2px',\n 4: '4px',\n 6: '6px',\n 8: '8px',\n 10: '10px',\n 12: '12px',\n 16: '16px',\n 20: '20px',\n 24: '24px',\n 28: '28px',\n 30: '30px',\n 32: '32px',\n },\n fontSizes: {\n 10: '10px',\n 12: '12px',\n 14: '14px',\n 16: '16px',\n 18: '18px',\n 20: '20px',\n 24: '24px',\n 32: '32px',\n 36: '36px',\n 40: '40px',\n 48: '48px',\n },\n fonts: {},\n fontWeights: {\n 400: '400',\n 500: '500',\n 600: '600',\n 700: '700',\n },\n lineHeights: {},\n letterSpacings: {},\n sizes: {\n 4: '4px',\n 6: '6px',\n 8: '8px',\n 12: '12px',\n 16: '16px',\n 20: '20px',\n 24: '24px',\n 28: '28px',\n 32: '32px',\n 36: '36px',\n 40: '40px',\n 48: '48px',\n },\n borderWidths: {},\n borderStyles: {},\n radii: {\n 5: '8px',\n 10: '12px',\n },\n shadows: {\n s: '0px 3px 5px 3px #f0f2f5, 0px 6px 10px 3px #f0f2f5, 0px 1px 18px 3px #f0f2f5',\n },\n zIndices: {},\n transitions: {},\n};\nconst media = {\n sm: '(min-width: 640px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 1024px)',\n};\nconst utils = {\n bc: (value: PropertyValue<'backgroundColor'>) => ({\n backgroundColor: value,\n }),\n};\n\n/* ----------------------- End of Values ----------------------- */\n\nconst typedCreateStiches = createStitches as CreateStitches;\n\n// Note: it seems there is a bug on tsdx and when it compiles the code, it goes through an error\n// We can directly check it with `tsc` to see if the error is correct or not.\n// We `ignore` it for now, to get safety check on VSCode.\n// @ts-ignore\nexport const { styled, css, createTheme, keyframes, globalCss } =\n typedCreateStiches<\n '',\n typeof media,\n typeof theme,\n DefaultThemeMap,\n // TODO: Make `utils` typesafe as well.\n {}\n >({\n media,\n theme,\n utils,\n });\n\nexport const lightTheme = createTheme({});\n\nexport const darkTheme = createTheme({\n colors: {\n neutrals200: '#111111',\n neutrals300: '#333333',\n neutrals400: '#444444',\n neutrals500: '#666666',\n neutrals600: '#888888',\n neutrals700: '#999999',\n neutrals800: '#EAEAEA',\n neutrals900: '#FAFAFA',\n foreground: '#fff',\n background: '#000',\n },\n shadows: {\n s: '0px 3px 5px 3px #222, 0px 6px 10px 3px #222, 0px 1px 18px 3px #222',\n },\n});\n","import { darkTheme, styled } from '../../theme';\n\nexport const SvgWithStrokeColor = styled('svg', {\n stroke: '$foreground',\n variants: {\n color: {\n primary: {\n stroke: '$primary',\n },\n error: {\n stroke: '$error',\n },\n warning: {\n stroke: '$warning',\n },\n success: {\n stroke: '$success',\n },\n black: {\n $$color: '$colors$foreground',\n [`.${darkTheme} &`]: {\n $$color: '$colors$background',\n },\n stroke: '$$color',\n },\n white: {\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n stroke: '$$color',\n },\n },\n },\n});\n\nexport const SvgWithFillColor = styled('svg', {\n fill: '$foreground',\n variants: {\n color: {\n primary: {\n fill: '$primary',\n },\n error: {\n fill: '$error',\n },\n warning: {\n fill: '$warning',\n },\n success: {\n fill: '$success',\n },\n black: {\n $$color: '$colors$foreground',\n [`.${darkTheme} &`]: {\n $$color: '$colors$background',\n },\n fill: '$$color',\n },\n white: {\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n fill: '$$color',\n },\n },\n },\n});\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const DeleteCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM9.17 14.83l5.66-5.66M14.83 14.83 9.17 9.17\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nDeleteCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const CheckSquareIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M9 22h6c5 0 7-2 7-7V9c0-5-2-7-7-7H9C4 2 2 4 2 9v6c0 5 2 7 7 7Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"m7.75 12 2.83 2.83 5.67-5.66\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nCheckSquareIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const AddIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M6 12h12M12 18V6\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAddIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithFillColor } from './common';\n\nexport const InfoCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM12 8v5\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n <path\n d=\"M11.994 16h.01\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n </SvgWithFillColor>\n );\n};\n\nInfoCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const AddCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM8 12h8M12 16V8\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAddCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const MinusCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M11.92 22c5.5 0 10-4.5 10-10s-4.5-10-10-10-10 4.5-10 10 4.5 10 10 10ZM7.92 12h8\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nMinusCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithFillColor } from './common';\n\nexport const CheckCircleIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n <path\n d=\"m7.75 12 2.83 2.83 5.67-5.66\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n stroke=\"#fff\"\n />\n </SvgWithFillColor>\n );\n};\n\nCheckCircleIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const CheckIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n color={color}\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n </SvgWithFillColor>\n );\n};\n\nCheckIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const BanIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10ZM18.9 5l-14 14\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nBanIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const WarningIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M11.994 17h.01\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nWarningIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const HistoryIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </SvgWithStrokeColor>\n );\n};\n\nHistoryIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const GasIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M4 22V5c0-2 1.34-3 3-3h8c1.66 0 3 1 3 3v17H4ZM2.5 22h17\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.89 10h4.23c1.04 0 1.89-.5 1.89-1.89V6.88c0-1.39-.85-1.89-1.89-1.89H8.89C7.85 4.99 7 5.49 7 6.88v1.23C7 9.5 7.85 10 8.89 10ZM7 13h3M18 16.01l4.5-.01v-6l-2-1\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nGasIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const SettingsIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path>\n </SvgWithStrokeColor>\n );\n};\n\nSettingsIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const TrashIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nTrashIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const SearchMinusIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M9 11.7h5M11.5 21a9.5 9.5 0 1 0 0-19 9.5 9.5 0 0 0 0 19ZM22 22l-2-2\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nSearchMinusIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const SearchIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M11.5 21a9.5 9.5 0 1 0 0-19 9.5 9.5 0 0 0 0 19ZM22 22l-2-2\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nSearchIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const AngleRightIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n color={color}\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m8.91 19.92 6.52-6.52c.77-.77.77-2.03 0-2.8L8.91 4.08\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAngleRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const AngleUpIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n color={color}\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M19.92 15.05 13.4 8.53c-.77-.77-2.03-.77-2.8 0l-6.52 6.52\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAngleUpIcon.toString = () => '._icon';\n","import React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const AngleDownIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m19.92 8.95-6.52 6.52c-.77.77-2.03.77-2.8 0L4.08 8.95\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n);\n\nAngleDownIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\nimport { AngleDownIcon } from './AngleDownIcon';\n\nexport const AngleLeftIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n color={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M15 19.92 8.48 13.4c-.77-.77-.77-2.03 0-2.8L15 4.08\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nAngleDownIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const DownloadIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M16.44 8.9c3.6.31 5.07 2.16 5.07 6.21v.13c0 4.47-1.79 6.26-6.26 6.26H8.74c-4.47 0-6.26-1.79-6.26-6.26v-.13c0-4.02 1.45-5.87 4.99-6.2M12 2v12.88\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M15.35 12.65 12 16l-3.35-3.35\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nDownloadIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const ChevronRightIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'black', size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n color={color}\n viewBox={`0 0 24 24`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </SvgWithStrokeColor>\n );\n }\n);\n\nChevronRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const ArrowRightIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\n <polyline points=\"12 5 19 12 12 19\"></polyline>\n </SvgWithStrokeColor>\n );\n};\n\nArrowRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const RetryRightIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M14.89 5.08c-.87-.26-1.83-.43-2.89-.43-4.79 0-8.67 3.88-8.67 8.67C3.33 18.12 7.21 22 12 22s8.67-3.88 8.67-8.67c0-1.78-.54-3.44-1.46-4.82M16.13 5.32 13.24 2M16.13 5.32l-3.37 2.46\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nRetryRightIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithStrokeColor } from './common';\n\nexport const RetryLeftIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M9.11 5.08c.87-.26 1.83-.43 2.89-.43 4.79 0 8.67 3.88 8.67 8.67s-3.88 8.67-8.67 8.67-8.67-3.88-8.67-8.67c0-1.78.54-3.44 1.46-4.82M7.87 5.32 10.76 2M7.87 5.32l3.37 2.46\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nRetryLeftIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const TryAgainIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nTryAgainIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const VerticalSwapIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m13.82 6.85 3.04 3.04M13.82 17.15V6.85M10.18 17.15l-3.04-3.04M10.18 6.85v10.3\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nVerticalSwapIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const HorizontalSwapIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"m17.15 13.82-3.04 3.04M6.85 13.82h10.3M6.85 10.18l3.04-3.04M17.15 10.18H6.85\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgWithStrokeColor>\n );\n};\n\nHorizontalSwapIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const RetryIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'black', size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n color={color}\n viewBox={`0 0 24 24`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <polyline points=\"23 4 23 10 17 10\"></polyline>\n <path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"></path>\n </SvgWithStrokeColor>\n );\n }\n);\n\nRetryIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const WalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n </SvgWithFillColor>\n );\n};\n\nWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const AddWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.569 7.205a3.018 3.018 0 0 0-3.01 3.01v3.076a4.749 4.749 0 0 1 6.5 4.414c0 .808-.206 1.579-.574 2.25h8.564a3.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.97-.82h1.27v-.69a3.018 3.018 0 0 0-3.01-3.01H6.569Zm-4.51 3.01a4.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-.014.014c-.266.26-.414.63-.377 1.022l.001.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.51H7.939a.75.75 0 0 1-.482-1.324c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-5.283-2.533.75.75 0 0 1-1.217-.587v-4.37Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.409 2.655a1.15 1.15 0 0 0-1.555-1.078l-7.94 3a2.098 2.098 0 0 0-1.355 1.968v4.57a.75.75 0 0 1-1.5 0v-4.57c0-1.5.921-2.84 2.324-3.371l7.94-3c1.733-.657 3.586.629 3.586 2.481v3.8a.75.75 0 0 1-1.5 0v-3.8ZM19.787 12.405c-.359 0-.674.14-.902.374l-.014.013c-.266.26-.414.63-.377 1.022v.01c.054.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.759 2.759 0 0 1 .817-2.227Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.559 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM5.309 14.455c-.762 0-1.469.267-2.033.717h-.001a3.22 3.22 0 0 0-1.216 2.533c0 .61.17 1.184.468 1.667l.006.01a3.22 3.22 0 0 0 2.776 1.573 3.155 3.155 0 0 0 2.148-.824c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-3.25-3.25Zm-2.967-.457a4.749 4.749 0 0 1 7.717 3.707c0 .888-.248 1.73-.687 2.446-.25.427-.57.808-.941 1.12a4.656 4.656 0 0 1-3.122 1.184 4.72 4.72 0 0 1-4.062-2.301 4.671 4.671 0 0 1-.688-2.449 4.72 4.72 0 0 1 1.783-3.707Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.07 17.685a.75.75 0 0 1 .75-.75H6.8a.75.75 0 0 1 0 1.5H3.82a.75.75 0 0 1-.75-.75Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.309 15.475a.75.75 0 0 1 .75.75v2.99a.75.75 0 0 1-1.5 0v-2.99a.75.75 0 0 1 .75-.75Z\"\n />\n </SvgWithFillColor>\n );\n};\n\nAddWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const DeleteWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.627 7.205a3.018 3.018 0 0 0-3.01 3.01v3.076a4.749 4.749 0 0 1 6.5 4.414c0 .808-.205 1.579-.573 2.25h8.563a3.018 3.018 0 0 0 3.01-3.01v-.44h-1.15c-1.41 0-2.777-1.03-2.907-2.553a2.759 2.759 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.01H6.627Zm-4.51 3.01a4.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-.675.14-.902.373l-.014.014c-.266.26-.415.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.51H7.997a.75.75 0 0 1-.482-1.325c.243-.203.457-.456.624-.743l.01-.016a3.17 3.17 0 0 0 .468-1.666 3.249 3.249 0 0 0-5.282-2.533.75.75 0 0 1-1.218-.587v-4.37Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.467 2.655a1.15 1.15 0 0 0-1.554-1.079l-7.94 3a2.098 2.098 0 0 0-1.356 1.97v4.569a.75.75 0 1 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.8ZM19.846 12.405c-.359 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.617 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM5.367 14.455c-.761 0-1.468.267-2.032.717h-.002a3.22 3.22 0 0 0-1.216 2.533c0 .61.17 1.183.469 1.666l.006.01a3.22 3.22 0 0 0 2.775 1.574 3.155 3.155 0 0 0 2.148-.825c.243-.203.457-.456.624-.743l.01-.016a3.17 3.17 0 0 0 .468-1.666 3.249 3.249 0 0 0-3.25-3.25ZM2.4 13.998a4.749 4.749 0 0 1 7.717 3.707 4.67 4.67 0 0 1-.687 2.446c-.25.427-.57.808-.94 1.12a4.655 4.655 0 0 1-3.123 1.184 4.72 4.72 0 0 1-4.061-2.301 4.67 4.67 0 0 1-.689-2.449A4.72 4.72 0 0 1 2.4 13.998Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.785 16.106a.75.75 0 0 1 1.06-.003l2.12 2.11a.75.75 0 1 1-1.058 1.064l-2.12-2.11a.75.75 0 0 1-.002-1.061Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.948 16.136a.75.75 0 0 1-.002 1.06l-2.12 2.11a.75.75 0 0 1-1.058-1.063l2.12-2.11a.75.75 0 0 1 1.06.003Z\"\n />\n </SvgWithFillColor>\n );\n};\n\nDeleteWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { IconProps } from './types';\nimport { SvgWithFillColor } from './common';\n\nexport const CheckWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.686 7.205a3.018 3.018 0 0 0-3.01 3.01v3.076a4.749 4.749 0 0 1 6.5 4.414c0 .808-.205 1.579-.573 2.25h8.563a3.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.97-.82h1.27v-.69a3.018 3.018 0 0 0-3.01-3.01H6.686Zm-4.51 3.01a4.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-.378 1.022l.001.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.51H8.056a.75.75 0 0 1-.482-1.324c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-5.283-2.533.75.75 0 0 1-1.217-.587v-4.37Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.526 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.921-2.84 2.324-3.371l7.94-3c1.733-.657 3.586.629 3.586 2.481v3.8a.75.75 0 0 1-1.5 0v-3.8ZM19.905 12.405c-.36 0-.675.14-.903.374l-.014.013c-.265.26-.414.63-.377 1.022l.001.01c.053.634.664 1.181 1.413 1.181h1.942a.276.276 0 0 0 .268-.27v-2.06a.276.276 0 0 0-.268-.27h-2.062Zm-1.971-.68a2.743 2.743 0 0 1 1.97-.82h2.107a1.777 1.777 0 0 1 1.724 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.758 2.758 0 0 1 .816-2.227Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.676 10.705a.75.75 0 0 1 .75-.75h7a.75.75 0 0 1 0 1.5h-7a.75.75 0 0 1-.75-.75ZM5.426 14.455c-.762 0-1.469.267-2.033.717h-.001a3.22 3.22 0 0 0-1.216 2.533c0 .61.17 1.184.468 1.667l.006.01a3.22 3.22 0 0 0 2.776 1.573 3.155 3.155 0 0 0 2.148-.824c.243-.204.457-.457.624-.744l.01-.015a3.17 3.17 0 0 0 .468-1.667 3.249 3.249 0 0 0-3.25-3.25Zm-2.967-.457a4.749 4.749 0 0 1 7.717 3.707c0 .888-.248 1.73-.687 2.446-.25.427-.57.808-.941 1.12a4.656 4.656 0 0 1-3.122 1.184 4.72 4.72 0 0 1-4.062-2.301 4.671 4.671 0 0 1-.688-2.449 4.72 4.72 0 0 1 1.783-3.707Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.538 16.215a.75.75 0 0 1-.042 1.06l-2.13 1.97a.75.75 0 0 1-1.04-.02l-.99-.99a.75.75 0 1 1 1.062-1.06l.48.48 1.6-1.48a.75.75 0 0 1 1.06.04Z\"\n />\n </SvgWithFillColor>\n );\n};\n\nCheckWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const SwapWalletIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n </SvgWithFillColor>\n );\n};\n\nSwapWalletIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const DisconnectIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color = 'black', size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n color={color}\n viewBox={`0 0 24 24`}\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"></path>\n <polyline points=\"16 17 21 12 16 7\"></polyline>\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"></line>\n </SvgWithStrokeColor>\n );\n }\n);\n\nDisconnectIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const BagIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 32 32\"\n color={color}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <g clipPath=\"url(#a)\" strokeWidth={1.5}>\n <path d=\"M9.333 9.333V4.8a.8.8 0 0 1 .8-.8h11.734a.8.8 0 0 1 .8.8v4.533M13.333 4v5.333M16 4v5.333m9.333 17.334H6.667A2.667 2.667 0 0 1 4 24V12a2.667 2.667 0 0 1 2.667-2.667h18.666A2.667 2.667 0 0 1 28 12v12a2.667 2.667 0 0 1-2.667 2.667Z\" />\n <path\n d=\"M22 18.666a.667.667 0 1 1 0-1.334.667.667 0 0 1 0 1.334Z\"\n fill={color}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill={color} d=\"M0 0h32v32H0z\" />\n </clipPath>\n </defs>\n </SvgWithStrokeColor>\n );\n};\n\nBagIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithStrokeColor } from './common';\nimport { IconProps } from './types';\n\nexport const TimeIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithStrokeColor\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n ref={forwardedRef}\n >\n <circle cx={10} cy={10} r={7.25} strokeWidth={1.5} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n 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\"\n />\n </SvgWithStrokeColor>\n );\n }\n);\n\nTimeIcon.toString = () => '._icon';\n","import { styled } from '../../theme';\nimport { AddIcon } from './AddIcon';\n\nexport const CloseIcon = styled(AddIcon, {\n transform: 'rotate(45deg)',\n cursor: 'pointer',\n});\n\nCloseIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const SignatureIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n color={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 122.88 107.95\"\n xmlSpace=\"preserve\"\n className=\"_icon\"\n {...props}\n >\n <path\n 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\"\n style={{\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n />\n </SvgWithFillColor>\n );\n};\n\nSignatureIcon.toString = () => '._icon';\n","import * as React from 'react';\nimport { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const CopyIcon: React.FC<IconProps> = ({\n size = 16,\n color,\n ...props\n}) => {\n return (\n <SvgWithFillColor\n width={size}\n height={size}\n viewBox=\"0 0 64 64\"\n color={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <g id=\"Text-files\">\n <path\n d=\"M53.9791489,9.1429005H50.010849c-0.0826988,0-0.1562004,0.0283995-0.2331009,0.0469999V5.0228\n\t\tC49.7777481,2.253,47.4731483,0,44.6398468,0h-34.422596C7.3839517,0,5.0793519,2.253,5.0793519,5.0228v46.8432999\n\t\tc0,2.7697983,2.3045998,5.0228004,5.1378999,5.0228004h6.0367002v2.2678986C16.253952,61.8274002,18.4702511,64,21.1954517,64\n\t\th32.783699c2.7252007,0,4.9414978-2.1725998,4.9414978-4.8432007V13.9861002\n\t\tC58.9206467,11.3155003,56.7043495,9.1429005,53.9791489,9.1429005z M7.1110516,51.8661003V5.0228\n\t\tc0-1.6487999,1.3938999-2.9909999,3.1062002-2.9909999h34.422596c1.7123032,0,3.1062012,1.3422,3.1062012,2.9909999v46.8432999\n\t\tc0,1.6487999-1.393898,2.9911003-3.1062012,2.9911003h-34.422596C8.5049515,54.8572006,7.1110516,53.5149002,7.1110516,51.8661003z\n\t\t M56.8888474,59.1567993c0,1.550602-1.3055,2.8115005-2.9096985,2.8115005h-32.783699\n\t\tc-1.6042004,0-2.9097996-1.2608986-2.9097996-2.8115005v-2.2678986h26.3541946\n\t\tc2.8333015,0,5.1379013-2.2530022,5.1379013-5.0228004V11.1275997c0.0769005,0.0186005,0.1504021,0.0469999,0.2331009,0.0469999\n\t\th3.9682999c1.6041985,0,2.9096985,1.2609005,2.9096985,2.8115005V59.1567993z\"\n />\n <path\n d=\"M38.6031494,13.2063999H16.253952c-0.5615005,0-1.0159006,0.4542999-1.0159006,1.0158005\n\t\tc0,0.5615997,0.4544001,1.0158997,1.0159006,1.0158997h22.3491974c0.5615005,0,1.0158997-0.4542999,1.0158997-1.0158997\n\t\tC39.6190491,13.6606998,39.16465,13.2063999,38.6031494,13.2063999z\"\n />\n <path\n d=\"M38.6031494,21.3334007H16.253952c-0.5615005,0-1.0159006,0.4542999-1.0159006,1.0157986\n\t\tc0,0.5615005,0.4544001,1.0159016,1.0159006,1.0159016h22.3491974c0.5615005,0,1.0158997-0.454401,1.0158997-1.0159016\n\t\tC39.6190491,21.7877007,39.16465,21.3334007,38.6031494,21.3334007z\"\n />\n <path\n d=\"M38.6031494,29.4603004H16.253952c-0.5615005,0-1.0159006,0.4543991-1.0159006,1.0158997\n\t\ts0.4544001,1.0158997,1.0159006,1.0158997h22.3491974c0.5615005,0,1.0158997-0.4543991,1.0158997-1.0158997\n\t\tS39.16465,29.4603004,38.6031494,29.4603004z\"\n />\n <path\n d=\"M28.4444485,37.5872993H16.253952c-0.5615005,0-1.0159006,0.4543991-1.0159006,1.0158997\n\t\ts0.4544001,1.0158997,1.0159006,1.0158997h12.1904964c0.5615025,0,1.0158005-0.4543991,1.0158005-1.0158997\n\t\tS29.0059509,37.5872993,28.4444485,37.5872993z\"\n />\n </g>\n </SvgWithFillColor>\n );\n};\n\nCopyIcon.toString = () => '._icon';\n","import { CSSProperties } from '@stitches/react';\nimport React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\n\nconst TypographyContainer = styled('span', {\n margin: 0,\n display: 'inline-block',\n variants: {\n variant: {\n h1: {\n fontSize: '$36',\n fontWeight: '$700',\n '@md': {\n fontSize: '$40',\n },\n '@lg': {\n fontSize: '$48',\n },\n },\n h2: {\n fontSize: '$32',\n fontWeight: '$700',\n '@md': {\n fontSize: '$36',\n },\n '@lg': {\n fontSize: '$40',\n },\n },\n h3: {\n fontSize: '$20',\n fontWeight: '$700',\n '@md': {\n fontSize: '$24',\n },\n '@lg': {\n fontSize: '$32',\n },\n },\n h4: {\n fontSize: '$18',\n fontWeight: '$600',\n '@md': {\n fontSize: '$20',\n },\n '@lg': {\n fontSize: '$24',\n },\n },\n h5: {\n fontSize: '$16',\n fontWeight: '$600',\n },\n h6: {\n fontSize: '$14',\n fontWeight: '$500',\n '@md': {\n fontSize: '$16',\n },\n '@lg': {\n fontSize: '$18',\n },\n },\n body1: {\n fontSize: '$14',\n fontWeight: '$400',\n '@md': {\n fontSize: '$16',\n },\n '@lg': {\n fontSize: '$18',\n },\n },\n body2: {\n fontSize: '$14',\n fontWeight: '$400',\n '@lg': {\n fontSize: '$16',\n },\n },\n body3: {\n fontSize: '$12',\n fontWeight: '$400',\n },\n caption: {\n fontSize: '$10',\n fontWeight: '$400',\n '@lg': {\n fontSize: '$12',\n },\n },\n },\n align: {\n center: {\n textAlign: 'center',\n },\n left: {\n textAlign: 'left',\n },\n right: {\n textAlign: 'right',\n },\n },\n noWrap: {\n true: {\n whiteSpace: 'nowrap',\n },\n },\n ml: {\n 2: {\n marginLeft: '$2',\n },\n 4: {\n marginLeft: '$4',\n },\n 8: {\n marginLeft: '$8',\n },\n 12: {\n marginLeft: '$12',\n },\n },\n mt: {\n 2: {\n marginTop: '$2',\n },\n 4: {\n marginTop: '$4',\n },\n 8: {\n marginTop: '$8',\n },\n 12: {\n marginTop: '$12',\n },\n },\n mr: {\n 2: {\n marginRight: '$2',\n },\n 4: {\n marginRight: '$4',\n },\n 8: {\n marginRight: '$8',\n },\n 12: {\n marginRight: '$12',\n },\n },\n mb: {\n 2: {\n marginBottom: '$2',\n },\n 4: {\n marginBottom: '$4',\n },\n 8: {\n marginBottom: '$8',\n },\n 12: {\n marginBottom: '$12',\n },\n },\n },\n});\n\nexport interface PropTypes {\n variant:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'body1'\n | 'body2'\n | 'body3'\n | 'caption';\n align?: 'center' | 'left' | 'right';\n noWrap?: boolean;\n mt?: 2 | 4 | 8 | 12;\n mb?: 2 | 4 | 8 | 12;\n ml?: 2 | 4 | 8 | 12;\n mr?: 2 | 4 | 8 | 12;\n className?: string;\n style?: CSSProperties;\n color?: string;\n}\n\nexport function Typography({\n children,\n className,\n color,\n ...props\n}: PropsWithChildren<PropTypes>) {\n const customCss = color\n ? {\n color: color.startsWith('$') ? color : `$${color}`,\n }\n : {\n color: '$foreground',\n };\n\n return (\n <TypographyContainer\n className={`_typography _text ${className || ''}`}\n css={customCss}\n {...props}\n >\n {children}\n </TypographyContainer>\n );\n}\n\nTypography.toString = () => '._typography';\n","import React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\n\nconst StepLogoContainer = styled('div', {\n position: 'relative',\n width: '$28',\n height: '$28',\n variants: {\n direction: {\n vertical: {\n margin: 'auto',\n },\n horizontal: {},\n },\n },\n});\nconst Logo = styled('img', {\n width: '$28',\n height: '$28',\n borderRadius: '50%',\n});\n\nconst ChainLogo = styled('div', {\n position: 'absolute',\n right: -4,\n bottom: -4,\n width: '$16',\n height: '$16',\n padding: '$2',\n borderRadius: '50%',\n backgroundColor: '$background',\n border: '1px solid $neutrals400',\n\n img: {\n width: '100%',\n display: 'block',\n },\n});\nconst StepContainer = styled('div', {\n display: 'flex',\n variants: {\n direction: {\n horizontal: {\n alignItems: 'center',\n },\n vertical: {\n flexDirection: 'column',\n textAlign: 'center',\n justifyContent: 'center',\n },\n },\n },\n});\nconst Detail = styled('div', {\n variants: {\n pl: {\n true: {\n paddingLeft: '$4',\n '@lg': {\n paddingLeft: '$8',\n },\n },\n false: {\n paddingTop: '$8',\n },\n },\n },\n});\nconst SubTitle = styled(Typography, {\n color: '$neutrals600',\n display: 'block',\n});\nexport interface PropTypes {\n logo: string;\n chainLogo: string;\n amount: string;\n symbol: string;\n blockchain: string;\n direction?: 'horizontal' | 'vertical';\n}\n\nexport function StepDetail({\n logo,\n chainLogo,\n amount,\n symbol,\n blockchain,\n direction = 'horizontal',\n}: PropsWithChildren<PropTypes>) {\n return (\n <StepContainer direction={direction}>\n <StepLogoContainer direction={direction}>\n <Logo src={logo} alt={symbol} />\n <ChainLogo>\n <img src={chainLogo} alt={blockchain} />\n </ChainLogo>\n </StepLogoContainer>\n <Detail pl={direction === 'horizontal'}>\n <Typography noWrap variant={direction === 'vertical' ? 'body2' : 'h6'}>\n {amount ? parseFloat(amount).toFixed(2) : '?'} {symbol}\n </Typography>\n <SubTitle noWrap variant=\"caption\" color=\"neutrals800\">\n on {blockchain}\n </SubTitle>\n </Detail>\n </StepContainer>\n );\n}\n","import React from 'react';\nimport { keyframes, styled } from '../../theme';\n\nconst waveSquares = keyframes({\n '0%': {\n backgroundPosition: '-468px 0',\n },\n '100%': {\n backgroundPosition: '468px 0',\n },\n});\n\nconst SkeletonContainer = styled('div', {\n borderRadius: '$5',\n backgroundColor: '$neutrals300',\n background: `linear-gradient(to right, rgba(130, 130, 130, 0.2) 8%, rgba(130, 130, 130, 0.3) 18%, rgba(130, 130, 130, 0.2) 33%)`,\n backgroundSize: '800px 100px',\n animation: `${waveSquares} 2s infinite ease-out`,\n variants: {\n width: {\n 16: {\n width: '$16',\n },\n 20: {\n width: '$20',\n },\n 24: {\n width: '$24',\n },\n 36: {\n width: '$36',\n },\n 48: {\n width: '$48',\n },\n },\n height: {\n 16: {\n height: '$16',\n },\n 20: {\n height: '$20',\n },\n 24: {\n height: '$24',\n },\n 36: {\n height: '$36',\n },\n 48: {\n height: '$48',\n },\n 94: {\n height: 94,\n },\n },\n },\n});\nexport interface PropTypes {\n width?: 20 | 24 | 36 | 48;\n height?: 20 | 24 | 36 | 48 | 94;\n}\n\nexport function Skeleton({ width = 20, height = 20 }: PropTypes) {\n return <SkeletonContainer width={width} height={height} />;\n}\n","import React from 'react';\nimport { keyframes, styled } from '../../theme';\n\nconst spin = keyframes({\n '100%': {\n transform: 'rotate(360deg)',\n },\n});\n\nconst SpinnerContainer = styled('div', {\n borderRadius: '50%',\n position: 'relative',\n border: `2px solid $neutrals300`,\n borderRight: `2px solid`,\n animation: `${spin} 1.5s linear infinite`,\n margin: `0px $8`,\n variants: {\n color: {\n primary: {\n borderRightColor: '$primary',\n },\n error: {\n borderRightColor: '$error',\n },\n warning: {\n borderRightColor: '$warning',\n },\n success: {\n borderRightColor: '$success',\n },\n black: {\n borderRightColor: '$black',\n },\n white: {\n borderRightColor: '$white',\n },\n },\n size: {\n 16: {\n width: '$16',\n height: '$16',\n },\n 20: {\n width: '$20',\n height: '$20',\n },\n 24: {\n width: '$24',\n height: '$24',\n },\n },\n },\n});\nexport interface PropTypes {\n size?: 16 | 20 | 24;\n color?: 'primary' | 'error' | 'warning' | 'success' | 'black' | 'white';\n}\n\nexport function Spinner({ size = 16, color = 'primary' }: PropTypes) {\n return <SpinnerContainer size={size} color={color} />;\n}\n","import * as RadixTooltip from '@radix-ui/react-tooltip';\nimport { styled } from '../../theme';\nimport React, { PropsWithChildren } from 'react';\n\nexport interface PropTypes {\n content: string;\n side?: 'top' | 'right' | 'bottom' | 'left';\n color?:\n | 'primary'\n | 'error'\n | 'warning'\n | 'success'\n | 'gray'\n | 'white'\n | 'black';\n}\nconst TooltipTrigger = styled(RadixTooltip.Trigger, {\n border: 0,\n padding: 0,\n\n backgroundColor: 'transparent',\n});\nconst TooltipContent = styled(RadixTooltip.Content, {\n borderRadius: '$5',\n padding: '$4 $8',\n fontSize: '$14',\n animationDuration: '400ms',\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\n willChange: 'transform, opacity',\n variants: {\n color: {\n primary: {\n backgroundColor: '$primary',\n color: '$white',\n },\n error: {\n backgroundColor: '$error',\n color: '$white',\n },\n warning: {\n backgroundColor: '$warning',\n color: '$white',\n },\n success: {\n backgroundColor: '$success',\n color: '$white',\n },\n gray: {\n backgroundColor: '$neutrals300',\n color: '$black',\n },\n black: {\n backgroundColor: '$black',\n color: '$white',\n },\n white: {\n backgroundColor: '$white',\n color: '$black',\n },\n },\n },\n});\nconst TooltipArrow = styled(RadixTooltip.Arrow, {\n variants: {\n color: {\n primary: {\n fill: '$primary',\n },\n error: {\n fill: '$error',\n },\n warning: {\n fill: '$warning',\n },\n success: {\n fill: '$success',\n },\n gray: {\n fill: '$neutrals300',\n },\n black: {\n fill: '$black',\n },\n white: {\n fill: '$white',\n },\n },\n },\n});\n\nconst ChildrenWrapper = styled('div', {\n display: 'inline-block',\n});\n\nexport function Tooltip({\n children,\n content,\n side = 'top',\n color = 'gray',\n}: PropsWithChildren<PropTypes>) {\n return (\n <RadixTooltip.Provider>\n <RadixTooltip.Root>\n <TooltipTrigger asChild>\n <ChildrenWrapper>{children}</ChildrenWrapper>\n </TooltipTrigger>\n <RadixTooltip.Portal>\n <TooltipContent color={color} side={side} sideOffset={5}>\n {content}\n <TooltipArrow color={color} />\n </TooltipContent>\n </RadixTooltip.Portal>\n </RadixTooltip.Root>\n </RadixTooltip.Provider>\n );\n}\n","import React, { Fragment, PropsWithChildren } from 'react';\nimport { GasIcon, TimeIcon } from '../../components/Icon';\nimport { StepDetail } from '../../components/StepDetail';\nimport { Typography } from '../../components/Typography';\nimport { keyframes, styled } from '../../theme';\nimport { Skeleton } from '../Skeleton';\nimport { Spinner } from '../Spinner';\nimport { BestRouteResponse } from 'rango-sdk';\nimport { Tooltip } from '../Tooltip';\n\nconst Container = styled('div', {\n borderRadius: '$5',\n border: '1px solid $neutrals300',\n display: 'flex',\n alignItems: 'center',\n minHeight: 126,\n justifyContent: 'space-between',\n});\n\nconst ErrorMsg = styled(Typography, {\n color: '$error',\n});\nconst BestRouteContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n margin: '0 auto',\n overflowX: 'auto',\n overflowY: 'hidden',\n alignSelf: 'stretch',\n padding: '$4',\n '@md': {\n padding: '$8',\n },\n});\nconst Line = styled('div', {\n height: '0',\n width: '$20',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n '@lg': {\n width: '$32',\n },\n});\n\nconst HR = styled('hr', {\n width: '100%',\n border: '1px solid $neutrals400',\n margin: '$8 0',\n});\n\nconst SwapperLogo = styled('img', {\n width: '$16',\n height: '$16',\n});\nconst RelativeContainer = styled('div', {\n position: 'relative',\n});\nconst Dot = styled('div', {\n width: '$6',\n height: '$6',\n backgroundColor: '$foreground',\n position: 'absolute',\n top: '45%',\n right: -5,\n marginLeft: '$8',\n borderRadius: '50%',\n '@md': {\n width: '$8',\n height: '$8',\n right: -8,\n top: '45%',\n },\n});\nconst ArrowRight = styled('div', {\n width: '0px',\n height: '0px',\n borderTop: '5px solid transparent',\n borderBottom: '5px solid transparent',\n borderLeft: '5px solid $foreground',\n});\n\nexport const pulse = keyframes({\n '0%': {\n opacity: 1,\n },\n '50%': {\n opacity: 0.3,\n },\n '100%': {\n opacity: 1,\n },\n});\n\nconst GasContainer = styled('div', {\n backgroundColor: '$neutrals300',\n borderRadius: '5px',\n margin: '$4',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '$4',\n '@md': {\n padding: '$8',\n margin: '$8',\n },\n});\n\nconst CostContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n variants: {\n warning: {\n true: {\n animation: `${pulse} 2s ease-in-out infinite`,\n },\n },\n },\n});\n\nconst TotalFee = styled(Typography, {\n variants: {\n warning: {\n true: {\n color: '$warning300',\n },\n },\n },\n});\n\nconst SkeletonContainer = styled('div', {\n padding: '$4',\n '@md': {\n padding: '$8',\n },\n});\nconst SwapperContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nexport interface PropTypes {\n data: BestRouteResponse | null;\n totalFee: string;\n feeWarning: boolean;\n totalTime: string;\n loading?: boolean;\n error?: string;\n}\nexport function BestRoute(props: PropsWithChildren<PropTypes>) {\n const { data, loading, error, totalFee, feeWarning, totalTime } = props;\n return (\n <Container>\n {loading ? (\n <SkeletonContainer>\n <Skeleton width={48} height={94} />\n </SkeletonContainer>\n ) : (\n <GasContainer>\n <Tooltip content=\"Transaction cost (fee)\">\n <CostContainer warning={feeWarning}>\n <GasIcon size={20} color={feeWarning ? 'warning' : undefined} />\n <TotalFee\n mt={4}\n align=\"center\"\n variant=\"caption\"\n warning={feeWarning}\n >\n {error && '-'}\n {!!data && `$${totalFee}`}\n </TotalFee>\n </CostContainer>\n </Tooltip>\n <HR />\n <Tooltip content=\"Time estimate\">\n <CostContainer warning={feeWarning}>\n <TimeIcon size={20} />\n <Typography mt={4} align=\"center\" variant=\"caption\">\n {error && '-'}\n {!!data && `~${totalTime}m`}\n </Typography>\n </CostContainer>\n </Tooltip>\n </GasContainer>\n )}\n <BestRouteContainer>\n {loading && <Spinner color=\"primary\" />}\n\n {error && <ErrorMsg variant=\"caption\">{error}</ErrorMsg>}\n\n {!!data &&\n data.result?.swaps.map((swap, index) => (\n <Fragment key={index}>\n {index === 0 && (\n <RelativeContainer>\n <StepDetail\n direction=\"vertical\"\n logo={swap.from.logo}\n symbol={swap.from.symbol}\n chainLogo={swap.from.blockchainLogo}\n blockchain={swap.from.blockchain}\n amount={swap.fromAmount}\n />\n <Dot />\n </RelativeContainer>\n )}\n <SwapperContainer>\n <Line />\n <SwapperLogo src={swap.swapperLogo} alt={swap.swapperId} />\n <Line />\n </SwapperContainer>\n\n {index + 1 === data.result?.swaps.length && <ArrowRight />}\n <StepDetail\n direction=\"vertical\"\n logo={swap.to.logo}\n symbol={swap.to.symbol}\n chainLogo={swap.to.blockchainLogo}\n blockchain={swap.to.blockchain}\n amount={swap.toAmount}\n />\n </Fragment>\n ))}\n {!!data && !data?.result && (\n <Typography variant=\"body2\">No routes found</Typography>\n )}\n </BestRouteContainer>\n </Container>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { PropsWithChildren, HTMLAttributes } from 'react';\nimport { darkTheme, styled } from '../../theme';\nimport { Spinner } from '../Spinner';\nimport { Typography } from '../Typography';\n\nconst ButtonContainer = styled('button', {\n borderRadius: '$5',\n fontSize: '$16',\n fontWeight: '$400',\n cursor: 'pointer',\n padding: '0 $12',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'all 0.35s',\n border: '0',\n\n '&:active': {\n transform: 'scale(0.95)',\n },\n\n variants: {\n align: {\n start: {\n display: 'flex',\n width: '100%',\n },\n grow: {\n display: 'flex',\n width: '100%',\n },\n },\n size: {\n compact: {},\n free: {},\n small: {\n height: '$32',\n },\n medium: {\n height: '$40',\n },\n large: {\n height: '$48',\n },\n },\n variant: {\n contained: {\n backgroundColor: '$neutrals300',\n color: '$foreground',\n border: 0,\n '&:hover': {\n backgroundColor: '$neutrals200',\n },\n '&:disabled': {\n background: '$neutrals400',\n },\n '&:disabled:hover': {\n background: '$neutrals400',\n transform: 'unset',\n },\n },\n outlined: {\n backgroundColor: '$background',\n border: 1,\n borderStyle: 'solid',\n borderColor: '$neutrals400',\n color: '$foreground',\n '&:hover': {\n borderColor: '$neutrals600',\n },\n '&:disabled': {\n borderColor: '$neutrals300',\n color: '$neutrals400',\n },\n },\n ghost: {\n color: '$foreground',\n '&:hover': {\n backgroundColor: '$neutrals200',\n },\n '&:disabled': {\n color: '$neutrals400 !important',\n },\n background: 'transparent',\n border: 0,\n\n [`& ${Typography}`]: {\n color: 'inherit',\n },\n },\n },\n fullWidth: {\n true: {\n width: '100%',\n },\n },\n loading: {\n true: {},\n },\n type: {\n primary: {},\n error: {},\n warning: {},\n success: {},\n },\n },\n\n compoundVariants: [\n {\n type: 'primary',\n variant: 'contained',\n css: {\n background: '$primary',\n color: '$white',\n '&:hover': {\n background: '$primary700',\n },\n '&:visited': {\n background: '$primary900',\n },\n '&:focus': {\n background: '$primary600',\n },\n },\n },\n {\n type: 'primary',\n variant: 'outlined',\n css: {\n color: '$primary !important',\n borderColor: '$primary',\n '&:hover': {\n color: '$primary700 !important',\n borderColor: '$primary700 !important',\n },\n '&:visited': {\n color: '$primary900 !important',\n borderColor: '$primary900 !important',\n },\n '&:focus': {\n color: '$primary600 !important',\n borderColor: '$primary600 !important',\n },\n },\n },\n {\n type: 'primary',\n variant: 'ghost',\n css: {\n color: '$primary',\n '&:hover': {\n color: '$primary700',\n },\n '&:visited': { color: '$primary900' },\n '&:focus': {\n color: '$primary600',\n },\n },\n },\n {\n type: 'error',\n variant: 'contained',\n css: {\n background: '$error',\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\n '&:hover': {\n background: '$error300',\n },\n '&:visited': {\n background: '$error700',\n },\n '&:focus': {\n background: '$error700',\n },\n },\n },\n {\n type: 'error',\n variant: 'outlined',\n css: {\n color: '$error !important',\n borderColor: '$error',\n '&:hover': {\n color: '$error300 !important',\n borderColor: '$error300 !important',\n },\n '&:visited': {\n color: '$error700 !important',\n borderColor: '$error700 !important',\n },\n '&:focus': {\n color: '$error700 !important',\n borderColor: '$error700 !important',\n },\n },\n },\n {\n type: 'error',\n variant: 'ghost',\n css: {\n color: '$error',\n '&:hover': {\n color: '$error300',\n },\n '&:visited': {\n color: '$error700',\n },\n '&:focus': {\n color: '$error700',\n },\n },\n },\n {\n type: 'warning',\n variant: 'contained',\n css: {\n background: '$warning',\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\n '&:hover': {\n background: '$warning300',\n },\n '&:visited': {\n background: '$warning700',\n },\n '&:focus': {\n background: '$warning700',\n },\n },\n },\n {\n type: 'warning',\n variant: 'outlined',\n css: {\n color: '$warning !important',\n borderColor: '$warning',\n '&:hover': {\n color: '$warning300 !important',\n borderColor: '$warning300 !important',\n },\n '&:visited': {\n color: '$warning700 !important',\n borderColor: '$warning700 !important',\n },\n '&:focus': {\n color: '$warning700 !important',\n borderColor: '$warning700 !important',\n },\n },\n },\n {\n type: 'warning',\n variant: 'ghost',\n css: {\n color: '$warning',\n '&:hover': {\n color: '$warning300',\n },\n '&:visited': {\n color: '$warning700',\n },\n '&:focus': {\n color: '$warning700',\n },\n },\n },\n {\n type: 'success',\n variant: 'contained',\n css: {\n background: '$success',\n $$color: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\n '&:hover': {\n background: '$success300',\n },\n '&:visited': {\n background: '$success700',\n },\n '&:focus': {\n background: '$success700',\n },\n },\n },\n {\n type: 'success',\n variant: 'outlined',\n css: {\n color: '$success !important',\n borderColor: '$success',\n '&:hover': {\n color: '$success300 !important',\n borderColor: '$success300 !important',\n },\n '&:visited': {\n color: '$success700 !important',\n borderColor: '$success700 !important',\n },\n '&:focus': {\n color: '$success700 !important',\n borderColor: '$success700 !important',\n },\n },\n },\n {\n type: 'success',\n variant: 'ghost',\n css: {\n color: '$success',\n '&:hover': {\n color: '$success300',\n },\n '&:visited': {\n color: '$success700',\n },\n '&:focus': {\n color: '$success700',\n },\n },\n },\n {\n size: 'compact',\n css: {\n padding: '$2 $4',\n fontSize: '$12',\n },\n },\n ],\n defaultVariants: {\n size: 'medium',\n variant: 'contained',\n },\n});\n\nconst Content = styled('div', {\n flex: 1,\n variants: {\n align: {\n start: {\n textAlign: 'left',\n },\n grow: {\n textAlign: 'center',\n },\n },\n ml: {\n true: {\n marginLeft: '$8',\n },\n },\n mr: {\n true: {\n marginRight: '$8',\n },\n },\n flexContent: {\n true: {\n display: 'flex',\n alignItems: 'center',\n },\n },\n },\n});\n\nexport interface PropTypes\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'prefix'> {\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large' | 'compact' | 'free';\n variant?: 'contained' | 'outlined' | 'ghost';\n type?: 'primary' | 'error' | 'warning' | 'success';\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n align?: 'start' | 'grow';\n loading?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n style?: CSSProperties;\n flexContent?: boolean;\n}\n\nexport function Button({\n children,\n loading,\n disabled,\n prefix,\n suffix,\n align,\n flexContent,\n ...props\n}: PropsWithChildren<PropTypes>) {\n const isDisabled = loading || disabled;\n return (\n <ButtonContainer disabled={isDisabled} {...props} align={align}>\n {prefix}\n {children && (\n <Content\n align={align}\n ml={!!prefix}\n mr={!!suffix && !loading}\n flexContent={flexContent}\n className=\"_text\"\n >\n {children}\n </Content>\n )}\n {loading && <Spinner size={16} color={props.type} />}\n {suffix}\n </ButtonContainer>\n );\n}\n","import { styled } from '../../theme';\n\nexport const FilledCircle = styled('span', {\n width: '10px',\n height: '10px',\n backgroundColor: '$primary',\n borderRadius: '99999px',\n});\n","import React, { useState } from 'react';\nimport { styled } from '../../theme';\nimport { BlockchainMeta } from 'rango-sdk';\nimport { Button } from '../Button/Button';\nimport { FilledCircle } from '../common';\nimport { Typography } from '../Typography';\n\nexport interface PropTypes {\n list: BlockchainMeta[];\n selected?: BlockchainMeta | null;\n onChange: (blockchain: BlockchainMeta) => void;\n multiSelect?: boolean;\n selectedList?: BlockchainMeta[] | 'all';\n}\n\nconst ListContainer = styled('div', {\n display: 'grid',\n gap: '.5rem',\n gridTemplateColumns: ' repeat(2, minmax(0, 1fr))',\n alignContent: 'baseline',\n width: '100%',\n height: '100%',\n});\n\nconst Image = styled('img', {\n width: '1.5rem',\n maxHeight: '1.5rem',\n marginRight: '$4',\n});\n\nexport function BlockchainsList(props: PropTypes) {\n const { list, onChange, multiSelect, selectedList } = props;\n const [selected, setSelected] = useState(props.selected);\n\n const changeSelectedBlockchain = (blockchain: BlockchainMeta) => {\n setSelected(blockchain);\n onChange(blockchain);\n };\n\n const isSelect = (name: string) => {\n if (multiSelect && selectedList) {\n return (\n selectedList === 'all' ||\n selectedList.findIndex((item) => name === item.name) > -1\n );\n }\n return name === selected?.name;\n };\n\n return (\n <ListContainer>\n {list.map((blockchain, index) => {\n return (\n <Button\n type={isSelect(blockchain.name) ? 'primary' : undefined}\n variant=\"outlined\"\n size=\"large\"\n prefix={<Image src={blockchain.logo} />}\n suffix={isSelect(blockchain.name) ? <FilledCircle /> : undefined}\n align=\"start\"\n onClick={changeSelectedBlockchain.bind(null, blockchain)}\n key={index}\n >\n <Typography variant=\"body2\">{blockchain.displayName}</Typography>\n </Button>\n );\n })}\n </ListContainer>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\n\nconst DividerContainer = styled('div', {\n variants: {\n size: {\n 4: {\n height: '$4',\n },\n 8: {\n height: '$8',\n },\n 12: {\n height: '$12',\n },\n 16: {\n height: '$16',\n },\n 18: {\n height: '$18',\n },\n 20: {\n height: '$20',\n },\n 24: {\n height: '$24',\n },\n 32: {\n height: '$32',\n },\n },\n },\n});\nexport interface PropTypes {\n size?: 4 | 8 | 12 | 16 | 18 | 20 | 24 | 32;\n direction?: 'vertical' | 'horizontal';\n}\n\nexport function Divider({ size = 12 }: PropTypes) {\n return <DividerContainer size={size} />;\n}\n","import { styled } from '../../theme';\nimport React, { PropsWithChildren } from 'react';\nimport { AngleLeftIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { Button } from '../Button';\n\nconst HeaderContainer = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '$8 0',\n position: 'relative',\n});\n\nconst BackButton = styled(Button, {\n padding: '$8',\n});\n\ninterface PropTypes {\n onBack?: () => void;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n title: string;\n}\n\nexport function Header(props: PropsWithChildren<PropTypes>) {\n return (\n <HeaderContainer>\n {props.onBack ? (\n <BackButton variant=\"ghost\" size=\"small\" onClick={props.onBack}>\n <AngleLeftIcon size={24} />\n </BackButton>\n ) : null}\n {props.prefix}\n <Typography variant=\"h4\">{props.title}</Typography>\n {props.suffix || <div></div>}\n </HeaderContainer>\n );\n}\n","import React, { PropsWithChildren, RefObject } from 'react';\n\nimport { styled } from '../../theme';\n\nconst InputContainer = styled('div', {\n backgroundColor: '$background',\n padding: '1px',\n boxSizing: 'border-box',\n border: '1px solid $neutrals400',\n borderRadius: '$5',\n height: '$48',\n display: 'flex',\n flexGrow: 1,\n position: 'relative',\n alignItems: 'center',\n color: '$foreground',\n transition: 'border-color ease .3s',\n '&:focus-within': {\n borderColor: '$success',\n outline: '1px solid $success',\n },\n variants: {\n size: {\n small: {\n height: '$32',\n },\n medium: {\n height: '$40',\n },\n large: {\n height: '$48',\n },\n },\n disabled: {\n true: {\n backgroundColor: '$neutrals300',\n cursor: 'not-allowed',\n filter: 'grayscale(100%)',\n },\n },\n prefix: {\n true: {\n paddingLeft: '$16',\n },\n false: {\n paddingLeft: '$0',\n },\n },\n suffix: {\n true: {\n paddingRight: '$16',\n },\n false: {\n paddingRight: '$0',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n});\n\nconst Input = styled('input', {\n color: '$foreground',\n paddingLeft: '$16',\n paddingRight: '$16',\n flexGrow: 1,\n width: '100%',\n border: 'none',\n borderRadius: '$5',\n outline: 'none',\n fontSize: '$l',\n backgroundColor: 'transparent',\n '-webkit-appearance': 'none',\n margin: 0,\n '&:disabled': {\n cursor: 'not-allowed',\n },\n});\nconst Label = styled('label', {\n display: 'inline-block',\n fontSize: '$14',\n color: '$foreground',\n marginBottom: '$4',\n});\n\nexport type PropTypes = {\n label?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n size?: 'small' | 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'prefix' | 'size'> & {\n ref?:\n | ((instance: HTMLInputElement | null) => void)\n | React.RefObject<HTMLInputElement>\n | null\n | undefined;\n };\n\nexport const TextField = React.forwardRef(\n (\n props: PropsWithChildren<PropTypes>,\n ref:\n | RefObject<HTMLInputElement>\n | ((instance: HTMLInputElement | null) => void)\n | null\n | undefined\n ) => {\n const { label, prefix, suffix, children, size, style, ...inputAttributes } =\n props;\n return (\n <>\n {label && (\n <Label\n className=\"_text\"\n {...(inputAttributes.id && { htmlFor: inputAttributes.id })}\n >\n {label}\n </Label>\n )}\n <InputContainer\n disabled={inputAttributes.disabled}\n prefix={!!prefix}\n suffix={!!suffix}\n size={size}\n style={style}\n className=\"_text\"\n >\n {prefix || null}\n <Input\n className=\"_text\"\n {...inputAttributes}\n spellCheck={false}\n ref={ref}\n />\n {suffix || null}\n </InputContainer>\n </>\n );\n }\n);\n","import React, { ReactNode, useState } from 'react';\nimport { styled } from '../../theme';\nimport { Divider } from '../Divider';\nimport { Header } from '../Header';\nimport { SearchIcon } from '../Icon';\nimport { TextField } from '../TextField';\n\nexport type PropTypes = (\n | {\n textField: true;\n children?: (searchedFor: string) => ReactNode;\n textFieldPlaceholder: string;\n }\n | {\n textField: false;\n children?: ReactNode;\n }\n) & {\n title?: string;\n onBack?: () => void;\n TopButton?: React.ReactNode;\n Footer?: React.ReactNode;\n hasHeader?: boolean;\n};\n\nconst ContentContainer = styled('div', {\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n flex: '1',\n padding: '0 $4',\n});\n\nconst TextFieldContainer = styled('div', {\n padding: '1px',\n});\n\nexport function SecondaryPage(props: PropTypes) {\n const { title, Footer, TopButton, onBack, hasHeader = true } = props;\n const [searchedFor, setSearchedFor] = useState('');\n\n return (\n <>\n {hasHeader && (\n <Header onBack={onBack} title={title || ''} suffix={TopButton} />\n )}\n\n <ContentContainer>\n {props.textField && (\n <TextFieldContainer>\n <TextField\n size=\"large\"\n prefix={<SearchIcon size={24} />}\n placeholder={props.textFieldPlaceholder}\n onChange={(event) => setSearchedFor(event.target.value)}\n value={searchedFor}\n autoFocus\n />\n <Divider size={16} />\n </TextFieldContainer>\n )}\n {props.textField && props.children?.(searchedFor)}\n {!props.textField && props.children}\n </ContentContainer>\n {Footer}\n </>\n );\n}\n","export const containsText = (text: string, searchText: string) =>\n text.toLowerCase().indexOf(searchText.toLowerCase()) > -1;\n\nexport const getConciseAddress = (\n address: string | null,\n maxChars = 8,\n ellipsisLength = 3\n): string | null => {\n if (!address) return null;\n if (address.length < 2 * maxChars + ellipsisLength) return address;\n const start = Math.ceil((address.length - maxChars) / 2);\n const end = address.length - maxChars;\n return `${address.substr(start, maxChars)}${'.'.repeat(\n ellipsisLength\n )}${address.substr(end)}`;\n};\n","import React from 'react';\nimport { styled } from '../../theme';\n\nconst SpacerContainer = styled('div', {\n variants: {\n size: {\n 4: {},\n 8: {},\n 12: {},\n 16: {},\n 18: {},\n 20: {},\n 24: {},\n },\n direction: {\n vertical: {},\n horizontal: {},\n },\n },\n compoundVariants: [\n {\n size: 4,\n direction: 'horizontal',\n css: {\n width: '$4',\n },\n },\n {\n size: 4,\n direction: 'vertical',\n css: {\n height: '$4',\n },\n },\n {\n size: 8,\n direction: 'horizontal',\n css: {\n width: '$8',\n },\n },\n {\n size: 8,\n direction: 'vertical',\n css: {\n height: '$8',\n },\n },\n {\n size: 12,\n direction: 'horizontal',\n css: {\n width: '$12',\n },\n },\n {\n size: 12,\n direction: 'vertical',\n css: {\n height: '$12',\n },\n },\n {\n size: 16,\n direction: 'horizontal',\n css: {\n width: '$16',\n },\n },\n {\n size: 16,\n direction: 'vertical',\n css: {\n height: '$16',\n },\n },\n {\n size: 18,\n direction: 'horizontal',\n css: {\n width: '$18',\n },\n },\n {\n size: 18,\n direction: 'vertical',\n css: {\n height: '$18',\n },\n },\n {\n size: 20,\n direction: 'horizontal',\n css: {\n width: '$20',\n },\n },\n {\n size: 20,\n direction: 'vertical',\n css: {\n height: '$20',\n },\n },\n {\n size: 24,\n direction: 'horizontal',\n css: {\n width: '$24',\n },\n },\n {\n size: 24,\n direction: 'vertical',\n css: {\n height: '$24',\n },\n },\n ],\n});\nexport interface PropTypes {\n size?: 4 | 8 | 12 | 16 | 18 | 20 | 24;\n direction?: 'vertical' | 'horizontal';\n}\n\nexport function Spacer({ size = 12, direction = 'horizontal' }: PropTypes) {\n return <SpacerContainer size={size} direction={direction} />;\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { CheckCircleIcon, InfoCircleIcon, WarningIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { styled } from '../../theme';\nimport { Spacer } from '../Spacer';\n\nconst MainContainer = styled('div', {\n width: '100%',\n padding: '$16',\n borderRadius: '$5',\n backgroundColor: '$neutrals300',\n color: '$neutrals800',\n\n '.main': {\n display: 'flex',\n alignItems: 'center',\n },\n\n '.footer': {\n paddingTop: '$8',\n },\n '&.hasIcon .footer': {\n paddingLeft: '$32',\n },\n variants: {\n type: {\n primary: {\n color: '$primary200',\n },\n secondary: {\n color: '$foreground',\n },\n success: {\n color: '$success300',\n },\n warning: {\n color: '$warning500',\n },\n error: {\n color: '$error300',\n },\n },\n },\n});\n\nexport interface PropTypes {\n type?: 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n title?: string;\n footer?: ReactNode;\n}\n\nexport function Alert(props: PropsWithChildren<PropTypes>) {\n const { type, children, title } = props;\n\n const showIcon = (\n ['error', 'success', 'warning'] as PropTypes['type'][]\n ).includes(type);\n\n return (\n <MainContainer type={type} className={showIcon ? 'hasIcon' : ''}>\n <div className=\"main\">\n {showIcon && (\n <>\n <div\n style={{\n width: '32px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n {type === 'success' && <CheckCircleIcon color={type} size={24} />}\n {type === 'warning' && <WarningIcon color={type} size={24} />}\n {type === 'error' && <InfoCircleIcon color={type} size={24} />}\n <Spacer size={8} />\n </div>\n </>\n )}\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'start',\n flexDirection: 'column',\n width: '100%',\n }}\n >\n {title && (\n <>\n <Typography className=\"title\" variant=\"h6\" color={type}>\n {title}\n </Typography>\n {!!children && <Spacer size={8} direction=\"vertical\" />}\n </>\n )}\n {children}\n </div>\n </div>\n {props.footer ? <div className=\"footer\">{props.footer}</div> : null}\n </MainContainer>\n );\n}\n","import React from 'react';\nimport { Alert } from './Alert';\n\nexport function LoadingFailedAlert() {\n return (\n <Alert\n type=\"error\"\n title=\" Error connecting server, please reload the app and try again.\"\n />\n );\n}\n","import React from 'react';\nimport { Alert } from './Alert';\n\ninterface PropTypes {\n catergory: string;\n searchedFor?: string;\n}\n\nexport function NotFoundAlert(props: PropTypes) {\n const { catergory, searchedFor } = props;\n return (\n <Alert\n type=\"secondary\"\n title={`${catergory} ${\n searchedFor ? \"'\" + searchedFor + \"'\" : ''\n } not found.`}\n />\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { ReactElementType, VariableSizeList as List } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { CSSProperties } from '@stitches/react';\n\nexport type VirtualizedListItem = ({\n index,\n style,\n}: {\n index: number;\n style: CSSProperties | undefined;\n}) => JSX.Element | null;\n\ntype PropTypes = {\n itemCount: number;\n hasNextPage: boolean;\n loadNextPage: () => void;\n Item: VirtualizedListItem;\n innerElementType: ReactElementType | undefined;\n size: number;\n};\n\nexport function VirtualizedList(props: PropsWithChildren<PropTypes>) {\n const { itemCount, hasNextPage, loadNextPage, Item, innerElementType, size } =\n props;\n\n const isItemLoaded = (index: number) => !hasNextPage || index < itemCount;\n\n return (\n <AutoSizer>\n {({ width, height }) => (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={hasNextPage ? itemCount + 1 : itemCount}\n loadMoreItems={loadNextPage}\n threshold={1}\n >\n {({ onItemsRendered, ref }) => {\n return (\n <List\n innerElementType={innerElementType}\n ref={ref}\n itemSize={() => size}\n itemCount={itemCount}\n height={height || 0}\n width={width || 0}\n onItemsRendered={onItemsRendered}\n >\n {({ index, style }) =>\n isItemLoaded(index) ? (\n <Item index={index} style={style as CSSProperties} />\n ) : null\n }\n </List>\n );\n }}\n </InfiniteLoader>\n )}\n </AutoSizer>\n );\n}\n","import { Token } from 'rango-sdk';\nimport React, { CSSProperties } from 'react';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\nimport { Typography } from '../Typography';\nimport { TokenWithAmount } from './TokenList';\n\nconst TokenImage = styled('img', {\n width: '$32',\n maxHeight: '$32',\n marginRight: '$16',\n});\n\nconst TokenNameContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TokenAmountContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n});\n\ninterface PropTypes {\n token: TokenWithAmount;\n selected: boolean;\n onClick: (token: Token) => void;\n style?: CSSProperties;\n}\n\nexport function TokenItem(props: PropTypes) {\n const { token, style, onClick, selected } = props;\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n ...style,\n height: '48px',\n top: `${parseFloat(style?.top as string) + 0}px`,\n padding: '0 4px',\n }}\n >\n <Button\n variant=\"outlined\"\n size=\"large\"\n align=\"start\"\n onClick={onClick.bind(null, token)}\n type={selected ? 'primary' : undefined}\n prefix={<TokenImage src={token.image} />}\n suffix={\n token.balance?.amount && (\n <TokenAmountContainer>\n <Typography variant=\"body2\">{token.balance.amount}</Typography>\n <Typography variant=\"caption\">\n {`${token.balance.usdValue}$`}\n </Typography>\n </TokenAmountContainer>\n )\n }\n >\n <TokenNameContainer>\n <Typography variant=\"body1\">{token.symbol}</Typography>\n <Typography variant=\"caption\" color=\"neutrals600\">\n {token.name}\n </Typography>\n </TokenNameContainer>\n </Button>\n </div>\n );\n}\n","import React, { forwardRef, useEffect, useState } from 'react';\nimport { CommonProps } from 'react-window';\nimport { Token } from 'rango-sdk';\nimport { VirtualizedList } from '../VirtualizedList/VirtualizedList';\nimport { TokenItem } from './TokenItem';\n\nexport interface TokenWithAmount extends Token {\n balance?: {\n amount: string;\n usdValue: string;\n };\n}\n\nconst PAGE_SIZE = 20;\nexport interface PropTypes {\n list: TokenWithAmount[];\n selected?: TokenWithAmount | null;\n searchedText: string;\n onChange: (token: TokenWithAmount) => void;\n multiSelect?: boolean;\n selectedList?: TokenWithAmount[] | 'all';\n}\n\nexport function TokenList(props: PropTypes) {\n const { list, searchedText, onChange, multiSelect, selectedList } = props;\n const [selected, setSelected] = useState(props.selected);\n\n const changeSelected = (token: TokenWithAmount) => {\n setSelected(token);\n onChange(token);\n };\n\n const isSelected = (token: Token) => {\n if (multiSelect && selectedList) {\n return (\n selectedList === 'all' ||\n selectedList\n .map((item) => item.symbol + item.address)\n .indexOf(token.symbol + token.address) > -1\n );\n }\n return (\n selected?.symbol === token.symbol && selected?.address === token.address\n );\n };\n\n const [hasNextPage, setHasNextPage] = useState<boolean>(true);\n const [tokens, setTokens] = useState<TokenWithAmount[]>(list);\n\n const loadNextPage = () => {\n setTokens(list.slice(0, tokens.length + PAGE_SIZE));\n };\n\n useEffect(() => {\n setTokens(list.slice(0, PAGE_SIZE));\n }, [searchedText, list]);\n\n useEffect(() => {\n setHasNextPage(list.length > tokens.length);\n }, [tokens.length]);\n\n const innerElementType: React.FC<CommonProps> = forwardRef(\n ({ style, ...rest }, ref) => {\n return (\n <div\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={{\n ...style,\n height: `${parseFloat(style?.height as string) + 8 * 2}px`,\n }}\n {...rest}\n />\n );\n }\n );\n\n return (\n <VirtualizedList\n Item={({ index, style }) => (\n <TokenItem\n token={tokens[index]}\n style={style}\n onClick={changeSelected}\n selected={isSelected(tokens[index])}\n />\n )}\n hasNextPage={hasNextPage}\n itemCount={tokens.length}\n loadNextPage={loadNextPage}\n innerElementType={innerElementType}\n size={56}\n />\n );\n}\n","import React from 'react';\nimport { containsText } from '../../helper';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\nimport { TokenList } from '../TokenList';\nimport { TokenWithAmount } from '../TokenList/TokenList';\nimport { LoadingStatus } from '../../types/meta';\nimport { Spinner } from '../Spinner';\nimport { LoadingFailedAlert } from '../Alert/LoadingFailedAlert';\nimport { NotFoundAlert } from '../Alert/NotFoundAlert';\nimport { styled } from '../../theme';\n\nconst Container = styled('div', {\n flex: '1',\n});\n\nexport const LoaderContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n position: 'absolute',\n top: '50%',\n});\nexport interface PropTypes {\n list: TokenWithAmount[];\n type?: 'Source' | 'Destination';\n selected: TokenWithAmount | null;\n onChange: (token: TokenWithAmount) => void;\n hasHeader?: boolean;\n multiSelect?: boolean;\n onBack?: () => void;\n selectedList?: TokenWithAmount[] | 'all';\n loadingStatus: LoadingStatus;\n}\n\nconst filterTokens = (list: TokenWithAmount[], searchedFor: string) =>\n list.filter(\n (token) =>\n containsText(token.symbol, searchedFor) ||\n containsText(token.address || '', searchedFor) ||\n containsText(token.name || '', searchedFor)\n );\n\nexport function TokenSelector(props: PropTypes) {\n const {\n list,\n type,\n selected,\n onChange,\n hasHeader,\n multiSelect,\n selectedList,\n onBack,\n loadingStatus,\n } = props;\n\n return (\n <SecondaryPage\n textField={true}\n textFieldPlaceholder=\"Search Blockchain By Name\"\n title={`Select ${type} Token`}\n hasHeader={hasHeader}\n onBack={onBack}\n >\n {(searchedFor) => {\n const filteredTokens = filterTokens(list, searchedFor);\n return (\n <Container>\n {loadingStatus === 'loading' && (\n <LoaderContainer>\n <Spinner size={24} />\n </LoaderContainer>\n )}\n {loadingStatus === 'failed' && <LoadingFailedAlert />}\n {loadingStatus === 'success' && (\n <>\n {filteredTokens.length ? (\n <TokenList\n searchedText={searchedFor}\n list={filteredTokens}\n selected={selected}\n selectedList={selectedList}\n multiSelect={multiSelect}\n onChange={onChange}\n />\n ) : (\n <NotFoundAlert catergory=\"Token\" searchedFor={searchedFor} />\n )}\n </>\n )}\n </Container>\n );\n }}\n </SecondaryPage>\n );\n}\n","import React from 'react';\nimport { BlockchainMeta } from 'rango-sdk';\nimport { BlockchainsList } from '../BlockchainsList';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\nimport { Spinner } from '../Spinner';\nimport { styled } from '../../theme';\nimport { CSSProperties } from '@stitches/react';\nimport { containsText } from '../../helper';\nimport { LoadingStatus } from '../../types/meta';\nimport { LoadingFailedAlert } from '../Alert/LoadingFailedAlert';\nimport { NotFoundAlert } from '../Alert/NotFoundAlert';\nimport { LoaderContainer } from '../TokenSelector/TokenSelector';\n\nconst ListContainer = styled('div', {\n overflowY: 'auto',\n});\n\nconst filterBlockchains = (list: BlockchainMeta[], searchedFor: string) =>\n list.filter(\n (blockchain) =>\n containsText(blockchain.name, searchedFor) ||\n containsText(blockchain.displayName, searchedFor)\n );\n\nexport interface PropTypes {\n type?: 'Source' | 'Destination';\n list: BlockchainMeta[];\n selected?: BlockchainMeta | null;\n onChange: (blockchain: BlockchainMeta) => void;\n onBack?: () => void;\n loadingStatus: LoadingStatus;\n hasHeader?: boolean;\n listContainerStyle?: CSSProperties;\n multiSelect?: boolean;\n selectedList?: BlockchainMeta[] | 'all';\n}\n\nexport function BlockchainSelector(props: PropTypes) {\n const {\n type,\n list,\n onChange,\n selected,\n onBack,\n loadingStatus,\n hasHeader,\n listContainerStyle,\n multiSelect,\n selectedList,\n } = props;\n\n return (\n <SecondaryPage\n textField={true}\n hasHeader={hasHeader}\n textFieldPlaceholder=\"Search Blockchain By Name\"\n title={`Select ${type} Network`}\n onBack={onBack}\n >\n {(searchedFor) => {\n const filteredBlockchains = filterBlockchains(list, searchedFor);\n return (\n <ListContainer style={listContainerStyle} key=\"1\">\n {loadingStatus === 'loading' && (\n <LoaderContainer>\n <Spinner size={24} />\n </LoaderContainer>\n )}\n {loadingStatus === 'failed' && <LoadingFailedAlert />}\n {loadingStatus === 'success' && (\n <>\n {filteredBlockchains.length ? (\n <BlockchainsList\n list={filteredBlockchains}\n selected={selected}\n multiSelect={multiSelect}\n selectedList={selectedList}\n onChange={onChange}\n />\n ) : (\n <NotFoundAlert\n catergory=\"Blockchain\"\n searchedFor={searchedFor}\n />\n )}\n </>\n )}\n </ListContainer>\n );\n }}\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\nimport * as RadixCheckbox from '@radix-ui/react-checkbox';\nimport { CheckIcon } from '../Icon';\n\nconst CheckboxContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst CheckboxRoot = styled(RadixCheckbox.Root, {\n borderRadius: '5px',\n width: 20,\n padding: 0,\n height: 20,\n border: '1px solid $foreground',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$2',\n backgroundColor: '$neutral-100',\n});\nconst Label = styled('label', {\n color: '$foreground',\n fontSize: '$m',\n marginLeft: '$8',\n});\n\nexport interface PropTypes {\n id: string;\n defaultChecked?: boolean;\n label: string;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n name?: string;\n}\n\nexport function Checkbox({\n label,\n id,\n ...props\n}: PropsWithChildren<PropTypes>) {\n return (\n <CheckboxContainer>\n <CheckboxRoot id={id} {...props}>\n <RadixCheckbox.Indicator>\n <CheckIcon size={20} />\n </RadixCheckbox.Indicator>\n </CheckboxRoot>\n <Label className=\"_text\" htmlFor={id}>\n {label}\n </Label>\n </CheckboxContainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React from 'react';\nimport { styled } from '../../theme';\n\nconst ChipCointainer = styled('div', {\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '$5',\n padding: '$4 $8',\n height: '32',\n fontSize: '$14',\n cursor: 'pointer',\n transition: 'all 0.35s',\n color: '$foreground',\n\n '&:hover': {\n backgroundColor: '$success700',\n color: '$background',\n },\n variants: {\n selected: {\n true: { backgroundColor: '$success', color: '$background' },\n false: { backgroundColor: '$background' },\n },\n },\n});\n\nexport interface PropTypes {\n label: string;\n selected?: boolean;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n className?: string;\n style?: CSSProperties;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n}\n\nexport function Chip(props: PropTypes) {\n const { label, selected, prefix, suffix, onClick, style } = props;\n return (\n <ChipCointainer selected={selected} onClick={onClick} style={style}>\n {prefix || null}\n {label}\n {suffix || null}\n </ChipCointainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { styled } from '../../theme';\nimport { CloseIcon } from '../Icon/CloseIcon';\nimport { Typography } from '../Typography';\n\nexport interface PropTypes {\n title: string;\n open: boolean;\n onClose: () => void;\n content: React.ReactNode;\n action?: React.ReactNode;\n containerStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nconst BackDrop = styled('div', {\n position: 'fixed',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n top: '0',\n left: '0',\n width: '100vw',\n height: '100vh',\n backgroundColor: 'rgba(0,0,0,.1)',\n});\n\nconst ModalContainer = styled('div', {\n backgroundColor: '$background',\n borderRadius: '$10',\n padding: '$16 $16',\n display: 'flex',\n flexDirection: 'column',\n boxShadow: '$s',\n zIndex: 10,\n});\nconst Row = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\nconst ModalHeader = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n marginBottom: '$16',\n});\n\nconst ContentContainer = styled('div', {});\n\nexport function Modal(props: PropTypes) {\n const {\n title,\n content,\n open,\n onClose,\n containerStyle,\n action,\n contentStyle,\n } = props;\n\n const handleBackDropClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) onClose();\n };\n useEffect(() => {\n if (open) document.body.style.overflow = 'hidden';\n else document.body.style.overflow = 'unset';\n }, [open]);\n return (\n <>\n {open &&\n createPortal(\n <BackDrop onClick={handleBackDropClick}>\n <ModalContainer style={containerStyle}>\n <ModalHeader>\n <Typography variant=\"h4\">{title}</Typography>\n <Row>\n {action}\n <CloseIcon size={24} onClick={onClose} />\n </Row>\n </ModalHeader>\n <ContentContainer style={contentStyle}>\n {content}\n </ContentContainer>\n </ModalContainer>\n </BackDrop>,\n document.body\n )}\n </>\n );\n}\n","import { InstallObjects, WalletType } from '@rango-dev/wallets-shared';\n\nexport enum WalletState {\n NOT_INSTALLED = 'not installed',\n DISCONNECTED = 'disconnected',\n CONNECTING = 'connecting',\n CONNECTED = 'connected',\n}\n\nexport type WalletInfo = {\n state:\n | WalletState.CONNECTED\n | WalletState.DISCONNECTED\n | WalletState.CONNECTING\n | WalletState.NOT_INSTALLED;\n installLink: InstallObjects | string;\n name: string;\n image: string;\n type: WalletType;\n showOnMobile: boolean;\n};\n\nexport interface SelectableWallet {\n chain: string;\n walletType: WalletType;\n address: string;\n image: string;\n selected: boolean;\n name: string;\n}\n","import React, { Fragment } from 'react';\nimport { styled } from '../../theme';\nimport { DisconnectIcon, DownloadIcon } from '../Icon';\nimport { Spinner } from '../Spinner';\nimport { WalletState } from '../../types/wallet';\nimport { InstallObjects, detectInstallLink } from '@rango-dev/wallets-shared';\n\nconst StateIconContainer = styled('span', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nexport const State = ({\n walletState,\n installLink,\n}: {\n walletState: WalletState;\n installLink: InstallObjects | string;\n}) => (\n <Fragment>\n {walletState !== WalletState.DISCONNECTED && (\n <StateIconContainer>\n {walletState === WalletState.NOT_INSTALLED && (\n <a href={detectInstallLink(installLink)} target=\"_blank\">\n <DownloadIcon size={24} color=\"success\" />\n </a>\n )}\n {walletState === WalletState.CONNECTING && <Spinner />}\n {walletState === WalletState.CONNECTED && <DisconnectIcon />}\n </StateIconContainer>\n )}\n </Fragment>\n);\n","import { detectInstallLink, WalletType } from '@rango-dev/wallets-shared';\nimport React from 'react';\n\nimport { styled } from '../../theme';\nimport { WalletInfo, WalletState } from '../../types/wallet';\nimport { Button } from '../Button/Button';\nimport { Typography } from '../Typography';\nimport { State } from './State';\n\nconst WalletImage = styled('img', {\n width: '$24',\n height: '$24',\n marginRight: '$12',\n});\nconst Text = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst ExtendedButton = styled(Button, {\n variants: {\n type: {\n primary: {\n outline: '1px solid $primary',\n borderColor: '$primary',\n\n '&:hover': {\n borderColor: '$primary',\n },\n },\n },\n },\n});\n\nexport type PropTypes = WalletInfo & {\n onClick: (walletType: WalletType) => void;\n};\n\nexport function Wallet(props: PropTypes) {\n const { name, type, image, state, onClick, installLink } = props;\n\n return (\n <ExtendedButton\n type={state === WalletState.CONNECTED ? 'primary' : undefined}\n disabled={state == WalletState.CONNECTING}\n onClick={() => {\n if (state === WalletState.NOT_INSTALLED) {\n window.open(detectInstallLink(installLink), '_blank');\n } else onClick(type);\n }}\n align=\"start\"\n variant=\"outlined\"\n size=\"large\"\n prefix={<WalletImage src={image} />}\n suffix={<State walletState={state} installLink={installLink} />}\n >\n <Text>\n <Typography variant=\"h5\" noWrap={false}>\n {name}\n </Typography>\n {state === WalletState.CONNECTED ? (\n <Typography variant=\"caption\" noWrap={false} color=\"primary\">\n Connected\n </Typography>\n ) : null}\n </Text>\n </ExtendedButton>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\nimport { WalletInfo } from '../../types/wallet';\nimport { Modal } from '../Modal';\nimport { WalletType } from '@rango-dev/wallets-shared';\nimport { Wallet } from '../Wallet';\n\nexport interface PropTypes {\n open: boolean;\n list: WalletInfo[];\n onSelect: (walletType: WalletType) => void;\n onClose: () => void;\n error?: string;\n}\n\nconst ModalContent = styled('div', {\n display: 'grid',\n gap: '$8',\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n});\n\nexport function ConnectWalletsModal(props: PropTypes) {\n const { open, list, onSelect, onClose } = props;\n\n const Content = (\n <ModalContent>\n {list.map((info, index) => (\n <Wallet {...info} key={index} onClick={onSelect} />\n ))}\n </ModalContent>\n );\n\n return (\n <Modal\n title=\"Connect Wallets\"\n open={open}\n content={Content}\n onClose={onClose}\n containerStyle={{ width: '75%', maxWidth: '30rem', height: '70%' }}\n />\n );\n}\n","import React from 'react';\nimport * as RadixSwitch from '@radix-ui/react-switch';\n\nimport { styled } from '../../theme';\n\nconst StyledSwitchRoot = styled(RadixSwitch.Root, {\n boxSizing: 'border-box',\n boxShadow: 'none',\n borderStyle: 'solid',\n width: '42px',\n height: '22px',\n backgroundColor: '$neutrals600',\n borderColor: '$neutrals600',\n borderRadius: '99999px',\n position: 'relative',\n padding: '0',\n cursor: 'pointer',\n\n '&[data-state=\"checked\"]': {\n backgroundColor: '$success',\n borderColor: '$success',\n },\n '-webkit-tap-highlight-color': 'rgba(0, 0, 0, 0)',\n});\n\nconst StyledSwitchThumb = styled(RadixSwitch.Thumb, {\n position: 'absolute',\n top: '0',\n boxSizing: 'border-box',\n display: 'block',\n width: '18px',\n height: '18px',\n backgroundColor: '$white',\n transition: ' transform 300ms',\n borderRadius: '999999px',\n willChange: 'transform',\n\n '&[data-state=\"checked\"]': {\n transform: 'translateX(20px)',\n },\n});\n\nexport interface PropTypes {\n checked: boolean;\n onChange?: (checked: boolean) => void;\n}\n\nexport function Switch(props: PropTypes) {\n const { checked, onChange } = props;\n return (\n <StyledSwitchRoot checked={checked} onCheckedChange={onChange}>\n <StyledSwitchThumb />\n </StyledSwitchRoot>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { useEffect, useState } from 'react';\nimport { styled } from '../../theme';\nimport { LiquiditySource, LoadingStatus } from '../../types/meta';\nimport { Button } from '../Button/Button';\nimport { Spacer } from '../Spacer';\nimport { Switch } from '../Switch';\nimport { Typography } from '../Typography';\nimport { Spinner } from '../Spinner';\nimport { LoadingFailedAlert } from '../Alert/LoadingFailedAlert';\nimport { NotFoundAlert } from '../Alert/NotFoundAlert';\n\nconst groupLiquiditySources = (\n liquiditySources: LiquiditySource[]\n): { [key in 'bridge' | 'exchange']: LiquiditySource[] } => ({\n bridge: liquiditySources.filter(\n (liquiditySource) =>\n liquiditySource.type === 'BRIDGE' || liquiditySource.type === 'AGGREGATOR'\n ),\n exchange: liquiditySources.filter(\n (liquiditySource) => liquiditySource.type === 'DEX'\n ),\n});\n\nconst MainContainer = styled('div', {\n variants: {\n loaded: {\n true: {\n overflowY: 'auto',\n },\n },\n },\n});\n\nconst LiquiditySourceType = styled('div', {\n position: 'sticky',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n top: '0',\n backgroundColor: '$background',\n zIndex: '9999',\n paddingTop: '$8',\n paddingBottom: '$8',\n});\n\nconst LiquidityImage = styled('img', {\n width: '$20',\n maxHeight: '$20',\n marginRight: '$16',\n});\n\nconst LoaderContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n});\n\nexport interface PropTypes {\n list: LiquiditySource[];\n onChange: (liquiditySource: LiquiditySource) => void;\n listContainerStyle?: CSSProperties;\n loadingStatus: LoadingStatus;\n searchedFor: string;\n}\n\nexport function LiquiditySourceList(props: PropTypes) {\n const { list, onChange, listContainerStyle, loadingStatus, searchedFor } =\n props;\n\n const [selected, setSelected] = useState(\n list.filter((item) => item.selected)\n );\n\n const changeLiquiditySources = (clickedItem: LiquiditySource) => {\n clickedItem.selected = !clickedItem.selected;\n setSelected((prevState) => {\n if (clickedItem.selected) return [...prevState, clickedItem];\n return prevState.filter((item) => item.title != clickedItem.title);\n });\n onChange(clickedItem);\n };\n\n const isSelected = (liquiditySource: LiquiditySource) =>\n !!selected.find((item) => liquiditySource.title === item.title);\n\n useEffect(() => {\n setSelected(list.filter((item) => item.selected));\n }, [list]);\n\n const sections = groupLiquiditySources(list);\n const bridges = sections.bridge;\n const exchanges = sections.exchange;\n\n const totalBridges = bridges.length;\n const totalExchanges = exchanges.length;\n // TODO: This is not performant\n const totalSelectedBridges = bridges.filter(isSelected).length;\n const totalSelectedExchanges = exchanges.filter(isSelected).length;\n\n return (\n <MainContainer\n style={listContainerStyle}\n loaded={loadingStatus === 'success'}\n >\n <div>\n <LiquiditySourceType>\n <Typography variant=\"h5\">Bridges</Typography>\n <Typography variant=\"body1\" color=\"neutrals800\">\n {totalSelectedBridges === totalBridges\n ? totalBridges\n : `${totalSelectedBridges} / ${totalBridges}`}\n </Typography>\n </LiquiditySourceType>\n <Spacer size={12} direction=\"vertical\" />\n {loadingStatus === 'loading' && (\n <LoaderContainer>\n <Spinner size={24} />\n </LoaderContainer>\n )}\n {loadingStatus === 'failed' && <LoadingFailedAlert />}\n {loadingStatus === 'success' && (\n <>\n {totalBridges ? (\n bridges.map((liquiditySource, index) => (\n <LiquiditySourceItem\n liquiditySource={liquiditySource}\n key={index}\n selected={isSelected(liquiditySource)}\n onChange={changeLiquiditySources}\n />\n ))\n ) : (\n <NotFoundAlert catergory=\"Bridge\" searchedFor={searchedFor} />\n )}\n </>\n )}\n </div>\n <div>\n <LiquiditySourceType>\n <Typography variant=\"h5\">Exchanges</Typography>\n <Typography variant=\"body1\" color=\"neutrals800\">\n {totalSelectedExchanges === totalExchanges\n ? totalExchanges\n : `${totalSelectedExchanges} / ${totalExchanges}`}\n </Typography>\n </LiquiditySourceType>\n <Spacer size={12} direction=\"vertical\" />\n {loadingStatus === 'loading' && (\n <LoaderContainer>\n <Spinner size={24} />\n </LoaderContainer>\n )}\n {loadingStatus === 'failed' && <LoadingFailedAlert />}\n {loadingStatus == 'success' && (\n <>\n {totalExchanges ? (\n exchanges.map((liquiditySource, index) => (\n <LiquiditySourceItem\n liquiditySource={liquiditySource}\n key={index}\n selected={isSelected(liquiditySource)}\n onChange={changeLiquiditySources}\n />\n ))\n ) : (\n <NotFoundAlert catergory=\"Exchange\" searchedFor={searchedFor} />\n )}\n </>\n )}\n </div>\n </MainContainer>\n );\n}\n\nconst LiquiditySourceItem = ({\n liquiditySource,\n selected,\n onChange,\n}: {\n liquiditySource: LiquiditySource;\n selected: boolean;\n onChange: (clickedItem: LiquiditySource) => void;\n}) => (\n <Button\n size=\"large\"\n align=\"start\"\n variant=\"outlined\"\n prefix={<LiquidityImage src={liquiditySource.logo} />}\n suffix={<Switch checked={selected} />}\n style={{ marginBottom: '12px' }}\n onClick={onChange.bind(null, liquiditySource)}\n >\n <Typography variant=\"body1\">{liquiditySource.title}</Typography>\n </Button>\n);\n","import { CSSProperties } from '@stitches/react';\nimport React from 'react';\nimport { containsText } from '../../helper';\nimport { LiquiditySource, LoadingStatus } from '../../types/meta';\nimport { Button } from '../Button';\nimport { LiquiditySourceList } from '../LiquiditySourceList';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\n\nconst filterLiquiditySources = (\n liquiditySources: LiquiditySource[],\n searchedFor: string\n) =>\n liquiditySources.filter((liquiditySource) =>\n containsText(liquiditySource.title, searchedFor || '')\n );\nexport interface PropTypes {\n list: LiquiditySource[];\n onChange: (liquiditySource: LiquiditySource) => void;\n toggleAll?: () => void;\n onBack?: () => void;\n hasHeader?: boolean;\n listContainerStyle?: CSSProperties;\n loadingStatus: LoadingStatus;\n}\n\nexport function LiquiditySourcesSelector(props: PropTypes) {\n const {\n list,\n onChange,\n onBack,\n hasHeader,\n listContainerStyle,\n toggleAll,\n loadingStatus,\n } = props;\n\n return (\n <SecondaryPage\n textField={true}\n textFieldPlaceholder=\"Search By Name\"\n title=\"Liquidity Sources\"\n TopButton={\n <Button variant=\"ghost\" type=\"primary\" onClick={toggleAll}>\n {list.find((item) => item.selected) ? 'Deselect all' : 'Select all'}\n </Button>\n }\n hasHeader={hasHeader}\n onBack={onBack}\n >\n {(searchedFor) => (\n <LiquiditySourceList\n listContainerStyle={listContainerStyle}\n list={filterLiquiditySources(list, searchedFor)}\n onChange={onChange}\n loadingStatus={loadingStatus}\n searchedFor={searchedFor}\n />\n )}\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { styled } from '../../theme';\nimport { SelectableWallet } from '../../types';\nimport { Typography } from '../Typography';\nimport { getConciseAddress } from '../../helper';\n\nconst Row = styled('div', {\n display: 'flex',\n flexWrap: 'wrap',\n});\n\nconst Circle = styled('div', {\n width: 12,\n height: 12,\n borderRadius: 6,\n border: '1px solid $neutrals400',\n position: 'absolute',\n top: 12,\n right: 12,\n variants: {\n checked: {\n true: {\n borderColor: '$success',\n },\n false: {\n borderColor: '$neutrals400',\n },\n },\n },\n});\nconst SolidCircle = styled('div', {\n width: 6,\n margin: '20% auto',\n height: 6,\n borderRadius: 3,\n variants: {\n checked: {\n true: {\n backgroundColor: '$success',\n },\n false: {\n backgroundColor: '$neutrals400',\n },\n },\n },\n});\nconst Container = styled('div', {\n border: '1.5px solid',\n borderRadius: '$5',\n padding: '$12',\n flexBasis: 'calc(33.33% - 10px)',\n margin: 5,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n width: 124,\n height: 92,\n cursor: 'pointer',\n position: 'relative',\n variants: {\n checked: {\n true: {\n borderColor: '$success',\n color: '$success',\n },\n false: {\n borderColor: '$neutrals400',\n color: '$neutrals400',\n },\n },\n },\n});\n\nexport interface PropTypes {\n list: SelectableWallet[];\n onChange: (w: SelectableWallet) => void;\n}\n\nexport function SelectableWalletList({\n list,\n onChange,\n}: PropsWithChildren<PropTypes>) {\n const [active, setActive] = useState<string>(\n list.find((item) => item.selected)?.walletType || ''\n );\n const onClick = (w: SelectableWallet) => {\n setActive(w.walletType);\n onChange(w);\n };\n\n useEffect(() => {\n setActive(list.find((item) => item.selected)?.walletType || '');\n }, [list]);\n\n return (\n <Row>\n {list.map((w, index) => {\n const checked = active === w.walletType;\n return (\n <Container\n checked={checked}\n onClick={onClick.bind(null, w)}\n key={index}\n >\n <img src={w.image} alt={w.walletType} width={24} height={24} />\n <Typography variant=\"body2\">{w.name}</Typography>\n <Typography variant=\"caption\">\n {getConciseAddress(w.address)}\n </Typography>\n <Circle checked={checked}>\n <SolidCircle checked={checked} />\n </Circle>\n </Container>\n );\n })}\n </Row>\n );\n}\n","import React from 'react';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\nimport { CSSProperties } from '@stitches/react';\n\nconst StyledRoot = styled(RadioGroup.Root, {\n variants: {\n direction: {\n horizontal: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n vertical: {\n display: 'grid',\n gridGap: '$24',\n },\n },\n },\n});\n\nconst ItemContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n marginRight: '$8',\n});\nconst StyledItem = styled(RadioGroup.Item, {\n padding: '0',\n width: '20px',\n height: '20px',\n borderRadius: '100%',\n cursor: 'pointer',\n backgroundColor: '$background',\n border: '1px solid $neutrals400',\n\n '&:hover': {\n borderColor: '$neutrals600',\n },\n});\n\nconst Container = styled('div', {\n display: 'flex',\n});\n\nconst StyledIndicator = styled(RadioGroup.Indicator, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n position: 'relative',\n '&::after': {\n content: '',\n display: 'block',\n width: '10px',\n height: '10px',\n borderRadius: '50%',\n backgroundColor: '$success',\n },\n});\n\nconst Label = styled('label', {\n paddingLeft: '$8',\n cursor: 'pointer',\n color: '$foreground',\n});\n\nexport interface PropTypes {\n options: { label: string; value: string }[];\n value: string;\n onChange: (value: string) => void;\n direction?: 'vertical' | 'horizontal';\n style?: CSSProperties;\n}\n\nexport function Radio(props: PropTypes) {\n const { value, onChange, direction = 'vertical', style } = props;\n return (\n <Container>\n <StyledRoot\n onValueChange={onChange}\n value={value}\n direction={direction}\n style={style}\n >\n {props.options.map((option, index) => (\n <ItemContainer key={index}>\n <StyledItem value={option.value} id={option.value}>\n <StyledIndicator />\n </StyledItem>\n <Label className=\"_text\" htmlFor={option.value}>\n <Typography variant=\"body2\">{option.label}</Typography>\n </Label>\n </ItemContainer>\n ))}\n </StyledRoot>\n </Container>\n );\n}\n","import { styled } from '../../theme';\nimport React, { useState } from 'react';\nimport { AngleRightIcon } from '../Icon';\nimport { SecondaryPage } from '../SecondaryPage/SecondaryPage';\nimport { Typography } from '../Typography';\nimport { Chip } from '../Chip';\nimport { LiquiditySource, LoadingStatus } from '../../types/meta';\nimport { TextField } from '../TextField';\nimport { Radio } from '../Radio';\nimport { Switch } from '../Switch';\nimport { Button } from '../Button';\n\nconst BaseContainer = styled('div', {\n borderRadius: '$5',\n backgroundColor: '$neutrals300',\n padding: '$16',\n});\n\nconst Title = styled(Typography, { marginBottom: '$16' });\n\nconst SlippageChipsContainer = styled('div', {\n display: 'grid',\n rowGap: '$16',\n gridTemplateColumns: 'repeat(auto-fill, 64px)',\n});\n\nconst LiquiditySourceContainer = styled(BaseContainer, {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '$32',\n cursor: 'pointer',\n});\nconst InfiniteContainer = styled(BaseContainer, {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '$32',\n});\n\nconst StyledAngleRight = styled(AngleRightIcon, { marginLeft: '$8' });\n\nconst LiquiditySourceNumber = styled('div', {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\nconst ThemesContainer = styled(BaseContainer, {\n marginTop: '$32',\n});\nconst Head = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingBottom: '$16',\n});\n\ntype Theme = 'dark' | 'light' | 'auto';\n\nexport interface PropTypes {\n slippages: number[];\n selectedSlippage: number;\n customSlippage: number;\n maxSlippage: number;\n minSlippage: number;\n liquiditySources: LiquiditySource[];\n onLiquiditySourcesClick: () => void;\n selectedLiquiditySources: LiquiditySource[];\n onSlippageChange: (slippage: number) => void;\n onCustomSlippageChange: (customSlippage: number | null) => void;\n selectedTheme: Theme;\n onThemeChange: (theme: Theme) => void;\n onBack: () => void;\n infiniteApprove: boolean;\n toggleInfiniteApprove: (infinite: boolean) => void;\n loadingStatus: LoadingStatus;\n}\n\nexport function Settings(props: PropTypes) {\n const {\n slippages,\n selectedLiquiditySources,\n liquiditySources,\n onSlippageChange,\n onLiquiditySourcesClick,\n onBack,\n customSlippage,\n onCustomSlippageChange,\n maxSlippage,\n minSlippage,\n selectedTheme,\n onThemeChange,\n toggleInfiniteApprove,\n infiniteApprove,\n loadingStatus,\n } = props;\n\n const [selectedSlippage, setSelectedSlippage] = useState(\n props.selectedSlippage\n );\n\n const changeSlippage = (slippage: number) => {\n setSelectedSlippage(slippage);\n onSlippageChange(slippage);\n };\n\n const PageContent = (\n <>\n <BaseContainer>\n <Head>\n <Typography variant=\"body1\">Slippage tolerance per swap</Typography>\n {customSlippage ? (\n <Typography variant=\"caption\" color=\"error\">\n {customSlippage}% Custom\n </Typography>\n ) : undefined}\n </Head>\n <SlippageChipsContainer>\n {slippages.map((slippage, index) => (\n <Chip\n key={index}\n onClick={() => {\n if (customSlippage) onCustomSlippageChange(null);\n changeSlippage(slippage);\n }}\n selected={!customSlippage && slippage === selectedSlippage}\n label={`${slippage.toString()}%`}\n style={{\n marginRight: '8px',\n }}\n />\n ))}\n <TextField\n type=\"number\"\n value={customSlippage}\n onChange={(event) => {\n const parsedValue = parseFloat(event.target.value);\n if (\n !parsedValue ||\n (parsedValue >= minSlippage && parsedValue <= maxSlippage)\n )\n onCustomSlippageChange(parsedValue);\n }}\n suffix={\n customSlippage && <Typography variant=\"body2\">%</Typography>\n }\n size=\"small\"\n placeholder=\"Custom %\"\n style={{\n width: '128px',\n flexGrow: 'initial',\n }}\n />\n </SlippageChipsContainer>\n </BaseContainer>\n <ThemesContainer>\n <Title variant=\"body2\">Theme</Title>\n <Radio\n value={selectedTheme}\n options={[\n { value: 'dark', label: 'Dark' },\n { value: 'light', label: 'Light' },\n { value: 'auto', label: 'Auto' },\n ]}\n onChange={(value) => onThemeChange(value as Theme)}\n direction=\"horizontal\"\n style={{ marginTop: '$24' }}\n />\n </ThemesContainer>\n <InfiniteContainer>\n <Typography variant=\"body1\">Infinite Approval</Typography>\n <Switch checked={infiniteApprove} onChange={toggleInfiniteApprove} />\n </InfiniteContainer>\n <LiquiditySourceContainer>\n <Button\n onClick={onLiquiditySourcesClick}\n align=\"start\"\n variant=\"ghost\"\n loading={loadingStatus === 'loading'}\n suffix={\n <LiquiditySourceNumber>\n {loadingStatus === 'success' && (\n <Typography variant=\"body2\" color=\"neutrals800\">\n {liquiditySources.length !== selectedLiquiditySources.length\n ? `${selectedLiquiditySources.length} / ${liquiditySources.length}`\n : liquiditySources.length}\n </Typography>\n )}\n {loadingStatus === 'failed' && (\n <Typography variant=\"body2\" color=\"$error500\">\n Loading failed\n </Typography>\n )}\n <StyledAngleRight />\n </LiquiditySourceNumber>\n }\n >\n <Typography variant=\"body1\">Liquidity Sources</Typography>\n </Button>\n </LiquiditySourceContainer>\n </>\n );\n\n return (\n <SecondaryPage title=\"Settings\" textField={false} onBack={onBack}>\n {PageContent}\n </SecondaryPage>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\n\nconst MainContainer = styled('div', {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n borderRadius: '$10',\n boxShadow: '$s',\n width: '100%',\n minWidth: '375px',\n maxWidth: '512px',\n maxHeight: '595px',\n padding: '$16',\n boxSizing: 'border-box',\n backgroundColor: '$background',\n variants: {\n fixedHeight: {\n true: {\n height: '595px',\n },\n false: {\n height: 'auto',\n },\n },\n },\n});\n\nexport interface PropTypes {\n style?: CSSProperties;\n fixedHeight?: boolean;\n}\n\nexport function SwapContainer(props: PropsWithChildren<PropTypes>) {\n const { children, style, fixedHeight = true } = props;\n\n return (\n <MainContainer style={style} id=\"swap-box\" fixedHeight={fixedHeight}>\n {children}\n </MainContainer>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\nimport { Spacer } from '../Spacer';\n\nconst TokenContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n\n '& .amount': {\n fontWeight: 'bold',\n },\n});\n\nconst TokenImage = styled('div', {\n position: 'relative',\n width: '$24',\n height: '$24',\n\n img: {\n width: '100%',\n display: 'block',\n },\n\n '.overlay': {\n position: 'absolute',\n right: -4,\n bottom: -4,\n width: '$16',\n height: '$16',\n padding: '$2',\n borderRadius: '50%',\n backgroundColor: '$background',\n border: '1px solid $neutrals400',\n },\n});\n\ninterface PropTypes {\n data: {\n token: {\n logo: string;\n symbol: string;\n };\n blockchain: {\n logo: string;\n name: string;\n };\n amount: string;\n };\n}\nexport function Token(props: PropTypes) {\n return (\n <TokenContainer>\n <TokenImage>\n <img src={props.data.token.logo} alt=\"\" />\n <div className=\"overlay\">\n <img\n src={props.data.blockchain.logo}\n alt={props.data.blockchain.name}\n />\n </div>\n </TokenImage>\n <Spacer size={8} />\n <span className=\"amount\">{props.data.amount}</span>\n <Spacer size={4} />\n {props.data.token.symbol}\n </TokenContainer>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { PendingSwap } from '../../containers/History/types';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\nimport { ArrowRightIcon } from '../Icon';\nimport { Spacer } from '../Spacer';\nimport { Spinner } from '../Spinner';\nimport { Token } from './Token';\n\nconst Container = styled('div', {\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '$16 0',\n borderBottom: '1px solid $neutrals300',\n\n '& > .info': {\n display: 'flex',\n alignItems: 'center',\n },\n\n '.status': {\n textTransform: 'uppercase',\n fontWeight: 'bold',\n fontSize: '$12',\n },\n\n '&.running': {\n color: '$foreground',\n },\n '&.failed,&.success': {\n color: '$neutrals600',\n },\n\n '&.failed .status': {\n color: '$error',\n },\n '&.success .status': {\n color: '$success',\n },\n});\n\nexport interface PropTypes {\n swap: PendingSwap;\n status: 'running' | 'failed' | 'success';\n onClick: (requestId: string) => void;\n}\n\nexport function SwapDetail({\n swap,\n status,\n onClick,\n}: PropsWithChildren<PropTypes>) {\n const firstStep = swap.steps[0];\n const lastStep = swap.steps[swap.steps.length - 1];\n\n return (\n <Button\n variant=\"ghost\"\n size=\"free\"\n fullWidth\n onClick={onClick.bind(null, swap.requestId)}\n >\n <Container className={`${status}`}>\n <div className=\"info\">\n <Token\n data={{\n token: {\n logo: firstStep.fromLogo,\n symbol: firstStep.fromSymbol,\n },\n blockchain: {\n // @ts-ignore\n logo: firstStep.fromBlockchainLogo,\n name: firstStep.fromBlockchain,\n },\n amount: swap.inputAmount,\n }}\n />\n <Spacer size={12} />\n <ArrowRightIcon size={12} />\n <Spacer size={12} />\n <Token\n data={{\n token: {\n logo: lastStep.toLogo,\n symbol: lastStep.toSymbol,\n },\n blockchain: {\n // @ts-ignore\n logo: lastStep.toBlockchainLogo,\n name: lastStep.toBlockchain,\n },\n amount:\n lastStep.outputAmount ||\n lastStep.expectedOutputAmountHumanReadable ||\n '',\n }}\n />\n </div>\n <div className={`status`}>\n {status === 'running' ? (\n <Spinner size={24} color=\"primary\" />\n ) : (\n status\n )}\n </div>\n </Container>\n </Button>\n );\n}\n","import React, { useState } from 'react';\nimport { ChromePicker, ColorResult } from 'react-color';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\n\nconst Container = styled('div', {\n position: 'relative',\n});\n\nconst Color = styled('div', {\n border: '1px solid $neutrals300',\n borderRadius: '$5',\n width: '$32',\n height: '$32',\n});\nconst Cover = styled('div', {\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n});\nconst Popover = styled('div', {\n position: 'absolute',\n zIndex: '2',\n variants: {\n place: {\n top: {\n top: '-241px',\n },\n bottom: {},\n left: {\n top: '-50%',\n left: '-225px',\n },\n right: {\n top: '-50%',\n right: '-225px',\n },\n },\n },\n});\nexport interface PropTypes {\n color: string;\n place: 'top' | 'bottom' | 'left' | 'right';\n onChangeColor: (\n color: ColorResult,\n event: React.ChangeEvent<HTMLInputElement>\n ) => void;\n label?: string;\n}\n\nconst Label = styled('label', {\n display: 'inline-block',\n fontSize: '$14',\n marginBottom: '$4',\n color: '$foreground',\n});\n\nexport function ColorPicker({ color, onChangeColor, label, place }: PropTypes) {\n const [displayColorPicker, setDisplayColorPicker] = useState<boolean>(false);\n\n return (\n <Container>\n <Label className=\"_text\">{label}</Label>\n <Button\n variant=\"outlined\"\n prefix={<Color style={{ backgroundColor: color }} />}\n fullWidth\n align=\"start\"\n size=\"large\"\n onClick={() => setDisplayColorPicker((prev) => !prev)}\n >\n {color}\n </Button>\n\n {displayColorPicker && (\n <Popover place={place}>\n <Cover onClick={() => setDisplayColorPicker(false)} />\n <ChromePicker color={color} onChange={onChangeColor} />\n </Popover>\n )}\n </Container>\n );\n}\n","import React from 'react';\nimport { styled } from '../../theme';\nimport { CloseIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { createPortal } from 'react-dom';\n\nexport interface PropTypes {\n title?: string;\n open: boolean;\n onClose: () => void;\n content: React.ReactNode;\n containerStyle?: React.CSSProperties;\n anchor?: 'bottom' | 'left' | 'right' | 'top';\n showClose?: boolean;\n footer?: React.ReactNode;\n container: Element | null;\n}\n\nconst BackDrop = styled('div', {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n zIndex: 9999999,\n backgroundColor: 'rgba(0,0,0,.1)',\n borderRadius: '$10',\n});\n\nconst DrawerContainer = styled('div', {\n position: 'absolute',\n boxShadow: '$s',\n background: '$background',\n padding: '$20',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n zIndex: 9999999,\n borderRadius: '$10',\n\n variants: {\n anchor: {\n left: {\n top: 0,\n left: 0,\n height: '100%',\n minWidth: '300px',\n maxWidth: '90%',\n },\n right: {\n top: 0,\n right: 0,\n height: '100%',\n minWidth: '300px',\n maxWidth: '90%',\n },\n bottom: {\n bottom: 0,\n width: '100%',\n maxHeight: '90%',\n },\n top: {\n top: 0,\n width: '100%',\n maxHeight: '90%',\n },\n },\n },\n});\n\nconst DrawerHeader = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n marginBottom: '$16',\n});\n\nconst Body = styled('div', {\n overflowY: 'auto',\n height: '100%',\n});\nconst Footer = styled('footer', {\n width: '100%',\n marginTop: '$28',\n});\n\nexport function Drawer(props: PropTypes) {\n const {\n title,\n content,\n open,\n onClose,\n containerStyle,\n anchor = 'bottom',\n showClose = false,\n footer,\n container,\n } = props;\n\n const handleBackDropClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) onClose();\n };\n\n return (\n <>\n {open &&\n container &&\n createPortal(\n <BackDrop onClick={handleBackDropClick}>\n <DrawerContainer anchor={anchor} style={containerStyle}>\n <DrawerHeader>\n <Typography variant=\"h4\">{title}</Typography>\n {showClose && <CloseIcon size={24} onClick={onClose} />}\n </DrawerHeader>\n <Body>{content}</Body>\n <Footer>{footer}</Footer>\n </DrawerContainer>\n </BackDrop>,\n container\n )}\n </>\n );\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { Alert, Spacer } from '../../components';\nimport { Button } from '../../components/Button';\nimport { SecondaryPage } from '../../components/SecondaryPage/SecondaryPage';\nimport { SelectableWalletList } from '../../components/SelectableWalletList';\nimport { Typography } from '../../components/Typography';\nimport { styled } from '../../theme';\nimport { SelectableWallet } from '../../types';\n\nconst MainContainer = styled('div', {\n overflowY: 'auto',\n});\n\nconst Section = styled('div', {\n paddingBottom: '$32',\n marginBottom: '$32',\n borderBottom: '1px solid $neutrals400',\n});\n\nconst Footer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst AlertContainer = styled('div', {\n padding: '$16 0',\n});\n\nconst ConfirmButton = styled(Button, {\n marginTop: '$16',\n});\n\nconst Container = styled('div', {\n paddingBottom: '$24',\n\n '.title': {\n paddingBottom: '$8',\n display: 'flex',\n alignItems: 'center',\n },\n '.num': {\n backgroundColor: '$neutrals300',\n display: 'inline-flex',\n width: '24px',\n height: '24px',\n color: '$neutrals800',\n borderRadius: '50%',\n fontSize: '$14',\n border: '1px solid $neutrals400',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nconst Alerts = styled('div', { paddingBottom: '$16' });\n\nexport interface PropTypes {\n onBack: () => void;\n onConfirm?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n confirmDisabled?: boolean;\n loading?: boolean;\n requiredWallets: string[];\n selectableWallets: SelectableWallet[];\n onChange: (w: SelectableWallet) => void;\n isExperimentalChain?: (wallet: string) => boolean;\n handleConnectChain?: (wallet: string) => void;\n previewInputs?: ReactNode;\n previewRoutes?: ReactNode;\n confirmButtonTitle: string;\n errors?: ReactNode[];\n warnings?: ReactNode[];\n extraMessages?: ReactNode;\n}\nexport function ConfirmSwap(props: PropsWithChildren<PropTypes>) {\n const {\n onBack,\n loading,\n onConfirm,\n requiredWallets,\n selectableWallets,\n onChange,\n confirmDisabled,\n isExperimentalChain,\n handleConnectChain,\n confirmButtonTitle,\n errors,\n warnings,\n extraMessages,\n } = props;\n\n return (\n <SecondaryPage\n textField={false}\n title=\"Confirm Swap\"\n onBack={onBack}\n Footer={\n <Footer>\n <ConfirmButton\n fullWidth\n loading={loading}\n type=\"primary\"\n variant=\"contained\"\n onClick={onConfirm}\n disabled={confirmDisabled}\n >\n {confirmButtonTitle}\n </ConfirmButton>\n </Footer>\n }\n >\n <MainContainer>\n <div>\n {extraMessages || null}\n <Alerts>\n {errors?.map((error, index) => (\n <>\n <Spacer direction=\"vertical\" />\n <Alert type=\"error\" key={index}>\n {error}\n </Alert>\n </>\n ))}\n {warnings?.map((warning, index) => (\n <>\n <Spacer direction=\"vertical\" />\n <Alert type=\"warning\" key={index}>\n {warning}\n </Alert>\n </>\n ))}\n </Alerts>\n </div>\n {props.previewInputs || props.previewRoutes ? (\n <Section>\n {props.previewInputs}\n {!!props.previewRoutes ? (\n <Spacer size={16} direction=\"vertical\" />\n ) : null}\n {props.previewRoutes}\n </Section>\n ) : null}\n\n {requiredWallets.map((wallet, index) => {\n const list = selectableWallets.filter((w) => wallet === w.chain);\n return (\n <Container key={index}>\n <div className=\"title\">\n <div className=\"num\">{index + 1}</div>\n <Spacer size={8} />\n <Typography variant=\"body2\">Your {wallet} Wallet</Typography>\n </div>\n {list.length === 0 && (\n <>\n <AlertContainer>\n <Alert type=\"error\">\n You need to connect a compatible wallet with {wallet}\n </Alert>\n </AlertContainer>\n {isExperimentalChain?.(wallet) && (\n <Button\n variant=\"contained\"\n type=\"primary\"\n align=\"grow\"\n onClick={() => handleConnectChain?.(wallet)}\n >\n {`Add ${wallet} chain to Cosmos wallets`}\n </Button>\n )}\n </>\n )}\n {list.length != 0 && (\n <SelectableWalletList list={list} onChange={onChange} />\n )}\n </Container>\n );\n })}\n </MainContainer>\n </SecondaryPage>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { Divider } from '../../components';\nimport { SecondaryPage } from '../../components/SecondaryPage';\nimport { SwapDetail } from '../../components/SwapDetail';\nimport { Typography } from '../../components/Typography';\nimport { containsText } from '../../helper';\nimport { styled } from '../../theme';\nimport { PendingSwap } from './types';\nimport { NotFoundAlert } from '../../components/Alert/NotFoundAlert';\n\nconst Group = styled('div', {\n '.group-title': {\n textTransform: 'uppercase',\n },\n});\n\nconst Container = styled('div', {\n overflowY: 'auto',\n});\nconst filteredHistory = (\n list: PendingSwap[],\n searchedFor: string\n): PendingSwap[] => {\n return list.filter((swap) => {\n const firstStep = swap.steps[0];\n const lastStep = swap.steps[swap.steps.length - 1];\n return (\n containsText(firstStep.fromBlockchain, searchedFor) ||\n containsText(firstStep.fromSymbol, searchedFor) ||\n containsText(lastStep.toBlockchain, searchedFor) ||\n containsText(lastStep.toSymbol, searchedFor) ||\n containsText(swap.requestId, searchedFor)\n );\n });\n};\n\nexport type GroupBy = (list: PendingSwap[]) => {\n title: string;\n swaps: PendingSwap[];\n}[];\nexport interface PropTypes {\n list: PendingSwap[];\n onBack: () => void;\n onSwapClick: (requestId: string) => void;\n groupBy?: GroupBy;\n}\nconst SwapsGroup = (props: Omit<PropTypes, 'onBack'>) => {\n const { list, onSwapClick, groupBy } = props;\n const groups = groupBy ? groupBy(list) : [{ title: 'History', swaps: list }];\n\n return (\n <>\n {groups\n .filter((group) => group.swaps.length > 0)\n .map((group, index) => (\n <>\n <Group key={index}>\n <Typography\n variant=\"body2\"\n color=\"neutrals600\"\n className=\"group-title\"\n >\n {group.title}\n </Typography>\n {group.swaps.map((swap: PendingSwap, index: number) => (\n <>\n <SwapDetail\n key={index}\n swap={swap}\n status={swap.status}\n onClick={onSwapClick}\n />\n <Divider size={12} />\n </>\n ))}\n </Group>\n <Divider size={24} />\n </>\n ))}\n </>\n );\n};\n\nexport function History({\n list = [],\n onBack,\n onSwapClick,\n groupBy,\n}: PropsWithChildren<PropTypes>) {\n return (\n <SecondaryPage\n onBack={onBack}\n textField={true}\n textFieldPlaceholder=\"Search By Blockchain Or Token Or Request ID\"\n title=\"Swaps\"\n >\n {(searchedFor) => {\n const filterSwaps = filteredHistory(list, searchedFor);\n return (\n <Container>\n {filterSwaps.length ? (\n <SwapsGroup\n list={filterSwaps}\n onSwapClick={onSwapClick}\n groupBy={groupBy}\n />\n ) : (\n <NotFoundAlert catergory=\"Swap\" />\n )}\n </Container>\n );\n }}\n </SecondaryPage>\n );\n}\n","import React, { useState } from 'react';\nimport { Alert, Button, Typography } from '../../components';\nimport { styled } from '../../theme';\n\nconst getAlertType = (messageType: PropTypes['type']) => {\n if (!messageType || messageType === 'info') return 'secondary';\n else return messageType;\n};\n\nconst DetailedMessage = styled('div', {\n width: '90%',\n overflowWrap: 'break-word',\n color: '$error500 !important',\n});\n\nexport type PropTypes = {\n currentStepBlockchain: string;\n switchNetwork?: () => Promise<any>;\n shortMessage: string;\n detailedMessage: { content: string; long: boolean };\n type?: 'success' | 'error' | 'warning' | 'info';\n lastConvertedTokenInFailedSwap?: {\n symbol: string;\n blockchain: string;\n outputAmount: string;\n };\n};\n\nconst SuccessText = styled(Typography, {\n color: '$success500 !important',\n});\n\nexport const SwapMessages: React.FC<PropTypes> = (props) => {\n const {\n shortMessage,\n detailedMessage,\n currentStepBlockchain,\n type,\n lastConvertedTokenInFailedSwap,\n } = props;\n\n const [expandedMessage, setExpandedMessage] = useState(false);\n\n const allowedNumberOfChars = detailedMessage.long ? 0 : 150;\n\n const shouldShowMoreDetailsButton =\n !expandedMessage && detailedMessage.content.length > allowedNumberOfChars;\n\n return (\n <Alert\n type={getAlertType(type)}\n title={shortMessage}\n {...(shouldShowMoreDetailsButton && {\n footer: (\n <Button\n variant=\"outlined\"\n type=\"primary\"\n onClick={setExpandedMessage.bind(null, (prevState) => !prevState)}\n >\n Show more details\n </Button>\n ),\n })}\n {...(!!props.switchNetwork && {\n footer: (\n <Button\n variant={'outlined'}\n type=\"primary\"\n onClick={props.switchNetwork}\n >\n Change network to {currentStepBlockchain}\n </Button>\n ),\n })}\n >\n {!!detailedMessage.content ? (\n <DetailedMessage>\n <Typography variant=\"body2\">\n {shouldShowMoreDetailsButton && !expandedMessage\n ? detailedMessage.content.substring(0, allowedNumberOfChars) +\n (allowedNumberOfChars > 0 ? '...' : '')\n : detailedMessage.content}\n </Typography>\n </DetailedMessage>\n ) : null}\n {!!lastConvertedTokenInFailedSwap && (\n <>\n <p>\n <Typography variant=\"body2\">\n Don't worry, your fund is \n </Typography>\n <SuccessText variant=\"body2\">\n <b>Safe</b>\n </SuccessText>\n </p>\n\n <p>\n <Typography variant=\"body2\">\n It is converted to \n <u>{lastConvertedTokenInFailedSwap.outputAmount}</u>\n \n </Typography>\n <SuccessText variant=\"body2\">\n <b>{lastConvertedTokenInFailedSwap.symbol} </b>\n </SuccessText>\n <Typography variant=\"body2\">on your </Typography>\n <SuccessText variant=\"body2\">\n <b>{lastConvertedTokenInFailedSwap.blockchain} </b>\n </SuccessText>\n <Typography variant=\"body2\">wallet</Typography>\n </p>\n </>\n )}\n </Alert>\n );\n};\n","import React, { useState } from 'react';\nimport {\n StepDetail,\n SecondaryPage,\n GasIcon,\n Typography,\n CheckCircleIcon,\n InfoCircleIcon,\n Spacer,\n Button,\n Alert,\n Drawer,\n Spinner,\n Divider,\n} from '../../components';\nimport { styled } from '../../theme';\nimport { PendingSwap } from '../History/types';\nimport { pulse } from '../../components/BestRoute/BestRoute';\nimport {\n SwapMessages,\n PropTypes as SwapMessagesPropTypes,\n} from './SwapMessages';\n\nexport const SwapperContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n marginLeft: '6px',\n});\n\nexport const BodyError = styled('div', {\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nexport const ErrorMsg = styled(Typography, {\n color: '$error',\n});\n\nexport const Fee = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nexport const SwapperLogo = styled('img', {\n width: '$16',\n height: '$16',\n});\n\nexport const RelativeContainer = styled('div', {\n position: 'relative',\n});\n\nexport const Footer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nexport const Dot = styled('div', {\n width: '$8',\n height: '$8',\n backgroundColor: '$foreground',\n borderRadius: '4px',\n marginLeft: '$8',\n});\n\nexport const ArrowDown = styled('div', {\n width: '0px',\n height: '0px',\n borderLeft: '5px solid transparent',\n borderRight: '5px solid transparent',\n borderTop: '5px solid $foreground',\n marginLeft: '$8',\n});\n\nconst StyledAnchor = styled('a', {\n color: '$primary',\n fontWeight: '$600',\n marginLeft: '$12',\n});\n\nconst SwapInfoContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n paddingBottom: '$16',\n borderBottom: '1px solid $neutrals300',\n});\n\nconst InternalDetailsContainer = styled('div', {\n display: 'flex',\n});\n\nconst InternalDetail = styled('div', {\n display: 'flex',\n padding: '$10',\n});\n\nconst DescriptionContainer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst Description = styled(Typography, {\n color: '$success',\n marginLeft: '$8',\n});\n\nconst Error = styled(Description, {\n color: '$error',\n});\n\nexport const Line = styled('div', {\n width: '0',\n minHeight: '$16',\n marginLeft: '$12',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n});\n\nconst Row = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n fontSize: '$14',\n padding: '$8 0',\n\n '.name': {\n color: '$neutrals600',\n },\n '.value': {\n display: 'flex',\n alignItems: 'center',\n color: '$neutrals800',\n },\n '.status': {\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n '.status.failed': {\n color: '$error',\n },\n '.status.success': {\n color: '$success',\n },\n});\n\nconst RequestId = styled('div', {\n width: '150px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n '@md': {\n width: 'auto',\n },\n});\n\nconst ExtraDetails = styled('div', {\n padding: '$8 0',\n color: '$neutrals600',\n fontSize: '$12',\n});\n\nconst StepContainer = styled('div', {\n variants: {\n hasNotStarted: {\n true: {\n filter: 'grayscale(100%)',\n },\n },\n isRunning: {\n true: {\n animation: `${pulse} 2s ease-in-out infinite`,\n },\n },\n },\n});\n\nconst SwapFlowContainer = styled('div', {\n overflowY: 'auto',\n});\n\nexport type PropTypes = {\n pendingSwap: PendingSwap;\n onCopy: (requestId: string) => void;\n onBack: () => void;\n isCopied: boolean;\n onCancel: (requestId: string) => void;\n onRetry?: () => void;\n date: string;\n previewInputs?: React.ReactNode;\n} & SwapMessagesPropTypes;\n\nexport function SwapHistory(props: PropTypes) {\n const {\n pendingSwap,\n onBack,\n onCopy,\n isCopied,\n onCancel,\n date,\n onRetry,\n previewInputs,\n ...extraMessageProps\n } = props;\n const [showDrawer, setShowDrawer] = useState(false);\n\n return (\n <SecondaryPage\n title=\"Swap Details\"\n textField={false}\n onBack={onBack}\n Footer={\n <>\n {pendingSwap?.status === 'running' && (\n <Button\n variant=\"outlined\"\n fullWidth\n type=\"error\"\n onClick={setShowDrawer.bind(null, true)}\n >\n Cancel\n </Button>\n )}\n {!!onRetry && (\n <Button\n variant=\"contained\"\n fullWidth\n type=\"primary\"\n onClick={onRetry}\n >\n Try again\n </Button>\n )}\n </>\n }\n >\n <div>\n <SwapInfoContainer>\n <Row>\n <div className=\"name\">Request ID:</div>\n <div\n className=\"value requestId\"\n onClick={onCopy.bind(null, pendingSwap?.requestId)}\n >\n <RequestId>{pendingSwap?.requestId}</RequestId>\n <Spacer size={4} />\n <Button type=\"primary\" variant=\"ghost\" size=\"compact\">\n {isCopied ? 'Copied!' : 'Copy'}\n </Button>\n </div>\n </Row>\n <Row>\n <div className=\"name\">Status:</div>\n <div className={`value status ${pendingSwap?.status || ''}`}>\n {pendingSwap?.status}\n {pendingSwap?.status === 'running' && (\n <Spinner size={16} color=\"primary\" />\n )}\n </div>\n </Row>\n <ExtraDetails>{date}</ExtraDetails>\n </SwapInfoContainer>\n {/* TODO: It was temporarily removed to find a better solution. \n\n <Divider size={16} />*/}\n </div>\n <SwapFlowContainer>\n {/*{previewInputs} */}\n\n {extraMessageProps.shortMessage && (\n <SwapMessages {...extraMessageProps} />\n )}\n\n <Divider size={32} />\n\n {pendingSwap?.steps.map((step, index) => (\n <StepContainer\n key={index}\n hasNotStarted={step.status === 'created'}\n isRunning={\n step.status != 'failed' &&\n step.status != 'success' &&\n step.status != 'created'\n }\n >\n {index === 0 && (\n <RelativeContainer>\n <StepDetail\n logo={step.fromLogo}\n symbol={step.fromSymbol}\n // @ts-ignore\n chainLogo={step.fromBlockchainLogo}\n blockchain={step.fromBlockchain}\n amount={pendingSwap.inputAmount}\n />\n <Dot />\n </RelativeContainer>\n )}\n <Line />\n <SwapperContainer>\n <SwapperLogo\n // @ts-ignore\n src={step.swapperLogo}\n alt={step.swapperId}\n />\n <div>\n <Typography ml={4} variant=\"caption\">\n {\n // @ts-ignore\n step.swapperType\n }{' '}\n from {step.fromSymbol} to {step.toSymbol}\n via {step.swapperId}\n </Typography>\n <Fee>\n <GasIcon />\n <Typography ml={4} variant=\"caption\">\n $\n {\n // @ts-ignore\n step.feeInUsd\n }{' '}\n estimated gas fee\n </Typography>\n </Fee>\n </div>\n </SwapperContainer>\n <div\n style={{\n display: 'flex',\n }}\n >\n <InternalDetailsContainer>\n <Line />\n {!!step.explorerUrl && (\n <div>\n {step.explorerUrl.map((item, index) => (\n <InternalDetail key={index}>\n <DescriptionContainer>\n <CheckCircleIcon color=\"success\" />\n <Description variant=\"body2\">\n {!item.description ? (\n <b>View transaction</b>\n ) : (\n <b>\n {item.description.substring(0, 1).toUpperCase()}\n {item.description.substring(1)}\n </b>\n )}\n </Description>\n </DescriptionContainer>\n <StyledAnchor\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n key={index}\n >\n TX-Link\n </StyledAnchor>\n </InternalDetail>\n ))}\n {step.status === 'failed' && (\n <InternalDetail>\n <DescriptionContainer>\n <InfoCircleIcon color=\"error\" />\n <Error variant=\"body2\">Step failed</Error>\n </DescriptionContainer>\n </InternalDetail>\n )}\n </div>\n )}\n </InternalDetailsContainer>\n </div>\n {index + 1 === pendingSwap.steps.length && <ArrowDown />}\n <StepDetail\n logo={step.toLogo}\n symbol={step.toSymbol}\n // @ts-ignore\n chainLogo={step.toBlockchainLogo}\n blockchain={step.toBlockchain}\n amount={step.outputAmount || ''}\n />\n </StepContainer>\n ))}\n\n <Divider size={32} />\n </SwapFlowContainer>\n <Drawer\n onClose={setShowDrawer.bind(null, false)}\n open={showDrawer}\n showClose={true}\n anchor=\"bottom\"\n title=\"Cancel Progress\"\n content={\n <Alert type=\"warning\">\n <p>\n Warning: Rango <u>neither reverts</u> your transaction \n <u>nor refunds</u> you if you've already signed and sent a\n transaction to the blockchain since it's out of Rango's control.\n Beware that \"Cancel\" only stops next steps from being executed.\n </p>\n <Spacer size={12} direction=\"vertical\" />\n <p>\n If you have already signed your transaction to blockchain, you\n should wait for that to complete or rollback\n </p>\n </Alert>\n }\n footer={\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Button\n variant=\"contained\"\n type=\"success\"\n onClick={setShowDrawer.bind(null, false)}\n >\n Skip\n </Button>\n <Spacer size={16} />\n <Button\n variant=\"contained\"\n type=\"error\"\n onClick={() => {\n onCancel(pendingSwap.requestId);\n setShowDrawer(false);\n }}\n >\n Cancel progress\n </Button>\n </div>\n }\n container={document.getElementById('swap-box')!}\n />\n </SecondaryPage>\n );\n}\n"],"names":["_typedCreateStiches","createStitches","require","media","sm","md","lg","theme","colors","primary","primary100","primary200","primary300","primary400","primary500","primary600","primary700","primary800","primary900","neutrals200","neutrals300","neutrals400","neutrals500","neutrals600","neutrals700","neutrals800","neutrals900","background","foreground","success","success100","success300","success500","success700","warning","warning100","warning300","warning500","warning700","error","error100","error300","error500","error700","white","space","2","4","6","8","10","12","16","20","24","28","30","32","fontSizes","14","18","36","40","48","fonts","fontWeights","400","500","600","700","lineHeights","letterSpacings","sizes","borderWidths","borderStyles","radii","5","shadows","s","zIndices","transitions","utils","bc","value","backgroundColor","styled","css","createTheme","keyframes","globalCss","lightTheme","darkTheme","SvgWithStrokeColor","stroke","variants","color","black","_black","$$color","_white","SvgWithFillColor","fill","_black2","_white2","DeleteCircleIcon","_ref","size","_ref$size","props","_objectWithoutPropertiesLoose","_excluded","React","width","height","viewBox","xmlns","className","d","strokeWidth","strokeLinecap","strokeLinejoin","toString","CheckSquareIcon","AddIcon","InfoCircleIcon","AddCircleIcon","MinusCircleIcon","CheckCircleIcon","CheckIcon","fillRule","clipRule","BanIcon","strokeMiterlimit","WarningIcon","HistoryIcon","points","x1","y1","x2","y2","GasIcon","SettingsIcon","cx","cy","r","TrashIcon","SearchMinusIcon","SearchIcon","AngleRightIcon","AngleUpIcon","AngleDownIcon","AngleLeftIcon","DownloadIcon","ChevronRightIcon","forwardedRef","_ref$color","ref","ArrowRightIcon","RetryRightIcon","RetryLeftIcon","TryAgainIcon","VerticalSwapIcon","HorizontalSwapIcon","RetryIcon","WalletIcon","AddWalletIcon","DeleteWalletIcon","CheckWalletIcon","SwapWalletIcon","DisconnectIcon","BagIcon","clipPath","id","TimeIcon","CloseIcon","transform","cursor","SignatureIcon","xmlSpace","style","CopyIcon","TypographyContainer","margin","display","variant","h1","fontSize","fontWeight","@md","@lg","h2","h3","h4","h5","h6","body1","body2","body3","caption","align","center","textAlign","left","right","noWrap","true","whiteSpace","ml","marginLeft","mt","marginTop","mr","marginRight","mb","marginBottom","Typography","children","customCss","startsWith","StepLogoContainer","position","direction","vertical","horizontal","Logo","borderRadius","ChainLogo","bottom","padding","border","img","StepContainer","alignItems","flexDirection","justifyContent","Detail","pl","paddingLeft","false","paddingTop","SubTitle","StepDetail","chainLogo","amount","symbol","blockchain","_ref$direction","src","logo","alt","parseFloat","toFixed","SkeletonContainer","backgroundSize","animation","0%","backgroundPosition","100%","94","Skeleton","_ref$height","_ref$width","SpinnerContainer","borderRight","borderRightColor","Spinner","TooltipTrigger","RadixTooltip","TooltipContent","animationDuration","animationTimingFunction","willChange","gray","TooltipArrow","ChildrenWrapper","Tooltip","content","_ref$side","side","asChild","sideOffset","Container","minHeight","ErrorMsg","BestRouteContainer","overflowX","overflowY","alignSelf","Line","HR","SwapperLogo","RelativeContainer","Dot","top","ArrowRight","borderTop","borderBottom","borderLeft","pulse","opacity","50%","GasContainer","CostContainer","TotalFee","SwapperContainer","ButtonContainer","transition","&:active","start","grow","compact","free","small","medium","large","contained","&:hover","&:disabled","&:disabled:hover","outlined","borderStyle","borderColor","ghost","_ghost","fullWidth","loading","type","compoundVariants","&:visited","&:focus","_css","_css2","_css3","defaultVariants","Content","flex","flexContent","Button","disabled","prefix","suffix","FilledCircle","ListContainer","gap","gridTemplateColumns","alignContent","Image","maxHeight","BlockchainsList","list","onChange","multiSelect","selectedList","_useState","useState","selected","setSelected","changeSelectedBlockchain","isSelect","name","findIndex","item","map","index","undefined","onClick","bind","key","displayName","DividerContainer","Divider","HeaderContainer","BackButton","Header","onBack","title","InputContainer","boxSizing","flexGrow","&:focus-within","outline","filter","paddingRight","Input","-webkit-appearance","Label","TextField","forwardRef","label","inputAttributes","htmlFor","spellCheck","ContentContainer","overflow","TextFieldContainer","SecondaryPage","Footer","TopButton","_props$hasHeader","hasHeader","searchedFor","setSearchedFor","textField","placeholder","textFieldPlaceholder","event","target","autoFocus","containsText","text","searchText","toLowerCase","indexOf","SpacerContainer","Spacer","MainContainer",".main",".footer","&.hasIcon .footer","secondary","Alert","showIcon","includes","footer","LoadingFailedAlert","NotFoundAlert","catergory","VirtualizedList","itemCount","hasNextPage","loadNextPage","Item","innerElementType","isItemLoaded","AutoSizer","InfiniteLoader","loadMoreItems","threshold","_ref2","List","itemSize","onItemsRendered","_ref3","TokenImage","TokenNameContainer","TokenAmountContainer","TokenItem","token","_extends","image","_token$balance","balance","usdValue","TokenList","searchedText","changeSelected","_useState2","setHasNextPage","_useState3","tokens","setTokens","useEffect","slice","length","rest","address","LoaderContainer","CheckboxContainer","CheckboxRoot","RadixCheckbox","ChipCointainer","Chip","WalletState","BackDrop","ModalContainer","boxShadow","zIndex","Row","ModalHeader","Modal","open","onClose","containerStyle","action","contentStyle","document","body","createPortal","currentTarget","StateIconContainer","State","walletState","Fragment","DISCONNECTED","NOT_INSTALLED","href","detectInstallLink","installLink","CONNECTING","CONNECTED","WalletImage","Text","ExtendedButton","Wallet","state","window","ModalContent","StyledSwitchRoot","RadixSwitch","&[data-state=\"checked\"]","-webkit-tap-highlight-color","StyledSwitchThumb","Switch","checked","onCheckedChange","loaded","LiquiditySourceType","paddingBottom","LiquidityImage","LiquiditySourceList","listContainerStyle","loadingStatus","changeLiquiditySources","clickedItem","prevState","concat","isSelected","liquiditySource","find","liquiditySources","sections","bridge","exchange","bridges","exchanges","totalBridges","totalExchanges","totalSelectedBridges","totalSelectedExchanges","LiquiditySourceItem","filterLiquiditySources","flexWrap","Circle","SolidCircle","flexBasis","SelectableWalletList","_list$find","walletType","active","setActive","w","_list$find2","maxChars","ellipsisLength","Math","ceil","end","substr","repeat","getConciseAddress","StyledRoot","RadioGroup","gridGap","ItemContainer","StyledItem","StyledIndicator","&::after","Radio","_props$direction","onValueChange","options","option","BaseContainer","Title","SlippageChipsContainer","rowGap","LiquiditySourceContainer","InfiniteContainer","StyledAngleRight","LiquiditySourceNumber","ThemesContainer","Head","minWidth","maxWidth","fixedHeight","TokenContainer","& .amount",".overlay","Token","data","& > .info",".status","textTransform","&.running","&.failed,&.success","&.failed .status","&.success .status","SwapDetail","swap","status","firstStep","steps","lastStep","requestId","fromLogo","fromSymbol","fromBlockchainLogo","fromBlockchain","inputAmount","toLogo","toSymbol","toBlockchainLogo","toBlockchain","outputAmount","expectedOutputAmountHumanReadable","Color","Cover","Popover","place","DrawerContainer","anchor","DrawerHeader","Body","Drawer","_props$anchor","_props$showClose","showClose","container","Section","AlertContainer","ConfirmButton",".title",".num","Alerts","Group",".group-title","SwapsGroup","onSwapClick","groupBy","groups","swaps","group","DetailedMessage","overflowWrap","SuccessText","SwapMessages","messageType","shortMessage","detailedMessage","currentStepBlockchain","lastConvertedTokenInFailedSwap","expandedMessage","allowedNumberOfChars","shouldShowMoreDetailsButton","switchNetwork","substring","Fee","ArrowDown","StyledAnchor","SwapInfoContainer","InternalDetailsContainer","InternalDetail","DescriptionContainer","Description","Error",".name",".value",".status.failed",".status.success","RequestId","textOverflow","ExtraDetails","hasNotStarted","isRunning","SwapFlowContainer","totalFee","feeWarning","totalTime","_data$result","result","_data$result2","from","blockchainLogo","fromAmount","swapperLogo","swapperId","to","toAmount","filteredBlockchains","filterBlockchains","onChangeColor","displayColorPicker","setDisplayColorPicker","prev","ChromePicker","requiredWallets","selectableWallets","isExperimentalChain","handleConnectChain","errors","warnings","extraMessages","onConfirm","confirmDisabled","confirmButtonTitle","previewInputs","previewRoutes","wallet","chain","onSelect","info","_ref$list","filterSwaps","filteredHistory","toggleAll","slippages","selectedLiquiditySources","onSlippageChange","onLiquiditySourcesClick","customSlippage","onCustomSlippageChange","maxSlippage","minSlippage","selectedTheme","onThemeChange","toggleInfiniteApprove","infiniteApprove","selectedSlippage","setSelectedSlippage","PageContent","slippage","changeSlippage","parsedValue","_props$fixedHeight","pendingSwap","onCopy","isCopied","onCancel","date","onRetry","extraMessageProps","showDrawer","setShowDrawer","step","swapperType","feeInUsd","explorerUrl","description","toUpperCase","url","rel","getElementById","filteredTokens","filterTokens"],"mappings":"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"}
|