♻️ Refactoriza AttrClasses como Classes

This commit is contained in:
Manuel Cillero 2025-12-28 14:57:21 +01:00
parent fa32833ffa
commit 4bf2c18b24
13 changed files with 57 additions and 49 deletions

View file

@ -11,7 +11,7 @@ pub struct Container {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas al contenedor.
classes: AttrClasses,
classes: Classes,
/// Devuelve el tipo semántico del contenedor.
container_kind: container::Kind,
/// Devuelve el comportamiento para el ancho del contenedor.
@ -139,7 +139,7 @@ impl Container {
/// - Redondear las esquinas ([`classes::Rounded`]).
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}

View file

@ -24,7 +24,7 @@ pub struct Dropdown {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas al menú desplegable.
classes: AttrClasses,
classes: Classes,
/// Devuelve el título del menú desplegable.
title: L10n,
/// Devuelve el tamaño configurado del botón.
@ -76,7 +76,7 @@ impl Component for Dropdown {
PrepareMarkup::With(html! {
div id=[self.id()] class=[self.classes().get()] {
@if !title.is_empty() {
@let mut btn_classes = AttrClasses::new({
@let mut btn_classes = Classes::new({
let mut classes = "btn".to_string();
self.button_size().push_class(&mut classes);
self.button_color().push_class(&mut classes);
@ -86,7 +86,7 @@ impl Component for Dropdown {
@let offset = pos.data_offset();
@let reference = pos.data_reference();
@let auto_close = self.auto_close.as_str();
@let menu_classes = AttrClasses::new({
@let menu_classes = Classes::new({
let mut classes = "dropdown-menu".to_string();
self.menu_align().push_class(&mut classes);
classes
@ -107,7 +107,7 @@ impl Component for Dropdown {
@let btn_toggle = html! {
button
type="button"
class=[btn_classes.alter_value(
class=[btn_classes.alter_classes(
ClassesOp::Add, "dropdown-toggle dropdown-toggle-split"
).get()]
data-bs-toggle="dropdown"
@ -138,7 +138,7 @@ impl Component for Dropdown {
// Botón único con funcionalidad de *toggle*.
button
type="button"
class=[btn_classes.alter_value(
class=[btn_classes.alter_classes(
ClassesOp::Add, "dropdown-toggle"
).get()]
data-bs-toggle="dropdown"
@ -173,7 +173,7 @@ impl Dropdown {
/// Modifica la lista de clases CSS aplicadas al menú desplegable.
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}

View file

@ -48,7 +48,7 @@ pub struct Item {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas al elemento.
classes: AttrClasses,
classes: Classes,
/// Devuelve el tipo de elemento representado.
item_kind: ItemKind,
}
@ -270,7 +270,7 @@ impl Item {
/// Modifica la lista de clases CSS aplicadas al elemento.
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}
}

View file

@ -16,7 +16,7 @@ pub enum IconKind {
#[derive(AutoDefault, Getters)]
pub struct Icon {
/// Devuelve las clases CSS asociadas al icono.
classes: AttrClasses,
classes: Classes,
icon_kind: IconKind,
aria_label: AttrL10n,
}

View file

@ -14,7 +14,7 @@ pub struct Image {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas a la imagen.
classes: AttrClasses,
classes: Classes,
/// Devuelve las dimensiones de la imagen.
size: image::Size,
/// Devuelve el origen de la imagen.
@ -93,7 +93,7 @@ impl Image {
/// - Redondear las esquinas ([`classes::Rounded`]).
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}

View file

@ -15,7 +15,7 @@ pub struct Nav {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas al menú.
classes: AttrClasses,
classes: Classes,
/// Devuelve el estilo visual seleccionado.
nav_kind: nav::Kind,
/// Devuelve la distribución y orientación seleccionada.
@ -84,7 +84,7 @@ impl Nav {
/// Modifica la lista de clases CSS aplicadas al menú.
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}

View file

@ -81,7 +81,7 @@ pub struct Item {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas al elemento.
classes: AttrClasses,
classes: Classes,
/// Devuelve el tipo de elemento representado.
item_kind: ItemKind,
}
@ -293,7 +293,7 @@ impl Item {
/// Modifica la lista de clases CSS aplicadas al elemento.
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}
}

View file

@ -19,7 +19,7 @@ pub struct Navbar {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas a la barra de navegación.
classes: AttrClasses,
classes: Classes,
/// Devuelve el punto de ruptura configurado.
expand: BreakPoint,
/// Devuelve la disposición configurada para la barra de navegación.
@ -230,7 +230,7 @@ impl Navbar {
/// - Definir la apariencia del texto ([`classes::Text`]).
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}

View file

@ -26,7 +26,7 @@ pub struct Offcanvas {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS asociadas al panel.
classes: AttrClasses,
classes: Classes,
/// Devuelve el título del panel.
title: L10n,
/// Devuelve el punto de ruptura configurado para cambiar el comportamiento del panel.
@ -80,7 +80,7 @@ impl Offcanvas {
/// Modifica la lista de clases CSS aplicadas al panel.
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_value(op, classes);
self.classes.alter_classes(op, classes);
self
}