{
"$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