Skip to main content

euv_ui/
lib.rs

1//! euv-ui
2//!
3//! Reusable UI component library for the euv framework,
4//! providing buttons, cards, modals, inputs, theme management, and more.
5
6mod component;
7mod dom;
8mod hook;
9mod style;
10
11#[cfg(test)]
12#[path = "../tests/mod.rs"]
13mod tests;
14
15pub use {component::*, hook::*, style::*};
16
17use dom::*;
18
19use euv::*;
20
21use std::{
22    any::Any,
23    cell::{Cell, Ref, RefCell, RefMut, UnsafeCell},
24    collections::{HashMap, HashSet},
25    fmt::{self, Debug, Display, Formatter},
26    hash::Hash,
27    ops::Deref,
28    panic::{AssertUnwindSafe, UnwindSafe, catch_unwind},
29    ptr::{addr_of_mut, eq},
30    rc::Rc,
31    sync::{
32        LazyLock, OnceLock, PoisonError, RwLock, RwLockReadGuard, RwLockWriteGuard,
33        atomic::{AtomicBool, AtomicUsize, Ordering},
34    },
35};
36
37#[cfg(not(target_arch = "wasm32"))]
38use std::time::{Duration, SystemTime, UNIX_EPOCH};
39
40// The weak handle the splitter's drag teardown uses to reach its own
41// slot without keeping it alive. Only the browser build has a drag.
42#[cfg(target_arch = "wasm32")]
43use std::rc::Weak;
44
45use wasm_bindgen_futures::*;