#![warn(missing_docs)]
pub mod adapter;
pub mod annotation;
pub mod app;
pub mod backend;
#[cfg(feature = "clipboard")]
pub(crate) mod clipboard;
pub mod component;
pub mod error;
pub mod harness;
pub mod input;
pub mod layout;
pub mod overlay;
pub mod scroll;
pub mod style;
pub mod theme;
#[cfg(feature = "input-components")]
pub(crate) mod undo;
pub mod util;
pub mod terminal {
pub use crate::app::restore_terminal as restore;
}
pub use adapter::{DualBackend, DualBackendBuilder};
pub use annotation::{
Annotate, AnnotatedOutput, Annotation, AnnotationArea, AnnotationRegistry, WidgetAnnotation,
WidgetType,
};
#[cfg(feature = "serialization")]
pub use app::load_state;
pub use app::{
App, BatchSubscription, BoxedSubscription, ChannelSubscription, Command, CommandHandler,
DebounceSubscription, FilterSubscription, FnUpdate, IntervalImmediateBuilder,
IntervalImmediateSubscription, MappedSubscription, Runtime, RuntimeBuilder, RuntimeConfig,
StateExt, StreamSubscription, Subscription, SubscriptionExt, TakeSubscription,
TerminalEventSubscription, TerminalHook, TerminalRuntime, ThrottleSubscription,
TickSubscription, TickSubscriptionBuilder, TimerSubscription, UnboundedChannelSubscription,
Update, UpdateResult, VirtualRuntime, batch, interval_immediate, terminal_events, tick,
};
pub use backend::{CaptureBackend, EnhancedCell, FrameSnapshot};
pub use component::{Component, EventContext, FocusManager, RenderContext, Toggleable};
#[cfg(feature = "input-components")]
pub use component::{
Button, ButtonMessage, ButtonOutput, ButtonState, Checkbox, CheckboxMessage, CheckboxOutput,
CheckboxState, Dropdown, DropdownMessage, DropdownOutput, DropdownState, InputField,
InputFieldMessage, InputFieldOutput, InputFieldState, LineInput, LineInputMessage,
LineInputOutput, LineInputState, NumberInput, NumberInputMessage, NumberInputOutput,
NumberInputState, RadioGroup, RadioGroupMessage, RadioGroupOutput, RadioGroupState, Select,
SelectMessage, SelectOutput, SelectState, Slider, SliderMessage, SliderOrientation,
SliderOutput, SliderState, Switch, SwitchMessage, SwitchOutput, SwitchState, TextArea,
TextAreaMessage, TextAreaOutput, TextAreaState,
};
#[cfg(feature = "data-components")]
pub use component::{
Column, ItemState, LoadingList, LoadingListItem, LoadingListMessage, LoadingListOutput,
LoadingListState, SelectableList, SelectableListMessage, SelectableListOutput,
SelectableListState, SortComparator, SortDirection, Table, TableMessage, TableOutput, TableRow,
TableState, Tree, TreeMessage, TreeNode, TreeOutput, TreeState, date_comparator,
numeric_comparator,
};
#[cfg(feature = "display-components")]
pub use component::{
BigText, BigTextMessage, BigTextState, Calendar, CalendarMessage, CalendarOutput,
CalendarState, Canvas, CanvasMarker, CanvasMessage, CanvasShape, CanvasState, CodeBlock,
CodeBlockMessage, CodeBlockState, Collapsible, CollapsibleMessage, CollapsibleOutput,
CollapsibleState, Divider, DividerMessage, DividerOrientation, DividerState, Gauge,
GaugeMessage, GaugeOutput, GaugeState, GaugeVariant, HelpPanel, HelpPanelMessage,
HelpPanelState, KeyBinding, KeyBindingGroup, KeyHint, KeyHints, KeyHintsLayout,
KeyHintsMessage, KeyHintsState, MultiProgress, MultiProgressMessage, MultiProgressOutput,
MultiProgressState, Paginator, PaginatorMessage, PaginatorOutput, PaginatorState,
PaginatorStyle, ProgressBar, ProgressBarMessage, ProgressBarOutput, ProgressBarState,
ProgressItem, ProgressItemStatus, ScrollView, ScrollViewMessage, ScrollViewState,
ScrollableText, ScrollableTextMessage, ScrollableTextOutput, ScrollableTextState, Section,
Sparkline, SparklineDirection, SparklineMessage, SparklineOutput, SparklineState, Spinner,
SpinnerMessage, SpinnerState, SpinnerStyle, StatusBar, StatusBarItem, StatusBarItemContent,
StatusBarMessage, StatusBarState, StatusBarStyle, StatusLog, StatusLogEntry, StatusLogLevel,
StatusLogMessage, StatusLogOutput, StatusLogState, StyledText, StyledTextMessage,
StyledTextOutput, StyledTextState, TerminalOutput, TerminalOutputMessage, TerminalOutputOutput,
TerminalOutputState, ThresholdZone, TitleCard, TitleCardMessage, TitleCardState, Toast,
ToastItem, ToastLevel, ToastMessage, ToastOutput, ToastState, UsageDisplay,
UsageDisplayMessage, UsageDisplayState, UsageLayout, UsageMetric, big_char, big_char_width,
format_eta,
};
#[cfg(feature = "navigation-components")]
pub use component::{
Accordion, AccordionMessage, AccordionOutput, AccordionPanel, AccordionState, Breadcrumb,
BreadcrumbMessage, BreadcrumbOutput, BreadcrumbSegment, BreadcrumbState, CommandPalette,
CommandPaletteMessage, CommandPaletteOutput, CommandPaletteState, Menu, MenuItem, MenuMessage,
MenuOutput, MenuState, NavigationMode, PaletteItem, Router, RouterMessage, RouterOutput,
RouterState, StepIndicator, StepIndicatorMessage, StepIndicatorOutput, StepIndicatorState, Tab,
TabBar, TabBarMessage, TabBarOutput, TabBarState, Tabs, TabsMessage, TabsOutput, TabsState,
};
#[cfg(feature = "compound-components")]
pub use component::{
AlertMetric, AlertPanel, AlertPanelMessage, AlertPanelOutput, AlertPanelState, AlertState,
AlertThreshold, BarMode, BinMethod, BoxPlot, BoxPlotData, BoxPlotMessage, BoxPlotOrientation,
BoxPlotState, Chart, ChartAnnotation, ChartKind, ChartMessage, ChartOutput, ChartState,
ConversationMessage, ConversationRole, ConversationView, ConversationViewMessage,
ConversationViewOutput, ConversationViewState, DataGrid, DataGridMessage, DataGridOutput,
DataGridState, DataSeries, DependencyGraph, DependencyGraphMessage, DependencyGraphOutput,
DependencyGraphState, DiffHunk, DiffLine, DiffLineType, DiffMode, DiffViewer,
DiffViewerMessage, DiffViewerOutput, DiffViewerState, EventLevel, EventStream,
EventStreamMessage, EventStreamOutput, EventStreamState, FileBrowser, FileBrowserMessage,
FileBrowserOutput, FileBrowserState, FlameGraph, FlameGraphMessage, FlameGraphOutput,
FlameGraphState, FlameNode, Form, FormField, FormFieldKind, FormMessage, FormOutput, FormState,
FormValue, GraphEdge, GraphNode, GraphOrientation, Heatmap, HeatmapColorScale, HeatmapMessage,
HeatmapOutput, HeatmapState, Histogram, HistogramMessage, HistogramState, LogCorrelation,
LogCorrelationMessage, LogCorrelationOutput, LogCorrelationState, LogStream, LogViewer,
LogViewerMessage, LogViewerOutput, LogViewerState, MessageBlock, MessageHandle, MetricKind,
MetricWidget, MetricsDashboard, MetricsDashboardMessage, MetricsDashboardOutput,
MetricsDashboardState, NodeStatus, PaneLayout, PaneLayoutMessage, PaneLayoutOutput,
PaneLayoutState, SearchableList, SearchableListMessage, SearchableListOutput,
SearchableListState, SelectedType, SpanNode, SpanTree, SpanTreeMessage, SpanTreeOutput,
SpanTreeState, SplitOrientation, SplitPanel, SplitPanelMessage, SplitPanelOutput,
SplitPanelState, StreamEvent, ThresholdLine, Timeline, TimelineEvent, TimelineMessage,
TimelineOutput, TimelineSpan, TimelineState, Treemap, TreemapMessage, TreemapNode,
TreemapOutput, TreemapState,
};
#[cfg(feature = "overlay-components")]
pub use component::{
ConfirmDialog, ConfirmDialogMessage, ConfirmDialogOutput, ConfirmDialogResult,
ConfirmDialogState, Dialog, DialogButton, DialogMessage, DialogOutput, DialogState, Tooltip,
TooltipMessage, TooltipOutput, TooltipPosition, TooltipState,
};
#[cfg(feature = "markdown")]
pub use component::{MarkdownRenderer, MarkdownRendererMessage, MarkdownRendererState};
pub use error::{BoxedError, EnvisionError, Result};
pub use harness::{AppHarness, Assertion, Snapshot, TestHarness};
pub use input::{
Event, EventQueue, Key, KeyEvent, KeyEventKind, Modifiers, MouseButton, MouseEvent,
MouseEventKind,
};
pub use overlay::{Overlay, OverlayAction, OverlayStack};
pub use scroll::{ScrollState, render_scrollbar, render_scrollbar_inside_border};
pub use theme::Theme;
pub mod prelude {
pub use crate::app::{
App, Command, Runtime, RuntimeBuilder, RuntimeConfig, TerminalRuntime, VirtualRuntime,
};
pub use crate::app::{
BoxedSubscription, ChannelSubscription, Subscription, SubscriptionExt, Update, batch,
interval_immediate, tick,
};
pub use crate::input::{
Event, EventQueue, Key, KeyEvent, KeyEventKind, Modifiers, MouseButton, MouseEvent,
MouseEventKind,
};
pub use crate::overlay::{Overlay, OverlayAction, OverlayStack};
pub use crate::theme::Theme;
pub use crate::scroll::ScrollState;
pub use crate::component::*;
pub use crate::backend::{CaptureBackend, EnhancedCell};
pub use crate::harness::{AppHarness, TestHarness};
pub use crate::layout::{
Alignment, Constraint, Direction, Frame, Layout, Margin, Position, Rect, Size, Terminal,
};
pub use crate::style::{Color, Modifier, Style, Stylize};
pub use ratatui::text::{Line, Span, Text};
pub use ratatui::widgets::{StatefulWidget, Widget};
}