Files
roi-theme/schemas/components/table-of-contents.json
FrankZamora 90de6df77c Fase-01: Preparación del entorno y estructura inicial
- Verificación de entorno XAMPP (PHP 8.0.30, Composer 2.9.1, WP-CLI 2.12.0)
- Configuración de Composer con PSR-4 para 24 namespaces
- Configuración de PHPUnit con 140 tests preparados
- Configuración de PHPCS con WordPress Coding Standards
- Scripts de backup y rollback con mejoras de seguridad
- Estructura de contextos (admin/, public/, shared/)
- Schemas JSON para 11 componentes del sistema
- Código fuente inicial con arquitectura limpia en src/
- Documentación de procedimientos de emergencia

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 16:34:49 -06:00

172 lines
5.0 KiB
JSON

{
"component_name": "table-of-contents",
"version": "1.0.0",
"description": "Tabla de contenido con ScrollSpy para navegación lateral",
"groups": {
"visibility": {
"label": "Visibilidad y Comportamiento",
"priority": 10,
"fields": {
"is_enabled": {
"type": "boolean",
"label": "Activar tabla de contenido",
"default": true,
"required": true,
"description": "Activa o desactiva el componente de tabla de contenido"
},
"sticky": {
"type": "boolean",
"label": "Posición sticky",
"default": true,
"description": "Mantiene el TOC visible al hacer scroll"
},
"show_on_mobile": {
"type": "boolean",
"label": "Mostrar en móviles",
"default": false,
"description": "Muestra el TOC en dispositivos móviles"
}
}
},
"config": {
"label": "Configuración General",
"priority": 20,
"fields": {
"title": {
"type": "text",
"label": "Título del TOC",
"default": "Tabla de Contenido",
"maxlength": 100,
"required": true,
"description": "Título que aparece en el encabezado del TOC"
},
"heading_levels": {
"type": "multiselect",
"label": "Niveles de encabezados",
"default": ["h2", "h3"],
"options": {
"h2": "H2",
"h3": "H3",
"h4": "H4",
"h5": "H5",
"h6": "H6"
},
"required": true,
"description": "Niveles de encabezados a incluir en el TOC"
},
"auto_generate": {
"type": "boolean",
"label": "Generar automáticamente",
"default": true,
"description": "Generar TOC desde el contenido del post"
},
"offset_top": {
"type": "number",
"label": "Offset top (px)",
"default": 100,
"min": 0,
"max": 500,
"description": "Offset desde el top para el ScrollSpy"
},
"smooth_scroll": {
"type": "boolean",
"label": "Scroll suave",
"default": true,
"description": "Activar scroll suave al hacer clic en enlaces"
},
"max_height": {
"type": "text",
"label": "Altura máxima",
"default": "calc(100vh - 400px)",
"description": "Altura máxima del contenedor TOC (CSS válido)"
},
"custom_css_class": {
"type": "text",
"label": "Clase CSS personalizada",
"default": "",
"description": "Clase CSS adicional para el contenedor"
}
}
},
"manual_items": {
"label": "Items Manuales",
"priority": 30,
"fields": {
"items": {
"type": "repeater",
"label": "Items del TOC",
"default": [],
"description": "Items manuales si auto_generate es false",
"subfields": {
"text": {
"type": "text",
"label": "Texto del enlace",
"required": true
},
"anchor": {
"type": "text",
"label": "ID del ancla (sin #)",
"required": true
},
"level": {
"type": "number",
"label": "Nivel (2-6)",
"default": 2,
"min": 2,
"max": 6
}
}
}
}
},
"styles": {
"label": "Estilos Personalizados",
"priority": 40,
"fields": {
"background_color": {
"type": "color",
"label": "Color de fondo",
"default": "#ffffff",
"description": "Color de fondo del contenedor"
},
"border_color": {
"type": "color",
"label": "Color de borde",
"default": "#E6E9ED",
"description": "Color del borde del contenedor"
},
"title_color": {
"type": "color",
"label": "Color del título",
"default": "#0E2337",
"description": "Color del texto del título"
},
"link_color": {
"type": "color",
"label": "Color de enlaces",
"default": "#6B7280",
"description": "Color de los enlaces del TOC"
},
"link_hover_color": {
"type": "color",
"label": "Color de enlaces (hover)",
"default": "#0E2337",
"description": "Color de los enlaces al pasar el mouse"
},
"active_border_color": {
"type": "color",
"label": "Color de borde activo",
"default": "#0E2337",
"description": "Color del borde izquierdo del item activo"
},
"active_bg_color": {
"type": "color",
"label": "Color de fondo activo",
"default": "#F9FAFB",
"description": "Color de fondo del item activo"
}
}
}
}
}