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
//! # Hikari Extra Components (Data Models)
//!
//! **Migration Notice**: This package has been migrated from Dioxus to framework-agnostic data models.
//!
//! ## Overview
//!
//! `hikari-extra-components` now provides pure Rust data structures for advanced UI components.
//! These components can be rendered using any frontend framework (Tairitsu, Dioxus, etc.).
//!
//! ## Migration from Dioxus
//!
//! Previously, this package provided Dioxus components. Now it provides:
//! - **Data Models**: State structures for each component
//! - **Event Types**: Type-safe event handlers
//! - **Utilities**: Helper functions for common operations
//!
//! ## Components
//!
//! ### Extra Components
//! - [`Collapsible`] - Collapsible state model
//! - [`DragLayer`] - Drag and drop state management
//! - [`ZoomControls`] - Zoom state and controls
//! - [`Timeline`] - Timeline event model
//! - [`UserGuide`] - User onboarding guide state
//! - [`AudioWaveformState`] - Audio waveform visualization state
//!
//! ### Node Graph
//! - [`NodeGraphState`] - Node graph canvas state
//! - [`Node`] - Node data model
//! - [`Connection`] - Connection between nodes
//! - [`Port`] - Node port model
//!
//! ## Usage Example
//!
//! ```rust,no_run
//! use hikari_extra_components::extra::{CollapsibleState, CollapsiblePosition};
//!
//! // Create component state
//! let mut state = CollapsibleState::new("Settings Panel".to_string());
//! state.position = CollapsiblePosition::Right;
//! state.expanded = true;
//!
//! // Use with your preferred framework
//! // (Tairitsu, Dioxus, Yew, etc.)
//! ```
//!
//! ## Dependencies
//!
//! `hikari-extra-components` now has minimal dependencies:
//! - `hikari-palette` - For traditional Chinese colors
//! - `hikari-theme` - For theme integration
//! - `hikari-icons` - For icon constants
//! - `serde` - For serialization support
//!
//! **No Dioxus or wasm-bindgen dependencies required.**
pub use *;
pub use *;