flow_rs_leptos/
lib.rs

1//! # Leptos Flow Leptos Integration
2//!
3//! Leptos framework integration for Leptos Flow providing reactive components,
4//! state management, and event handling for flow-based node editors.
5
6#![allow(clippy::all)]
7
8pub mod components;
9pub mod dom_rect;
10pub mod drag;
11pub mod edge_connection;
12pub mod events;
13pub mod hooks;
14pub mod interactions;
15pub mod keyboard;
16pub mod minimap;
17pub mod mouse_integration;
18pub mod signals;
19
20// Re-export core types for convenience
21pub use flow_rs_core as core;
22pub use flow_rs_renderer as renderer;
23
24/// Prelude module for convenient imports
25pub mod prelude {
26    pub use crate::components::controls::*;
27    pub use crate::components::minimap::*;
28    pub use crate::components::*;
29    pub use crate::dom_rect::{CoordinateConverter, DomRectUtils, ElementRect};
30    pub use crate::drag::*;
31    pub use crate::edge_connection::*;
32    pub use crate::events::{FlowEvent, KeyboardModifiers, MouseButton, NodeEvent};
33    pub use crate::hooks::*;
34    pub use crate::interactions::*;
35    pub use crate::keyboard::*;
36    pub use crate::minimap::*;
37    pub use crate::mouse_integration::MouseEventConverter;
38    pub use crate::signals::*;
39
40    // Re-export commonly used Leptos types
41    pub use leptos::prelude::*;
42
43    // Re-export core types
44    pub use crate::core::prelude::*;
45    pub use crate::renderer::{Renderer, RendererType};
46}
47
48#[cfg(test)]
49mod tests {
50    use super::prelude::*;
51
52    #[test]
53    fn test_module_exists() {
54        // Basic smoke test to ensure module compiles
55        assert!(true);
56    }
57}
58
59#[cfg(test)]
60mod mouse_interactions_tests {
61    include!("tests/mouse_interactions.rs");
62}
63
64#[cfg(test)]
65mod edge_connection_integration_tests {
66    include!("tests/edge_connection_integration.rs");
67}