1#![forbid(unsafe_code)]
2#![allow(clippy::needless_range_loop)]
3#![warn(clippy::dbg_macro, clippy::print_stdout)]
4#![cfg_attr(docsrs, feature(doc_cfg))]
5#![doc = include_str!("../README.md")]
6
7#[cfg(all(feature = "ratatui", feature = "tuirs"))]
8compile_error!(
9 "ratatui support and tui-rs support are exclusive. only one of them can be enabled at the same time. see https://github.com/rhysd/tui-textarea#installation"
10);
11
12mod cursor;
13mod highlight;
14mod history;
15mod input;
16mod scroll;
17#[cfg(feature = "search")]
18mod search;
19mod textarea;
20mod util;
21mod widget;
22mod word;
23mod wrap;
24
25#[cfg(feature = "ratatui")]
26#[allow(clippy::single_component_path_imports)]
27mod ratatui {
28 pub use ratatui_core::{buffer, layout, style, text};
30 pub mod widgets {
31 pub use ratatui_core::widgets::*;
32 pub use ratatui_widgets::{block::Block, paragraph::Paragraph};
33 }
34}
35#[cfg(feature = "tuirs")]
36use tui as ratatui;
37
38#[cfg(all(feature = "crossterm", not(feature = "crossterm_0_28")))]
39#[allow(clippy::single_component_path_imports)]
40use crossterm;
41#[cfg(feature = "tuirs-crossterm")]
42use crossterm_025 as crossterm;
43#[cfg(feature = "crossterm_0_28")]
44#[allow(clippy::single_component_path_imports)]
45use crossterm_028 as crossterm;
46
47#[cfg(feature = "termion")]
48#[allow(clippy::single_component_path_imports)]
49use termion;
50#[cfg(feature = "tuirs-termion")]
51use termion_15 as termion;
52
53pub use cursor::CursorMove;
54pub use input::{Input, Key};
55pub use scroll::Scrolling;
56pub use textarea::{TextArea, TextAreaMeasure};
57pub use wrap::WrapMode;