pub mod components;
pub mod events;
pub mod state;
pub mod theme;
pub mod traits;
pub mod utils;
pub mod prelude {
pub use crate::components::{
Button, ButtonAction, ButtonState, ButtonStyle, ButtonVariant, CheckBox, CheckBoxAction,
CheckBoxState, CheckBoxStyle, ContextMenu, ContextMenuAction, ContextMenuItem,
ContextMenuState, ContextMenuStyle, DialogConfig, DialogFocusTarget, DialogState, Input,
InputAction, InputState, InputStyle, Menu, MenuBar, MenuBarAction, MenuBarClickTarget,
MenuBarItem, MenuBarState, MenuBarStyle, PopupDialog, calculate_menu_bar_height,
calculate_menu_height, handle_context_menu_key, handle_context_menu_mouse,
handle_menu_bar_key, handle_menu_bar_mouse, is_context_menu_trigger,
menu_bar_dropdown_height,
};
pub use crate::components::{
AnimatedText, AnimatedTextEffect, AnimatedTextState, AnimatedTextStyle, ParagraphExt,
Progress, ProgressStyle, ScrollableContent, ScrollableContentAction,
ScrollableContentState, ScrollableContentStyle, Toast, ToastDismissPolicy, ToastId,
ToastItem, ToastOrder, ToastPlacement, ToastStack, ToastStackLayout, ToastStackState,
ToastState, ToastStyle, WaveDirection, handle_scrollable_content_key,
handle_scrollable_content_mouse,
};
pub use crate::components::{MousePointer, MousePointerState, MousePointerStyle};
pub use crate::components::{
EntryType, FileEntry, FileExplorer, FileExplorerState, FileExplorerStyle, ListPicker,
ListPickerState, ListPickerStyle, key_hints_footer,
};
pub use crate::components::{
FlatNode, TreeNode, TreeStyle, TreeView, TreeViewState, get_selected_id,
};
pub use crate::components::{
Orientation, SplitPane, SplitPaneAction, SplitPaneState, SplitPaneStyle,
handle_split_pane_key, handle_split_pane_mouse,
};
pub use crate::components::{
DiffData, DiffHunk, DiffLine, DiffLineType, DiffViewMode, DiffViewer, DiffViewerAction,
DiffViewerState, DiffViewerStyle, LogViewer, LogViewerState, LogViewerStyle, SearchState,
Step, StepDisplay, StepDisplayState, StepDisplayStyle, StepStatus, SubStep,
handle_diff_viewer_key, handle_diff_viewer_mouse, step_display_height,
};
pub use crate::components::{
CategoryClickRegion, HotkeyCategory, HotkeyClickRegion, HotkeyDialog, HotkeyDialogAction,
HotkeyDialogState, HotkeyDialogStyle, HotkeyEntryData, HotkeyFocus, HotkeyProvider,
handle_hotkey_dialog_key, handle_hotkey_dialog_mouse, render_hotkey_dialog,
};
pub use crate::theme::{ColorPalette, Theme};
pub use crate::utils::{
clean_for_display, format_size, pad_to_width, parse_ansi_to_spans, truncate_to_width,
};
pub use crate::utils::{
ClipboardResult, copy_lines_to_clipboard, copy_to_clipboard, get_from_clipboard,
is_clipboard_available,
};
pub use crate::utils::{
MouseCaptureState, disable_mouse_capture, enable_mouse_capture, set_mouse_capture,
toggle_mouse_capture,
};
pub use crate::traits::{
ClickRegion, ClickRegionRegistry, Clickable, Container, ContainerAction, EventResult,
FocusId, Focusable, PopupContainer,
};
pub use crate::state::FocusManager;
pub use crate::events::{
get_char, get_mouse_pos, get_scroll, has_alt, has_ctrl, has_shift, is_activate_key,
is_backspace, is_backtab, is_close_key, is_ctrl_a, is_ctrl_e, is_ctrl_k, is_ctrl_u,
is_ctrl_w, is_delete, is_end, is_enter, is_home, is_left_click, is_mouse_drag,
is_mouse_move, is_navigation_key, is_right_click, is_space, is_tab,
};
}
#[cfg(test)]
mod tests {
use super::prelude::*;
#[test]
fn test_prelude_imports() {
let _: CheckBoxState = CheckBoxState::new(false);
let _: InputState = InputState::new("");
let _: ButtonState = ButtonState::enabled();
let _: FocusManager<usize> = FocusManager::new();
let _: ClickRegionRegistry<()> = ClickRegionRegistry::new();
}
}