{"version":3,"file":"index.cjs","sources":["../../../../../../src/components/erc20-token-picker/search/row/index.tsx"],"sourcesContent":["import React, { useCallback, type MouseEvent } from \"react\";\nimport { mergedCva } from \"../../../../utils/components\";\nimport { getDefaultERC20TokenLogoURL } from \"../../../../utils/erc20\";\nimport { Typography, type TypographyProps } from \"../../../typography\";\nimport { RemoteLogo, type RemoteLogoProps } from \"../../../remote-logo\";\nimport { Skeleton } from \"../../../skeleton\";\nimport type { TokenInfoWithBalance } from \"../../types\";\nimport { Balance } from \"./balance\";\n\nconst rootStyles = mergedCva(\n    [\n        \"cui-flex\",\n        \"cui-justify-between\",\n        \"cui-items-center\",\n        \"cui-h-16\",\n        \"cui-px-3\",\n        \"cui-cursor-pointer\",\n    ],\n    {\n        variants: {\n            selected: {\n                true: [\n                    \"cui-bg-gray-200\",\n                    \"hover:cui-bg-gray-200\",\n                    \"dark:cui-bg-gray-600\",\n                    \"dark:hover:cui-bg-gray-600\",\n                ],\n                false: [\"hover:cui-bg-gray-100\", \"dark:hover:cui-bg-gray-700\"],\n            },\n        },\n    },\n);\n\nconst wrapperStyles = mergedCva([\n    \"cui-flex\",\n    \"cui-flex-col\",\n    \"cui-gap-1\",\n    \"cui-pointer-events-none\",\n    \"cui-justify-center\",\n]);\n\nexport interface RowProps extends Partial<TokenInfoWithBalance> {\n    index: number;\n    style: object;\n    selected?: boolean;\n    loading?: boolean;\n    loadingBalances?: boolean;\n    onSelect?: (index: number) => void;\n    ipfsGatewayURL?: string;\n    className?: {\n        root?: string;\n        wrapper?: string;\n        icon?: RemoteLogoProps[\"className\"];\n        textPrimary?: TypographyProps[\"className\"];\n        textSecondary?: TypographyProps[\"className\"];\n    };\n}\n\nexport const Row = ({\n    index,\n    style,\n    chainId,\n    address,\n    symbol,\n    decimals,\n    name,\n    logoURI,\n    balance,\n    selected,\n    loading,\n    loadingBalances,\n    onSelect,\n    ipfsGatewayURL,\n    className,\n    ...rest\n}: RowProps) => {\n    const handleTokenClick = useCallback(\n        (event: MouseEvent) => {\n            if (!onSelect || !event.target || loading) return;\n            const index = (event.target as HTMLLIElement).dataset.index;\n            if (index !== undefined) {\n                const parsedIndex = parseInt(index);\n                if (parsedIndex >= 0) onSelect(parsedIndex);\n            }\n        },\n        [onSelect, loading],\n    );\n\n    return (\n        <li\n            key={loading ? address : index}\n            className={rootStyles({\n                selected,\n                className: className?.root,\n            })}\n            style={style}\n            data-index={index}\n            onClick={handleTokenClick}\n            {...rest}\n        >\n            <div className={wrapperStyles({ className: className?.wrapper })}>\n                <div className=\"cui-flex cui-items-center cui-gap-2 cui-pointer-events-none\">\n                    {loading ? (\n                        <Skeleton circular width=\"24px\" />\n                    ) : (\n                        <RemoteLogo\n                            src={logoURI}\n                            size=\"sm\"\n                            defaultSrc={getDefaultERC20TokenLogoURL(\n                                chainId,\n                                address,\n                            )}\n                            defaultText={symbol}\n                            ipfsGatewayURL={ipfsGatewayURL}\n                            className={{\n                                ...className?.icon,\n                                root: `cui-pointer-events-none ${className?.icon?.root}`,\n                            }}\n                        />\n                    )}\n                    {loading ? (\n                        <Skeleton width=\"40px\" />\n                    ) : (\n                        <Typography\n                            className={{\n                                ...className?.textPrimary,\n                                root: `cui-pointer-events-none ${className?.textPrimary?.root}`,\n                            }}\n                        >\n                            {symbol}\n                        </Typography>\n                    )}\n                </div>\n                {loading ? (\n                    <Skeleton variant=\"xs\" width=\"60px\" />\n                ) : (\n                    <Typography\n                        variant=\"xs\"\n                        className={{\n                            ...className?.textSecondary,\n                            root: `cui-text-gray-600 dark:cui-text-gray-200 cui-pointer-events-none ${className?.textSecondary?.root}`,\n                        }}\n                    >\n                        {name}\n                    </Typography>\n                )}\n            </div>\n            <div className=\"cui-pointer-events-none cui-flex cui-gap-1\">\n                <Balance\n                    loading={loading || loadingBalances}\n                    decimals={decimals}\n                    balance={balance}\n                />\n            </div>\n        </li>\n    );\n};\n"],"names":["mergedCva","index","useCallback","Skeleton","RemoteLogo","getDefaultERC20TokenLogoURL","Typography","Balance"],"mappings":"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"}