@ledgerhq/react-ui 0.48.0 → 0.49.0-nightly.20260317030141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/cjs/components/index.js +10 -33
  2. package/lib/cjs/components/index.js.map +1 -1
  3. package/lib/cjs/components/message/Tooltip/Tooltip.stories.js +10 -33
  4. package/lib/cjs/components/message/Tooltip/Tooltip.stories.js.map +1 -1
  5. package/lib/cjs/components/message/Tooltip/index.js +8 -31
  6. package/lib/cjs/components/message/Tooltip/index.js.map +1 -1
  7. package/lib/cjs/components/message/index.js +10 -33
  8. package/lib/cjs/components/message/index.js.map +1 -1
  9. package/lib/cjs/index.js +10 -33
  10. package/lib/cjs/index.js.map +1 -1
  11. package/lib/cjs/pre-ldls/components/index.js +18 -38
  12. package/lib/cjs/pre-ldls/components/index.js.map +1 -1
  13. package/lib/cjs/pre-ldls/index.js +18 -39
  14. package/lib/cjs/pre-ldls/index.js.map +1 -1
  15. package/lib/components/message/Tooltip/index.d.ts.map +1 -1
  16. package/lib/components/message/Tooltip/index.js +5 -25
  17. package/lib/components/message/Tooltip/index.js.map +1 -1
  18. package/lib/pre-ldls/components/index.d.ts +0 -1
  19. package/lib/pre-ldls/components/index.d.ts.map +1 -1
  20. package/lib/pre-ldls/components/index.js +0 -1
  21. package/lib/pre-ldls/components/index.js.map +1 -1
  22. package/package.json +13 -3
  23. package/lib/cjs/pre-ldls/components/ApyIndicator/ApyIndicator.js +0 -1776
  24. package/lib/cjs/pre-ldls/components/ApyIndicator/ApyIndicator.js.map +0 -1
  25. package/lib/cjs/pre-ldls/components/ApyIndicator/ApyIndicator.stories.js +0 -1835
  26. package/lib/cjs/pre-ldls/components/ApyIndicator/ApyIndicator.stories.js.map +0 -1
  27. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.d.ts +0 -6
  28. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.d.ts.map +0 -1
  29. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.js +0 -6
  30. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.js.map +0 -1
  31. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.stories.d.ts +0 -10
  32. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.stories.d.ts.map +0 -1
  33. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.stories.js +0 -20
  34. package/lib/pre-ldls/components/ApyIndicator/ApyIndicator.stories.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pre-ldls/components/index.js","sources":["webpack://@ledgerhq/react-ui/./src/components/asorted/Icon/Icon.tsx","webpack://@ledgerhq/react-ui/./src/components/asorted/Text/index.tsx","webpack://@ledgerhq/react-ui/./src/components/asorted/Text/styles.ts","webpack://@ledgerhq/react-ui/./src/components/layout/Flex/index.ts","webpack://@ledgerhq/react-ui/./src/components/loaders/InfiniteLoader/index.tsx","webpack://@ledgerhq/react-ui/./src/components/styled.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AccountItem/AccountItem.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AccountList/AccountList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Address/Address.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Address/formatAddress.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/ApyIndicator/ApyIndicator.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AssetItem/AssetItem.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AssetList/AssetList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/CardButton/CardButton.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Checkbox/Checkbox.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Input/Input.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/NetworkItem/NetworkItem.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/NetworkList/NetworkList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Search/Search.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Tag/Tag.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/TextInput/TextInput.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/hooks/useDebouncedCallback.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/libs/design-tokens.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/libs/index.ts","webpack://@ledgerhq/react-ui/./src/styles/helpers.ts","webpack://@ledgerhq/react-ui/./src/styles/styled/fontFamily.ts","webpack://@ledgerhq/react-ui/./src/styles/system/gaps.ts","webpack://@ledgerhq/react-ui/./src/styles/theme.ts","webpack://@ledgerhq/react-ui/webpack/runtime/compat_get_default_export","webpack://@ledgerhq/react-ui/webpack/runtime/define_property_getters","webpack://@ledgerhq/react-ui/webpack/runtime/has_own_property","webpack://@ledgerhq/react-ui/webpack/runtime/make_namespace_object","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/index.ts"],"sourcesContent":["import * as icons from \"@ledgerhq/icons-ui/reactLegacy\";\nimport React from \"react\";\n\nexport type Props = {\n name: string;\n size?: number;\n weight?: \"Medium\";\n color?: string;\n};\n\nexport const iconNames = Array.from(\n Object.keys(icons).reduce((set, rawKey) => {\n const key = rawKey.replace(/(.+)(Medium)+$/g, \"$1\");\n if (!set.has(key)) set.add(key);\n return set;\n }, new Set<string>()),\n);\n\nconst Icon = ({\n name,\n size = 16,\n color = \"currentColor\",\n weight = \"Medium\",\n}: Props): React.JSX.Element | null => {\n const maybeIconName = `${name}${weight}`;\n if (maybeIconName in icons) {\n // @ts-expect-error FIXME I don't know how to make you happy ts\n const Component = icons[maybeIconName];\n return <Component size={size} color={color} />;\n }\n return null;\n};\n\nexport default Icon;\n","import React from \"react\";\nimport baseStyled, { BaseStyledProps } from \"../../styled\";\nimport {\n compose,\n fontSize,\n fontWeight,\n textAlign,\n lineHeight,\n letterSpacing,\n system,\n} from \"styled-system\";\nimport fontFamily from \"../../../styles/styled/fontFamily\";\nimport { TextVariants } from \"../../../styles/theme\";\nimport { textVariantStyle } from \"./styles\";\n\nconst uppercase = system({\n uppercase: {\n property: \"textTransform\",\n transform: value => (value ? \"uppercase\" : \"none\"),\n },\n});\n\ntype FontFamilies =\n | \"Inter|ExtraLight\"\n | \"Inter|Light\"\n | \"Inter|Regular\"\n | \"Inter|Medium\"\n | \"Inter|SemiBold\"\n | \"Inter|Bold\"\n | \"Inter|ExtraBold\"\n | \"Alpha|Medium\";\n\ntype WhiteSpace = \"normal\" | \"nowrap\" | \"pre\" | \"pre-line\" | \"pre-wrap\";\n\nexport interface TextProps extends BaseStyledProps {\n fontFamily?: string;\n ff?: FontFamilies;\n fontSize?: number | string | TextVariants;\n variant?: TextVariants;\n textAlign?: string;\n fontWeight?: string;\n lineHeight?: string;\n textTransform?: string;\n textOverflow?: string;\n uppercase?: boolean;\n whiteSpace?: WhiteSpace;\n children?: React.ReactNode;\n}\n\nconst Text = baseStyled.span.attrs<TextProps, TextProps>(\n ({ variant = \"body\", fontSize, color }) => ({\n fontSize: fontSize ? fontSize : variant,\n color: color || \"neutral.c100\",\n }),\n)`\n font-weight: 500;\n white-space: ${props => props.whiteSpace ?? \"normal\"};\n ${(p: TextProps) => textVariantStyle[p.variant || \"body\"]}\n ${compose(\n uppercase,\n lineHeight,\n fontFamily,\n fontSize,\n textAlign,\n fontWeight,\n letterSpacing,\n system({\n textOverflow: true,\n }),\n )}\n ${p => (p.textTransform ? `text-transform: ${p.textTransform};` : \"\")}\n`;\n\nexport default Text;\n","import { GlobalStyleProps } from \"../../../styles/global\";\nimport { css } from \"styled-components\";\nimport { TextVariants } from \"../../../styles/theme\";\n\nconst getFontSource = (name: string) => (props: GlobalStyleProps) => {\n const fontsPath = props.fontsPath ?? \"assets/fonts\";\n const fontName = (props.fontMappings && props.fontMappings(name)) || `${name}.woff2`;\n return `url(\"${fontsPath}/${fontName}\") format(\"woff2\")`;\n};\n\nexport const fontStyles = css`\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-ExtraLight-BETA\")};\n font-weight: 100;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-Light-BETA\")};\n font-weight: 300;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-Regular\")};\n font-weight: 400;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-Medium\")};\n font-weight: 500;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-SemiBold\")};\n font-weight: 600;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-ExtraBold\")};\n font-weight: 900;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Alpha\";\n src: ${getFontSource(\"HMAlphaMono-Medium\")};\n font-weight: 500;\n font-style: normal;\n }\n`;\n\nexport const textVariantStyle: Record<\n TextVariants,\n {\n fontFamily: string;\n lineHeight?: string | number;\n fontWeight?: number;\n \"text-transform\"?: string;\n }\n> = {\n h1: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h1Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h2: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h2Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h3: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h3Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n },\n h4: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h4Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 600,\n },\n h5: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h5Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n },\n large: {\n fontFamily: \"Inter, Sans\",\n },\n largeLineHeight: {\n fontFamily: \"Inter, Sans\",\n lineHeight: 1.7,\n },\n body: {\n fontFamily: \"Inter, Sans\",\n },\n bodyLineHeight: {\n fontFamily: \"Inter, Sans\",\n lineHeight: 1.7,\n },\n paragraph: {\n fontFamily: \"Inter, Sans\",\n },\n paragraphLineHeight: {\n fontFamily: \"Inter, Sans\",\n lineHeight: 1.7,\n },\n small: {\n fontFamily: \"Inter, Sans\",\n },\n extraSmall: {\n fontFamily: \"Inter, Sans\",\n },\n tiny: {\n fontFamily: \"Inter, Sans\",\n },\n micro: {\n fontFamily: \"Inter, Sans\",\n },\n subtitle: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 600,\n \"text-transform\": \"uppercase\",\n },\n};\n","import baseStyled, { BaseStyledProps } from \"../../styled\";\n\nconst FlexBox = baseStyled.div.attrs<BaseStyledProps, BaseStyledProps>({ display: \"flex\" })``;\nexport type FlexBoxProps = BaseStyledProps & React.HTMLAttributes<HTMLDivElement>;\n\nexport default FlexBox;\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { system, size, SizeProps } from \"styled-system\";\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst Loader = styled.svg<SizeProps>`\n animation: ${rotate} 1s linear infinite;\n ${size}\n ${system({\n stroke: {\n property: \"stroke\",\n scale: \"colors\",\n },\n })}\n`;\nexport type Props = React.ComponentProps<typeof Loader> & {\n color?: string;\n};\n\nexport default function InfiniteLoader({\n size = 38,\n color = \"primary.c50\",\n ...extraProps\n}: Props): React.JSX.Element {\n return (\n <Loader\n size={size}\n stroke={color}\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...extraProps}\n >\n <linearGradient\n id=\"gradient-start\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n <linearGradient\n id=\"gradient-end\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n\n <mask id=\"gradient-mask\" maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-0\"\n y=\"-4\"\n width=\"44\"\n height=\"22\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-start)\"\n transform=\"rotate(10)\"\n />\n <rect\n x=\"0\"\n y=\"18\"\n width=\"44\"\n height=\"21\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-end)\"\n transform=\"rotate(10)\"\n />\n </mask>\n <path\n d=\"M34.8807 20.9499C35.3608 17.0398 34.3815 13.09 32.1304 9.85712C29.8793 6.6242 26.5146 4.33541 22.6808 3.42914C18.847 2.52287 14.8136 3.06283 11.3532 4.94559C7.89277 6.82836 5.24858 9.92158 3.92708 13.6328C2.60558 17.344 2.69968 21.4123 4.19135 25.0584C5.68302 28.7045 8.4674 31.6722 12.0112 33.3929C15.5549 35.1137 19.609 35.4666 23.3968 34.384C27.1846 33.3015 30.4398 30.8596 32.5391 27.526\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n mask=\"url(#gradient-mask)\"\n />\n </Loader>\n );\n}\n","import React from \"react\";\nimport gaps from \"../styles/system/gaps\";\nimport styled, { StyledInterface, InterpolationFunction } from \"styled-components\";\nimport {\n compose,\n flexbox,\n FlexboxProps,\n space,\n SpaceProps,\n position,\n PositionProps,\n color,\n ColorProps,\n layout,\n LayoutProps,\n overflow,\n OverflowProps,\n border,\n BorderProps,\n} from \"styled-system\";\n\nexport type BaseStyledProps = SpaceProps &\n FlexboxProps &\n PositionProps &\n ColorProps &\n LayoutProps &\n BorderProps &\n OverflowProps & {\n /**\n * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.\n */\n columnGap?: string | number;\n /**\n * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.\n */\n rowGap?: string | number;\n color?: string;\n children?: React.ReactNode;\n };\n\nexport const baseStyles: InterpolationFunction<unknown> = compose(\n flexbox,\n space,\n position,\n color,\n layout,\n overflow,\n gaps,\n border,\n);\n\nconst proxyStyled = new Proxy(styled, {\n apply(target: typeof styled, thisArg, argumentsList: Parameters<typeof styled>) {\n return styled(target.apply(thisArg, argumentsList)(baseStyles));\n },\n get(target, property: keyof typeof styled) {\n if (typeof target[property] === \"function\") {\n return styled(target[property].apply(styled, [baseStyles]));\n }\n return target[property];\n },\n});\n\nexport default <StyledInterface>proxyStyled;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Icons } from \"../../../assets\";\nimport { Flex, Icon, Text } from \"../../../components\";\nimport { withTokens } from \"../../libs\";\nimport { Address } from \"../Address/Address\";\nimport type { CheckboxProps } from \"../Checkbox/Checkbox\";\nimport { Checkbox } from \"../Checkbox/Checkbox\";\nimport { Tag } from \"../Tag/Tag\";\n\nexport type Account = {\n address: string;\n balance?: string;\n cryptoId?: string;\n fiatValue?: string;\n id: string;\n name: string;\n parentId?: string;\n protocol?: string;\n ticker?: string;\n};\n\nexport type RightElementArrow = {\n type: \"arrow\";\n};\n\nexport type RightElementCheckbox = {\n type: \"checkbox\";\n checkbox: CheckboxProps;\n};\n\nexport type RightElementEdit = {\n type: \"edit\";\n onClick: () => void;\n};\n\nexport type RightElement = RightElementArrow | RightElementCheckbox | RightElementEdit;\n\nexport type AccountItemProps = {\n onClick?: () => void;\n account: Account;\n rightElement?: RightElement;\n showIcon?: boolean;\n backgroundColor?: string;\n};\n\nconst ICON_BUTTONS_SIZE = \"32px\";\n\n// TODO a proper IconButton component that handles hover and pressed states.\nconst IconButton = styled.button`\n ${withTokens(\"colors-content-default-default\")}\n\n all: unset;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: ${ICON_BUTTONS_SIZE};\n width: ${ICON_BUTTONS_SIZE};\n`;\n\nconst Wrapper = styled.div<{ backgroundColor?: string; isClickable: boolean }>`\n ${withTokens(\n \"spacing-xxxs\",\n \"spacing-xxs\",\n \"spacing-xs\",\n \"margin-s\",\n \"radius-s\",\n \"radius-m\",\n \"colors-content-default-default\",\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n \"colors-content-subdued-default-default\",\n \"colors-surface-transparent-subdued-default\",\n )}\n\n display: flex;\n cursor: ${p => (p.isClickable ? \"pointer\" : \"default\")};\n justify-content: space-between;\n align-items: center;\n width: 100%;\n box-sizing: border-box;\n max-width: 100%;\n min-width: 200px;\n overflow: hidden;\n\n background-color: ${p => (p.backgroundColor ? p.backgroundColor : \"transparent\")};\n\n ${p =>\n p.isClickable\n ? `\n border-radius: var(--radius-m);\n padding: var(--margin-s);\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n }\n `\n : \"\"}\n`;\n\nconst ContentContainer = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n gap: var(--spacing-xs);\n justify-content: space-between;\n min-width: 0;\n overflow: hidden;\n width: 100%;\n`;\n\nconst AccountInfoContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n flex: 1;\n overflow: hidden;\n`;\n\nconst NameRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: var(--spacing-xxxs);\n min-width: 0;\n width: 100%;\n`;\n\nconst NameDiv = styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n flex: 1;\n max-width: fit-content;\n`;\n\nconst TagWrapper = styled.div`\n flex-shrink: 0;\n margin-left: var(--spacing-xxs);\n display: flex;\n flex: 1;\n max-width: fit-content;\n align-items: center;\n`;\n\nconst BalanceContainer = styled.div`\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n text-align: right;\n`;\n\nexport const AccountItem = ({\n onClick,\n account,\n rightElement,\n showIcon = true,\n backgroundColor,\n}: AccountItemProps) => {\n const { name, balance, fiatValue, protocol, address, ticker, cryptoId, parentId } = account;\n\n return (\n <Wrapper backgroundColor={backgroundColor} isClickable={Boolean(onClick)} onClick={onClick}>\n <ContentContainer>\n <AccountInfoContainer>\n <NameRow>\n <NameDiv>\n <Text\n data-testid={`account-row-${name}`}\n variant=\"largeLineHeight\"\n fontWeight=\"semiBold\"\n color=\"var(--colors-content-default-default)\"\n fontSize=\"14px\"\n lineHeight=\"20px\"\n title={name}\n style={{\n display: \"block\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {name}\n </Text>\n </NameDiv>\n {protocol && (\n <TagWrapper>\n <Tag textTransform=\"uppercase\">{protocol}</Tag>\n </TagWrapper>\n )}\n </NameRow>\n <Address\n address={address}\n cryptoId={cryptoId}\n ticker={ticker}\n parentId={parentId}\n showIcon={showIcon}\n isShortened\n />\n </AccountInfoContainer>\n <BalanceContainer>\n {fiatValue && <Text fontSize=\"14px\">{fiatValue}</Text>}\n {balance && (\n <Text fontSize=\"12px\" color=\"var(--colors-content-subdued-default-default)\">\n {balance}\n </Text>\n )}\n </BalanceContainer>\n {rightElement && rightElement.type === \"checkbox\" && (\n <Flex data-testid=\"right-element-checkbox\" aria-label=\"Checkbox account item\">\n <Checkbox {...rightElement.checkbox} size={20} />\n </Flex>\n )}\n {rightElement && rightElement.type === \"arrow\" && (\n <Flex data-testid=\"right-element-arrow-icon\" aria-label=\"Arrow account item\">\n <Icon name=\"ChevronRight\" size={24} />\n </Flex>\n )}\n {rightElement && rightElement.type === \"edit\" && (\n <IconButton\n aria-label=\"Edit account item\"\n data-testid=\"right-element-edit-icon\"\n onClick={e => {\n e.stopPropagation();\n if (rightElement?.type === \"edit\") {\n rightElement.onClick();\n }\n }}\n >\n <Icons.PenEdit size=\"S\" color=\"var(--colors-content-default-default)\" />\n </IconButton>\n )}\n </ContentContainer>\n </Wrapper>\n );\n};\n","import React, { useCallback } from \"react\";\nimport { Account, AccountItem } from \"../AccountItem/AccountItem\";\nimport { VirtualList } from \"../VirtualList/VirtualList\";\n\nexport const AccountList = ({\n accounts,\n onClick,\n bottomComponent,\n}: {\n accounts: Account[];\n onClick: (networkId: string) => void;\n bottomComponent?: React.ReactNode;\n}) => {\n const renderAccountItem = useCallback(\n (account: Account) => <AccountItem onClick={() => onClick(account.id)} account={account} />,\n [onClick],\n );\n\n return (\n <VirtualList\n items={accounts}\n itemHeight={76}\n bottomComponent={bottomComponent}\n renderItem={renderAccountItem}\n />\n );\n};\n","import React from \"react\";\nimport { Text } from \"../../../components\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\nimport { CryptoIcon } from \"@ledgerhq/crypto-icons\";\nimport { formatAddress } from \"./formatAddress\";\n\nconst Wrapper = styled.div`\n ${withTokens(\"spacing-xxxs\", \"colors-content-subdued-default-default\")}\n\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const Address = ({\n address,\n showIcon,\n cryptoId,\n ticker,\n parentId,\n isShortened = false,\n}: {\n address: string;\n showIcon: boolean;\n cryptoId?: string;\n ticker?: string;\n parentId?: string;\n isShortened?: boolean;\n}) => {\n const formattedAddress = isShortened ? formatAddress(address) : address;\n return (\n <Wrapper>\n <Text\n marginRight=\"var(--spacing-xxxs)\"\n fontSize=\"12px\"\n color=\"var(--colors-content-subdued-default-default)\"\n >\n {formattedAddress}\n </Text>\n {showIcon && (\n <CryptoIcon ledgerId={cryptoId} network={parentId} ticker={ticker} size=\"20px\" />\n )}\n </Wrapper>\n );\n};\n","/**\n * Format an address by showing only parts of it\n *\n * @param address - The address to format\n * @param options - Configuration options\n * @param options.prefixLength - Number of characters to show at the start (default: 5)\n * @param options.suffixLength - Number of characters to show at the end (default: 5)\n * @param options.separator - String to use as separator (default: \"...\")\n * @param options.threshold - Minimum length before truncating (default: calculated from other params)\n * @returns Formatted address string\n */\nexport const formatAddress = (\n address: string,\n options: {\n prefixLength?: number;\n suffixLength?: number;\n separator?: string;\n threshold?: number;\n } = {},\n) => {\n const {\n prefixLength = 5,\n suffixLength = 5,\n separator = \"...\",\n threshold = prefixLength + separator.length + suffixLength,\n } = options;\n\n if (!address || address.length <= threshold) {\n return address;\n }\n\n return `${address.slice(0, prefixLength)}${separator}${address.slice(-suffixLength)}`;\n};\n","import { Tag } from \"../Tag/Tag\";\nimport React from \"react\";\n\nexport const ApyIndicator = ({ value, type }: { value: number; type: \"NRR\" | \"APY\" | \"APR\" }) => {\n return <Tag spacing=\"md\">{`~ ${value}% ${type}`}</Tag>;\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\nimport { Text } from \"../../../components\";\nimport { CryptoIcon } from \"@ledgerhq/crypto-icons\";\n\nconst copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n } catch (err) {\n console.error(\"Failed to copy to clipboard:\", err);\n }\n};\n\nexport type AssetType = {\n name: string;\n ticker: string;\n id: string;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n numberOfNetworks?: number;\n assetId?: string;\n shouldDisplayId?: boolean;\n};\n\ntype AssetItemProps = AssetType & {\n onClick: (asset: AssetType) => void;\n};\n\nconst Wrapper = styled.div`\n ${withTokens(\n \"spacing-xxs\",\n \"margin-s\",\n \"radius-s\",\n \"colors-content-subdued-default-default\",\n \"colors-content-default-default\",\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n )}\n\n display: flex;\n padding: var(--spacing-xxs);\n cursor: pointer;\n border-radius: var(--radius-s, 8px);\n align-items: center;\n overflow: hidden;\n\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n }\n`;\n\nconst InfoWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: var(--margin-s);\n overflow: hidden;\n flex: 1;\n gap: 4px;\n`;\n\nconst LeftElementWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nconst TagWrapper = styled.div`\n ${withTokens(\n \"colors-surface-transparent-subdued-default\",\n \"colors-content-subdued-default-default\",\n \"radius-xs\",\n \"spacing-xxxs\",\n )}\n\n padding: var(--spacing-xxxs);\n border-radius: var(--radius-xs);\n display: inline-flex;\n background-color: var(--colors-surface-transparent-subdued-default);\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const AssetItem = ({\n name,\n ticker,\n numberOfNetworks,\n id,\n assetId,\n onClick,\n leftElement,\n rightElement,\n shouldDisplayId,\n}: AssetItemProps) => {\n return (\n <Wrapper onClick={() => onClick({ name, ticker, id })}>\n <CryptoIcon size=\"48px\" ledgerId={id} ticker={ticker} />\n <InfoWrapper>\n <Text\n data-testid={`asset-item-name-${name}`}\n fontSize=\"14px\"\n variant=\"largeLineHeight\"\n fontWeight=\"semiBold\"\n color=\"var(--colors-content-default-default)\"\n style={{\n display: \"block\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {name}\n </Text>\n <LeftElementWrapper>\n <Text\n data-testid={`asset-item-ticker-${ticker}`}\n fontSize=\"12px\"\n lineHeight=\"16px\"\n variant=\"bodyLineHeight\"\n fontWeight=\"medium\"\n color=\"var(--colors-content-subdued-default-default)\"\n >\n {ticker}\n </Text>\n {leftElement}\n {shouldDisplayId && assetId ? (\n <TagWrapper\n onClick={e => {\n e.stopPropagation();\n copyToClipboard(assetId);\n }}\n >\n <Text\n color=\"var(--colors-content-subdued-default-default)\"\n fontSize=\"12px\"\n >{`${assetId} (${numberOfNetworks} networks)`}</Text>\n </TagWrapper>\n ) : null}\n </LeftElementWrapper>\n </InfoWrapper>\n {rightElement}\n </Wrapper>\n );\n};\n","import React, { useCallback } from \"react\";\nimport { AssetItem, AssetType } from \"../AssetItem/AssetItem\";\nimport { VirtualList } from \"../VirtualList/VirtualList\";\n\nexport const AssetList = ({\n assets,\n onClick,\n onVisibleItemsScrollEnd,\n scrollToTop,\n hasNextPage,\n isDebuggingDuplicates,\n}: {\n assets: AssetType[];\n onClick: (asset: AssetType) => void;\n onVisibleItemsScrollEnd?: () => void;\n scrollToTop?: boolean;\n hasNextPage?: boolean;\n isDebuggingDuplicates?: boolean;\n}) => {\n const renderAssetItem = useCallback(\n (props: AssetType) => (\n <AssetItem {...props} shouldDisplayId={isDebuggingDuplicates} onClick={onClick} />\n ),\n [onClick, isDebuggingDuplicates],\n );\n\n return (\n <VirtualList\n itemHeight={64}\n items={assets}\n onVisibleItemsScrollEnd={onVisibleItemsScrollEnd}\n renderItem={renderAssetItem}\n scrollToTop={scrollToTop}\n hasNextPage={hasNextPage}\n />\n );\n};\n","import React from \"react\";\nimport { withTokens } from \"../../libs\";\nimport styled from \"styled-components\";\n\nconst Button = styled.button`\n ${withTokens(\n \"colors-content-default-default\",\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n \"colors-border-light-default\",\n \"colors-opacity-default-10\",\n \"colors-border-subdued-default-hover\",\n \"colors-border-subdued-default-pressed\",\n \"colors-border-focus-default\",\n \"radius-s\",\n \"border-width-default\",\n \"border-width-focus\",\n \"spacing-xs\",\n )}\n\n display: flex;\n padding: var(--spacing-xs);\n flex-grow: 1;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n\n background-color: transparent;\n color: var(--colors-content-default-default);\n font-weight: 600;\n\n border-width: var(--border-width-default);\n border-radius: var(--radius-s);\n border-color: ${({ theme: { theme } }) =>\n theme === \"light\" ? \"var(--colors-border-light-default);\" : \"var(--colors-opacity-default-10);\"}\n\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n ${({ theme: { theme } }) =>\n theme === \"light\" && \"border-color: var(--colors-border-subdued-default-hover);\"}\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n ${({ theme: { theme } }) => theme === \"light\" && \"border-color: var(--colors-border-subdued-default-pressed);\"}\n }\n\n &:focus-visible {\n border-color: var(--colors-border-focus-default);\n border-width: var(--border-width-focus);\n }\n`;\n\nexport const CardButton = ({\n onClick,\n title,\n iconRight,\n variant = \"default\",\n}: {\n onClick: () => void;\n title: string;\n iconRight?: React.JSX.Element;\n variant?: \"default\" | \"dashed\";\n}) => {\n return (\n <Button onClick={onClick} style={{ borderStyle: variant === \"default\" ? \"solid\" : \"dashed\" }}>\n {title} {iconRight}\n </Button>\n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport CheckAloneMedium from \"@ledgerhq/icons-ui/reactLegacy/CheckAloneMedium\";\nimport { renderToStaticMarkup } from \"react-dom/server\";\nimport { withTokens } from \"../../libs\";\n\nconst Icon = () =>\n React.cloneElement(CheckAloneMedium({ size: 13, color: \"currentColor\" }), {\n // the xmlns attribute is required to properly display the checkbox\n xmlns: \"http://www.w3.org/2000/svg\",\n });\nconst CheckMarkIcon = encodeURIComponent(renderToStaticMarkup(<Icon />));\n\nconst Input = styled.input<{ size?: number }>`\n background-color: transparent;\n\n border-radius: ${p => `${p.theme.radii[1]}px`};\n position: relative;\n\n min-width: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n height: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n appearance: none;\n border: 1px solid ${props => props.theme.colors.opacityDefault.c30};\n box-shadow: none;\n\n &:checked {\n background-color: currentColor;\n border-color: currentColor;\n }\n\n &:checked::after {\n content: \" \";\n width: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n height: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n display: inline-block;\n color: ${props => props.theme.colors.neutral.c00};\n\n background-image: url(\"data:image/svg+xml,${CheckMarkIcon}\");\n background-position: center;\n background-repeat: no-repeat;\n\n /* Trick to center the check mark by taking into account the border */\n position: absolute;\n top: -1px;\n left: -1px;\n }\n`;\n\nconst Container = styled.div`\n ${withTokens(\"colors-background-active\")}\n\n color: var(--colors-background-active);\n\n display: inline-flex;\n column-gap: ${p => p.theme.space[5]}px;\n align-items: center;\n cursor: pointer;\n`;\n\nexport type CheckboxProps = {\n isDisabled?: boolean;\n isChecked: boolean;\n name: string;\n onChange: (value: boolean) => void;\n size?: number;\n};\n\nexport const Checkbox = ({\n isDisabled = false,\n isChecked,\n name,\n onChange,\n size,\n}: CheckboxProps): React.JSX.Element => (\n <Container data-disabled={isDisabled}>\n <Input\n type=\"checkbox\"\n name={name}\n id={name}\n checked={isChecked}\n disabled={isDisabled}\n onChange={e => {\n // TODO Checkbox should be an uncontrolled component that exposes the event onChange.\n // (leave stopPropagation to the parent)\n e.stopPropagation();\n onChange(!isChecked);\n }}\n size={size}\n />\n </Container>\n);\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\ntype Props = Readonly<React.ComponentProps<\"input\"> & { icon?: React.ReactNode }>;\n\nconst Wrapper = styled.div`\n ${withTokens(\n \"spacing-s\",\n \"spacing-xxs\",\n \"radius-s\",\n \"colors-surface-transparent-subdued-default\",\n \"colors-content-subdued-default-default\",\n )}\n\n display: flex;\n height: 40px;\n min-width: 328px;\n padding: 0px var(--spacing-s, 16px);\n align-items: center;\n gap: var(--spacing-xxs, 8px);\n\n border-radius: var(--radius-s, 8px);\n background: var(--colors-surface-transparent-subdued-default, rgba(0, 0, 0, 0.03));\n color: var(--colors-content-subdued-default-default);\n overflow: hidden;\n`;\n\nconst StyledInput = styled.input`\n background: none;\n cursor: text;\n border: none;\n width: 100%;\n`;\n\nexport const Input = React.forwardRef<HTMLInputElement, Props>(\n ({ type = \"text\", icon = null, ...props }, ref) => {\n return (\n <Wrapper>\n {icon}\n <StyledInput {...props} type={type} ref={ref} />\n </Wrapper>\n );\n },\n);\nInput.displayName = \"Input\";\n","import React from \"react\";\nimport { Flex, Text } from \"../../../components\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\nconst Wrapper = styled(Flex)`\n ${withTokens(\n \"colors-surface-status-success-default\",\n \"colors-surface-status-success-strong-default\",\n \"colors-surface-status-error-default\",\n \"colors-surface-status-error-strong-default\",\n \"colors-surface-transparent-hover\",\n \"colors-content-default-default\",\n )}\n`;\n\nconst getPercentageDisplay = (percent: number) => {\n if (percent > 0) {\n return {\n backgroundColor: \"var(--colors-surface-status-success-default)\",\n color: \"var(--colors-surface-status-success-strong-default)\",\n text: `+${percent}%`,\n };\n }\n if (percent < 0) {\n return {\n backgroundColor: \"var(--colors-surface-status-error-default)\",\n color: \"var(--colors-surface-status-error-strong-default)\",\n text: `-${Math.abs(percent)}%`,\n };\n }\n return {\n backgroundColor: \"var(--colors-surface-transparent-hover)\",\n color: \"var(--colors-content-default-default)\",\n text: `${percent}%`,\n };\n};\n\nexport const MarketPercentIndicator = ({ percent }: { percent: number }) => {\n const percentageDisplay = getPercentageDisplay(percent);\n\n return (\n <Wrapper\n data-testid=\"market-percent-indicator\"\n flexDirection=\"column\"\n alignItems=\"flex-end\"\n width=\"fit-content\"\n p=\"4px\"\n borderRadius=\"4px\"\n backgroundColor={percentageDisplay.backgroundColor}\n >\n <Text\n data-testid=\"market-percent-indicator-value\"\n color={percentageDisplay.color}\n fontSize=\"12px\"\n >\n {percentageDisplay.text}\n </Text>\n </Wrapper>\n );\n};\n","import React from \"react\";\nimport { Flex, Text } from \"../../../components\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\nconst Wrapper = styled(Flex)`\n ${withTokens(\n \"colors-surface-status-success-strong-default\",\n \"colors-surface-status-error-strong-default\",\n \"colors-content-default-default\",\n )}\n`;\n\nconst getPercentageDisplay = (percent: number) => {\n if (percent > 0) {\n return {\n color: \"var(--colors-surface-status-success-strong-default)\",\n text: `+${percent}%`,\n };\n }\n if (percent < 0) {\n return {\n color: \"var(--colors-surface-status-error-strong-default)\",\n text: `-${Math.abs(percent)}%`,\n };\n }\n return {\n color: \"var(--colors-content-default-default)\",\n text: `${percent}%`,\n };\n};\n\nexport const MarketPriceIndicator = ({ percent, price }: { percent: number; price: string }) => {\n const percentageDisplay = getPercentageDisplay(percent);\n\n return (\n <Wrapper\n data-testid=\"market-price-indicator\"\n flexDirection=\"column\"\n alignItems=\"flex-end\"\n width=\"fit-content\"\n >\n <Text\n data-testid=\"market-price-indicator-value\"\n variant=\"body\"\n fontWeight=\"semiBold\"\n mb=\"4px\"\n >\n {price}\n </Text>\n <Text\n data-testid=\"market-price-indicator-percent\"\n color={percentageDisplay.color}\n fontSize=\"12px\"\n >\n {percentageDisplay.text}\n </Text>\n </Wrapper>\n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\nimport { Text } from \"../../../components\";\nimport { CryptoIcon } from \"@ledgerhq/crypto-icons\";\n\nexport type Network = {\n name: string;\n id: string;\n ticker: string;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n};\n\ntype NetworkItemProps = Network & {\n onClick: () => void;\n};\n\nconst Wrapper = styled.div`\n ${withTokens(\n \"spacing-xxs\",\n \"margin-s\",\n \"radius-s\",\n \"colors-content-default-default\",\n \"colors-content-subdued-default-default\", // used by leftElement child\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n )}\n display: flex;\n padding: var(--spacing-xxs);\n cursor: pointer;\n border-radius: var(--radius-s, 8px);\n align-items: center;\n\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n }\n`;\n\nconst InfoWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: var(--margin-s);\n flex: 1;\n`;\n\nconst LeftElementWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const NetworkItem = ({\n name,\n onClick,\n id,\n ticker,\n leftElement,\n rightElement,\n}: NetworkItemProps) => {\n return (\n <Wrapper onClick={onClick}>\n <CryptoIcon size=\"48px\" ledgerId={id} ticker={ticker} />\n <InfoWrapper>\n <Text\n data-testid={`network-item-name-${name}`}\n variant=\"largeLineHeight\"\n fontWeight=\"semiBold\"\n color=\"var(--colors-content-default-default)\"\n >\n {name}\n </Text>\n <LeftElementWrapper>{leftElement}</LeftElementWrapper>\n </InfoWrapper>\n {rightElement}\n </Wrapper>\n );\n};\n","import React, { useCallback } from \"react\";\nimport { Network, NetworkItem } from \"../NetworkItem/NetworkItem\";\nimport { VirtualList } from \"../VirtualList/VirtualList\";\n\nexport const NetworkList = ({\n networks,\n onClick,\n}: {\n networks: Network[];\n onClick: (networkId: string) => void;\n}) => {\n const renderNetworkItem = useCallback(\n (network: Network) => <NetworkItem {...network} onClick={() => onClick(network.id)} />,\n [onClick],\n );\n\n return <VirtualList items={networks} itemHeight={64} renderItem={renderNetworkItem} />;\n};\n","import React, { ChangeEvent, useEffect, useMemo, useRef } from \"react\";\nimport { Icons } from \"../../../assets\";\nimport { useDebouncedCallback } from \"../../hooks\";\nimport { Input } from \"..\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\nconst Wrapper = styled.div`\n ${withTokens(\"colors-border-active-default\", \"radius-s\")}\n\n &:focus-within {\n box-shadow: inset 0 0 0 2px var(--colors-border-active-default);\n }\n border-radius: var(--radius-s, 8px);\n`;\n\ntype InputProps = React.ComponentProps<\"input\">;\ntype Props = Readonly<\n InputProps & {\n onDebouncedChange?: (current: string, prev: string) => void;\n debounceTime?: number;\n autoFocus?: boolean;\n }\n>;\n\nexport function Search({\n onDebouncedChange,\n debounceTime = 500,\n onChange,\n autoFocus = true,\n ...props\n}: Props) {\n const initialValue = props.value ?? props.defaultValue ?? \"\";\n const prevValue = useRef(String(initialValue));\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (autoFocus && searchInputRef.current) {\n // Delay focus to prevent layout shifts\n setTimeout(() => {\n searchInputRef.current?.focus({ preventScroll: true });\n }, 0);\n }\n }, [autoFocus]);\n\n const handleDebouncedChange = useDebouncedCallback(\n useMemo(() => {\n if (!onDebouncedChange) return;\n return (event: ChangeEvent<HTMLInputElement>) => {\n const current = event.target.value;\n onDebouncedChange(current, prevValue.current);\n prevValue.current = current;\n };\n }, [onDebouncedChange]),\n debounceTime,\n );\n\n const handleChange = useMemo(() => {\n if (!handleDebouncedChange && !onChange) return;\n return (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleDebouncedChange?.(event);\n };\n }, [handleDebouncedChange, onChange]);\n\n return (\n <Wrapper>\n <Input\n {...props}\n ref={searchInputRef}\n icon={<Icons.Search size=\"S\" />}\n onChange={handleChange}\n />\n </Wrapper>\n );\n}\n","import React, { ReactNode } from \"react\";\nimport { Text } from \"../../../components\";\nimport { withTokens } from \"../../libs\";\nimport styled from \"styled-components\";\n\nconst Wrapper = styled.div<{ $spacing: \"sm\" | \"md\" }>`\n ${withTokens(\n \"colors-surface-transparent-subdued-default\",\n \"colors-content-subdued-default-default\",\n \"radius-xs\",\n \"spacing-xxxs\",\n )}\n\n padding: ${({ $spacing }) => ($spacing === \"sm\" ? \"1px\" : \"2px\")} var(--spacing-xxxs);\n border-radius: var(--radius-xs);\n display: inline-flex;\n background-color: var(--colors-surface-transparent-subdued-default);\n flex-shrink: 0;\n`;\n\nexport const Tag = ({\n textTransform = \"none\",\n spacing = \"sm\",\n children,\n}: {\n textTransform?: string;\n spacing?: \"sm\" | \"md\";\n children: ReactNode;\n}) => {\n return (\n <Wrapper data-testid=\"tag\" $spacing={spacing}>\n <Text\n color=\"var(--colors-content-subdued-default-default)\"\n fontSize=\"10px\"\n lineHeight=\"16px\"\n textTransform={textTransform}\n >\n {children}\n </Text>\n </Wrapper>\n );\n};\n","import debounce from \"lodash/debounce\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { Icons } from \"../../../assets\";\nimport { Flex } from \"../../../components\";\nimport { withTokens } from \"../../libs\";\n\nconst DEBOUNCE_MS = 250;\n\nconst COLORS_BORDER_STATUS_ERROR_DEFAULT = \"colors-border-status-error-default\";\nconst EXTRA_FONT_SIZE = \"0.75rem\";\nconst ICON_BUTTONS_SIZE = \"32px\";\nconst LABEL_OFFSET_Y = `calc(-0.5 * ${EXTRA_FONT_SIZE})`;\nconst LABEL_OFFSET_X = \"var(--spacing-s, 16px)\";\nconst LABEL_PADDING = \"5px\";\n\ntype NativeInputProps = Omit<React.ComponentProps<\"input\">, \"value\" | \"defaultValue\">;\n\nexport type TextInputProps = Readonly<\n NativeInputProps & {\n defaultValue?: string;\n label?: string;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n error?: boolean;\n helperText?: string;\n }\n>;\n\nconst ClearButton = styled.button`\n ${withTokens(\"colors-surface-dark-default\")}\n\n all: unset;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: ${ICON_BUTTONS_SIZE};\n width: ${ICON_BUTTONS_SIZE};\n`;\n\nconst Container = styled.div`\n ${withTokens(\"spacing-xxs\")}\n\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xxs, 4px);\n position: relative;\n min-width: 328px;\n`;\n\nconst Label = styled.label<{ isDisabled: boolean; hasError: boolean; isFocused: boolean }>`\n ${withTokens(\n COLORS_BORDER_STATUS_ERROR_DEFAULT,\n \"colors-border-active-default\",\n \"colors-content-disabled\",\n \"colors-content-subdued-default-default\",\n \"spacing-s\",\n )}\n color: ${({ hasError, isDisabled, isFocused }) =>\n isDisabled\n ? \"var(--colors-content-disabled)\"\n : hasError\n ? `var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT});`\n : isFocused\n ? \"var(--colors-border-active-default)\"\n : \"var(--colors-content-subdued-default-default);\"};\n font-size: ${EXTRA_FONT_SIZE};\n padding-inline: ${LABEL_PADDING};\n position: absolute;\n top: ${LABEL_OFFSET_Y};\n left: calc(${LABEL_OFFSET_X} - ${LABEL_PADDING});\n`;\n\nconst Wrapper = styled.div<{\n hasStart: boolean;\n hasEnd: boolean;\n}>`\n ${withTokens(\n \"colors-content-default-default\",\n \"colors-surface-transparent-subdued-default\",\n \"radius-s\",\n \"spacing-s\",\n \"spacing-xxs\",\n )}\n\n align-items: center;\n border-radius: var(--radius-s);\n display: flex;\n gap: var(--spacing-xxs, 8px);\n height: 56px;\n padding: ${({ hasEnd, hasStart }) =>\n `0 ${hasEnd ? \"var(--spacing-xs, 8px)\" : LABEL_OFFSET_X} 0 ${\n hasStart ? \"var(--spacing-xs, 8px)\" : LABEL_OFFSET_X\n }`};\n position: relative;\n transition: height 0.3s linear;\n`;\n\nconst StyledInput = styled.input`\n ${withTokens(\"colors-border-disabled-default\")}\n\n flex: 1;\n background: none;\n border: none;\n cursor: text;\n &[disabled] {\n color: var(--colors-border-disabled-default);\n cursor: not-allowed;\n }\n outline: none;\n`;\n\nconst Fieldset = styled.fieldset<{\n hasError: boolean;\n hasLabel: boolean;\n isDisabled: boolean;\n isFocused: boolean;\n}>`\n ${withTokens(\n COLORS_BORDER_STATUS_ERROR_DEFAULT,\n \"colors-border-active-default\",\n \"colors-content-subdued-default-default\",\n \"colors-content-disabled\",\n \"spacing-s\",\n )}\n border-radius: var(--radius-s);\n border-color: ${({ isDisabled, hasError, isFocused }) =>\n isDisabled\n ? \"var(--colors-content-disabled)\"\n : hasError\n ? `var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT})`\n : isFocused\n ? \"var(--colors-border-active-default)\"\n : \"var(--colors-content-subdued-default-default)\"};\n border-style: solid;\n border-width: 1px;\n bottom: 0;\n font-size: ${EXTRA_FONT_SIZE};\n left: 0;\n overflow: hidden;\n padding: 0 calc(${LABEL_OFFSET_X} - ${LABEL_PADDING});\n pointer-events: none;\n position: absolute;\n right: 0;\n top: ${({ hasLabel }) => (hasLabel ? LABEL_OFFSET_Y : \"0\")};\n`;\n\nconst Legend = styled.legend`\n visibility: hidden;\n padding-inline: ${LABEL_PADDING};\n`;\n\nconst HelperContainer = styled(Flex)`\n ${withTokens(COLORS_BORDER_STATUS_ERROR_DEFAULT)}\n align-items: center;\n`;\n\n// TODO what's the color for disabled helperText?\nconst HelperText = styled.span<{ hasError: boolean; isDisabled: boolean }>`\n ${withTokens(COLORS_BORDER_STATUS_ERROR_DEFAULT, \"colors-border-disabled-default\")}\n ${({ isDisabled, hasError }) =>\n isDisabled\n ? \"var(--colors-border-disabled-default)\"\n : hasError\n ? `color: var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT});`\n : \"\"}\n font-size: ${EXTRA_FONT_SIZE};\n`;\n\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n label,\n name,\n defaultValue = \"\",\n startAdornment = null,\n endAdornment = null,\n error = false,\n helperText,\n style,\n onFocus,\n onBlur,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [isFocused, setIsFocused] = React.useState(false);\n const [value, setValue] = React.useState(defaultValue);\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n React.useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n\n const hideClearDebounced = React.useMemo(\n () => debounce(() => setIsFocused(false), DEBOUNCE_MS),\n [],\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n hideClearDebounced.cancel();\n setIsFocused(true);\n onFocus?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(e);\n hideClearDebounced();\n };\n\n React.useEffect(() => () => hideClearDebounced.cancel(), [hideClearDebounced]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n const clearInput = () => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n setValue(\"\");\n inputRef.current.focus();\n }\n };\n\n const showClear = value.length > 0 && (isFocused || error);\n const hasEnd = showClear || Boolean(endAdornment);\n const hasError = Boolean(error);\n const hasLabel = Boolean(label);\n const isDisabled = Boolean(rest.disabled);\n\n return (\n <Container style={style}>\n {label && (\n <Label isDisabled={isDisabled} hasError={hasError} isFocused={isFocused} htmlFor={name}>\n {label}\n </Label>\n )}\n\n <Wrapper hasStart={Boolean(startAdornment)} hasEnd={hasEnd}>\n {startAdornment}\n\n <StyledInput\n name={name}\n defaultValue={defaultValue}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n {...rest}\n ref={inputRef}\n />\n\n {showClear ? (\n <ClearButton onClick={clearInput} aria-label=\"Clear\">\n <Icons.DeleteCircleFill size=\"S\" color=\"var(--colors-surface-dark-default)\" />\n </ClearButton>\n ) : (\n endAdornment\n )}\n\n <Fieldset\n hasError={hasError}\n hasLabel={hasLabel}\n isDisabled={isDisabled}\n isFocused={isFocused}\n >\n {label ? <Legend>{label}</Legend> : null}\n </Fieldset>\n </Wrapper>\n\n {helperText ? (\n <HelperContainer columnGap={2}>\n {hasError ? (\n <Icons.DeleteCircleFill\n size=\"S\"\n color={`var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT})`}\n />\n ) : null}\n <HelperText isDisabled={isDisabled} hasError={hasError}>\n {helperText}\n </HelperText>\n </HelperContainer>\n ) : null}\n </Container>\n );\n },\n);\n\nTextInput.displayName = \"TextInput\";\n","import React, { useEffect, useRef, useCallback } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { Flex, InfiniteLoader } from \"../../../components\";\n\ninterface VirtualItem {\n key: string | number | bigint;\n index: number;\n start: number;\n end: number;\n size: number;\n}\n\n/**\n * Props for the VirtualList component, which efficiently renders large lists\n * by virtualizing DOM nodes to improve performance.\n */\ntype VirtualListProps<T> = {\n /**\n * Gap between items in the list.\n */\n gap?: number;\n /**\n * Height of each item in the list.\n * This is used to calculate the total height of the list and the position of each item.\n */\n itemHeight: number;\n /**\n * Number of extra items to render outside the visible viewport for smoother scrolling.\n * Defaults to 5.\n */\n overscan?: number;\n /**\n * React component or node to display when the list is loading additional items.\n * If not provided, a default loading spinner will be used.\n */\n LoadingComponent?: React.ReactNode;\n /**\n * Indicates whether new items are currently being loaded.\n */\n isLoading?: boolean;\n /**\n * Indicates if there are more items to load.\n */\n hasNextPage?: boolean;\n /**\n * Number of items to check before the end of the list to trigger loading more items.\n * Defaults to 5.\n */\n threshold?: number;\n /**\n * Callback function to be called when the user scrolls to the end of the visible items.\n * This can be used to load more items when the user reaches the end of the list.\n */\n onVisibleItemsScrollEnd?: () => void;\n /**\n * Function to render each item in the list.\n * Receives a single value from the items array as an argument and should return a React node.\n */\n renderItem: (item: T) => React.ReactNode;\n /**\n * The array of items which will be rendered\n */\n items: T[];\n /**\n * When set to true, the list will scroll to the top\n */\n scrollToTop?: boolean;\n /**\n * React component or node to display at the bottom of the list, after all items.\n */\n bottomComponent?: React.ReactNode;\n};\n\nconst DefaultLoadingComponent = () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"76px\">\n <InfiniteLoader />\n </Flex>\n);\n\nfunction easeInOutCubic(t: number) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nexport const VirtualList = <T,>({\n gap,\n hasNextPage = false,\n isLoading,\n itemHeight,\n items,\n LoadingComponent,\n onVisibleItemsScrollEnd,\n overscan = 5,\n renderItem,\n scrollToTop = false,\n bottomComponent,\n threshold = 5,\n}: VirtualListProps<T>) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const scrollToFn = useCallback(\n (\n offset: number,\n options: { adjustments?: number; behavior?: \"auto\" | \"smooth\" },\n instance: { scrollElement: HTMLElement | null },\n ) => {\n const element = instance.scrollElement;\n if (!element) return;\n\n const duration = options.behavior === \"smooth\" ? 100 : 0;\n\n if (duration === 0) {\n element.scrollTop = offset;\n return;\n }\n\n const startTime = performance.now();\n const startTop = element.scrollTop;\n const distanceToScroll = offset - startTop;\n\n const scrollStep = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easedProgress = easeInOutCubic(progress);\n\n element.scrollTop = startTop + distanceToScroll * easedProgress;\n\n if (progress < 1) {\n requestAnimationFrame(scrollStep);\n }\n };\n\n requestAnimationFrame(scrollStep);\n },\n [],\n );\n\n const rowVirtualizer = useVirtualizer({\n gap,\n count: hasNextPage ? items.length + 1 : items.length,\n overscan,\n getScrollElement: () => parentRef.current,\n estimateSize: () => itemHeight,\n scrollToFn,\n });\n\n useEffect(() => {\n if (scrollToTop && parentRef.current) {\n scrollToFn(0, { behavior: \"smooth\" }, { scrollElement: parentRef.current });\n }\n }, [scrollToTop, scrollToFn]);\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n\n useEffect(() => {\n if (!virtualItems.length) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n\n if (\n lastItem.index >= items.length - 1 - threshold &&\n hasNextPage &&\n !isLoading &&\n onVisibleItemsScrollEnd\n ) {\n onVisibleItemsScrollEnd();\n }\n }, [hasNextPage, onVisibleItemsScrollEnd, items.length, isLoading, threshold, virtualItems]);\n\n const showCustomLoadingComponent = !!LoadingComponent;\n\n const Loading = useCallback(\n () => (showCustomLoadingComponent ? LoadingComponent : <DefaultLoadingComponent />),\n [showCustomLoadingComponent, LoadingComponent],\n );\n\n return (\n <div\n ref={parentRef}\n style={{ width: \"100%\", height: \"100%\", overflow: \"auto\", scrollbarWidth: \"none\" }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n const item = items[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n ref={rowVirtualizer.measureElement}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translateY(${virtualRow.start}px)`,\n height: `${itemHeight}px`,\n width: \"100%\",\n }}\n >\n {item ? renderItem(item) : <Loading />}\n </div>\n );\n })}\n {bottomComponent && (\n <div\n style={{\n position: \"absolute\",\n top: `${rowVirtualizer.getTotalSize()}px`,\n left: 0,\n width: \"100%\",\n }}\n >\n {bottomComponent}\n </div>\n )}\n </div>\n {isLoading && <Loading />}\n </div>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nexport function useDebouncedCallback<T extends unknown[]>(\n callback: ((...args: T) => void) | undefined,\n delay?: number,\n) {\n const [debouncedCallback, setDebouncedCallback] = useState<(...args: T) => void>();\n const timeout = useRef<number>(3000);\n\n useEffect(() => {\n if (!callback) return setDebouncedCallback(undefined);\n\n setDebouncedCallback(() => (...args: T) => {\n clearTimeout(timeout.current);\n timeout.current = setTimeout(() => callback(...args), delay);\n });\n\n return () => clearTimeout(timeout.current);\n }, [callback, delay]);\n\n return debouncedCallback;\n}\n","// From https://github.com/LedgerHQ/ldls/blob/main/libs/design-tokens/src/lib/design-tokens.ts :\n\nexport type SpacingScale = {\n \"spacing-xs\": string;\n \"spacing-s\": string;\n \"spacing-m\": string;\n \"spacing-l\": string;\n \"spacing-xl\": string;\n \"spacing-xxs\": string;\n \"spacing-xxxs\": string;\n \"spacing-none\": string;\n \"marging-xs\": string;\n \"marging-s\": string;\n \"marging-m\": string;\n \"marging-l\": string;\n};\n\nexport const spacing: SpacingScale = {\n \"spacing-xs\": \"8px\",\n \"spacing-s\": \"16px\",\n \"spacing-m\": \"24px\",\n \"spacing-l\": \"32px\",\n \"spacing-xl\": \"40px\",\n \"spacing-xxs\": \"12px\",\n \"spacing-xxxs\": \"4px\",\n \"spacing-none\": \"0px\",\n \"marging-xs\": \"8px\",\n \"marging-s\": \"16px\",\n \"marging-m\": \"24px\",\n \"marging-l\": \"32px\",\n};\n\nexport type ModeColors = {\n \"background-default\": string;\n \"background-constant-black\": string;\n \"background-constant-white\": string;\n \"background-backdrop-default\": string;\n \"background-inverted\": string;\n \"background-drawer-default\": string;\n \"surface-brand-primary-default\": string;\n \"surface-brand-primary-hover\": string;\n \"surface-brand-primary-pressed\": string;\n \"surface-default-default\": string;\n \"surface-default-hover\": string;\n \"surface-default-pressed\": string;\n \"surface-default-inverted-default\": string;\n \"surface-default-inverted-hover\": string;\n \"surface-default-inverted-pressed\": string;\n \"surface-constant-white\": string;\n \"surface-constant-black\": string;\n \"surface-status-error-default\": string;\n \"surface-status-error-strong-default\": string;\n \"surface-status-error-strong-hover\": string;\n \"surface-status-error-strong-pressed\": string;\n \"surface-status-warning-default\": string;\n \"surface-status-warning-strong-default\": string;\n \"surface-status-warning-strong-hover\": string;\n \"surface-status-warning-strong-pressed\": string;\n \"surface-status-success-default\": string;\n \"surface-status-success-strong-default\": string;\n \"surface-status-success-strong-hover\": string;\n \"surface-status-success-strong-pressed\": string;\n \"surface-transparent-default\": string;\n \"surface-transparent-hover\": string;\n \"surface-transparent-pressed\": string;\n \"surface-transparent-inverted-default\": string;\n \"surface-transparent-inverted-hover\": string;\n \"surface-transparent-inverted-pressed\": string;\n \"surface-transparent-subdued-default\": string;\n \"surface-transparent-subdued-inverted-default\": string;\n \"surface-transparent-subdued-inverted-hover\": string;\n \"surface-transparent-subdued-inverted-pressed\": string;\n \"surface-transparent-subdued-inverted-disabled\": string;\n \"surface-transparent-subdued-hover\": string;\n \"surface-transparent-subdued-pressed\": string;\n \"surface-transparent-subdued-disabled\": string;\n \"surface-subdued-default\": string;\n \"surface-subdued-hover\": string;\n \"surface-subdued-pressed\": string;\n \"surface-disabled\": string;\n \"surface-interactive-default\": string;\n \"surface-interactive-hover\": string;\n \"surface-interactive-pressed\": string;\n \"surface-interactive-selected-default\": string;\n \"surface-interactive-selected-hover\": string;\n \"surface-interactive-selected-pressed\": string;\n \"surface-_native-default\": string;\n \"surface-dark-default\": string;\n \"surface-dark-hover\": string;\n \"surface-dark-pressed\": string;\n \"surface-active-default\": string;\n \"surface-active-hover\": string;\n \"surface-active-pressed\": string;\n \"content-default-default\": string;\n \"content-default-inverted-default\": string;\n \"content-constant-white\": string;\n \"content-constant-black\": string;\n \"content-constant-grey\": string;\n \"content-status-error-default\": string;\n \"content-status-error-hover\": string;\n \"content-status-error-pressed\": string;\n \"content-status-warning-default\": string;\n \"content-status-success-color\": string;\n \"content-on-primary-default\": string;\n \"content-on-primary-hover\": string;\n \"content-on-primary-pressed\": string;\n \"content-on-primary-disabled\": string;\n \"content-on-secondary-default\": string;\n \"content-on-secondary-hover\": string;\n \"content-on-secondary-pressed\": string;\n \"content-on-secondary-disabled\": string;\n \"content-disabled\": string;\n \"content-interactive-default-default\": string;\n \"content-interactive-default-hover\": string;\n \"content-interactive-default-pressed\": string;\n \"content-interactive-inverted-default\": string;\n \"content-interactive-inverted-hover\": string;\n \"content-interactive-inverted-pressed\": string;\n \"content-subdued-default-default\": string;\n \"content-subdued-inverted-default\": string;\n \"content-_native-default\": string;\n \"content-light-default-default\": string;\n \"content-light-inverted-default\": string;\n \"border-default-default\": string;\n \"border-default-inverted-default\": string;\n \"border-default-inverted-disabled\": string;\n \"border-constant-white\": string;\n \"border-constant-black\": string;\n \"border-status-error-default\": string;\n \"border-status-error-hover\": string;\n \"border-status-error-pressed\": string;\n \"border-status-warning-default\": string;\n \"border-status-success-default\": string;\n \"border-on-primary-default\": string;\n \"border-on-primary-disabled\": string;\n \"border-on-secondary-default\": string;\n \"border-on-secondary-disabled\": string;\n \"border-disabled-default\": string;\n \"border-disabled-inverted\": string;\n \"border-light-default\": string;\n \"border-subdued-default-default\": string;\n \"border-subdued-default-hover\": string;\n \"border-subdued-inverted-default\": string;\n \"border-interactive-default\": string;\n \"border-interactive-hover\": string;\n \"border-interactive-pressed\": string;\n \"border-focus-default\": string;\n \"border-active-default\": string;\n \"border-active-hover\": string;\n \"border-active-pressed\": string;\n \"crypto-bitcoin-sv\": string;\n \"crypto-bitcoin-gold\": string;\n \"crypto-zcash\": string;\n \"crypto-yieldly\": string;\n \"crypto-uni\": string;\n \"crypto-uniswap\": string;\n \"crypto-bitcoin-cash\": string;\n \"crypto-tezos\": string;\n \"crypto-sol\": string;\n \"crypto-xrp\": string;\n \"crypto-tron\": string;\n \"crypto-sats\": string;\n \"crypto-polkadot\": string;\n \"crypto-bitcoin\": string;\n \"crypto-compound\": string;\n \"crypto-peercoin\": string;\n \"crypto-omg-network\": string;\n \"crypto-near\": string;\n \"crypto-stellar\": string;\n \"crypto-nano\": string;\n \"crypto-nimiq\": string;\n \"crypto-multiverse-x\": string;\n \"crypto-ethereum\": string;\n \"crypto-okb\": string;\n \"crypto-tether-usdt\": string;\n \"crypto-avax\": string;\n \"crypto-bgb\": string;\n \"crypto-usdc\": string;\n \"crypto-monero\": string;\n \"crypto-tkx\": string;\n \"crypto-huobi\": string;\n \"crypto-pivx\": string;\n \"crypto-cardano\": string;\n \"crypto-dydx\": string;\n \"crypto-cro\": string;\n \"crypto-hnt\": string;\n \"crypto-hedera\": string;\n \"crypto-ftm\": string;\n \"crypto-flr\": string;\n \"crypto-bat\": string;\n \"crypto-ethereum-classic\": string;\n \"crypto-bincance\": string;\n \"crypto-ethergem\": string;\n \"crypto-iota\": string;\n \"crypto-chainlink\": string;\n \"crypto-dym\": string;\n \"crypto-eos\": string;\n \"crypto-waves\": string;\n \"crypto-polygon\": string;\n \"crypto-celo\": string;\n \"crypto-dogecoin\": string;\n \"crypto-algorand\": string;\n \"crypto-cosmos\": string;\n \"crypto-digibyte\": string;\n \"crypto-pirl\": string;\n \"crypto-eng\": string;\n \"crypto-decred\": string;\n \"crypto-dash\": string;\n \"crypto-xin\": string;\n \"crypto-tusd\": string;\n \"crypto-litecoin\": string;\n \"crypto-komodo\": string;\n \"crypto-elrond\": string;\n \"crypto-osmo\": string;\n \"crypto-leo\": string;\n \"crypto-bytecoin\": string;\n \"crypto-aion\": string;\n \"crypto-dai\": string;\n \"crypto-neo\": string;\n};\n\nexport const light: ModeColors = {\n \"background-default\": \"#ffffff\",\n \"background-constant-black\": \"#000000\",\n \"background-constant-white\": \"#ffffff\",\n \"background-backdrop-default\": \"#0000004d\",\n \"background-inverted\": \"#000000\",\n \"background-drawer-default\": \"#ffffff\",\n \"surface-brand-primary-default\": \"#d4a0ff\",\n \"surface-brand-primary-hover\": \"#b380dd\",\n \"surface-brand-primary-pressed\": \"#7e4ea5\",\n \"surface-default-default\": \"#ffffff\",\n \"surface-default-hover\": \"#fbfbfb\",\n \"surface-default-pressed\": \"#f4f4f4\",\n \"surface-default-inverted-default\": \"#000000\",\n \"surface-default-inverted-hover\": \"#272727\",\n \"surface-default-inverted-pressed\": \"#4d4d4d\",\n \"surface-constant-white\": \"#ffffff\",\n \"surface-constant-black\": \"#000000\",\n \"surface-status-error-default\": \"#c242441a\",\n \"surface-status-error-strong-default\": \"#c24244\",\n \"surface-status-error-strong-hover\": \"#852e2f\",\n \"surface-status-error-strong-pressed\": \"#702e2f\",\n \"surface-status-warning-default\": \"#d38b201a\",\n \"surface-status-warning-strong-default\": \"#d38b20\",\n \"surface-status-warning-strong-hover\": \"#885a14\",\n \"surface-status-warning-strong-pressed\": \"#63420f\",\n \"surface-status-success-default\": \"#47883a1a\",\n \"surface-status-success-strong-default\": \"#47883a\",\n \"surface-status-success-strong-hover\": \"#33572e\",\n \"surface-status-success-strong-pressed\": \"#2c4828\",\n \"surface-transparent-default\": \"#00000000\",\n \"surface-transparent-hover\": \"#0000001a\",\n \"surface-transparent-pressed\": \"#00000033\",\n \"surface-transparent-inverted-default\": \"#ffffff00\",\n \"surface-transparent-inverted-hover\": \"#ffffff1a\",\n \"surface-transparent-inverted-pressed\": \"#ffffff33\",\n \"surface-transparent-subdued-default\": \"#0000000d\",\n \"surface-transparent-subdued-inverted-default\": \"#ffffff1a\",\n \"surface-transparent-subdued-inverted-hover\": \"#ffffff33\",\n \"surface-transparent-subdued-inverted-pressed\": \"#ffffff4d\",\n \"surface-transparent-subdued-inverted-disabled\": \"#ffffff1a\",\n \"surface-transparent-subdued-hover\": \"#0000001a\",\n \"surface-transparent-subdued-pressed\": \"#00000033\",\n \"surface-transparent-subdued-disabled\": \"#0000000d\",\n \"surface-subdued-default\": \"#f4f4f4\",\n \"surface-subdued-hover\": \"#e8e8e8\",\n \"surface-subdued-pressed\": \"#d5d5d5\",\n \"surface-disabled\": \"#f4f4f4\",\n \"surface-interactive-default\": \"#ffffff\",\n \"surface-interactive-hover\": \"#fbfbfb\",\n \"surface-interactive-pressed\": \"#f4f4f4\",\n \"surface-interactive-selected-default\": \"#4d4d4d\",\n \"surface-interactive-selected-hover\": \"#272727\",\n \"surface-interactive-selected-pressed\": \"#000000\",\n \"surface-_native-default\": \"#f7f7f7\",\n \"surface-dark-default\": \"#c1c1c1\",\n \"surface-dark-hover\": \"#767676\",\n \"surface-dark-pressed\": \"#6a6a6a\",\n \"surface-active-default\": \"#d4a0ff\",\n \"surface-active-hover\": \"#b380dd\",\n \"surface-active-pressed\": \"#7e4ea5\",\n \"content-default-default\": \"#000000\",\n \"content-default-inverted-default\": \"#ffffff\",\n \"content-constant-white\": \"#ffffff\",\n \"content-constant-black\": \"#000000\",\n \"content-constant-grey\": \"#e8e8e8\",\n \"content-status-error-default\": \"#c24244\",\n \"content-status-error-hover\": \"#a43234\",\n \"content-status-error-pressed\": \"#852e2f\",\n \"content-status-warning-default\": \"#ae731a\",\n \"content-status-success-color\": \"#47883a\",\n \"content-on-primary-default\": \"#000000\",\n \"content-on-primary-hover\": \"#ffffffcc\",\n \"content-on-primary-pressed\": \"#ffffffb3\",\n \"content-on-primary-disabled\": \"#ffffff99\",\n \"content-on-secondary-default\": \"#ffffff\",\n \"content-on-secondary-hover\": \"#ffffff\",\n \"content-on-secondary-pressed\": \"#ffffff\",\n \"content-on-secondary-disabled\": \"#ffffff\",\n \"content-disabled\": \"#c1c1c1\",\n \"content-interactive-default-default\": \"#000000\",\n \"content-interactive-default-hover\": \"#272727\",\n \"content-interactive-default-pressed\": \"#4d4d4d\",\n \"content-interactive-inverted-default\": \"#ffffff\",\n \"content-interactive-inverted-hover\": \"#fbfbfb\",\n \"content-interactive-inverted-pressed\": \"#f4f4f4\",\n \"content-subdued-default-default\": \"#6a6a6a\",\n \"content-subdued-inverted-default\": \"#d5d5d5\",\n \"content-_native-default\": \"#007aff\",\n \"content-light-default-default\": \"#e8e8e8\",\n \"content-light-inverted-default\": \"#6a6a6a\",\n \"border-default-default\": \"#000000\",\n \"border-default-inverted-default\": \"#ffffff\",\n \"border-default-inverted-disabled\": \"#272727\",\n \"border-constant-white\": \"#ffffff\",\n \"border-constant-black\": \"#000000\",\n \"border-status-error-default\": \"#c24244\",\n \"border-status-error-hover\": \"#a43234\",\n \"border-status-error-pressed\": \"#852e2f\",\n \"border-status-warning-default\": \"#d38b20\",\n \"border-status-success-default\": \"#47883a\",\n \"border-on-primary-default\": \"#ffffff99\",\n \"border-on-primary-disabled\": \"#ffffff99\",\n \"border-on-secondary-default\": \"#ffffff\",\n \"border-on-secondary-disabled\": \"#ffffff\",\n \"border-disabled-default\": \"#e8e8e8\",\n \"border-disabled-inverted\": \"#272727\",\n \"border-light-default\": \"#e8e8e8\",\n \"border-subdued-default-default\": \"#c1c1c1\",\n \"border-subdued-default-hover\": \"#767676\",\n \"border-subdued-inverted-default\": \"#4d4d4d\",\n \"border-interactive-default\": \"#000000\",\n \"border-interactive-hover\": \"#272727\",\n \"border-interactive-pressed\": \"#4d4d4d\",\n \"border-focus-default\": \"#7e4ea5\",\n \"border-active-default\": \"#d4a0ff\",\n \"border-active-hover\": \"#b380dd\",\n \"border-active-pressed\": \"#7e4ea5\",\n \"crypto-bitcoin-sv\": \"#eab300\",\n \"crypto-bitcoin-gold\": \"#152569\",\n \"crypto-zcash\": \"#f4b728\",\n \"crypto-yieldly\": \"#f3b732\",\n \"crypto-uni\": \"#f04086\",\n \"crypto-uniswap\": \"#ff007a\",\n \"crypto-bitcoin-cash\": \"#0ac18e\",\n \"crypto-tezos\": \"#2c7df7\",\n \"crypto-sol\": \"#9945ff\",\n \"crypto-xrp\": \"#333333\",\n \"crypto-tron\": \"#ff060a\",\n \"crypto-sats\": \"#ff8b00\",\n \"crypto-polkadot\": \"#e6007a\",\n \"crypto-bitcoin\": \"#f7931a\",\n \"crypto-compound\": \"#00d395\",\n \"crypto-peercoin\": \"#3cb054\",\n \"crypto-omg-network\": \"#000000\",\n \"crypto-near\": \"#1c1d1f\",\n \"crypto-stellar\": \"#000000\",\n \"crypto-nano\": \"#5d8eb2\",\n \"crypto-nimiq\": \"#f8b425\",\n \"crypto-multiverse-x\": \"#23f7dd\",\n \"crypto-ethereum\": \"#454a75\",\n \"crypto-okb\": \"#2d60e0\",\n \"crypto-tether-usdt\": \"#00a478\",\n \"crypto-avax\": \"#e84142\",\n \"crypto-bgb\": \"#00e0ff\",\n \"crypto-usdc\": \"#f04086\",\n \"crypto-monero\": \"#f26822\",\n \"crypto-tkx\": \"#fd6a1f\",\n \"crypto-huobi\": \"#357ce1\",\n \"crypto-pivx\": \"#5c4c7c\",\n \"crypto-cardano\": \"#0033ad\",\n \"crypto-dydx\": \"#6966ff\",\n \"crypto-cro\": \"#002d74\",\n \"crypto-hnt\": \"#474dff\",\n \"crypto-hedera\": \"#000000\",\n \"crypto-ftm\": \"#1969ff\",\n \"crypto-flr\": \"#e62058\",\n \"crypto-bat\": \"#ff5000\",\n \"crypto-ethereum-classic\": \"#0b8311\",\n \"crypto-bincance\": \"#f5bc00\",\n \"crypto-ethergem\": \"#4a4ab6\",\n \"crypto-iota\": \"#000000\",\n \"crypto-chainlink\": \"#2a5ada\",\n \"crypto-dym\": \"#f1e1d4\",\n \"crypto-eos\": \"#000000\",\n \"crypto-waves\": \"#0055ff\",\n \"crypto-polygon\": \"#8247e5\",\n \"crypto-celo\": \"#fcff52\",\n \"crypto-dogecoin\": \"#c3a634\",\n \"crypto-algorand\": \"#00a478\",\n \"crypto-cosmos\": \"#2e3148\",\n \"crypto-digibyte\": \"#0066cc\",\n \"crypto-pirl\": \"#357ce1\",\n \"crypto-eng\": \"#2f2f2f\",\n \"crypto-decred\": \"#2970ff\",\n \"crypto-dash\": \"#008ce7\",\n \"crypto-xin\": \"#1eb5fa\",\n \"crypto-tusd\": \"#1a5aff\",\n \"crypto-litecoin\": \"#345d9d\",\n \"crypto-komodo\": \"#41ead4\",\n \"crypto-elrond\": \"#000000\",\n \"crypto-osmo\": \"#302dbb\",\n \"crypto-leo\": \"#000000\",\n \"crypto-bytecoin\": \"#f04086\",\n \"crypto-aion\": \"#212529\",\n \"crypto-dai\": \"#f5ac37\",\n \"crypto-neo\": \"#7dd224\",\n};\n\nexport const dark: ModeColors = {\n \"background-default\": \"#000000\",\n \"background-constant-black\": \"#000000\",\n \"background-constant-white\": \"#ffffff\",\n \"background-backdrop-default\": \"#0000004d\",\n \"background-inverted\": \"#ffffff\",\n \"background-drawer-default\": \"#191919\",\n \"surface-brand-primary-default\": \"#d4a0ff\",\n \"surface-brand-primary-hover\": \"#ddb3ff\",\n \"surface-brand-primary-pressed\": \"#e5c6ff\",\n \"surface-default-default\": \"#000000\",\n \"surface-default-hover\": \"#191919\",\n \"surface-default-pressed\": \"#272727\",\n \"surface-default-inverted-default\": \"#ffffff\",\n \"surface-default-inverted-hover\": \"#e1e1e1\",\n \"surface-default-inverted-pressed\": \"#c3c3c3\",\n \"surface-constant-white\": \"#ffffff\",\n \"surface-constant-black\": \"#000000\",\n \"surface-status-error-default\": \"#f872741a\",\n \"surface-status-error-strong-default\": \"#f87274\",\n \"surface-status-error-strong-hover\": \"#fec8c9\",\n \"surface-status-error-strong-pressed\": \"#fee1e2\",\n \"surface-status-warning-default\": \"#ffbd421a\",\n \"surface-status-warning-strong-default\": \"#ffbd42\",\n \"surface-status-warning-strong-hover\": \"#ffe7ac\",\n \"surface-status-warning-strong-pressed\": \"#fff3d5\",\n \"surface-status-success-default\": \"#6ec85c1a\",\n \"surface-status-success-strong-default\": \"#6ec85c\",\n \"surface-status-success-strong-hover\": \"#cbeec4\",\n \"surface-status-success-strong-pressed\": \"#e6f7e1\",\n \"surface-transparent-default\": \"#ffffff00\",\n \"surface-transparent-hover\": \"#ffffff1a\",\n \"surface-transparent-pressed\": \"#ffffff33\",\n \"surface-transparent-inverted-default\": \"#00000000\",\n \"surface-transparent-inverted-hover\": \"#0000001a\",\n \"surface-transparent-inverted-pressed\": \"#00000033\",\n \"surface-transparent-subdued-default\": \"#ffffff1a\",\n \"surface-transparent-subdued-inverted-default\": \"#0000000d\",\n \"surface-transparent-subdued-inverted-hover\": \"#0000001a\",\n \"surface-transparent-subdued-inverted-pressed\": \"#00000033\",\n \"surface-transparent-subdued-inverted-disabled\": \"#0000000d\",\n \"surface-transparent-subdued-hover\": \"#ffffff33\",\n \"surface-transparent-subdued-pressed\": \"#ffffff4d\",\n \"surface-transparent-subdued-disabled\": \"#ffffff1a\",\n \"surface-subdued-default\": \"#272727\",\n \"surface-subdued-hover\": \"#3c3c3c\",\n \"surface-subdued-pressed\": \"#565656\",\n \"surface-disabled\": \"#272727\",\n \"surface-interactive-default\": \"#000000\",\n \"surface-interactive-hover\": \"#191919\",\n \"surface-interactive-pressed\": \"#272727\",\n \"surface-interactive-selected-default\": \"#c3c3c3\",\n \"surface-interactive-selected-hover\": \"#e1e1e1\",\n \"surface-interactive-selected-pressed\": \"#ffffff\",\n \"surface-_native-default\": \"#c3c3c3\",\n \"surface-dark-default\": \"#717070\",\n \"surface-dark-hover\": \"#848484\",\n \"surface-dark-pressed\": \"#9c9c9c\",\n \"surface-active-default\": \"#d4a0ff\",\n \"surface-active-hover\": \"#ddb3ff\",\n \"surface-active-pressed\": \"#e5c6ff\",\n \"content-default-default\": \"#ffffff\",\n \"content-default-inverted-default\": \"#000000\",\n \"content-constant-white\": \"#ffffff\",\n \"content-constant-black\": \"#000000\",\n \"content-constant-grey\": \"#e1e1e1\",\n \"content-status-error-default\": \"#f87274\",\n \"content-status-error-hover\": \"#fca6a7\",\n \"content-status-error-pressed\": \"#fec8c9\",\n \"content-status-warning-default\": \"#ffd373\",\n \"content-status-success-color\": \"#6ec85c\",\n \"content-on-primary-default\": \"#000000\",\n \"content-on-primary-hover\": \"#000000cc\",\n \"content-on-primary-pressed\": \"#000000b3\",\n \"content-on-primary-disabled\": \"#00000099\",\n \"content-on-secondary-default\": \"#ffffff\",\n \"content-on-secondary-hover\": \"#ffffff\",\n \"content-on-secondary-pressed\": \"#ffffff\",\n \"content-on-secondary-disabled\": \"#ffffff\",\n \"content-disabled\": \"#565656\",\n \"content-interactive-default-default\": \"#ffffff\",\n \"content-interactive-default-hover\": \"#e1e1e1\",\n \"content-interactive-default-pressed\": \"#c3c3c3\",\n \"content-interactive-inverted-default\": \"#000000\",\n \"content-interactive-inverted-hover\": \"#191919\",\n \"content-interactive-inverted-pressed\": \"#272727\",\n \"content-subdued-default-default\": \"#9c9c9c\",\n \"content-subdued-inverted-default\": \"#565656\",\n \"content-_native-default\": \"#007aff\",\n \"content-light-default-default\": \"#3c3c3c\",\n \"content-light-inverted-default\": \"#9c9c9c\",\n \"border-default-default\": \"#ffffff\",\n \"border-default-inverted-default\": \"#000000\",\n \"border-default-inverted-disabled\": \"#9c9c9c\",\n \"border-constant-white\": \"#ffffff\",\n \"border-constant-black\": \"#000000\",\n \"border-status-error-default\": \"#f87274\",\n \"border-status-error-hover\": \"#fca6a7\",\n \"border-status-error-pressed\": \"#fec8c9\",\n \"border-status-warning-default\": \"#ffbd42\",\n \"border-status-success-default\": \"#6ec85c\",\n \"border-on-primary-default\": \"#00000099\",\n \"border-on-primary-disabled\": \"#00000099\",\n \"border-on-secondary-default\": \"#ffffff\",\n \"border-on-secondary-disabled\": \"#ffffff\",\n \"border-disabled-default\": \"#191919\",\n \"border-disabled-inverted\": \"#9c9c9c\",\n \"border-light-default\": \"#3c3c3c\",\n \"border-subdued-default-default\": \"#717070\",\n \"border-subdued-default-hover\": \"#848484\",\n \"border-subdued-inverted-default\": \"#c3c3c3\",\n \"border-interactive-default\": \"#ffffff\",\n \"border-interactive-hover\": \"#e1e1e1\",\n \"border-interactive-pressed\": \"#c3c3c3\",\n \"border-focus-default\": \"#f2e2ff\",\n \"border-active-default\": \"#d4a0ff\",\n \"border-active-hover\": \"#ddb3ff\",\n \"border-active-pressed\": \"#e5c6ff\",\n \"crypto-bitcoin-sv\": \"#eab300\",\n \"crypto-bitcoin-gold\": \"#152569\",\n \"crypto-zcash\": \"#f4b728\",\n \"crypto-yieldly\": \"#f3b732\",\n \"crypto-uni\": \"#f04086\",\n \"crypto-uniswap\": \"#ff007a\",\n \"crypto-bitcoin-cash\": \"#0ac18e\",\n \"crypto-tezos\": \"#2c7df7\",\n \"crypto-sol\": \"#9945ff\",\n \"crypto-xrp\": \"#333333\",\n \"crypto-tron\": \"#ff060a\",\n \"crypto-sats\": \"#ff8b00\",\n \"crypto-polkadot\": \"#e6007a\",\n \"crypto-bitcoin\": \"#f7931a\",\n \"crypto-compound\": \"#00d395\",\n \"crypto-peercoin\": \"#3cb054\",\n \"crypto-omg-network\": \"#000000\",\n \"crypto-near\": \"#1c1d1f\",\n \"crypto-stellar\": \"#000000\",\n \"crypto-nano\": \"#5d8eb2\",\n \"crypto-nimiq\": \"#f8b425\",\n \"crypto-multiverse-x\": \"#23f7dd\",\n \"crypto-ethereum\": \"#454a75\",\n \"crypto-okb\": \"#2d60e0\",\n \"crypto-tether-usdt\": \"#00a478\",\n \"crypto-avax\": \"#e84142\",\n \"crypto-bgb\": \"#00e0ff\",\n \"crypto-usdc\": \"#f04086\",\n \"crypto-monero\": \"#f26822\",\n \"crypto-tkx\": \"#fd6a1f\",\n \"crypto-huobi\": \"#357ce1\",\n \"crypto-pivx\": \"#5c4c7c\",\n \"crypto-cardano\": \"#0033ad\",\n \"crypto-dydx\": \"#6966ff\",\n \"crypto-cro\": \"#002d74\",\n \"crypto-hnt\": \"#474dff\",\n \"crypto-hedera\": \"#000000\",\n \"crypto-ftm\": \"#1969ff\",\n \"crypto-flr\": \"#e62058\",\n \"crypto-bat\": \"#ff5000\",\n \"crypto-ethereum-classic\": \"#0b8311\",\n \"crypto-bincance\": \"#f5bc00\",\n \"crypto-ethergem\": \"#4a4ab6\",\n \"crypto-iota\": \"#000000\",\n \"crypto-chainlink\": \"#2a5ada\",\n \"crypto-dym\": \"#f1e1d4\",\n \"crypto-eos\": \"#000000\",\n \"crypto-waves\": \"#0055ff\",\n \"crypto-polygon\": \"#8247e5\",\n \"crypto-celo\": \"#fcff52\",\n \"crypto-dogecoin\": \"#c3a634\",\n \"crypto-algorand\": \"#00a478\",\n \"crypto-cosmos\": \"#2e3148\",\n \"crypto-digibyte\": \"#0066cc\",\n \"crypto-pirl\": \"#357ce1\",\n \"crypto-eng\": \"#2f2f2f\",\n \"crypto-decred\": \"#2970ff\",\n \"crypto-dash\": \"#008ce7\",\n \"crypto-xin\": \"#1eb5fa\",\n \"crypto-tusd\": \"#1a5aff\",\n \"crypto-litecoin\": \"#345d9d\",\n \"crypto-komodo\": \"#41ead4\",\n \"crypto-elrond\": \"#000000\",\n \"crypto-osmo\": \"#302dbb\",\n \"crypto-leo\": \"#000000\",\n \"crypto-bytecoin\": \"#f04086\",\n \"crypto-aion\": \"#212529\",\n \"crypto-dai\": \"#f5ac37\",\n \"crypto-neo\": \"#7dd224\",\n};\n\nexport const tailwindColors = {\n \"background-default\": \"var(--background-default)\",\n \"background-constant-black\": \"var(--background-constant-black)\",\n \"background-constant-white\": \"var(--background-constant-white)\",\n \"background-backdrop-default\": \"var(--background-backdrop-default)\",\n \"background-inverted\": \"var(--background-inverted)\",\n \"background-drawer-default\": \"var(--background-drawer-default)\",\n \"surface-brand-primary-default\": \"var(--surface-brand-primary-default)\",\n \"surface-brand-primary-hover\": \"var(--surface-brand-primary-hover)\",\n \"surface-brand-primary-pressed\": \"var(--surface-brand-primary-pressed)\",\n \"surface-default-default\": \"var(--surface-default-default)\",\n \"surface-default-hover\": \"var(--surface-default-hover)\",\n \"surface-default-pressed\": \"var(--surface-default-pressed)\",\n \"surface-default-inverted-default\": \"var(--surface-default-inverted-default)\",\n \"surface-default-inverted-hover\": \"var(--surface-default-inverted-hover)\",\n \"surface-default-inverted-pressed\": \"var(--surface-default-inverted-pressed)\",\n \"surface-constant-white\": \"var(--surface-constant-white)\",\n \"surface-constant-black\": \"var(--surface-constant-black)\",\n \"surface-status-error-default\": \"var(--surface-status-error-default)\",\n \"surface-status-error-strong-default\": \"var(--surface-status-error-strong-default)\",\n \"surface-status-error-strong-hover\": \"var(--surface-status-error-strong-hover)\",\n \"surface-status-error-strong-pressed\": \"var(--surface-status-error-strong-pressed)\",\n \"surface-status-warning-default\": \"var(--surface-status-warning-default)\",\n \"surface-status-warning-strong-default\": \"var(--surface-status-warning-strong-default)\",\n \"surface-status-warning-strong-hover\": \"var(--surface-status-warning-strong-hover)\",\n \"surface-status-warning-strong-pressed\": \"var(--surface-status-warning-strong-pressed)\",\n \"surface-status-success-default\": \"var(--surface-status-success-default)\",\n \"surface-status-success-strong-default\": \"var(--surface-status-success-strong-default)\",\n \"surface-status-success-strong-hover\": \"var(--surface-status-success-strong-hover)\",\n \"surface-status-success-strong-pressed\": \"var(--surface-status-success-strong-pressed)\",\n \"surface-transparent-default\": \"var(--surface-transparent-default)\",\n \"surface-transparent-hover\": \"var(--surface-transparent-hover)\",\n \"surface-transparent-pressed\": \"var(--surface-transparent-pressed)\",\n \"surface-transparent-inverted-default\": \"var(--surface-transparent-inverted-default)\",\n \"surface-transparent-inverted-hover\": \"var(--surface-transparent-inverted-hover)\",\n \"surface-transparent-inverted-pressed\": \"var(--surface-transparent-inverted-pressed)\",\n \"surface-transparent-subdued-default\": \"var(--surface-transparent-subdued-default)\",\n \"surface-transparent-subdued-inverted-default\":\n \"var(--surface-transparent-subdued-inverted-default)\",\n \"surface-transparent-subdued-inverted-hover\": \"var(--surface-transparent-subdued-inverted-hover)\",\n \"surface-transparent-subdued-inverted-pressed\":\n \"var(--surface-transparent-subdued-inverted-pressed)\",\n \"surface-transparent-subdued-inverted-disabled\":\n \"var(--surface-transparent-subdued-inverted-disabled)\",\n \"surface-transparent-subdued-hover\": \"var(--surface-transparent-subdued-hover)\",\n \"surface-transparent-subdued-pressed\": \"var(--surface-transparent-subdued-pressed)\",\n \"surface-transparent-subdued-disabled\": \"var(--surface-transparent-subdued-disabled)\",\n \"surface-subdued-default\": \"var(--surface-subdued-default)\",\n \"surface-subdued-hover\": \"var(--surface-subdued-hover)\",\n \"surface-subdued-pressed\": \"var(--surface-subdued-pressed)\",\n \"surface-disabled\": \"var(--surface-disabled)\",\n \"surface-interactive-default\": \"var(--surface-interactive-default)\",\n \"surface-interactive-hover\": \"var(--surface-interactive-hover)\",\n \"surface-interactive-pressed\": \"var(--surface-interactive-pressed)\",\n \"surface-interactive-selected-default\": \"var(--surface-interactive-selected-default)\",\n \"surface-interactive-selected-hover\": \"var(--surface-interactive-selected-hover)\",\n \"surface-interactive-selected-pressed\": \"var(--surface-interactive-selected-pressed)\",\n \"surface-_native-default\": \"var(--surface-_native-default)\",\n \"surface-dark-default\": \"var(--surface-dark-default)\",\n \"surface-dark-hover\": \"var(--surface-dark-hover)\",\n \"surface-dark-pressed\": \"var(--surface-dark-pressed)\",\n \"surface-active-default\": \"var(--surface-active-default)\",\n \"surface-active-hover\": \"var(--surface-active-hover)\",\n \"surface-active-pressed\": \"var(--surface-active-pressed)\",\n \"content-default-default\": \"var(--content-default-default)\",\n \"content-default-inverted-default\": \"var(--content-default-inverted-default)\",\n \"content-constant-white\": \"var(--content-constant-white)\",\n \"content-constant-black\": \"var(--content-constant-black)\",\n \"content-constant-grey\": \"var(--content-constant-grey)\",\n \"content-status-error-default\": \"var(--content-status-error-default)\",\n \"content-status-error-hover\": \"var(--content-status-error-hover)\",\n \"content-status-error-pressed\": \"var(--content-status-error-pressed)\",\n \"content-status-warning-default\": \"var(--content-status-warning-default)\",\n \"content-status-success-color\": \"var(--content-status-success-color)\",\n \"content-on-primary-default\": \"var(--content-on-primary-default)\",\n \"content-on-primary-hover\": \"var(--content-on-primary-hover)\",\n \"content-on-primary-pressed\": \"var(--content-on-primary-pressed)\",\n \"content-on-primary-disabled\": \"var(--content-on-primary-disabled)\",\n \"content-on-secondary-default\": \"var(--content-on-secondary-default)\",\n \"content-on-secondary-hover\": \"var(--content-on-secondary-hover)\",\n \"content-on-secondary-pressed\": \"var(--content-on-secondary-pressed)\",\n \"content-on-secondary-disabled\": \"var(--content-on-secondary-disabled)\",\n \"content-disabled\": \"var(--content-disabled)\",\n \"content-interactive-default-default\": \"var(--content-interactive-default-default)\",\n \"content-interactive-default-hover\": \"var(--content-interactive-default-hover)\",\n \"content-interactive-default-pressed\": \"var(--content-interactive-default-pressed)\",\n \"content-interactive-inverted-default\": \"var(--content-interactive-inverted-default)\",\n \"content-interactive-inverted-hover\": \"var(--content-interactive-inverted-hover)\",\n \"content-interactive-inverted-pressed\": \"var(--content-interactive-inverted-pressed)\",\n \"content-subdued-default-default\": \"var(--content-subdued-default-default)\",\n \"content-subdued-inverted-default\": \"var(--content-subdued-inverted-default)\",\n \"content-_native-default\": \"var(--content-_native-default)\",\n \"content-light-default-default\": \"var(--content-light-default-default)\",\n \"content-light-inverted-default\": \"var(--content-light-inverted-default)\",\n \"border-default-default\": \"var(--border-default-default)\",\n \"border-default-inverted-default\": \"var(--border-default-inverted-default)\",\n \"border-default-inverted-disabled\": \"var(--border-default-inverted-disabled)\",\n \"border-constant-white\": \"var(--border-constant-white)\",\n \"border-constant-black\": \"var(--border-constant-black)\",\n \"border-status-error-default\": \"var(--border-status-error-default)\",\n \"border-status-error-hover\": \"var(--border-status-error-hover)\",\n \"border-status-error-pressed\": \"var(--border-status-error-pressed)\",\n \"border-status-warning-default\": \"var(--border-status-warning-default)\",\n \"border-status-success-default\": \"var(--border-status-success-default)\",\n \"border-on-primary-default\": \"var(--border-on-primary-default)\",\n \"border-on-primary-disabled\": \"var(--border-on-primary-disabled)\",\n \"border-on-secondary-default\": \"var(--border-on-secondary-default)\",\n \"border-on-secondary-disabled\": \"var(--border-on-secondary-disabled)\",\n \"border-disabled-default\": \"var(--border-disabled-default)\",\n \"border-disabled-inverted\": \"var(--border-disabled-inverted)\",\n \"border-light-default\": \"var(--border-light-default)\",\n \"border-subdued-default-default\": \"var(--border-subdued-default-default)\",\n \"border-subdued-default-hover\": \"var(--border-subdued-default-hover)\",\n \"border-subdued-inverted-default\": \"var(--border-subdued-inverted-default)\",\n \"border-interactive-default\": \"var(--border-interactive-default)\",\n \"border-interactive-hover\": \"var(--border-interactive-hover)\",\n \"border-interactive-pressed\": \"var(--border-interactive-pressed)\",\n \"border-focus-default\": \"var(--border-focus-default)\",\n \"border-active-default\": \"var(--border-active-default)\",\n \"border-active-hover\": \"var(--border-active-hover)\",\n \"border-active-pressed\": \"var(--border-active-pressed)\",\n \"crypto-bitcoin-sv\": \"var(--crypto-bitcoin-sv)\",\n \"crypto-bitcoin-gold\": \"var(--crypto-bitcoin-gold)\",\n \"crypto-zcash\": \"var(--crypto-zcash)\",\n \"crypto-yieldly\": \"var(--crypto-yieldly)\",\n \"crypto-uni\": \"var(--crypto-uni)\",\n \"crypto-uniswap\": \"var(--crypto-uniswap)\",\n \"crypto-bitcoin-cash\": \"var(--crypto-bitcoin-cash)\",\n \"crypto-tezos\": \"var(--crypto-tezos)\",\n \"crypto-sol\": \"var(--crypto-sol)\",\n \"crypto-xrp\": \"var(--crypto-xrp)\",\n \"crypto-tron\": \"var(--crypto-tron)\",\n \"crypto-sats\": \"var(--crypto-sats)\",\n \"crypto-polkadot\": \"var(--crypto-polkadot)\",\n \"crypto-bitcoin\": \"var(--crypto-bitcoin)\",\n \"crypto-compound\": \"var(--crypto-compound)\",\n \"crypto-peercoin\": \"var(--crypto-peercoin)\",\n \"crypto-omg-network\": \"var(--crypto-omg-network)\",\n \"crypto-near\": \"var(--crypto-near)\",\n \"crypto-stellar\": \"var(--crypto-stellar)\",\n \"crypto-nano\": \"var(--crypto-nano)\",\n \"crypto-nimiq\": \"var(--crypto-nimiq)\",\n \"crypto-multiverse-x\": \"var(--crypto-multiverse-x)\",\n \"crypto-ethereum\": \"var(--crypto-ethereum)\",\n \"crypto-okb\": \"var(--crypto-okb)\",\n \"crypto-tether-usdt\": \"var(--crypto-tether-usdt)\",\n \"crypto-avax\": \"var(--crypto-avax)\",\n \"crypto-bgb\": \"var(--crypto-bgb)\",\n \"crypto-usdc\": \"var(--crypto-usdc)\",\n \"crypto-monero\": \"var(--crypto-monero)\",\n \"crypto-tkx\": \"var(--crypto-tkx)\",\n \"crypto-huobi\": \"var(--crypto-huobi)\",\n \"crypto-pivx\": \"var(--crypto-pivx)\",\n \"crypto-cardano\": \"var(--crypto-cardano)\",\n \"crypto-dydx\": \"var(--crypto-dydx)\",\n \"crypto-cro\": \"var(--crypto-cro)\",\n \"crypto-hnt\": \"var(--crypto-hnt)\",\n \"crypto-hedera\": \"var(--crypto-hedera)\",\n \"crypto-ftm\": \"var(--crypto-ftm)\",\n \"crypto-flr\": \"var(--crypto-flr)\",\n \"crypto-bat\": \"var(--crypto-bat)\",\n \"crypto-ethereum-classic\": \"var(--crypto-ethereum-classic)\",\n \"crypto-bincance\": \"var(--crypto-bincance)\",\n \"crypto-ethergem\": \"var(--crypto-ethergem)\",\n \"crypto-iota\": \"var(--crypto-iota)\",\n \"crypto-chainlink\": \"var(--crypto-chainlink)\",\n \"crypto-dym\": \"var(--crypto-dym)\",\n \"crypto-eos\": \"var(--crypto-eos)\",\n \"crypto-waves\": \"var(--crypto-waves)\",\n \"crypto-polygon\": \"var(--crypto-polygon)\",\n \"crypto-celo\": \"var(--crypto-celo)\",\n \"crypto-dogecoin\": \"var(--crypto-dogecoin)\",\n \"crypto-algorand\": \"var(--crypto-algorand)\",\n \"crypto-cosmos\": \"var(--crypto-cosmos)\",\n \"crypto-digibyte\": \"var(--crypto-digibyte)\",\n \"crypto-pirl\": \"var(--crypto-pirl)\",\n \"crypto-eng\": \"var(--crypto-eng)\",\n \"crypto-decred\": \"var(--crypto-decred)\",\n \"crypto-dash\": \"var(--crypto-dash)\",\n \"crypto-xin\": \"var(--crypto-xin)\",\n \"crypto-tusd\": \"var(--crypto-tusd)\",\n \"crypto-litecoin\": \"var(--crypto-litecoin)\",\n \"crypto-komodo\": \"var(--crypto-komodo)\",\n \"crypto-elrond\": \"var(--crypto-elrond)\",\n \"crypto-osmo\": \"var(--crypto-osmo)\",\n \"crypto-leo\": \"var(--crypto-leo)\",\n \"crypto-bytecoin\": \"var(--crypto-bytecoin)\",\n \"crypto-aion\": \"var(--crypto-aion)\",\n \"crypto-dai\": \"var(--crypto-dai)\",\n \"crypto-neo\": \"var(--crypto-neo)\",\n} as const;\n\nexport const primitiveColors = {\n \"light-constant-400\": \"#d5d5d5\",\n \"light-constant-950\": \"#000000\",\n \"light-constant-050\": \"#ffffff\",\n \"light-green-100\": \"#e6f7e1\",\n \"light-green-200\": \"#cbeec4\",\n \"light-green-300\": \"#a2e095\",\n \"light-green-400\": \"#6ec85c\",\n \"light-green-500\": \"#5ba34d\",\n \"light-green-600\": \"#47883a\",\n \"light-green-700\": \"#3b6c32\",\n \"light-green-800\": \"#33572e\",\n \"light-green-900\": \"#2c4828\",\n \"light-green-950\": \"#142b12\",\n \"light-green-050\": \"#f4fbf2\",\n \"light-green-600---0%\": \"#47883a00\",\n \"light-green-400---0%\": \"#6ec85c00\",\n \"light-green-color\": \"#ffffff\",\n \"light-green-600---10%\": \"#47883a1a\",\n \"light-green-400---10%\": \"#6ec85c1a\",\n \"light-yellow-100\": \"#fff3d5\",\n \"light-yellow-200\": \"#ffe7ac\",\n \"light-yellow-300\": \"#ffd373\",\n \"light-yellow-400\": \"#ffbd42\",\n \"light-yellow-500\": \"#efa22f\",\n \"light-yellow-600\": \"#d38b20\",\n \"light-yellow-700\": \"#ae731a\",\n \"light-yellow-800\": \"#885a14\",\n \"light-yellow-900\": \"#63420f\",\n \"light-yellow-950\": \"#3e2909\",\n \"light-yellow-050\": \"#fff8e6\",\n \"light-yellow-600---0%\": \"#d38b2000\",\n \"light-yellow-600---10%\": \"#d38b201a\",\n \"light-yellow-400---0%\": \"#ffbd4200\",\n \"light-yellow-400---10%\": \"#ffbd421a\",\n \"light-red-100\": \"#fee1e2\",\n \"light-red-200\": \"#fec8c9\",\n \"light-red-300\": \"#fca6a7\",\n \"light-red-400\": \"#f87274\",\n \"light-red-500\": \"#f04f52\",\n \"light-red-600\": \"#c24244\",\n \"light-red-700\": \"#a43234\",\n \"light-red-800\": \"#852e2f\",\n \"light-red-900\": \"#702e2f\",\n \"light-red-950\": \"#3b1212\",\n \"light-red-050\": \"#fef1f1\",\n \"light-red-400---0%\": \"#f8727400\",\n \"light-red-600---0%\": \"#c2424400\",\n \"light-red-600---10%\": \"#c242441a\",\n \"light-red-400---10%\": \"#f872741a\",\n \"light-grey-100\": \"#fbfbfb\",\n \"light-grey-200\": \"#f4f4f4\",\n \"light-grey-300\": \"#e8e8e8\",\n \"light-grey-400\": \"#d5d5d5\",\n \"light-grey-500\": \"#c1c1c1\",\n \"light-grey-600\": \"#767676\",\n \"light-grey-700\": \"#6a6a6a\",\n \"light-grey-800\": \"#4d4d4d\",\n \"light-grey-900\": \"#272727\",\n \"light-grey-950\": \"#000000\",\n \"light-grey-950---30-%\": \"#0000004d\",\n \"light-grey-050\": \"#ffffff\",\n \"light-grey-050---90%\": \"#ffffffe6\",\n \"light-grey-050---80%\": \"#ffffffcc\",\n \"light-grey-050---70%\": \"#ffffffb3\",\n \"light-grey-050---60%\": \"#ffffff99\",\n \"light-grey-050---50%\": \"#ffffff80\",\n \"light-grey-050---40%\": \"#ffffff66\",\n \"light-grey-050--30%\": \"#ffffff4d\",\n \"light-grey-050---20%\": \"#ffffff33\",\n \"light-grey-050---10-%\": \"#ffffff1a\",\n \"light-grey-950---10%\": \"#0000001a\",\n \"light-grey-950---20%\": \"#00000033\",\n \"light-grey-950---40%\": \"#00000066\",\n \"light-grey-950---50%\": \"#00000080\",\n \"light-grey-950---60%\": \"#00000099\",\n \"light-grey-950---70%\": \"#000000b3\",\n \"light-grey-950---80%\": \"#000000cc\",\n \"light-grey-950---90%\": \"#000000e6\",\n \"light-grey-950---0%\": \"#00000000\",\n \"light-grey-050---0%\": \"#ffffff00\",\n \"light-grey-950----30%\": \"#0000004d\",\n \"light-grey-050---30%\": \"#ffffff4d\",\n \"light-grey-050---5%\": \"#ffffff0d\",\n \"light-grey-950---5%\": \"#0000000d\",\n \"light-grey-950---2%\": \"#00000005\",\n \"light-grey-050---2%\": \"#ffffff05\",\n \"light-orange-100\": \"#ffddcc\",\n \"light-orange-200\": \"#ffc2a4\",\n \"light-orange-300\": \"#ffa97f\",\n \"light-orange-400\": \"#ff8c55\",\n \"light-orange-500\": \"#ff702a\",\n \"light-orange-600\": \"#ff5300\",\n \"light-orange-700\": \"#d64400\",\n \"light-orange-800\": \"#b23a00\",\n \"light-orange-900\": \"#9e3300\",\n \"light-orange-950\": \"#662100\",\n \"light-orange-050\": \"#fef0e9\",\n \"light-crypto-colors-algorand\": \"#00a478\",\n \"light-crypto-colors-aion\": \"#212529\",\n \"light-crypto-colors-avax\": \"#e84142\",\n \"light-crypto-colors-bat\": \"#ff5000\",\n \"light-crypto-colors-bgb\": \"#00e0ff\",\n \"light-crypto-colors-bitcoin\": \"#f7931a\",\n \"light-crypto-colors-bitcoin-cash\": \"#0ac18e\",\n \"light-crypto-colors-bitcoin-gold\": \"#152569\",\n \"light-crypto-colors-bitcoin-sv\": \"#eab300\",\n \"light-crypto-colors-bincance\": \"#f5bc00\",\n \"light-crypto-colors-bytecoin\": \"#f04086\",\n \"light-crypto-colors-cardano\": \"#0033ad\",\n \"light-crypto-colors-cosmos\": \"#2e3148\",\n \"light-crypto-colors-compound\": \"#00d395\",\n \"light-crypto-colors-chainlink\": \"#2a5ada\",\n \"light-crypto-colors-dash\": \"#008ce7\",\n \"light-crypto-colors-dai\": \"#f5ac37\",\n \"light-crypto-colors-decred\": \"#2970ff\",\n \"light-crypto-colors-digibyte\": \"#0066cc\",\n \"light-crypto-colors-dogecoin\": \"#c3a634\",\n \"light-crypto-colors-dydx\": \"#6966ff\",\n \"light-crypto-colors-elrond\": \"#000000\",\n \"light-crypto-colors-eos\": \"#000000\",\n \"light-crypto-colors-ethergem\": \"#4a4ab6\",\n \"light-crypto-colors-ethereum\": \"#454a75\",\n \"light-crypto-colors-ethereum-classic\": \"#0b8311\",\n \"light-crypto-colors-huobi\": \"#357ce1\",\n \"light-crypto-colors-hnt\": \"#474dff\",\n \"light-crypto-colors-iota\": \"#000000\",\n \"light-crypto-colors-komodo\": \"#41ead4\",\n \"light-crypto-colors-leo\": \"#000000\",\n \"light-crypto-colors-litecoin\": \"#345d9d\",\n \"light-crypto-colors-monero\": \"#f26822\",\n \"light-crypto-colors-multiverse-x\": \"#23f7dd\",\n \"light-crypto-colors-nano\": \"#5d8eb2\",\n \"light-crypto-colors-near\": \"#1c1d1f\",\n \"light-crypto-colors-neo\": \"#7dd224\",\n \"light-crypto-colors-nimiq\": \"#f8b425\",\n \"light-crypto-colors-osmo\": \"#302dbb\",\n \"light-crypto-colors-okb\": \"#2d60e0\",\n \"light-crypto-colors-peercoin\": \"#3cb054\",\n \"light-crypto-colors-pirl\": \"#357ce1\",\n \"light-crypto-colors-pivx\": \"#5c4c7c\",\n \"light-crypto-colors-polkadot\": \"#e6007a\",\n \"light-crypto-colors-stellar\": \"#000000\",\n \"light-crypto-colors-tether-usdt\": \"#00a478\",\n \"light-crypto-colors-tezos\": \"#2c7df7\",\n \"light-crypto-colors-tkx\": \"#fd6a1f\",\n \"light-crypto-colors-tron\": \"#ff060a\",\n \"light-crypto-colors-tusd\": \"#1a5aff\",\n \"light-crypto-colors-usdc\": \"#f04086\",\n \"light-crypto-colors-uni\": \"#f04086\",\n \"light-crypto-colors-waves\": \"#0055ff\",\n \"light-crypto-colors-xrp\": \"#333333\",\n \"light-crypto-colors-zcash\": \"#f4b728\",\n \"light-crypto-colors-cro\": \"#002d74\",\n \"light-crypto-colors-eng\": \"#2f2f2f\",\n \"light-crypto-colors-hedera\": \"#000000\",\n \"light-crypto-colors-polygon\": \"#8247e5\",\n \"light-crypto-colors-sats\": \"#ff8b00\",\n \"light-crypto-colors-sol\": \"#9945ff\",\n \"light-crypto-colors-uniswap\": \"#ff007a\",\n \"light-crypto-colors-xin\": \"#1eb5fa\",\n \"light-crypto-colors-yieldly\": \"#f3b732\",\n \"light-crypto-colors-omg-network\": \"#000000\",\n \"light-crypto-colors-celo\": \"#fcff52\",\n \"light-crypto-colors-ftm\": \"#1969ff\",\n \"light-crypto-colors-dym\": \"#f1e1d4\",\n \"light-crypto-colors-flr\": \"#e62058\",\n \"light-discover-1inch\": \"#212529\",\n \"light-discover-changelly\": \"#10d078\",\n \"light-discover-compound\": \"#00d395\",\n \"light-discover-deversifi\": \"#6436ff\",\n \"light-discover-lido\": \"#47a1f8\",\n \"light-discover-opensea\": \"#2081e2\",\n \"light-discover-paraswap\": \"#266ef0\",\n \"light-discover-rarible\": \"#feda03\",\n \"light-discover-zerion\": \"#2962ef\",\n \"light-discover-bitrefill\": \"#449bf7\",\n \"light-discover-loopipay-blue\": \"#0050ff\",\n \"light-discover-loopipay-black\": \"#0e0d13\",\n \"light-discover-loopipay-lime\": \"#e1fb61\",\n \"light-discover-simplex\": \"#2ea836\",\n \"light-discover-baanx\": \"#003edd\",\n \"light-discover-mercuryo\": \"#212529\",\n \"light-discover-juno\": \"#4643ee\",\n \"light-discover-sardine\": \"#2d29d7\",\n \"light-purple-100\": \"#f6ecff\",\n \"light-purple-200\": \"#f2e2ff\",\n \"light-purple-300\": \"#eed9ff\",\n \"light-purple-400\": \"#e5c6ff\",\n \"light-purple-500\": \"#ddb3ff\",\n \"light-purple-600\": \"#d4a0ff\",\n \"light-purple-700\": \"#b380dd\",\n \"light-purple-800\": \"#7e4ea5\",\n \"light-purple-900\": \"#6a3794\",\n \"light-purple-950\": \"#3f2058\",\n \"light-purple-050\": \"#fbf5ff\",\n \"dark-constant-400\": \"#c3c3c3\",\n \"dark-constant-950\": \"#000000\",\n \"dark-constant-050\": \"#ffffff\",\n \"dark-green-100\": \"#2c4828\",\n \"dark-green-200\": \"#33572e\",\n \"dark-green-300\": \"#3b6c32\",\n \"dark-green-400\": \"#47883a\",\n \"dark-green-500\": \"#5ba34d\",\n \"dark-green-600\": \"#6ec85c\",\n \"dark-green-700\": \"#a2e095\",\n \"dark-green-800\": \"#cbeec4\",\n \"dark-green-900\": \"#e6f7e1\",\n \"dark-green-950\": \"#f4fbf2\",\n \"dark-green-050\": \"#142b12\",\n \"dark-green-600---0%\": \"#6ec85c00\",\n \"dark-green-600---10%\": \"#6ec85c1a\",\n \"dark-yellow-100\": \"#63420f\",\n \"dark-yellow-200\": \"#885a14\",\n \"dark-yellow-300\": \"#ae731a\",\n \"dark-yellow-400\": \"#d38b20\",\n \"dark-yellow-500\": \"#efa22f\",\n \"dark-yellow-600\": \"#ffbd42\",\n \"dark-yellow-700\": \"#ffd373\",\n \"dark-yellow-800\": \"#ffe7ac\",\n \"dark-yellow-900\": \"#fff3d5\",\n \"dark-yellow-950\": \"#fff8e6\",\n \"dark-yellow-050\": \"#3e2909\",\n \"dark-yellow-600---0%\": \"#ffbd4200\",\n \"dark-yellow-600---10%\": \"#ffbd421a\",\n \"dark-red-100\": \"#702e2f\",\n \"dark-red-200\": \"#852e2f\",\n \"dark-red-300\": \"#a43234\",\n \"dark-red-400\": \"#c24244\",\n \"dark-red-500\": \"#f04f52\",\n \"dark-red-600\": \"#f87274\",\n \"dark-red-700\": \"#fca6a7\",\n \"dark-red-800\": \"#fec8c9\",\n \"dark-red-900\": \"#fee1e2\",\n \"dark-red-1000\": \"#fef1f1\",\n \"dark-red-050\": \"#3b1212\",\n \"dark-red-600---0%\": \"#f8727400\",\n \"dark-red-600---10%\": \"#f872741a\",\n \"dark-grey-100\": \"#191919\",\n \"dark-grey-200\": \"#272727\",\n \"dark-grey-300\": \"#3c3c3c\",\n \"dark-grey-400\": \"#565656\",\n \"dark-grey-500\": \"#717070\",\n \"dark-grey-600\": \"#848484\",\n \"dark-grey-700\": \"#9c9c9c\",\n \"dark-grey-800\": \"#c3c3c3\",\n \"dark-grey-900\": \"#e1e1e1\",\n \"dark-grey-950\": \"#ffffff\",\n \"dark-grey-050---10%\": \"#0000001a\",\n \"dark-grey-050---20%\": \"#00000033\",\n \"dark-grey-050---30%\": \"#0000004d\",\n \"dark-grey-050---40%\": \"#00000066\",\n \"dark-grey-050---50%\": \"#00000080\",\n \"dark-grey-050---60%\": \"#00000099\",\n \"dark-grey-050---70%\": \"#000000b3\",\n \"dark-grey-050---80%\": \"#000000cc\",\n \"dark-grey-050---90%\": \"#000000e6\",\n \"dark-grey-950---10%\": \"#ffffff1a\",\n \"dark-grey-950---20%\": \"#ffffff33\",\n \"dark-grey-950---30%\": \"#ffffff4d\",\n \"dark-grey-950---40%\": \"#ffffff66\",\n \"dark-grey-950---50%\": \"#ffffff80\",\n \"dark-grey-950---60%\": \"#ffffff99\",\n \"dark-grey-950---70%\": \"#ffffffb3\",\n \"dark-grey-950---80%\": \"#ffffffcc\",\n \"dark-grey-950---90%\": \"#ffffffe6\",\n \"dark-grey-050\": \"#000000\",\n \"dark-grey-950---0%\": \"#ffffff00\",\n \"dark-grey-050---0%\": \"#00000000\",\n \"dark-grey-050---5%\": \"#0000000d\",\n \"dark-grey-950---5%\": \"#ffffff0d\",\n \"dark-grey-950---2%\": \"#ffffff05\",\n \"dark-orange-100\": \"#9e3300\",\n \"dark-orange-200\": \"#b23a00\",\n \"dark-orange-300\": \"#d64400\",\n \"dark-orange-400\": \"#ff5300\",\n \"dark-orange-500\": \"#ff702a\",\n \"dark-orange-600\": \"#ff8c55\",\n \"dark-orange-700\": \"#ffa97f\",\n \"dark-orange-800\": \"#ffc2a4\",\n \"dark-orange-900\": \"#ffddcc\",\n \"dark-orange-950\": \"#fef0e9\",\n \"dark-orange-050\": \"#662100\",\n \"dark-crypto-colors-aion\": \"#212529\",\n \"dark-crypto-colors-algorand\": \"#00a478\",\n \"dark-crypto-colors-bytecoin\": \"#f04086\",\n \"dark-crypto-colors-avax\": \"#e84142\",\n \"dark-crypto-colors-bat\": \"#ff5000\",\n \"dark-crypto-colors-bgb\": \"#00e0ff\",\n \"dark-crypto-colors-bitcoin\": \"#f7931a\",\n \"dark-crypto-colors-bitcoin-cash\": \"#0ac18e\",\n \"dark-crypto-colors-bitcoin-gold\": \"#152569\",\n \"dark-crypto-colors-bitcoin-sv\": \"#eab300\",\n \"dark-crypto-colors-bincance\": \"#f5bc00\",\n \"dark-crypto-colors-cardano\": \"#0033ad\",\n \"dark-crypto-colors-cosmos\": \"#2e3148\",\n \"dark-crypto-colors-compound\": \"#00d395\",\n \"dark-crypto-colors-celo\": \"#fcff52\",\n \"dark-crypto-colors-chainlink\": \"#2a5ada\",\n \"dark-crypto-colors-cro\": \"#002d74\",\n \"dark-crypto-colors-dash\": \"#008ce7\",\n \"dark-crypto-colors-dai\": \"#f5ac37\",\n \"dark-crypto-colors-decred\": \"#2970ff\",\n \"dark-crypto-colors-digibyte\": \"#0066cc\",\n \"dark-crypto-colors-dogecoin\": \"#c3a634\",\n \"dark-crypto-colors-dydx\": \"#6966ff\",\n \"dark-crypto-colors-dym\": \"#f1e1d4\",\n \"dark-crypto-colors-elrond\": \"#000000\",\n \"dark-crypto-colors-eng\": \"#2f2f2f\",\n \"dark-crypto-colors-eos\": \"#000000\",\n \"dark-crypto-colors-ethergem\": \"#4a4ab6\",\n \"dark-crypto-colors-ethereum\": \"#454a75\",\n \"dark-crypto-colors-ethereum-classic\": \"#0b8311\",\n \"dark-crypto-colors-flr\": \"#e62058\",\n \"dark-crypto-colors-ftm\": \"#1969ff\",\n \"dark-crypto-colors-hedera\": \"#000000\",\n \"dark-crypto-colors-hnt\": \"#474dff\",\n \"dark-crypto-colors-huobi\": \"#357ce1\",\n \"dark-crypto-colors-iota\": \"#000000\",\n \"dark-crypto-colors-komodo\": \"#41ead4\",\n \"dark-crypto-colors-leo\": \"#000000\",\n \"dark-crypto-colors-litecoin\": \"#345d9d\",\n \"dark-crypto-colors-monero\": \"#f26822\",\n \"dark-crypto-colors-multiverse-x\": \"#23f7dd\",\n \"dark-crypto-colors-nano\": \"#5d8eb2\",\n \"dark-crypto-colors-near\": \"#1c1d1f\",\n \"dark-crypto-colors-neo\": \"#7dd224\",\n \"dark-crypto-colors-nimiq\": \"#f8b425\",\n \"dark-crypto-colors-omg-network\": \"#000000\",\n \"dark-crypto-colors-okb\": \"#2d60e0\",\n \"dark-crypto-colors-osmo\": \"#302dbb\",\n \"dark-crypto-colors-peercoin\": \"#3cb054\",\n \"dark-crypto-colors-pirl\": \"#357ce1\",\n \"dark-crypto-colors-pivx\": \"#5c4c7c\",\n \"dark-crypto-colors-polkadot\": \"#e6007a\",\n \"dark-crypto-colors-polygon\": \"#8247e5\",\n \"dark-crypto-colors-sats\": \"#ff8b00\",\n \"dark-crypto-colors-stellar\": \"#000000\",\n \"dark-crypto-colors-sol\": \"#9945ff\",\n \"dark-crypto-colors-tether-usdt\": \"#00a478\",\n \"dark-crypto-colors-tezos\": \"#2c7df7\",\n \"dark-crypto-colors-tkx\": \"#fd6a1f\",\n \"dark-crypto-colors-tron\": \"#ff060a\",\n \"dark-crypto-colors-uniswap\": \"#ff007a\",\n \"dark-crypto-colors-tusd\": \"#1a5aff\",\n \"dark-crypto-colors-usdc\": \"#f04086\",\n \"dark-crypto-colors-uni\": \"#f04086\",\n \"dark-crypto-colors-waves\": \"#0055ff\",\n \"dark-crypto-colors-xrp\": \"#333333\",\n \"dark-crypto-colors-xin\": \"#1eb5fa\",\n \"dark-crypto-colors-yieldly\": \"#f3b732\",\n \"dark-crypto-colors-zcash\": \"#f4b728\",\n \"dark-discover-1inch\": \"#212529\",\n \"dark-discover-changelly\": \"#10d078\",\n \"dark-discover-loopipay-blue\": \"#0050ff\",\n \"dark-discover-loopipay-black\": \"#0e0d13\",\n \"dark-discover-loopipay-lime-2\": \"#e1fb61\",\n \"dark-discover-simplex\": \"#2ea836\",\n \"dark-discover-baanx\": \"#003edd\",\n \"dark-discover-mercuryo\": \"#212529\",\n \"dark-discover-juno\": \"#4643ee\",\n \"dark-discover-sardine\": \"#2d29d7\",\n \"dark-discover-compound\": \"#00d395\",\n \"dark-discover-deversifi\": \"#6436ff\",\n \"dark-discover-lido\": \"#47a1f8\",\n \"dark-discover-opensea\": \"#2081e2\",\n \"dark-discover-paraswap\": \"#266ef0\",\n \"dark-discover-rarible\": \"#feda03\",\n \"dark-discover-zerion\": \"#2962ef\",\n \"dark-discover-bitrefill\": \"#449bf7\",\n \"dark-purple-100\": \"#6a3794\",\n \"dark-purple-200\": \"#7e4ea5\",\n \"dark-purple-300\": \"#b380dd\",\n \"dark-purple-400\": \"#d4a0ff\",\n \"dark-purple-500\": \"#ddb3ff\",\n \"dark-purple-600\": \"#e5c6ff\",\n \"dark-purple-700\": \"#eed9ff\",\n \"dark-purple-800\": \"#f2e2ff\",\n \"dark-purple-900\": \"#f6ecff\",\n \"dark-purple-950\": \"#fbf5ff\",\n \"dark-purple-050\": \"#3f2058\",\n} as const;\n","import memoize from \"lodash/memoize\";\nimport { css, DefaultTheme } from \"styled-components\";\nimport { dark, light, ModeColors, spacing, SpacingScale } from \"./design-tokens\";\n\n// Add temporarily missing and override incorrect tokens here\nconst overrideOther = {\n \"radius-m\": \"12px\", // missing from tokens\n \"radius-s\": \"8px\", // missing from tokens\n \"radius-xs\": \"4px\", // missing from tokens\n \"border-width-default\": \"1px\", // missing from tokens\n \"border-width-focus\": \"2px\", // missing from tokens\n \"margin-xs\": \"8px\", // redefines marging-xs\n \"margin-s\": \"16px\", // redefines marging-s\n \"margin-m\": \"24px\", // redefines marging-m\n \"margin-l\": \"32px\", // redefines marging-l\n\n \"spacing-xs\": \"12px\", // override from \"spacing-xxs\": \"12px\"\n \"spacing-xxs\": \"8px\", // override from \"spacing-xs\": \"8px\"\n} as const;\n\n// Add temporarily missing and override incorrect colours here\nconst overrideColor = {\n light: {\n \"surface-transparent-hover\": \"#0000000D\", // override from colours\n \"surface-transparent-pressed\": \"#0000001A\", // override from colours\n \"border-subdued-default-hover\": \"#D5D5D5\", // override from colours\n\n \"border-subdued-default-pressed\": \"#C1C1C1\", // missing from colours\n \"background-active\": \"#D4A0FF\",\n },\n dark: {\n \"opacity-default-10\": \"#FFFFFF1A\", // missing from colours\n \"background-active\": \"#D4A0FF\",\n },\n} as const;\n\ntype ColorToken =\n | `colors-${keyof ModeColors}`\n | `colors-${keyof typeof overrideColor.light}`\n | `colors-${keyof typeof overrideColor.dark}`;\ntype OtherToken = keyof (SpacingScale & typeof overrideOther);\n\nexport const withTokens = (...usedTokens: Array<ColorToken | OtherToken>) => {\n const filterTokens = memoize((theme: DefaultTheme[\"theme\"]) => {\n const colors = {\n dark: { ...dark, ...overrideColor.dark },\n light: { ...light, ...overrideColor.light },\n }[theme];\n\n const colorEntries = Object.entries(colors).flatMap(([key, value]) => {\n const color = `colors-${key}` as ColorToken;\n if (!usedTokens.includes(color)) return [];\n return [[`--${color}`, value]];\n });\n const otherEntries = [spacing, overrideOther]\n .flatMap(Object.entries)\n .flatMap(([key, value]) => {\n if (!usedTokens.includes(key as OtherToken)) return [];\n return [[`--${key}`, value]];\n });\n\n return Object.fromEntries([...colorEntries, ...otherEntries]);\n });\n\n return css(({ theme }) => filterTokens(theme.colors.type as DefaultTheme[\"theme\"]));\n};\n","import Color from \"color\";\n\nimport { fontFamilies } from \"./theme\";\n\nexport const rgba = (c: string, a: number): string => Color(c).alpha(a).rgb().toString();\n\nexport const darken = (c: string, a: number): string => Color(c).darken(a).toString();\n\nexport const lighten = (c: string, a: number): string => Color(c).lighten(a).toString();\n\nexport const mix = (c: string, b: string, a: number): string =>\n Color(c).mix(Color(b), a).toString();\n\nexport const ff = (v: string) => {\n const [font, type = \"Regular\"] = v.split(\"|\");\n // @ts-expect-error FIXME\n const { style, weight } = fontFamilies[font][type];\n // @ts-expect-error FIXME\n const fallback: string = fontFamilies[font].fallback ?? \"Arial\";\n\n return {\n fontFamily: `${font}, ${fallback}`,\n fontWeight: weight,\n fontStyle: style,\n };\n};\n\nexport const ensureContrast = (color1: string, color2: string) => {\n const colorL1 = Color(color1).luminosity() + 0.05;\n const colorL2 = Color(color2).luminosity() + 0.05;\n\n const lRatio = colorL1 > colorL2 ? colorL1 / colorL2 : colorL2 / colorL1;\n\n if (lRatio < 1.5) {\n return Color(color1).rotate(180).negate().string();\n }\n return color1;\n};\n","import { ff } from \"../helpers\";\n\nexport default (props: { ff?: string }) => {\n const prop = props.ff;\n\n if (prop == null) {\n return null;\n }\n\n return ff(prop);\n};\n","import { system } from \"styled-system\";\n\nconst gaps = system({\n rowGap: { property: \"rowGap\", scale: \"space\" },\n columnGap: { property: \"columnGap\", scale: \"space\" },\n});\n\nexport default gaps;\n","import { keyframes, css, Font } from \"styled-components\";\nimport { palettes, ColorPalette } from \"@ledgerhq/ui-shared\";\n\nexport type screensBreakpoints = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\n\nexport const breakpoints = {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n xxl: \"1536px\",\n} as Record<screensBreakpoints, string>;\n\nexport const space = [\n /* space indexes:\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 */\n 0, 2, 4, 8, 10, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76,\n];\n\nexport type TextVariants =\n | \"h1\"\n | \"h1Inter\"\n | \"h2\"\n | \"h2Inter\"\n | \"h3\"\n | \"h3Inter\"\n | \"h4\"\n | \"h4Inter\"\n | \"h5\"\n | \"h5Inter\"\n | \"large\"\n | \"largeLineHeight\"\n | \"body\"\n | \"bodyLineHeight\"\n | \"paragraph\"\n | \"paragraphLineHeight\"\n | \"small\"\n | \"extraSmall\"\n | \"tiny\"\n | \"micro\"\n | \"subtitle\";\n\nexport type ThemeScale<Type, Aliases extends string> = Array<Type> & Record<Aliases, Type>;\n\nexport const fontSizes = [8, 10, 11, 12, 13, 14, 16, 20, 24, 28, 32, 36] as ThemeScale<\n number,\n TextVariants\n>;\n\n[\n fontSizes.micro,\n fontSizes.tiny,\n fontSizes.extraSmall,\n fontSizes.small,\n fontSizes.paragraph,\n fontSizes.body,\n fontSizes.large,\n fontSizes.h5,\n fontSizes.h4,\n fontSizes.h3,\n fontSizes.h2,\n fontSizes.h1,\n] = fontSizes;\nfontSizes.largeLineHeight = fontSizes.large;\nfontSizes.bodyLineHeight = fontSizes.body;\nfontSizes.paragraphLineHeight = fontSizes.paragraph;\nfontSizes.subtitle = fontSizes.extraSmall;\nfontSizes.h1Inter = fontSizes.h1;\nfontSizes.h2Inter = fontSizes.h2;\nfontSizes.h3Inter = fontSizes.h3;\nfontSizes.h4Inter = fontSizes.h4;\nfontSizes.h5Inter = fontSizes.h5;\n\nconst fontWeights = {\n extraLight: \"100\",\n light: \"300\",\n regular: \"400\",\n medium: \"500\",\n semiBold: \"600\",\n bold: \"700\",\n extraBold: \"800\",\n};\n\nexport const radii = [0, 4, 8, 12, 16, 20];\nexport const shadows = [\"0 4px 8px 0 rgba(0, 0, 0, 0.03)\"];\nexport const zIndexes = [-1, 0, 1, 9, 10, 90, 100, 900, 1000];\n\n// Those fonts are now defined in global.css, this is just a mapping for styled-system\nexport const fontFamilies = {\n Inter: {\n ExtraLight: {\n weight: 100,\n style: \"normal\",\n },\n Light: {\n weight: 300,\n style: \"normal\",\n },\n Regular: {\n weight: 400,\n style: \"normal\",\n },\n Medium: {\n weight: 500,\n style: \"normal\",\n },\n SemiBold: {\n weight: 600,\n style: \"normal\",\n },\n Bold: {\n weight: 700,\n style: \"normal\",\n },\n ExtraBold: {\n weight: 800,\n style: \"normal\",\n },\n },\n Alpha: {\n Medium: {\n weight: 500,\n style: \"normal\",\n },\n },\n};\n\nconst animationDuration = \"0.33s\";\nconst easings = {\n outQuadratic: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n};\n\nconst transition = (\n properties = [\"all\"],\n duration = animationDuration,\n easing = easings.outQuadratic,\n) => css`\n transition-property: ${properties.join(\",\")};\n transition-duration: ${duration};\n transition-timing-function: ${easing};\n`;\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n `;\nconst fadeOut = keyframes`\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n `;\nconst fadeInGrowX = keyframes`\n 0% {\n opacity: 0;\n transform: scaleX(0);\n }\n 100% {\n opacity: 1;\n transform: scaleX(1);\n }\n`;\nconst fadeInUp = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(66%);\n }\n 100% {\n opacity: 1;\n transform: translateY(0%);\n }\n `;\nconst animations = {\n fadeIn: () => css`\n ${fadeIn} ${animationDuration} ${easings.outQuadratic} forwards\n `,\n fadeOut: () => css`\n ${fadeOut} ${animationDuration} ${easings.outQuadratic} forwards\n `,\n fadeInGrowX: () => css`\n ${fadeInGrowX} 0.6s ${easings.outQuadratic} forwards\n `,\n fadeInUp: () => css`\n ${fadeInUp} ${animationDuration} ${easings.outQuadratic} forwards\n `,\n};\nconst overflow = {\n x: css`\n overflow-y: hidden;\n overflow-x: scroll;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n y: css`\n overflow-x: hidden;\n overflow-y: scroll;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n yAuto: css`\n overflow-x: hidden;\n overflow-y: auto;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n xy: css`\n overflow: scroll;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n trackSize: 12,\n};\n\ninterface DefaultTheme {\n theme: \"dark\" | \"light\";\n animations: typeof animations;\n transition: typeof transition;\n overflow: typeof overflow;\n sizes: {\n topBarHeight: number;\n sideBarWidth: number;\n drawer: {\n side: {\n big: {\n width: number;\n };\n small: {\n width: number;\n };\n };\n popin: {\n min: {\n height: number;\n width: number;\n };\n max: {\n height: number;\n width: number;\n };\n };\n };\n };\n radii: number[];\n fontFamilies: Record<string, Record<string, Font>>;\n fontSizes: number[];\n space: number[];\n shadows: string[];\n colors: ColorPalette;\n fontWeights: Record<string, string>;\n breakpoints: Record<screensBreakpoints, string>;\n zIndexes: number[];\n}\n\nconst theme: DefaultTheme = {\n theme: \"light\",\n sizes: {\n drawer: {\n side: {\n big: {\n width: 580,\n },\n small: {\n width: 420,\n },\n },\n popin: {\n min: {\n height: 158,\n width: 462,\n },\n max: {\n height: 522,\n width: 622,\n },\n },\n },\n topBarHeight: 58,\n sideBarWidth: 230,\n },\n radii,\n fontFamilies,\n fontSizes,\n fontWeights,\n space,\n shadows,\n colors: palettes.light,\n animations,\n overflow,\n transition,\n zIndexes,\n breakpoints,\n};\n\nexport default theme;\nexport type Theme = DefaultTheme;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from \"./AccountItem/AccountItem\";\nexport * from \"./AccountList/AccountList\";\nexport * from \"./Address/Address\";\nexport * from \"./AssetItem/AssetItem\";\nexport * from \"./AssetList/AssetList\";\nexport * from \"./CardButton/CardButton\";\nexport * from \"./ApyIndicator/ApyIndicator\";\nexport * from \"./MarketPriceIndicator/MarketPriceIndicator\";\nexport * from \"./MarketPercentIndicator/MarketPercentIndicator\";\nexport * from \"./Input/Input\";\nexport * from \"./NetworkItem/NetworkItem\";\nexport * from \"./NetworkList/NetworkList\";\nexport * from \"./Search/Search\";\nexport * from \"./Tag/Tag\";\nexport * from \"./TextInput/TextInput\";\nexport * from \"./VirtualList/VirtualList\";\n"],"names":["icons","React","iconNames","Array","Object","set","rawKey","key","Set","Icon","name","size","color","weight","maybeIconName","Component","baseStyled","compose","fontSize","fontWeight","textAlign","lineHeight","letterSpacing","system","fontFamily","textVariantStyle","uppercase","value","Text","variant","props","p","css","getFontSource","fontsPath","fontName","fontStyles","FlexBox","styled","keyframes","rotate","Loader","InfiniteLoader","extraProps","gaps","flexbox","space","position","layout","overflow","border","baseStyles","proxyStyled","Proxy","target","thisArg","argumentsList","property","Icons","Flex","withTokens","Address","Checkbox","Tag","ICON_BUTTONS_SIZE","IconButton","Wrapper","ContentContainer","AccountInfoContainer","NameRow","NameDiv","TagWrapper","BalanceContainer","AccountItem","onClick","account","rightElement","showIcon","backgroundColor","balance","fiatValue","protocol","address","ticker","cryptoId","parentId","Boolean","e","useCallback","VirtualList","AccountList","accounts","bottomComponent","renderAccountItem","CryptoIcon","formatAddress","isShortened","formattedAddress","options","prefixLength","suffixLength","separator","threshold","ApyIndicator","type","copyToClipboard","text","navigator","err","console","InfoWrapper","LeftElementWrapper","AssetItem","numberOfNetworks","id","assetId","leftElement","shouldDisplayId","AssetList","assets","onVisibleItemsScrollEnd","scrollToTop","hasNextPage","isDebuggingDuplicates","renderAssetItem","Button","theme","CardButton","title","iconRight","CheckAloneMedium","renderToStaticMarkup","CheckMarkIcon","encodeURIComponent","Input","Container","isDisabled","isChecked","onChange","StyledInput","icon","ref","getPercentageDisplay","percent","Math","MarketPercentIndicator","percentageDisplay","MarketPriceIndicator","price","NetworkItem","NetworkList","networks","renderNetworkItem","network","useEffect","useMemo","useRef","useDebouncedCallback","Search","onDebouncedChange","debounceTime","autoFocus","initialValue","prevValue","String","searchInputRef","setTimeout","handleDebouncedChange","event","current","handleChange","$spacing","textTransform","spacing","children","debounce","DEBOUNCE_MS","COLORS_BORDER_STATUS_ERROR_DEFAULT","EXTRA_FONT_SIZE","LABEL_OFFSET_Y","LABEL_OFFSET_X","LABEL_PADDING","ClearButton","Label","hasError","isFocused","hasEnd","hasStart","Fieldset","hasLabel","Legend","HelperContainer","HelperText","TextInput","label","defaultValue","startAdornment","endAdornment","error","helperText","style","onFocus","onBlur","rest","inputRef","setIsFocused","setValue","hideClearDebounced","handleFocus","handleBlur","clearInput","showClear","useVirtualizer","DefaultLoadingComponent","easeInOutCubic","t","gap","isLoading","itemHeight","items","LoadingComponent","overscan","renderItem","parentRef","scrollToFn","offset","instance","element","duration","startTime","performance","startTop","distanceToScroll","scrollStep","currentTime","elapsed","progress","easedProgress","requestAnimationFrame","rowVirtualizer","virtualItems","lastItem","showCustomLoadingComponent","Loading","virtualRow","item","useState","callback","delay","debouncedCallback","setDebouncedCallback","timeout","undefined","args","clearTimeout","light","dark","tailwindColors","primitiveColors","memoize","overrideOther","overrideColor","usedTokens","filterTokens","colors","colorEntries","otherEntries","Color","fontFamilies","rgba","c","a","darken","lighten","mix","b","ff","v","font","fallback","ensureContrast","color1","color2","colorL1","colorL2","lRatio","prop","palettes","breakpoints","fontSizes","fontWeights","radii","shadows","zIndexes","animationDuration","easings","transition","properties","easing","fadeIn","fadeOut","fadeInGrowX","fadeInUp","animations"],"mappings":";;;;;;;;;;;AAAwD;AAC9B;AASnB,MAAME,YAAYC,MAAM,IAAI,CACjCC,OAAO,IAAI,CAACJ,+CAAKA,EAAE,MAAM,CAAC,CAACK,KAAKC;IAC9B,MAAMC,MAAMD,OAAO,OAAO,CAAC,mBAAmB;IAC9C,IAAI,CAACD,IAAI,GAAG,CAACE,MAAMF,IAAI,GAAG,CAACE;IAC3B,OAAOF;AACT,GAAG,IAAIG,QACP;AAEF,MAAMC,OAAO,CAAC,EACZC,IAAI,EACJC,OAAO,EAAE,EACTC,QAAQ,cAAc,EACtBC,SAAS,QAAQ,EACX;IACN,MAAMC,gBAAgB,GAAGJ,OAAOG,QAAQ;IACxC,IAAIC,iBAAiBd,+CAAKA,EAAE;QAC1B,+DAA+D;QAC/D,MAAMe,YAAYf,+CAAK,CAACc,cAAc;QACtC,qBAAO,+CAACC;YAAU,MAAMJ;YAAM,OAAOC;;IACvC;IACA,OAAO;AACT;AAEA,sDAAeH,IAAIA,EAAC;;;;;;;;;;;;;;;ACjCM;AACiC;AASpC;AACoC;AAEf;AAE5C,MAAMiB,YAAYH,yCAAMA,CAAC;IACvB,WAAW;QACT,UAAU;QACV,WAAWI,CAAAA,QAAUA,QAAQ,cAAc;IAC7C;AACF;AA6BA,MAAMC,OAAOZ,8CAAqB,CAChC,CAAC,EAAEa,UAAU,MAAM,EAAEX,QAAQ,EAAEN,KAAK,EAAE,GAAM;QAC1C,UAAUM,WAAWA,WAAWW;QAChC,OAAOjB,SAAS;IAClB,GACD,CAAC;;eAEa,EAAEkB,CAAAA,QAASA,MAAM,UAAU,IAAI,SAAS;EACrD,EAAE,CAACC,IAAiBN,yCAAgB,CAACM,EAAE,OAAO,IAAI,OAAO,CAAC;EAC1D,EAAEd,0CAAOA,CACPS,WACAL,yCAAUA,EACVG,qDAAUA,EACVN,uCAAQA,EACRE,wCAASA,EACTD,yCAAUA,EACVG,4CAAaA,EACbC,yCAAMA,CAAC;IACL,cAAc;AAChB,IACA;EACF,EAAEQ,CAAAA,IAAMA,EAAE,aAAa,GAAG,CAAC,gBAAgB,EAAEA,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAI;AACxE,CAAC;AAED,sDAAeH,IAAIA,EAAC;;;;;;;;;;ACxEoB;AAGxC,MAAMK,gBAAgB,CAACvB,OAAiB,CAACoB;QACvC,MAAMI,YAAYJ,MAAM,SAAS,IAAI;QACrC,MAAMK,WAAYL,MAAM,YAAY,IAAIA,MAAM,YAAY,CAACpB,SAAU,GAAGA,KAAK,MAAM,CAAC;QACpF,OAAO,CAAC,KAAK,EAAEwB,UAAU,CAAC,EAAEC,SAAS,kBAAkB,CAAC;IAC1D;AAEO,MAAMC,aAAaJ,0CAAG,CAAC;;;SAGrB,EAAEC,cAAc,yBAAyB;;;;;;;SAOzC,EAAEA,cAAc,oBAAoB;;;;;;;SAOpC,EAAEA,cAAc,iBAAiB;;;;;;;SAOjC,EAAEA,cAAc,gBAAgB;;;;;;;SAOhC,EAAEA,cAAc,kBAAkB;;;;;;;SAOlC,EAAEA,cAAc,mBAAmB;;;;;;;SAOnC,EAAEA,cAAc,sBAAsB;;;;AAI/C,CAAC,CAAC;AAEK,MAAMR,mBAQT;IACF,IAAI;QACF,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,SAAS;QACP,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,IAAI;QACF,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,SAAS;QACP,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,IAAI;QACF,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,SAAS;QACP,YAAY;QACZ,YAAY;IACd;IACA,IAAI;QACF,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,SAAS;QACP,YAAY;QACZ,YAAY;IACd;IACA,IAAI;QACF,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;IACA,SAAS;QACP,YAAY;QACZ,YAAY;IACd;IACA,OAAO;QACL,YAAY;IACd;IACA,iBAAiB;QACf,YAAY;QACZ,YAAY;IACd;IACA,MAAM;QACJ,YAAY;IACd;IACA,gBAAgB;QACd,YAAY;QACZ,YAAY;IACd;IACA,WAAW;QACT,YAAY;IACd;IACA,qBAAqB;QACnB,YAAY;QACZ,YAAY;IACd;IACA,OAAO;QACL,YAAY;IACd;IACA,YAAY;QACV,YAAY;IACd;IACA,MAAM;QACJ,YAAY;IACd;IACA,OAAO;QACL,YAAY;IACd;IACA,UAAU;QACR,YAAY;QACZ,YAAY;QACZ,kBAAkB;IACpB;AACF,EAAE;;;;;;;;;AC3JyD;AAE3D,MAAMY,UAAUrB,6CAAoB,CAAmC;IAAE,SAAS;AAAO,EAAE,CAAC,CAAC;AAG7F,sDAAeqB,OAAOA,EAAC;;;;;;;;;;;;;;ACLG;AAC4B;AACE;AAExD,MAAMG,SAASD,gDAAS,CAAC;;;;;;;AAOzB,CAAC;AAED,MAAME,SAASH,kDAAqB,CAAC;aACxB,EAAEE,OAAO;EACpB,EAAE7B,mCAAIA,CAAC;EACP,EAAEY,yCAAMA,CAAC;IACP,QAAQ;QACN,UAAU;QACV,OAAO;IACT;AACF,GAAG;AACL,CAAC;AAKc,SAASmB,eAAe,EACrC/B,OAAO,EAAE,EACTC,QAAQ,aAAa,EACrB,GAAG+B,YACG;IACN,qBACE,+CAACF;QACC,MAAM9B;QACN,QAAQC;QACR,SAAQ;QACR,MAAK;QACL,OAAM;QACL,GAAG+B,UAAU;qBAEd,+CAAC;QACC,IAAG;QACH,eAAc;QACd,mBAAkB;qBAElB,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;sBAC/C,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;uBAEjD,+CAAC;QACC,IAAG;QACH,eAAc;QACd,mBAAkB;qBAElB,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;sBAC/C,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;uBAGjD,+CAAC;QAAK,IAAG;QAAgB,WAAU;qBACjC,+CAAC;QACC,GAAE;QACF,GAAE;QACF,OAAM;QACN,QAAO;QACP,aAAY;QACZ,MAAK;QACL,WAAU;sBAEZ,+CAAC;QACC,GAAE;QACF,GAAE;QACF,OAAM;QACN,QAAO;QACP,aAAY;QACZ,MAAK;QACL,WAAU;uBAGd,+CAAC;QACC,GAAE;QACF,aAAY;QACZ,eAAc;QACd,gBAAe;QACf,MAAK;;AAIb;;;;;;;;;;;;;ACtFyC;AAC0C;AAiB5D;AAqBhB,MAAMQ,aAA6ClC,0CAAOA,CAC/D4B,sCAAOA,EACPC,oCAAKA,EACLC,uCAAQA,EACRnC,oCAAKA,EACLoC,qCAAMA,EACNC,uCAAQA,EACRL,+CAAIA,EACJM,qCAAMA,EACN;AAEF,MAAME,cAAc,IAAIC,MAAMf,8CAAMA,EAAE;IACpC,OAAMgB,MAAqB,EAAEC,OAAO,EAAEC,aAAwC;QAC5E,OAAOlB,4CAAMA,CAACgB,OAAO,KAAK,CAACC,SAASC,eAAeL;IACrD;IACA,KAAIG,MAAM,EAAEG,QAA6B;QACvC,IAAI,OAAOH,MAAM,CAACG,SAAS,KAAK,YAAY;YAC1C,OAAOnB,4CAAMA,CAACgB,MAAM,CAACG,SAAS,CAAC,KAAK,CAACnB,8CAAMA,EAAE;gBAACa;aAAW;QAC3D;QACA,OAAOG,MAAM,CAACG,SAAS;IACzB;AACF;AAEA,sDAAgCL,WAAWA,EAAC;;;;;;;;;;;;;;;;;;;;;AC/DlB;AACa;AACC;AACe;AACf;AACK;AAEG;AACf;AAsCjC,MAAMY,oBAAoB;AAE1B,4EAA4E;AAC5E,MAAMC,aAAa3B,qDAAa,CAAC;EAC/B,EAAEsB,qCAAUA,CAAC,kCAAkC;;;;;;;UAOvC,EAAEI,kBAAkB;SACrB,EAAEA,kBAAkB;AAC7B,CAAC;AAED,MAAME,UAAU5B,kDAA8D,CAAC;EAC7E,EAAEsB,qCAAUA,CACV,gBACA,eACA,cACA,YACA,YACA,YACA,kCACA,oCACA,sCACA,0CACA,8CACA;;;UAGM,EAAE7B,CAAAA,IAAMA,EAAE,WAAW,GAAG,YAAY,UAAW;;;;;;;;;oBASrC,EAAEA,CAAAA,IAAMA,EAAE,eAAe,GAAGA,EAAE,eAAe,GAAG,cAAe;;EAEjF,EAAEA,CAAAA,IACAA,EAAE,WAAW,GACT,CAAC;;;;;;;;;;EAUP,CAAC,GACK,GAAG;AACX,CAAC;AAED,MAAMoC,mBAAmB7B,kDAAU,CAAC;;;;;;;;;AASpC,CAAC;AAED,MAAM8B,uBAAuB9B,kDAAU,CAAC;;;;;;;AAOxC,CAAC;AAED,MAAM+B,UAAU/B,kDAAU,CAAC;;;;;;;AAO3B,CAAC;AAED,MAAMgC,UAAUhC,kDAAU,CAAC;;;;;;;AAO3B,CAAC;AAED,MAAMiC,aAAajC,kDAAU,CAAC;;;;;;;AAO9B,CAAC;AAED,MAAMkC,mBAAmBlC,kDAAU,CAAC;;;;;AAKpC,CAAC;AAEM,MAAMmC,cAAc,CAAC,EAC1BC,OAAO,EACPC,OAAO,EACPC,YAAY,EACZC,WAAW,IAAI,EACfC,eAAe,EACE;IACjB,MAAM,EAAEpE,IAAI,EAAEqE,OAAO,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGV;IAEpF,qBACE,+CAACT;QAAQ,iBAAiBY;QAAiB,aAAaQ,QAAQZ;QAAU,SAASA;qBACjF,+CAACP,sCACC,+CAACC,0CACC,+CAACC,6BACC,+CAACC,6BACC,+CAAC1C,uCAAIA;QACH,eAAa,CAAC,YAAY,EAAElB,MAAM;QAClC,SAAQ;QACR,YAAW;QACX,OAAM;QACN,UAAS;QACT,YAAW;QACX,OAAOA;QACP,OAAO;YACL,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;OAECA,QAGJuE,0BACC,+CAACV,gCACC,+CAACR,6BAAGA;QAAC,eAAc;OAAakB,2BAItC,+CAACpB,yCAAOA;QACN,SAASqB;QACT,UAAUE;QACV,QAAQD;QACR,UAAUE;QACV,UAAUR;QACV;uBAGJ,+CAACL,wBACEQ,2BAAa,+CAACpD,uCAAIA;QAAC,UAAS;OAAQoD,YACpCD,yBACC,+CAACnD,uCAAIA;QAAC,UAAS;QAAO,OAAM;OACzBmD,WAINH,gBAAgBA,aAAa,IAAI,KAAK,4BACrC,+CAACjB,uCAAIA;QAAC,eAAY;QAAyB,cAAW;qBACpD,+CAACG,4CAAQA;QAAE,GAAGc,aAAa,QAAQ;QAAE,MAAM;SAG9CA,gBAAgBA,aAAa,IAAI,KAAK,yBACrC,+CAACjB,uCAAIA;QAAC,eAAY;QAA2B,cAAW;qBACtD,+CAAClD,uCAAIA;QAAC,MAAK;QAAe,MAAM;SAGnCmE,gBAAgBA,aAAa,IAAI,KAAK,wBACrC,+CAACX;QACC,cAAW;QACX,eAAY;QACZ,SAASsB,CAAAA;YACPA,EAAE,eAAe;YACjB,IAAIX,cAAc,SAAS,QAAQ;gBACjCA,aAAa,OAAO;YACtB;QACF;qBAEA,+CAAClB,gCAAa;QAAC,MAAK;QAAI,OAAM;;AAM1C,EAAE;;;;;;;;;;;;ACjPyC;AACuB;AACT;AAElD,MAAMgC,cAAc,CAAC,EAC1BC,QAAQ,EACRjB,OAAO,EACPkB,eAAe,EAKhB;IACC,MAAMC,oBAAoBL,sCAAWA,CACnC,CAACb,wBAAqB,+CAACF,qDAAWA;YAAC,SAAS,IAAMC,QAAQC,QAAQ,EAAE;YAAG,SAASA;YAChF;QAACD;KAAQ;IAGX,qBACE,+CAACe,qDAAWA;QACV,OAAOE;QACP,YAAY;QACZ,iBAAiBC;QACjB,YAAYC;;AAGlB,EAAE;;;;;;;;;;;;;;;;;AC1BwB;AACiB;AACJ;AACC;AACY;AACJ;AAEhD,MAAM3B,UAAU5B,kDAAU,CAAC;EACzB,EAAEsB,qCAAUA,CAAC,gBAAgB,0CAA0C;;;;;AAKzE,CAAC;AAEM,MAAMC,UAAU,CAAC,EACtBqB,OAAO,EACPL,QAAQ,EACRO,QAAQ,EACRD,MAAM,EACNE,QAAQ,EACRW,cAAc,KAAK,EAQpB;IACC,MAAMC,mBAAmBD,cAAcD,iDAAaA,CAACb,WAAWA;IAChE,qBACE,+CAAChB,6BACC,+CAACtC,uCAAIA;QACH,aAAY;QACZ,UAAS;QACT,OAAM;OAELqE,mBAEFpB,0BACC,+CAACiB,kDAAUA;QAAC,UAAUV;QAAU,SAASC;QAAU,QAAQF;QAAQ,MAAK;;AAIhF,EAAE;;;;;;;;AC7CF;;;;;;;;;;CAUC,GACM,MAAMY,gBAAgB,CAC3Bb,SACAgB,UAKI,CAAC,CAAC;IAEN,MAAM,EACJC,eAAe,CAAC,EAChBC,eAAe,CAAC,EAChBC,YAAY,KAAK,EACjBC,YAAYH,eAAeE,UAAU,MAAM,GAAGD,YAAY,EAC3D,GAAGF;IAEJ,IAAI,CAAChB,WAAWA,QAAQ,MAAM,IAAIoB,WAAW;QAC3C,OAAOpB;IACT;IAEA,OAAO,GAAGA,QAAQ,KAAK,CAAC,GAAGiB,gBAAgBE,YAAYnB,QAAQ,KAAK,CAAC,CAACkB,eAAe;AACvF,EAAE;;;;;;;;;;;AChC+B;AACP;AAEnB,MAAMG,eAAe,CAAC,EAAE5E,KAAK,EAAE6E,IAAI,EAAkD;IAC1F,qBAAO,+CAACzC,6BAAGA;QAAC,SAAQ;OAAM,CAAC,EAAE,EAAEpC,MAAM,EAAE,EAAE6E,MAAM;AACjD,EAAE;;;;;;;;;;;;;;;;ACLwB;AACa;AACC;AACG;AACS;AAEpD,MAAMC,kBAAkB,OAAOC;IAC7B,IAAI;QACF,MAAMC,UAAU,SAAS,CAAC,SAAS,CAACD;IACtC,EAAE,OAAOE,KAAK;QACZC,QAAQ,KAAK,CAAC,gCAAgCD;IAChD;AACF;AAiBA,MAAM1C,UAAU5B,kDAAU,CAAC;EACzB,EAAEsB,qCAAUA,CACV,eACA,YACA,YACA,0CACA,kCACA,oCACA,sCACA;;;;;;;;;;;;;;;;AAgBJ,CAAC;AAED,MAAMkD,cAAcxE,kDAAU,CAAC;;;;;;;;AAQ/B,CAAC;AAED,MAAMyE,qBAAqBzE,kDAAU,CAAC;;;;AAItC,CAAC;AAED,MAAMiC,aAAajC,kDAAU,CAAC;EAC5B,EAAEsB,qCAAUA,CACV,8CACA,0CACA,aACA,gBACA;;;;;;;;AAQJ,CAAC;AAEM,MAAMoD,YAAY,CAAC,EACxBtG,IAAI,EACJyE,MAAM,EACN8B,gBAAgB,EAChBC,EAAE,EACFC,OAAO,EACPzC,OAAO,EACP0C,WAAW,EACXxC,YAAY,EACZyC,eAAe,EACA;IACf,qBACE,+CAACnD;QAAQ,SAAS,IAAMQ,QAAQ;gBAAEhE;gBAAMyE;gBAAQ+B;YAAG;qBACjD,+CAACpB,kDAAUA;QAAC,MAAK;QAAO,UAAUoB;QAAI,QAAQ/B;sBAC9C,+CAAC2B,iCACC,+CAAClF,uCAAIA;QACH,eAAa,CAAC,gBAAgB,EAAElB,MAAM;QACtC,UAAS;QACT,SAAQ;QACR,YAAW;QACX,OAAM;QACN,OAAO;YACL,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;OAECA,qBAEH,+CAACqG,wCACC,+CAACnF,uCAAIA;QACH,eAAa,CAAC,kBAAkB,EAAEuD,QAAQ;QAC1C,UAAS;QACT,YAAW;QACX,SAAQ;QACR,YAAW;QACX,OAAM;OAELA,SAEFiC,aACAC,mBAAmBF,wBAClB,+CAAC5C;QACC,SAASgB,CAAAA;YACPA,EAAE,eAAe;YACjBkB,gBAAgBU;QAClB;qBAEA,+CAACvF,uCAAIA;QACH,OAAM;QACN,UAAS;OACT,GAAGuF,QAAQ,EAAE,EAAEF,iBAAiB,UAAU,CAAC,KAE7C,QAGPrC;AAGP,EAAE;;;;;;;;;;;;ACpJyC;AACmB;AACL;AAElD,MAAM0C,YAAY,CAAC,EACxBC,MAAM,EACN7C,OAAO,EACP8C,uBAAuB,EACvBC,WAAW,EACXC,WAAW,EACXC,qBAAqB,EAQtB;IACC,MAAMC,kBAAkBpC,sCAAWA,CACjC,CAAC1D,sBACC,+CAACkF,+CAASA;YAAE,GAAGlF,KAAK;YAAE,iBAAiB6F;YAAuB,SAASjD;YAEzE;QAACA;QAASiD;KAAsB;IAGlC,qBACE,+CAAClC,qDAAWA;QACV,YAAY;QACZ,OAAO8B;QACP,yBAAyBC;QACzB,YAAYI;QACZ,aAAaH;QACb,aAAaC;;AAGnB,EAAE;;;;;;;;;;;;;ACpCwB;AACc;AACD;AAEvC,MAAMG,SAASvF,qDAAa,CAAC;EAC3B,EAAEsB,qCAAUA,CACV,kCACA,oCACA,sCACA,+BACA,6BACA,uCACA,yCACA,+BACA,YACA,wBACA,sBACA,cACA;;;;;;;;;;;;;;;gBAeY,EAAE,CAAC,EAAE,OAAO,EAAEkE,KAAK,EAAE,EAAE,GACnCA,UAAU,UAAU,wCAAwC,oCAAoC;;;;IAIhG,EAAE,CAAC,EAAE,OAAO,EAAEA,KAAK,EAAE,EAAE,GACrBA,UAAU,WAAW,4DAA4D;;;;;IAKnF,EAAE,CAAC,EAAE,OAAO,EAAEA,KAAK,EAAE,EAAE,GAAKA,UAAU,WAAW,8DAA8D;;;;;;;AAOnH,CAAC;AAEM,MAAMC,aAAa,CAAC,EACzBrD,OAAO,EACPsD,KAAK,EACLC,SAAS,EACTpG,UAAU,SAAS,EAMpB;IACC,qBACE,+CAACgG;QAAO,SAASnD;QAAS,OAAO;YAAE,aAAa7C,YAAY,YAAY,UAAU;QAAS;OACxFmG,OAAM,KAAEC;AAGf,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;ACrEwB;AACa;AACwC;AACvB;AAChB;AAExC,MAAMxH,OAAO,kBACXR,qCAAkB,CAACiI,0BAAgBA,CAAC;QAAE,MAAM;QAAI,OAAO;IAAe,IAAI;QACxE,mEAAmE;QACnE,OAAO;IACT;AACF,MAAME,gBAAgBC,mBAAmBF,+CAAoBA,eAAC,uCAAC1H;AAE/D,MAAM6H,QAAQhG,4CAA+B,CAAC;;;iBAG7B,EAAEP,CAAAA,IAAK,GAAGA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;aAGnC,EAAEA,CAAAA,IAAMA,EAAE,IAAI,GAAG,GAAGA,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAGA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;UAC7D,EAAEA,CAAAA,IAAMA,EAAE,IAAI,GAAG,GAAGA,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAGA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;;oBAEhD,EAAED,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC;;;;;;;;;;WAU1D,EAAEC,CAAAA,IAAMA,EAAE,IAAI,GAAG,GAAGA,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAGA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;YACzD,EAAEA,CAAAA,IAAMA,EAAE,IAAI,GAAG,GAAGA,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAGA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;;WAE3D,EAAED,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;;8CAEP,EAAEsG,cAAc;;;;;;;;;AAS9D,CAAC;AAED,MAAMG,YAAYjG,0CAAU,CAAC;EAC3B,EAAEsB,mBAAUA,CAAC,4BAA4B;;;;;cAK7B,EAAE7B,CAAAA,IAAKA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;;;AAGtC,CAAC;AAUM,MAAM+B,WAAW,CAAC,EACvB0E,aAAa,KAAK,EAClBC,SAAS,EACT/H,IAAI,EACJgI,QAAQ,EACR/H,IAAI,EACU,iBACd,uCAAC4H;QAAU,iBAAeC;qBACxB,uCAACF;QACC,MAAK;QACL,MAAM5H;QACN,IAAIA;QACJ,SAAS+H;QACT,UAAUD;QACV,UAAUjD,CAAAA;YACR,qFAAqF;YACrF,wCAAwC;YACxCA,EAAE,eAAe;YACjBmD,SAAS,CAACD;QACZ;QACA,MAAM9H;QAGV;;;;;;;;;;;;;AC1FwB;AACa;AACC;AAIxC,MAAMuD,UAAU5B,kDAAU,CAAC;EACzB,EAAEsB,qCAAUA,CACV,aACA,eACA,YACA,8CACA,0CACA;;;;;;;;;;;;;AAaJ,CAAC;AAED,MAAM+E,cAAcrG,oDAAY,CAAC;;;;;AAKjC,CAAC;AAEM,MAAMgG,sBAAQrI,2CAAgB,CACnC,CAAC,EAAEuG,OAAO,MAAM,EAAEoC,OAAO,IAAI,EAAE,GAAG9G,OAAO,EAAE+G;IACzC,qBACE,+CAAC3E,eACE0E,oBACD,+CAACD;QAAa,GAAG7G,KAAK;QAAE,MAAM0E;QAAM,KAAKqC;;AAG/C,GACA;AACFP,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;AC7CM;AACuB;AACV;AACC;AAExC,MAAMpE,UAAU5B,4CAAMA,CAACqB,2CAAIA,CAAC,CAAC;EAC3B,EAAEC,qCAAUA,CACV,yCACA,gDACA,uCACA,8CACA,oCACA,kCACA;AACJ,CAAC;AAED,MAAMkF,uBAAuB,CAACC;IAC5B,IAAIA,UAAU,GAAG;QACf,OAAO;YACL,iBAAiB;YACjB,OAAO;YACP,MAAM,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC;QACtB;IACF;IACA,IAAIA,UAAU,GAAG;QACf,OAAO;YACL,iBAAiB;YACjB,OAAO;YACP,MAAM,CAAC,CAAC,EAAEC,KAAK,GAAG,CAACD,SAAS,CAAC,CAAC;QAChC;IACF;IACA,OAAO;QACL,iBAAiB;QACjB,OAAO;QACP,MAAM,GAAGA,QAAQ,CAAC,CAAC;IACrB;AACF;AAEO,MAAME,yBAAyB,CAAC,EAAEF,OAAO,EAAuB;IACrE,MAAMG,oBAAoBJ,qBAAqBC;IAE/C,qBACE,+CAAC7E;QACC,eAAY;QACZ,eAAc;QACd,YAAW;QACX,OAAM;QACN,GAAE;QACF,cAAa;QACb,iBAAiBgF,kBAAkB,eAAe;qBAElD,+CAACtH,uCAAIA;QACH,eAAY;QACZ,OAAOsH,kBAAkB,KAAK;QAC9B,UAAS;OAERA,kBAAkB,IAAI;AAI/B,EAAE;;;;;;;;;;;;;;;AC5DwB;AACuB;AACV;AACC;AAExC,MAAMhF,UAAU5B,4CAAMA,CAACqB,2CAAIA,CAAC,CAAC;EAC3B,EAAEC,qCAAUA,CACV,gDACA,8CACA,kCACA;AACJ,CAAC;AAED,MAAMkF,uBAAuB,CAACC;IAC5B,IAAIA,UAAU,GAAG;QACf,OAAO;YACL,OAAO;YACP,MAAM,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC;QACtB;IACF;IACA,IAAIA,UAAU,GAAG;QACf,OAAO;YACL,OAAO;YACP,MAAM,CAAC,CAAC,EAAEC,KAAK,GAAG,CAACD,SAAS,CAAC,CAAC;QAChC;IACF;IACA,OAAO;QACL,OAAO;QACP,MAAM,GAAGA,QAAQ,CAAC,CAAC;IACrB;AACF;AAEO,MAAMI,uBAAuB,CAAC,EAAEJ,OAAO,EAAEK,KAAK,EAAsC;IACzF,MAAMF,oBAAoBJ,qBAAqBC;IAE/C,qBACE,+CAAC7E;QACC,eAAY;QACZ,eAAc;QACd,YAAW;QACX,OAAM;qBAEN,+CAACtC,uCAAIA;QACH,eAAY;QACZ,SAAQ;QACR,YAAW;QACX,IAAG;OAEFwH,sBAEH,+CAACxH,uCAAIA;QACH,eAAY;QACZ,OAAOsH,kBAAkB,KAAK;QAC9B,UAAS;OAERA,kBAAkB,IAAI;AAI/B,EAAE;;;;;;;;;;;;;;;;AC3DwB;AACa;AACC;AACG;AACS;AAcpD,MAAMhF,UAAU5B,kDAAU,CAAC;EACzB,EAAEsB,qCAAUA,CACV,eACA,YACA,YACA,kCACA,0CACA,oCACA,sCACA;;;;;;;;;;;;;;AAcJ,CAAC;AAED,MAAMkD,cAAcxE,kDAAU,CAAC;;;;;;AAM/B,CAAC;AAED,MAAMyE,qBAAqBzE,kDAAU,CAAC;;;;AAItC,CAAC;AAEM,MAAM+G,cAAc,CAAC,EAC1B3I,IAAI,EACJgE,OAAO,EACPwC,EAAE,EACF/B,MAAM,EACNiC,WAAW,EACXxC,YAAY,EACK;IACjB,qBACE,+CAACV;QAAQ,SAASQ;qBAChB,+CAACoB,kDAAUA;QAAC,MAAK;QAAO,UAAUoB;QAAI,QAAQ/B;sBAC9C,+CAAC2B,iCACC,+CAAClF,uCAAIA;QACH,eAAa,CAAC,kBAAkB,EAAElB,MAAM;QACxC,SAAQ;QACR,YAAW;QACX,OAAM;OAELA,qBAEH,+CAACqG,0BAAoBK,eAEtBxC;AAGP,EAAE;;;;;;;;;;;;AClFyC;AACuB;AACT;AAElD,MAAM0E,cAAc,CAAC,EAC1BC,QAAQ,EACR7E,OAAO,EAIR;IACC,MAAM8E,oBAAoBhE,sCAAWA,CACnC,CAACiE,wBAAqB,+CAACJ,qDAAWA;YAAE,GAAGI,OAAO;YAAE,SAAS,IAAM/E,QAAQ+E,QAAQ,EAAE;YACjF;QAAC/E;KAAQ;IAGX,qBAAO,+CAACe,qDAAWA;QAAC,OAAO8D;QAAU,YAAY;QAAI,YAAYC;;AACnE,EAAE;;;;;;;;;;;;;;;;;ACjBqE;AAC/B;AACW;AACxB;AACY;AACC;AAExC,MAAMtF,UAAU5B,kDAAU,CAAC;EACzB,EAAEsB,qCAAUA,CAAC,gCAAgC,YAAY;;;;;;AAM3D,CAAC;AAWM,SAASkG,OAAO,EACrBC,iBAAiB,EACjBC,eAAe,GAAG,EAClBtB,QAAQ,EACRuB,YAAY,IAAI,EAChB,GAAGnI,OACG;IACN,MAAMoI,eAAepI,MAAM,KAAK,IAAIA,MAAM,YAAY,IAAI;IAC1D,MAAMqI,YAAYP,iCAAMA,CAACQ,OAAOF;IAChC,MAAMG,iBAAiBT,iCAAMA,CAAmB;IAEhDF,oCAASA,CAAC;QACR,IAAIO,aAAaI,eAAe,OAAO,EAAE;YACvC,uCAAuC;YACvCC,WAAW;gBACTD,eAAe,OAAO,EAAE,MAAM;oBAAE,eAAe;gBAAK;YACtD,GAAG;QACL;IACF,GAAG;QAACJ;KAAU;IAEd,MAAMM,wBAAwBV,gDAAoBA,CAChDF,kCAAOA,CAAC;QACN,IAAI,CAACI,mBAAmB;QACxB,OAAO,CAACS;YACN,MAAMC,UAAUD,MAAM,MAAM,CAAC,KAAK;YAClCT,kBAAkBU,SAASN,UAAU,OAAO;YAC5CA,UAAU,OAAO,GAAGM;QACtB;IACF,GAAG;QAACV;KAAkB,GACtBC;IAGF,MAAMU,eAAef,kCAAOA,CAAC;QAC3B,IAAI,CAACY,yBAAyB,CAAC7B,UAAU;QACzC,OAAO,CAAC8B;YACN9B,WAAW8B;YACXD,wBAAwBC;QAC1B;IACF,GAAG;QAACD;QAAuB7B;KAAS;IAEpC,qBACE,+CAACxE,6BACC,+CAACoE,wBAAKA;QACH,GAAGxG,KAAK;QACT,KAAKuI;QACL,oBAAM,+CAAC3G,+BAAY;YAAC,MAAK;;QACzB,UAAUgH;;AAIlB;;;;;;;;;;;;;;AC3EyC;AACE;AACH;AACD;AAEvC,MAAMxG,UAAU5B,kDAAqC,CAAC;EACpD,EAAEsB,qCAAUA,CACV,8CACA,0CACA,aACA,gBACA;;WAEO,EAAE,CAAC,EAAE+G,QAAQ,EAAE,GAAMA,aAAa,OAAO,QAAQ,MAAO;;;;;AAKnE,CAAC;AAEM,MAAM5G,MAAM,CAAC,EAClB6G,gBAAgB,MAAM,EACtBC,UAAU,IAAI,EACdC,QAAQ,EAKT;IACC,qBACE,+CAAC5G;QAAQ,eAAY;QAAM,UAAU2G;qBACnC,+CAACjJ,uCAAIA;QACH,OAAM;QACN,UAAS;QACT,YAAW;QACX,eAAegJ;OAEdE;AAIT,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCqC;AACb;AACa;AACC;AACG;AACH;AAExC,MAAME,cAAc;AAEpB,MAAMC,qCAAqC;AAC3C,MAAMC,kBAAkB;AACxB,MAAMlH,oBAAoB;AAC1B,MAAMmH,iBAAiB,CAAC,YAAY,EAAED,gBAAgB,CAAC,CAAC;AACxD,MAAME,iBAAiB;AACvB,MAAMC,gBAAgB;AAetB,MAAMC,cAAchJ,6CAAa,CAAC;EAChC,EAAEsB,mBAAUA,CAAC,+BAA+B;;;;;;;UAOpC,EAAEI,kBAAkB;SACrB,EAAEA,kBAAkB;AAC7B,CAAC;AAED,MAAMuE,YAAYjG,0CAAU,CAAC;EAC3B,EAAEsB,mBAAUA,CAAC,eAAe;;;;;;;AAO9B,CAAC;AAED,MAAM2H,QAAQjJ,4CAA4E,CAAC;EACzF,EAAEsB,mBAAUA,CACVqH,oCACA,gCACA,2BACA,0CACA,aACA;SACK,EAAE,CAAC,EAAEO,QAAQ,EAAEhD,UAAU,EAAEiD,SAAS,EAAE,GAC3CjD,aACI,mCACAgD,WACE,CAAC,MAAM,EAAEP,mCAAmC,EAAE,CAAC,GAC/CQ,YACE,wCACA,iDAAiD;aAChD,EAAEP,gBAAgB;kBACb,EAAEG,cAAc;;OAE3B,EAAEF,eAAe;aACX,EAAEC,eAAe,GAAG,EAAEC,cAAc;AACjD,CAAC;AAED,MAAMnH,UAAU5B,0CAGd,CAAC;EACD,EAAEsB,mBAAUA,CACV,kCACA,8CACA,YACA,aACA,eACA;;;;;;;WAOO,EAAE,CAAC,EAAE8H,MAAM,EAAEC,QAAQ,EAAE,GAC9B,CAAC,EAAE,EAAED,SAAS,2BAA2BN,eAAe,GAAG,EACzDO,WAAW,2BAA2BP,gBACtC,CAAC;;;AAGP,CAAC;AAED,MAAMzC,cAAcrG,4CAAY,CAAC;EAC/B,EAAEsB,mBAAUA,CAAC,kCAAkC;;;;;;;;;;;AAWjD,CAAC;AAED,MAAMgI,WAAWtJ,+CAKf,CAAC;EACD,EAAEsB,mBAAUA,CACVqH,oCACA,gCACA,0CACA,2BACA,aACA;;gBAEY,EAAE,CAAC,EAAEzC,UAAU,EAAEgD,QAAQ,EAAEC,SAAS,EAAE,GAClDjD,aACI,mCACAgD,WACE,CAAC,MAAM,EAAEP,mCAAmC,CAAC,CAAC,GAC9CQ,YACE,wCACA,gDAAgD;;;;aAI/C,EAAEP,gBAAgB;;;kBAGb,EAAEE,eAAe,GAAG,EAAEC,cAAc;;;;OAI/C,EAAE,CAAC,EAAEQ,QAAQ,EAAE,GAAMA,WAAWV,iBAAiB,IAAK;AAC7D,CAAC;AAED,MAAMW,SAASxJ,6CAAa,CAAC;;kBAEX,EAAE+I,cAAc;AAClC,CAAC;AAED,MAAMU,kBAAkBzJ,oCAAMA,CAACqB,mBAAIA,CAAC,CAAC;EACnC,EAAEC,mBAAUA,CAACqH,oCAAoC;;AAEnD,CAAC;AAED,iDAAiD;AACjD,MAAMe,aAAa1J,2CAAuD,CAAC;EACzE,EAAEsB,mBAAUA,CAACqH,oCAAoC,kCAAkC;EACnF,EAAE,CAAC,EAAEzC,UAAU,EAAEgD,QAAQ,EAAE,GACzBhD,aACI,0CACAgD,WACE,CAAC,aAAa,EAAEP,mCAAmC,EAAE,CAAC,GACtD,GAAG;aACA,EAAEC,gBAAgB;AAC/B,CAAC;AAEM,MAAMe,0BAAYhM,mCAAgB,CACvC,CACE,EACEiM,KAAK,EACLxL,IAAI,EACJyL,eAAe,EAAE,EACjBC,iBAAiB,IAAI,EACrBC,eAAe,IAAI,EACnBC,QAAQ,KAAK,EACbC,UAAU,EACVC,KAAK,EACLC,OAAO,EACPC,MAAM,EACNhE,QAAQ,EACR,GAAGiE,MACJ,EACD9D;IAEA,MAAM+D,WAAW3M,+BAAY,CAAmB;IAChD,MAAM,CAACwL,WAAWoB,aAAa,GAAG5M,iCAAc,CAAC;IACjD,MAAM,CAAC0B,OAAOmL,SAAS,GAAG7M,iCAAc,CAACkM;IAEzC,yEAAyE;IACzElM,4CAAyB,CAAC4I,KAAK,IAAM+D,SAAS,OAAO;IAErD,MAAMG,qBAAqB9M,gCAAa,CACtC,IAAM8K,kBAAQA,CAAC,IAAM8B,aAAa,QAAQ7B,cAC1C,EAAE;IAGJ,MAAMgC,cAAc,CAACzH;QACnBwH,mBAAmB,MAAM;QACzBF,aAAa;QACbJ,UAAUlH;IACZ;IAEA,MAAM0H,aAAa,CAAC1H;QAClBmH,SAASnH;QACTwH;IACF;IAEA9M,kCAAe,CAAC,IAAM,IAAM8M,mBAAmB,MAAM,IAAI;QAACA;KAAmB;IAE7E,MAAMrC,eAAe,CAACnF;QACpBuH,SAASvH,EAAE,MAAM,CAAC,KAAK;QACvBmD,WAAWnD;IACb;IAEA,MAAM2H,aAAa;QACjB,IAAIN,SAAS,OAAO,EAAE;YACpBA,SAAS,OAAO,CAAC,KAAK,GAAG;YACzBE,SAAS;YACTF,SAAS,OAAO,CAAC,KAAK;QACxB;IACF;IAEA,MAAMO,YAAYxL,MAAM,MAAM,GAAG,KAAM8J,CAAAA,aAAaa,KAAI;IACxD,MAAMZ,SAASyB,aAAa7H,QAAQ+G;IACpC,MAAMb,WAAWlG,QAAQgH;IACzB,MAAMT,WAAWvG,QAAQ4G;IACzB,MAAM1D,aAAalD,QAAQqH,KAAK,QAAQ;IAExC,qBACE,uCAACpE;QAAU,OAAOiE;OACfN,uBACC,uCAACX;QAAM,YAAY/C;QAAY,UAAUgD;QAAU,WAAWC;QAAW,SAAS/K;OAC/EwL,sBAIL,uCAAChI;QAAQ,UAAUoB,QAAQ8G;QAAiB,QAAQV;OACjDU,8BAED,uCAACzD;QACC,MAAMjI;QACN,cAAcyL;QACd,SAASa;QACT,QAAQC;QACR,UAAUvC;QACT,GAAGiC,IAAI;QACR,KAAKC;QAGNO,0BACC,uCAAC7B;QAAY,SAAS4B;QAAY,cAAW;qBAC3C,uCAACxJ,uBAAsB;QAAC,MAAK;QAAI,OAAM;UAGzC2I,4BAGF,uCAACT;QACC,UAAUJ;QACV,UAAUK;QACV,YAAYrD;QACZ,WAAWiD;OAEVS,sBAAQ,uCAACJ,cAAQI,SAAkB,QAIvCK,2BACC,uCAACR;QAAgB,WAAW;OACzBP,yBACC,uCAAC9H,uBAAsB;QACrB,MAAK;QACL,OAAO,CAAC,MAAM,EAAEuH,mCAAmC,CAAC,CAAC;SAErD,oBACJ,uCAACe;QAAW,YAAYxD;QAAY,UAAUgD;OAC3Ce,eAGH;AAGV,GACA;AAEFN,UAAU,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;ACjSsC;AACL;AACE;AAuE3D,MAAMoB,0BAA0B,kBAC9B,uCAAC1J,eAAIA;QAAC,gBAAe;QAAS,YAAW;QAAS,QAAO;qBACvD,uCAACjB,yBAAcA;AAInB,SAAS4K,eAAeC,CAAS;IAC/B,OAAOA,IAAI,MAAM,IAAIA,IAAIA,IAAIA,IAAI,IAAIvE,KAAK,GAAG,CAAC,CAAC,IAAIuE,IAAI,GAAG,KAAK;AACjE;AAEO,MAAM9H,cAAc,CAAK,EAC9B+H,GAAG,EACH9F,cAAc,KAAK,EACnB+F,SAAS,EACTC,UAAU,EACVC,KAAK,EACLC,gBAAgB,EAChBpG,uBAAuB,EACvBqG,WAAW,CAAC,EACZC,UAAU,EACVrG,cAAc,KAAK,EACnB7B,eAAe,EACfU,YAAY,CAAC,EACO;IACpB,MAAMyH,YAAYnE,0BAAMA,CAAiB;IAEzC,MAAMoE,aAAaxI,+BAAWA,CAC5B,CACEyI,QACA/H,SACAgI;QAEA,MAAMC,UAAUD,SAAS,aAAa;QACtC,IAAI,CAACC,SAAS;QAEd,MAAMC,WAAWlI,QAAQ,QAAQ,KAAK,WAAW,MAAM;QAEvD,IAAIkI,aAAa,GAAG;YAClBD,QAAQ,SAAS,GAAGF;YACpB;QACF;QAEA,MAAMI,YAAYC,YAAY,GAAG;QACjC,MAAMC,WAAWJ,QAAQ,SAAS;QAClC,MAAMK,mBAAmBP,SAASM;QAElC,MAAME,aAAa,CAACC;YAClB,MAAMC,UAAUD,cAAcL;YAC9B,MAAMO,WAAW5F,KAAK,GAAG,CAAC2F,UAAUP,UAAU;YAE9C,MAAMS,gBAAgBvB,eAAesB;YAErCT,QAAQ,SAAS,GAAGI,WAAWC,mBAAmBK;YAElD,IAAID,WAAW,GAAG;gBAChBE,sBAAsBL;YACxB;QACF;QAEAK,sBAAsBL;IACxB,GACA,EAAE;IAGJ,MAAMM,iBAAiB3B,gDAAcA,CAAC;QACpCI;QACA,OAAO9F,cAAciG,MAAM,MAAM,GAAG,IAAIA,MAAM,MAAM;QACpDE;QACA,kBAAkB,IAAME,UAAU,OAAO;QACzC,cAAc,IAAML;QACpBM;IACF;IAEAtE,6BAASA,CAAC;QACR,IAAIjC,eAAesG,UAAU,OAAO,EAAE;YACpCC,WAAW,GAAG;gBAAE,UAAU;YAAS,GAAG;gBAAE,eAAeD,UAAU,OAAO;YAAC;QAC3E;IACF,GAAG;QAACtG;QAAauG;KAAW;IAE5B,MAAMgB,eAAeD,eAAe,eAAe;IAEnDrF,6BAASA,CAAC;QACR,IAAI,CAACsF,aAAa,MAAM,EAAE;QAC1B,MAAMC,WAAWD,YAAY,CAACA,aAAa,MAAM,GAAG,EAAE;QAEtD,IACEC,SAAS,KAAK,IAAItB,MAAM,MAAM,GAAG,IAAIrH,aACrCoB,eACA,CAAC+F,aACDjG,yBACA;YACAA;QACF;IACF,GAAG;QAACE;QAAaF;QAAyBmG,MAAM,MAAM;QAAEF;QAAWnH;QAAW0I;KAAa;IAE3F,MAAME,6BAA6B,CAAC,CAACtB;IAErC,MAAMuB,UAAU3J,+BAAWA,CACzB,IAAO0J,6BAA6BtB,iCAAmB,uCAACP,gCACxD;QAAC6B;QAA4BtB;KAAiB;IAGhD,qBACE,uCAAC;QACC,KAAKG;QACL,OAAO;YAAE,OAAO;YAAQ,QAAQ;YAAQ,UAAU;YAAQ,gBAAgB;QAAO;qBAEjF,uCAAC;QACC,OAAO;YACL,QAAQ,GAAGgB,eAAe,YAAY,GAAG,EAAE,CAAC;YAC5C,OAAO;YACP,SAAS;YACT,eAAe;YACf,UAAU;QACZ;OAECA,eAAe,eAAe,GAAG,GAAG,CAAC,CAACK;QACrC,MAAMC,OAAO1B,KAAK,CAACyB,WAAW,KAAK,CAAC;QAEpC,qBACE,uCAAC;YACC,KAAKA,WAAW,KAAK;YACrB,cAAYA,WAAW,KAAK;YAC5B,KAAKL,eAAe,cAAc;YAClC,OAAO;gBACL,UAAU;gBACV,KAAK;gBACL,MAAM;gBACN,WAAW,CAAC,WAAW,EAAEK,WAAW,KAAK,CAAC,GAAG,CAAC;gBAC9C,QAAQ,GAAG1B,WAAW,EAAE,CAAC;gBACzB,OAAO;YACT;WAEC2B,OAAOvB,WAAWuB,sBAAQ,uCAACF;IAGlC,IACCvJ,iCACC,uCAAC;QACC,OAAO;YACL,UAAU;YACV,KAAK,GAAGmJ,eAAe,YAAY,GAAG,EAAE,CAAC;YACzC,MAAM;YACN,OAAO;QACT;OAECnJ,mBAIN6H,2BAAa,uCAAC0B;AAGrB,EAAE;;;;;;;;;;AClOkD;AAE7C,SAAStF,qBACd0F,QAA4C,EAC5CC,KAAc;IAEd,MAAM,CAACC,mBAAmBC,qBAAqB,GAAGJ,mCAAQA;IAC1D,MAAMK,UAAU/F,iCAAMA,CAAS;IAE/BF,oCAASA,CAAC;QACR,IAAI,CAAC6F,UAAU,OAAOG,qBAAqBE;QAE3CF,qBAAqB,IAAM,CAAC,GAAGG;gBAC7BC,aAAaH,QAAQ,OAAO;gBAC5BA,QAAQ,OAAO,GAAGrF,WAAW,IAAMiF,YAAYM,OAAOL;YACxD;QAEA,OAAO,IAAMM,aAAaH,QAAQ,OAAO;IAC3C,GAAG;QAACJ;QAAUC;KAAM;IAEpB,OAAOC;AACT;;;;;;;;;;ACrBA,gGAAgG;AAiBzF,MAAM5E,UAAwB;IACnC,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;AACf,EAAE;AA+LK,MAAMkF,QAAoB;IAC/B,sBAAsB;IACtB,6BAA6B;IAC7B,6BAA6B;IAC7B,+BAA+B;IAC/B,uBAAuB;IACvB,6BAA6B;IAC7B,iCAAiC;IACjC,+BAA+B;IAC/B,iCAAiC;IACjC,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,oCAAoC;IACpC,kCAAkC;IAClC,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,gCAAgC;IAChC,uCAAuC;IACvC,qCAAqC;IACrC,uCAAuC;IACvC,kCAAkC;IAClC,yCAAyC;IACzC,uCAAuC;IACvC,yCAAyC;IACzC,kCAAkC;IAClC,yCAAyC;IACzC,uCAAuC;IACvC,yCAAyC;IACzC,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,uCAAuC;IACvC,gDAAgD;IAChD,8CAA8C;IAC9C,gDAAgD;IAChD,iDAAiD;IACjD,qCAAqC;IACrC,uCAAuC;IACvC,wCAAwC;IACxC,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,oBAAoB;IACpB,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,2BAA2B;IAC3B,wBAAwB;IACxB,sBAAsB;IACtB,wBAAwB;IACxB,0BAA0B;IAC1B,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;IACzB,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,kCAAkC;IAClC,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,iCAAiC;IACjC,oBAAoB;IACpB,uCAAuC;IACvC,qCAAqC;IACrC,uCAAuC;IACvC,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,mCAAmC;IACnC,oCAAoC;IACpC,2BAA2B;IAC3B,iCAAiC;IACjC,kCAAkC;IAClC,0BAA0B;IAC1B,mCAAmC;IACnC,oCAAoC;IACpC,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,iCAAiC;IACjC,iCAAiC;IACjC,6BAA6B;IAC7B,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,2BAA2B;IAC3B,4BAA4B;IAC5B,wBAAwB;IACxB,kCAAkC;IAClC,gCAAgC;IAChC,mCAAmC;IACnC,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,uBAAuB;IACvB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,2BAA2B;IAC3B,mBAAmB;IACnB,mBAAmB;IACnB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,cAAc;AAChB,EAAE;AAEK,MAAMC,OAAmB;IAC9B,sBAAsB;IACtB,6BAA6B;IAC7B,6BAA6B;IAC7B,+BAA+B;IAC/B,uBAAuB;IACvB,6BAA6B;IAC7B,iCAAiC;IACjC,+BAA+B;IAC/B,iCAAiC;IACjC,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,oCAAoC;IACpC,kCAAkC;IAClC,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,gCAAgC;IAChC,uCAAuC;IACvC,qCAAqC;IACrC,uCAAuC;IACvC,kCAAkC;IAClC,yCAAyC;IACzC,uCAAuC;IACvC,yCAAyC;IACzC,kCAAkC;IAClC,yCAAyC;IACzC,uCAAuC;IACvC,yCAAyC;IACzC,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,uCAAuC;IACvC,gDAAgD;IAChD,8CAA8C;IAC9C,gDAAgD;IAChD,iDAAiD;IACjD,qCAAqC;IACrC,uCAAuC;IACvC,wCAAwC;IACxC,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,oBAAoB;IACpB,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,2BAA2B;IAC3B,wBAAwB;IACxB,sBAAsB;IACtB,wBAAwB;IACxB,0BAA0B;IAC1B,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;IACzB,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,kCAAkC;IAClC,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,iCAAiC;IACjC,oBAAoB;IACpB,uCAAuC;IACvC,qCAAqC;IACrC,uCAAuC;IACvC,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,mCAAmC;IACnC,oCAAoC;IACpC,2BAA2B;IAC3B,iCAAiC;IACjC,kCAAkC;IAClC,0BAA0B;IAC1B,mCAAmC;IACnC,oCAAoC;IACpC,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,iCAAiC;IACjC,iCAAiC;IACjC,6BAA6B;IAC7B,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,2BAA2B;IAC3B,4BAA4B;IAC5B,wBAAwB;IACxB,kCAAkC;IAClC,gCAAgC;IAChC,mCAAmC;IACnC,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,uBAAuB;IACvB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,2BAA2B;IAC3B,mBAAmB;IACnB,mBAAmB;IACnB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,cAAc;AAChB,EAAE;AAEK,MAAMC,iBAAiB;IAC5B,sBAAsB;IACtB,6BAA6B;IAC7B,6BAA6B;IAC7B,+BAA+B;IAC/B,uBAAuB;IACvB,6BAA6B;IAC7B,iCAAiC;IACjC,+BAA+B;IAC/B,iCAAiC;IACjC,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,oCAAoC;IACpC,kCAAkC;IAClC,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,gCAAgC;IAChC,uCAAuC;IACvC,qCAAqC;IACrC,uCAAuC;IACvC,kCAAkC;IAClC,yCAAyC;IACzC,uCAAuC;IACvC,yCAAyC;IACzC,kCAAkC;IAClC,yCAAyC;IACzC,uCAAuC;IACvC,yCAAyC;IACzC,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,uCAAuC;IACvC,gDACE;IACF,8CAA8C;IAC9C,gDACE;IACF,iDACE;IACF,qCAAqC;IACrC,uCAAuC;IACvC,wCAAwC;IACxC,2BAA2B;IAC3B,yBAAyB;IACzB,2BAA2B;IAC3B,oBAAoB;IACpB,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,2BAA2B;IAC3B,wBAAwB;IACxB,sBAAsB;IACtB,wBAAwB;IACxB,0BAA0B;IAC1B,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;IACzB,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,kCAAkC;IAClC,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,iCAAiC;IACjC,oBAAoB;IACpB,uCAAuC;IACvC,qCAAqC;IACrC,uCAAuC;IACvC,wCAAwC;IACxC,sCAAsC;IACtC,wCAAwC;IACxC,mCAAmC;IACnC,oCAAoC;IACpC,2BAA2B;IAC3B,iCAAiC;IACjC,kCAAkC;IAClC,0BAA0B;IAC1B,mCAAmC;IACnC,oCAAoC;IACpC,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;IAC/B,6BAA6B;IAC7B,+BAA+B;IAC/B,iCAAiC;IACjC,iCAAiC;IACjC,6BAA6B;IAC7B,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,2BAA2B;IAC3B,4BAA4B;IAC5B,wBAAwB;IACxB,kCAAkC;IAClC,gCAAgC;IAChC,mCAAmC;IACnC,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,uBAAuB;IACvB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,2BAA2B;IAC3B,mBAAmB;IACnB,mBAAmB;IACnB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,cAAc;AAChB,CAAC,GAAU;AAEJ,MAAMC,kBAAkB;IAC7B,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;IACrB,yBAAyB;IACzB,yBAAyB;IACzB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,yBAAyB;IACzB,kBAAkB;IAClB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,yBAAyB;IACzB,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,gCAAgC;IAChC,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;IAC3B,2BAA2B;IAC3B,+BAA+B;IAC/B,oCAAoC;IACpC,oCAAoC;IACpC,kCAAkC;IAClC,gCAAgC;IAChC,gCAAgC;IAChC,+BAA+B;IAC/B,8BAA8B;IAC9B,gCAAgC;IAChC,iCAAiC;IACjC,4BAA4B;IAC5B,2BAA2B;IAC3B,8BAA8B;IAC9B,gCAAgC;IAChC,gCAAgC;IAChC,4BAA4B;IAC5B,8BAA8B;IAC9B,2BAA2B;IAC3B,gCAAgC;IAChC,gCAAgC;IAChC,wCAAwC;IACxC,6BAA6B;IAC7B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;IAC9B,2BAA2B;IAC3B,gCAAgC;IAChC,8BAA8B;IAC9B,oCAAoC;IACpC,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;IAC3B,6BAA6B;IAC7B,4BAA4B;IAC5B,2BAA2B;IAC3B,gCAAgC;IAChC,4BAA4B;IAC5B,4BAA4B;IAC5B,gCAAgC;IAChC,+BAA+B;IAC/B,mCAAmC;IACnC,6BAA6B;IAC7B,2BAA2B;IAC3B,4BAA4B;IAC5B,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;IAC3B,6BAA6B;IAC7B,2BAA2B;IAC3B,6BAA6B;IAC7B,2BAA2B;IAC3B,2BAA2B;IAC3B,8BAA8B;IAC9B,+BAA+B;IAC/B,4BAA4B;IAC5B,2BAA2B;IAC3B,+BAA+B;IAC/B,2BAA2B;IAC3B,+BAA+B;IAC/B,mCAAmC;IACnC,4BAA4B;IAC5B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,wBAAwB;IACxB,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,uBAAuB;IACvB,0BAA0B;IAC1B,2BAA2B;IAC3B,0BAA0B;IAC1B,yBAAyB;IACzB,4BAA4B;IAC5B,gCAAgC;IAChC,iCAAiC;IACjC,gCAAgC;IAChC,0BAA0B;IAC1B,wBAAwB;IACxB,2BAA2B;IAC3B,uBAAuB;IACvB,0BAA0B;IAC1B,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB;IACxB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,yBAAyB;IACzB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,iBAAiB;IACjB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,2BAA2B;IAC3B,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;IAC3B,0BAA0B;IAC1B,0BAA0B;IAC1B,8BAA8B;IAC9B,mCAAmC;IACnC,mCAAmC;IACnC,iCAAiC;IACjC,+BAA+B;IAC/B,8BAA8B;IAC9B,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,gCAAgC;IAChC,0BAA0B;IAC1B,2BAA2B;IAC3B,0BAA0B;IAC1B,6BAA6B;IAC7B,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;IAC3B,0BAA0B;IAC1B,6BAA6B;IAC7B,0BAA0B;IAC1B,0BAA0B;IAC1B,+BAA+B;IAC/B,+BAA+B;IAC/B,uCAAuC;IACvC,0BAA0B;IAC1B,0BAA0B;IAC1B,6BAA6B;IAC7B,0BAA0B;IAC1B,4BAA4B;IAC5B,2BAA2B;IAC3B,6BAA6B;IAC7B,0BAA0B;IAC1B,+BAA+B;IAC/B,6BAA6B;IAC7B,mCAAmC;IACnC,2BAA2B;IAC3B,2BAA2B;IAC3B,0BAA0B;IAC1B,4BAA4B;IAC5B,kCAAkC;IAClC,0BAA0B;IAC1B,2BAA2B;IAC3B,+BAA+B;IAC/B,2BAA2B;IAC3B,2BAA2B;IAC3B,+BAA+B;IAC/B,8BAA8B;IAC9B,2BAA2B;IAC3B,8BAA8B;IAC9B,0BAA0B;IAC1B,kCAAkC;IAClC,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,8BAA8B;IAC9B,2BAA2B;IAC3B,2BAA2B;IAC3B,0BAA0B;IAC1B,4BAA4B;IAC5B,0BAA0B;IAC1B,0BAA0B;IAC1B,8BAA8B;IAC9B,4BAA4B;IAC5B,uBAAuB;IACvB,2BAA2B;IAC3B,+BAA+B;IAC/B,gCAAgC;IAChC,iCAAiC;IACjC,yBAAyB;IACzB,uBAAuB;IACvB,0BAA0B;IAC1B,sBAAsB;IACtB,yBAAyB;IACzB,0BAA0B;IAC1B,2BAA2B;IAC3B,sBAAsB;IACtB,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;AACrB,CAAC,GAAU;;;;;;;;;;;;;;;;;;;ACppC0B;AACiB;AAC2B;AAEjF,6DAA6D;AAC7D,MAAME,gBAAgB;IACpB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,wBAAwB;IACxB,sBAAsB;IACtB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,YAAY;IAEZ,cAAc;IACd,eAAe;AACjB;AAEA,8DAA8D;AAC9D,MAAMC,gBAAgB;IACpB,OAAO;QACL,6BAA6B;QAC7B,+BAA+B;QAC/B,gCAAgC;QAEhC,kCAAkC;QAClC,qBAAqB;IACvB;IACA,MAAM;QACJ,sBAAsB;QACtB,qBAAqB;IACvB;AACF;AAQO,MAAMzM,aAAa,CAAC,GAAG0M;IAC5B,MAAMC,eAAeJ,iBAAOA,CAAC,CAACrI;QAC5B,MAAM0I,SAAS;YACb,MAAM;gBAAE,GAAGR,kBAAI;gBAAE,GAAGK,cAAc,IAAI;YAAC;YACvC,OAAO;gBAAE,GAAGN,mBAAK;gBAAE,GAAGM,cAAc,KAAK;YAAC;QAC5C,CAAC,CAACvI,MAAM;QAER,MAAM2I,eAAerQ,OAAO,OAAO,CAACoQ,QAAQ,OAAO,CAAC,CAAC,CAACjQ,KAAKoB,MAAM;YAC/D,MAAMf,QAAQ,CAAC,OAAO,EAAEL,KAAK;YAC7B,IAAI,CAAC+P,WAAW,QAAQ,CAAC1P,QAAQ,OAAO,EAAE;YAC1C,OAAO;gBAAC;oBAAC,CAAC,EAAE,EAAEA,OAAO;oBAAEe;iBAAM;aAAC;QAChC;QACA,MAAM+O,eAAe;YAAC7F,qBAAOA;YAAEuF;SAAc,CAC1C,OAAO,CAAChQ,OAAO,OAAO,EACtB,OAAO,CAAC,CAAC,CAACG,KAAKoB,MAAM;YACpB,IAAI,CAAC2O,WAAW,QAAQ,CAAC/P,MAAoB,OAAO,EAAE;YACtD,OAAO;gBAAC;oBAAC,CAAC,EAAE,EAAEA,KAAK;oBAAEoB;iBAAM;aAAC;QAC9B;QAEF,OAAOvB,OAAO,WAAW,CAAC;eAAIqQ;eAAiBC;SAAa;IAC9D;IAEA,OAAO1O,mCAAGA,CAAC,CAAC,EAAE8F,KAAK,EAAE,GAAKyI,aAAazI,MAAM,MAAM,CAAC,IAAI;AAC1D,EAAE;;;;;;;;;;;;;;;;;;ACjEwB;AAEa;AAEhC,MAAM+I,OAAO,CAACC,GAAWC,IAAsBJ,MAAMG,GAAG,KAAK,CAACC,GAAG,GAAG,GAAG,QAAQ,GAAG;AAElF,MAAMC,SAAS,CAACF,GAAWC,IAAsBJ,MAAMG,GAAG,MAAM,CAACC,GAAG,QAAQ,GAAG;AAE/E,MAAME,UAAU,CAACH,GAAWC,IAAsBJ,MAAMG,GAAG,OAAO,CAACC,GAAG,QAAQ,GAAG;AAEjF,MAAMG,MAAM,CAACJ,GAAWK,GAAWJ,IACxCJ,MAAMG,GAAG,GAAG,CAACH,MAAMQ,IAAIJ,GAAG,QAAQ,GAAG;AAEhC,MAAMK,KAAK,CAACC;IACjB,MAAM,CAACC,MAAM9K,OAAO,SAAS,CAAC,GAAG6K,EAAE,KAAK,CAAC;IACzC,yBAAyB;IACzB,MAAM,EAAE7E,KAAK,EAAE3L,MAAM,EAAE,GAAG+P,kBAAY,CAACU,KAAK,CAAC9K,KAAK;IAClD,yBAAyB;IACzB,MAAM+K,WAAmBX,kBAAY,CAACU,KAAK,CAAC,QAAQ,IAAI;IAExD,OAAO;QACL,YAAY,GAAGA,KAAK,EAAE,EAAEC,UAAU;QAClC,YAAY1Q;QACZ,WAAW2L;IACb;AACF,EAAE;AAEK,MAAMgF,iBAAiB,CAACC,QAAgBC;IAC7C,MAAMC,UAAUhB,MAAMc,QAAQ,UAAU,KAAK;IAC7C,MAAMG,UAAUjB,MAAMe,QAAQ,UAAU,KAAK;IAE7C,MAAMG,SAASF,UAAUC,UAAUD,UAAUC,UAAUA,UAAUD;IAEjE,IAAIE,SAAS,KAAK;QAChB,OAAOlB,MAAMc,QAAQ,MAAM,CAAC,KAAK,MAAM,GAAG,MAAM;IAClD;IACA,OAAOA;AACT,EAAE;;;;;;;;;ACrC8B;AAEhC,sDAAgB,CAAA3P;IACd,MAAMgQ,OAAOhQ,MAAM,EAAE;IAErB,IAAIgQ,QAAQ,MAAM;QAChB,OAAO;IACT;IAEA,OAAOV,gCAAEA,CAACU;AACZ,CAAC,EAAC;;;;;;;;;;ACVqC;AAEvC,MAAMlP,OAAOrB,yCAAMA,CAAC;IAClB,QAAQ;QAAE,UAAU;QAAU,OAAO;IAAQ;IAC7C,WAAW;QAAE,UAAU;QAAa,OAAO;IAAQ;AACrD;AAEA,sDAAeqB,IAAIA,EAAC;;;;;;;;;;;;ACPqC;AACI;AAItD,MAAMoP,cAAc;IACzB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;AACP,EAAwC;AAEjC,MAAMlP,QAAQ;IACnB;qFACmF,GACnF;IAAG;IAAG;IAAG;IAAG;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;CACjF,CAAC;AA2BK,MAAMmP,YAAY;IAAC;IAAG;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;CAAG,CAGtE;AAEF,CACEA,UAAU,KAAK,EACfA,UAAU,IAAI,EACdA,UAAU,UAAU,EACpBA,UAAU,KAAK,EACfA,UAAU,SAAS,EACnBA,UAAU,IAAI,EACdA,UAAU,KAAK,EACfA,UAAU,EAAE,EACZA,UAAU,EAAE,EACZA,UAAU,EAAE,EACZA,UAAU,EAAE,EACZA,UAAU,EAAE,CACb,GAAGA;AACJA,UAAU,eAAe,GAAGA,UAAU,KAAK;AAC3CA,UAAU,cAAc,GAAGA,UAAU,IAAI;AACzCA,UAAU,mBAAmB,GAAGA,UAAU,SAAS;AACnDA,UAAU,QAAQ,GAAGA,UAAU,UAAU;AACzCA,UAAU,OAAO,GAAGA,UAAU,EAAE;AAChCA,UAAU,OAAO,GAAGA,UAAU,EAAE;AAChCA,UAAU,OAAO,GAAGA,UAAU,EAAE;AAChCA,UAAU,OAAO,GAAGA,UAAU,EAAE;AAChCA,UAAU,OAAO,GAAGA,UAAU,EAAE;AAEhC,MAAMC,cAAc;IAClB,YAAY;IACZ,OAAO;IACP,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,WAAW;AACb;AAEO,MAAMC,QAAQ;IAAC;IAAG;IAAG;IAAG;IAAI;IAAI;CAAG,CAAC;AACpC,MAAMC,UAAU;IAAC;CAAkC,CAAC;AACpD,MAAMC,WAAW;IAAC,CAAC;IAAG;IAAG;IAAG;IAAG;IAAI;IAAI;IAAK;IAAK;CAAK,CAAC;AAE9D,sFAAsF;AAC/E,MAAMzB,eAAe;IAC1B,OAAO;QACL,YAAY;YACV,QAAQ;YACR,OAAO;QACT;QACA,OAAO;YACL,QAAQ;YACR,OAAO;QACT;QACA,SAAS;YACP,QAAQ;YACR,OAAO;QACT;QACA,QAAQ;YACN,QAAQ;YACR,OAAO;QACT;QACA,UAAU;YACR,QAAQ;YACR,OAAO;QACT;QACA,MAAM;YACJ,QAAQ;YACR,OAAO;QACT;QACA,WAAW;YACT,QAAQ;YACR,OAAO;QACT;IACF;IACA,OAAO;QACL,QAAQ;YACN,QAAQ;YACR,OAAO;QACT;IACF;AACF,EAAE;AAEF,MAAM0B,oBAAoB;AAC1B,MAAMC,UAAU;IACd,cAAc;AAChB;AAEA,MAAMC,aAAa,CACjBC,aAAa;IAAC;CAAM,EACpBrE,WAAWkE,iBAAiB,EAC5BI,SAASH,QAAQ,YAAY,GAC1BvQ,0CAAG,CAAC;uBACc,EAAEyQ,WAAW,IAAI,CAAC,KAAK;uBACvB,EAAErE,SAAS;8BACJ,EAAEsE,OAAO;AACvC,CAAC;AAED,MAAMC,SAASpQ,gDAAS,CAAC;;;;;;;EAOvB,CAAC;AACH,MAAMqQ,UAAUrQ,gDAAS,CAAC;;;;;;;EAOxB,CAAC;AACH,MAAMsQ,cAActQ,gDAAS,CAAC;;;;;;;;;AAS9B,CAAC;AACD,MAAMuQ,WAAWvQ,gDAAS,CAAC;;;;;;;;;EASzB,CAAC;AACH,MAAMwQ,aAAa;IACjB,QAAQ,IAAM/Q,0CAAG,CAAC;IAChB,EAAE2Q,OAAO,CAAC,EAAEL,kBAAkB,CAAC,EAAEC,QAAQ,YAAY,CAAC;EACxD,CAAC;IACD,SAAS,IAAMvQ,0CAAG,CAAC;IACjB,EAAE4Q,QAAQ,CAAC,EAAEN,kBAAkB,CAAC,EAAEC,QAAQ,YAAY,CAAC;EACzD,CAAC;IACD,aAAa,IAAMvQ,0CAAG,CAAC;IACrB,EAAE6Q,YAAY,MAAM,EAAEN,QAAQ,YAAY,CAAC;EAC7C,CAAC;IACD,UAAU,IAAMvQ,0CAAG,CAAC;IAClB,EAAE8Q,SAAS,CAAC,EAAER,kBAAkB,CAAC,EAAEC,QAAQ,YAAY,CAAC;EAC1D,CAAC;AACH;AACA,MAAMtP,WAAW;IACf,GAAGjB,0CAAG,CAAC;;;;;qBAKY,EAAED,CAAAA,IAAKA,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;;EAErD,CAAC;IACD,GAAGC,0CAAG,CAAC;;;;;qBAKY,EAAED,CAAAA,IAAKA,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;;EAErD,CAAC;IACD,OAAOC,0CAAG,CAAC;;;;;qBAKQ,EAAED,CAAAA,IAAKA,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;;EAErD,CAAC;IACD,IAAIC,0CAAG,CAAC;;;;qBAIW,EAAED,CAAAA,IAAKA,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;;EAErD,CAAC;IACD,WAAW;AACb;AA0CA,MAAM+F,QAAsB;IAC1B,OAAO;IACP,OAAO;QACL,QAAQ;YACN,MAAM;gBACJ,KAAK;oBACH,OAAO;gBACT;gBACA,OAAO;oBACL,OAAO;gBACT;YACF;YACA,OAAO;gBACL,KAAK;oBACH,QAAQ;oBACR,OAAO;gBACT;gBACA,KAAK;oBACH,QAAQ;oBACR,OAAO;gBACT;YACF;QACF;QACA,cAAc;QACd,cAAc;IAChB;IACAqK;IACAvB;IACAqB;IACAC;IACApP;IACAsP;IACA,QAAQL,mDAAc;IACtBgB;IACA9P;IACAuP;IACAH;IACAL;AACF;AAEA,2DAAelK,gDAAAA,KAAKA,EAAAA,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnTrB;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;;;;ACPA;AACA;AACA;AACA,kDAAkD,wCAAwC;AAC1F;AACA;AACA,E;;;;ACNA,wF;;;;ACAA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA,gDAAgD,aAAa;AAC7D,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACN0C;AACA;AACR;AACI;AACA;AACE;AACI;AACgB;AACI;AAClC;AACY;AACA;AACV;AACN;AACY;AACI"}
1
+ {"version":3,"file":"pre-ldls/components/index.js","sources":["webpack://@ledgerhq/react-ui/./src/components/asorted/Icon/Icon.tsx","webpack://@ledgerhq/react-ui/./src/components/asorted/Text/index.tsx","webpack://@ledgerhq/react-ui/./src/components/asorted/Text/styles.ts","webpack://@ledgerhq/react-ui/./src/components/layout/Flex/index.ts","webpack://@ledgerhq/react-ui/./src/components/loaders/InfiniteLoader/index.tsx","webpack://@ledgerhq/react-ui/./src/components/styled.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AccountItem/AccountItem.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AccountList/AccountList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Address/Address.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Address/formatAddress.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AssetItem/AssetItem.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/AssetList/AssetList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/CardButton/CardButton.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Checkbox/Checkbox.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Input/Input.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/NetworkItem/NetworkItem.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/NetworkList/NetworkList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Search/Search.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/Tag/Tag.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/TextInput/TextInput.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.tsx","webpack://@ledgerhq/react-ui/./src/pre-ldls/hooks/useDebouncedCallback.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/libs/design-tokens.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/libs/index.ts","webpack://@ledgerhq/react-ui/./src/styles/helpers.ts","webpack://@ledgerhq/react-ui/./src/styles/styled/fontFamily.ts","webpack://@ledgerhq/react-ui/./src/styles/system/gaps.ts","webpack://@ledgerhq/react-ui/./src/styles/theme.ts","webpack://@ledgerhq/react-ui/webpack/runtime/compat_get_default_export","webpack://@ledgerhq/react-ui/webpack/runtime/define_property_getters","webpack://@ledgerhq/react-ui/webpack/runtime/has_own_property","webpack://@ledgerhq/react-ui/webpack/runtime/make_namespace_object","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/index.ts"],"sourcesContent":["import * as icons from \"@ledgerhq/icons-ui/reactLegacy\";\nimport React from \"react\";\n\nexport type Props = {\n name: string;\n size?: number;\n weight?: \"Medium\";\n color?: string;\n};\n\nexport const iconNames = Array.from(\n Object.keys(icons).reduce((set, rawKey) => {\n const key = rawKey.replace(/(.+)(Medium)+$/g, \"$1\");\n if (!set.has(key)) set.add(key);\n return set;\n }, new Set<string>()),\n);\n\nconst Icon = ({\n name,\n size = 16,\n color = \"currentColor\",\n weight = \"Medium\",\n}: Props): React.JSX.Element | null => {\n const maybeIconName = `${name}${weight}`;\n if (maybeIconName in icons) {\n // @ts-expect-error FIXME I don't know how to make you happy ts\n const Component = icons[maybeIconName];\n return <Component size={size} color={color} />;\n }\n return null;\n};\n\nexport default Icon;\n","import React from \"react\";\nimport baseStyled, { BaseStyledProps } from \"../../styled\";\nimport {\n compose,\n fontSize,\n fontWeight,\n textAlign,\n lineHeight,\n letterSpacing,\n system,\n} from \"styled-system\";\nimport fontFamily from \"../../../styles/styled/fontFamily\";\nimport { TextVariants } from \"../../../styles/theme\";\nimport { textVariantStyle } from \"./styles\";\n\nconst uppercase = system({\n uppercase: {\n property: \"textTransform\",\n transform: value => (value ? \"uppercase\" : \"none\"),\n },\n});\n\ntype FontFamilies =\n | \"Inter|ExtraLight\"\n | \"Inter|Light\"\n | \"Inter|Regular\"\n | \"Inter|Medium\"\n | \"Inter|SemiBold\"\n | \"Inter|Bold\"\n | \"Inter|ExtraBold\"\n | \"Alpha|Medium\";\n\ntype WhiteSpace = \"normal\" | \"nowrap\" | \"pre\" | \"pre-line\" | \"pre-wrap\";\n\nexport interface TextProps extends BaseStyledProps {\n fontFamily?: string;\n ff?: FontFamilies;\n fontSize?: number | string | TextVariants;\n variant?: TextVariants;\n textAlign?: string;\n fontWeight?: string;\n lineHeight?: string;\n textTransform?: string;\n textOverflow?: string;\n uppercase?: boolean;\n whiteSpace?: WhiteSpace;\n children?: React.ReactNode;\n}\n\nconst Text = baseStyled.span.attrs<TextProps, TextProps>(\n ({ variant = \"body\", fontSize, color }) => ({\n fontSize: fontSize ? fontSize : variant,\n color: color || \"neutral.c100\",\n }),\n)`\n font-weight: 500;\n white-space: ${props => props.whiteSpace ?? \"normal\"};\n ${(p: TextProps) => textVariantStyle[p.variant || \"body\"]}\n ${compose(\n uppercase,\n lineHeight,\n fontFamily,\n fontSize,\n textAlign,\n fontWeight,\n letterSpacing,\n system({\n textOverflow: true,\n }),\n )}\n ${p => (p.textTransform ? `text-transform: ${p.textTransform};` : \"\")}\n`;\n\nexport default Text;\n","import { GlobalStyleProps } from \"../../../styles/global\";\nimport { css } from \"styled-components\";\nimport { TextVariants } from \"../../../styles/theme\";\n\nconst getFontSource = (name: string) => (props: GlobalStyleProps) => {\n const fontsPath = props.fontsPath ?? \"assets/fonts\";\n const fontName = (props.fontMappings && props.fontMappings(name)) || `${name}.woff2`;\n return `url(\"${fontsPath}/${fontName}\") format(\"woff2\")`;\n};\n\nexport const fontStyles = css`\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-ExtraLight-BETA\")};\n font-weight: 100;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-Light-BETA\")};\n font-weight: 300;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-Regular\")};\n font-weight: 400;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-Medium\")};\n font-weight: 500;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-SemiBold\")};\n font-weight: 600;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Inter\";\n src: ${getFontSource(\"Inter-ExtraBold\")};\n font-weight: 900;\n font-style: normal;\n }\n\n @font-face {\n font-family: \"Alpha\";\n src: ${getFontSource(\"HMAlphaMono-Medium\")};\n font-weight: 500;\n font-style: normal;\n }\n`;\n\nexport const textVariantStyle: Record<\n TextVariants,\n {\n fontFamily: string;\n lineHeight?: string | number;\n fontWeight?: number;\n \"text-transform\"?: string;\n }\n> = {\n h1: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h1Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h2: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h2Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h3: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h3Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n },\n h4: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h4Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 600,\n },\n h5: {\n fontFamily: \"Alpha, Inter, Sans\",\n fontWeight: 500,\n \"text-transform\": \"uppercase\",\n },\n h5Inter: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 500,\n },\n large: {\n fontFamily: \"Inter, Sans\",\n },\n largeLineHeight: {\n fontFamily: \"Inter, Sans\",\n lineHeight: 1.7,\n },\n body: {\n fontFamily: \"Inter, Sans\",\n },\n bodyLineHeight: {\n fontFamily: \"Inter, Sans\",\n lineHeight: 1.7,\n },\n paragraph: {\n fontFamily: \"Inter, Sans\",\n },\n paragraphLineHeight: {\n fontFamily: \"Inter, Sans\",\n lineHeight: 1.7,\n },\n small: {\n fontFamily: \"Inter, Sans\",\n },\n extraSmall: {\n fontFamily: \"Inter, Sans\",\n },\n tiny: {\n fontFamily: \"Inter, Sans\",\n },\n micro: {\n fontFamily: \"Inter, Sans\",\n },\n subtitle: {\n fontFamily: \"Inter, Sans\",\n fontWeight: 600,\n \"text-transform\": \"uppercase\",\n },\n};\n","import baseStyled, { BaseStyledProps } from \"../../styled\";\n\nconst FlexBox = baseStyled.div.attrs<BaseStyledProps, BaseStyledProps>({ display: \"flex\" })``;\nexport type FlexBoxProps = BaseStyledProps & React.HTMLAttributes<HTMLDivElement>;\n\nexport default FlexBox;\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { system, size, SizeProps } from \"styled-system\";\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst Loader = styled.svg<SizeProps>`\n animation: ${rotate} 1s linear infinite;\n ${size}\n ${system({\n stroke: {\n property: \"stroke\",\n scale: \"colors\",\n },\n })}\n`;\nexport type Props = React.ComponentProps<typeof Loader> & {\n color?: string;\n};\n\nexport default function InfiniteLoader({\n size = 38,\n color = \"primary.c50\",\n ...extraProps\n}: Props): React.JSX.Element {\n return (\n <Loader\n size={size}\n stroke={color}\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...extraProps}\n >\n <linearGradient\n id=\"gradient-start\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n <linearGradient\n id=\"gradient-end\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n\n <mask id=\"gradient-mask\" maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-0\"\n y=\"-4\"\n width=\"44\"\n height=\"22\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-start)\"\n transform=\"rotate(10)\"\n />\n <rect\n x=\"0\"\n y=\"18\"\n width=\"44\"\n height=\"21\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-end)\"\n transform=\"rotate(10)\"\n />\n </mask>\n <path\n d=\"M34.8807 20.9499C35.3608 17.0398 34.3815 13.09 32.1304 9.85712C29.8793 6.6242 26.5146 4.33541 22.6808 3.42914C18.847 2.52287 14.8136 3.06283 11.3532 4.94559C7.89277 6.82836 5.24858 9.92158 3.92708 13.6328C2.60558 17.344 2.69968 21.4123 4.19135 25.0584C5.68302 28.7045 8.4674 31.6722 12.0112 33.3929C15.5549 35.1137 19.609 35.4666 23.3968 34.384C27.1846 33.3015 30.4398 30.8596 32.5391 27.526\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n mask=\"url(#gradient-mask)\"\n />\n </Loader>\n );\n}\n","import React from \"react\";\nimport gaps from \"../styles/system/gaps\";\nimport styled, { StyledInterface, InterpolationFunction } from \"styled-components\";\nimport {\n compose,\n flexbox,\n FlexboxProps,\n space,\n SpaceProps,\n position,\n PositionProps,\n color,\n ColorProps,\n layout,\n LayoutProps,\n overflow,\n OverflowProps,\n border,\n BorderProps,\n} from \"styled-system\";\n\nexport type BaseStyledProps = SpaceProps &\n FlexboxProps &\n PositionProps &\n ColorProps &\n LayoutProps &\n BorderProps &\n OverflowProps & {\n /**\n * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.\n */\n columnGap?: string | number;\n /**\n * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.\n */\n rowGap?: string | number;\n color?: string;\n children?: React.ReactNode;\n };\n\nexport const baseStyles: InterpolationFunction<unknown> = compose(\n flexbox,\n space,\n position,\n color,\n layout,\n overflow,\n gaps,\n border,\n);\n\nconst proxyStyled = new Proxy(styled, {\n apply(target: typeof styled, thisArg, argumentsList: Parameters<typeof styled>) {\n return styled(target.apply(thisArg, argumentsList)(baseStyles));\n },\n get(target, property: keyof typeof styled) {\n if (typeof target[property] === \"function\") {\n return styled(target[property].apply(styled, [baseStyles]));\n }\n return target[property];\n },\n});\n\nexport default <StyledInterface>proxyStyled;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Icons } from \"../../../assets\";\nimport { Flex, Icon, Text } from \"../../../components\";\nimport { withTokens } from \"../../libs\";\nimport { Address } from \"../Address/Address\";\nimport type { CheckboxProps } from \"../Checkbox/Checkbox\";\nimport { Checkbox } from \"../Checkbox/Checkbox\";\nimport { Tag } from \"../Tag/Tag\";\n\nexport type Account = {\n address: string;\n balance?: string;\n cryptoId?: string;\n fiatValue?: string;\n id: string;\n name: string;\n parentId?: string;\n protocol?: string;\n ticker?: string;\n};\n\nexport type RightElementArrow = {\n type: \"arrow\";\n};\n\nexport type RightElementCheckbox = {\n type: \"checkbox\";\n checkbox: CheckboxProps;\n};\n\nexport type RightElementEdit = {\n type: \"edit\";\n onClick: () => void;\n};\n\nexport type RightElement = RightElementArrow | RightElementCheckbox | RightElementEdit;\n\nexport type AccountItemProps = {\n onClick?: () => void;\n account: Account;\n rightElement?: RightElement;\n showIcon?: boolean;\n backgroundColor?: string;\n};\n\nconst ICON_BUTTONS_SIZE = \"32px\";\n\n// TODO a proper IconButton component that handles hover and pressed states.\nconst IconButton = styled.button`\n ${withTokens(\"colors-content-default-default\")}\n\n all: unset;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: ${ICON_BUTTONS_SIZE};\n width: ${ICON_BUTTONS_SIZE};\n`;\n\nconst Wrapper = styled.div<{ backgroundColor?: string; isClickable: boolean }>`\n ${withTokens(\n \"spacing-xxxs\",\n \"spacing-xxs\",\n \"spacing-xs\",\n \"margin-s\",\n \"radius-s\",\n \"radius-m\",\n \"colors-content-default-default\",\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n \"colors-content-subdued-default-default\",\n \"colors-surface-transparent-subdued-default\",\n )}\n\n display: flex;\n cursor: ${p => (p.isClickable ? \"pointer\" : \"default\")};\n justify-content: space-between;\n align-items: center;\n width: 100%;\n box-sizing: border-box;\n max-width: 100%;\n min-width: 200px;\n overflow: hidden;\n\n background-color: ${p => (p.backgroundColor ? p.backgroundColor : \"transparent\")};\n\n ${p =>\n p.isClickable\n ? `\n border-radius: var(--radius-m);\n padding: var(--margin-s);\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n }\n `\n : \"\"}\n`;\n\nconst ContentContainer = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n gap: var(--spacing-xs);\n justify-content: space-between;\n min-width: 0;\n overflow: hidden;\n width: 100%;\n`;\n\nconst AccountInfoContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n flex: 1;\n overflow: hidden;\n`;\n\nconst NameRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: var(--spacing-xxxs);\n min-width: 0;\n width: 100%;\n`;\n\nconst NameDiv = styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n flex: 1;\n max-width: fit-content;\n`;\n\nconst TagWrapper = styled.div`\n flex-shrink: 0;\n margin-left: var(--spacing-xxs);\n display: flex;\n flex: 1;\n max-width: fit-content;\n align-items: center;\n`;\n\nconst BalanceContainer = styled.div`\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n text-align: right;\n`;\n\nexport const AccountItem = ({\n onClick,\n account,\n rightElement,\n showIcon = true,\n backgroundColor,\n}: AccountItemProps) => {\n const { name, balance, fiatValue, protocol, address, ticker, cryptoId, parentId } = account;\n\n return (\n <Wrapper backgroundColor={backgroundColor} isClickable={Boolean(onClick)} onClick={onClick}>\n <ContentContainer>\n <AccountInfoContainer>\n <NameRow>\n <NameDiv>\n <Text\n data-testid={`account-row-${name}`}\n variant=\"largeLineHeight\"\n fontWeight=\"semiBold\"\n color=\"var(--colors-content-default-default)\"\n fontSize=\"14px\"\n lineHeight=\"20px\"\n title={name}\n style={{\n display: \"block\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {name}\n </Text>\n </NameDiv>\n {protocol && (\n <TagWrapper>\n <Tag textTransform=\"uppercase\">{protocol}</Tag>\n </TagWrapper>\n )}\n </NameRow>\n <Address\n address={address}\n cryptoId={cryptoId}\n ticker={ticker}\n parentId={parentId}\n showIcon={showIcon}\n isShortened\n />\n </AccountInfoContainer>\n <BalanceContainer>\n {fiatValue && <Text fontSize=\"14px\">{fiatValue}</Text>}\n {balance && (\n <Text fontSize=\"12px\" color=\"var(--colors-content-subdued-default-default)\">\n {balance}\n </Text>\n )}\n </BalanceContainer>\n {rightElement && rightElement.type === \"checkbox\" && (\n <Flex data-testid=\"right-element-checkbox\" aria-label=\"Checkbox account item\">\n <Checkbox {...rightElement.checkbox} size={20} />\n </Flex>\n )}\n {rightElement && rightElement.type === \"arrow\" && (\n <Flex data-testid=\"right-element-arrow-icon\" aria-label=\"Arrow account item\">\n <Icon name=\"ChevronRight\" size={24} />\n </Flex>\n )}\n {rightElement && rightElement.type === \"edit\" && (\n <IconButton\n aria-label=\"Edit account item\"\n data-testid=\"right-element-edit-icon\"\n onClick={e => {\n e.stopPropagation();\n if (rightElement?.type === \"edit\") {\n rightElement.onClick();\n }\n }}\n >\n <Icons.PenEdit size=\"S\" color=\"var(--colors-content-default-default)\" />\n </IconButton>\n )}\n </ContentContainer>\n </Wrapper>\n );\n};\n","import React, { useCallback } from \"react\";\nimport { Account, AccountItem } from \"../AccountItem/AccountItem\";\nimport { VirtualList } from \"../VirtualList/VirtualList\";\n\nexport const AccountList = ({\n accounts,\n onClick,\n bottomComponent,\n}: {\n accounts: Account[];\n onClick: (networkId: string) => void;\n bottomComponent?: React.ReactNode;\n}) => {\n const renderAccountItem = useCallback(\n (account: Account) => <AccountItem onClick={() => onClick(account.id)} account={account} />,\n [onClick],\n );\n\n return (\n <VirtualList\n items={accounts}\n itemHeight={76}\n bottomComponent={bottomComponent}\n renderItem={renderAccountItem}\n />\n );\n};\n","import React from \"react\";\nimport { Text } from \"../../../components\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\nimport { CryptoIcon } from \"@ledgerhq/crypto-icons\";\nimport { formatAddress } from \"./formatAddress\";\n\nconst Wrapper = styled.div`\n ${withTokens(\"spacing-xxxs\", \"colors-content-subdued-default-default\")}\n\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const Address = ({\n address,\n showIcon,\n cryptoId,\n ticker,\n parentId,\n isShortened = false,\n}: {\n address: string;\n showIcon: boolean;\n cryptoId?: string;\n ticker?: string;\n parentId?: string;\n isShortened?: boolean;\n}) => {\n const formattedAddress = isShortened ? formatAddress(address) : address;\n return (\n <Wrapper>\n <Text\n marginRight=\"var(--spacing-xxxs)\"\n fontSize=\"12px\"\n color=\"var(--colors-content-subdued-default-default)\"\n >\n {formattedAddress}\n </Text>\n {showIcon && (\n <CryptoIcon ledgerId={cryptoId} network={parentId} ticker={ticker} size=\"20px\" />\n )}\n </Wrapper>\n );\n};\n","/**\n * Format an address by showing only parts of it\n *\n * @param address - The address to format\n * @param options - Configuration options\n * @param options.prefixLength - Number of characters to show at the start (default: 5)\n * @param options.suffixLength - Number of characters to show at the end (default: 5)\n * @param options.separator - String to use as separator (default: \"...\")\n * @param options.threshold - Minimum length before truncating (default: calculated from other params)\n * @returns Formatted address string\n */\nexport const formatAddress = (\n address: string,\n options: {\n prefixLength?: number;\n suffixLength?: number;\n separator?: string;\n threshold?: number;\n } = {},\n) => {\n const {\n prefixLength = 5,\n suffixLength = 5,\n separator = \"...\",\n threshold = prefixLength + separator.length + suffixLength,\n } = options;\n\n if (!address || address.length <= threshold) {\n return address;\n }\n\n return `${address.slice(0, prefixLength)}${separator}${address.slice(-suffixLength)}`;\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\nimport { Text } from \"../../../components\";\nimport { CryptoIcon } from \"@ledgerhq/crypto-icons\";\n\nconst copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n } catch (err) {\n console.error(\"Failed to copy to clipboard:\", err);\n }\n};\n\nexport type AssetType = {\n name: string;\n ticker: string;\n id: string;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n numberOfNetworks?: number;\n assetId?: string;\n shouldDisplayId?: boolean;\n};\n\ntype AssetItemProps = AssetType & {\n onClick: (asset: AssetType) => void;\n};\n\nconst Wrapper = styled.div`\n ${withTokens(\n \"spacing-xxs\",\n \"margin-s\",\n \"radius-s\",\n \"colors-content-subdued-default-default\",\n \"colors-content-default-default\",\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n )}\n\n display: flex;\n padding: var(--spacing-xxs);\n cursor: pointer;\n border-radius: var(--radius-s, 8px);\n align-items: center;\n overflow: hidden;\n\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n }\n`;\n\nconst InfoWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: var(--margin-s);\n overflow: hidden;\n flex: 1;\n gap: 4px;\n`;\n\nconst LeftElementWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nconst TagWrapper = styled.div`\n ${withTokens(\n \"colors-surface-transparent-subdued-default\",\n \"colors-content-subdued-default-default\",\n \"radius-xs\",\n \"spacing-xxxs\",\n )}\n\n padding: var(--spacing-xxxs);\n border-radius: var(--radius-xs);\n display: inline-flex;\n background-color: var(--colors-surface-transparent-subdued-default);\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const AssetItem = ({\n name,\n ticker,\n numberOfNetworks,\n id,\n assetId,\n onClick,\n leftElement,\n rightElement,\n shouldDisplayId,\n}: AssetItemProps) => {\n return (\n <Wrapper onClick={() => onClick({ name, ticker, id })}>\n <CryptoIcon size=\"48px\" ledgerId={id} ticker={ticker} />\n <InfoWrapper>\n <Text\n data-testid={`asset-item-name-${name}`}\n fontSize=\"14px\"\n variant=\"largeLineHeight\"\n fontWeight=\"semiBold\"\n color=\"var(--colors-content-default-default)\"\n style={{\n display: \"block\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {name}\n </Text>\n <LeftElementWrapper>\n <Text\n data-testid={`asset-item-ticker-${ticker}`}\n fontSize=\"12px\"\n lineHeight=\"16px\"\n variant=\"bodyLineHeight\"\n fontWeight=\"medium\"\n color=\"var(--colors-content-subdued-default-default)\"\n >\n {ticker}\n </Text>\n {leftElement}\n {shouldDisplayId && assetId ? (\n <TagWrapper\n onClick={e => {\n e.stopPropagation();\n copyToClipboard(assetId);\n }}\n >\n <Text\n color=\"var(--colors-content-subdued-default-default)\"\n fontSize=\"12px\"\n >{`${assetId} (${numberOfNetworks} networks)`}</Text>\n </TagWrapper>\n ) : null}\n </LeftElementWrapper>\n </InfoWrapper>\n {rightElement}\n </Wrapper>\n );\n};\n","import React, { useCallback } from \"react\";\nimport { AssetItem, AssetType } from \"../AssetItem/AssetItem\";\nimport { VirtualList } from \"../VirtualList/VirtualList\";\n\nexport const AssetList = ({\n assets,\n onClick,\n onVisibleItemsScrollEnd,\n scrollToTop,\n hasNextPage,\n isDebuggingDuplicates,\n}: {\n assets: AssetType[];\n onClick: (asset: AssetType) => void;\n onVisibleItemsScrollEnd?: () => void;\n scrollToTop?: boolean;\n hasNextPage?: boolean;\n isDebuggingDuplicates?: boolean;\n}) => {\n const renderAssetItem = useCallback(\n (props: AssetType) => (\n <AssetItem {...props} shouldDisplayId={isDebuggingDuplicates} onClick={onClick} />\n ),\n [onClick, isDebuggingDuplicates],\n );\n\n return (\n <VirtualList\n itemHeight={64}\n items={assets}\n onVisibleItemsScrollEnd={onVisibleItemsScrollEnd}\n renderItem={renderAssetItem}\n scrollToTop={scrollToTop}\n hasNextPage={hasNextPage}\n />\n );\n};\n","import React from \"react\";\nimport { withTokens } from \"../../libs\";\nimport styled from \"styled-components\";\n\nconst Button = styled.button`\n ${withTokens(\n \"colors-content-default-default\",\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n \"colors-border-light-default\",\n \"colors-opacity-default-10\",\n \"colors-border-subdued-default-hover\",\n \"colors-border-subdued-default-pressed\",\n \"colors-border-focus-default\",\n \"radius-s\",\n \"border-width-default\",\n \"border-width-focus\",\n \"spacing-xs\",\n )}\n\n display: flex;\n padding: var(--spacing-xs);\n flex-grow: 1;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n\n background-color: transparent;\n color: var(--colors-content-default-default);\n font-weight: 600;\n\n border-width: var(--border-width-default);\n border-radius: var(--radius-s);\n border-color: ${({ theme: { theme } }) =>\n theme === \"light\" ? \"var(--colors-border-light-default);\" : \"var(--colors-opacity-default-10);\"}\n\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n ${({ theme: { theme } }) =>\n theme === \"light\" && \"border-color: var(--colors-border-subdued-default-hover);\"}\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n ${({ theme: { theme } }) => theme === \"light\" && \"border-color: var(--colors-border-subdued-default-pressed);\"}\n }\n\n &:focus-visible {\n border-color: var(--colors-border-focus-default);\n border-width: var(--border-width-focus);\n }\n`;\n\nexport const CardButton = ({\n onClick,\n title,\n iconRight,\n variant = \"default\",\n}: {\n onClick: () => void;\n title: string;\n iconRight?: React.JSX.Element;\n variant?: \"default\" | \"dashed\";\n}) => {\n return (\n <Button onClick={onClick} style={{ borderStyle: variant === \"default\" ? \"solid\" : \"dashed\" }}>\n {title} {iconRight}\n </Button>\n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport CheckAloneMedium from \"@ledgerhq/icons-ui/reactLegacy/CheckAloneMedium\";\nimport { renderToStaticMarkup } from \"react-dom/server\";\nimport { withTokens } from \"../../libs\";\n\nconst Icon = () =>\n React.cloneElement(CheckAloneMedium({ size: 13, color: \"currentColor\" }), {\n // the xmlns attribute is required to properly display the checkbox\n xmlns: \"http://www.w3.org/2000/svg\",\n });\nconst CheckMarkIcon = encodeURIComponent(renderToStaticMarkup(<Icon />));\n\nconst Input = styled.input<{ size?: number }>`\n background-color: transparent;\n\n border-radius: ${p => `${p.theme.radii[1]}px`};\n position: relative;\n\n min-width: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n height: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n appearance: none;\n border: 1px solid ${props => props.theme.colors.opacityDefault.c30};\n box-shadow: none;\n\n &:checked {\n background-color: currentColor;\n border-color: currentColor;\n }\n\n &:checked::after {\n content: \" \";\n width: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n height: ${p => (p.size ? `${p.size}px` : `${p.theme.space[7]}px`)};\n display: inline-block;\n color: ${props => props.theme.colors.neutral.c00};\n\n background-image: url(\"data:image/svg+xml,${CheckMarkIcon}\");\n background-position: center;\n background-repeat: no-repeat;\n\n /* Trick to center the check mark by taking into account the border */\n position: absolute;\n top: -1px;\n left: -1px;\n }\n`;\n\nconst Container = styled.div`\n ${withTokens(\"colors-background-active\")}\n\n color: var(--colors-background-active);\n\n display: inline-flex;\n column-gap: ${p => p.theme.space[5]}px;\n align-items: center;\n cursor: pointer;\n`;\n\nexport type CheckboxProps = {\n isDisabled?: boolean;\n isChecked: boolean;\n name: string;\n onChange: (value: boolean) => void;\n size?: number;\n};\n\nexport const Checkbox = ({\n isDisabled = false,\n isChecked,\n name,\n onChange,\n size,\n}: CheckboxProps): React.JSX.Element => (\n <Container data-disabled={isDisabled}>\n <Input\n type=\"checkbox\"\n name={name}\n id={name}\n checked={isChecked}\n disabled={isDisabled}\n onChange={e => {\n // TODO Checkbox should be an uncontrolled component that exposes the event onChange.\n // (leave stopPropagation to the parent)\n e.stopPropagation();\n onChange(!isChecked);\n }}\n size={size}\n />\n </Container>\n);\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\ntype Props = Readonly<React.ComponentProps<\"input\"> & { icon?: React.ReactNode }>;\n\nconst Wrapper = styled.div`\n ${withTokens(\n \"spacing-s\",\n \"spacing-xxs\",\n \"radius-s\",\n \"colors-surface-transparent-subdued-default\",\n \"colors-content-subdued-default-default\",\n )}\n\n display: flex;\n height: 40px;\n min-width: 328px;\n padding: 0px var(--spacing-s, 16px);\n align-items: center;\n gap: var(--spacing-xxs, 8px);\n\n border-radius: var(--radius-s, 8px);\n background: var(--colors-surface-transparent-subdued-default, rgba(0, 0, 0, 0.03));\n color: var(--colors-content-subdued-default-default);\n overflow: hidden;\n`;\n\nconst StyledInput = styled.input`\n background: none;\n cursor: text;\n border: none;\n width: 100%;\n`;\n\nexport const Input = React.forwardRef<HTMLInputElement, Props>(\n ({ type = \"text\", icon = null, ...props }, ref) => {\n return (\n <Wrapper>\n {icon}\n <StyledInput {...props} type={type} ref={ref} />\n </Wrapper>\n );\n },\n);\nInput.displayName = \"Input\";\n","import React from \"react\";\nimport { Flex, Text } from \"../../../components\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\nconst Wrapper = styled(Flex)`\n ${withTokens(\n \"colors-surface-status-success-default\",\n \"colors-surface-status-success-strong-default\",\n \"colors-surface-status-error-default\",\n \"colors-surface-status-error-strong-default\",\n \"colors-surface-transparent-hover\",\n \"colors-content-default-default\",\n )}\n`;\n\nconst getPercentageDisplay = (percent: number) => {\n if (percent > 0) {\n return {\n backgroundColor: \"var(--colors-surface-status-success-default)\",\n color: \"var(--colors-surface-status-success-strong-default)\",\n text: `+${percent}%`,\n };\n }\n if (percent < 0) {\n return {\n backgroundColor: \"var(--colors-surface-status-error-default)\",\n color: \"var(--colors-surface-status-error-strong-default)\",\n text: `-${Math.abs(percent)}%`,\n };\n }\n return {\n backgroundColor: \"var(--colors-surface-transparent-hover)\",\n color: \"var(--colors-content-default-default)\",\n text: `${percent}%`,\n };\n};\n\nexport const MarketPercentIndicator = ({ percent }: { percent: number }) => {\n const percentageDisplay = getPercentageDisplay(percent);\n\n return (\n <Wrapper\n data-testid=\"market-percent-indicator\"\n flexDirection=\"column\"\n alignItems=\"flex-end\"\n width=\"fit-content\"\n p=\"4px\"\n borderRadius=\"4px\"\n backgroundColor={percentageDisplay.backgroundColor}\n >\n <Text\n data-testid=\"market-percent-indicator-value\"\n color={percentageDisplay.color}\n fontSize=\"12px\"\n >\n {percentageDisplay.text}\n </Text>\n </Wrapper>\n );\n};\n","import React from \"react\";\nimport { Flex, Text } from \"../../../components\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\nconst Wrapper = styled(Flex)`\n ${withTokens(\n \"colors-surface-status-success-strong-default\",\n \"colors-surface-status-error-strong-default\",\n \"colors-content-default-default\",\n )}\n`;\n\nconst getPercentageDisplay = (percent: number) => {\n if (percent > 0) {\n return {\n color: \"var(--colors-surface-status-success-strong-default)\",\n text: `+${percent}%`,\n };\n }\n if (percent < 0) {\n return {\n color: \"var(--colors-surface-status-error-strong-default)\",\n text: `-${Math.abs(percent)}%`,\n };\n }\n return {\n color: \"var(--colors-content-default-default)\",\n text: `${percent}%`,\n };\n};\n\nexport const MarketPriceIndicator = ({ percent, price }: { percent: number; price: string }) => {\n const percentageDisplay = getPercentageDisplay(percent);\n\n return (\n <Wrapper\n data-testid=\"market-price-indicator\"\n flexDirection=\"column\"\n alignItems=\"flex-end\"\n width=\"fit-content\"\n >\n <Text\n data-testid=\"market-price-indicator-value\"\n variant=\"body\"\n fontWeight=\"semiBold\"\n mb=\"4px\"\n >\n {price}\n </Text>\n <Text\n data-testid=\"market-price-indicator-percent\"\n color={percentageDisplay.color}\n fontSize=\"12px\"\n >\n {percentageDisplay.text}\n </Text>\n </Wrapper>\n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\nimport { Text } from \"../../../components\";\nimport { CryptoIcon } from \"@ledgerhq/crypto-icons\";\n\nexport type Network = {\n name: string;\n id: string;\n ticker: string;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n};\n\ntype NetworkItemProps = Network & {\n onClick: () => void;\n};\n\nconst Wrapper = styled.div`\n ${withTokens(\n \"spacing-xxs\",\n \"margin-s\",\n \"radius-s\",\n \"colors-content-default-default\",\n \"colors-content-subdued-default-default\", // used by leftElement child\n \"colors-surface-transparent-hover\",\n \"colors-surface-transparent-pressed\",\n )}\n display: flex;\n padding: var(--spacing-xxs);\n cursor: pointer;\n border-radius: var(--radius-s, 8px);\n align-items: center;\n\n &:hover {\n background-color: var(--colors-surface-transparent-hover);\n }\n\n &:active {\n background-color: var(--colors-surface-transparent-pressed);\n }\n`;\n\nconst InfoWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: var(--margin-s);\n flex: 1;\n`;\n\nconst LeftElementWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const NetworkItem = ({\n name,\n onClick,\n id,\n ticker,\n leftElement,\n rightElement,\n}: NetworkItemProps) => {\n return (\n <Wrapper onClick={onClick}>\n <CryptoIcon size=\"48px\" ledgerId={id} ticker={ticker} />\n <InfoWrapper>\n <Text\n data-testid={`network-item-name-${name}`}\n variant=\"largeLineHeight\"\n fontWeight=\"semiBold\"\n color=\"var(--colors-content-default-default)\"\n >\n {name}\n </Text>\n <LeftElementWrapper>{leftElement}</LeftElementWrapper>\n </InfoWrapper>\n {rightElement}\n </Wrapper>\n );\n};\n","import React, { useCallback } from \"react\";\nimport { Network, NetworkItem } from \"../NetworkItem/NetworkItem\";\nimport { VirtualList } from \"../VirtualList/VirtualList\";\n\nexport const NetworkList = ({\n networks,\n onClick,\n}: {\n networks: Network[];\n onClick: (networkId: string) => void;\n}) => {\n const renderNetworkItem = useCallback(\n (network: Network) => <NetworkItem {...network} onClick={() => onClick(network.id)} />,\n [onClick],\n );\n\n return <VirtualList items={networks} itemHeight={64} renderItem={renderNetworkItem} />;\n};\n","import React, { ChangeEvent, useEffect, useMemo, useRef } from \"react\";\nimport { Icons } from \"../../../assets\";\nimport { useDebouncedCallback } from \"../../hooks\";\nimport { Input } from \"..\";\nimport styled from \"styled-components\";\nimport { withTokens } from \"../../libs\";\n\nconst Wrapper = styled.div`\n ${withTokens(\"colors-border-active-default\", \"radius-s\")}\n\n &:focus-within {\n box-shadow: inset 0 0 0 2px var(--colors-border-active-default);\n }\n border-radius: var(--radius-s, 8px);\n`;\n\ntype InputProps = React.ComponentProps<\"input\">;\ntype Props = Readonly<\n InputProps & {\n onDebouncedChange?: (current: string, prev: string) => void;\n debounceTime?: number;\n autoFocus?: boolean;\n }\n>;\n\nexport function Search({\n onDebouncedChange,\n debounceTime = 500,\n onChange,\n autoFocus = true,\n ...props\n}: Props) {\n const initialValue = props.value ?? props.defaultValue ?? \"\";\n const prevValue = useRef(String(initialValue));\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (autoFocus && searchInputRef.current) {\n // Delay focus to prevent layout shifts\n setTimeout(() => {\n searchInputRef.current?.focus({ preventScroll: true });\n }, 0);\n }\n }, [autoFocus]);\n\n const handleDebouncedChange = useDebouncedCallback(\n useMemo(() => {\n if (!onDebouncedChange) return;\n return (event: ChangeEvent<HTMLInputElement>) => {\n const current = event.target.value;\n onDebouncedChange(current, prevValue.current);\n prevValue.current = current;\n };\n }, [onDebouncedChange]),\n debounceTime,\n );\n\n const handleChange = useMemo(() => {\n if (!handleDebouncedChange && !onChange) return;\n return (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleDebouncedChange?.(event);\n };\n }, [handleDebouncedChange, onChange]);\n\n return (\n <Wrapper>\n <Input\n {...props}\n ref={searchInputRef}\n icon={<Icons.Search size=\"S\" />}\n onChange={handleChange}\n />\n </Wrapper>\n );\n}\n","import React, { ReactNode } from \"react\";\nimport { Text } from \"../../../components\";\nimport { withTokens } from \"../../libs\";\nimport styled from \"styled-components\";\n\nconst Wrapper = styled.div<{ $spacing: \"sm\" | \"md\" }>`\n ${withTokens(\n \"colors-surface-transparent-subdued-default\",\n \"colors-content-subdued-default-default\",\n \"radius-xs\",\n \"spacing-xxxs\",\n )}\n\n padding: ${({ $spacing }) => ($spacing === \"sm\" ? \"1px\" : \"2px\")} var(--spacing-xxxs);\n border-radius: var(--radius-xs);\n display: inline-flex;\n background-color: var(--colors-surface-transparent-subdued-default);\n flex-shrink: 0;\n`;\n\nexport const Tag = ({\n textTransform = \"none\",\n spacing = \"sm\",\n children,\n}: {\n textTransform?: string;\n spacing?: \"sm\" | \"md\";\n children: ReactNode;\n}) => {\n return (\n <Wrapper data-testid=\"tag\" $spacing={spacing}>\n <Text\n color=\"var(--colors-content-subdued-default-default)\"\n fontSize=\"10px\"\n lineHeight=\"16px\"\n textTransform={textTransform}\n >\n {children}\n </Text>\n </Wrapper>\n );\n};\n","import debounce from \"lodash/debounce\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { Icons } from \"../../../assets\";\nimport { Flex } from \"../../../components\";\nimport { withTokens } from \"../../libs\";\n\nconst DEBOUNCE_MS = 250;\n\nconst COLORS_BORDER_STATUS_ERROR_DEFAULT = \"colors-border-status-error-default\";\nconst EXTRA_FONT_SIZE = \"0.75rem\";\nconst ICON_BUTTONS_SIZE = \"32px\";\nconst LABEL_OFFSET_Y = `calc(-0.5 * ${EXTRA_FONT_SIZE})`;\nconst LABEL_OFFSET_X = \"var(--spacing-s, 16px)\";\nconst LABEL_PADDING = \"5px\";\n\ntype NativeInputProps = Omit<React.ComponentProps<\"input\">, \"value\" | \"defaultValue\">;\n\nexport type TextInputProps = Readonly<\n NativeInputProps & {\n defaultValue?: string;\n label?: string;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n error?: boolean;\n helperText?: string;\n }\n>;\n\nconst ClearButton = styled.button`\n ${withTokens(\"colors-surface-dark-default\")}\n\n all: unset;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: ${ICON_BUTTONS_SIZE};\n width: ${ICON_BUTTONS_SIZE};\n`;\n\nconst Container = styled.div`\n ${withTokens(\"spacing-xxs\")}\n\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xxs, 4px);\n position: relative;\n min-width: 328px;\n`;\n\nconst Label = styled.label<{ isDisabled: boolean; hasError: boolean; isFocused: boolean }>`\n ${withTokens(\n COLORS_BORDER_STATUS_ERROR_DEFAULT,\n \"colors-border-active-default\",\n \"colors-content-disabled\",\n \"colors-content-subdued-default-default\",\n \"spacing-s\",\n )}\n color: ${({ hasError, isDisabled, isFocused }) =>\n isDisabled\n ? \"var(--colors-content-disabled)\"\n : hasError\n ? `var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT});`\n : isFocused\n ? \"var(--colors-border-active-default)\"\n : \"var(--colors-content-subdued-default-default);\"};\n font-size: ${EXTRA_FONT_SIZE};\n padding-inline: ${LABEL_PADDING};\n position: absolute;\n top: ${LABEL_OFFSET_Y};\n left: calc(${LABEL_OFFSET_X} - ${LABEL_PADDING});\n`;\n\nconst Wrapper = styled.div<{\n hasStart: boolean;\n hasEnd: boolean;\n}>`\n ${withTokens(\n \"colors-content-default-default\",\n \"colors-surface-transparent-subdued-default\",\n \"radius-s\",\n \"spacing-s\",\n \"spacing-xxs\",\n )}\n\n align-items: center;\n border-radius: var(--radius-s);\n display: flex;\n gap: var(--spacing-xxs, 8px);\n height: 56px;\n padding: ${({ hasEnd, hasStart }) =>\n `0 ${hasEnd ? \"var(--spacing-xs, 8px)\" : LABEL_OFFSET_X} 0 ${\n hasStart ? \"var(--spacing-xs, 8px)\" : LABEL_OFFSET_X\n }`};\n position: relative;\n transition: height 0.3s linear;\n`;\n\nconst StyledInput = styled.input`\n ${withTokens(\"colors-border-disabled-default\")}\n\n flex: 1;\n background: none;\n border: none;\n cursor: text;\n &[disabled] {\n color: var(--colors-border-disabled-default);\n cursor: not-allowed;\n }\n outline: none;\n`;\n\nconst Fieldset = styled.fieldset<{\n hasError: boolean;\n hasLabel: boolean;\n isDisabled: boolean;\n isFocused: boolean;\n}>`\n ${withTokens(\n COLORS_BORDER_STATUS_ERROR_DEFAULT,\n \"colors-border-active-default\",\n \"colors-content-subdued-default-default\",\n \"colors-content-disabled\",\n \"spacing-s\",\n )}\n border-radius: var(--radius-s);\n border-color: ${({ isDisabled, hasError, isFocused }) =>\n isDisabled\n ? \"var(--colors-content-disabled)\"\n : hasError\n ? `var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT})`\n : isFocused\n ? \"var(--colors-border-active-default)\"\n : \"var(--colors-content-subdued-default-default)\"};\n border-style: solid;\n border-width: 1px;\n bottom: 0;\n font-size: ${EXTRA_FONT_SIZE};\n left: 0;\n overflow: hidden;\n padding: 0 calc(${LABEL_OFFSET_X} - ${LABEL_PADDING});\n pointer-events: none;\n position: absolute;\n right: 0;\n top: ${({ hasLabel }) => (hasLabel ? LABEL_OFFSET_Y : \"0\")};\n`;\n\nconst Legend = styled.legend`\n visibility: hidden;\n padding-inline: ${LABEL_PADDING};\n`;\n\nconst HelperContainer = styled(Flex)`\n ${withTokens(COLORS_BORDER_STATUS_ERROR_DEFAULT)}\n align-items: center;\n`;\n\n// TODO what's the color for disabled helperText?\nconst HelperText = styled.span<{ hasError: boolean; isDisabled: boolean }>`\n ${withTokens(COLORS_BORDER_STATUS_ERROR_DEFAULT, \"colors-border-disabled-default\")}\n ${({ isDisabled, hasError }) =>\n isDisabled\n ? \"var(--colors-border-disabled-default)\"\n : hasError\n ? `color: var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT});`\n : \"\"}\n font-size: ${EXTRA_FONT_SIZE};\n`;\n\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n label,\n name,\n defaultValue = \"\",\n startAdornment = null,\n endAdornment = null,\n error = false,\n helperText,\n style,\n onFocus,\n onBlur,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [isFocused, setIsFocused] = React.useState(false);\n const [value, setValue] = React.useState(defaultValue);\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n React.useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n\n const hideClearDebounced = React.useMemo(\n () => debounce(() => setIsFocused(false), DEBOUNCE_MS),\n [],\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n hideClearDebounced.cancel();\n setIsFocused(true);\n onFocus?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(e);\n hideClearDebounced();\n };\n\n React.useEffect(() => () => hideClearDebounced.cancel(), [hideClearDebounced]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n const clearInput = () => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n setValue(\"\");\n inputRef.current.focus();\n }\n };\n\n const showClear = value.length > 0 && (isFocused || error);\n const hasEnd = showClear || Boolean(endAdornment);\n const hasError = Boolean(error);\n const hasLabel = Boolean(label);\n const isDisabled = Boolean(rest.disabled);\n\n return (\n <Container style={style}>\n {label && (\n <Label isDisabled={isDisabled} hasError={hasError} isFocused={isFocused} htmlFor={name}>\n {label}\n </Label>\n )}\n\n <Wrapper hasStart={Boolean(startAdornment)} hasEnd={hasEnd}>\n {startAdornment}\n\n <StyledInput\n name={name}\n defaultValue={defaultValue}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n {...rest}\n ref={inputRef}\n />\n\n {showClear ? (\n <ClearButton onClick={clearInput} aria-label=\"Clear\">\n <Icons.DeleteCircleFill size=\"S\" color=\"var(--colors-surface-dark-default)\" />\n </ClearButton>\n ) : (\n endAdornment\n )}\n\n <Fieldset\n hasError={hasError}\n hasLabel={hasLabel}\n isDisabled={isDisabled}\n isFocused={isFocused}\n >\n {label ? <Legend>{label}</Legend> : null}\n </Fieldset>\n </Wrapper>\n\n {helperText ? (\n <HelperContainer columnGap={2}>\n {hasError ? (\n <Icons.DeleteCircleFill\n size=\"S\"\n color={`var(--${COLORS_BORDER_STATUS_ERROR_DEFAULT})`}\n />\n ) : null}\n <HelperText isDisabled={isDisabled} hasError={hasError}>\n {helperText}\n </HelperText>\n </HelperContainer>\n ) : null}\n </Container>\n );\n },\n);\n\nTextInput.displayName = \"TextInput\";\n","import React, { useEffect, useRef, useCallback } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { Flex, InfiniteLoader } from \"../../../components\";\n\ninterface VirtualItem {\n key: string | number | bigint;\n index: number;\n start: number;\n end: number;\n size: number;\n}\n\n/**\n * Props for the VirtualList component, which efficiently renders large lists\n * by virtualizing DOM nodes to improve performance.\n */\ntype VirtualListProps<T> = {\n /**\n * Gap between items in the list.\n */\n gap?: number;\n /**\n * Height of each item in the list.\n * This is used to calculate the total height of the list and the position of each item.\n */\n itemHeight: number;\n /**\n * Number of extra items to render outside the visible viewport for smoother scrolling.\n * Defaults to 5.\n */\n overscan?: number;\n /**\n * React component or node to display when the list is loading additional items.\n * If not provided, a default loading spinner will be used.\n */\n LoadingComponent?: React.ReactNode;\n /**\n * Indicates whether new items are currently being loaded.\n */\n isLoading?: boolean;\n /**\n * Indicates if there are more items to load.\n */\n hasNextPage?: boolean;\n /**\n * Number of items to check before the end of the list to trigger loading more items.\n * Defaults to 5.\n */\n threshold?: number;\n /**\n * Callback function to be called when the user scrolls to the end of the visible items.\n * This can be used to load more items when the user reaches the end of the list.\n */\n onVisibleItemsScrollEnd?: () => void;\n /**\n * Function to render each item in the list.\n * Receives a single value from the items array as an argument and should return a React node.\n */\n renderItem: (item: T) => React.ReactNode;\n /**\n * The array of items which will be rendered\n */\n items: T[];\n /**\n * When set to true, the list will scroll to the top\n */\n scrollToTop?: boolean;\n /**\n * React component or node to display at the bottom of the list, after all items.\n */\n bottomComponent?: React.ReactNode;\n};\n\nconst DefaultLoadingComponent = () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"76px\">\n <InfiniteLoader />\n </Flex>\n);\n\nfunction easeInOutCubic(t: number) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nexport const VirtualList = <T,>({\n gap,\n hasNextPage = false,\n isLoading,\n itemHeight,\n items,\n LoadingComponent,\n onVisibleItemsScrollEnd,\n overscan = 5,\n renderItem,\n scrollToTop = false,\n bottomComponent,\n threshold = 5,\n}: VirtualListProps<T>) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const scrollToFn = useCallback(\n (\n offset: number,\n options: { adjustments?: number; behavior?: \"auto\" | \"smooth\" },\n instance: { scrollElement: HTMLElement | null },\n ) => {\n const element = instance.scrollElement;\n if (!element) return;\n\n const duration = options.behavior === \"smooth\" ? 100 : 0;\n\n if (duration === 0) {\n element.scrollTop = offset;\n return;\n }\n\n const startTime = performance.now();\n const startTop = element.scrollTop;\n const distanceToScroll = offset - startTop;\n\n const scrollStep = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easedProgress = easeInOutCubic(progress);\n\n element.scrollTop = startTop + distanceToScroll * easedProgress;\n\n if (progress < 1) {\n requestAnimationFrame(scrollStep);\n }\n };\n\n requestAnimationFrame(scrollStep);\n },\n [],\n );\n\n const rowVirtualizer = useVirtualizer({\n gap,\n count: hasNextPage ? items.length + 1 : items.length,\n overscan,\n getScrollElement: () => parentRef.current,\n estimateSize: () => itemHeight,\n scrollToFn,\n });\n\n useEffect(() => {\n if (scrollToTop && parentRef.current) {\n scrollToFn(0, { behavior: \"smooth\" }, { scrollElement: parentRef.current });\n }\n }, [scrollToTop, scrollToFn]);\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n\n useEffect(() => {\n if (!virtualItems.length) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n\n if (\n lastItem.index >= items.length - 1 - threshold &&\n hasNextPage &&\n !isLoading &&\n onVisibleItemsScrollEnd\n ) {\n onVisibleItemsScrollEnd();\n }\n }, [hasNextPage, onVisibleItemsScrollEnd, items.length, isLoading, threshold, virtualItems]);\n\n const showCustomLoadingComponent = !!LoadingComponent;\n\n const Loading = useCallback(\n () => (showCustomLoadingComponent ? LoadingComponent : <DefaultLoadingComponent />),\n [showCustomLoadingComponent, LoadingComponent],\n );\n\n return (\n <div\n ref={parentRef}\n style={{ width: \"100%\", height: \"100%\", overflow: \"auto\", scrollbarWidth: \"none\" }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n const item = items[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n ref={rowVirtualizer.measureElement}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translateY(${virtualRow.start}px)`,\n height: `${itemHeight}px`,\n width: \"100%\",\n }}\n >\n {item ? renderItem(item) : <Loading />}\n </div>\n );\n })}\n {bottomComponent && (\n <div\n style={{\n position: \"absolute\",\n top: `${rowVirtualizer.getTotalSize()}px`,\n left: 0,\n width: \"100%\",\n }}\n >\n {bottomComponent}\n </div>\n )}\n </div>\n {isLoading && <Loading />}\n </div>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nexport function useDebouncedCallback<T extends unknown[]>(\n callback: ((...args: T) => void) | undefined,\n delay?: number,\n) {\n const [debouncedCallback, setDebouncedCallback] = useState<(...args: T) => void>();\n const timeout = useRef<number>(3000);\n\n useEffect(() => {\n if (!callback) return setDebouncedCallback(undefined);\n\n setDebouncedCallback(() => (...args: T) => {\n clearTimeout(timeout.current);\n timeout.current = setTimeout(() => callback(...args), delay);\n });\n\n return () => clearTimeout(timeout.current);\n }, [callback, delay]);\n\n return debouncedCallback;\n}\n","// From https://github.com/LedgerHQ/ldls/blob/main/libs/design-tokens/src/lib/design-tokens.ts :\n\nexport type SpacingScale = {\n \"spacing-xs\": string;\n \"spacing-s\": string;\n \"spacing-m\": string;\n \"spacing-l\": string;\n \"spacing-xl\": string;\n \"spacing-xxs\": string;\n \"spacing-xxxs\": string;\n \"spacing-none\": string;\n \"marging-xs\": string;\n \"marging-s\": string;\n \"marging-m\": string;\n \"marging-l\": string;\n};\n\nexport const spacing: SpacingScale = {\n \"spacing-xs\": \"8px\",\n \"spacing-s\": \"16px\",\n \"spacing-m\": \"24px\",\n \"spacing-l\": \"32px\",\n \"spacing-xl\": \"40px\",\n \"spacing-xxs\": \"12px\",\n \"spacing-xxxs\": \"4px\",\n \"spacing-none\": \"0px\",\n \"marging-xs\": \"8px\",\n \"marging-s\": \"16px\",\n \"marging-m\": \"24px\",\n \"marging-l\": \"32px\",\n};\n\nexport type ModeColors = {\n \"background-default\": string;\n \"background-constant-black\": string;\n \"background-constant-white\": string;\n \"background-backdrop-default\": string;\n \"background-inverted\": string;\n \"background-drawer-default\": string;\n \"surface-brand-primary-default\": string;\n \"surface-brand-primary-hover\": string;\n \"surface-brand-primary-pressed\": string;\n \"surface-default-default\": string;\n \"surface-default-hover\": string;\n \"surface-default-pressed\": string;\n \"surface-default-inverted-default\": string;\n \"surface-default-inverted-hover\": string;\n \"surface-default-inverted-pressed\": string;\n \"surface-constant-white\": string;\n \"surface-constant-black\": string;\n \"surface-status-error-default\": string;\n \"surface-status-error-strong-default\": string;\n \"surface-status-error-strong-hover\": string;\n \"surface-status-error-strong-pressed\": string;\n \"surface-status-warning-default\": string;\n \"surface-status-warning-strong-default\": string;\n \"surface-status-warning-strong-hover\": string;\n \"surface-status-warning-strong-pressed\": string;\n \"surface-status-success-default\": string;\n \"surface-status-success-strong-default\": string;\n \"surface-status-success-strong-hover\": string;\n \"surface-status-success-strong-pressed\": string;\n \"surface-transparent-default\": string;\n \"surface-transparent-hover\": string;\n \"surface-transparent-pressed\": string;\n \"surface-transparent-inverted-default\": string;\n \"surface-transparent-inverted-hover\": string;\n \"surface-transparent-inverted-pressed\": string;\n \"surface-transparent-subdued-default\": string;\n \"surface-transparent-subdued-inverted-default\": string;\n \"surface-transparent-subdued-inverted-hover\": string;\n \"surface-transparent-subdued-inverted-pressed\": string;\n \"surface-transparent-subdued-inverted-disabled\": string;\n \"surface-transparent-subdued-hover\": string;\n \"surface-transparent-subdued-pressed\": string;\n \"surface-transparent-subdued-disabled\": string;\n \"surface-subdued-default\": string;\n \"surface-subdued-hover\": string;\n \"surface-subdued-pressed\": string;\n \"surface-disabled\": string;\n \"surface-interactive-default\": string;\n \"surface-interactive-hover\": string;\n \"surface-interactive-pressed\": string;\n \"surface-interactive-selected-default\": string;\n \"surface-interactive-selected-hover\": string;\n \"surface-interactive-selected-pressed\": string;\n \"surface-_native-default\": string;\n \"surface-dark-default\": string;\n \"surface-dark-hover\": string;\n \"surface-dark-pressed\": string;\n \"surface-active-default\": string;\n \"surface-active-hover\": string;\n \"surface-active-pressed\": string;\n \"content-default-default\": string;\n \"content-default-inverted-default\": string;\n \"content-constant-white\": string;\n \"content-constant-black\": string;\n \"content-constant-grey\": string;\n \"content-status-error-default\": string;\n \"content-status-error-hover\": string;\n \"content-status-error-pressed\": string;\n \"content-status-warning-default\": string;\n \"content-status-success-color\": string;\n \"content-on-primary-default\": string;\n \"content-on-primary-hover\": string;\n \"content-on-primary-pressed\": string;\n \"content-on-primary-disabled\": string;\n \"content-on-secondary-default\": string;\n \"content-on-secondary-hover\": string;\n \"content-on-secondary-pressed\": string;\n \"content-on-secondary-disabled\": string;\n \"content-disabled\": string;\n \"content-interactive-default-default\": string;\n \"content-interactive-default-hover\": string;\n \"content-interactive-default-pressed\": string;\n \"content-interactive-inverted-default\": string;\n \"content-interactive-inverted-hover\": string;\n \"content-interactive-inverted-pressed\": string;\n \"content-subdued-default-default\": string;\n \"content-subdued-inverted-default\": string;\n \"content-_native-default\": string;\n \"content-light-default-default\": string;\n \"content-light-inverted-default\": string;\n \"border-default-default\": string;\n \"border-default-inverted-default\": string;\n \"border-default-inverted-disabled\": string;\n \"border-constant-white\": string;\n \"border-constant-black\": string;\n \"border-status-error-default\": string;\n \"border-status-error-hover\": string;\n \"border-status-error-pressed\": string;\n \"border-status-warning-default\": string;\n \"border-status-success-default\": string;\n \"border-on-primary-default\": string;\n \"border-on-primary-disabled\": string;\n \"border-on-secondary-default\": string;\n \"border-on-secondary-disabled\": string;\n \"border-disabled-default\": string;\n \"border-disabled-inverted\": string;\n \"border-light-default\": string;\n \"border-subdued-default-default\": string;\n \"border-subdued-default-hover\": string;\n \"border-subdued-inverted-default\": string;\n \"border-interactive-default\": string;\n \"border-interactive-hover\": string;\n \"border-interactive-pressed\": string;\n \"border-focus-default\": string;\n \"border-active-default\": string;\n \"border-active-hover\": string;\n \"border-active-pressed\": string;\n \"crypto-bitcoin-sv\": string;\n \"crypto-bitcoin-gold\": string;\n \"crypto-zcash\": string;\n \"crypto-yieldly\": string;\n \"crypto-uni\": string;\n \"crypto-uniswap\": string;\n \"crypto-bitcoin-cash\": string;\n \"crypto-tezos\": string;\n \"crypto-sol\": string;\n \"crypto-xrp\": string;\n \"crypto-tron\": string;\n \"crypto-sats\": string;\n \"crypto-polkadot\": string;\n \"crypto-bitcoin\": string;\n \"crypto-compound\": string;\n \"crypto-peercoin\": string;\n \"crypto-omg-network\": string;\n \"crypto-near\": string;\n \"crypto-stellar\": string;\n \"crypto-nano\": string;\n \"crypto-nimiq\": string;\n \"crypto-multiverse-x\": string;\n \"crypto-ethereum\": string;\n \"crypto-okb\": string;\n \"crypto-tether-usdt\": string;\n \"crypto-avax\": string;\n \"crypto-bgb\": string;\n \"crypto-usdc\": string;\n \"crypto-monero\": string;\n \"crypto-tkx\": string;\n \"crypto-huobi\": string;\n \"crypto-pivx\": string;\n \"crypto-cardano\": string;\n \"crypto-dydx\": string;\n \"crypto-cro\": string;\n \"crypto-hnt\": string;\n \"crypto-hedera\": string;\n \"crypto-ftm\": string;\n \"crypto-flr\": string;\n \"crypto-bat\": string;\n \"crypto-ethereum-classic\": string;\n \"crypto-bincance\": string;\n \"crypto-ethergem\": string;\n \"crypto-iota\": string;\n \"crypto-chainlink\": string;\n \"crypto-dym\": string;\n \"crypto-eos\": string;\n \"crypto-waves\": string;\n \"crypto-polygon\": string;\n \"crypto-celo\": string;\n \"crypto-dogecoin\": string;\n \"crypto-algorand\": string;\n \"crypto-cosmos\": string;\n \"crypto-digibyte\": string;\n \"crypto-pirl\": string;\n \"crypto-eng\": string;\n \"crypto-decred\": string;\n \"crypto-dash\": string;\n \"crypto-xin\": string;\n \"crypto-tusd\": string;\n \"crypto-litecoin\": string;\n \"crypto-komodo\": string;\n \"crypto-elrond\": string;\n \"crypto-osmo\": string;\n \"crypto-leo\": string;\n \"crypto-bytecoin\": string;\n \"crypto-aion\": string;\n \"crypto-dai\": string;\n \"crypto-neo\": string;\n};\n\nexport const light: ModeColors = {\n \"background-default\": \"#ffffff\",\n \"background-constant-black\": \"#000000\",\n \"background-constant-white\": \"#ffffff\",\n \"background-backdrop-default\": \"#0000004d\",\n \"background-inverted\": \"#000000\",\n \"background-drawer-default\": \"#ffffff\",\n \"surface-brand-primary-default\": \"#d4a0ff\",\n \"surface-brand-primary-hover\": \"#b380dd\",\n \"surface-brand-primary-pressed\": \"#7e4ea5\",\n \"surface-default-default\": \"#ffffff\",\n \"surface-default-hover\": \"#fbfbfb\",\n \"surface-default-pressed\": \"#f4f4f4\",\n \"surface-default-inverted-default\": \"#000000\",\n \"surface-default-inverted-hover\": \"#272727\",\n \"surface-default-inverted-pressed\": \"#4d4d4d\",\n \"surface-constant-white\": \"#ffffff\",\n \"surface-constant-black\": \"#000000\",\n \"surface-status-error-default\": \"#c242441a\",\n \"surface-status-error-strong-default\": \"#c24244\",\n \"surface-status-error-strong-hover\": \"#852e2f\",\n \"surface-status-error-strong-pressed\": \"#702e2f\",\n \"surface-status-warning-default\": \"#d38b201a\",\n \"surface-status-warning-strong-default\": \"#d38b20\",\n \"surface-status-warning-strong-hover\": \"#885a14\",\n \"surface-status-warning-strong-pressed\": \"#63420f\",\n \"surface-status-success-default\": \"#47883a1a\",\n \"surface-status-success-strong-default\": \"#47883a\",\n \"surface-status-success-strong-hover\": \"#33572e\",\n \"surface-status-success-strong-pressed\": \"#2c4828\",\n \"surface-transparent-default\": \"#00000000\",\n \"surface-transparent-hover\": \"#0000001a\",\n \"surface-transparent-pressed\": \"#00000033\",\n \"surface-transparent-inverted-default\": \"#ffffff00\",\n \"surface-transparent-inverted-hover\": \"#ffffff1a\",\n \"surface-transparent-inverted-pressed\": \"#ffffff33\",\n \"surface-transparent-subdued-default\": \"#0000000d\",\n \"surface-transparent-subdued-inverted-default\": \"#ffffff1a\",\n \"surface-transparent-subdued-inverted-hover\": \"#ffffff33\",\n \"surface-transparent-subdued-inverted-pressed\": \"#ffffff4d\",\n \"surface-transparent-subdued-inverted-disabled\": \"#ffffff1a\",\n \"surface-transparent-subdued-hover\": \"#0000001a\",\n \"surface-transparent-subdued-pressed\": \"#00000033\",\n \"surface-transparent-subdued-disabled\": \"#0000000d\",\n \"surface-subdued-default\": \"#f4f4f4\",\n \"surface-subdued-hover\": \"#e8e8e8\",\n \"surface-subdued-pressed\": \"#d5d5d5\",\n \"surface-disabled\": \"#f4f4f4\",\n \"surface-interactive-default\": \"#ffffff\",\n \"surface-interactive-hover\": \"#fbfbfb\",\n \"surface-interactive-pressed\": \"#f4f4f4\",\n \"surface-interactive-selected-default\": \"#4d4d4d\",\n \"surface-interactive-selected-hover\": \"#272727\",\n \"surface-interactive-selected-pressed\": \"#000000\",\n \"surface-_native-default\": \"#f7f7f7\",\n \"surface-dark-default\": \"#c1c1c1\",\n \"surface-dark-hover\": \"#767676\",\n \"surface-dark-pressed\": \"#6a6a6a\",\n \"surface-active-default\": \"#d4a0ff\",\n \"surface-active-hover\": \"#b380dd\",\n \"surface-active-pressed\": \"#7e4ea5\",\n \"content-default-default\": \"#000000\",\n \"content-default-inverted-default\": \"#ffffff\",\n \"content-constant-white\": \"#ffffff\",\n \"content-constant-black\": \"#000000\",\n \"content-constant-grey\": \"#e8e8e8\",\n \"content-status-error-default\": \"#c24244\",\n \"content-status-error-hover\": \"#a43234\",\n \"content-status-error-pressed\": \"#852e2f\",\n \"content-status-warning-default\": \"#ae731a\",\n \"content-status-success-color\": \"#47883a\",\n \"content-on-primary-default\": \"#000000\",\n \"content-on-primary-hover\": \"#ffffffcc\",\n \"content-on-primary-pressed\": \"#ffffffb3\",\n \"content-on-primary-disabled\": \"#ffffff99\",\n \"content-on-secondary-default\": \"#ffffff\",\n \"content-on-secondary-hover\": \"#ffffff\",\n \"content-on-secondary-pressed\": \"#ffffff\",\n \"content-on-secondary-disabled\": \"#ffffff\",\n \"content-disabled\": \"#c1c1c1\",\n \"content-interactive-default-default\": \"#000000\",\n \"content-interactive-default-hover\": \"#272727\",\n \"content-interactive-default-pressed\": \"#4d4d4d\",\n \"content-interactive-inverted-default\": \"#ffffff\",\n \"content-interactive-inverted-hover\": \"#fbfbfb\",\n \"content-interactive-inverted-pressed\": \"#f4f4f4\",\n \"content-subdued-default-default\": \"#6a6a6a\",\n \"content-subdued-inverted-default\": \"#d5d5d5\",\n \"content-_native-default\": \"#007aff\",\n \"content-light-default-default\": \"#e8e8e8\",\n \"content-light-inverted-default\": \"#6a6a6a\",\n \"border-default-default\": \"#000000\",\n \"border-default-inverted-default\": \"#ffffff\",\n \"border-default-inverted-disabled\": \"#272727\",\n \"border-constant-white\": \"#ffffff\",\n \"border-constant-black\": \"#000000\",\n \"border-status-error-default\": \"#c24244\",\n \"border-status-error-hover\": \"#a43234\",\n \"border-status-error-pressed\": \"#852e2f\",\n \"border-status-warning-default\": \"#d38b20\",\n \"border-status-success-default\": \"#47883a\",\n \"border-on-primary-default\": \"#ffffff99\",\n \"border-on-primary-disabled\": \"#ffffff99\",\n \"border-on-secondary-default\": \"#ffffff\",\n \"border-on-secondary-disabled\": \"#ffffff\",\n \"border-disabled-default\": \"#e8e8e8\",\n \"border-disabled-inverted\": \"#272727\",\n \"border-light-default\": \"#e8e8e8\",\n \"border-subdued-default-default\": \"#c1c1c1\",\n \"border-subdued-default-hover\": \"#767676\",\n \"border-subdued-inverted-default\": \"#4d4d4d\",\n \"border-interactive-default\": \"#000000\",\n \"border-interactive-hover\": \"#272727\",\n \"border-interactive-pressed\": \"#4d4d4d\",\n \"border-focus-default\": \"#7e4ea5\",\n \"border-active-default\": \"#d4a0ff\",\n \"border-active-hover\": \"#b380dd\",\n \"border-active-pressed\": \"#7e4ea5\",\n \"crypto-bitcoin-sv\": \"#eab300\",\n \"crypto-bitcoin-gold\": \"#152569\",\n \"crypto-zcash\": \"#f4b728\",\n \"crypto-yieldly\": \"#f3b732\",\n \"crypto-uni\": \"#f04086\",\n \"crypto-uniswap\": \"#ff007a\",\n \"crypto-bitcoin-cash\": \"#0ac18e\",\n \"crypto-tezos\": \"#2c7df7\",\n \"crypto-sol\": \"#9945ff\",\n \"crypto-xrp\": \"#333333\",\n \"crypto-tron\": \"#ff060a\",\n \"crypto-sats\": \"#ff8b00\",\n \"crypto-polkadot\": \"#e6007a\",\n \"crypto-bitcoin\": \"#f7931a\",\n \"crypto-compound\": \"#00d395\",\n \"crypto-peercoin\": \"#3cb054\",\n \"crypto-omg-network\": \"#000000\",\n \"crypto-near\": \"#1c1d1f\",\n \"crypto-stellar\": \"#000000\",\n \"crypto-nano\": \"#5d8eb2\",\n \"crypto-nimiq\": \"#f8b425\",\n \"crypto-multiverse-x\": \"#23f7dd\",\n \"crypto-ethereum\": \"#454a75\",\n \"crypto-okb\": \"#2d60e0\",\n \"crypto-tether-usdt\": \"#00a478\",\n \"crypto-avax\": \"#e84142\",\n \"crypto-bgb\": \"#00e0ff\",\n \"crypto-usdc\": \"#f04086\",\n \"crypto-monero\": \"#f26822\",\n \"crypto-tkx\": \"#fd6a1f\",\n \"crypto-huobi\": \"#357ce1\",\n \"crypto-pivx\": \"#5c4c7c\",\n \"crypto-cardano\": \"#0033ad\",\n \"crypto-dydx\": \"#6966ff\",\n \"crypto-cro\": \"#002d74\",\n \"crypto-hnt\": \"#474dff\",\n \"crypto-hedera\": \"#000000\",\n \"crypto-ftm\": \"#1969ff\",\n \"crypto-flr\": \"#e62058\",\n \"crypto-bat\": \"#ff5000\",\n \"crypto-ethereum-classic\": \"#0b8311\",\n \"crypto-bincance\": \"#f5bc00\",\n \"crypto-ethergem\": \"#4a4ab6\",\n \"crypto-iota\": \"#000000\",\n \"crypto-chainlink\": \"#2a5ada\",\n \"crypto-dym\": \"#f1e1d4\",\n \"crypto-eos\": \"#000000\",\n \"crypto-waves\": \"#0055ff\",\n \"crypto-polygon\": \"#8247e5\",\n \"crypto-celo\": \"#fcff52\",\n \"crypto-dogecoin\": \"#c3a634\",\n \"crypto-algorand\": \"#00a478\",\n \"crypto-cosmos\": \"#2e3148\",\n \"crypto-digibyte\": \"#0066cc\",\n \"crypto-pirl\": \"#357ce1\",\n \"crypto-eng\": \"#2f2f2f\",\n \"crypto-decred\": \"#2970ff\",\n \"crypto-dash\": \"#008ce7\",\n \"crypto-xin\": \"#1eb5fa\",\n \"crypto-tusd\": \"#1a5aff\",\n \"crypto-litecoin\": \"#345d9d\",\n \"crypto-komodo\": \"#41ead4\",\n \"crypto-elrond\": \"#000000\",\n \"crypto-osmo\": \"#302dbb\",\n \"crypto-leo\": \"#000000\",\n \"crypto-bytecoin\": \"#f04086\",\n \"crypto-aion\": \"#212529\",\n \"crypto-dai\": \"#f5ac37\",\n \"crypto-neo\": \"#7dd224\",\n};\n\nexport const dark: ModeColors = {\n \"background-default\": \"#000000\",\n \"background-constant-black\": \"#000000\",\n \"background-constant-white\": \"#ffffff\",\n \"background-backdrop-default\": \"#0000004d\",\n \"background-inverted\": \"#ffffff\",\n \"background-drawer-default\": \"#191919\",\n \"surface-brand-primary-default\": \"#d4a0ff\",\n \"surface-brand-primary-hover\": \"#ddb3ff\",\n \"surface-brand-primary-pressed\": \"#e5c6ff\",\n \"surface-default-default\": \"#000000\",\n \"surface-default-hover\": \"#191919\",\n \"surface-default-pressed\": \"#272727\",\n \"surface-default-inverted-default\": \"#ffffff\",\n \"surface-default-inverted-hover\": \"#e1e1e1\",\n \"surface-default-inverted-pressed\": \"#c3c3c3\",\n \"surface-constant-white\": \"#ffffff\",\n \"surface-constant-black\": \"#000000\",\n \"surface-status-error-default\": \"#f872741a\",\n \"surface-status-error-strong-default\": \"#f87274\",\n \"surface-status-error-strong-hover\": \"#fec8c9\",\n \"surface-status-error-strong-pressed\": \"#fee1e2\",\n \"surface-status-warning-default\": \"#ffbd421a\",\n \"surface-status-warning-strong-default\": \"#ffbd42\",\n \"surface-status-warning-strong-hover\": \"#ffe7ac\",\n \"surface-status-warning-strong-pressed\": \"#fff3d5\",\n \"surface-status-success-default\": \"#6ec85c1a\",\n \"surface-status-success-strong-default\": \"#6ec85c\",\n \"surface-status-success-strong-hover\": \"#cbeec4\",\n \"surface-status-success-strong-pressed\": \"#e6f7e1\",\n \"surface-transparent-default\": \"#ffffff00\",\n \"surface-transparent-hover\": \"#ffffff1a\",\n \"surface-transparent-pressed\": \"#ffffff33\",\n \"surface-transparent-inverted-default\": \"#00000000\",\n \"surface-transparent-inverted-hover\": \"#0000001a\",\n \"surface-transparent-inverted-pressed\": \"#00000033\",\n \"surface-transparent-subdued-default\": \"#ffffff1a\",\n \"surface-transparent-subdued-inverted-default\": \"#0000000d\",\n \"surface-transparent-subdued-inverted-hover\": \"#0000001a\",\n \"surface-transparent-subdued-inverted-pressed\": \"#00000033\",\n \"surface-transparent-subdued-inverted-disabled\": \"#0000000d\",\n \"surface-transparent-subdued-hover\": \"#ffffff33\",\n \"surface-transparent-subdued-pressed\": \"#ffffff4d\",\n \"surface-transparent-subdued-disabled\": \"#ffffff1a\",\n \"surface-subdued-default\": \"#272727\",\n \"surface-subdued-hover\": \"#3c3c3c\",\n \"surface-subdued-pressed\": \"#565656\",\n \"surface-disabled\": \"#272727\",\n \"surface-interactive-default\": \"#000000\",\n \"surface-interactive-hover\": \"#191919\",\n \"surface-interactive-pressed\": \"#272727\",\n \"surface-interactive-selected-default\": \"#c3c3c3\",\n \"surface-interactive-selected-hover\": \"#e1e1e1\",\n \"surface-interactive-selected-pressed\": \"#ffffff\",\n \"surface-_native-default\": \"#c3c3c3\",\n \"surface-dark-default\": \"#717070\",\n \"surface-dark-hover\": \"#848484\",\n \"surface-dark-pressed\": \"#9c9c9c\",\n \"surface-active-default\": \"#d4a0ff\",\n \"surface-active-hover\": \"#ddb3ff\",\n \"surface-active-pressed\": \"#e5c6ff\",\n \"content-default-default\": \"#ffffff\",\n \"content-default-inverted-default\": \"#000000\",\n \"content-constant-white\": \"#ffffff\",\n \"content-constant-black\": \"#000000\",\n \"content-constant-grey\": \"#e1e1e1\",\n \"content-status-error-default\": \"#f87274\",\n \"content-status-error-hover\": \"#fca6a7\",\n \"content-status-error-pressed\": \"#fec8c9\",\n \"content-status-warning-default\": \"#ffd373\",\n \"content-status-success-color\": \"#6ec85c\",\n \"content-on-primary-default\": \"#000000\",\n \"content-on-primary-hover\": \"#000000cc\",\n \"content-on-primary-pressed\": \"#000000b3\",\n \"content-on-primary-disabled\": \"#00000099\",\n \"content-on-secondary-default\": \"#ffffff\",\n \"content-on-secondary-hover\": \"#ffffff\",\n \"content-on-secondary-pressed\": \"#ffffff\",\n \"content-on-secondary-disabled\": \"#ffffff\",\n \"content-disabled\": \"#565656\",\n \"content-interactive-default-default\": \"#ffffff\",\n \"content-interactive-default-hover\": \"#e1e1e1\",\n \"content-interactive-default-pressed\": \"#c3c3c3\",\n \"content-interactive-inverted-default\": \"#000000\",\n \"content-interactive-inverted-hover\": \"#191919\",\n \"content-interactive-inverted-pressed\": \"#272727\",\n \"content-subdued-default-default\": \"#9c9c9c\",\n \"content-subdued-inverted-default\": \"#565656\",\n \"content-_native-default\": \"#007aff\",\n \"content-light-default-default\": \"#3c3c3c\",\n \"content-light-inverted-default\": \"#9c9c9c\",\n \"border-default-default\": \"#ffffff\",\n \"border-default-inverted-default\": \"#000000\",\n \"border-default-inverted-disabled\": \"#9c9c9c\",\n \"border-constant-white\": \"#ffffff\",\n \"border-constant-black\": \"#000000\",\n \"border-status-error-default\": \"#f87274\",\n \"border-status-error-hover\": \"#fca6a7\",\n \"border-status-error-pressed\": \"#fec8c9\",\n \"border-status-warning-default\": \"#ffbd42\",\n \"border-status-success-default\": \"#6ec85c\",\n \"border-on-primary-default\": \"#00000099\",\n \"border-on-primary-disabled\": \"#00000099\",\n \"border-on-secondary-default\": \"#ffffff\",\n \"border-on-secondary-disabled\": \"#ffffff\",\n \"border-disabled-default\": \"#191919\",\n \"border-disabled-inverted\": \"#9c9c9c\",\n \"border-light-default\": \"#3c3c3c\",\n \"border-subdued-default-default\": \"#717070\",\n \"border-subdued-default-hover\": \"#848484\",\n \"border-subdued-inverted-default\": \"#c3c3c3\",\n \"border-interactive-default\": \"#ffffff\",\n \"border-interactive-hover\": \"#e1e1e1\",\n \"border-interactive-pressed\": \"#c3c3c3\",\n \"border-focus-default\": \"#f2e2ff\",\n \"border-active-default\": \"#d4a0ff\",\n \"border-active-hover\": \"#ddb3ff\",\n \"border-active-pressed\": \"#e5c6ff\",\n \"crypto-bitcoin-sv\": \"#eab300\",\n \"crypto-bitcoin-gold\": \"#152569\",\n \"crypto-zcash\": \"#f4b728\",\n \"crypto-yieldly\": \"#f3b732\",\n \"crypto-uni\": \"#f04086\",\n \"crypto-uniswap\": \"#ff007a\",\n \"crypto-bitcoin-cash\": \"#0ac18e\",\n \"crypto-tezos\": \"#2c7df7\",\n \"crypto-sol\": \"#9945ff\",\n \"crypto-xrp\": \"#333333\",\n \"crypto-tron\": \"#ff060a\",\n \"crypto-sats\": \"#ff8b00\",\n \"crypto-polkadot\": \"#e6007a\",\n \"crypto-bitcoin\": \"#f7931a\",\n \"crypto-compound\": \"#00d395\",\n \"crypto-peercoin\": \"#3cb054\",\n \"crypto-omg-network\": \"#000000\",\n \"crypto-near\": \"#1c1d1f\",\n \"crypto-stellar\": \"#000000\",\n \"crypto-nano\": \"#5d8eb2\",\n \"crypto-nimiq\": \"#f8b425\",\n \"crypto-multiverse-x\": \"#23f7dd\",\n \"crypto-ethereum\": \"#454a75\",\n \"crypto-okb\": \"#2d60e0\",\n \"crypto-tether-usdt\": \"#00a478\",\n \"crypto-avax\": \"#e84142\",\n \"crypto-bgb\": \"#00e0ff\",\n \"crypto-usdc\": \"#f04086\",\n \"crypto-monero\": \"#f26822\",\n \"crypto-tkx\": \"#fd6a1f\",\n \"crypto-huobi\": \"#357ce1\",\n \"crypto-pivx\": \"#5c4c7c\",\n \"crypto-cardano\": \"#0033ad\",\n \"crypto-dydx\": \"#6966ff\",\n \"crypto-cro\": \"#002d74\",\n \"crypto-hnt\": \"#474dff\",\n \"crypto-hedera\": \"#000000\",\n \"crypto-ftm\": \"#1969ff\",\n \"crypto-flr\": \"#e62058\",\n \"crypto-bat\": \"#ff5000\",\n \"crypto-ethereum-classic\": \"#0b8311\",\n \"crypto-bincance\": \"#f5bc00\",\n \"crypto-ethergem\": \"#4a4ab6\",\n \"crypto-iota\": \"#000000\",\n \"crypto-chainlink\": \"#2a5ada\",\n \"crypto-dym\": \"#f1e1d4\",\n \"crypto-eos\": \"#000000\",\n \"crypto-waves\": \"#0055ff\",\n \"crypto-polygon\": \"#8247e5\",\n \"crypto-celo\": \"#fcff52\",\n \"crypto-dogecoin\": \"#c3a634\",\n \"crypto-algorand\": \"#00a478\",\n \"crypto-cosmos\": \"#2e3148\",\n \"crypto-digibyte\": \"#0066cc\",\n \"crypto-pirl\": \"#357ce1\",\n \"crypto-eng\": \"#2f2f2f\",\n \"crypto-decred\": \"#2970ff\",\n \"crypto-dash\": \"#008ce7\",\n \"crypto-xin\": \"#1eb5fa\",\n \"crypto-tusd\": \"#1a5aff\",\n \"crypto-litecoin\": \"#345d9d\",\n \"crypto-komodo\": \"#41ead4\",\n \"crypto-elrond\": \"#000000\",\n \"crypto-osmo\": \"#302dbb\",\n \"crypto-leo\": \"#000000\",\n \"crypto-bytecoin\": \"#f04086\",\n \"crypto-aion\": \"#212529\",\n \"crypto-dai\": \"#f5ac37\",\n \"crypto-neo\": \"#7dd224\",\n};\n\nexport const tailwindColors = {\n \"background-default\": \"var(--background-default)\",\n \"background-constant-black\": \"var(--background-constant-black)\",\n \"background-constant-white\": \"var(--background-constant-white)\",\n \"background-backdrop-default\": \"var(--background-backdrop-default)\",\n \"background-inverted\": \"var(--background-inverted)\",\n \"background-drawer-default\": \"var(--background-drawer-default)\",\n \"surface-brand-primary-default\": \"var(--surface-brand-primary-default)\",\n \"surface-brand-primary-hover\": \"var(--surface-brand-primary-hover)\",\n \"surface-brand-primary-pressed\": \"var(--surface-brand-primary-pressed)\",\n \"surface-default-default\": \"var(--surface-default-default)\",\n \"surface-default-hover\": \"var(--surface-default-hover)\",\n \"surface-default-pressed\": \"var(--surface-default-pressed)\",\n \"surface-default-inverted-default\": \"var(--surface-default-inverted-default)\",\n \"surface-default-inverted-hover\": \"var(--surface-default-inverted-hover)\",\n \"surface-default-inverted-pressed\": \"var(--surface-default-inverted-pressed)\",\n \"surface-constant-white\": \"var(--surface-constant-white)\",\n \"surface-constant-black\": \"var(--surface-constant-black)\",\n \"surface-status-error-default\": \"var(--surface-status-error-default)\",\n \"surface-status-error-strong-default\": \"var(--surface-status-error-strong-default)\",\n \"surface-status-error-strong-hover\": \"var(--surface-status-error-strong-hover)\",\n \"surface-status-error-strong-pressed\": \"var(--surface-status-error-strong-pressed)\",\n \"surface-status-warning-default\": \"var(--surface-status-warning-default)\",\n \"surface-status-warning-strong-default\": \"var(--surface-status-warning-strong-default)\",\n \"surface-status-warning-strong-hover\": \"var(--surface-status-warning-strong-hover)\",\n \"surface-status-warning-strong-pressed\": \"var(--surface-status-warning-strong-pressed)\",\n \"surface-status-success-default\": \"var(--surface-status-success-default)\",\n \"surface-status-success-strong-default\": \"var(--surface-status-success-strong-default)\",\n \"surface-status-success-strong-hover\": \"var(--surface-status-success-strong-hover)\",\n \"surface-status-success-strong-pressed\": \"var(--surface-status-success-strong-pressed)\",\n \"surface-transparent-default\": \"var(--surface-transparent-default)\",\n \"surface-transparent-hover\": \"var(--surface-transparent-hover)\",\n \"surface-transparent-pressed\": \"var(--surface-transparent-pressed)\",\n \"surface-transparent-inverted-default\": \"var(--surface-transparent-inverted-default)\",\n \"surface-transparent-inverted-hover\": \"var(--surface-transparent-inverted-hover)\",\n \"surface-transparent-inverted-pressed\": \"var(--surface-transparent-inverted-pressed)\",\n \"surface-transparent-subdued-default\": \"var(--surface-transparent-subdued-default)\",\n \"surface-transparent-subdued-inverted-default\":\n \"var(--surface-transparent-subdued-inverted-default)\",\n \"surface-transparent-subdued-inverted-hover\": \"var(--surface-transparent-subdued-inverted-hover)\",\n \"surface-transparent-subdued-inverted-pressed\":\n \"var(--surface-transparent-subdued-inverted-pressed)\",\n \"surface-transparent-subdued-inverted-disabled\":\n \"var(--surface-transparent-subdued-inverted-disabled)\",\n \"surface-transparent-subdued-hover\": \"var(--surface-transparent-subdued-hover)\",\n \"surface-transparent-subdued-pressed\": \"var(--surface-transparent-subdued-pressed)\",\n \"surface-transparent-subdued-disabled\": \"var(--surface-transparent-subdued-disabled)\",\n \"surface-subdued-default\": \"var(--surface-subdued-default)\",\n \"surface-subdued-hover\": \"var(--surface-subdued-hover)\",\n \"surface-subdued-pressed\": \"var(--surface-subdued-pressed)\",\n \"surface-disabled\": \"var(--surface-disabled)\",\n \"surface-interactive-default\": \"var(--surface-interactive-default)\",\n \"surface-interactive-hover\": \"var(--surface-interactive-hover)\",\n \"surface-interactive-pressed\": \"var(--surface-interactive-pressed)\",\n \"surface-interactive-selected-default\": \"var(--surface-interactive-selected-default)\",\n \"surface-interactive-selected-hover\": \"var(--surface-interactive-selected-hover)\",\n \"surface-interactive-selected-pressed\": \"var(--surface-interactive-selected-pressed)\",\n \"surface-_native-default\": \"var(--surface-_native-default)\",\n \"surface-dark-default\": \"var(--surface-dark-default)\",\n \"surface-dark-hover\": \"var(--surface-dark-hover)\",\n \"surface-dark-pressed\": \"var(--surface-dark-pressed)\",\n \"surface-active-default\": \"var(--surface-active-default)\",\n \"surface-active-hover\": \"var(--surface-active-hover)\",\n \"surface-active-pressed\": \"var(--surface-active-pressed)\",\n \"content-default-default\": \"var(--content-default-default)\",\n \"content-default-inverted-default\": \"var(--content-default-inverted-default)\",\n \"content-constant-white\": \"var(--content-constant-white)\",\n \"content-constant-black\": \"var(--content-constant-black)\",\n \"content-constant-grey\": \"var(--content-constant-grey)\",\n \"content-status-error-default\": \"var(--content-status-error-default)\",\n \"content-status-error-hover\": \"var(--content-status-error-hover)\",\n \"content-status-error-pressed\": \"var(--content-status-error-pressed)\",\n \"content-status-warning-default\": \"var(--content-status-warning-default)\",\n \"content-status-success-color\": \"var(--content-status-success-color)\",\n \"content-on-primary-default\": \"var(--content-on-primary-default)\",\n \"content-on-primary-hover\": \"var(--content-on-primary-hover)\",\n \"content-on-primary-pressed\": \"var(--content-on-primary-pressed)\",\n \"content-on-primary-disabled\": \"var(--content-on-primary-disabled)\",\n \"content-on-secondary-default\": \"var(--content-on-secondary-default)\",\n \"content-on-secondary-hover\": \"var(--content-on-secondary-hover)\",\n \"content-on-secondary-pressed\": \"var(--content-on-secondary-pressed)\",\n \"content-on-secondary-disabled\": \"var(--content-on-secondary-disabled)\",\n \"content-disabled\": \"var(--content-disabled)\",\n \"content-interactive-default-default\": \"var(--content-interactive-default-default)\",\n \"content-interactive-default-hover\": \"var(--content-interactive-default-hover)\",\n \"content-interactive-default-pressed\": \"var(--content-interactive-default-pressed)\",\n \"content-interactive-inverted-default\": \"var(--content-interactive-inverted-default)\",\n \"content-interactive-inverted-hover\": \"var(--content-interactive-inverted-hover)\",\n \"content-interactive-inverted-pressed\": \"var(--content-interactive-inverted-pressed)\",\n \"content-subdued-default-default\": \"var(--content-subdued-default-default)\",\n \"content-subdued-inverted-default\": \"var(--content-subdued-inverted-default)\",\n \"content-_native-default\": \"var(--content-_native-default)\",\n \"content-light-default-default\": \"var(--content-light-default-default)\",\n \"content-light-inverted-default\": \"var(--content-light-inverted-default)\",\n \"border-default-default\": \"var(--border-default-default)\",\n \"border-default-inverted-default\": \"var(--border-default-inverted-default)\",\n \"border-default-inverted-disabled\": \"var(--border-default-inverted-disabled)\",\n \"border-constant-white\": \"var(--border-constant-white)\",\n \"border-constant-black\": \"var(--border-constant-black)\",\n \"border-status-error-default\": \"var(--border-status-error-default)\",\n \"border-status-error-hover\": \"var(--border-status-error-hover)\",\n \"border-status-error-pressed\": \"var(--border-status-error-pressed)\",\n \"border-status-warning-default\": \"var(--border-status-warning-default)\",\n \"border-status-success-default\": \"var(--border-status-success-default)\",\n \"border-on-primary-default\": \"var(--border-on-primary-default)\",\n \"border-on-primary-disabled\": \"var(--border-on-primary-disabled)\",\n \"border-on-secondary-default\": \"var(--border-on-secondary-default)\",\n \"border-on-secondary-disabled\": \"var(--border-on-secondary-disabled)\",\n \"border-disabled-default\": \"var(--border-disabled-default)\",\n \"border-disabled-inverted\": \"var(--border-disabled-inverted)\",\n \"border-light-default\": \"var(--border-light-default)\",\n \"border-subdued-default-default\": \"var(--border-subdued-default-default)\",\n \"border-subdued-default-hover\": \"var(--border-subdued-default-hover)\",\n \"border-subdued-inverted-default\": \"var(--border-subdued-inverted-default)\",\n \"border-interactive-default\": \"var(--border-interactive-default)\",\n \"border-interactive-hover\": \"var(--border-interactive-hover)\",\n \"border-interactive-pressed\": \"var(--border-interactive-pressed)\",\n \"border-focus-default\": \"var(--border-focus-default)\",\n \"border-active-default\": \"var(--border-active-default)\",\n \"border-active-hover\": \"var(--border-active-hover)\",\n \"border-active-pressed\": \"var(--border-active-pressed)\",\n \"crypto-bitcoin-sv\": \"var(--crypto-bitcoin-sv)\",\n \"crypto-bitcoin-gold\": \"var(--crypto-bitcoin-gold)\",\n \"crypto-zcash\": \"var(--crypto-zcash)\",\n \"crypto-yieldly\": \"var(--crypto-yieldly)\",\n \"crypto-uni\": \"var(--crypto-uni)\",\n \"crypto-uniswap\": \"var(--crypto-uniswap)\",\n \"crypto-bitcoin-cash\": \"var(--crypto-bitcoin-cash)\",\n \"crypto-tezos\": \"var(--crypto-tezos)\",\n \"crypto-sol\": \"var(--crypto-sol)\",\n \"crypto-xrp\": \"var(--crypto-xrp)\",\n \"crypto-tron\": \"var(--crypto-tron)\",\n \"crypto-sats\": \"var(--crypto-sats)\",\n \"crypto-polkadot\": \"var(--crypto-polkadot)\",\n \"crypto-bitcoin\": \"var(--crypto-bitcoin)\",\n \"crypto-compound\": \"var(--crypto-compound)\",\n \"crypto-peercoin\": \"var(--crypto-peercoin)\",\n \"crypto-omg-network\": \"var(--crypto-omg-network)\",\n \"crypto-near\": \"var(--crypto-near)\",\n \"crypto-stellar\": \"var(--crypto-stellar)\",\n \"crypto-nano\": \"var(--crypto-nano)\",\n \"crypto-nimiq\": \"var(--crypto-nimiq)\",\n \"crypto-multiverse-x\": \"var(--crypto-multiverse-x)\",\n \"crypto-ethereum\": \"var(--crypto-ethereum)\",\n \"crypto-okb\": \"var(--crypto-okb)\",\n \"crypto-tether-usdt\": \"var(--crypto-tether-usdt)\",\n \"crypto-avax\": \"var(--crypto-avax)\",\n \"crypto-bgb\": \"var(--crypto-bgb)\",\n \"crypto-usdc\": \"var(--crypto-usdc)\",\n \"crypto-monero\": \"var(--crypto-monero)\",\n \"crypto-tkx\": \"var(--crypto-tkx)\",\n \"crypto-huobi\": \"var(--crypto-huobi)\",\n \"crypto-pivx\": \"var(--crypto-pivx)\",\n \"crypto-cardano\": \"var(--crypto-cardano)\",\n \"crypto-dydx\": \"var(--crypto-dydx)\",\n \"crypto-cro\": \"var(--crypto-cro)\",\n \"crypto-hnt\": \"var(--crypto-hnt)\",\n \"crypto-hedera\": \"var(--crypto-hedera)\",\n \"crypto-ftm\": \"var(--crypto-ftm)\",\n \"crypto-flr\": \"var(--crypto-flr)\",\n \"crypto-bat\": \"var(--crypto-bat)\",\n \"crypto-ethereum-classic\": \"var(--crypto-ethereum-classic)\",\n \"crypto-bincance\": \"var(--crypto-bincance)\",\n \"crypto-ethergem\": \"var(--crypto-ethergem)\",\n \"crypto-iota\": \"var(--crypto-iota)\",\n \"crypto-chainlink\": \"var(--crypto-chainlink)\",\n \"crypto-dym\": \"var(--crypto-dym)\",\n \"crypto-eos\": \"var(--crypto-eos)\",\n \"crypto-waves\": \"var(--crypto-waves)\",\n \"crypto-polygon\": \"var(--crypto-polygon)\",\n \"crypto-celo\": \"var(--crypto-celo)\",\n \"crypto-dogecoin\": \"var(--crypto-dogecoin)\",\n \"crypto-algorand\": \"var(--crypto-algorand)\",\n \"crypto-cosmos\": \"var(--crypto-cosmos)\",\n \"crypto-digibyte\": \"var(--crypto-digibyte)\",\n \"crypto-pirl\": \"var(--crypto-pirl)\",\n \"crypto-eng\": \"var(--crypto-eng)\",\n \"crypto-decred\": \"var(--crypto-decred)\",\n \"crypto-dash\": \"var(--crypto-dash)\",\n \"crypto-xin\": \"var(--crypto-xin)\",\n \"crypto-tusd\": \"var(--crypto-tusd)\",\n \"crypto-litecoin\": \"var(--crypto-litecoin)\",\n \"crypto-komodo\": \"var(--crypto-komodo)\",\n \"crypto-elrond\": \"var(--crypto-elrond)\",\n \"crypto-osmo\": \"var(--crypto-osmo)\",\n \"crypto-leo\": \"var(--crypto-leo)\",\n \"crypto-bytecoin\": \"var(--crypto-bytecoin)\",\n \"crypto-aion\": \"var(--crypto-aion)\",\n \"crypto-dai\": \"var(--crypto-dai)\",\n \"crypto-neo\": \"var(--crypto-neo)\",\n} as const;\n\nexport const primitiveColors = {\n \"light-constant-400\": \"#d5d5d5\",\n \"light-constant-950\": \"#000000\",\n \"light-constant-050\": \"#ffffff\",\n \"light-green-100\": \"#e6f7e1\",\n \"light-green-200\": \"#cbeec4\",\n \"light-green-300\": \"#a2e095\",\n \"light-green-400\": \"#6ec85c\",\n \"light-green-500\": \"#5ba34d\",\n \"light-green-600\": \"#47883a\",\n \"light-green-700\": \"#3b6c32\",\n \"light-green-800\": \"#33572e\",\n \"light-green-900\": \"#2c4828\",\n \"light-green-950\": \"#142b12\",\n \"light-green-050\": \"#f4fbf2\",\n \"light-green-600---0%\": \"#47883a00\",\n \"light-green-400---0%\": \"#6ec85c00\",\n \"light-green-color\": \"#ffffff\",\n \"light-green-600---10%\": \"#47883a1a\",\n \"light-green-400---10%\": \"#6ec85c1a\",\n \"light-yellow-100\": \"#fff3d5\",\n \"light-yellow-200\": \"#ffe7ac\",\n \"light-yellow-300\": \"#ffd373\",\n \"light-yellow-400\": \"#ffbd42\",\n \"light-yellow-500\": \"#efa22f\",\n \"light-yellow-600\": \"#d38b20\",\n \"light-yellow-700\": \"#ae731a\",\n \"light-yellow-800\": \"#885a14\",\n \"light-yellow-900\": \"#63420f\",\n \"light-yellow-950\": \"#3e2909\",\n \"light-yellow-050\": \"#fff8e6\",\n \"light-yellow-600---0%\": \"#d38b2000\",\n \"light-yellow-600---10%\": \"#d38b201a\",\n \"light-yellow-400---0%\": \"#ffbd4200\",\n \"light-yellow-400---10%\": \"#ffbd421a\",\n \"light-red-100\": \"#fee1e2\",\n \"light-red-200\": \"#fec8c9\",\n \"light-red-300\": \"#fca6a7\",\n \"light-red-400\": \"#f87274\",\n \"light-red-500\": \"#f04f52\",\n \"light-red-600\": \"#c24244\",\n \"light-red-700\": \"#a43234\",\n \"light-red-800\": \"#852e2f\",\n \"light-red-900\": \"#702e2f\",\n \"light-red-950\": \"#3b1212\",\n \"light-red-050\": \"#fef1f1\",\n \"light-red-400---0%\": \"#f8727400\",\n \"light-red-600---0%\": \"#c2424400\",\n \"light-red-600---10%\": \"#c242441a\",\n \"light-red-400---10%\": \"#f872741a\",\n \"light-grey-100\": \"#fbfbfb\",\n \"light-grey-200\": \"#f4f4f4\",\n \"light-grey-300\": \"#e8e8e8\",\n \"light-grey-400\": \"#d5d5d5\",\n \"light-grey-500\": \"#c1c1c1\",\n \"light-grey-600\": \"#767676\",\n \"light-grey-700\": \"#6a6a6a\",\n \"light-grey-800\": \"#4d4d4d\",\n \"light-grey-900\": \"#272727\",\n \"light-grey-950\": \"#000000\",\n \"light-grey-950---30-%\": \"#0000004d\",\n \"light-grey-050\": \"#ffffff\",\n \"light-grey-050---90%\": \"#ffffffe6\",\n \"light-grey-050---80%\": \"#ffffffcc\",\n \"light-grey-050---70%\": \"#ffffffb3\",\n \"light-grey-050---60%\": \"#ffffff99\",\n \"light-grey-050---50%\": \"#ffffff80\",\n \"light-grey-050---40%\": \"#ffffff66\",\n \"light-grey-050--30%\": \"#ffffff4d\",\n \"light-grey-050---20%\": \"#ffffff33\",\n \"light-grey-050---10-%\": \"#ffffff1a\",\n \"light-grey-950---10%\": \"#0000001a\",\n \"light-grey-950---20%\": \"#00000033\",\n \"light-grey-950---40%\": \"#00000066\",\n \"light-grey-950---50%\": \"#00000080\",\n \"light-grey-950---60%\": \"#00000099\",\n \"light-grey-950---70%\": \"#000000b3\",\n \"light-grey-950---80%\": \"#000000cc\",\n \"light-grey-950---90%\": \"#000000e6\",\n \"light-grey-950---0%\": \"#00000000\",\n \"light-grey-050---0%\": \"#ffffff00\",\n \"light-grey-950----30%\": \"#0000004d\",\n \"light-grey-050---30%\": \"#ffffff4d\",\n \"light-grey-050---5%\": \"#ffffff0d\",\n \"light-grey-950---5%\": \"#0000000d\",\n \"light-grey-950---2%\": \"#00000005\",\n \"light-grey-050---2%\": \"#ffffff05\",\n \"light-orange-100\": \"#ffddcc\",\n \"light-orange-200\": \"#ffc2a4\",\n \"light-orange-300\": \"#ffa97f\",\n \"light-orange-400\": \"#ff8c55\",\n \"light-orange-500\": \"#ff702a\",\n \"light-orange-600\": \"#ff5300\",\n \"light-orange-700\": \"#d64400\",\n \"light-orange-800\": \"#b23a00\",\n \"light-orange-900\": \"#9e3300\",\n \"light-orange-950\": \"#662100\",\n \"light-orange-050\": \"#fef0e9\",\n \"light-crypto-colors-algorand\": \"#00a478\",\n \"light-crypto-colors-aion\": \"#212529\",\n \"light-crypto-colors-avax\": \"#e84142\",\n \"light-crypto-colors-bat\": \"#ff5000\",\n \"light-crypto-colors-bgb\": \"#00e0ff\",\n \"light-crypto-colors-bitcoin\": \"#f7931a\",\n \"light-crypto-colors-bitcoin-cash\": \"#0ac18e\",\n \"light-crypto-colors-bitcoin-gold\": \"#152569\",\n \"light-crypto-colors-bitcoin-sv\": \"#eab300\",\n \"light-crypto-colors-bincance\": \"#f5bc00\",\n \"light-crypto-colors-bytecoin\": \"#f04086\",\n \"light-crypto-colors-cardano\": \"#0033ad\",\n \"light-crypto-colors-cosmos\": \"#2e3148\",\n \"light-crypto-colors-compound\": \"#00d395\",\n \"light-crypto-colors-chainlink\": \"#2a5ada\",\n \"light-crypto-colors-dash\": \"#008ce7\",\n \"light-crypto-colors-dai\": \"#f5ac37\",\n \"light-crypto-colors-decred\": \"#2970ff\",\n \"light-crypto-colors-digibyte\": \"#0066cc\",\n \"light-crypto-colors-dogecoin\": \"#c3a634\",\n \"light-crypto-colors-dydx\": \"#6966ff\",\n \"light-crypto-colors-elrond\": \"#000000\",\n \"light-crypto-colors-eos\": \"#000000\",\n \"light-crypto-colors-ethergem\": \"#4a4ab6\",\n \"light-crypto-colors-ethereum\": \"#454a75\",\n \"light-crypto-colors-ethereum-classic\": \"#0b8311\",\n \"light-crypto-colors-huobi\": \"#357ce1\",\n \"light-crypto-colors-hnt\": \"#474dff\",\n \"light-crypto-colors-iota\": \"#000000\",\n \"light-crypto-colors-komodo\": \"#41ead4\",\n \"light-crypto-colors-leo\": \"#000000\",\n \"light-crypto-colors-litecoin\": \"#345d9d\",\n \"light-crypto-colors-monero\": \"#f26822\",\n \"light-crypto-colors-multiverse-x\": \"#23f7dd\",\n \"light-crypto-colors-nano\": \"#5d8eb2\",\n \"light-crypto-colors-near\": \"#1c1d1f\",\n \"light-crypto-colors-neo\": \"#7dd224\",\n \"light-crypto-colors-nimiq\": \"#f8b425\",\n \"light-crypto-colors-osmo\": \"#302dbb\",\n \"light-crypto-colors-okb\": \"#2d60e0\",\n \"light-crypto-colors-peercoin\": \"#3cb054\",\n \"light-crypto-colors-pirl\": \"#357ce1\",\n \"light-crypto-colors-pivx\": \"#5c4c7c\",\n \"light-crypto-colors-polkadot\": \"#e6007a\",\n \"light-crypto-colors-stellar\": \"#000000\",\n \"light-crypto-colors-tether-usdt\": \"#00a478\",\n \"light-crypto-colors-tezos\": \"#2c7df7\",\n \"light-crypto-colors-tkx\": \"#fd6a1f\",\n \"light-crypto-colors-tron\": \"#ff060a\",\n \"light-crypto-colors-tusd\": \"#1a5aff\",\n \"light-crypto-colors-usdc\": \"#f04086\",\n \"light-crypto-colors-uni\": \"#f04086\",\n \"light-crypto-colors-waves\": \"#0055ff\",\n \"light-crypto-colors-xrp\": \"#333333\",\n \"light-crypto-colors-zcash\": \"#f4b728\",\n \"light-crypto-colors-cro\": \"#002d74\",\n \"light-crypto-colors-eng\": \"#2f2f2f\",\n \"light-crypto-colors-hedera\": \"#000000\",\n \"light-crypto-colors-polygon\": \"#8247e5\",\n \"light-crypto-colors-sats\": \"#ff8b00\",\n \"light-crypto-colors-sol\": \"#9945ff\",\n \"light-crypto-colors-uniswap\": \"#ff007a\",\n \"light-crypto-colors-xin\": \"#1eb5fa\",\n \"light-crypto-colors-yieldly\": \"#f3b732\",\n \"light-crypto-colors-omg-network\": \"#000000\",\n \"light-crypto-colors-celo\": \"#fcff52\",\n \"light-crypto-colors-ftm\": \"#1969ff\",\n \"light-crypto-colors-dym\": \"#f1e1d4\",\n \"light-crypto-colors-flr\": \"#e62058\",\n \"light-discover-1inch\": \"#212529\",\n \"light-discover-changelly\": \"#10d078\",\n \"light-discover-compound\": \"#00d395\",\n \"light-discover-deversifi\": \"#6436ff\",\n \"light-discover-lido\": \"#47a1f8\",\n \"light-discover-opensea\": \"#2081e2\",\n \"light-discover-paraswap\": \"#266ef0\",\n \"light-discover-rarible\": \"#feda03\",\n \"light-discover-zerion\": \"#2962ef\",\n \"light-discover-bitrefill\": \"#449bf7\",\n \"light-discover-loopipay-blue\": \"#0050ff\",\n \"light-discover-loopipay-black\": \"#0e0d13\",\n \"light-discover-loopipay-lime\": \"#e1fb61\",\n \"light-discover-simplex\": \"#2ea836\",\n \"light-discover-baanx\": \"#003edd\",\n \"light-discover-mercuryo\": \"#212529\",\n \"light-discover-juno\": \"#4643ee\",\n \"light-discover-sardine\": \"#2d29d7\",\n \"light-purple-100\": \"#f6ecff\",\n \"light-purple-200\": \"#f2e2ff\",\n \"light-purple-300\": \"#eed9ff\",\n \"light-purple-400\": \"#e5c6ff\",\n \"light-purple-500\": \"#ddb3ff\",\n \"light-purple-600\": \"#d4a0ff\",\n \"light-purple-700\": \"#b380dd\",\n \"light-purple-800\": \"#7e4ea5\",\n \"light-purple-900\": \"#6a3794\",\n \"light-purple-950\": \"#3f2058\",\n \"light-purple-050\": \"#fbf5ff\",\n \"dark-constant-400\": \"#c3c3c3\",\n \"dark-constant-950\": \"#000000\",\n \"dark-constant-050\": \"#ffffff\",\n \"dark-green-100\": \"#2c4828\",\n \"dark-green-200\": \"#33572e\",\n \"dark-green-300\": \"#3b6c32\",\n \"dark-green-400\": \"#47883a\",\n \"dark-green-500\": \"#5ba34d\",\n \"dark-green-600\": \"#6ec85c\",\n \"dark-green-700\": \"#a2e095\",\n \"dark-green-800\": \"#cbeec4\",\n \"dark-green-900\": \"#e6f7e1\",\n \"dark-green-950\": \"#f4fbf2\",\n \"dark-green-050\": \"#142b12\",\n \"dark-green-600---0%\": \"#6ec85c00\",\n \"dark-green-600---10%\": \"#6ec85c1a\",\n \"dark-yellow-100\": \"#63420f\",\n \"dark-yellow-200\": \"#885a14\",\n \"dark-yellow-300\": \"#ae731a\",\n \"dark-yellow-400\": \"#d38b20\",\n \"dark-yellow-500\": \"#efa22f\",\n \"dark-yellow-600\": \"#ffbd42\",\n \"dark-yellow-700\": \"#ffd373\",\n \"dark-yellow-800\": \"#ffe7ac\",\n \"dark-yellow-900\": \"#fff3d5\",\n \"dark-yellow-950\": \"#fff8e6\",\n \"dark-yellow-050\": \"#3e2909\",\n \"dark-yellow-600---0%\": \"#ffbd4200\",\n \"dark-yellow-600---10%\": \"#ffbd421a\",\n \"dark-red-100\": \"#702e2f\",\n \"dark-red-200\": \"#852e2f\",\n \"dark-red-300\": \"#a43234\",\n \"dark-red-400\": \"#c24244\",\n \"dark-red-500\": \"#f04f52\",\n \"dark-red-600\": \"#f87274\",\n \"dark-red-700\": \"#fca6a7\",\n \"dark-red-800\": \"#fec8c9\",\n \"dark-red-900\": \"#fee1e2\",\n \"dark-red-1000\": \"#fef1f1\",\n \"dark-red-050\": \"#3b1212\",\n \"dark-red-600---0%\": \"#f8727400\",\n \"dark-red-600---10%\": \"#f872741a\",\n \"dark-grey-100\": \"#191919\",\n \"dark-grey-200\": \"#272727\",\n \"dark-grey-300\": \"#3c3c3c\",\n \"dark-grey-400\": \"#565656\",\n \"dark-grey-500\": \"#717070\",\n \"dark-grey-600\": \"#848484\",\n \"dark-grey-700\": \"#9c9c9c\",\n \"dark-grey-800\": \"#c3c3c3\",\n \"dark-grey-900\": \"#e1e1e1\",\n \"dark-grey-950\": \"#ffffff\",\n \"dark-grey-050---10%\": \"#0000001a\",\n \"dark-grey-050---20%\": \"#00000033\",\n \"dark-grey-050---30%\": \"#0000004d\",\n \"dark-grey-050---40%\": \"#00000066\",\n \"dark-grey-050---50%\": \"#00000080\",\n \"dark-grey-050---60%\": \"#00000099\",\n \"dark-grey-050---70%\": \"#000000b3\",\n \"dark-grey-050---80%\": \"#000000cc\",\n \"dark-grey-050---90%\": \"#000000e6\",\n \"dark-grey-950---10%\": \"#ffffff1a\",\n \"dark-grey-950---20%\": \"#ffffff33\",\n \"dark-grey-950---30%\": \"#ffffff4d\",\n \"dark-grey-950---40%\": \"#ffffff66\",\n \"dark-grey-950---50%\": \"#ffffff80\",\n \"dark-grey-950---60%\": \"#ffffff99\",\n \"dark-grey-950---70%\": \"#ffffffb3\",\n \"dark-grey-950---80%\": \"#ffffffcc\",\n \"dark-grey-950---90%\": \"#ffffffe6\",\n \"dark-grey-050\": \"#000000\",\n \"dark-grey-950---0%\": \"#ffffff00\",\n \"dark-grey-050---0%\": \"#00000000\",\n \"dark-grey-050---5%\": \"#0000000d\",\n \"dark-grey-950---5%\": \"#ffffff0d\",\n \"dark-grey-950---2%\": \"#ffffff05\",\n \"dark-orange-100\": \"#9e3300\",\n \"dark-orange-200\": \"#b23a00\",\n \"dark-orange-300\": \"#d64400\",\n \"dark-orange-400\": \"#ff5300\",\n \"dark-orange-500\": \"#ff702a\",\n \"dark-orange-600\": \"#ff8c55\",\n \"dark-orange-700\": \"#ffa97f\",\n \"dark-orange-800\": \"#ffc2a4\",\n \"dark-orange-900\": \"#ffddcc\",\n \"dark-orange-950\": \"#fef0e9\",\n \"dark-orange-050\": \"#662100\",\n \"dark-crypto-colors-aion\": \"#212529\",\n \"dark-crypto-colors-algorand\": \"#00a478\",\n \"dark-crypto-colors-bytecoin\": \"#f04086\",\n \"dark-crypto-colors-avax\": \"#e84142\",\n \"dark-crypto-colors-bat\": \"#ff5000\",\n \"dark-crypto-colors-bgb\": \"#00e0ff\",\n \"dark-crypto-colors-bitcoin\": \"#f7931a\",\n \"dark-crypto-colors-bitcoin-cash\": \"#0ac18e\",\n \"dark-crypto-colors-bitcoin-gold\": \"#152569\",\n \"dark-crypto-colors-bitcoin-sv\": \"#eab300\",\n \"dark-crypto-colors-bincance\": \"#f5bc00\",\n \"dark-crypto-colors-cardano\": \"#0033ad\",\n \"dark-crypto-colors-cosmos\": \"#2e3148\",\n \"dark-crypto-colors-compound\": \"#00d395\",\n \"dark-crypto-colors-celo\": \"#fcff52\",\n \"dark-crypto-colors-chainlink\": \"#2a5ada\",\n \"dark-crypto-colors-cro\": \"#002d74\",\n \"dark-crypto-colors-dash\": \"#008ce7\",\n \"dark-crypto-colors-dai\": \"#f5ac37\",\n \"dark-crypto-colors-decred\": \"#2970ff\",\n \"dark-crypto-colors-digibyte\": \"#0066cc\",\n \"dark-crypto-colors-dogecoin\": \"#c3a634\",\n \"dark-crypto-colors-dydx\": \"#6966ff\",\n \"dark-crypto-colors-dym\": \"#f1e1d4\",\n \"dark-crypto-colors-elrond\": \"#000000\",\n \"dark-crypto-colors-eng\": \"#2f2f2f\",\n \"dark-crypto-colors-eos\": \"#000000\",\n \"dark-crypto-colors-ethergem\": \"#4a4ab6\",\n \"dark-crypto-colors-ethereum\": \"#454a75\",\n \"dark-crypto-colors-ethereum-classic\": \"#0b8311\",\n \"dark-crypto-colors-flr\": \"#e62058\",\n \"dark-crypto-colors-ftm\": \"#1969ff\",\n \"dark-crypto-colors-hedera\": \"#000000\",\n \"dark-crypto-colors-hnt\": \"#474dff\",\n \"dark-crypto-colors-huobi\": \"#357ce1\",\n \"dark-crypto-colors-iota\": \"#000000\",\n \"dark-crypto-colors-komodo\": \"#41ead4\",\n \"dark-crypto-colors-leo\": \"#000000\",\n \"dark-crypto-colors-litecoin\": \"#345d9d\",\n \"dark-crypto-colors-monero\": \"#f26822\",\n \"dark-crypto-colors-multiverse-x\": \"#23f7dd\",\n \"dark-crypto-colors-nano\": \"#5d8eb2\",\n \"dark-crypto-colors-near\": \"#1c1d1f\",\n \"dark-crypto-colors-neo\": \"#7dd224\",\n \"dark-crypto-colors-nimiq\": \"#f8b425\",\n \"dark-crypto-colors-omg-network\": \"#000000\",\n \"dark-crypto-colors-okb\": \"#2d60e0\",\n \"dark-crypto-colors-osmo\": \"#302dbb\",\n \"dark-crypto-colors-peercoin\": \"#3cb054\",\n \"dark-crypto-colors-pirl\": \"#357ce1\",\n \"dark-crypto-colors-pivx\": \"#5c4c7c\",\n \"dark-crypto-colors-polkadot\": \"#e6007a\",\n \"dark-crypto-colors-polygon\": \"#8247e5\",\n \"dark-crypto-colors-sats\": \"#ff8b00\",\n \"dark-crypto-colors-stellar\": \"#000000\",\n \"dark-crypto-colors-sol\": \"#9945ff\",\n \"dark-crypto-colors-tether-usdt\": \"#00a478\",\n \"dark-crypto-colors-tezos\": \"#2c7df7\",\n \"dark-crypto-colors-tkx\": \"#fd6a1f\",\n \"dark-crypto-colors-tron\": \"#ff060a\",\n \"dark-crypto-colors-uniswap\": \"#ff007a\",\n \"dark-crypto-colors-tusd\": \"#1a5aff\",\n \"dark-crypto-colors-usdc\": \"#f04086\",\n \"dark-crypto-colors-uni\": \"#f04086\",\n \"dark-crypto-colors-waves\": \"#0055ff\",\n \"dark-crypto-colors-xrp\": \"#333333\",\n \"dark-crypto-colors-xin\": \"#1eb5fa\",\n \"dark-crypto-colors-yieldly\": \"#f3b732\",\n \"dark-crypto-colors-zcash\": \"#f4b728\",\n \"dark-discover-1inch\": \"#212529\",\n \"dark-discover-changelly\": \"#10d078\",\n \"dark-discover-loopipay-blue\": \"#0050ff\",\n \"dark-discover-loopipay-black\": \"#0e0d13\",\n \"dark-discover-loopipay-lime-2\": \"#e1fb61\",\n \"dark-discover-simplex\": \"#2ea836\",\n \"dark-discover-baanx\": \"#003edd\",\n \"dark-discover-mercuryo\": \"#212529\",\n \"dark-discover-juno\": \"#4643ee\",\n \"dark-discover-sardine\": \"#2d29d7\",\n \"dark-discover-compound\": \"#00d395\",\n \"dark-discover-deversifi\": \"#6436ff\",\n \"dark-discover-lido\": \"#47a1f8\",\n \"dark-discover-opensea\": \"#2081e2\",\n \"dark-discover-paraswap\": \"#266ef0\",\n \"dark-discover-rarible\": \"#feda03\",\n \"dark-discover-zerion\": \"#2962ef\",\n \"dark-discover-bitrefill\": \"#449bf7\",\n \"dark-purple-100\": \"#6a3794\",\n \"dark-purple-200\": \"#7e4ea5\",\n \"dark-purple-300\": \"#b380dd\",\n \"dark-purple-400\": \"#d4a0ff\",\n \"dark-purple-500\": \"#ddb3ff\",\n \"dark-purple-600\": \"#e5c6ff\",\n \"dark-purple-700\": \"#eed9ff\",\n \"dark-purple-800\": \"#f2e2ff\",\n \"dark-purple-900\": \"#f6ecff\",\n \"dark-purple-950\": \"#fbf5ff\",\n \"dark-purple-050\": \"#3f2058\",\n} as const;\n","import memoize from \"lodash/memoize\";\nimport { css, DefaultTheme } from \"styled-components\";\nimport { dark, light, ModeColors, spacing, SpacingScale } from \"./design-tokens\";\n\n// Add temporarily missing and override incorrect tokens here\nconst overrideOther = {\n \"radius-m\": \"12px\", // missing from tokens\n \"radius-s\": \"8px\", // missing from tokens\n \"radius-xs\": \"4px\", // missing from tokens\n \"border-width-default\": \"1px\", // missing from tokens\n \"border-width-focus\": \"2px\", // missing from tokens\n \"margin-xs\": \"8px\", // redefines marging-xs\n \"margin-s\": \"16px\", // redefines marging-s\n \"margin-m\": \"24px\", // redefines marging-m\n \"margin-l\": \"32px\", // redefines marging-l\n\n \"spacing-xs\": \"12px\", // override from \"spacing-xxs\": \"12px\"\n \"spacing-xxs\": \"8px\", // override from \"spacing-xs\": \"8px\"\n} as const;\n\n// Add temporarily missing and override incorrect colours here\nconst overrideColor = {\n light: {\n \"surface-transparent-hover\": \"#0000000D\", // override from colours\n \"surface-transparent-pressed\": \"#0000001A\", // override from colours\n \"border-subdued-default-hover\": \"#D5D5D5\", // override from colours\n\n \"border-subdued-default-pressed\": \"#C1C1C1\", // missing from colours\n \"background-active\": \"#D4A0FF\",\n },\n dark: {\n \"opacity-default-10\": \"#FFFFFF1A\", // missing from colours\n \"background-active\": \"#D4A0FF\",\n },\n} as const;\n\ntype ColorToken =\n | `colors-${keyof ModeColors}`\n | `colors-${keyof typeof overrideColor.light}`\n | `colors-${keyof typeof overrideColor.dark}`;\ntype OtherToken = keyof (SpacingScale & typeof overrideOther);\n\nexport const withTokens = (...usedTokens: Array<ColorToken | OtherToken>) => {\n const filterTokens = memoize((theme: DefaultTheme[\"theme\"]) => {\n const colors = {\n dark: { ...dark, ...overrideColor.dark },\n light: { ...light, ...overrideColor.light },\n }[theme];\n\n const colorEntries = Object.entries(colors).flatMap(([key, value]) => {\n const color = `colors-${key}` as ColorToken;\n if (!usedTokens.includes(color)) return [];\n return [[`--${color}`, value]];\n });\n const otherEntries = [spacing, overrideOther]\n .flatMap(Object.entries)\n .flatMap(([key, value]) => {\n if (!usedTokens.includes(key as OtherToken)) return [];\n return [[`--${key}`, value]];\n });\n\n return Object.fromEntries([...colorEntries, ...otherEntries]);\n });\n\n return css(({ theme }) => filterTokens(theme.colors.type as DefaultTheme[\"theme\"]));\n};\n","import Color from \"color\";\n\nimport { fontFamilies } from \"./theme\";\n\nexport const rgba = (c: string, a: number): string => Color(c).alpha(a).rgb().toString();\n\nexport const darken = (c: string, a: number): string => Color(c).darken(a).toString();\n\nexport const lighten = (c: string, a: number): string => Color(c).lighten(a).toString();\n\nexport const mix = (c: string, b: string, a: number): string =>\n Color(c).mix(Color(b), a).toString();\n\nexport const ff = (v: string) => {\n const [font, type = \"Regular\"] = v.split(\"|\");\n // @ts-expect-error FIXME\n const { style, weight } = fontFamilies[font][type];\n // @ts-expect-error FIXME\n const fallback: string = fontFamilies[font].fallback ?? \"Arial\";\n\n return {\n fontFamily: `${font}, ${fallback}`,\n fontWeight: weight,\n fontStyle: style,\n };\n};\n\nexport const ensureContrast = (color1: string, color2: string) => {\n const colorL1 = Color(color1).luminosity() + 0.05;\n const colorL2 = Color(color2).luminosity() + 0.05;\n\n const lRatio = colorL1 > colorL2 ? colorL1 / colorL2 : colorL2 / colorL1;\n\n if (lRatio < 1.5) {\n return Color(color1).rotate(180).negate().string();\n }\n return color1;\n};\n","import { ff } from \"../helpers\";\n\nexport default (props: { ff?: string }) => {\n const prop = props.ff;\n\n if (prop == null) {\n return null;\n }\n\n return ff(prop);\n};\n","import { system } from \"styled-system\";\n\nconst gaps = system({\n rowGap: { property: \"rowGap\", scale: \"space\" },\n columnGap: { property: \"columnGap\", scale: \"space\" },\n});\n\nexport default gaps;\n","import { keyframes, css, Font } from \"styled-components\";\nimport { palettes, ColorPalette } from \"@ledgerhq/ui-shared\";\n\nexport type screensBreakpoints = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\n\nexport const breakpoints = {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n xxl: \"1536px\",\n} as Record<screensBreakpoints, string>;\n\nexport const space = [\n /* space indexes:\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 */\n 0, 2, 4, 8, 10, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76,\n];\n\nexport type TextVariants =\n | \"h1\"\n | \"h1Inter\"\n | \"h2\"\n | \"h2Inter\"\n | \"h3\"\n | \"h3Inter\"\n | \"h4\"\n | \"h4Inter\"\n | \"h5\"\n | \"h5Inter\"\n | \"large\"\n | \"largeLineHeight\"\n | \"body\"\n | \"bodyLineHeight\"\n | \"paragraph\"\n | \"paragraphLineHeight\"\n | \"small\"\n | \"extraSmall\"\n | \"tiny\"\n | \"micro\"\n | \"subtitle\";\n\nexport type ThemeScale<Type, Aliases extends string> = Array<Type> & Record<Aliases, Type>;\n\nexport const fontSizes = [8, 10, 11, 12, 13, 14, 16, 20, 24, 28, 32, 36] as ThemeScale<\n number,\n TextVariants\n>;\n\n[\n fontSizes.micro,\n fontSizes.tiny,\n fontSizes.extraSmall,\n fontSizes.small,\n fontSizes.paragraph,\n fontSizes.body,\n fontSizes.large,\n fontSizes.h5,\n fontSizes.h4,\n fontSizes.h3,\n fontSizes.h2,\n fontSizes.h1,\n] = fontSizes;\nfontSizes.largeLineHeight = fontSizes.large;\nfontSizes.bodyLineHeight = fontSizes.body;\nfontSizes.paragraphLineHeight = fontSizes.paragraph;\nfontSizes.subtitle = fontSizes.extraSmall;\nfontSizes.h1Inter = fontSizes.h1;\nfontSizes.h2Inter = fontSizes.h2;\nfontSizes.h3Inter = fontSizes.h3;\nfontSizes.h4Inter = fontSizes.h4;\nfontSizes.h5Inter = fontSizes.h5;\n\nconst fontWeights = {\n extraLight: \"100\",\n light: \"300\",\n regular: \"400\",\n medium: \"500\",\n semiBold: \"600\",\n bold: \"700\",\n extraBold: \"800\",\n};\n\nexport const radii = [0, 4, 8, 12, 16, 20];\nexport const shadows = [\"0 4px 8px 0 rgba(0, 0, 0, 0.03)\"];\nexport const zIndexes = [-1, 0, 1, 9, 10, 90, 100, 900, 1000];\n\n// Those fonts are now defined in global.css, this is just a mapping for styled-system\nexport const fontFamilies = {\n Inter: {\n ExtraLight: {\n weight: 100,\n style: \"normal\",\n },\n Light: {\n weight: 300,\n style: \"normal\",\n },\n Regular: {\n weight: 400,\n style: \"normal\",\n },\n Medium: {\n weight: 500,\n style: \"normal\",\n },\n SemiBold: {\n weight: 600,\n style: \"normal\",\n },\n Bold: {\n weight: 700,\n style: \"normal\",\n },\n ExtraBold: {\n weight: 800,\n style: \"normal\",\n },\n },\n Alpha: {\n Medium: {\n weight: 500,\n style: \"normal\",\n },\n },\n};\n\nconst animationDuration = \"0.33s\";\nconst easings = {\n outQuadratic: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n};\n\nconst transition = (\n properties = [\"all\"],\n duration = animationDuration,\n easing = easings.outQuadratic,\n) => css`\n transition-property: ${properties.join(\",\")};\n transition-duration: ${duration};\n transition-timing-function: ${easing};\n`;\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n `;\nconst fadeOut = keyframes`\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n `;\nconst fadeInGrowX = keyframes`\n 0% {\n opacity: 0;\n transform: scaleX(0);\n }\n 100% {\n opacity: 1;\n transform: scaleX(1);\n }\n`;\nconst fadeInUp = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(66%);\n }\n 100% {\n opacity: 1;\n transform: translateY(0%);\n }\n `;\nconst animations = {\n fadeIn: () => css`\n ${fadeIn} ${animationDuration} ${easings.outQuadratic} forwards\n `,\n fadeOut: () => css`\n ${fadeOut} ${animationDuration} ${easings.outQuadratic} forwards\n `,\n fadeInGrowX: () => css`\n ${fadeInGrowX} 0.6s ${easings.outQuadratic} forwards\n `,\n fadeInUp: () => css`\n ${fadeInUp} ${animationDuration} ${easings.outQuadratic} forwards\n `,\n};\nconst overflow = {\n x: css`\n overflow-y: hidden;\n overflow-x: scroll;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n y: css`\n overflow-x: hidden;\n overflow-y: scroll;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n yAuto: css`\n overflow-x: hidden;\n overflow-y: auto;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n xy: css`\n overflow: scroll;\n will-change: transform;\n &:hover {\n --track-color: ${p => p.theme.colors.neutral.c30};\n }\n `,\n trackSize: 12,\n};\n\ninterface DefaultTheme {\n theme: \"dark\" | \"light\";\n animations: typeof animations;\n transition: typeof transition;\n overflow: typeof overflow;\n sizes: {\n topBarHeight: number;\n sideBarWidth: number;\n drawer: {\n side: {\n big: {\n width: number;\n };\n small: {\n width: number;\n };\n };\n popin: {\n min: {\n height: number;\n width: number;\n };\n max: {\n height: number;\n width: number;\n };\n };\n };\n };\n radii: number[];\n fontFamilies: Record<string, Record<string, Font>>;\n fontSizes: number[];\n space: number[];\n shadows: string[];\n colors: ColorPalette;\n fontWeights: Record<string, string>;\n breakpoints: Record<screensBreakpoints, string>;\n zIndexes: number[];\n}\n\nconst theme: DefaultTheme = {\n theme: \"light\",\n sizes: {\n drawer: {\n side: {\n big: {\n width: 580,\n },\n small: {\n width: 420,\n },\n },\n popin: {\n min: {\n height: 158,\n width: 462,\n },\n max: {\n height: 522,\n width: 622,\n },\n },\n },\n topBarHeight: 58,\n sideBarWidth: 230,\n },\n radii,\n fontFamilies,\n fontSizes,\n fontWeights,\n space,\n shadows,\n colors: palettes.light,\n animations,\n overflow,\n transition,\n zIndexes,\n breakpoints,\n};\n\nexport default theme;\nexport type Theme = DefaultTheme;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from \"./AccountItem/AccountItem\";\nexport * from \"./AccountList/AccountList\";\nexport * from \"./Address/Address\";\nexport * from \"./AssetItem/AssetItem\";\nexport * from \"./AssetList/AssetList\";\nexport * from \"./CardButton/CardButton\";\nexport * from \"./MarketPriceIndicator/MarketPriceIndicator\";\nexport * from \"./MarketPercentIndicator/MarketPercentIndicator\";\nexport * from \"./Input/Input\";\nexport * from \"./NetworkItem/NetworkItem\";\nexport * from \"./NetworkList/NetworkList\";\nexport * from \"./Search/Search\";\nexport * from \"./Tag/Tag\";\nexport * from \"./TextInput/TextInput\";\nexport * from \"./VirtualList/VirtualList\";\n"],"names":["icons","React","iconNames","Array","Object","set","rawKey","key","Set","Icon","name","size","color","weight","maybeIconName","Component","baseStyled","compose","fontSize","fontWeight","textAlign","lineHeight","letterSpacing","system","fontFamily","textVariantStyle","uppercase","value","Text","variant","props","p","css","getFontSource","fontsPath","fontName","fontStyles","FlexBox","styled","keyframes","rotate","Loader","InfiniteLoader","extraProps","gaps","flexbox","space","position","layout","overflow","border","baseStyles","proxyStyled","Proxy","target","thisArg","argumentsList","property","Icons","Flex","withTokens","Address","Checkbox","Tag","ICON_BUTTONS_SIZE","IconButton","Wrapper","ContentContainer","AccountInfoContainer","NameRow","NameDiv","TagWrapper","BalanceContainer","AccountItem","onClick","account","rightElement","showIcon","backgroundColor","balance","fiatValue","protocol","address","ticker","cryptoId","parentId","Boolean","e","useCallback","VirtualList","AccountList","accounts","bottomComponent","renderAccountItem","CryptoIcon","formatAddress","isShortened","formattedAddress","options","prefixLength","suffixLength","separator","threshold","copyToClipboard","text","navigator","err","console","InfoWrapper","LeftElementWrapper","AssetItem","numberOfNetworks","id","assetId","leftElement","shouldDisplayId","AssetList","assets","onVisibleItemsScrollEnd","scrollToTop","hasNextPage","isDebuggingDuplicates","renderAssetItem","Button","theme","CardButton","title","iconRight","CheckAloneMedium","renderToStaticMarkup","CheckMarkIcon","encodeURIComponent","Input","Container","isDisabled","isChecked","onChange","StyledInput","type","icon","ref","getPercentageDisplay","percent","Math","MarketPercentIndicator","percentageDisplay","MarketPriceIndicator","price","NetworkItem","NetworkList","networks","renderNetworkItem","network","useEffect","useMemo","useRef","useDebouncedCallback","Search","onDebouncedChange","debounceTime","autoFocus","initialValue","prevValue","String","searchInputRef","setTimeout","handleDebouncedChange","event","current","handleChange","$spacing","textTransform","spacing","children","debounce","DEBOUNCE_MS","COLORS_BORDER_STATUS_ERROR_DEFAULT","EXTRA_FONT_SIZE","LABEL_OFFSET_Y","LABEL_OFFSET_X","LABEL_PADDING","ClearButton","Label","hasError","isFocused","hasEnd","hasStart","Fieldset","hasLabel","Legend","HelperContainer","HelperText","TextInput","label","defaultValue","startAdornment","endAdornment","error","helperText","style","onFocus","onBlur","rest","inputRef","setIsFocused","setValue","hideClearDebounced","handleFocus","handleBlur","clearInput","showClear","useVirtualizer","DefaultLoadingComponent","easeInOutCubic","t","gap","isLoading","itemHeight","items","LoadingComponent","overscan","renderItem","parentRef","scrollToFn","offset","instance","element","duration","startTime","performance","startTop","distanceToScroll","scrollStep","currentTime","elapsed","progress","easedProgress","requestAnimationFrame","rowVirtualizer","virtualItems","lastItem","showCustomLoadingComponent","Loading","virtualRow","item","useState","callback","delay","debouncedCallback","setDebouncedCallback","timeout","undefined","args","clearTimeout","light","dark","tailwindColors","primitiveColors","memoize","overrideOther","overrideColor","usedTokens","filterTokens","colors","colorEntries","otherEntries","Color","fontFamilies","rgba","c","a","darken","lighten","mix","b","ff","v","font","fallback","ensureContrast","color1","color2","colorL1","colorL2","lRatio","prop","palettes","breakpoints","fontSizes","fontWeights","radii","shadows","zIndexes","animationDuration","easings","transition","properties","easing","fadeIn","fadeOut","fadeInGrowX","fadeInUp","animations"],"mappings":"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"}