@rango-dev/ui 0.1.10-next.76 → 0.1.10-next.78

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.
@@ -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/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/BagIcon.tsx","../src/components/Icon/TimeIcon.tsx","../src/components/Icon/CloseIcon.tsx","../src/components/Icon/SignatureIcon.tsx","../src/components/Typography/Typography.tsx","../src/components/StepDetail/StepDetail.tsx","../src/helper/index.ts","../src/components/Skeleton/Skeleton.tsx","../src/components/Spinner/Spinner.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/Alert/Alert.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/Spacer/Spacer.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/TokenList.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/ColorPicker/ColorPicker.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","../src/components/TokenSelector/TokenSelector.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 },\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: '5px',\n 10: '10px',\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 { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const HistoryIcon: 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=\"M16.767 1.5c-.7.002-1.267.57-1.267 1.26V9h2.67c.63 0 1.07-.196 1.352-.478C19.804 8.24 20 7.8 20 7.17V4.75c0-.89-.363-1.704-.952-2.301a3.27 3.27 0 0 0-2.281-.949ZM14 2.76C14 1.23 15.25 0 16.77 0h.007a4.77 4.77 0 0 1 3.333 1.39l.004.003A4.775 4.775 0 0 1 21.5 4.75v2.42c0 .95-.304 1.8-.917 2.413-.613.613-1.462.917-2.413.917h-3.42a.75.75 0 0 1-.75-.75V2.76Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.057 1.431C1.862.5 3.097 0 4.75 0h12a.75.75 0 0 1 0 1.5c-.686 0-1.25.564-1.25 1.25v17c0 1.442-1.646 2.256-2.797 1.402l-.002-.002-1.718-1.285a.242.242 0 0 0-.313.025l-1.68 1.68a1.758 1.758 0 0 1-2.48 0l-.002-.001L4.85 19.9a.258.258 0 0 0-.34-.03l-1.707 1.278-.002.001C1.643 22.024 0 21.193 0 19.75v-15c0-1.203.27-2.408 1.057-3.319Zm13.245.069H4.75c-1.346 0-2.112.396-2.557.911C1.73 2.948 1.5 3.743 1.5 4.75v15c0 .216.235.325.397.202l.004-.002 1.709-1.28a1.757 1.757 0 0 1 2.3.17l.002.001L7.57 20.51a.259.259 0 0 0 .36 0l1.68-1.68c.61-.61 1.59-.688 2.283-.158l1.704 1.276c.17.125.403 0 .403-.198v-17c0-.45.109-.875.302-1.25Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4 7.75A.75.75 0 0 1 4.75 7h6a.75.75 0 0 1 0 1.5h-6A.75.75 0 0 1 4 7.75ZM4.75 11.75A.75.75 0 0 1 5.5 11H10a.75.75 0 0 1 0 1.5H5.5a.75.75 0 0 1-.75-.75Z\"\n />\n </SvgWithFillColor>\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 fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12.5 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M2.5 12.88v-1.76c0-1.04.85-1.9 1.9-1.9 1.81 0 2.55-1.28 1.64-2.85-.52-.9-.21-2.07.7-2.59l1.73-.99c.79-.47 1.81-.19 2.28.6l.11.19c.9 1.57 2.38 1.57 3.29 0l.11-.19c.47-.79 1.49-1.07 2.28-.6l1.73.99c.91.52 1.22 1.69.7 2.59-.91 1.57-.17 2.85 1.64 2.85 1.04 0 1.9.85 1.9 1.9v1.76c0 1.04-.85 1.9-1.9 1.9-1.81 0-2.55 1.28-1.64 2.85.52.91.21 2.07-.7 2.59l-1.73.99c-.79.47-1.81.19-2.28-.6l-.11-.19c-.9-1.57-2.38-1.57-3.29 0l-.11.19c-.47.79-1.49 1.07-2.28.6l-1.73-.99a1.899 1.899 0 0 1-.7-2.59c.91-1.57.17-2.85-1.64-2.85-1.05 0-1.9-.86-1.9-1.9Z\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\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 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 { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const RetryIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color, size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithFillColor\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 ref={forwardedRef}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.016 13.45c.199-.384.002-.842-.397-1.005-.406-.166-.864.033-1.077.416A6.17 6.17 0 0 1 13 15.345a6.051 6.051 0 0 1-4.244.513 6.127 6.127 0 0 1-3.543-2.425 6.286 6.286 0 0 1 .73-8.095A6.089 6.089 0 0 1 9.86 3.604a6.07 6.07 0 0 1 4.083 1.286 6.196 6.196 0 0 1 1.65 1.97l-1.053.363a.302.302 0 0 0-.073.534l2.607 1.758a.3.3 0 0 0 .45-.155l1.01-3.007a.298.298 0 0 0-.38-.378l-1.057.365a7.79 7.79 0 0 0-2.194-2.713 7.627 7.627 0 0 0-5.13-1.615A7.65 7.65 0 0 0 4.852 4.19a7.898 7.898 0 0 0-.917 10.17 7.7 7.7 0 0 0 4.452 3.048 7.604 7.604 0 0 0 5.333-.644 7.757 7.757 0 0 0 3.297-3.315Z\"\n fill={color}\n />\n </SvgWithFillColor>\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 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 React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\n\nconst TypographyContainer = styled('span', {\n margin: 0,\n color: '$foreground',\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 '@md': {\n fontSize: '$18',\n },\n '@lg': {\n fontSize: '$20',\n },\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 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 | '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}\n\nexport function Typography({\n children,\n ...props\n}: PropsWithChildren<PropTypes>) {\n return (\n <TypographyContainer className=\"_typography\" {...props}>\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('img', {\n position: 'absolute',\n bottom: 0,\n width: '$12',\n height: '$12',\n right: 0,\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 src={chainLogo} alt={blockchain} />\n </StepLogoContainer>\n <Detail pl={direction === 'horizontal'}>\n <Typography noWrap variant={direction === 'vertical' ? 'body2' : 'h6'}>\n {parseFloat(amount).toFixed(2)} {symbol}\n </Typography>\n <SubTitle noWrap variant=\"caption\">\n on {blockchain}\n </SubTitle>\n </Detail>\n </StepContainer>\n );\n}\n","import { BestRouteResponse } from 'rango-sdk';\n\nexport const secondsToString = (s: number): string => {\n const minutes = parseInt((s / 60).toString()).toString();\n return `${minutes}`;\n};\nexport const totalArrivalTime = (data: BestRouteResponse) =>\n data?.result?.swaps?.reduce((a, b) => a + b.estimatedTimeInSeconds, 0) || 0;\n\nexport const rawFees = (data: BestRouteResponse): string =>\n (\n data?.result?.swaps?.flatMap((s) =>\n s.fee.map((f) => ({ swapperId: s.swapperId, fee: f }))\n ) || []\n )\n .reduce((partialSum, a) => partialSum + parseFloat(a.fee.amount), 0)\n .toFixed(3);\n\nexport const decimalNumber = (number = '0', toFixed: number) =>\n parseFloat(number).toFixed(toFixed);\n\nexport const containsText = (text: string, searchText: string) =>\n text.toLowerCase().includes(searchText.toLowerCase());\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 React, { Fragment, PropsWithChildren } from 'react';\nimport { GasIcon, TimeIcon } from '../../components/Icon';\nimport { StepDetail } from '../../components/StepDetail';\nimport { Typography } from '../../components/Typography';\nimport { rawFees, secondsToString, totalArrivalTime } from '../../helper';\nimport { styled } from '../../theme';\nimport { Skeleton } from '../Skeleton';\nimport { Spinner } from '../Spinner';\nimport { BestRouteResponse } from 'rango-sdk';\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});\nconst HR = styled('hr', {\n width: '100%',\n background: '$neutrals200',\n margin: '$8 0',\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\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});\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 loading?: boolean;\n error?: string;\n}\nexport function BestRoute({\n data,\n loading,\n error,\n}: PropsWithChildren<PropTypes>) {\n let fee,\n time: string = '';\n\n if (!!data) {\n fee = rawFees(data);\n time = secondsToString(totalArrivalTime(data));\n }\n\n return (\n <Container>\n {loading ? (\n <SkeletonContainer>\n <Skeleton width={48} height={94} />\n </SkeletonContainer>\n ) : (\n <GasContainer>\n <GasIcon size={20} />\n <Typography mt={4} align=\"center\" variant=\"caption\">\n {error && '-'}\n {!!data && `$${fee}`}\n </Typography>\n <HR />\n <TimeIcon size={20} />\n <Typography mt={4} align=\"center\" variant=\"caption\">\n {error && '-'}\n {!!data && `~${time}m`}\n </Typography>\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 } 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\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 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 color: '$foreground',\n },\n '&:disabled': {\n background: '$neutrals400 !important',\n },\n },\n outlined: {\n backgroundColor: '$background !important',\n borderColor: '$neutrals400 !important',\n color: '$foreground',\n '&:hover': {\n borderColor: '$neutrals600 !important',\n color: '$neutrals500 !important',\n },\n '&:disabled': {\n borderColor: '$neutrals300 !important',\n color: '$neutrals400 !important',\n },\n background: 'transparent',\n border: 1,\n borderStyle: 'solid',\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: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\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 !important',\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 !important',\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 !important',\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 !important',\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 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 onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large';\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 >\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: '$primary500',\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: '$primary500',\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: '$text',\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 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 {...(inputAttributes.id && { htmlFor: inputAttributes.id })}>\n {label}\n </Label>\n )}\n <InputContainer\n disabled={inputAttributes.disabled}\n prefix={!!prefix}\n suffix={!!suffix}\n size={size}\n style={style}\n >\n {prefix || null}\n <Input {...inputAttributes} spellCheck={false} ref={ref} />\n {suffix || null}\n </InputContainer>\n </>\n );\n }\n);\n","import React, { 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 Content: React.ElementType<{ searchedFor: string }>;\n textFieldPlaceholder: string;\n }\n | {\n textField: false;\n Content: React.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\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.Content searchedFor={searchedFor} />}\n {!props.textField && props.Content}\n </ContentContainer>\n\n {Footer}\n </Container>\n );\n}\n","import React from 'react';\nimport { CheckCircleIcon, InfoCircleIcon, WarningIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { darkTheme, styled } from '../../theme';\n\nconst MainContainer = styled('div', {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n padding: '$16',\n borderRadius: '$5',\n variants: {\n type: {\n primary: {\n backgroundColor: '$primary200',\n },\n secondary: {\n backgroundColor: '$neutrals400',\n },\n success: {\n backgroundColor: '$success300',\n },\n warning: {\n backgroundColor: '$warning500',\n },\n error: {\n backgroundColor: '$error300',\n },\n },\n },\n});\n\nconst ContentContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TitleContainer = styled('div', {\n marginBottom: '$8',\n});\n\nconst IconContainer = styled('div', {\n marginRight: '$24',\n});\n\nconst StyledTypography = styled(Typography, {\n color: darkTheme.colors.foreground.value,\n});\n\nexport interface PropTypes {\n type: 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n description: string;\n title?: string;\n}\n\nexport function Alert(props: PropTypes) {\n const { type, description, title } = props;\n\n const showIcon = (\n ['error', 'success', 'warning'] as PropTypes['type'][]\n ).includes(type);\n\n return (\n <MainContainer type={type}>\n {showIcon && (\n <IconContainer>\n {type === 'success' && <CheckCircleIcon color=\"success\" size={28} />}\n {type === 'warning' && <WarningIcon color=\"white\" size={28} />}\n {type === 'error' && <InfoCircleIcon color=\"error\" size={28} />}\n </IconContainer>\n )}\n <ContentContainer>\n {title && (\n <TitleContainer>\n <StyledTypography variant=\"h6\">{title}</StyledTypography>\n </TitleContainer>\n )}\n <StyledTypography variant=\"body2\">{description}</StyledTypography>\n </ContentContainer>\n </MainContainer>\n );\n}\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';\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 Content={({ searchedFor }) => {\n const filteredBlockchains = filterBlockchains(list, searchedFor);\n return (\n <ListContainer style={listContainerStyle}>\n {loadingStatus === 'loading' && (\n <div>\n <Spinner size={24} />\n </div>\n )}\n {loadingStatus === 'failed' && (\n <Alert\n type=\"error\"\n description=\"Error connecting server, please reload the app and try again\"\n />\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\n type=\"secondary\"\n description={`${searchedFor} not found`}\n />\n )}\n </>\n )}\n </ListContainer>\n );\n }}\n />\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',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$2',\n backgroundColor: '$neutral-100',\n});\nconst Label = styled('label', {\n color: '$text',\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 htmlFor={id}>{label} </Label>\n </CheckboxContainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React from 'react';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\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 '&:hover': {\n backgroundColor: '$neutrals300',\n },\n variants: {\n selected: {\n true: { backgroundColor: '$neutrals400' },\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 <Typography variant=\"body2\">{label}</Typography>\n {suffix || null}\n </ChipCointainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React 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 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};\n","import React, { Fragment } from 'react';\nimport { styled } from '../../theme';\nimport { FilledCircle } from '../common';\nimport { 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 width: '$28',\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 && <FilledCircle />}\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});\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 return (\n <Button\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 <Typography variant=\"h5\" noWrap={false}>\n {name}\n </Typography>\n </Button>\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 { styled } from '../../theme';\n\nconst SpacerContainer = styled('div', {\n variants: {\n size: {\n 12: {},\n 16: {},\n 18: {},\n 20: {},\n 24: {},\n },\n direction: {\n vertical: {},\n horizontal: {},\n },\n },\n compoundVariants: [\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?: 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 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: '$neutrals300',\n borderColor: '$neutrals400',\n borderRadius: '99999px',\n position: 'relative',\n cursor: 'pointer',\n '&[data-state=\"checked\"]': {\n backgroundColor: '$primary100',\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: '$neutrals500',\n transition: ' transform 300ms',\n borderRadius: '999999px',\n willChange: 'transform',\n '&[data-state=\"checked\"]': {\n transform: 'translateX(20px)',\n backgroundColor: '$primary500',\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, { 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(Typography, {\n position: 'sticky',\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 setTimeout(() => {\n onChange(clickedItem);\n }, 200);\n };\n\n const isSelected = (liquiditySource: LiquiditySource) =>\n !!selected.find((item) => liquiditySource.title === item.title);\n\n return (\n <div style={{ height: '450px', ...listContainerStyle }}>\n <div>\n <LiquiditySourceType variant=\"h5\">Bridges</LiquiditySourceType>\n <Spacer size={16} direction=\"vertical\" />\n {groupLiquiditySources(list).bridge.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 variant=\"h5\">Exchanges</LiquiditySourceType>\n <Spacer size={16} direction=\"vertical\" />\n\n {groupLiquiditySources(list).exchange.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 return (\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 type={selected ? 'primary' : undefined}\n onClick={onChange.bind(null, liquiditySource)}\n >\n <Typography variant=\"body1\">{liquiditySource.title}</Typography>\n </Button>\n );\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) ? 'Clear all' : 'Select all'}\n </ActionButton>\n }\n hasHeader={hasHeader}\n onBack={onBack}\n Content={({ searchedFor }) => (\n <LiquiditySourceList\n listContainerStyle={listContainerStyle}\n list={filterLiquiditySources(list, searchedFor)}\n onChange={onChange}\n />\n )}\n />\n );\n}\n","import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { SelectableWallet } from '../../containers/ConfirmWallets/types';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\n\nconst Row = styled('div', {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\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 backgroundColor: '$neutrals300',\n width: '20px',\n height: '20px',\n borderRadius: '100%',\n border: 'none',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '$neutrals400',\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: '$primary',\n },\n});\n\nconst Label = styled('label', {\n paddingLeft: '$8',\n cursor: 'pointer',\n});\n\nexport interface PropTypes {\n options: { label: string; value: string }[];\n defaultValue: string;\n onChange: (value: string) => void;\n direction?: 'vertical' | 'horizontal';\n style?: CSSProperties;\n}\n\nexport function Radio(props: PropTypes) {\n const { defaultValue, onChange, direction = 'vertical', style } = props;\n return (\n <Container>\n <StyledRoot\n onValueChange={onChange}\n defaultValue={defaultValue}\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 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';\n\nconst BaseContainer = styled('div', {\n borderRadius: '$5',\n backgroundColor: '$neutrals200',\n padding: '$16',\n});\n\nconst SlippageChipsContainer = styled('div', {\n display: 'flex',\n flexWrap: 'wrap',\n marginTop: '$16',\n});\n\nconst LiquiditySourceContainer = styled(BaseContainer, {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '$32',\n cursor: 'pointer',\n});\n\nconst StyledAngleRight = styled(AngleRightIcon, { marginLeft: '8px' });\n\nconst LiquiditySourceNumber = styled('div', {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\nconst ThemesContainer = styled(BaseContainer, {\n marginTop: '$32',\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}\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 } = 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 <Typography variant=\"body1\">Slippage tolerance per swap</Typography>\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 borderColor: customSlippage ? '$success' : 'initial',\n }}\n />\n </SlippageChipsContainer>\n </BaseContainer>\n <ThemesContainer>\n <Typography variant=\"body2\">Theme</Typography>\n <Radio\n defaultValue={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 <LiquiditySourceContainer onClick={onLiquiditySourcesClick}>\n <Typography variant=\"body1\">Liquidity Sources</Typography>\n <LiquiditySourceNumber onClick={onLiquiditySourcesClick}>\n <Typography variant=\"body2\">{`( ${selectedLiquiditySources.length} / ${liquiditySources.length} )`}</Typography>\n <StyledAngleRight />\n </LiquiditySourceNumber>\n </LiquiditySourceContainer>\n </>\n );\n\n return (\n <SecondaryPage\n title=\"Settings\"\n textField={false}\n Content={PageContent}\n onBack={onBack}\n />\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 $24',\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}>\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.fromLogo}\n symbol={lastStep.fromSymbol}\n chainLogo={lastStep.fromBlockchainLogo}\n blockchain={lastStep.fromBlockchain}\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, useRef } 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 isNextPageLoading: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n loadNextPage: () => void;\n Item: VirtualizedListItem;\n innerElementType: ReactElementType | undefined;\n size: number;\n};\n\nexport function VirtualizedList(props: PropsWithChildren<PropTypes>) {\n const {\n itemCount,\n hasNextPage,\n isNextPageLoading,\n loadNextPage,\n Item,\n innerElementType,\n size,\n } = props;\n const listRef = useRef<any>(null);\n\n const isItemLoaded = (index: number) => !hasNextPage || index < itemCount;\n\n return (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={hasNextPage ? itemCount + 1 : itemCount}\n loadMoreItems={\n isNextPageLoading\n ? () => {\n // do nothing\n }\n : loadNextPage\n }\n threshold={1}\n >\n {({ onItemsRendered }) => {\n return (\n <AutoSizer>\n {({ width, height }) => (\n <List\n innerElementType={innerElementType}\n ref={listRef}\n itemSize={() => size}\n itemCount={itemCount}\n height={height}\n width={width}\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 </AutoSizer>\n );\n }}\n </InfiniteLoader>\n );\n}\n","import React, { forwardRef, useEffect, useState } from 'react';\nimport { CommonProps } from 'react-window';\nimport { styled } from '../../theme';\nimport { Token } from 'rango-sdk';\nimport { Button } from '../Button/Button';\nimport { Typography } from '../Typography';\nimport { VirtualizedList } from '../VirtualizedList/VirtualizedList';\nimport { CSSProperties } from '@stitches/react';\nimport { containsText } from '../../helper';\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\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\nconst filterTokens = (\n list: Token[],\n searchedText: string,\n outputCount?: number\n) => {\n if (searchedText)\n return list\n .filter(\n (token) =>\n containsText(token.symbol, searchedText) ||\n containsText(token.address || '', searchedText) ||\n containsText(token.name || '', searchedText)\n )\n .slice(0, outputCount);\n else return list.slice(0, outputCount);\n};\n\nexport function TokenList(props: PropTypes) {\n const { list, searchedText, onChange, multiSelect, selectedList } = props;\n\n const [selected, setSelected] = useState(props.selected);\n\n const changeSelected = (token: TokenWithAmount) => {\n setSelected(token);\n onChange(token);\n };\n\n const isSelect = (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 Token = ({\n filteredTokens,\n index,\n style,\n }: {\n filteredTokens: TokenWithAmount[];\n index: number;\n style: CSSProperties | undefined;\n }) => {\n const currentToken = filteredTokens[index];\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={changeSelected.bind(null, currentToken)}\n type={isSelect(currentToken) ? 'primary' : undefined}\n prefix={<TokenImage src={currentToken.image} />}\n suffix={\n currentToken.balance?.amount && (\n <TokenAmountContainer>\n <Typography variant=\"body2\">\n {currentToken.balance.amount}\n </Typography>\n <Typography variant=\"caption\">\n {`${currentToken.balance.usdValue}$`}\n </Typography>\n </TokenAmountContainer>\n )\n }\n >\n <TokenNameContainer>\n <Typography variant=\"body1\">{currentToken.symbol}</Typography>\n <Typography variant=\"body2\">{currentToken.name}</Typography>\n </TokenNameContainer>\n </Button>\n </div>\n );\n };\n\n const [hasNextPage, setHasNextPage] = useState<boolean>(true);\n const [isNextPageLoading, setIsNextPageLoading] = useState<boolean>(false);\n const [filteredTokens, setFilteredTokens] = useState<TokenWithAmount[]>(list);\n\n const loadNextPage = () => {\n setIsNextPageLoading(true);\n setTimeout(() => {\n setIsNextPageLoading(false);\n setFilteredTokens(\n filterTokens(list, searchedText, filteredTokens.length + PAGE_SIZE)\n );\n }, 0);\n };\n\n useEffect(() => {\n setFilteredTokens(filterTokens(list, searchedText, PAGE_SIZE));\n }, [searchedText]);\n\n useEffect(() => {\n setHasNextPage(\n filterTokens(list, searchedText).length > filterTokens.length\n );\n }, [filteredTokens.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 // eslint-disable-next-line react/prop-types\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 <Token filteredTokens={filteredTokens} style={style} index={index} />\n )}\n hasNextPage={hasNextPage}\n isNextPageLoading={isNextPageLoading}\n itemCount={filteredTokens.length}\n loadNextPage={loadNextPage}\n innerElementType={innerElementType}\n size={56}\n />\n </div>\n );\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, { useState } from 'react';\nimport { ChromePicker, ColorResult } from 'react-color';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\nimport { Typography } from '../Typography';\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\nexport function ColorPicker({ color, onChangeColor, label, place }: PropTypes) {\n const [displayColorPicker, setDisplayColorPicker] = useState<boolean>(false);\n\n return (\n <Container>\n <Typography mb={4} variant=\"body2\">\n {label}\n </Typography>\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 { BestRouteResponse } from 'rango-sdk';\nimport React, { Fragment, PropsWithChildren } from 'react';\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';\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 Alerts = styled('div', { paddingBottom: '$16' });\n\nexport interface PropTypes {\n bestRoute: BestRouteResponse | null;\n onBack: () => void;\n onConfirm?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n loading?: boolean;\n error?: string;\n warning?: string;\n}\nexport function ConfirmSwap({\n bestRoute,\n onBack,\n onConfirm,\n loading,\n error,\n warning,\n}: PropsWithChildren<PropTypes>) {\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 >\n Swap\n </Button>\n </Footer>\n }\n Content={bestRoute?.result?.swaps.map((swap, index) => (\n <Fragment key={index}>\n <Alerts>\n {error && <Alert description={error} type=\"error\" />}\n {warning && <Alert description={warning} type=\"warning\" />}\n </Alerts>\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 {swap.to.symbol}{' '}\n via {swap.swapperId}{' '}\n </Typography>\n <Fee>\n <GasIcon />\n <Typography ml={4} variant=\"caption\">\n {parseFloat(swap.fee[0].amount).toFixed(6)} 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 />\n );\n}\n","import { BestRouteResponse } from 'rango-sdk';\nimport React, { PropsWithChildren } from 'react';\nimport { Alert } from '../../components';\nimport { Button } from '../../components/Button';\nimport { SecondaryPage } from '../../components/SecondaryPage/SecondaryPage';\nimport { SelectableWalletList } from '../../components/SelectableWalletList';\nimport { Typography } from '../../components/Typography';\nimport { decimalNumber } from '../../helper';\nimport { styled } from '../../theme';\nimport { SelectableWallet } from './types';\n\nconst Footer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst AlertContainer = styled('div', {\n padding: '$16 0',\n});\n\nexport interface PropTypes {\n swap: BestRouteResponse;\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}\nexport function ConfirmWallets({\n onBack,\n loading,\n onConfirm,\n swap,\n requiredWallets,\n selectableWallets,\n onChange,\n confirmDisabled,\n}: PropsWithChildren<PropTypes>) {\n const firstStep = swap.result?.swaps[0];\n const lastStep = swap.result?.swaps[swap.result?.swaps.length - 1];\n\n const fromAmount = decimalNumber(firstStep?.fromAmount, 3);\n const toAmount = decimalNumber(lastStep?.toAmount, 3);\n\n return (\n <SecondaryPage\n textField={false}\n title=\"Confirm Swap\"\n onBack={onBack}\n Footer={\n <Footer>\n <Button\n fullWidth\n loading={loading}\n type=\"primary\"\n variant=\"contained\"\n onClick={onConfirm}\n disabled={confirmDisabled}\n >\n Confirm\n </Button>\n </Footer>\n }\n Content={\n <>\n <Typography variant=\"h6\" mb={12}>\n Confirm swap {fromAmount} {lastStep?.from.symbol} (\n {firstStep?.from.blockchain}) to {toAmount} {lastStep?.to.symbol}{' '}\n (on {lastStep?.to.blockchain})\n </Typography>\n {requiredWallets.map((wallet, index) => {\n const list = selectableWallets.filter((w) => wallet === w.chain);\n return (\n <div key={index}>\n <Typography variant=\"body2\" mb={12} mt={12}>\n {index + 1}) Your {wallet} Wallet\n </Typography>\n {list.length === 0 && (\n <AlertContainer>\n <Alert\n type=\"error\"\n description={`You should connect a ${wallet} supported wallet`}\n />\n </AlertContainer>\n )}\n {list.length != 0 && (\n <SelectableWalletList list={list} onChange={onChange} />\n )}\n </div>\n );\n })}\n </>\n }\n />\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});\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=\"History\"\n Content={({ 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 />\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, { Fragment } from 'react';\nimport {\n StepDetail,\n SecondaryPage,\n GasIcon,\n Typography,\n CheckCircleIcon,\n InfoCircleIcon,\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';\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 marginLeft: '$12',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n});\n\nexport interface PropTypes {\n pendingSwap: PendingSwap;\n onBack: () => void;\n}\n\nexport function SwapHistory(props: PropTypes) {\n const { pendingSwap, onBack } = props;\n\n return (\n <SecondaryPage\n title=\"History\"\n textField={false}\n onBack={onBack}\n Content={\n <>\n {pendingSwap?.steps.map((step, index) => (\n <Fragment key={index}>\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 {/* {parseFloat(step.fee[0].amount).toFixed(6)} estimated gas */}\n 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 </Fragment>\n ))}\n </>\n }\n />\n );\n}\n","import React from 'react';\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;\n onChange: (token: TokenWithAmount) => void;\n hasHeader?: boolean;\n multiSelect?: boolean;\n onBack?: () => void;\n selectedList?: TokenWithAmount[] | 'all';\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 Content={({ searchedFor }) => (\n <TokenList\n searchedText={searchedFor}\n list={list}\n selected={selected}\n selectedList={selectedList}\n multiSelect={multiSelect}\n onChange={onChange}\n />\n )}\n />\n );\n}\n"],"names":["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","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","$$color","white","SvgWithFillColor","fill","DeleteCircleIcon","size","props","React","width","height","viewBox","xmlns","className","d","strokeWidth","strokeLinecap","strokeLinejoin","toString","CheckSquareIcon","AddIcon","InfoCircleIcon","AddCircleIcon","MinusCircleIcon","CheckCircleIcon","CheckIcon","fillRule","clipRule","BanIcon","strokeMiterlimit","WarningIcon","HistoryIcon","GasIcon","SettingsIcon","TrashIcon","SearchMinusIcon","SearchIcon","AngleRightIcon","AngleUpIcon","AngleDownIcon","AngleLeftIcon","DownloadIcon","RetryRightIcon","RetryLeftIcon","TryAgainIcon","VerticalSwapIcon","HorizontalSwapIcon","RetryIcon","forwardedRef","_ref$size","ref","WalletIcon","AddWalletIcon","DeleteWalletIcon","CheckWalletIcon","SwapWalletIcon","BagIcon","clipPath","id","TimeIcon","cx","cy","r","CloseIcon","transform","cursor","SignatureIcon","xmlSpace","style","TypographyContainer","margin","display","variant","h1","fontSize","fontWeight","@md","@lg","h2","h3","h4","h5","h6","body1","body2","caption","align","center","textAlign","left","right","noWrap","true","whiteSpace","ml","marginLeft","mt","marginTop","mr","marginRight","mb","marginBottom","Typography","children","StepLogoContainer","position","direction","vertical","horizontal","Logo","borderRadius","ChainLogo","bottom","StepContainer","alignItems","flexDirection","justifyContent","Detail","pl","paddingLeft","false","paddingTop","SubTitle","StepDetail","chainLogo","amount","symbol","blockchain","_ref$direction","src","logo","alt","parseFloat","toFixed","decimalNumber","number","containsText","text","searchText","toLowerCase","includes","SkeletonContainer","backgroundSize","animation","0%","backgroundPosition","100%","94","Skeleton","_ref$height","SpinnerContainer","border","borderRight","borderRightColor","Spinner","_ref$color","Container","minHeight","ErrorMsg","BestRouteContainer","overflowX","overflowY","alignSelf","padding","Line","HR","SwapperLogo","RelativeContainer","Dot","top","ArrowRight","borderTop","borderBottom","borderLeft","GasContainer","SwapperContainer","ButtonContainer","start","grow","small","medium","large","contained","&:hover","&:disabled","outlined","borderColor","borderStyle","ghost","fullWidth","loading","type","compoundVariants","&:visited","&:focus","defaultVariants","Content","flex","flexContent","Button","disabled","prefix","suffix","FilledCircle","ListContainer","gap","gridTemplateColumns","alignContent","Image","maxHeight","BlockchainsList","list","onChange","multiSelect","selectedList","useState","selected","setSelected","changeSelectedBlockchain","isSelect","name","findIndex","item","map","index","undefined","onClick","bind","key","displayName","InputContainer","boxSizing","flexGrow","transition","&:focus-within","filter","paddingRight","Input","outline","-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","MainContainer","secondary","TitleContainer","IconContainer","StyledTypography","Alert","description","showIcon","CheckboxContainer","CheckboxRoot","RadixCheckbox","ChipCointainer","Chip","WalletState","BackDrop","ModalContainer","boxShadow","zIndex","Row","ModalHeader","Modal","content","onClose","action","contentStyle","open","createPortal","currentTarget","containerStyle","document","body","StateIconContainer","State","walletState","Fragment","DISCONNECTED","NOT_INSTALLED","href","detectInstallLink","installLink","CONNECTING","CONNECTED","WalletImage","Wallet","state","window","image","ModalContent","SpacerContainer","Spacer","StyledSwitchRoot","RadixSwitch","&[data-state=\"checked\"]","-webkit-tap-highlight-color","StyledSwitchThumb","willChange","Switch","checked","onCheckedChange","groupLiquiditySources","liquiditySources","bridge","liquiditySource","exchange","LiquiditySourceType","paddingBottom","LiquidityImage","LiquiditySourceList","listContainerStyle","changeLiquiditySources","clickedItem","prevState","setTimeout","isSelected","find","LiquiditySourceItem","ActionButton","flexWrap","Circle","SolidCircle","flexBasis","SelectableWalletList","_list$find","walletType","active","setActive","w","useEffect","_list$find2","StyledRoot","RadioGroup","gridGap","ItemContainer","StyledItem","StyledIndicator","&::after","Radio","_props$direction","onValueChange","defaultValue","options","option","BaseContainer","SlippageChipsContainer","LiquiditySourceContainer","StyledAngleRight","LiquiditySourceNumber","ThemesContainer","maxWidth","minWidth","SwapContainer","status","failed","running","Arrow","StatusContainer","SwapDetail","swap","firstStep","steps","lastStep","length","requestId","fromLogo","fromSymbol","fromBlockchainLogo","fromBlockchain","inputAmount","outputAmount","VirtualizedList","itemCount","hasNextPage","isNextPageLoading","loadNextPage","Item","innerElementType","listRef","useRef","isItemLoaded","InfiniteLoader","loadMoreItems","threshold","onItemsRendered","AutoSizer","List","itemSize","TokenImage","TokenNameContainer","TokenAmountContainer","filterTokens","searchedText","outputCount","token","address","slice","TokenList","changeSelected","Token","currentToken","filteredTokens","indexOf","balance","_currentToken$balance","usdValue","setHasNextPage","setIsNextPageLoading","setFilteredTokens","rest","TooltipTrigger","RadixTooltip","TooltipContent","animationDuration","animationTimingFunction","gray","TooltipArrow","ChildrenWrapper","Color","Cover","Popover","place","Fee","ArrowDown","Alerts","AlertContainer","BodyError","Group","GroupTitle","SwapsGroup","onSwapClick","swapsInGroup","reduce","acc","categoryIndex","swaps","push","group","StyledAnchor","InternalDetailsContainer","InternalDetail","DescriptionContainer","Description","Error","fee","data","time","result","_data$result2","_data$result2$swaps","flatMap","f","swapperId","partialSum","a","rawFees","_data$result","_data$result$swaps","b","estimatedTimeInSeconds","totalArrivalTime","parseInt","from","blockchainLogo","fromAmount","swapperLogo","to","toAmount","loadingStatus","filteredBlockchains","filterBlockchains","onChangeColor","displayColorPicker","setDisplayColorPicker","prev","ChromePicker","bestRoute","onConfirm","_bestRoute$result","swapperType","_bestRoute$result2","requiredWallets","selectableWallets","confirmDisabled","_swap$result","_swap$result2","_swap$result3","wallet","chain","onSelect","info","filterSwaps","toBlockchain","toSymbol","filteredHistory","toggleAll","slippages","selectedLiquiditySources","onSlippageChange","onLiquiditySourcesClick","customSlippage","onCustomSlippageChange","maxSlippage","minSlippage","selectedTheme","onThemeChange","selectedSlippage","setSelectedSlippage","PageContent","slippage","changeSlippage","parsedValue","pendingSwap","step","explorerUrl","substring","toUpperCase","url","rel","toLogo","toBlockchainLogo","_ref$side","side","asChild","sideOffset"],"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/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/BagIcon.tsx","../src/components/Icon/TimeIcon.tsx","../src/components/Icon/CloseIcon.tsx","../src/components/Icon/SignatureIcon.tsx","../src/components/Typography/Typography.tsx","../src/components/StepDetail/StepDetail.tsx","../src/helper/index.ts","../src/components/Skeleton/Skeleton.tsx","../src/components/Spinner/Spinner.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/Alert/Alert.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/Spacer/Spacer.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/TokenList.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/ColorPicker/ColorPicker.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","../src/components/TokenSelector/TokenSelector.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 },\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: '5px',\n 10: '10px',\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 { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const HistoryIcon: 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=\"M16.767 1.5c-.7.002-1.267.57-1.267 1.26V9h2.67c.63 0 1.07-.196 1.352-.478C19.804 8.24 20 7.8 20 7.17V4.75c0-.89-.363-1.704-.952-2.301a3.27 3.27 0 0 0-2.281-.949ZM14 2.76C14 1.23 15.25 0 16.77 0h.007a4.77 4.77 0 0 1 3.333 1.39l.004.003A4.775 4.775 0 0 1 21.5 4.75v2.42c0 .95-.304 1.8-.917 2.413-.613.613-1.462.917-2.413.917h-3.42a.75.75 0 0 1-.75-.75V2.76Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.057 1.431C1.862.5 3.097 0 4.75 0h12a.75.75 0 0 1 0 1.5c-.686 0-1.25.564-1.25 1.25v17c0 1.442-1.646 2.256-2.797 1.402l-.002-.002-1.718-1.285a.242.242 0 0 0-.313.025l-1.68 1.68a1.758 1.758 0 0 1-2.48 0l-.002-.001L4.85 19.9a.258.258 0 0 0-.34-.03l-1.707 1.278-.002.001C1.643 22.024 0 21.193 0 19.75v-15c0-1.203.27-2.408 1.057-3.319Zm13.245.069H4.75c-1.346 0-2.112.396-2.557.911C1.73 2.948 1.5 3.743 1.5 4.75v15c0 .216.235.325.397.202l.004-.002 1.709-1.28a1.757 1.757 0 0 1 2.3.17l.002.001L7.57 20.51a.259.259 0 0 0 .36 0l1.68-1.68c.61-.61 1.59-.688 2.283-.158l1.704 1.276c.17.125.403 0 .403-.198v-17c0-.45.109-.875.302-1.25Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4 7.75A.75.75 0 0 1 4.75 7h6a.75.75 0 0 1 0 1.5h-6A.75.75 0 0 1 4 7.75ZM4.75 11.75A.75.75 0 0 1 5.5 11H10a.75.75 0 0 1 0 1.5H5.5a.75.75 0 0 1-.75-.75Z\"\n />\n </SvgWithFillColor>\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 fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"_icon\"\n {...props}\n >\n <path\n d=\"M12.5 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M2.5 12.88v-1.76c0-1.04.85-1.9 1.9-1.9 1.81 0 2.55-1.28 1.64-2.85-.52-.9-.21-2.07.7-2.59l1.73-.99c.79-.47 1.81-.19 2.28.6l.11.19c.9 1.57 2.38 1.57 3.29 0l.11-.19c.47-.79 1.49-1.07 2.28-.6l1.73.99c.91.52 1.22 1.69.7 2.59-.91 1.57-.17 2.85 1.64 2.85 1.04 0 1.9.85 1.9 1.9v1.76c0 1.04-.85 1.9-1.9 1.9-1.81 0-2.55 1.28-1.64 2.85.52.91.21 2.07-.7 2.59l-1.73.99c-.79.47-1.81.19-2.28-.6l-.11-.19c-.9-1.57-2.38-1.57-3.29 0l-.11.19c-.47.79-1.49 1.07-2.28.6l-1.73-.99a1.899 1.899 0 0 1-.7-2.59c.91-1.57.17-2.85-1.64-2.85-1.05 0-1.9-.86-1.9-1.9Z\"\n strokeWidth={1.5}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\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 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 { SvgWithFillColor } from './common';\nimport { IconProps } from './types';\n\nexport const RetryIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ color, size = 16, ...props }, forwardedRef) => {\n return (\n <SvgWithFillColor\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 ref={forwardedRef}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.016 13.45c.199-.384.002-.842-.397-1.005-.406-.166-.864.033-1.077.416A6.17 6.17 0 0 1 13 15.345a6.051 6.051 0 0 1-4.244.513 6.127 6.127 0 0 1-3.543-2.425 6.286 6.286 0 0 1 .73-8.095A6.089 6.089 0 0 1 9.86 3.604a6.07 6.07 0 0 1 4.083 1.286 6.196 6.196 0 0 1 1.65 1.97l-1.053.363a.302.302 0 0 0-.073.534l2.607 1.758a.3.3 0 0 0 .45-.155l1.01-3.007a.298.298 0 0 0-.38-.378l-1.057.365a7.79 7.79 0 0 0-2.194-2.713 7.627 7.627 0 0 0-5.13-1.615A7.65 7.65 0 0 0 4.852 4.19a7.898 7.898 0 0 0-.917 10.17 7.7 7.7 0 0 0 4.452 3.048 7.604 7.604 0 0 0 5.333-.644 7.757 7.757 0 0 0 3.297-3.315Z\"\n fill={color}\n />\n </SvgWithFillColor>\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 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 React, { PropsWithChildren } from 'react';\nimport { styled } from '../../theme';\n\nconst TypographyContainer = styled('span', {\n margin: 0,\n color: '$foreground',\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 '@md': {\n fontSize: '$18',\n },\n '@lg': {\n fontSize: '$20',\n },\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 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 | '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}\n\nexport function Typography({\n children,\n ...props\n}: PropsWithChildren<PropTypes>) {\n return (\n <TypographyContainer className=\"_typography\" {...props}>\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('img', {\n position: 'absolute',\n bottom: 0,\n width: '$12',\n height: '$12',\n right: 0,\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 src={chainLogo} alt={blockchain} />\n </StepLogoContainer>\n <Detail pl={direction === 'horizontal'}>\n <Typography noWrap variant={direction === 'vertical' ? 'body2' : 'h6'}>\n {parseFloat(amount).toFixed(2)} {symbol}\n </Typography>\n <SubTitle noWrap variant=\"caption\">\n on {blockchain}\n </SubTitle>\n </Detail>\n </StepContainer>\n );\n}\n","import { BestRouteResponse } from 'rango-sdk';\n\nexport const secondsToString = (s: number): string => {\n const minutes = parseInt((s / 60).toString()).toString();\n return `${minutes}`;\n};\nexport const totalArrivalTime = (data: BestRouteResponse) =>\n data?.result?.swaps?.reduce((a, b) => a + b.estimatedTimeInSeconds, 0) || 0;\n\nexport const rawFees = (data: BestRouteResponse): string =>\n (\n data?.result?.swaps?.flatMap((s) =>\n s.fee.map((f) => ({ swapperId: s.swapperId, fee: f }))\n ) || []\n )\n .reduce((partialSum, a) => partialSum + parseFloat(a.fee.amount), 0)\n .toFixed(3);\n\nexport const decimalNumber = (number = '0', toFixed: number) =>\n parseFloat(number).toFixed(toFixed);\n\nexport const containsText = (text: string, searchText: string) =>\n text.toLowerCase().includes(searchText.toLowerCase());\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 React, { Fragment, PropsWithChildren } from 'react';\nimport { GasIcon, TimeIcon } from '../../components/Icon';\nimport { StepDetail } from '../../components/StepDetail';\nimport { Typography } from '../../components/Typography';\nimport { rawFees, secondsToString, totalArrivalTime } from '../../helper';\nimport { styled } from '../../theme';\nimport { Skeleton } from '../Skeleton';\nimport { Spinner } from '../Spinner';\nimport { BestRouteResponse } from 'rango-sdk';\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});\nconst HR = styled('hr', {\n width: '100%',\n background: '$neutrals200',\n margin: '$8 0',\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\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});\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 loading?: boolean;\n error?: string;\n}\nexport function BestRoute({\n data,\n loading,\n error,\n}: PropsWithChildren<PropTypes>) {\n let fee,\n time: string = '';\n\n if (!!data) {\n fee = rawFees(data);\n time = secondsToString(totalArrivalTime(data));\n }\n\n return (\n <Container>\n {loading ? (\n <SkeletonContainer>\n <Skeleton width={48} height={94} />\n </SkeletonContainer>\n ) : (\n <GasContainer>\n <GasIcon size={20} />\n <Typography mt={4} align=\"center\" variant=\"caption\">\n {error && '-'}\n {!!data && `$${fee}`}\n </Typography>\n <HR />\n <TimeIcon size={20} />\n <Typography mt={4} align=\"center\" variant=\"caption\">\n {error && '-'}\n {!!data && `~${time}m`}\n </Typography>\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 } 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\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 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 color: '$foreground',\n },\n '&:disabled': {\n background: '$neutrals400 !important',\n },\n },\n outlined: {\n backgroundColor: '$background !important',\n borderColor: '$neutrals400 !important',\n color: '$foreground',\n '&:hover': {\n borderColor: '$neutrals600 !important',\n color: '$neutrals500 !important',\n },\n '&:disabled': {\n borderColor: '$neutrals300 !important',\n color: '$neutrals400 !important',\n },\n background: 'transparent',\n border: 1,\n borderStyle: 'solid',\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: '$colors$background',\n [`.${darkTheme} &`]: {\n $$color: '$colors$foreground',\n },\n color: '$$color !important',\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 !important',\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 !important',\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 !important',\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 !important',\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 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 onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large';\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 >\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: '$primary500',\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: '$primary500',\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: '$text',\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 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 {...(inputAttributes.id && { htmlFor: inputAttributes.id })}>\n {label}\n </Label>\n )}\n <InputContainer\n disabled={inputAttributes.disabled}\n prefix={!!prefix}\n suffix={!!suffix}\n size={size}\n style={style}\n >\n {prefix || null}\n <Input {...inputAttributes} spellCheck={false} ref={ref} />\n {suffix || null}\n </InputContainer>\n </>\n );\n }\n);\n","import React, { 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 Content: React.ElementType<{ searchedFor: string }>;\n textFieldPlaceholder: string;\n }\n | {\n textField: false;\n Content: React.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\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.Content searchedFor={searchedFor} />}\n {!props.textField && props.Content}\n </ContentContainer>\n\n {Footer}\n </Container>\n );\n}\n","import React from 'react';\nimport { CheckCircleIcon, InfoCircleIcon, WarningIcon } from '../Icon';\nimport { Typography } from '../Typography';\nimport { darkTheme, styled } from '../../theme';\n\nconst MainContainer = styled('div', {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n padding: '$16',\n borderRadius: '$5',\n variants: {\n type: {\n primary: {\n backgroundColor: '$primary200',\n },\n secondary: {\n backgroundColor: '$neutrals400',\n },\n success: {\n backgroundColor: '$success300',\n },\n warning: {\n backgroundColor: '$warning500',\n },\n error: {\n backgroundColor: '$error300',\n },\n },\n },\n});\n\nconst ContentContainer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TitleContainer = styled('div', {\n marginBottom: '$8',\n});\n\nconst IconContainer = styled('div', {\n marginRight: '$24',\n});\n\nconst StyledTypography = styled(Typography, {\n color: darkTheme.colors.foreground.value,\n});\n\nexport interface PropTypes {\n type: 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n description: string;\n title?: string;\n}\n\nexport function Alert(props: PropTypes) {\n const { type, description, title } = props;\n\n const showIcon = (\n ['error', 'success', 'warning'] as PropTypes['type'][]\n ).includes(type);\n\n return (\n <MainContainer type={type}>\n {showIcon && (\n <IconContainer>\n {type === 'success' && <CheckCircleIcon color=\"success\" size={28} />}\n {type === 'warning' && <WarningIcon color=\"white\" size={28} />}\n {type === 'error' && <InfoCircleIcon color=\"error\" size={28} />}\n </IconContainer>\n )}\n <ContentContainer>\n {title && (\n <TitleContainer>\n <StyledTypography variant=\"h6\">{title}</StyledTypography>\n </TitleContainer>\n )}\n <StyledTypography variant=\"body2\">{description}</StyledTypography>\n </ContentContainer>\n </MainContainer>\n );\n}\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';\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 Content={({ searchedFor }) => {\n const filteredBlockchains = filterBlockchains(list, searchedFor);\n return (\n <ListContainer style={listContainerStyle}>\n {loadingStatus === 'loading' && (\n <div>\n <Spinner size={24} />\n </div>\n )}\n {loadingStatus === 'failed' && (\n <Alert\n type=\"error\"\n description=\"Error connecting server, please reload the app and try again\"\n />\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\n type=\"secondary\"\n description={`${searchedFor} not found`}\n />\n )}\n </>\n )}\n </ListContainer>\n );\n }}\n />\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',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$2',\n backgroundColor: '$neutral-100',\n});\nconst Label = styled('label', {\n color: '$text',\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 htmlFor={id}>{label} </Label>\n </CheckboxContainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React from 'react';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\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 '&:hover': {\n backgroundColor: '$neutrals300',\n },\n variants: {\n selected: {\n true: { backgroundColor: '$neutrals400' },\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 <Typography variant=\"body2\">{label}</Typography>\n {suffix || null}\n </ChipCointainer>\n );\n}\n","import { CSSProperties } from '@stitches/react';\nimport React 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 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};\n","import React, { Fragment } from 'react';\nimport { styled } from '../../theme';\nimport { FilledCircle } from '../common';\nimport { 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 width: '$28',\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 && <FilledCircle />}\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});\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 return (\n <Button\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 <Typography variant=\"h5\" noWrap={false}>\n {name}\n </Typography>\n </Button>\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 { styled } from '../../theme';\n\nconst SpacerContainer = styled('div', {\n variants: {\n size: {\n 12: {},\n 16: {},\n 18: {},\n 20: {},\n 24: {},\n },\n direction: {\n vertical: {},\n horizontal: {},\n },\n },\n compoundVariants: [\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?: 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 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: '$neutrals300',\n borderColor: '$neutrals400',\n borderRadius: '99999px',\n position: 'relative',\n cursor: 'pointer',\n '&[data-state=\"checked\"]': {\n backgroundColor: '$primary100',\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: '$neutrals500',\n transition: ' transform 300ms',\n borderRadius: '999999px',\n willChange: 'transform',\n '&[data-state=\"checked\"]': {\n transform: 'translateX(20px)',\n backgroundColor: '$primary500',\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, { 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(Typography, {\n position: 'sticky',\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 setTimeout(() => {\n onChange(clickedItem);\n }, 200);\n };\n\n const isSelected = (liquiditySource: LiquiditySource) =>\n !!selected.find((item) => liquiditySource.title === item.title);\n\n return (\n <div style={{ height: '450px', ...listContainerStyle }}>\n <div>\n <LiquiditySourceType variant=\"h5\">Bridges</LiquiditySourceType>\n <Spacer size={16} direction=\"vertical\" />\n {groupLiquiditySources(list).bridge.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 variant=\"h5\">Exchanges</LiquiditySourceType>\n <Spacer size={16} direction=\"vertical\" />\n\n {groupLiquiditySources(list).exchange.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 return (\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 type={selected ? 'primary' : undefined}\n onClick={onChange.bind(null, liquiditySource)}\n >\n <Typography variant=\"body1\">{liquiditySource.title}</Typography>\n </Button>\n );\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) ? 'Clear all' : 'Select all'}\n </ActionButton>\n }\n hasHeader={hasHeader}\n onBack={onBack}\n Content={({ searchedFor }) => (\n <LiquiditySourceList\n listContainerStyle={listContainerStyle}\n list={filterLiquiditySources(list, searchedFor)}\n onChange={onChange}\n />\n )}\n />\n );\n}\n","import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { SelectableWallet } from '../../containers/ConfirmWallets/types';\nimport { styled } from '../../theme';\nimport { Typography } from '../Typography';\n\nconst Row = styled('div', {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\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 backgroundColor: '$neutrals300',\n width: '20px',\n height: '20px',\n borderRadius: '100%',\n border: 'none',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '$neutrals400',\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: '$primary',\n },\n});\n\nconst Label = styled('label', {\n paddingLeft: '$8',\n cursor: 'pointer',\n});\n\nexport interface PropTypes {\n options: { label: string; value: string }[];\n defaultValue: string;\n onChange: (value: string) => void;\n direction?: 'vertical' | 'horizontal';\n style?: CSSProperties;\n}\n\nexport function Radio(props: PropTypes) {\n const { defaultValue, onChange, direction = 'vertical', style } = props;\n return (\n <Container>\n <StyledRoot\n onValueChange={onChange}\n defaultValue={defaultValue}\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 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';\n\nconst BaseContainer = styled('div', {\n borderRadius: '$5',\n backgroundColor: '$neutrals200',\n padding: '$16',\n});\n\nconst SlippageChipsContainer = styled('div', {\n display: 'flex',\n flexWrap: 'wrap',\n marginTop: '$16',\n});\n\nconst LiquiditySourceContainer = styled(BaseContainer, {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '$32',\n cursor: 'pointer',\n});\n\nconst StyledAngleRight = styled(AngleRightIcon, { marginLeft: '8px' });\n\nconst LiquiditySourceNumber = styled('div', {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\nconst ThemesContainer = styled(BaseContainer, {\n marginTop: '$32',\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}\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 } = 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 <Typography variant=\"body1\">Slippage tolerance per swap</Typography>\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 borderColor: customSlippage ? '$success' : 'initial',\n }}\n />\n </SlippageChipsContainer>\n </BaseContainer>\n <ThemesContainer>\n <Typography variant=\"body2\">Theme</Typography>\n <Radio\n defaultValue={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 <LiquiditySourceContainer onClick={onLiquiditySourcesClick}>\n <Typography variant=\"body1\">Liquidity Sources</Typography>\n <LiquiditySourceNumber onClick={onLiquiditySourcesClick}>\n <Typography variant=\"body2\">{`( ${selectedLiquiditySources.length} / ${liquiditySources.length} )`}</Typography>\n <StyledAngleRight />\n </LiquiditySourceNumber>\n </LiquiditySourceContainer>\n </>\n );\n\n return (\n <SecondaryPage\n title=\"Settings\"\n textField={false}\n Content={PageContent}\n onBack={onBack}\n />\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 $24',\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}>\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.fromLogo}\n symbol={lastStep.fromSymbol}\n chainLogo={lastStep.fromBlockchainLogo}\n blockchain={lastStep.fromBlockchain}\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, useRef } 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 isNextPageLoading: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n loadNextPage: () => void;\n Item: VirtualizedListItem;\n innerElementType: ReactElementType | undefined;\n size: number;\n};\n\nexport function VirtualizedList(props: PropsWithChildren<PropTypes>) {\n const {\n itemCount,\n hasNextPage,\n isNextPageLoading,\n loadNextPage,\n Item,\n innerElementType,\n size,\n } = props;\n const listRef = useRef<any>(null);\n\n const isItemLoaded = (index: number) => !hasNextPage || index < itemCount;\n\n return (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={hasNextPage ? itemCount + 1 : itemCount}\n loadMoreItems={\n isNextPageLoading\n ? () => {\n // do nothing\n }\n : loadNextPage\n }\n threshold={1}\n >\n {({ onItemsRendered }) => {\n return (\n <AutoSizer>\n {({ width, height }) => (\n <List\n innerElementType={innerElementType}\n ref={listRef}\n itemSize={() => size}\n itemCount={itemCount}\n height={height}\n width={width}\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 </AutoSizer>\n );\n }}\n </InfiniteLoader>\n );\n}\n","import React, { forwardRef, useEffect, useState } from 'react';\nimport { CommonProps } from 'react-window';\nimport { styled } from '../../theme';\nimport { Token } from 'rango-sdk';\nimport { Button } from '../Button/Button';\nimport { Typography } from '../Typography';\nimport { VirtualizedList } from '../VirtualizedList/VirtualizedList';\nimport { CSSProperties } from '@stitches/react';\nimport { containsText } from '../../helper';\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\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\nconst filterTokens = (\n list: Token[],\n searchedText: string,\n outputCount?: number\n) => {\n if (searchedText)\n return list\n .filter(\n (token) =>\n containsText(token.symbol, searchedText) ||\n containsText(token.address || '', searchedText) ||\n containsText(token.name || '', searchedText)\n )\n .slice(0, outputCount);\n else return list.slice(0, outputCount);\n};\n\nexport function TokenList(props: PropTypes) {\n const { list, searchedText, onChange, multiSelect, selectedList } = props;\n\n const [selected, setSelected] = useState(props.selected);\n\n const changeSelected = (token: TokenWithAmount) => {\n setSelected(token);\n onChange(token);\n };\n\n const isSelect = (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 Token = ({\n filteredTokens,\n index,\n style,\n }: {\n filteredTokens: TokenWithAmount[];\n index: number;\n style: CSSProperties | undefined;\n }) => {\n const currentToken = filteredTokens[index];\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={changeSelected.bind(null, currentToken)}\n type={isSelect(currentToken) ? 'primary' : undefined}\n prefix={<TokenImage src={currentToken.image} />}\n suffix={\n currentToken.balance?.amount && (\n <TokenAmountContainer>\n <Typography variant=\"body2\">\n {currentToken.balance.amount}\n </Typography>\n <Typography variant=\"caption\">\n {`${currentToken.balance.usdValue}$`}\n </Typography>\n </TokenAmountContainer>\n )\n }\n >\n <TokenNameContainer>\n <Typography variant=\"body1\">{currentToken.symbol}</Typography>\n <Typography variant=\"body2\">{currentToken.name}</Typography>\n </TokenNameContainer>\n </Button>\n </div>\n );\n };\n\n const [hasNextPage, setHasNextPage] = useState<boolean>(true);\n const [isNextPageLoading, setIsNextPageLoading] = useState<boolean>(false);\n const [filteredTokens, setFilteredTokens] = useState<TokenWithAmount[]>(list);\n\n const loadNextPage = () => {\n setIsNextPageLoading(true);\n setTimeout(() => {\n setIsNextPageLoading(false);\n setFilteredTokens(\n filterTokens(list, searchedText, filteredTokens.length + PAGE_SIZE)\n );\n }, 0);\n };\n\n useEffect(() => {\n setFilteredTokens(filterTokens(list, searchedText, PAGE_SIZE));\n }, [searchedText]);\n\n useEffect(() => {\n setHasNextPage(\n filterTokens(list, searchedText).length > filterTokens.length\n );\n }, [filteredTokens.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 // eslint-disable-next-line react/prop-types\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 <Token filteredTokens={filteredTokens} style={style} index={index} />\n )}\n hasNextPage={hasNextPage}\n isNextPageLoading={isNextPageLoading}\n itemCount={filteredTokens.length}\n loadNextPage={loadNextPage}\n innerElementType={innerElementType}\n size={56}\n />\n </div>\n );\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, { useState } from 'react';\nimport { ChromePicker, ColorResult } from 'react-color';\nimport { styled } from '../../theme';\nimport { Button } from '../Button';\nimport { Typography } from '../Typography';\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\nexport function ColorPicker({ color, onChangeColor, label, place }: PropTypes) {\n const [displayColorPicker, setDisplayColorPicker] = useState<boolean>(false);\n\n return (\n <Container>\n <Typography mb={4} variant=\"body2\">\n {label}\n </Typography>\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 { BestRouteResponse } from 'rango-sdk';\nimport React, { Fragment, PropsWithChildren } from 'react';\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';\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 Alerts = styled('div', { paddingBottom: '$16' });\n\nexport interface PropTypes {\n bestRoute: BestRouteResponse | null;\n onBack: () => void;\n onConfirm?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n loading?: boolean;\n error?: string;\n warning?: string;\n}\nexport function ConfirmSwap({\n bestRoute,\n onBack,\n onConfirm,\n loading,\n error,\n warning,\n}: PropsWithChildren<PropTypes>) {\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 >\n Swap\n </Button>\n </Footer>\n }\n Content={bestRoute?.result?.swaps.map((swap, index) => (\n <Fragment key={index}>\n <Alerts>\n {error && <Alert description={error} type=\"error\" />}\n {warning && <Alert description={warning} type=\"warning\" />}\n </Alerts>\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 {swap.to.symbol}{' '}\n via {swap.swapperId}{' '}\n </Typography>\n <Fee>\n <GasIcon />\n <Typography ml={4} variant=\"caption\">\n {parseFloat(swap.fee[0].amount).toFixed(6)} 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 />\n );\n}\n","import { BestRouteResponse } from 'rango-sdk';\nimport React, { PropsWithChildren } from 'react';\nimport { Alert } from '../../components';\nimport { Button } from '../../components/Button';\nimport { SecondaryPage } from '../../components/SecondaryPage/SecondaryPage';\nimport { SelectableWalletList } from '../../components/SelectableWalletList';\nimport { Typography } from '../../components/Typography';\nimport { decimalNumber } from '../../helper';\nimport { styled } from '../../theme';\nimport { SelectableWallet } from './types';\n\nconst Footer = styled('div', {\n display: 'flex',\n alignItems: 'center',\n});\n\nconst AlertContainer = styled('div', {\n padding: '$16 0',\n});\n\nexport interface PropTypes {\n swap: BestRouteResponse;\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}\nexport function ConfirmWallets({\n onBack,\n loading,\n onConfirm,\n swap,\n requiredWallets,\n selectableWallets,\n onChange,\n confirmDisabled,\n isExperimentalChain,\n handleConnectChain,\n}: PropsWithChildren<PropTypes>) {\n const firstStep = swap.result?.swaps[0];\n const lastStep = swap.result?.swaps[swap.result?.swaps.length - 1];\n\n const fromAmount = decimalNumber(firstStep?.fromAmount, 3);\n const toAmount = decimalNumber(lastStep?.toAmount, 3);\n\n return (\n <SecondaryPage\n textField={false}\n title=\"Confirm Swap\"\n onBack={onBack}\n Footer={\n <Footer>\n <Button\n fullWidth\n loading={loading}\n type=\"primary\"\n variant=\"contained\"\n onClick={onConfirm}\n disabled={confirmDisabled}\n >\n Confirm\n </Button>\n </Footer>\n }\n Content={\n <>\n <Typography variant=\"h6\" mb={12}>\n Confirm swap {fromAmount} {lastStep?.from.symbol} (\n {firstStep?.from.blockchain}) to {toAmount} {lastStep?.to.symbol}{' '}\n (on {lastStep?.to.blockchain})\n </Typography>\n {requiredWallets.map((wallet, index) => {\n const list = selectableWallets.filter((w) => wallet === w.chain);\n return (\n <div key={index}>\n <Typography variant=\"body2\" mb={12} mt={12}>\n {index + 1}) Your {wallet} Wallet\n </Typography>\n {list.length === 0 && (\n <>\n <AlertContainer>\n <Alert\n type=\"error\"\n description={`You should connect a ${wallet} supported wallet`}\n />\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 </div>\n );\n })}\n </>\n }\n />\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});\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=\"History\"\n Content={({ 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 />\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, { Fragment } from 'react';\nimport {\n StepDetail,\n SecondaryPage,\n GasIcon,\n Typography,\n CheckCircleIcon,\n InfoCircleIcon,\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';\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 marginLeft: '$12',\n border: '1px dashed $foreground',\n borderRadius: 'inherit',\n});\n\nexport interface PropTypes {\n pendingSwap: PendingSwap;\n onBack: () => void;\n}\n\nexport function SwapHistory(props: PropTypes) {\n const { pendingSwap, onBack } = props;\n\n return (\n <SecondaryPage\n title=\"History\"\n textField={false}\n onBack={onBack}\n Content={\n <>\n {pendingSwap?.steps.map((step, index) => (\n <Fragment key={index}>\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 {/* {parseFloat(step.fee[0].amount).toFixed(6)} estimated gas */}\n 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 </Fragment>\n ))}\n </>\n }\n />\n );\n}\n","import React from 'react';\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;\n onChange: (token: TokenWithAmount) => void;\n hasHeader?: boolean;\n multiSelect?: boolean;\n onBack?: () => void;\n selectedList?: TokenWithAmount[] | 'all';\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 Content={({ searchedFor }) => (\n <TokenList\n searchedText={searchedFor}\n list={list}\n selected={selected}\n selectedList={selectedList}\n multiSelect={multiSelect}\n onChange={onChange}\n />\n )}\n />\n );\n}\n"],"names":["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","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","$$color","white","SvgWithFillColor","fill","DeleteCircleIcon","size","props","React","width","height","viewBox","xmlns","className","d","strokeWidth","strokeLinecap","strokeLinejoin","toString","CheckSquareIcon","AddIcon","InfoCircleIcon","AddCircleIcon","MinusCircleIcon","CheckCircleIcon","CheckIcon","fillRule","clipRule","BanIcon","strokeMiterlimit","WarningIcon","HistoryIcon","GasIcon","SettingsIcon","TrashIcon","SearchMinusIcon","SearchIcon","AngleRightIcon","AngleUpIcon","AngleDownIcon","AngleLeftIcon","DownloadIcon","RetryRightIcon","RetryLeftIcon","TryAgainIcon","VerticalSwapIcon","HorizontalSwapIcon","RetryIcon","forwardedRef","_ref$size","ref","WalletIcon","AddWalletIcon","DeleteWalletIcon","CheckWalletIcon","SwapWalletIcon","BagIcon","clipPath","id","TimeIcon","cx","cy","r","CloseIcon","transform","cursor","SignatureIcon","xmlSpace","style","TypographyContainer","margin","display","variant","h1","fontSize","fontWeight","@md","@lg","h2","h3","h4","h5","h6","body1","body2","caption","align","center","textAlign","left","right","noWrap","true","whiteSpace","ml","marginLeft","mt","marginTop","mr","marginRight","mb","marginBottom","Typography","children","StepLogoContainer","position","direction","vertical","horizontal","Logo","borderRadius","ChainLogo","bottom","StepContainer","alignItems","flexDirection","justifyContent","Detail","pl","paddingLeft","false","paddingTop","SubTitle","StepDetail","chainLogo","amount","symbol","blockchain","_ref$direction","src","logo","alt","parseFloat","toFixed","decimalNumber","number","containsText","text","searchText","toLowerCase","includes","SkeletonContainer","backgroundSize","animation","0%","backgroundPosition","100%","94","Skeleton","_ref$height","SpinnerContainer","border","borderRight","borderRightColor","Spinner","_ref$color","Container","minHeight","ErrorMsg","BestRouteContainer","overflowX","overflowY","alignSelf","padding","Line","HR","SwapperLogo","RelativeContainer","Dot","top","ArrowRight","borderTop","borderBottom","borderLeft","GasContainer","SwapperContainer","ButtonContainer","start","grow","small","medium","large","contained","&:hover","&:disabled","outlined","borderColor","borderStyle","ghost","fullWidth","loading","type","compoundVariants","&:visited","&:focus","defaultVariants","Content","flex","flexContent","Button","disabled","prefix","suffix","FilledCircle","ListContainer","gap","gridTemplateColumns","alignContent","Image","maxHeight","BlockchainsList","list","onChange","multiSelect","selectedList","useState","selected","setSelected","changeSelectedBlockchain","isSelect","name","findIndex","item","map","index","undefined","onClick","bind","key","displayName","InputContainer","boxSizing","flexGrow","transition","&:focus-within","filter","paddingRight","Input","outline","-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","MainContainer","secondary","TitleContainer","IconContainer","StyledTypography","Alert","description","showIcon","CheckboxContainer","CheckboxRoot","RadixCheckbox","ChipCointainer","Chip","WalletState","BackDrop","ModalContainer","boxShadow","zIndex","Row","ModalHeader","Modal","content","onClose","action","contentStyle","open","createPortal","currentTarget","containerStyle","document","body","StateIconContainer","State","walletState","Fragment","DISCONNECTED","NOT_INSTALLED","href","detectInstallLink","installLink","CONNECTING","CONNECTED","WalletImage","Wallet","state","window","image","ModalContent","SpacerContainer","Spacer","StyledSwitchRoot","RadixSwitch","&[data-state=\"checked\"]","-webkit-tap-highlight-color","StyledSwitchThumb","willChange","Switch","checked","onCheckedChange","groupLiquiditySources","liquiditySources","bridge","liquiditySource","exchange","LiquiditySourceType","paddingBottom","LiquidityImage","LiquiditySourceList","listContainerStyle","changeLiquiditySources","clickedItem","prevState","setTimeout","isSelected","find","LiquiditySourceItem","ActionButton","flexWrap","Circle","SolidCircle","flexBasis","SelectableWalletList","_list$find","walletType","active","setActive","w","useEffect","_list$find2","StyledRoot","RadioGroup","gridGap","ItemContainer","StyledItem","StyledIndicator","&::after","Radio","_props$direction","onValueChange","defaultValue","options","option","BaseContainer","SlippageChipsContainer","LiquiditySourceContainer","StyledAngleRight","LiquiditySourceNumber","ThemesContainer","maxWidth","minWidth","SwapContainer","status","failed","running","Arrow","StatusContainer","SwapDetail","swap","firstStep","steps","lastStep","length","requestId","fromLogo","fromSymbol","fromBlockchainLogo","fromBlockchain","inputAmount","outputAmount","VirtualizedList","itemCount","hasNextPage","isNextPageLoading","loadNextPage","Item","innerElementType","listRef","useRef","isItemLoaded","InfiniteLoader","loadMoreItems","threshold","onItemsRendered","AutoSizer","List","itemSize","TokenImage","TokenNameContainer","TokenAmountContainer","filterTokens","searchedText","outputCount","token","address","slice","TokenList","changeSelected","Token","currentToken","filteredTokens","indexOf","balance","_currentToken$balance","usdValue","setHasNextPage","setIsNextPageLoading","setFilteredTokens","rest","TooltipTrigger","RadixTooltip","TooltipContent","animationDuration","animationTimingFunction","gray","TooltipArrow","ChildrenWrapper","Color","Cover","Popover","place","Fee","ArrowDown","Alerts","AlertContainer","BodyError","Group","GroupTitle","SwapsGroup","onSwapClick","swapsInGroup","reduce","acc","categoryIndex","swaps","push","group","StyledAnchor","InternalDetailsContainer","InternalDetail","DescriptionContainer","Description","Error","fee","data","time","result","_data$result2","_data$result2$swaps","flatMap","f","swapperId","partialSum","a","rawFees","_data$result","_data$result$swaps","b","estimatedTimeInSeconds","totalArrivalTime","parseInt","from","blockchainLogo","fromAmount","swapperLogo","to","toAmount","loadingStatus","filteredBlockchains","filterBlockchains","onChangeColor","displayColorPicker","setDisplayColorPicker","prev","ChromePicker","bestRoute","onConfirm","_bestRoute$result","swapperType","_bestRoute$result2","requiredWallets","selectableWallets","confirmDisabled","isExperimentalChain","handleConnectChain","_swap$result","_swap$result2","_swap$result3","wallet","chain","onSelect","info","filterSwaps","toBlockchain","toSymbol","filteredHistory","toggleAll","slippages","selectedLiquiditySources","onSlippageChange","onLiquiditySourcesClick","customSlippage","onCustomSlippageChange","maxSlippage","minSlippage","selectedTheme","onThemeChange","selectedSlippage","setSelectedSlippage","PageContent","slippage","changeSlippage","parsedValue","pendingSwap","step","explorerUrl","substring","toUpperCase","url","rel","toLogo","toBlockchainLogo","_ref$side","side","asChild","sideOffset"],"mappings":"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"}