1#![allow(clippy::new_without_default)]
24#![allow(clippy::len_zero)]
25#![allow(clippy::useless_conversion)]
26#![allow(clippy::comparison_to_empty)]
27#![allow(clippy::write_with_newline)]
28#![allow(clippy::to_string_in_format_args)]
29#![allow(clippy::collapsible_else_if)]
30#![allow(clippy::useless_format)]
31#![allow(clippy::module_inception)]
47
48pub use windjammer_ui_macro::component;
50pub use windjammer_ui_macro::Props;
51
52pub mod app;
53#[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
54pub mod app_docking;
55#[cfg(target_arch = "wasm32")]
56pub mod app_reactive;
57#[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
58pub mod app_reactive_eframe;
59pub mod event_handler;
60#[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
61pub mod undo_redo; pub mod component;
66pub mod component_runtime;
67pub mod components; pub mod events;
69pub mod platform;
70pub mod reactivity;
71
72#[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
73pub mod desktop_app_context;
74#[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
75pub mod desktop_renderer;
76pub mod reactivity_optimized;
77pub mod renderer;
78pub mod routing;
79pub mod runtime;
80pub mod simple_renderer;
81pub mod simple_vnode;
82pub mod ssr;
83pub mod to_vnode;
84pub mod vdom;
85pub mod vnode_ffi; #[cfg(target_arch = "wasm32")]
87pub mod wasm_events;
88
89#[cfg(target_arch = "wasm32")]
90pub mod examples_wasm;
91
92#[cfg(test)]
93mod reactivity_tests;
94
95pub mod prelude {
97 pub use crate::app::App;
98 pub use crate::component::{Component, ComponentProps};
99 pub use crate::component_runtime;
100 pub use crate::events::{Event, EventHandler};
101 pub use crate::platform::{Event as PlatformEvent, GestureEvent, SwipeDirection, Target};
102 pub use crate::reactivity::{Computed, Effect, Signal};
103 pub use crate::renderer::WebRenderer;
104 pub use crate::routing::{Route, Router};
105 pub use crate::simple_vnode::{VAttr, VNode};
106 pub use crate::to_vnode::ToVNode;
107 pub use crate::vnode_ffi; pub use crate::vdom::{VElement, VText};
110
111 #[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
113 pub use crate::app_docking::DockingApp;
114 #[cfg(target_arch = "wasm32")]
115 pub use crate::app_reactive::{trigger_rerender, ReactiveApp};
116 #[cfg(all(not(target_arch = "wasm32"), feature = "desktop"))]
117 pub use crate::app_reactive_eframe::{trigger_rerender, ReactiveApp};
118
119 pub use crate::component;
121
122 pub use crate::components::alert::{Alert, AlertVariant};
124 pub use crate::components::button::{Button, ButtonSize, ButtonVariant};
125 pub use crate::components::container::Container;
126 pub use crate::components::flex::{Flex, FlexDirection};
127 pub use crate::components::input::Input;
128 pub use crate::components::text::{Text, TextSize, TextWeight};
129}
130
131#[cfg(target_arch = "wasm32")]
133pub use renderer::mount;
134
135#[cfg(test)]
136mod tests {
137 #[test]
138 fn test_prelude_imports() {
139 use crate::prelude::*;
141 let _ = Signal::new(42);
142 }
143}