✨ (bootsier): Añade más componentes y repasa código
- Se incorpora nuevo componente Dropdown. - Se crea un componente Navbar con soporte para marca, elementos de navegación. - Se implementa el componente Offcanvas con opciones de posición, visibilidad y fondo personalizables. - Mejora el manejo de imágenes con un nuevo componente de Image. - Se reorganizan los componentes del tema para una mejor estructura y usabilidad.
This commit is contained in:
parent
00084f0091
commit
a4e41efb0c
29 changed files with 2608 additions and 9 deletions
|
|
@ -0,0 +1,73 @@
|
|||
use pagetop::prelude::*;
|
||||
|
||||
use crate::LOCALES_BOOTSIER;
|
||||
|
||||
use std::fmt;
|
||||
|
||||
#[derive(AutoDefault, PartialEq)]
|
||||
pub(crate) enum Toggle {
|
||||
#[default]
|
||||
Collapse,
|
||||
Offcanvas,
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
impl fmt::Display for Toggle {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Toggle::Collapse => write!(f, "collapse"),
|
||||
Toggle::Offcanvas => write!(f, "offcanvas"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(AutoDefault)]
|
||||
pub struct ButtonToggler;
|
||||
|
||||
impl Component for ButtonToggler {
|
||||
fn new() -> Self {
|
||||
ButtonToggler::default()
|
||||
}
|
||||
|
||||
fn prepare_component(&self, _cx: &mut Context) -> PrepareMarkup {
|
||||
PrepareMarkup::With(html! {
|
||||
button
|
||||
type="button"
|
||||
class="navbar-toggler"
|
||||
{
|
||||
span class="navbar-toggler-icon" {}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl ButtonToggler {
|
||||
// ButtonToggler PRIVATE RENDER.
|
||||
|
||||
pub(crate) fn render(
|
||||
&self,
|
||||
cx: &mut Context,
|
||||
id_content: String,
|
||||
data_bs_toggle: Toggle,
|
||||
) -> Markup {
|
||||
let id_content_target = join!("#", id_content);
|
||||
let aria_expanded = if data_bs_toggle == Toggle::Collapse {
|
||||
Some("false")
|
||||
} else {
|
||||
None
|
||||
};
|
||||
html! {
|
||||
button
|
||||
type="button"
|
||||
class="navbar-toggler"
|
||||
data-bs-toggle=(data_bs_toggle)
|
||||
data-bs-target=(id_content_target)
|
||||
aria-controls=(id_content)
|
||||
aria-expanded=[aria_expanded]
|
||||
aria-label=[L10n::t("toggle", &LOCALES_BOOTSIER).lookup(cx)]
|
||||
{
|
||||
span class="navbar-toggler-icon" {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue