Files
roi-theme/schemas/cta-post.json
FrankZamora 0846a3bf03 Migración completa a Clean Architecture con componentes funcionales
- Reorganización de estructura: Admin/, Public/, Shared/, Schemas/
- 12 componentes migrados: TopNotificationBar, Navbar, CtaLetsTalk, Hero,
  FeaturedImage, TableOfContents, CtaBoxSidebar, SocialShare, CtaPost,
  RelatedPost, ContactForm, Footer
- Panel de administración con tabs Bootstrap 5 funcionales
- Schemas JSON para configuración de componentes
- Renderers dinámicos con CSSGeneratorService (cero CSS hardcodeado)
- FormBuilders para UI admin con Design System consistente
- Fix: Bootstrap JS cargado en header para tabs funcionales
- Fix: buildTextInput maneja valores mixed (bool/string)
- Eliminación de estructura legacy (src/, admin/, assets/css/componente-*)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 21:20:06 -06:00

249 lines
6.8 KiB
JSON

{
"component_name": "cta-post",
"version": "1.0.0",
"description": "CTA promocional que aparece debajo del contenido del post",
"groups": {
"visibility": {
"label": "Visibilidad",
"priority": 10,
"fields": {
"is_enabled": {
"type": "boolean",
"label": "Activar componente",
"default": true,
"editable": true,
"required": true
},
"show_on_desktop": {
"type": "boolean",
"label": "Mostrar en escritorio",
"default": true,
"editable": true,
"description": "Muestra el componente en pantallas >= 992px"
},
"show_on_mobile": {
"type": "boolean",
"label": "Mostrar en movil",
"default": true,
"editable": true,
"description": "Muestra el componente en pantallas < 992px"
},
"show_on_pages": {
"type": "select",
"label": "Mostrar en",
"default": "posts",
"editable": true,
"options": ["all", "posts", "pages"],
"description": "Tipos de contenido donde se muestra"
}
}
},
"content": {
"label": "Contenido",
"priority": 20,
"fields": {
"title": {
"type": "text",
"label": "Titulo",
"default": "Accede a 200,000+ Analisis de Precios Unitarios",
"editable": true
},
"description": {
"type": "textarea",
"label": "Descripcion",
"default": "Consulta estructuras completas, insumos y dosificaciones de los APUs mas utilizados en construccion en Mexico.",
"editable": true
},
"button_text": {
"type": "text",
"label": "Texto del boton",
"default": "Ver Catalogo Completo",
"editable": true
},
"button_url": {
"type": "url",
"label": "URL del boton",
"default": "/catalogo",
"editable": true
},
"button_icon": {
"type": "text",
"label": "Icono del boton",
"default": "bi-arrow-right",
"editable": true,
"description": "Clase de Bootstrap Icons (ej: bi-arrow-right)"
}
}
},
"typography": {
"label": "Tipografia",
"priority": 30,
"fields": {
"title_font_size": {
"type": "text",
"label": "Tamano titulo",
"default": "1.5rem",
"editable": true,
"description": "h4 de Bootstrap"
},
"title_font_weight": {
"type": "text",
"label": "Peso titulo",
"default": "700",
"editable": true,
"description": "fw-bold"
},
"description_font_size": {
"type": "text",
"label": "Tamano descripcion",
"default": "1rem",
"editable": true
},
"button_font_size": {
"type": "text",
"label": "Tamano boton",
"default": "1.125rem",
"editable": true,
"description": "btn-lg de Bootstrap"
}
}
},
"colors": {
"label": "Colores",
"priority": 40,
"fields": {
"gradient_start": {
"type": "color",
"label": "Gradiente inicio",
"default": "#FF8600",
"editable": true,
"description": "Color naranja primario"
},
"gradient_end": {
"type": "color",
"label": "Gradiente fin",
"default": "#FFB800",
"editable": true,
"description": "Color naranja claro"
},
"title_color": {
"type": "color",
"label": "Color titulo",
"default": "#ffffff",
"editable": true
},
"description_color": {
"type": "color",
"label": "Color descripcion",
"default": "#ffffff",
"editable": true
},
"button_bg_color": {
"type": "color",
"label": "Fondo boton",
"default": "#ffffff",
"editable": true,
"description": "btn-light de Bootstrap"
},
"button_text_color": {
"type": "color",
"label": "Texto boton",
"default": "#212529",
"editable": true,
"description": "Color oscuro para contraste"
},
"button_hover_bg": {
"type": "color",
"label": "Fondo boton hover",
"default": "#f8f9fa",
"editable": true
}
}
},
"spacing": {
"label": "Espaciado",
"priority": 50,
"fields": {
"container_margin_top": {
"type": "text",
"label": "Margen superior",
"default": "3rem",
"editable": true,
"description": "my-5 de Bootstrap"
},
"container_margin_bottom": {
"type": "text",
"label": "Margen inferior",
"default": "3rem",
"editable": true
},
"container_padding": {
"type": "text",
"label": "Padding interno",
"default": "1.5rem",
"editable": true,
"description": "p-4 de Bootstrap"
},
"title_margin_bottom": {
"type": "text",
"label": "Margen inf. titulo",
"default": "0.5rem",
"editable": true,
"description": "mb-2 de Bootstrap"
},
"button_icon_margin": {
"type": "text",
"label": "Margen icono boton",
"default": "0.5rem",
"editable": true,
"description": "ms-2 de Bootstrap"
}
}
},
"visual_effects": {
"label": "Efectos Visuales",
"priority": 60,
"fields": {
"border_radius": {
"type": "text",
"label": "Radio de borde",
"default": "0.375rem",
"editable": true,
"description": "rounded de Bootstrap"
},
"gradient_angle": {
"type": "text",
"label": "Angulo gradiente",
"default": "135deg",
"editable": true
},
"button_border_radius": {
"type": "text",
"label": "Radio boton",
"default": "0.375rem",
"editable": true
},
"button_padding": {
"type": "text",
"label": "Padding boton",
"default": "0.5rem 1rem",
"editable": true,
"description": "btn-lg de Bootstrap"
},
"transition_duration": {
"type": "text",
"label": "Duracion transicion",
"default": "0.3s",
"editable": true
},
"box_shadow": {
"type": "text",
"label": "Sombra contenedor",
"default": "none",
"editable": true
}
}
}
}
}