{"version":3,"file":"remote-logo.cjs","sources":["../../../src/components/remote-logo.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { mergedCva } from \"../utils/components\";\nimport { resolveSrc } from \"../utils/url\";\nimport { Skeleton } from \"./skeleton\";\n\nconst BAD_SRC: Record<string, boolean> = {};\n\nconst rootStyles = mergedCva([\"cui-relative\"], {\n    variants: {\n        size: {\n            sm: [\"cui-w-6\", \"cui-h-6\"],\n            md: [\"cui-w-7\", \"cui-h-7\"],\n            lg: [\"cui-w-8\", \"cui-h-8\"],\n            xl: [\"cui-w-9\", \"cui-h-9\"],\n            \"2xl\": [\"cui-w-10\", \"cui-h-10\"],\n        },\n    },\n});\n\nconst imgStyles = mergedCva([\"cui-rounded-full\", \"cui-absolute\"], {\n    variants: {\n        size: {\n            sm: [\"cui-w-6\", \"cui-h-6\"],\n            md: [\"cui-w-7\", \"cui-h-7\"],\n            lg: [\"cui-w-8\", \"cui-h-8\"],\n            xl: [\"cui-w-9\", \"cui-h-9\"],\n            \"2xl\": [\"cui-w-10\", \"cui-h-10\"],\n        },\n    },\n});\n\nconst fallbackStyles = mergedCva(\n    [\n        \"cui-bg-black\",\n        \"cui-text-white\",\n        \"dark:cui-bg-white\",\n        \"dark:cui-text-black\",\n        \"cui-rounded-full\",\n        \"cui-flex\",\n        \"cui-justify-center\",\n        \"cui-items-center\",\n    ],\n    {\n        variants: {\n            size: {\n                sm: [\"cui-text-[0.4rem]\", \"cui-w-6\", \"cui-h-6\"],\n                md: [\"cui-text-[0.5rem]\", \"cui-w-7\", \"cui-h-7\"],\n                lg: [\"cui-text-[0.6rem]\", \"cui-w-8\", \"cui-h-8\"],\n                xl: [\"cui-text-[0.7rem]\", \"cui-w-9\", \"cui-h-9\"],\n                \"2xl\": [\"cui-text-xs\", \"cui-w-10\", \"cui-h-10\"],\n            },\n        },\n    },\n);\n\nexport interface RemoteLogoProps {\n    src?: string | string[] | null;\n    defaultSrc?: string | string[] | null;\n    size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n    defaultText?: string | null;\n    ipfsGatewayURL?: string | null;\n    className?: { root: string };\n}\n\nexport const RemoteLogo = ({\n    src,\n    defaultSrc,\n    size = \"md\",\n    defaultText = \"?\",\n    ipfsGatewayURL,\n    className,\n}: RemoteLogoProps) => {\n    const [, refresh] = useState(0);\n\n    const resolvedSrcs = resolveSrc(src, ipfsGatewayURL, defaultSrc);\n\n    const resolvedSrc = resolvedSrcs.find((s) => !BAD_SRC[s]);\n    if (resolvedSrc) {\n        return (\n            <div className={rootStyles({ size, className: className?.root })}>\n                <Skeleton\n                    circular\n                    width=\"100%\"\n                    className={{ root: \"cui-absolute cui-inset-pixel\" }}\n                />\n                <img\n                    className={imgStyles({ size })}\n                    src={resolvedSrc}\n                    onError={() => {\n                        BAD_SRC[resolvedSrc] = true;\n                        refresh((prevState) => prevState + 1);\n                    }}\n                />\n            </div>\n        );\n    }\n    return (\n        <div className={fallbackStyles({ size, className: className?.root })}>\n            <div className=\"cui-font-mono cui-text-white dark:cui-text-black\">\n                {!!defaultText\n                    ? defaultText.length > 4\n                        ? `${defaultText.slice(0, 4).toUpperCase()}`\n                        : defaultText.toUpperCase()\n                    : \"?\"}\n            </div>\n        </div>\n    );\n};\n"],"names":["mergedCva","useState","resolveSrc","Skeleton"],"mappings":"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"}