pub mod extras;
pub mod layout;
pub mod limits;
pub mod node;
pub mod patch;
pub mod plain;
pub mod settings;
pub mod slot;
pub mod style;
pub mod text;
pub mod widgets;
#[cfg(feature = "schema")]
pub mod schema;
pub mod prelude {
pub use crate::extras::button::{Button, ButtonVariant};
pub use crate::extras::code::Code;
pub use crate::extras::diff::{Diff, DiffMode};
pub use crate::extras::empty::Empty;
pub use crate::extras::icon::Icon;
pub use crate::extras::image::{Fit, Image, ImageSource};
pub use crate::extras::input::Input;
pub use crate::extras::key_hints::{Hint, KeyHints};
pub use crate::extras::log::Log;
pub use crate::extras::markdown::Markdown;
pub use crate::extras::select::{Select, SelectOption};
pub use crate::extras::spinner::Spinner;
pub use crate::extras::toggle::Toggle;
pub use crate::extras::tree::{Tree, TreeNode, TreeState};
pub use crate::layout::{Constraint, Direction, Flex, Layout, Margin};
pub use crate::node::{ActionId, Common, IntoNode, Key, Node, Unknown, WithCommon};
pub use crate::patch::{NodeOp, NodePath, PatchField, PatchItem};
pub use crate::style::{Color, Modifier, Modifiers, Style, Stylize};
pub use crate::text::{Alignment, Line, Span, Text};
pub use crate::widgets::barchart::{Bar, BarChart, BarGroup};
pub use crate::widgets::block::{
Block, BlockProps, BlockTitle, BorderSide, BorderType, Borders, Padding, Title,
TitlePosition, borders,
};
pub use crate::widgets::chart::{Axis, Chart, Dataset, GraphType, LegendPosition, Marker};
pub use crate::widgets::gauge::{Gauge, LineGauge, LineSet};
pub use crate::widgets::list::{
HighlightSpacing, List, ListDirection, ListItem, ListState, Selection,
};
pub use crate::widgets::paragraph::{Paragraph, Wrap};
pub use crate::widgets::scrollbar::{Scrollbar, ScrollbarOrientation, ScrollbarState};
pub use crate::widgets::sparkline::{BarSet, SparkDirection, Sparkline};
pub use crate::widgets::table::{Cell, Row, Sticky, Table};
pub use crate::widgets::tabs::{TabTitle, Tabs};
}
pub use layout::{Constraint, Direction, Flex, Layout, Margin};
pub use node::{ActionId, Common, IntoNode, Key, Node, Unknown, WithCommon};
pub use style::{Color, Modifier, Modifiers, Style, Stylize};
pub use text::{Alignment, Line, Span, Text};
#[cfg(test)]
mod tests {
#![allow(
clippy::unwrap_used,
clippy::expect_used,
clippy::panic,
reason = "tests assert by unwrapping"
)]
#[test]
fn prelude_example_round_trips() {
use crate::prelude::*;
let list = List::new(["first", "second"]).on_activate("open");
let node: Node = Layout::vertical([Constraint::Fill(1)])
.children([list.into()])
.into();
let json = serde_json::to_value(&node).unwrap_or_default();
let back: Node = serde_json::from_value(json).unwrap_or(Node::Unknown(Unknown {
t: "boom".into(),
..Unknown::default()
}));
assert_eq!(node, back);
}
}