1pub mod barchart;
2pub mod block;
3pub mod canvas;
4pub mod chart;
5pub mod clear;
6pub mod code;
7pub mod form;
8pub mod gauge;
9pub mod list;
10pub mod markdown_output;
11pub mod paragraph;
12pub mod popup;
13pub mod scrollbar;
14pub mod sparkline;
15pub mod table;
16pub mod tabs;
17pub mod toggle;
18
19pub use barchart::BarChart;
20pub use block::Block;
21pub use canvas::Canvas;
22pub use chart::Chart;
23pub use clear::{centered_rect, Clear};
24pub use code::CodeBlock;
25pub use form::{Dropdown, Form, FormAction, FormField, TextInput};
26pub use gauge::Gauge;
27pub use list::{rich_item, List, ListItem, ListState};
28pub use markdown_output::MarkdownOutput;
29pub use paragraph::{Alignment, Line, Paragraph, Span, Text, WrapMode};
30pub use popup::Popup;
31pub use scrollbar::ScrollBar;
32pub use sparkline::Sparkline;
33pub use table::Table;
34pub use tabs::Tabs;
35pub use toggle::Toggle;
36
37use crate::core::buffer::Buffer;
38use crate::core::rect::Rect;
39
40pub trait Widget {
41 fn render(&self, buffer: &mut Buffer, area: Rect);
42}