mod approve;
mod asset;
mod color;
mod confirm;
mod date;
#[cfg(feature = "data")]
mod explore;
mod file;
mod form;
mod input;
mod jump;
mod log;
mod pager;
mod paginator;
mod reorder;
mod select;
mod textarea;
mod theme;
mod views;
pub use approve::{ApprovalQueue, ApprovalReport, Decision, Verdict, approve_keymap};
pub use asset::{AssetKind, AssetPicker, BOX_STYLES, emoji};
pub use color::{ColorFormat, ColorPicker};
pub use confirm::{Choice, Confirm};
pub use date::{DatePicker, DateTimePicker, TimePicker, date_keymap};
#[cfg(feature = "data")]
pub use explore::{DataExplorer, explore_keymap, json_path};
pub use file::{FileMode, FilePicker, display_name, display_path};
pub use form::{Answers, Form, Value};
pub use input::{Input, Provider, Suggestion, input_keymap};
pub use jump::{Jump, JumpGroup, JumpHit, JumpIndex, JumpSource, Jumped, jump_keymap};
pub use log::{LogEvent, LogView, log_filter_keymap, log_view_keymap};
pub use pager::{Pager, pager_keymap, pager_search_keymap, table_header_rows};
pub use paginator::{Paginator, PaginatorStyle, paginator_keymap};
pub use reorder::{Reorder, move_item, reorder_keymap};
pub use select::{MultiSelect, PreviewLayout, Select, select_keymap};
pub use textarea::TextArea;
pub use theme::{THEME_SAMPLE, ThemePicker};
pub use views::{TableSelect, TreeSelect, table_keymap, tree_keymap};
use rich::Style;
#[derive(Clone, Debug)]
pub struct Theme {
pub question: String,
pub question_style: Style,
pub prompt: Style,
pub pointer: String,
pub pointer_style: Style,
pub focused: Style,
pub matched: Style,
pub checked: String,
pub unchecked: String,
pub checked_style: Style,
pub hint: Style,
pub error: Style,
pub answer: Style,
pub border: Style,
}
fn style(definition: &str) -> Style {
Style::parse(definition).expect("a built-in style")
}
impl Default for Theme {
fn default() -> Self {
Theme {
question: "?".into(),
question_style: style("bold green"),
prompt: style("bold"),
pointer: "❯".into(),
pointer_style: style("bold magenta"),
focused: style("bold"),
matched: style("bold magenta"),
checked: "◉".into(),
unchecked: "○".into(),
checked_style: style("green"),
hint: style("dim"),
error: style("red"),
answer: style("cyan"),
border: style("dim"),
}
}
}
pub(crate) use crate::kit::{fit, highlight, pad, pasted, plain, question, shown, text, width};