1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
#![doc(
html_logo_url = "https://freyaui.dev/logo.svg",
html_favicon_url = "https://freyaui.dev/logo.svg"
)]
//! # Freya
//!
//! **Freya** is a declarative, cross-platform GUI Rust library, powered by 🧬 [Dioxus](https://dioxuslabs.com) and 🎨 [Skia](https://skia.org/).
//!
//! **It does not use any web tech**, check the [Differences with Dioxus](https://book.freyaui.dev/differences_with_dioxus.html).
//!
//! ### Basics
//! - [Introduction](self::_docs::introduction)
//! - [Dioxus Fundamentals](self::_docs::dioxus_fundamentals)
//! - [UI](self::_docs::ui)
//! - [Components](self::_docs::components_and_props)
//! - [Hooks](self::_docs::hooks)
//! - [State Management](self::_docs::state_management)
//! - [Signals](self::_docs::state_management::signals)
//! - [Global Signals](self::_docs::state_management::global_signals)
//! - [Lifecycle](self::_docs::state_management::lifecycle)
//! - [Context](self::_docs::state_management::context)
//! - [Memoization](self::_docs::state_management::memoization)
//! - [Async Tasks](self::_docs::async_tasks)
//!
//! ### Learn
//! - [Development Setup](self::_docs::development_setup)
//! - [Elements Overview](self::_docs::elements)
//! - [Theming](self::_docs::theming)
//! - [i18n](self::_docs::i18n)
//! - [Accessibility](self::_docs::accessibility)
//! - [Text Editing](self::_docs)
//! - [Animations](self::_docs)
//! - [Router](self::_docs::router)
//! - [Native Router](self::_docs::router::native_router)
//! - [Animated transitions](self::_docs::router::animated_transitions)
//! - [Native Menus](self::_docs)
//! - [Third Party State Managemement](self::_docs::third_party_state)
//! - [Unit Testing for Components](freya_testing)
//! - [Devtools](self::_docs::devtools)
//! - [Performance Tips](self::_docs::performance)
//!
//! ### API References
//! - [Elements and attributes](freya_elements::elements#structs)
//! - [Events](freya_elements::elements#functions)
//! - [Built-in Components](freya_components)
//! - [Built-in Hooks](freya_hooks)
//!
//! ## Features flags
//!
//! - `devtools`: enables a side panel to inspect your App tree, styles and computed layout.
//! - `use_camera`: enables the `use_camera` hook.
//! - `log`: enables internal logs.
/// Freya docs.
#[cfg(doc)]
pub mod _docs;
/// Dioxus library.
pub use dioxus;
pub use dioxus_core;
#[cfg(doc)]
pub use freya_elements::_docs as elements_docs;
/// Launch your app.
pub mod launch;
/// Collection of basic components.
pub mod components {
pub use freya_components::*;
}
/// Useful utilities.
pub mod hooks {
pub use freya_hooks::*;
}
/// Common data structures and utils.
pub mod common {
pub use freya_common::*;
}
/// Core APIs.
pub mod core {
pub use freya_core::*;
}
/// Elements, attributes and events definitions.
pub use freya_elements::elements;
/// Events data.
pub use freya_elements::events;
/// Hot reload configuration.
pub mod hotreload {
pub use freya_elements::elements::FreyaCtx;
}
pub use torin;
pub mod plugins;
/// Useful imports.
pub mod prelude {
pub use dioxus_core::{
prelude::*,
{
self,
},
};
pub use dioxus_core_macro::*;
pub use dioxus_hooks::*;
pub use dioxus_hot_reload::{
self,
hot_reload_init,
Config,
};
pub use dioxus_signals::*;
pub use freya_components::*;
pub use freya_core::prelude::PreferredTheme;
pub use freya_elements::{
elements as dioxus_elements,
events::*,
};
pub use freya_hooks::*;
pub use freya_node_state::{
dynamic_bytes,
static_bytes,
CustomAttributeValues,
};
pub use freya_renderer::*;
pub use torin::prelude::*;
pub use crate::{
launch::*,
plugins::*,
};
}