{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "termsselector", "type": "registry:component", "title": "TermsSelector", "description": "Componente Concorde TermsSelector — un solo archivo, TermsSelector.tsx.", "dependencies": [ "react" ], "registryDependencies": [], "files": [ { "path": "components/TermsSelector.tsx", "type": "registry:file", "target": "components/TermsSelector.tsx", "content": "\"use client\";\n\n/**\n * TermsSelector — Generado por Concorde\n * Fuente: Figma VOYAGER · \"Label\" (nodo 2425:11019)\n *\n * Checkbox de términos: casilla 16×16 (radio 4) con relleno gradiente\n * (#8460E5 → #3B1782) y borde gradiente (white → #F4AC59 → #8460E5 → white)\n * cuando está marcada, más una etiqueta en #3B1782. Controlado o no controlado.\n */\n\nimport { forwardRef, useId } from \"react\";\nimport type { InputHTMLAttributes, JSX, ReactNode } from \"react\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\n/**\n * Hereda los atributos nativos del (name, id, required,\n * aria-*, data-*, value…) salvo onChange, que aquí entrega el booleano marcado,\n * y children, que es la etiqueta. className se aplica al