#![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,
BoundingBox,
BoxPlot,
BoxPlotData,
BoxPlotMessage,
BoxPlotOrientation,
BoxPlotState,
Chart,
ChartAnnotation,
ChartKind,
ChartMessage,
ChartOutput,
ChartState,
ConversationMessage,
ConversationRole,
ConversationView,
ConversationViewMessage,
ConversationViewOutput,
ConversationViewState,
DataGrid,
DataGridMessage,
DataGridOutput,
DataGridState,
DataSeries,
Diagram,
DiagramCluster,
DiagramEdge,
DiagramMessage,
DiagramNode,
DiagramOrientation,
DiagramOutput,
DiagramState,
DiffHunk,
DiffLine,
DiffLineType,
DiffMode,
DiffViewer,
DiffViewerMessage,
DiffViewerOutput,
DiffViewerState,
EdgePath,
EdgeStyle,
EventLevel,
EventStream,
EventStreamMessage,
EventStreamOutput,
EventStreamState,
FileBrowser,
FileBrowserMessage,
FileBrowserOutput,
FileBrowserState,
FlameGraph,
FlameGraphMessage,
FlameGraphOutput,
FlameGraphState,
FlameNode,
Form,
FormField,
FormFieldKind,
FormMessage,
FormOutput,
FormState,
FormValue,
Heatmap,
HeatmapColorScale,
HeatmapMessage,
HeatmapOutput,
HeatmapState,
Histogram,
HistogramMessage,
HistogramState,
LayoutMode,
LayoutResult,
LogCorrelation,
LogCorrelationMessage,
LogCorrelationOutput,
LogCorrelationState,
LogStream,
LogViewer,
LogViewerMessage,
LogViewerOutput,
LogViewerState,
MessageBlock,
MessageHandle,
MetricKind,
MetricWidget,
MetricsDashboard,
MetricsDashboardMessage,
MetricsDashboardOutput,
MetricsDashboardState,
NodePosition,
NodeShape,
NodeStatus,
PaneLayout,
PaneLayoutMessage,
PaneLayoutOutput,
PaneLayoutState,
PathSegment,
RenderMode,
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,
Viewport2D,
};
#[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};
}