Skip to main content

iced_cube/
lib.rs

1//! Themeable application components for [iced](https://iced.rs).
2//!
3//! Every component sits behind a Cargo feature named after it, such as
4//! `button` or `scroll-area`, and each group (`primitives`, `forms`,
5//! `layout`, `navigation`, `overlay`, `feedback`, `application`, `data`)
6//! enables its members. The default `full` feature enables all of them.
7//!
8//! ```no_run
9//! # #[cfg(feature = "button")]
10//! # fn main() {
11//! use iced_cube::{button, lucide};
12//! use iced_cube::primitives::button::Variant;
13//!
14//! #[derive(Debug, Clone)]
15//! enum Message { Save }
16//!
17//! let save: iced::Element<'_, Message> = button("Save")
18//!     .icon(lucide!(Save))
19//!     .variant(Variant::Primary)
20//!     .on_press(Message::Save)
21//!     .into();
22//! # }
23//! # #[cfg(not(feature = "button"))]
24//! # fn main() {}
25//! ```
26
27#![cfg_attr(docsrs, feature(doc_cfg))]
28
29#[cfg(any(feature = "button", feature = "toggle", feature = "tooltip"))]
30mod after_touch;
31pub mod application;
32pub mod data;
33pub mod feedback;
34#[cfg(feature = "breadcrumb")]
35mod fit;
36pub mod forms;
37#[cfg(feature = "toast")]
38mod hit_slop;
39pub mod icon;
40#[cfg(feature = "slider")]
41mod inert;
42pub mod keys;
43pub mod layout;
44#[cfg(any(
45    feature = "avatar",
46    feature = "badge",
47    feature = "button",
48    feature = "fab",
49    feature = "tabs",
50    feature = "toggle"
51))]
52mod natural;
53pub mod navigation;
54pub mod overlay;
55pub mod primitives;
56#[cfg(any(feature = "dialog", feature = "sidebar", feature = "toast"))]
57mod solid;
58pub mod theme;
59
60pub use icon::{Glyph, Icon};
61pub use keys::{Chord, Keymap};
62
63#[cfg(feature = "command-palette")]
64pub use application::command_palette;
65#[cfg(feature = "menubar")]
66pub use application::menubar;
67#[cfg(feature = "status-bar")]
68pub use application::status_bar;
69#[cfg(feature = "toolbar")]
70pub use application::toolbar;
71
72#[cfg(feature = "data-table")]
73pub use data::data_table;
74#[cfg(feature = "json-viewer")]
75pub use data::json_viewer;
76#[cfg(feature = "log-viewer")]
77pub use data::log_viewer;
78#[cfg(feature = "property-grid")]
79pub use data::property_grid;
80#[cfg(feature = "tree")]
81pub use data::tree;
82#[cfg(feature = "virtual-list")]
83pub use data::virtual_list;
84
85#[cfg(feature = "alert")]
86pub use feedback::alert;
87#[cfg(feature = "badge")]
88pub use feedback::badge;
89#[cfg(feature = "progress")]
90pub use feedback::progress;
91#[cfg(feature = "spinner")]
92pub use feedback::spinner;
93#[cfg(feature = "avatar")]
94pub use feedback::{avatar, avatar_group};
95
96#[cfg(feature = "combobox")]
97pub use forms::combobox;
98#[cfg(feature = "select")]
99pub use forms::select;
100#[cfg(feature = "textarea")]
101pub use forms::textarea;
102#[cfg(feature = "field")]
103pub use forms::{field, label};
104
105#[cfg(feature = "accordion")]
106pub use layout::accordion;
107#[cfg(feature = "card")]
108pub use layout::card;
109#[cfg(feature = "resizable-panel")]
110pub use layout::resizable_panel;
111#[cfg(feature = "split-pane")]
112pub use layout::split_pane;
113#[cfg(feature = "stack")]
114pub use layout::{hstack, vstack};
115
116#[cfg(feature = "bottom-nav")]
117pub use navigation::bottom_nav;
118#[cfg(feature = "command")]
119pub use navigation::command;
120#[cfg(feature = "document-tabs")]
121pub use navigation::document_tabs;
122#[cfg(feature = "pagination")]
123pub use navigation::pagination;
124#[cfg(feature = "sidebar")]
125pub use navigation::sidebar;
126#[cfg(feature = "breadcrumb")]
127pub use navigation::{breadcrumb, crumb};
128#[cfg(feature = "tabs")]
129pub use navigation::{tab, tabs};
130
131#[cfg(feature = "context-menu")]
132pub use overlay::context_menu;
133#[cfg(feature = "dropdown-menu")]
134pub use overlay::dropdown_menu;
135#[cfg(feature = "popover")]
136pub use overlay::popover;
137#[cfg(feature = "tooltip")]
138pub use overlay::tooltip;
139#[cfg(feature = "dialog")]
140pub use overlay::{alert_dialog, dialog};
141#[cfg(feature = "toast")]
142pub use overlay::{toast, toasts};
143
144#[cfg(feature = "button")]
145pub use primitives::button;
146#[cfg(feature = "checkbox")]
147pub use primitives::checkbox;
148#[cfg(feature = "fab")]
149pub use primitives::fab;
150#[cfg(feature = "icon-button")]
151pub use primitives::icon_button;
152#[cfg(feature = "input")]
153pub use primitives::input;
154#[cfg(feature = "scroll-area")]
155pub use primitives::scroll_area;
156#[cfg(feature = "slider")]
157pub use primitives::slider;
158#[cfg(feature = "switch")]
159pub use primitives::switch;
160#[cfg(feature = "tappable")]
161pub use primitives::tappable;
162#[cfg(feature = "toggle")]
163pub use primitives::toggle;
164#[cfg(feature = "toggle-group")]
165pub use primitives::toggle_group;
166#[cfg(feature = "touch-clicks")]
167pub use primitives::touch_clicks;
168#[cfg(feature = "radio")]
169pub use primitives::{radio, radio_group};
170#[cfg(feature = "separator")]
171pub use primitives::{separator, vertical_separator};