Skip to main content

photon_ui/components/
mod.rs

1//! UI components provided by photon-ui.
2//!
3//! Each submodule implements a specific [`Component`] trait for rendering
4//! and interacting with a distinct UI element.
5
6/// A box that draws a border around its content.
7pub mod box_component;
8/// Hierarchical breadcrumb navigation.
9pub mod breadcrumbs;
10/// Clickable button.
11pub mod button;
12/// Loading spinner that can be cancelled.
13pub mod cancellable_loader;
14/// Generic container component.
15pub mod container;
16/// Layout container that splits space among children.
17pub mod div;
18/// Horizontal or vertical divider line.
19pub mod divider;
20/// Multi-line text editor with vim/emacs modes.
21pub mod editor;
22/// Page header component.
23pub mod header;
24/// Terminal image display widget.
25pub mod image_widget;
26/// Single-line text input with vim/emacs modes.
27pub mod input;
28/// Loading spinner.
29pub mod loader;
30/// Markdown renderer.
31pub mod markdown;
32/// Modal dialog overlay.
33pub mod modal;
34/// Panel container with optional border.
35pub mod panel;
36/// Progress bar.
37pub mod progress_bar;
38/// Selectable list of items.
39pub mod select_list;
40/// Settings key/value list.
41pub mod settings_list;
42/// Sidebar navigation.
43pub mod sidebar;
44/// Empty spacer for layout padding.
45pub mod spacer;
46/// Status bar with segments.
47pub mod status_bar;
48/// Table with sortable columns and row selection.
49pub mod table;
50/// Tab bar.
51pub mod tabs;
52/// Static text label.
53pub mod text;
54/// Collapsible tree view.
55pub mod tree_view;
56/// Text truncated to fit a width.
57pub mod truncated_text;
58
59pub use box_component::Box;
60pub use breadcrumbs::Breadcrumbs;
61pub use button::Button;
62pub use cancellable_loader::CancellableLoader;
63pub use container::Container;
64pub use div::Div;
65pub use divider::Divider;
66pub use editor::Editor;
67pub use header::Header;
68pub use image_widget::ImageWidget;
69pub use input::Input;
70pub use loader::Loader;
71pub use markdown::Markdown;
72pub use modal::Modal;
73pub use panel::Panel;
74pub use progress_bar::ProgressBar;
75pub use select_list::SelectList;
76pub use settings_list::SettingsList;
77pub use sidebar::{
78    Sidebar,
79    SidebarItem,
80};
81pub use spacer::Spacer;
82pub use status_bar::{
83    Segment,
84    StatusBar,
85};
86pub use table::{
87    Column,
88    Row,
89    Table,
90};
91pub use tabs::Tabs;
92pub use text::Text;
93pub use tree_view::{
94    TreeNode,
95    TreeView,
96};
97pub use truncated_text::TruncatedText;