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