pub mod barchart;
pub mod block;
pub mod canvas;
pub mod chart;
pub mod clear;
pub mod code;
pub mod form;
pub mod gauge;
pub mod kanban_board;
pub mod list;
pub mod markdown_output;
pub mod pane_cockpit;
pub mod paragraph;
pub mod popup;
pub mod scroll_text;
pub mod scrollbar;
pub mod sparkline;
pub mod status_deck;
pub mod table;
pub mod tabs;
pub mod todo_list;
pub mod toggle;
pub mod transcript_viewport;
pub use barchart::BarChart;
pub use block::Block;
pub use canvas::Canvas;
pub use chart::Chart;
pub use clear::{centered_rect, Clear};
pub use code::{CodeBlock, CodeCopyMode};
pub use form::{Dropdown, Form, FormAction, FormField, TextInput};
pub use gauge::Gauge;
pub use kanban_board::{KanbanBoard, KanbanCard, KanbanLane};
pub use list::{rich_item, List, ListItem, ListState};
pub use markdown_output::{MarkdownOutput, RetainedMarkdownOutput};
pub use pane_cockpit::{PaneCockpit, PaneCockpitLayout, PaneCockpitSpec};
pub use paragraph::{Alignment, Line, Paragraph, Span, Text, WrapMode};
pub use popup::Popup;
pub use scroll_text::ScrollableText;
pub use scrollbar::ScrollBar;
pub use sparkline::Sparkline;
pub use status_deck::{
RightPaneVisibility, StatusDeck, StatusDeckItem, StatusDeckItemKind, StatusDeckSection,
StatusDeckSectionKind, ValidationState,
};
pub use table::Table;
pub use tabs::Tabs;
pub use todo_list::{TodoItem, TodoList, TodoListStyle, TodoStatus};
pub use toggle::Toggle;
pub use transcript_viewport::TranscriptViewport;
use crate::core::buffer::Buffer;
use crate::core::rect::Rect;
pub trait Widget {
fn render(&self, buffer: &mut Buffer, area: Rect);
}