Skip to main content

boxmux_lib/components/
mod.rs

1// BoxMux UI Components
2//
3// This module contains reusable UI components that can be used across different parts of BoxMux.
4// Components are designed to be context-aware and handle their own rendering and interactions.
5
6pub mod border;
7pub mod box_renderer;
8pub mod chart_component;
9pub mod choice_content;
10pub mod choice_menu;
11pub mod defaults;
12pub mod dimensions;
13pub mod error_display;
14pub mod horizontal_scrollbar;
15pub mod progress_bar;
16pub mod renderable_content;
17pub mod selection_styles;
18pub mod status_indicator;
19pub mod tab_bar;
20pub mod table_component;
21pub mod text_content;
22pub mod vertical_scrollbar;
23
24#[cfg(test)]
25pub mod event_system_tests;
26
27pub use border::{Border, BorderCharSet, BorderStyle};
28pub use box_renderer::{BoxRenderer, UnifiedOverflowBehavior};
29pub use chart_component::{ChartComponent, ChartConfig, ChartType, DataPoint};
30pub use choice_content::ChoiceContent;
31pub use choice_menu::ChoiceMenu;
32pub use error_display::{
33    CaretPositioning, ErrorDisplay, ErrorDisplayConfig, ErrorInfo, ErrorSeverity, ErrorSpan,
34};
35pub use horizontal_scrollbar::HorizontalScrollbar;
36pub use progress_bar::{ProgressBar, ProgressBarConfig, ProgressBarOrientation, ProgressState};
37pub use renderable_content::{
38    BoxResizeInfo, BoxResizeType, ContentDimensions, ContentEvent, ContentType, EventData,
39    EventResult, EventType, HoverInfo, HoverState, KeyInfo, KeyModifier, MouseButton,
40    MouseMoveInfo, RenderableContent, ResizeAnchor, ResizeState, ScrollDirection, ScrollInfo,
41    SensitiveMetadata, SensitiveZone, TitleChangeInfo, TitleChangeSource,
42};
43pub use selection_styles::{
44    BorderChars, FeedbackStyle, FocusStyle, SelectionIndicators, SelectionStyle,
45    SelectionStyleConfig, SelectionStyleRenderer,
46};
47pub use status_indicator::{StatusIndicator, StatusType};
48pub use tab_bar::{TabBar, TabHitTarget, TabHoverTarget, TabNavigationAction};
49pub use table_component::{TableComponent, TableComponentConfig};
50pub use text_content::TextContent;
51pub use vertical_scrollbar::VerticalScrollbar;
52
53// Dimension classes for centralized mathematical operations
54pub use dimensions::{
55    ComponentDimensions, LayoutDimensions, MouseDimensions, ProgressDimensions, ScrollDimensions,
56    TextDimensions,
57};