1pub mod alt_screen_search;
13pub mod ansi;
14pub mod assistant_message;
15pub mod autocomplete;
16pub mod bash_execution;
17pub mod bordered_loader;
18pub mod box_component;
19pub mod component;
20pub mod container;
21pub mod countdown_timer;
22pub mod diff;
23pub mod dynamic_border;
24pub mod editor;
25pub mod footer;
26pub mod fuzzy;
27pub mod hstack;
28pub mod image;
29pub mod input;
30mod jump_to_end;
31pub mod keybinding_hints;
32pub mod keybindings;
33pub mod keys;
34pub mod kill_ring;
35pub mod latex;
36pub mod layout;
37pub mod layout_node;
38mod line_diff;
39pub mod loader;
40pub mod markdown;
41pub mod mermaid;
42pub mod overlay;
43pub mod render;
44pub mod scroll_view;
45pub mod search_bar;
46pub mod searchable_select;
47pub mod select_list;
48pub mod settings_list;
49pub mod spacer;
50pub mod status_indicator;
51pub mod stdin_buffer;
52pub mod syntax_highlight;
53pub mod terminal;
54pub mod terminal_colors;
55pub mod terminal_image;
56pub mod text;
57pub mod theme;
58pub mod tool_execution;
59pub mod truncated_text;
60pub mod tui;
61pub mod tui_alt_screen;
62pub mod tui_main_screen;
63pub mod undo_stack;
64pub mod user_message;
65pub mod utils;
66pub mod visual_truncate;
67pub mod vstack;
68#[cfg(windows)]
69pub mod windows_paste;
70pub mod word_navigation;
71
72pub use alt_screen_search::{AltScreenSearch, SearchMatch, SearchState};
74pub use ansi::{bold, strip_ansi, visible_width, CURSOR_MARKER};
75pub use assistant_message::{AssistantBlock, AssistantMessageComponent, AssistantMessageOptions};
76pub use autocomplete::{
77 AutocompleteItem, AutocompleteManager, AutocompleteProvider, AutocompleteSuggestions,
78 CombinedAutocompleteProvider, FilePathAutocompleteProvider, SlashCommand,
79 SlashCommandAutocompleteProvider,
80};
81pub use bash_execution::{BashExecutionComponent, BashStatus, BashTruncation};
82pub use bordered_loader::{BorderedLoader, BorderedLoaderInner};
83pub use box_component::Box;
84pub use component::{Component, Focusable};
85pub use container::Container;
86pub use countdown_timer::CountdownTimer;
87pub use diff::render_diff;
88pub use dynamic_border::DynamicBorder;
89pub use editor::{Editor, EditorOptions, EditorStyle, WorkingState};
90pub use footer::FooterComponent;
91pub use fuzzy::{fuzzy_filter, fuzzy_match, FuzzyMatch};
92pub use hstack::HStack;
93pub use image::{Image, ImageOptions, ImageTheme};
94pub use input::Input;
95pub use keybinding_hints::{
96 format_combo, key_code_name, key_display_text, key_hint, key_text, raw_key_hint,
97};
98pub use keybindings::{
99 get_keybindings, set_keybindings, KeyCombo, KeybindingConflict, KeybindingDefinition,
100 KeybindingId, Keybindings,
101};
102pub use keys::{
103 is_key_release, is_key_repeat, is_kitty_protocol_active, matches_key, parse_key,
104 set_kitty_protocol_active, Key, KeyEventType, KeyHelper, KeyId,
105};
106pub use kill_ring::{KillRing, PushOptions};
107pub use latex::{is_latex, render_latex, strip_latex, RenderLatexOptions};
108pub use layout::{
109 composite_tui_line, extract_cursor_position, hit_test, render_layout_frame, LayoutBox,
110 LayoutFrame, LayoutRect,
111};
112pub use layout_node::{
113 allocate_stack_sizes, LayoutNode, LayoutNodeProvider, LayoutViewport, StackLayoutEntry,
114};
115pub use loader::{
116 CancellableLoader, Loader, LoaderIndicatorOptions, ProgressLoader, SPINNER_FRAMES,
117 SPINNER_FRAME_MS,
118};
119pub use markdown::{Markdown, MarkdownOptions};
120pub use mermaid::Mermaid;
121pub use overlay::{Dialog, OverlayHandle, OverlayManager, Selector, SelectorItem};
122pub use scroll_view::{FollowMode, ScrollView, ScrollViewOptions};
123pub use search_bar::SearchBar;
124pub use searchable_select::SearchableSelectList;
125pub use select_list::{SelectItem, SelectList, SelectListLayoutOptions, SelectListTheme};
126pub use settings_list::{SettingItem, SettingType, SettingsList, SettingsListTheme};
127pub use spacer::Spacer;
128pub use status_indicator::{CompactionReason, IdleStatus, StatusIndicator, StatusKind};
129pub use stdin_buffer::{StdinBuffer, StdinBufferEvent, StdinBufferOptions};
130pub use terminal::{InputEvent, ProcessTerminal, Terminal, TerminalError, TerminalInfo};
131pub use terminal_colors::{
132 parse_osc11_background_color, parse_terminal_color_scheme_report, query_background_color,
133 query_color_scheme, query_cursor_color, query_foreground_color, RgbColor, TerminalColorScheme,
134};
135pub use terminal_image::{
136 allocate_image_id, calculate_image_rows, delete_all_kitty_images, delete_kitty_image,
137 detect_capabilities, encode_iterm2, encode_kitty, get_capabilities, get_cell_dimensions,
138 get_gif_dimensions, get_image_dimensions, get_jpeg_dimensions, get_png_dimensions,
139 get_webp_dimensions, hyperlink, image_fallback, render_image, reset_capabilities_cache,
140 set_capabilities, set_cell_dimensions, CellDimensions, ImageDimensions, ImageProtocol,
141 ImageRenderOptions, TerminalCapabilities,
142};
143pub use text::Text;
144pub use theme::{
145 apply_theme_preset, global_theme_manager, theme, theme_revision, Color, Theme, ThemeColors,
146 ThemeManager, ThemePreset,
147};
148pub use tool_execution::{ToolExecutionComponent, ToolStatus};
149pub use truncated_text::TruncatedText;
150pub use tui::{
151 OverlayAnchor, OverlayHandle as TuiOverlayHandle, OverlayMargin, OverlayOptions, TuiMode,
152 TuiStopOptions, TUI,
153};
154pub use tui_alt_screen::{is_viewport_tui, TuiAltScreen, VIEWPORT_TUI};
155pub use tui_main_screen::TuiMainScreen;
156pub use undo_stack::{RedoStack, UndoRedoManager, UndoStack};
157pub use user_message::UserMessageComponent;
158pub use utils::{
159 apply_background_to_line, get_grapheme_segmenter, get_osc8_link_at_column, is_whitespace_char,
160 slice_by_column, truncate_to_width, visible_width as visible_width_util, wrap_text_with_ansi,
161 Grapheme, GraphemeSegmenter,
162};
163pub use visual_truncate::{truncate_to_visual_lines, VisualTruncateResult};
164pub use vstack::{
165 layout_vstack_constrained, StackAlign, StackChild, StackEntry, StackEntryOptions, StackOptions,
166 VStack,
167};
168pub use word_navigation::{
169 find_line_end, find_line_start, find_word_backward, find_word_end, find_word_forward,
170 get_current_word_range, is_at_word_end, is_at_word_start, is_word_boundary, is_word_char,
171};