♻️ (bootsier): Adapta componentes a nueva API

Sustituye `Classes`/`ClassesOp` por `Props`/`PropsOp` en todos los
componentes: campo, *builder* `with_prop()`, `setup()` y `prepare()`.
This commit is contained in:
Manuel Cillero 2026-06-14 23:07:57 +02:00
parent 1bd97d5705
commit 8d0103c257
31 changed files with 218 additions and 220 deletions

View file

@ -14,7 +14,7 @@ use crate::LOCALES_BOOTSIER;
///
/// # Ejemplo
///
/// ```rust
/// ```rust,no_run
/// # use pagetop::prelude::*;
/// # use pagetop_bootsier::theme::*;
/// let item = form::radio::Item::new("monthly", L10n::n("Monthly")).with_checked(true);
@ -74,7 +74,7 @@ impl Item {
///
/// # Ejemplo
///
/// ```rust
/// ```rust,no_run
/// # use pagetop::prelude::*;
/// # use pagetop_bootsier::theme::*;
/// let plan = form::radio::Field::new()
@ -98,8 +98,8 @@ impl Item {
pub struct Field {
#[getters(skip)]
id: AttrId,
/// Devuelve las clases CSS del contenedor del grupo.
classes: Classes,
/// Devuelve los atributos HTML y clases CSS del contenedor del grupo.
props: Props,
/// Devuelve el nombre compartido por todos los botones de opción del grupo.
name: AttrName,
/// Devuelve la etiqueta del grupo.
@ -126,7 +126,7 @@ impl Component for Field {
}
fn setup(&mut self, _cx: &Context) {
self.alter_classes(ClassesOp::Prepend, "form-field form-field-radios");
self.alter_prop(PropsOp::prepend_classes("form-field form-field-radios"));
}
fn prepare(&self, cx: &mut Context) -> Result<Markup, ComponentError> {
@ -136,7 +136,7 @@ impl Component for Field {
.unwrap_or_else(|| cx.required_id::<Self>(self.id(), 3));
let container_id = self.id().unwrap_or_else(|| util::join!("edit-", &name));
Ok(html! {
div id=(&container_id) class=[self.classes().get()] {
div id=(&container_id) (self.props()) {
@if let Some(label) = self.label().lookup(cx) {
label class="form-label" {
(label)
@ -197,10 +197,10 @@ impl Field {
self
}
/// Modifica la lista de clases CSS aplicadas al contenedor del grupo de opciones.
/// Modifica los atributos HTML o las clases CSS del contenedor del grupo de opciones.
#[builder_fn]
pub fn with_classes(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
self.classes.alter_classes(op, classes);
pub fn with_prop(mut self, op: PropsOp) -> Self {
self.props.alter_prop(op);
self
}