Skip to main content

dockviewers/
lib.rs

1//! `dockviewers` — a packed-grid tiling/docking layout: fixed-size tiles that snap to a step grid,
2//! never overlap, and leave whitespace below (InsilicoTerminal's look). Panes split, resize, tab
3//! together, float, and maximize, with the arrangement saved to JSON and restored on reload.
4//!
5//! This crate is a thin **facade** over the ecosystem — pick a UI binding with a feature flag:
6//!
7//! ```toml
8//! dockviewers = { version = "0.1", features = ["dioxus"] }   # or ["leptos"]
9//! ```
10//!
11//! - Always available: [`core`] re-exports [`dockviewers_core`] — the framework-agnostic engine
12//!   (grid model, gesture reducer, persistence, CSS). A bare `dockviewers` (no features) is just this.
13//! - `dioxus` feature → [`dioxus`] re-exports [`dockviewers_dioxus`] (the Dioxus binding).
14//! - `leptos` feature → [`leptos`] re-exports [`dockviewers_leptos`] (the Leptos binding).
15//!
16//! Depending on this facade vs. the individual crates is purely ergonomic — the code is identical
17//! either way.
18
19pub use dockviewers_core as core;
20#[cfg(feature = "dioxus")]
21pub use dockviewers_dioxus as dioxus;
22#[cfg(feature = "leptos")]
23pub use dockviewers_leptos as leptos;