fix(structure): Correct case-sensitivity for Linux compatibility
Rename folders to match PHP PSR-4 autoloading conventions: - schemas → Schemas - shared → Shared - Wordpress → WordPress (in all locations) Fixes deployment issues on Linux servers where filesystem is case-sensitive. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
61
Shared/Domain/Contracts/CSSGeneratorInterface.php
Normal file
61
Shared/Domain/Contracts/CSSGeneratorInterface.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ROITheme\Shared\Domain\Contracts;
|
||||
|
||||
/**
|
||||
* Interface CSSGeneratorInterface
|
||||
*
|
||||
* Contrato para servicios que generan CSS a partir de configuraciones de componentes.
|
||||
* Define el comportamiento esperado para la generación de reglas CSS sin depender
|
||||
* de implementaciones específicas o frameworks.
|
||||
*
|
||||
* Responsabilidades:
|
||||
* - Generar CSS válido a partir de un selector y estilos
|
||||
* - Formatear reglas CSS correctamente
|
||||
* - Convertir nombres de propiedades (snake_case → kebab-case)
|
||||
*
|
||||
* NO responsable de:
|
||||
* - Media queries (manejado por Renderer con clases Bootstrap)
|
||||
* - Visibilidad responsive (manejado por Renderer)
|
||||
* - Persistencia o caché de CSS
|
||||
*
|
||||
* @package ROITheme\Shared\Domain\Contracts
|
||||
*/
|
||||
interface CSSGeneratorInterface
|
||||
{
|
||||
/**
|
||||
* Genera una regla CSS completa a partir de un selector y sus estilos.
|
||||
*
|
||||
* Convierte un array de estilos en una regla CSS válida y formateada.
|
||||
* Los nombres de propiedades en snake_case se convierten automáticamente
|
||||
* a kebab-case según el estándar CSS.
|
||||
*
|
||||
* Ejemplo:
|
||||
* ```php
|
||||
* $styles = [
|
||||
* 'background_color' => '#FF8600',
|
||||
* 'text_color' => '#FFFFFF',
|
||||
* 'font_size' => '1rem',
|
||||
* 'padding' => '1rem 0'
|
||||
* ];
|
||||
*
|
||||
* $css = $generator->generate('.navbar', $styles);
|
||||
*
|
||||
* // Resultado:
|
||||
* // .navbar {
|
||||
* // background-color: #FF8600;
|
||||
* // color: #FFFFFF;
|
||||
* // font-size: 1rem;
|
||||
* // padding: 1rem 0;
|
||||
* // }
|
||||
* ```
|
||||
*
|
||||
* @param string $selector Selector CSS (ej: '.navbar', '#header', 'body')
|
||||
* @param array<string, string> $styles Array asociativo de propiedades CSS y sus valores
|
||||
* Formato: ['property_name' => 'value']
|
||||
*
|
||||
* @return string Regla CSS completa y formateada, o string vacío si no hay estilos
|
||||
*/
|
||||
public function generate(string $selector, array $styles): string;
|
||||
}
|
||||
Reference in New Issue
Block a user