1#![doc(
2 html_logo_url = "https://freyaui.dev/logo.svg",
3 html_favicon_url = "https://freyaui.dev/logo.svg"
4)]
5#![cfg_attr(feature = "docs", feature(doc_cfg))]
6pub mod prelude {
100 pub use freya_core::prelude::*;
101 pub use freya_edit::{
102 Clipboard,
103 ClipboardError,
104 };
105 #[cfg_attr(feature = "docs", doc(cfg(feature = "winit")))]
106 #[cfg(feature = "winit")]
107 pub use freya_winit::{
108 WindowDragExt,
109 WinitPlatformExt,
110 config::{
111 CloseDecision,
112 LaunchConfig,
113 WindowConfig,
114 },
115 renderer::{
116 NativeEvent,
117 RendererContext,
118 },
119 };
120
121 pub use crate::components::*;
122 #[cfg_attr(feature = "docs", doc(cfg(feature = "markdown")))]
123 #[cfg(feature = "markdown")]
124 pub use crate::markdown::*;
125
126 #[cfg_attr(feature = "docs", doc(cfg(feature = "winit")))]
127 #[cfg(feature = "winit")]
128 pub fn launch(launch_config: LaunchConfig) {
129 #[cfg(feature = "devtools")]
130 let launch_config = launch_config.with_plugin(freya_devtools::DevtoolsPlugin::default());
131 #[cfg(debug_assertions)]
132 let launch_config = launch_config
133 .with_plugin(freya_performance_plugin::PerformanceOverlayPlugin::default());
134 freya_winit::launch(launch_config)
135 }
136
137 #[cfg_attr(feature = "docs", doc(cfg(feature = "router")))]
138 #[cfg(feature = "router")]
139 pub use freya_router;
140 pub use torin::{
141 alignment::Alignment,
142 content::Content,
143 direction::Direction,
144 gaps::Gaps,
145 geometry::{
146 Area,
147 CursorPoint,
148 Size2D,
149 },
150 order::Order,
151 position::Position,
152 size::Size,
153 visible_size::VisibleSize,
154 };
155}
156pub mod elements {
157 pub use freya_core::elements::*;
158}
159
160pub mod components {
161 #[cfg_attr(feature = "docs", doc(cfg(feature = "gif")))]
162 #[cfg(feature = "gif")]
163 pub use freya_components::gif_viewer::*;
164 cfg_if::cfg_if! {
165 if #[cfg(feature = "router")] {
166 #[cfg_attr(feature = "docs", doc(cfg(feature = "router")))]
167 pub use freya_components::activable_route::*;
168 pub use freya_components::link::*;
169 pub use freya_components::native_router::*;
170 pub use freya_components::animated_router::*;
171 }
172 }
173 #[cfg_attr(feature = "docs", doc(cfg(feature = "remote-asset")))]
174 #[cfg(feature = "remote-asset")]
175 pub use freya_components::Uri;
176 #[cfg_attr(feature = "docs", doc(cfg(feature = "calendar")))]
177 #[cfg(feature = "calendar")]
178 pub use freya_components::calendar::*;
179 #[cfg(feature = "titlebar")]
180 pub use freya_components::titlebar::*;
181 pub use freya_components::{
182 accordion::*,
183 activable::*,
184 activable_context::*,
185 attached::*,
186 button::*,
187 canvas::*,
188 card::*,
189 checkbox::*,
190 chip::*,
191 color_picker::*,
192 context_menu::*,
193 cursor_area::*,
194 define_theme,
195 docking::*,
196 drag_drop::*,
197 draggable_canvas::*,
198 element_expansions::*,
199 floating_tab::*,
200 gallery,
201 get_theme,
202 icons::{
203 arrow::*,
204 tick::*,
205 },
206 image_viewer::*,
207 input::*,
208 loader::*,
209 menu::*,
210 overflowed_content::*,
211 popup::*,
212 portal::*,
213 progressbar::*,
214 radio_item::*,
215 resizable_container::*,
216 scrollviews::*,
217 segmented_button::*,
218 select::*,
219 selectable_text::*,
220 sidebar::*,
221 skeleton::*,
222 slider::*,
223 switch::*,
224 table::*,
225 theming::{
226 component_themes::{
227 ColorsSheet,
228 Theme,
229 },
230 extensions::*,
231 hooks::*,
232 macros::Preference,
233 themes::*,
234 },
235 tile::*,
236 tooltip::*,
237 typography::*,
238 };
239}
240
241pub mod text_edit {
242 pub use freya_edit::*;
243}
244
245pub mod clipboard {
246 pub use freya_clipboard::prelude::*;
247}
248
249pub mod animation {
250 pub use freya_animation::prelude::*;
251}
252
253#[cfg_attr(feature = "docs", doc(cfg(feature = "plot")))]
254#[cfg(feature = "plot")]
255pub mod plot {
256 pub use freya_plotters_backend::*;
257 pub use plotters;
258}
259
260#[cfg_attr(feature = "docs", doc(cfg(feature = "router")))]
261#[cfg(feature = "router")]
262pub mod router {
263 pub use freya_router::prelude::*;
264}
265
266#[cfg_attr(feature = "docs", doc(cfg(feature = "i18n")))]
267#[cfg(feature = "i18n")]
268pub mod i18n {
269 pub use freya_i18n::prelude::*;
270}
271
272#[cfg_attr(feature = "docs", doc(cfg(feature = "engine")))]
273#[cfg(feature = "engine")]
274pub mod engine {
275 pub use freya_engine::*;
276}
277
278#[cfg_attr(feature = "docs", doc(cfg(feature = "winit")))]
279#[cfg(feature = "winit")]
280pub mod winit {
281 pub use freya_winit::winit::*;
282}
283
284pub mod helpers {
285 pub use freya_core::helpers::*;
286}
287
288#[cfg_attr(feature = "docs", doc(cfg(feature = "tray")))]
289#[cfg(feature = "tray")]
290pub mod tray {
291 pub use freya_winit::tray::*;
292}
293
294#[cfg_attr(feature = "docs", doc(cfg(feature = "sdk")))]
295#[cfg(feature = "sdk")]
296pub mod sdk {
297 pub use freya_sdk::prelude::*;
298}
299
300#[cfg_attr(feature = "docs", doc(cfg(feature = "material-design")))]
301#[cfg(feature = "material-design")]
302pub mod material_design {
303 pub use freya_material_design::prelude::*;
304}
305
306#[cfg_attr(feature = "docs", doc(cfg(feature = "icons")))]
307#[cfg(feature = "icons")]
308pub mod icons {
309 pub use freya_icons::*;
310}
311
312#[cfg(feature = "radio")]
314#[cfg_attr(feature = "docs", doc(cfg(feature = "radio")))]
315pub mod radio {
316 pub use freya_radio::prelude::*;
317}
318
319#[cfg(feature = "query")]
321#[cfg_attr(feature = "docs", doc(cfg(feature = "query")))]
322pub mod query {
323 pub use freya_query::prelude::*;
324}
325
326#[cfg(feature = "webview")]
328#[cfg_attr(feature = "docs", doc(cfg(feature = "webview")))]
329pub mod webview {
330 pub use freya_webview::prelude::*;
331}
332
333#[cfg(feature = "terminal")]
335#[cfg_attr(feature = "docs", doc(cfg(feature = "terminal")))]
336pub mod terminal {
337 pub use freya_terminal::prelude::*;
338}
339
340#[cfg(feature = "code-editor")]
342#[cfg_attr(feature = "docs", doc(cfg(feature = "code-editor")))]
343pub mod code_editor {
344 pub use freya_code_editor::prelude::*;
345}
346
347#[cfg(feature = "camera")]
349#[cfg_attr(feature = "docs", doc(cfg(feature = "camera")))]
350pub mod camera {
351 pub use freya_camera::{
352 init,
353 nokhwa,
354 prelude::*,
355 };
356}
357
358#[cfg(feature = "video")]
360#[cfg_attr(feature = "docs", doc(cfg(feature = "video")))]
361pub mod video {
362 pub use freya_video::*;
363}
364
365#[cfg(feature = "performance")]
366#[cfg_attr(feature = "docs", doc(cfg(feature = "performance")))]
367pub mod performance {
368 pub use freya_performance_plugin::*;
369}
370
371#[cfg(feature = "markdown")]
373#[cfg_attr(feature = "docs", doc(cfg(feature = "markdown")))]
374pub mod markdown {
375 pub use freya_markdown::*;
376}
377
378#[cfg(target_os = "android")]
379pub mod android {
380 pub use freya_android::*;
381}
382
383#[cfg(doc)]
384pub mod _docs;