feat(custom-css-manager): implementar TIPO 3 - CSS Crítico Personalizado

Nuevo sistema de gestión de CSS personalizado con panel admin:
- Admin/CustomCSSManager: CRUD de snippets CSS (crítico/diferido)
- Public/CustomCSSManager: Inyección dinámica en frontend
- Schema JSON para configuración del componente

Migración de CSS estático a BD:
- Tablas APU (~14KB) → snippet diferido en BD
- Tablas Genéricas (~10KB) → snippet diferido en BD
- Comentadas funciones legacy en enqueue-scripts.php

Limpieza de archivos obsoletos:
- Eliminado build-bootstrap-subset.js
- Eliminado migrate-legacy-options.php
- Eliminado minify-css.php
- Eliminado purgecss.config.js

Beneficios:
- CSS editable desde admin sin tocar código
- Soporte crítico (head) y diferido (footer)
- Filtrado por scope (all/home/single/archive)

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
FrankZamora
2025-12-01 15:43:25 -06:00
parent 423aae062c
commit 9cb0dd1491
24 changed files with 1553 additions and 784 deletions

View File

@@ -118,6 +118,11 @@ final class AdminDashboardRenderer implements DashboardRendererInterface
'label' => 'AdSense',
'icon' => 'bi-megaphone',
],
'custom-css-manager' => [
'id' => 'custom-css-manager',
'label' => 'CSS Personalizado',
'icon' => 'bi-file-earmark-code',
],
];
}
@@ -160,9 +165,18 @@ final class AdminDashboardRenderer implements DashboardRendererInterface
*/
public function getFormBuilderClass(string $componentId): string
{
// Convertir kebab-case a PascalCase
// 'top-notification-bar' → 'TopNotificationBar'
$className = str_replace('-', '', ucwords($componentId, '-'));
// Mapeo especial para componentes con acrónimos (CSS, API, etc.)
$specialMappings = [
'custom-css-manager' => 'CustomCSSManager',
];
// Usar mapeo especial si existe, sino convertir kebab-case a PascalCase
if (isset($specialMappings[$componentId])) {
$className = $specialMappings[$componentId];
} else {
// 'top-notification-bar' → 'TopNotificationBar'
$className = str_replace('-', '', ucwords($componentId, '-'));
}
// Construir namespace completo
// ROITheme\Admin\TopNotificationBar\Infrastructure\Ui\TopNotificationBarFormBuilder