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
11pub use {component::*, hook::*, style::*};
12
13use dom::*;
14
15use euv::*;
16
17use std::{
18    any::Any,
19    cell::{Cell, Ref, RefCell, RefMut, UnsafeCell},
20    collections::{HashMap, HashSet},
21    fmt::{self, Debug, Display, Formatter},
22    hash::Hash,
23    ops::Deref,
24    panic::{AssertUnwindSafe, UnwindSafe, catch_unwind},
25    ptr::{addr_of_mut, eq},
26    rc::Rc,
27    sync::{
28        LazyLock, OnceLock, PoisonError, RwLock, RwLockReadGuard, RwLockWriteGuard,
29        atomic::{AtomicBool, AtomicUsize, Ordering},
30    },
31};
32
33#[cfg(not(target_arch = "wasm32"))]
34use std::time::{Duration, SystemTime, UNIX_EPOCH};
35
36// The weak handle the splitter's drag teardown uses to reach its own
37// slot without keeping it alive. Only the browser build has a drag.
38#[cfg(target_arch = "wasm32")]
39use std::rc::Weak;
40
41use wasm_bindgen_futures::*;