Commit graph

80 commits

Author SHA1 Message Date
0e72d51276 📝 Quita cursivas de algunos anglicismos en docs 2026-07-10 19:33:26 +02:00
654618aa68 (html): Añade declaración de estilos a PropsOp 2026-07-09 21:40:50 +02:00
bff7cf1b38 (html): Añade PropsOp::replace_classes()
Permite sustituir una o varias clases por otras nuevas en una sola
operación, preservando su posición. Adapta el tema Bootsier para usarla
en `Button` y elimina el handler duplicado sin referencias.
2026-07-09 01:12:45 +02:00
9e8cd77140 📝 Retoques de documentación en html y componentes 2026-07-09 00:08:04 +02:00
25713a8a13 ♻️ (html): Añade valores extra a Props
- Reordena campos, variantes y métodos para mayor consistencia interna.
- Añade `extra_or`, `extra_or_default` y `extra_or_else` a `Props`.
- Mejora la documentación y amplía los tests de integración.
2026-07-09 00:05:28 +02:00
c7b680a7f7 (html): Añade Preload para precarga de recursos
Nuevo tipo `Preload` (junto a `StyleSheet` y `JavaScript`) que emite
`<link rel="preload">` con soporte para fuentes, estilos, scripts e
imágenes (WebP y AVIF incluidos). Bootsier lo usa para precargar las
fuentes Source Sans 3 y eliminar el FOUT en la carga inicial.
2026-07-07 00:03:36 +02:00
9354894b3a 🎨 Convierte el ciclo de renderizado en async
`prepare()` de `Component`, `render()` de `Region` y `Template`, y la
implementación de `ComponentRender` pasan a ser funciones async. Se
actualizan todos los componentes base, helpers, tests y ejemplos.
2026-07-06 00:48:41 +02:00
0e96bcce64 (auth): Añade CurrentUser y sistema de permisos
- Nuevo módulo `auth` que exporta `CurrentUser`, `CheckPermission` y
  `has_permission()`.
