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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! General-purpose egui components for ashlar apps.
//!
//! - Theme: [`tokens`] (design tokens, light/dark/system, interface scale), [`fonts`] (install
//! app-supplied faces with a CJK fallback chain), [`theme`] (widget-state colouring).
//! - Inputs: [`value_field`] (drag/scrub and formatted numeric fields), [`slider`] (slider, knob),
//! [`swatches`], [`search`], [`buttons`], [`tabs`]; all value edits report [`edit`] phases.
//! - Text: [`markdown`] (chat replies and short documents, streaming-safe).
//! - Data: [`virtual_list`] (list and table, O(visible) per frame), [`tree`].
//! - Shell: [`dialog`], [`toasts`], [`status_bar`], [`layout`], [`docking`], [`printing`].
//! - Commands: [`commands`] (menu model and bar, palette, keymap editor, key dispatch).
//! - Infrastructure: [`automation`] (ids and rects for `ui.inspect`/`ui.click`), [`devtools`]
//! (the UI debugger: element tree with refs, injected input, waits, screenshots, inspector), [`cache`]
//! (revision-keyed galleys and meshes), [`wake`] (frame requests with a reason, per-reason
//! frame counts).
//!
//! Apps own their data, selection, assets and command handling: components take state by
//! reference and report what the user asked for. Domain widgets (timelines, canvases) stay in the
//! apps and are built from these pieces.
pub