ashlar_ui/lib.rs
1#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
2
3//! General-purpose egui components for ashlar apps.
4//!
5//! - Theme: [`tokens`] (design tokens, light/dark/system, interface scale), [`fonts`] (install
6//! app-supplied faces with a CJK fallback chain), [`theme`] (widget-state colouring).
7//! - Inputs: [`value_field`] (drag/scrub and formatted numeric fields), [`slider`] (slider, knob),
8//! [`swatches`], [`search`], [`buttons`], [`tabs`]; all value edits report [`edit`] phases.
9//! - Text: [`markdown`] (chat replies and short documents, streaming-safe).
10//! - Data: [`virtual_list`] (list and table, O(visible) per frame), [`tree`].
11//! - Shell: [`dialog`], [`toasts`], [`status_bar`], [`layout`], [`docking`], [`printing`].
12//! - Commands: [`commands`] (menu model and bar, palette, keymap editor, key dispatch).
13//! - Infrastructure: [`automation`] (ids and rects for `ui.inspect`/`ui.click`), [`devtools`]
14//! (the UI debugger: element tree with refs, injected input, waits, screenshots, inspector), [`cache`]
15//! (revision-keyed galleys and meshes), [`wake`] (frame requests with a reason, per-reason
16//! frame counts).
17//!
18//! Apps own their data, selection, assets and command handling: components take state by
19//! reference and report what the user asked for. Domain widgets (timelines, canvases) stay in the
20//! apps and are built from these pieces.
21
22pub mod automation;
23pub mod buttons;
24pub mod cache;
25pub mod commands;
26pub mod devtools;
27pub mod dialog;
28pub mod docking;
29pub mod edit;
30pub mod fonts;
31pub mod icons;
32pub mod layout;
33pub mod markdown;
34pub mod printing;
35pub mod search;
36pub mod slider;
37pub mod status_bar;
38pub mod swatches;
39pub mod tabs;
40#[cfg(feature = "telemetry")]
41pub mod telemetry;
42pub mod theme;
43pub mod toasts;
44pub mod tokens;
45pub mod tree;
46pub mod value_field;
47pub mod virtual_list;
48pub mod wake;
49
50#[cfg(test)]
51pub(crate) mod test_support;