#![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;
#[cfg(feature = "display-components")]
pub mod render;
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,
ConfiguredRuntimeBuilder, DebounceSubscription, FilterSubscription, FnUpdate,
IntervalImmediateBuilder, IntervalImmediateSubscription, MappedSubscription, OptionalArgs,
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::{
Cell, CellStyle, Column, InitialSort, ItemState, LoadingList, LoadingListItem,
LoadingListMessage, LoadingListOutput, LoadingListState, RowStatus, SelectableList,
SelectableListMessage, SelectableListOutput, SelectableListState, SortDirection, SortKey,
Table, TableMessage, TableOutput, TableRow, TableState, Tree, TreeMessage, TreeNode,
TreeOutput, TreeState,
};
#[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, GaugeOrientation, 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, ResourceGauge, ResourceGaugeMessage,
ResourceGaugeOutput, ResourceGaugeState, ResourceValues, 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, MessageSendError, MessageSender, Snapshot, TestHarness, TrySendError,
};
pub use input::{
Event, EventQueue, Key, KeyEvent, KeyEventKind, Modifiers, MouseButton, MouseEvent,
MouseEventKind,
};
pub use overlay::{Overlay, OverlayAction, OverlayStack};
#[cfg(feature = "display-components")]
pub use render::styled_line;
pub use scroll::{ScrollState, render_scrollbar, render_scrollbar_inside_border};
pub use theme::{NamedColor, Palette, Severity, Theme};
#[cfg(all(doctest, feature = "full"))]
#[doc = include_str!("../README.md")]
pub struct ReadmeDoctests;
pub mod prelude {
pub use crate::app::{
App, Command, ConfiguredRuntimeBuilder, OptionalArgs, 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::{NamedColor, Severity, Theme};
pub use crate::scroll::ScrollState;
pub use crate::component::*;
pub use crate::backend::{CaptureBackend, EnhancedCell};
pub use crate::harness::{AppHarness, MessageSender, 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};
}