Files
roi-theme/purgecss.config.js
FrankZamora 8a9c62e17e fix(bootstrap): Agregar clases toast al Bootstrap subset
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>
2025-11-29 11:30:58 -06:00

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,
};