Añade acciones base y renderizado de componentes

- Añade acciones BeforeRender y AfterRender para ejecutar código
  personalizado antes y después de renderizar un componente.
- Introduce la acción PrepareRender para personalizar totalmente el
  renderizado de un componente.
- Se actualizan las definiciones de acciones para utilizar el nuevo
  "trait" ActionDispatcher.
- Se crea un nuevo trait ComponentTrait para definir componentes
  renderizables.
- Se implementan las estructuras Children y Child para gestionar
  componentes hijos dentro de un componente padre.
- Se añade OptionComponent para encapsular de forma segura componentes
  opcionales y poder usarlos en otros componentes.
This commit is contained in:
Manuel Cillero 2025-07-24 08:38:17 +02:00
parent f76a208520
commit 37df2ada75
28 changed files with 1102 additions and 147 deletions

View file

@ -2,7 +2,7 @@ use crate::core::action::ActionBox;
use crate::core::theme::ThemeRef;
use crate::core::AnyInfo;
use crate::locale::L10n;
use crate::{inject_actions, service};
use crate::{actions_boxed, service};
/// Representa una referencia a una extensión.
///
@ -77,7 +77,7 @@ pub trait ExtensionTrait: AnyInfo + Send + Sync {
/// [peso](crate::Weight), permitiendo personalizar el comportamiento de la aplicación en puntos
/// específicos.
fn actions(&self) -> Vec<ActionBox> {
inject_actions![]
actions_boxed![]
}
/// Inicializa la extensión durante la lógica de arranque de la aplicación.