kanban-tui 0.4.0

Terminal user interface for the kanban project management tool
Documentation
use super::colors::*;
use kanban_domain::{CardPriority, SprintStatus};
use ratatui::style::{Modifier, Style};

pub fn focused_border() -> Style {
    Style::default().fg(FOCUSED_BORDER)
}

pub fn unfocused_border() -> Style {
    Style::default().fg(UNFOCUSED_BORDER)
}

pub fn deleted_view_focused_border() -> Style {
    Style::default().fg(ratatui::style::Color::Yellow)
}

pub fn selected_item(focused: bool) -> Style {
    if focused {
        Style::default().bg(SELECTED_BG)
    } else {
        Style::default()
    }
}

pub fn active_item() -> Style {
    Style::default()
        .fg(ACTIVE_ITEM)
        .add_modifier(Modifier::BOLD)
}

pub fn done_text() -> Style {
    Style::default()
        .fg(DONE_TEXT)
        .add_modifier(Modifier::CROSSED_OUT)
}

pub fn normal_text() -> Style {
    Style::default().fg(NORMAL_TEXT)
}

pub fn label_text() -> Style {
    Style::default().fg(LABEL_TEXT)
}

pub fn highlight_text() -> Style {
    Style::default().fg(HIGHLIGHT_TEXT)
}

pub fn bold_highlight() -> Style {
    Style::default()
        .fg(HIGHLIGHT_TEXT)
        .add_modifier(Modifier::BOLD)
}

pub fn priority_style(priority: CardPriority) -> Style {
    let color = match priority {
        CardPriority::Critical => PRIORITY_CRITICAL,
        CardPriority::High => PRIORITY_HIGH,
        CardPriority::Medium => PRIORITY_MEDIUM,
        CardPriority::Low => PRIORITY_LOW,
    };
    Style::default().fg(color)
}

pub fn points_style(points: u8) -> Style {
    let color = match points {
        1 => POINTS_1,
        2 => POINTS_2,
        3 => POINTS_3,
        4 => POINTS_4,
        5 => POINTS_5,
        _ => NORMAL_TEXT,
    };
    Style::default().fg(color).add_modifier(Modifier::BOLD)
}

pub fn sprint_status_style(status: SprintStatus) -> Style {
    let color = match status {
        SprintStatus::Active => STATUS_ACTIVE,
        SprintStatus::Planning => STATUS_PLANNING,
        SprintStatus::Completed => STATUS_COMPLETED,
        SprintStatus::Cancelled => STATUS_CANCELLED,
    };
    Style::default().fg(color)
}

pub fn popup_bg() -> Style {
    Style::default().bg(POPUP_BG)
}