#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
pub mod backend;
pub mod buffer;
pub mod component;
pub mod element;
pub mod error;
pub(crate) mod fiber;
pub mod hooks;
pub(crate) mod layout;
pub(crate) mod paint;
pub mod props;
pub(crate) mod reconciler;
pub(crate) mod runtime;
pub mod shared;
pub mod style;
#[cfg(test)]
pub(crate) mod test_util;
pub mod testing;
pub(crate) mod text;
pub mod widgets;
pub use backend::{Backend, FullscreenBackend, InlineBackend, TestBackend};
pub use component::Component;
pub use element::{Element, Node};
pub use error::Error;
pub use hooks::Hooks;
pub use hooks::app::AppHandle;
pub use hooks::effect::Cleanup;
pub use hooks::input::{InputCtx, KeyCode, KeyEvent, KeyEventKind, KeyModifiers};
pub use hooks::list::ListSelection;
pub use hooks::scroll::Scroll;
pub use hooks::scrollback::Scrollback;
pub use hooks::state::State;
pub use ntui_macros::{component, element};
pub use props::{
AlignItems, Anchor, Dimension, FlexDirection, GradientDirection, JustifyContent, Overflow,
TextProps, TextWrap, ViewProps,
};
pub use runtime::{render, render_inline};
pub use shared::Shared;
pub use style::{Attrs, BorderStyle, Color, Weight};
#[cfg(any(feature = "bench", feature = "fuzz"))]
#[doc(hidden)]
pub mod __private {
pub fn wrap_text(content: &str, max_width: usize) -> Vec<String> {
crate::text::wrap_text(content, max_width)
}
pub fn truncate_line(content: &str, max_width: usize) -> String {
crate::text::truncate_line(content, max_width)
}
}