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>
This commit is contained in:
301
schemas/footer.json
Normal file
301
schemas/footer.json
Normal file
@@ -0,0 +1,301 @@
|
||||
{
|
||||
"component_name": "footer",
|
||||
"version": "1.0.0",
|
||||
"description": "Footer del sitio con 3 menus de navegacion y formulario de newsletter",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"widget_1": {
|
||||
"label": "Widget 1 (Menu)",
|
||||
"priority": 20,
|
||||
"fields": {
|
||||
"widget_1_title": {
|
||||
"type": "text",
|
||||
"label": "Titulo Widget 1",
|
||||
"default": "Recursos",
|
||||
"editable": true,
|
||||
"description": "El contenido se gestiona desde Apariencia > Menus > Footer Menu 1"
|
||||
},
|
||||
"widget_1_visible": {
|
||||
"type": "boolean",
|
||||
"label": "Mostrar Widget 1",
|
||||
"default": true,
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"widget_2": {
|
||||
"label": "Widget 2 (Menu)",
|
||||
"priority": 30,
|
||||
"fields": {
|
||||
"widget_2_title": {
|
||||
"type": "text",
|
||||
"label": "Titulo Widget 2",
|
||||
"default": "Soporte",
|
||||
"editable": true,
|
||||
"description": "El contenido se gestiona desde Apariencia > Menus > Footer Menu 2"
|
||||
},
|
||||
"widget_2_visible": {
|
||||
"type": "boolean",
|
||||
"label": "Mostrar Widget 2",
|
||||
"default": true,
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"widget_3": {
|
||||
"label": "Widget 3 (Menu)",
|
||||
"priority": 40,
|
||||
"fields": {
|
||||
"widget_3_title": {
|
||||
"type": "text",
|
||||
"label": "Titulo Widget 3",
|
||||
"default": "Empresa",
|
||||
"editable": true,
|
||||
"description": "El contenido se gestiona desde Apariencia > Menus > Footer Menu 3"
|
||||
},
|
||||
"widget_3_visible": {
|
||||
"type": "boolean",
|
||||
"label": "Mostrar Widget 3",
|
||||
"default": true,
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"newsletter": {
|
||||
"label": "Newsletter",
|
||||
"priority": 50,
|
||||
"fields": {
|
||||
"newsletter_visible": {
|
||||
"type": "boolean",
|
||||
"label": "Mostrar Newsletter",
|
||||
"default": true,
|
||||
"editable": true
|
||||
},
|
||||
"newsletter_title": {
|
||||
"type": "text",
|
||||
"label": "Titulo",
|
||||
"default": "Suscribete al Newsletter",
|
||||
"editable": true
|
||||
},
|
||||
"newsletter_description": {
|
||||
"type": "textarea",
|
||||
"label": "Descripcion",
|
||||
"default": "Recibe las ultimas actualizaciones de APUs.",
|
||||
"editable": true
|
||||
},
|
||||
"newsletter_placeholder": {
|
||||
"type": "text",
|
||||
"label": "Placeholder email",
|
||||
"default": "Email",
|
||||
"editable": true
|
||||
},
|
||||
"newsletter_button_text": {
|
||||
"type": "text",
|
||||
"label": "Texto boton",
|
||||
"default": "Suscribirse",
|
||||
"editable": true
|
||||
},
|
||||
"newsletter_webhook_url": {
|
||||
"type": "url",
|
||||
"label": "URL del Webhook",
|
||||
"default": "",
|
||||
"editable": true,
|
||||
"description": "URL donde se enviara el email de suscripcion (no visible en frontend)",
|
||||
"secret": true
|
||||
},
|
||||
"newsletter_success_message": {
|
||||
"type": "text",
|
||||
"label": "Mensaje exito",
|
||||
"default": "Gracias por suscribirte!",
|
||||
"editable": true
|
||||
},
|
||||
"newsletter_error_message": {
|
||||
"type": "text",
|
||||
"label": "Mensaje error",
|
||||
"default": "Error al suscribirse. Intenta de nuevo.",
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"footer_bottom": {
|
||||
"label": "Pie de Footer",
|
||||
"priority": 60,
|
||||
"fields": {
|
||||
"copyright_text": {
|
||||
"type": "text",
|
||||
"label": "Texto copyright",
|
||||
"default": "2025 Pagina de Analisis de Precios Unitarios. Todos los derechos reservados.",
|
||||
"editable": true,
|
||||
"description": "El simbolo (c) se agrega automaticamente"
|
||||
}
|
||||
}
|
||||
},
|
||||
"colors": {
|
||||
"label": "Colores",
|
||||
"priority": 70,
|
||||
"fields": {
|
||||
"bg_color": {
|
||||
"type": "color",
|
||||
"label": "Fondo footer",
|
||||
"default": "#212529",
|
||||
"editable": true,
|
||||
"description": "bg-dark de Bootstrap"
|
||||
},
|
||||
"text_color": {
|
||||
"type": "color",
|
||||
"label": "Color texto",
|
||||
"default": "#ffffff",
|
||||
"editable": true
|
||||
},
|
||||
"title_color": {
|
||||
"type": "color",
|
||||
"label": "Color titulos",
|
||||
"default": "#ffffff",
|
||||
"editable": true
|
||||
},
|
||||
"link_color": {
|
||||
"type": "color",
|
||||
"label": "Color links",
|
||||
"default": "#ffffff",
|
||||
"editable": true
|
||||
},
|
||||
"link_hover_color": {
|
||||
"type": "color",
|
||||
"label": "Color links hover",
|
||||
"default": "#FF8600",
|
||||
"editable": true
|
||||
},
|
||||
"input_bg_color": {
|
||||
"type": "color",
|
||||
"label": "Fondo input",
|
||||
"default": "#ffffff",
|
||||
"editable": true
|
||||
},
|
||||
"input_text_color": {
|
||||
"type": "color",
|
||||
"label": "Texto input",
|
||||
"default": "#212529",
|
||||
"editable": true
|
||||
},
|
||||
"input_border_color": {
|
||||
"type": "color",
|
||||
"label": "Borde input",
|
||||
"default": "#dee2e6",
|
||||
"editable": true
|
||||
},
|
||||
"button_bg_color": {
|
||||
"type": "color",
|
||||
"label": "Fondo boton",
|
||||
"default": "#0d6efd",
|
||||
"editable": true,
|
||||
"description": "btn-primary de Bootstrap"
|
||||
},
|
||||
"button_text_color": {
|
||||
"type": "color",
|
||||
"label": "Texto boton",
|
||||
"default": "#ffffff",
|
||||
"editable": true
|
||||
},
|
||||
"button_hover_bg": {
|
||||
"type": "color",
|
||||
"label": "Fondo boton hover",
|
||||
"default": "#0b5ed7",
|
||||
"editable": true
|
||||
},
|
||||
"border_top_color": {
|
||||
"type": "color",
|
||||
"label": "Color borde superior (copyright)",
|
||||
"default": "rgba(255, 255, 255, 0.2)",
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"spacing": {
|
||||
"label": "Espaciado",
|
||||
"priority": 80,
|
||||
"fields": {
|
||||
"padding_y": {
|
||||
"type": "text",
|
||||
"label": "Padding vertical",
|
||||
"default": "3rem",
|
||||
"editable": true,
|
||||
"description": "py-5 de Bootstrap"
|
||||
},
|
||||
"margin_top": {
|
||||
"type": "text",
|
||||
"label": "Margen superior",
|
||||
"default": "0",
|
||||
"editable": true
|
||||
},
|
||||
"widget_title_margin_bottom": {
|
||||
"type": "text",
|
||||
"label": "Margen inf. titulos",
|
||||
"default": "1rem",
|
||||
"editable": true
|
||||
},
|
||||
"link_margin_bottom": {
|
||||
"type": "text",
|
||||
"label": "Margen inf. links",
|
||||
"default": "0.5rem",
|
||||
"editable": true
|
||||
},
|
||||
"copyright_padding_y": {
|
||||
"type": "text",
|
||||
"label": "Padding vertical copyright",
|
||||
"default": "1.5rem",
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"visual_effects": {
|
||||
"label": "Efectos Visuales",
|
||||
"priority": 90,
|
||||
"fields": {
|
||||
"input_border_radius": {
|
||||
"type": "text",
|
||||
"label": "Radio input",
|
||||
"default": "6px",
|
||||
"editable": true
|
||||
},
|
||||
"button_border_radius": {
|
||||
"type": "text",
|
||||
"label": "Radio boton",
|
||||
"default": "6px",
|
||||
"editable": true
|
||||
},
|
||||
"transition_duration": {
|
||||
"type": "text",
|
||||
"label": "Duracion transicion",
|
||||
"default": "0.3s",
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user