♻️ (html): Migra Classes/ClassesOp a Props/PropsOp

Introduce `Props`/`PropsOp` para gestionar pares `atributo="valor"` y
clases CSS para aplicar en componentes.

- Constructores `Props::new()`, `Props::classes()` y `Props::default()`.
- `Page.body_classes` reemplazado por `body_props` (permite atributos
  arbitrarios en `<body>`, no sólo clases).
- Tests nuevos para atributos y reescritos para clases.
This commit is contained in:
Manuel Cillero 2026-06-12 01:55:07 +02:00
parent 0121fad94a
commit f9e87058d8
8 changed files with 707 additions and 319 deletions

View file

@ -1,7 +1,7 @@
//! HTML en código.
mod maud;
pub use maud::{DOCTYPE, Escaper, Markup, PreEscaped, display, html, html_private};
pub(crate) mod maud;
pub use maud::{DOCTYPE, Escaper, Markup, PreEscaped, Render, display, html, html_private};
mod route;
pub use route::RoutePath;
@ -22,8 +22,8 @@ pub use logo::PageTopSvg;
mod attr;
pub use attr::{Attr, AttrId, AttrName, AttrValue};
mod classes;
pub use classes::{Classes, ClassesOp};
mod props;
pub use props::{Props, PropsOp};
mod unit;
pub use unit::UnitValue;