1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Slint backend for A2UI.
//!
//! Translates an A2UI component tree (the flat `id → ComponentModel` map owned
//! by [`a2ui_base::model`]) into a Slint reactive tree and bridges Slint UI
//! events back to the framework-agnostic interaction layer in `a2ui_base`.
//!
//! Unlike the ratatui backend (immediate-mode painting on a character grid),
//! Slint is retained-mode + declarative: layout is handled by Slint's engine,
//! so this backend does **not** reproduce the tui's measure pass or
//! `layout_engine`. Instead it walks the component tree into a [`live_tree`]
//! model that `.slint` components bind to reactively.
//!
//! Everything here lives behind the `backend` cargo feature, which pulls in the
//! Slint runtime. Without it this crate is an empty shell (it compiles with no
//! dependencies beyond `a2ui-base`), keeping the workspace's default build light.
/// The reactive-tree node type generated from `.slint` (see `build.rs`).
pub use LiveNode;
/// Re-export the core interaction pieces backends compose against, so consumers
/// can `use a2ui_slint::{dispatch_event, apply_event_result, ...}` in one place.
pub use dispatch_event;
pub use FocusManager;
pub use apply_event_result;