- Añadir PageVisibility use case y repositorio - Implementar PageTypeDetector para detectar home/single/page/archive - Actualizar FieldMappers con soporte show_on_[page_type] - Extender FormBuilders con UI de visibilidad por página - Refactorizar Renderers para evaluar visibilidad dinámica - Limpiar schemas removiendo campos de visibilidad legacy - Añadir MigrationCommand para migrar configuraciones existentes - Implementar adsense-loader.js para carga lazy de ads - Actualizar front-page.php con nueva estructura - Extender DIContainer con nuevos servicios 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
243 lines
6.7 KiB
JSON
243 lines
6.7 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"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"label": "Contenido",
|
|
"priority": 20,
|
|
"fields": {
|
|
"title": {
|
|
"type": "text",
|
|
"label": "Titulo",
|
|
"default": "Tu Punto de Partida: +200,000 Precios Unitarios",
|
|
"editable": true
|
|
},
|
|
"description": {
|
|
"type": "textarea",
|
|
"label": "Descripcion",
|
|
"default": "Olvídate de la página en blanco. Consulta estructuras, rendimientos y componentes listos para adaptar a tu proyecto.",
|
|
"editable": true
|
|
},
|
|
"button_text": {
|
|
"type": "text",
|
|
"label": "Texto del boton",
|
|
"default": "Convertirme en V.I.P.",
|
|
"editable": true
|
|
},
|
|
"button_url": {
|
|
"type": "url",
|
|
"label": "URL del boton",
|
|
"default": "/suscripcion-vip",
|
|
"editable": true
|
|
},
|
|
"button_icon": {
|
|
"type": "text",
|
|
"label": "Icono del boton",
|
|
"default": "bi-star-fill",
|
|
"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": "#FF8600",
|
|
"editable": true,
|
|
"description": "Color naranja primario"
|
|
},
|
|
"button_text_color": {
|
|
"type": "color",
|
|
"label": "Texto boton",
|
|
"default": "#0E2337",
|
|
"editable": true,
|
|
"description": "Fase 4.4 Accesibilidad: navy-dark para contraste WCAG AA sobre fondo naranja"
|
|
},
|
|
"button_hover_bg": {
|
|
"type": "color",
|
|
"label": "Fondo boton hover",
|
|
"default": "#e67a00",
|
|
"editable": true,
|
|
"description": "Naranja oscuro en hover"
|
|
}
|
|
}
|
|
},
|
|
"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": "2rem",
|
|
"editable": true,
|
|
"description": "Padding interno del contenedor"
|
|
},
|
|
"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": "12px",
|
|
"editable": true,
|
|
"description": "Radio de esquinas del contenedor"
|
|
},
|
|
"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": "0 8px 24px rgba(255, 133, 0, 0.3)",
|
|
"editable": true,
|
|
"description": "Sombra naranja sutil"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|