- Added initColorPickers() method to handle color picker interactions
- Dynamically updates hex value displays when user changes colors
- Covers all 7 color pickers in navbar configuration
- Event listeners on 'input' event for real-time updates
- Initializes hex displays on component load with uppercase format
Enhances UX by showing live color values to user.
Resolves#179 (Phase 2: JavaScript enhancements)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
JavaScript module that manages navbar component data collection and rendering.
Exposes window.NavbarComponent object with three main methods.
Methods:
- init(): Initializes component (event listeners, etc.)
- collect(): Collects all 38 form fields into structured object
- render(config): Populates form fields from configuration object
Data Structure:
- Flat fields: enabled, position, responsive_breakpoint, etc.
- Nested objects: lets_talk_button, dropdown, custom_styles
Field Coverage:
- Boolean switches: 9 fields
- Color pickers: 7 fields
- Select dropdowns: 7 fields
- Number inputs: 9 fields
- Text inputs: 2 fields
Total: 38 configurable fields
Integration:
- Called by admin-app.js for save/load operations
- Works with Settings Manager for backend persistence
- Supports real-time form validation
File: admin-panel/admin/assets/js/component-navbar.js (160 lines)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Funcionalidades JavaScript agregadas:
- Actualización de progress bar junto con contador de caracteres
- Progress bar cambia de color según proximidad al límite:
* Naranja: 0-200 caracteres
* Amarillo: 201-230 caracteres
* Rojo: 231-250 caracteres
- Vista previa en tiempo real del Top Bar (setupLivePreview)
- Actualización automática al modificar cualquier campo:
* Icono y visibilidad
* Texto destacado
* Mensaje principal
* Enlace y visibilidad
* Colores (fondo, texto, destacado)
* Tamaño de fuente
- Renderizado HTML dinámico en tiempo real
- Listeners optimizados con event delegation
La vista previa refleja exactamente cómo se verá en el frontend
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implementar setupCharacterCounter() en AdminPanel
- Agregar listener de evento 'input' para actualizar contador en tiempo real
- Cambiar color del contador según proximidad al límite (230: danger, 200: warning)
- Trigger automático del contador al cargar/renderizar configuración
- Integrar llamada a setupCharacterCounter() en bindEvents()
Basado en: 07-IMPLEMENTACION-ADMIN-JS.md
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implementación completa del componente Top Bar con 15 campos configurables desde el admin panel, siguiendo el algoritmo universal v2.0.
## Cambios Realizados
### Backend (PHP)
- Agregados defaults del Top Bar a class-settings-manager.php
- Implementada validación completa en class-validator.php (15 campos)
- Implementada sanitización con sanitize_text_field, esc_url_raw y sanitize_hex_color
- Modificado header.php con código 100% configurable usando wp_parse_args()
### Frontend (Admin Panel)
- Creado tab HTML completo con 3 secciones: Activación, Contenido y Estilos
- Implementado JavaScript para renderizado y recolección de datos
- 15 campos configurables: enabled, visibility, icon, content, link, custom styles
### Infraestructura
- Creado admin-panel/init.php para carga del módulo
- Creada class-admin-menu.php con enqueue de Bootstrap 5 y assets
- Creada estructura base CSS y JavaScript del admin
- Ya cargado en functions.php línea 276
## Características
- Responsive: Control independiente mobile/desktop
- Estilos personalizables: 4 colores + tamaño de fuente
- Validación robusta: Límites de caracteres, URLs, colores hex
- Defaults inteligentes: Valores seguros si no hay configuración
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>