Commit graph

8 commits

Author SHA1 Message Date
2626234163 ♻️ Refactoriza la API de Children e InRegion
- Patrón prototipo en `InRegion`: cada petición recibe clones profundos.
- `ComponentClone` habilita clonar `dyn Component` de forma segura.
- `ChildTyped<C>` renombrado a `Slot<C>`, elimina `ChildTypedOp`.
- `Mutex` en lugar de `Arc<RwLock>` en `Child` y `Slot`.
- `is_renderable` y `setup_before_prepare` reciben `&Context`.
- Nuevos tests para `Children`, `ChildOp` y `Slot`.
2026-05-02 18:19:45 +02:00
f51d90dd66 Añade ComponentError con HTML alternativo
`prepare_component()` ahora devuelve `Result<Markup, ComponentError>` en
lugar de `Markup`, para que los componentes señalen fallos durante el
renderizado de forma explícita.

`ComponentError` encapsula un mensaje de error y un marcado HTML
alternativo opcional (`fallback`). Si se produce un error, el ciclo de
renderizado registra la traza y muestra el `fallback` en lugar del
componente fallido, sin interrumpir el resto de la página.

Lo mismo aplica a los errores devueltos por la acción `PrepareRender` de
los temas, que siguen el mismo mecanismo.
2026-05-02 18:19:45 +02:00
015b31733d Implementa Debug en comp./tipos principales 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
4bf2c18b24 ♻️ Refactoriza AttrClasses como Classes 2025-12-28 14:57:21 +01:00
25d32ec5de ♻️ Cambia Self::default() por Tipo::default() 2025-12-28 13:18:18 +01:00
33669d90f6 (pagetop): Añade macro Getters para estructuras 2025-11-30 12:51:45 +01:00
f0e5f50a7f (theme): Añade componentes Region y Template
- Incluye un componente base `Template` para gestionar la estructura
  del documento y sus regiones (`Region`).
- Actualiza el *trait* `Contextual` para permitir la selección de la
  plantilla de renderizado.
- Modifica `Page` y `Context`, y refactoriza el manejo de temas, para
  dar soporte al nuevo sistema de plantillas y eliminar la gestión
  obsoleta de regiones.
2025-11-22 09:11:16 +01:00
Renamed from src/base/component/icon.rs (Browse further)