{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "checkicon", "type": "registry:component", "title": "CheckIcon", "description": "Componente Concorde CheckIcon — un solo archivo, CheckIcon.tsx.", "dependencies": [ "react" ], "registryDependencies": [], "files": [ { "path": "components/CheckIcon.tsx", "type": "registry:file", "target": "components/CheckIcon.tsx", "content": "/**\n * CheckIcon — Generado por Concorde\n * Fuente: Figma VOYAGER · \"Vector\" (1435:12195)\n *\n * Círculo relleno con gradiente naranja (#FF9639 → #EF852E → #BE3D00) y un\n * check recortado (knockout) que se ve blanco sobre superficies claras.\n * Copia exacta del path del SVG. Tamaño personalizable como PriceIcon.\n */\n\nimport { useId } from \"react\";\nimport type { JSX } from \"react\";\n\nexport interface CheckIconProps {\n /** Tamaño en px o alias: \"sm\" (16) · \"md\" (20). Default 20. */\n size?: \"sm\" | \"md\" | number;\n /** Texto accesible. Si se omite, el icono es decorativo (aria-hidden). */\n title?: string;\n className?: string;\n}\n\nconst SIZES: Record<\"sm\" | \"md\", number> = { sm: 16, md: 20 };\n\nexport default function CheckIcon({ size = 20, title, className = \"\" }: CheckIconProps): JSX.Element {\n const uid = useId().replace(/:/g, \"-\");\n const gradId = `checkicon-grad-${uid}`;\n const px = typeof size === \"number\" ? size : SIZES[size];\n\n return (\n \n {title ? {title} : null}\n \n \n \n \n \n \n \n \n \n );\n}\n" } ] }