- `Context` y `Page` exponen `current_user()` vía `Contextual`.
- `HttpRequest` accede a extensiones de middleware con `extension<T>()`.
- `Extension` incluye nuevo método `configure_middleware`.
- `try_dispatch_actions` para despachar acciones con control del flujo.
2026-07-02 20:52:13 +02:00
62219584b0 ♻️ (html): API para id's en Props y componentes 2026-06-20 15:02:23 +02:00
511149caa7 📝 Añade no_run a doctests ilustrativos 2026-06-13 00:31:36 +02:00
f9e87058d8 ♻️ (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.
2026-06-12 01:55:07 +02:00
0121fad94a ♻️ (html): Simplifica API de Classes y ClassesOp
Elimina `ClassesOp::Replace` (sustituible con `Remove`+`Add`), renombra
`Set` a `Reset` por claridad semántica, añade `Classes::is_empty()` y
mejora documentación de `ClassesOp` con nota sobre orden CSS.
2026-06-11 07:18:04 +02:00
b1ce79c78f ♻️ Migra soporte HTTP de actix-web a axum en maud 2026-06-01 02:14:07 +02:00
c1afe0e70c ♻️ Migra API pública de actix-web a Axum
- `configure_service` como `configure_router(Router) -> Router`.
- Macro `static_files_service!` como `serve_static_files!`.
- `ResultPage<M, E>` eliminado; handlers devuelven `Result<M, E>`.
- `ErrorPage` implementa `IntoResponse` en lugar de `ResponseError`.
- Registro con `OnceLock`; eliminados `drop_extensions` y `app.welcome`.
- `Redirect` devuelve `Response`; docs y ejemplos actualizados.
2026-05-31 23:38:43 +02:00
7553ed35ec 🎨 Aplica formato Rust 2024 (rustfmt.toml) 2026-05-30 22:50:40 +02:00
f087c457cc 📝 Retoques menores en documentación y ejemplos 2026-05-02 18:19:45 +02:00
0684472df2 🩹 Mensajes de error en minúscula y corrige test 2026-05-02 18:19:45 +02:00
908fd969e4 ♻️ Cambia en prepare_component() el tipo devuelto
Elimina `PrepareMarkup` como tipo de retorno de prepare_component() y de
`FnPrepareRender`, sustituyéndolo directamente por `Markup`. Se elimina
una capa innecesaria, ya que html! {} y html! { ... } cubren todos los
casos que ofrecía `PrepareMarkup`.
2026-05-02 18:19:45 +02:00
6203a02b89 📝 Retoques menores en documentación 2026-01-06 01:23:26 +01:00
bfaf2e569f (bootsier): Añade componentes para formularios 2026-01-06 01:17:35 +01:00
b39ed38d0d ♻️ (pagetop): Optimiza cadenas con CowStr 2026-01-06 01:16:09 +01:00
cf7aba2b53 Extiende normalización de cadenas ASCII 2026-01-04 19:14:51 +01:00
e9d326cd99 Añade normalización de cadenas ASCII 2026-01-04 13:00:16 +01:00
00d4de840b ️ Mejora operaciones con clases y documentación 2025-12-31 08:48:25 +01:00
e9565bf70b ️ Mejora rendimiento de búsquedas de clases 2025-12-28 18:00:26 +01:00
4bf2c18b24 ♻️ Refactoriza AttrClasses como Classes 2025-12-28 14:57:21 +01:00
fa32833ffa ♻️ Refactoriza atributos HTML 2025-12-28 14:03:35 +01:00
25d32ec5de ♻️ Cambia Self::default() por Tipo::default() 2025-12-28 13:18:18 +01:00
700bca7258 💡 Repasa comentarios de la cabecera de funciones 2025-12-16 09:06:52 +01:00
7b340a19f3 (locale): Refactoriza el sistema de localización
- Modulariza la lógica de localización.
- Actualiza la estructura de `Locale` para mejorar la resolución y
  gestión de idiomas.
- Introduce `RequestLocale` para manejar la negociación de idioma basada
  en las peticiones HTTP.
- Mejora `L10n` para ofrecer una gestión más flexible de traducciones
  con argumentos dinámicos.
- Actualiza la implementación de `LangId` en `Page` para garantizar una
  identificación de idioma coherente.
- Elimina código obsoleto y simplifica la gestión de identificadores de
  idioma.
2025-12-14 14:33:35 +01:00
476aff1d8e (pagetop): Añade gestión de rutas con parámetros 2025-12-12 00:14:55 +01:00
caa4cf6096 🚚 Renombra LangMatch por Locale 2025-12-10 15:18:07 +01:00
6c024da51e (minimal): Añade macros declarativas a utilidades
- Incorpora nuevo *crate* `pagetop-minimal` con macros básicas para
  operaciones con cadenas, bloques de texto o colecciones clave-valor.
- Refactoriza código para usar `util::join!` y `util::join_pair!` en la
  concatenación de cadenas.
- Normaliza la gestión de localización usando `util::kv!` para los
  argumentos con pares clave-valor.
- Actualizada documentación y archivos README para reflejar la nueva
  estructura y funcionalidades.
2025-12-07 11:55:26 +01:00
efd4975a50 🚧 Retoques menores en la documentación 2025-12-03 22:56:04 +01:00
af26e6aef9 🌐 Normaliza textos y localización a *snake_case* 2025-11-30 11:42:03 +01:00
2ce74fec8e 🚧 Retoques menores en los comentarios del código 2025-11-29 14:42:05 +01:00
4ac7caddd4 🗑️ Elimina métodos y definiciones obsoletas 2025-11-23 14:37:00 +01:00
2e39af0856 ♻️ (bootsier): Refactoriza la gestión de clases
- Mejora la legibilidad del código.
- Simplifica las alteraciones de clases en los componentes `Container`,
  `Dropdown`, `Image`, `Nav`, `Navbar` y `Offcanvas` usando métodos
  dedicados para generar clases en función de sus propiedades.
- Mejora los enums añadiendo métodos que devuelven sus clases
  asociadas, reduciendo código repetitivo.
- Elimina el trait `JoinClasses` y su implementación, integrando la
  lógica de unión de clases directamente en los componentes.
2025-11-15 13:16:15 +01:00
5ec69345b3 Añade trait JoinClasses para unir clases CSS
También elimina macros sin uso `join_op!` y `join_strict!` (KISS).
2025-11-08 08:07:59 +01:00
534b1f9615 🍱 Reemplaza imágenes del logo de PageTop con SVG 2025-10-26 06:38:10 +01:00
44ddfa4a51 Simplifica Display con f.write_str() 2025-10-19 21:40:42 +02:00
6368e71413 🎨 (pagetop): Mejoras sencillas en doc. y código 2025-10-17 18:14:20 +02:00
d46de78367 (unit): Añade método is_numeric en UnitValue 2025-10-13 18:51:32 +02:00
39a3dabcfb (html): Añade soporte para unidades CSS 2025-10-13 13:13:33 +02:00
345bac9d25 📝 Repasa doc y cambia caracteres Unicode ambiguos 2025-10-12 12:29:16 +02:00
f25f62dd3c 📝 Evita en los ejemplos use pagetop::prelude::*; 2025-10-12 06:57:04 +02:00
075f61bf09 🚧 (core): Mueve Context al ámbito de componentes 2025-09-30 23:36:09 +02:00
6b08b92635 🚚 Renombra AssetsOp por ContextOp 2025-09-30 20:21:06 +02:00
31435f30d3 💡 Mejora legibilidad de comentarios 2025-09-28 08:51:21 +02:00
c6e323b21d 🚨 Ajustes menores sugeridos por clippy 2025-09-18 14:06:33 +02:00