use anstyle::{AnsiColor, Color, Style};
pub const ACCENT: Style = Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::BrightMagenta)))
.bold();
pub const DIM: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::BrightBlack)));
pub const BOLD: Style = Style::new().bold();
pub const OK: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::Green)));
pub const ERR: Style = Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::BrightRed)))
.bold();
pub const CYAN: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::Cyan)));
pub const YELLOW: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::Yellow)));
pub const WHITE: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)));
pub const WHITE_BOLD: Style = Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold();
pub const BADGE_CYAN: Style = Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Cyan)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold();
pub const BADGE_INTRO: Style = Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Cyan)))
.fg_color(Some(Color::Ansi(AnsiColor::Black)))
.bold();
pub const BADGE_GREEN: Style = Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Green)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold();
pub const BADGE_YELLOW: Style = Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Yellow)))
.fg_color(Some(Color::Ansi(AnsiColor::Black)))
.bold();
pub const DIAMOND: &str = "◆";
pub const CROSS: &str = "✘";
pub const BAR: &str = "│";
pub const ARROW: &str = "➜";
pub const CHECK: &str = "✓";
pub const BULLET: &str = "▸";
pub const PHASE: &str = "▶";
pub const BRANCH: &str = "└─";
pub fn theme_styles(theme: &str) -> (Style, Style) {
match theme {
"magenta" | "purple" => (
Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Magenta)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold(),
Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::BrightMagenta)))
.bold(),
),
"green" => (
Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Green)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold(),
Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::Green)))
.bold(),
),
"blue" => (
Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Blue)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold(),
Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::BrightBlue)))
.bold(),
),
"yellow" => (
Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Yellow)))
.fg_color(Some(Color::Ansi(AnsiColor::Black)))
.bold(),
Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::Yellow)))
.bold(),
),
"red" => (
Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Red)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold(),
Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::BrightRed)))
.bold(),
),
_ =>
{
(
Style::new()
.bg_color(Some(Color::Ansi(AnsiColor::Cyan)))
.fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
.bold(),
Style::new()
.fg_color(Some(Color::Ansi(AnsiColor::Cyan)))
.bold(),
)
}
}
}
pub fn paint(style: Style, s: &str) -> String {
format!("{style}{s}{style:#}")
}