pub mod app;
pub mod buffer;
pub mod cell;
pub mod color;
pub mod compositor;
pub mod cursor;
pub mod error;
pub mod event;
pub mod focus;
pub mod geometry;
pub mod highlight;
pub mod layout;
pub mod overlay;
pub mod reactive;
pub mod render_context;
pub mod renderer;
pub mod segment;
pub mod style;
pub mod tcss;
pub mod terminal;
pub mod text;
pub mod text_buffer;
pub mod undo;
pub mod viewport;
pub mod widget;
pub mod wrap;
#[cfg(test)]
mod test_env;
pub use buffer::{CellChange, ScreenBuffer};
pub use cell::Cell;
pub use color::Color;
pub use compositor::{Compositor, CompositorError, CompositorRegion, Layer};
pub use cursor::{CursorPosition, CursorState, Selection};
pub use error::{Result, SaorsaTuiError};
pub use event::{Event, KeyCode, KeyEvent, Modifiers, MouseEvent};
pub use focus::{FocusManager, FocusState, WidgetId};
pub use geometry::{Position, Rect, Size};
pub use highlight::{HighlightSpan, Highlighter, NoHighlighter, SimpleKeywordHighlighter};
pub use layout::{
Constraint, Direction, Dock, Layout, LayoutEngine, LayoutError, LayoutRect, OverflowBehavior,
ScrollManager, ScrollState,
};
pub use overlay::{OverlayConfig, OverlayId, OverlayPosition, Placement, ScreenStack};
pub use reactive::{
Binding, BindingDirection, BindingExpression, BindingId, BindingScope, Computed, Effect,
OneWayBinding, PropertySink, ReactiveScope, Signal, TwoWayBinding, batch,
};
pub use render_context::RenderContext;
pub use renderer::{DeltaBatch, Renderer, batch_changes, build_sgr_sequence};
pub use segment::Segment;
pub use style::Style;
pub use terminal::{
CrosstermBackend, MultiplexerKind, Terminal, TerminalCapabilities, TerminalInfo, TerminalKind,
TestBackend, detect, detect_multiplexer, detect_terminal, merge_multiplexer_limits,
profile_for,
};
pub use text::{
TextConfig, expand_tabs, filter_control_chars, preprocess, string_display_width,
truncate_to_char_boundary, truncate_to_display_width,
};
pub use text_buffer::TextBuffer;
pub use undo::{EditOperation, UndoStack};
pub use viewport::Viewport;
pub use widget::{
Alignment, BorderStyle, Checkbox, Collapsible, Column, Container, DataTable, DiffMode,
DiffView, DirectoryTree, EventResult, IndicatorStyle, Label, LoadingIndicator,
MarkdownRenderer, Modal, OptionList, ProgressBar, ProgressMode, RadioButton, RichLog,
SelectList, Sparkline, StaticWidget, Switch, Tab, TabBarPosition, Tabs, TextArea, Toast,
ToastPosition, Tooltip, Tree, TreeNode, Widget,
};
pub use wrap::{WrapLine, WrapResult, line_number_width, wrap_line, wrap_lines};