const RED: &str = "\x1b[0;31m";
const GREEN: &str = "\x1b[0;32m";
const YELLOW: &str = "\x1b[0;33m";
const BLUE: &str = "\x1b[0;34m";
const BOLD: &str = "\x1b[1m";
const RESET: &str = "\x1b[0m";
pub fn info(msg: &str) {
println!("{BLUE}ℹ{RESET} {msg}");
}
pub fn success(msg: &str) {
println!("{GREEN}✓{RESET} {msg}");
}
pub fn warn(msg: &str) {
println!("{YELLOW}⚠{RESET} {msg}");
}
pub fn error(msg: &str) {
eprintln!("{RED}✗{RESET} {msg}");
}
pub fn action(msg: &str) {
println!("{BOLD}→{RESET} {msg}");
}
pub fn bold(text: &str) -> String {
format!("{BOLD}{text}{RESET}")
}
pub fn separator() {
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
}
pub fn ready(message: &str, branch: &str) {
println!();
separator();
println!("{GREEN}{BOLD}{message}{RESET} on {BOLD}{branch}{RESET}");
}
pub fn hints(lines: &[&str]) {
println!();
println!("{BOLD}Next:{RESET}");
for line in lines {
println!(" {line}");
}
}