#![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 use adapter::{DualBackend, DualBackendBuilder};
pub use annotation::{Annotate, Annotation, AnnotationRegistry, WidgetType};
#[cfg(feature = "serialization")]
pub use app::load_state;
pub use app::{
batch, interval_immediate, terminal_events, tick, App, BatchSubscription, BoxedSubscription,
ChannelSubscription, Command, CommandHandler, DebounceSubscription, FilterSubscription,
FnUpdate, IntervalImmediateBuilder, IntervalImmediateSubscription, MappedSubscription, Runtime,
RuntimeConfig, StateExt, StreamSubscription, Subscription, SubscriptionExt, TakeSubscription,
TerminalEventSubscription, TerminalHook, TerminalRuntime, ThrottleSubscription,
TickSubscription, TickSubscriptionBuilder, TimerSubscription, UnboundedChannelSubscription,
Update, UpdateResult, VirtualRuntime,
};
pub use backend::{CaptureBackend, EnhancedCell, FrameSnapshot};
pub use component::{Component, Disableable, FocusManager, Focusable, Toggleable, ViewContext};
#[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::{
date_comparator, numeric_comparator, Column, ItemState, LoadingList, LoadingListItem,
LoadingListMessage, LoadingListOutput, LoadingListState, SelectableList, SelectableListMessage,
SelectableListOutput, SelectableListState, SortComparator, SortDirection, Table, TableMessage,
TableOutput, TableRow, TableState, Tree, TreeMessage, TreeNode, TreeOutput, TreeState,
};
#[cfg(feature = "display-components")]
pub use component::{
big_char, big_char_width, format_eta, 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,
};
#[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, BoxPlot, BoxPlotData, BoxPlotMessage, BoxPlotOrientation, BoxPlotState, Chart,
ChartKind, ChartMessage, ChartOutput, ChartState, ChatMessage, ChatRole, ChatView,
ChatViewMessage, ChatViewOutput, ChatViewState, 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};
pub use overlay::{Overlay, OverlayAction, OverlayStack};
pub use scroll::{render_scrollbar, render_scrollbar_inside_border, ScrollState};
pub use theme::Theme;
pub mod prelude {
pub use crate::app::{App, Command, Runtime, RuntimeConfig, TerminalRuntime, VirtualRuntime};
pub use crate::app::{
batch, interval_immediate, tick, BoxedSubscription, ChannelSubscription, Subscription,
SubscriptionExt, Update,
};
pub use crate::input::{Event, EventQueue, KeyCode, KeyModifiers};
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};
}