El toast de "consultas restantes" no se mostraba porque las clases .toast* fueron eliminadas por PurgeCSS. Agregado /toast/ al safelist. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
175 lines
3.7 KiB
JavaScript
175 lines
3.7 KiB
JavaScript
/**
|
|
* PurgeCSS Configuration for ROI Theme
|
|
*
|
|
* Genera un subset de Bootstrap con SOLO las clases usadas en el tema.
|
|
*
|
|
* USO:
|
|
* npx purgecss --config purgecss.config.js
|
|
*
|
|
* OUTPUT:
|
|
* Assets/Vendor/Bootstrap/Css/bootstrap-subset.min.css
|
|
*
|
|
* @see https://purgecss.com/configuration.html
|
|
*/
|
|
|
|
module.exports = {
|
|
// CSS a procesar
|
|
css: ['Assets/Vendor/Bootstrap/Css/bootstrap.min.css'],
|
|
|
|
// Archivos a analizar para encontrar clases usadas
|
|
content: [
|
|
// Templates PHP principales
|
|
'*.php',
|
|
|
|
// Componentes Public (Renderers)
|
|
'Public/**/*.php',
|
|
|
|
// Componentes Admin (FormBuilders) - también usan Bootstrap
|
|
'Admin/**/*.php',
|
|
|
|
// Includes
|
|
'Inc/**/*.php',
|
|
|
|
// Templates parts
|
|
'template-parts/**/*.php',
|
|
|
|
// JavaScript (puede contener clases dinámicas)
|
|
'Assets/js/**/*.js',
|
|
],
|
|
|
|
// Output
|
|
output: 'Assets/Vendor/Bootstrap/Css/',
|
|
|
|
// Safelist: Clases que SIEMPRE deben incluirse aunque no se detecten
|
|
// (clases generadas dinámicamente, JavaScript, etc.)
|
|
safelist: {
|
|
// Clases exactas
|
|
standard: [
|
|
// Estados de navbar scroll (JavaScript)
|
|
'scrolled',
|
|
'navbar-scrolled',
|
|
|
|
// Bootstrap Collapse (JavaScript)
|
|
'show',
|
|
'showing',
|
|
'hiding',
|
|
'collapse',
|
|
'collapsing',
|
|
|
|
// Estados de dropdown
|
|
'dropdown-menu',
|
|
'dropdown-item',
|
|
'dropdown-toggle',
|
|
|
|
// Estados de form
|
|
'is-valid',
|
|
'is-invalid',
|
|
'was-validated',
|
|
|
|
// Visually hidden (accesibilidad)
|
|
'visually-hidden',
|
|
'visually-hidden-focusable',
|
|
|
|
// Screen reader
|
|
'sr-only',
|
|
],
|
|
|
|
// Patrones regex
|
|
deep: [
|
|
// Todas las variantes de col-* (grid responsive)
|
|
/^col-/,
|
|
|
|
// Todas las variantes de d-* (display)
|
|
/^d-/,
|
|
|
|
// Todas las variantes responsive de navbar
|
|
/^navbar-expand/,
|
|
|
|
// Margin/Padding responsive
|
|
/^m[tbsexy]?-/,
|
|
/^p[tbsexy]?-/,
|
|
|
|
// Gap utilities
|
|
/^gap-/,
|
|
/^g-/,
|
|
|
|
// Flex utilities
|
|
/^flex-/,
|
|
/^justify-/,
|
|
/^align-/,
|
|
|
|
// Text utilities
|
|
/^text-/,
|
|
/^fw-/,
|
|
/^fs-/,
|
|
|
|
// Background
|
|
/^bg-/,
|
|
|
|
// Border
|
|
/^border/,
|
|
/^rounded/,
|
|
|
|
// Shadow
|
|
/^shadow/,
|
|
|
|
// Width/Height
|
|
/^w-/,
|
|
/^h-/,
|
|
|
|
// Position
|
|
/^position-/,
|
|
/^top-/,
|
|
/^bottom-/,
|
|
/^start-/,
|
|
/^end-/,
|
|
|
|
// Overflow
|
|
/^overflow-/,
|
|
],
|
|
|
|
// Selectores con estos patrones en cualquier parte
|
|
greedy: [
|
|
// Form controls
|
|
/form-/,
|
|
|
|
// Buttons
|
|
/btn/,
|
|
|
|
// Cards
|
|
/card/,
|
|
|
|
// Navbar
|
|
/navbar/,
|
|
/nav-/,
|
|
|
|
// Tables
|
|
/table/,
|
|
|
|
// Alerts (usado en admin)
|
|
/alert/,
|
|
|
|
// Toast (consultas restantes)
|
|
/toast/,
|
|
|
|
// Badges
|
|
/badge/,
|
|
|
|
// Lists
|
|
/list-/,
|
|
],
|
|
},
|
|
|
|
// Variables CSS de Bootstrap (mantener todas)
|
|
variables: true,
|
|
|
|
// Keyframes de animaciones
|
|
keyframes: true,
|
|
|
|
// Font faces
|
|
fontFace: true,
|
|
|
|
// Rejected (para debugging - genera archivo con clases eliminadas)
|
|
rejected: false,
|
|
};
|