tuika 0.8.0

The application framework for Rust terminal UIs — flexbox layout, overlays, focus, keymap, components, and safe ratatui interoperability.
Documentation
//! Component library.
//!
//! Every component implements [`View`](crate::view::View). Layout
//! containers ([`Flex`], [`Boxed`], [`ItemScroll`]) nest children; leaves
//! ([`Text`], [`Paragraph`], [`SelectList`], [`Table`], [`Scroll`],
//! [`StatusBar`], [`Spacer`]) paint content. Interactive leaves pair with a persisted `*State`
//! (see [`ScrollState`], [`SelectState`] — a [`Table`] reuses `SelectState`)
//! held by the host. To add a component, drop
//! a new module here and implement `View`; nothing else needs to change.
//!
//! # Where things live
//!
//! Every component type is re-exported flat, so `components::Scroll` is the one
//! canonical path to a component — there is no `components::scroll::Scroll` to
//! choose between. A component's own module is public only when it owns
//! something the flat namespace cannot name well: a constant or a free function
//! whose meaning depends on which component it belongs to. Those stay in their
//! module ([`markdown::to_lines`], [`toast::DEFAULT_TTL`]) instead of being
//! flattened into a hand-prefixed alias.

mod activity;
mod app_shell;
pub mod ascii_font;
mod boxed;
pub(crate) mod code_block;
mod completion;
pub mod console;
mod constrained;
mod dialog;
mod dialog_presets;
pub mod diff;
mod flex;
mod flow;
mod focus_scope;
mod form;
mod grid;
mod image;
mod item_scroll;
mod key_hints;
mod keyed_table;
mod loader;
pub mod markdown;
mod progress_bar;
pub mod qr;
mod responsive;
mod rule;
mod scroll;
mod select;
mod selection_screen;
mod slider;
mod spacer;
mod spinner;
mod status_bar;
mod tab_select;
mod table;
mod tabs;
pub mod text;
mod textinput;
pub mod toast;
mod viewport;
mod virtualization;

pub use activity::{ActivityItem, ActivityList, ActivityStatus};
pub use app_shell::AppShell;
pub use ascii_font::AsciiFont;
pub use boxed::Boxed;
pub use code_block::CodeBlock;
pub use completion::{CompletionItem, CompletionPalette, CompletionState};
pub use console::{Console, ConsoleLog};
pub use constrained::Constrained;
pub use dialog::Dialog;
pub use dialog_presets::{
    ChoiceDialog, ChoiceDialogState, ConfirmDialog, ConfirmDialogState, InputDialog,
    InputDialogState, MultiChoiceDialog, MultiChoiceDialogState,
};
pub use diff::{Diff, DiffMode, DiffRow, DiffStyle, DiffTag};
pub use flex::Flex;
pub use flow::Flow;
pub use focus_scope::FocusScope;
pub use form::{Form, FormField, FormState};
pub use grid::Grid;
pub use image::Image;
pub use item_scroll::ItemScroll;
pub use key_hints::{KeyHint, KeyHints, KeymapHelp};
pub use keyed_table::{
    KeyedColumn, KeyedMultiSelectState, KeyedRowSource, KeyedSelectState, KeyedTable,
    NavigableKeyedRowSource,
};
pub use loader::Loader;
pub use markdown::{
    ImageResolver, Markdown, MarkdownBlock, MarkdownBlockContext, MarkdownBlockRenderer,
    MarkdownImage, MarkdownState, Renderers,
};
pub use progress_bar::ProgressBar;
pub use qr::{QrCode, QrEcc};
pub use responsive::Responsive;
pub use rule::Rule;
pub use scroll::{Scroll, ScrollState};
pub use select::{MultiSelectState, SelectList, SelectNavigation, SelectState};
pub use selection_screen::SelectionScreen;
pub use slider::{Slider, SliderState};
pub use spacer::Spacer;
pub use spinner::{Spinner, SpinnerStyle};
pub use status_bar::StatusBar;
pub use tab_select::{TabSelect, TabSelectState};
pub use table::{Column, Table};
pub use tabs::{Tabs, TabsState};
pub use text::{Paragraph, Text, Wrap};
pub use textinput::{
    SingleLineInputState, TextInput, TextInputMode, TextInputState, TextSpan, Token, Trigger,
    TriggerAnchor,
};
pub use toast::{ToastLevel, ToastList, Toasts};
pub use viewport::Viewport;
pub use virtualization::{Scrollbar, VirtualWindow};