melors 0.2.2

Keyboard-first terminal MP3 player with queue, search, and tag editing
use super::*;

impl UiState {
    pub(super) fn theme_panel_bg_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(34, 34, 52),
            UiTheme::Forest => Color::Rgb(28, 40, 28),
            UiTheme::Ocean => Color::Rgb(22, 38, 52),
            UiTheme::Rose => Color::Rgb(50, 30, 42),
            UiTheme::Cyber => Color::Rgb(16, 16, 30),
            UiTheme::Lava => Color::Rgb(46, 18, 12),
            UiTheme::Aurora => Color::Rgb(18, 34, 30),
            UiTheme::Candy => Color::Rgb(44, 24, 44),
            UiTheme::Prism => Color::Rgb(20, 16, 34),
            UiTheme::Scanline => Color::Rgb(10, 18, 14),
        }
    }

    pub(super) fn theme_panel_alt_bg_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(46, 46, 68),
            UiTheme::Forest => Color::Rgb(38, 54, 38),
            UiTheme::Ocean => Color::Rgb(30, 50, 68),
            UiTheme::Rose => Color::Rgb(66, 40, 54),
            UiTheme::Cyber => Color::Rgb(28, 28, 46),
            UiTheme::Lava => Color::Rgb(66, 28, 18),
            UiTheme::Aurora => Color::Rgb(30, 52, 44),
            UiTheme::Candy => Color::Rgb(66, 36, 66),
            UiTheme::Prism => Color::Rgb(28, 24, 48),
            UiTheme::Scanline => Color::Rgb(18, 28, 22),
        }
    }

    pub(super) fn theme_dim_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(70, 70, 95),
            UiTheme::Forest => Color::Rgb(58, 84, 58),
            UiTheme::Ocean => Color::Rgb(58, 92, 112),
            UiTheme::Rose => Color::Rgb(96, 66, 82),
            UiTheme::Cyber => Color::Rgb(78, 88, 132),
            UiTheme::Lava => Color::Rgb(130, 78, 54),
            UiTheme::Aurora => Color::Rgb(72, 120, 106),
            UiTheme::Candy => Color::Rgb(126, 88, 132),
            UiTheme::Prism => Color::Rgb(82, 86, 146),
            UiTheme::Scanline => Color::Rgb(54, 96, 78),
        }
    }

    pub(super) fn theme_header_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(200, 180, 255),
            UiTheme::Forest => Color::Rgb(175, 235, 175),
            UiTheme::Ocean => Color::Rgb(165, 225, 255),
            UiTheme::Rose => Color::Rgb(255, 190, 220),
            UiTheme::Cyber => Color::Rgb(104, 240, 255),
            UiTheme::Lava => Color::Rgb(255, 164, 96),
            UiTheme::Aurora => Color::Rgb(150, 255, 214),
            UiTheme::Candy => Color::Rgb(255, 170, 240),
            UiTheme::Prism => Color::Rgb(166, 196, 255),
            UiTheme::Scanline => Color::Rgb(152, 255, 178),
        }
    }

    pub(super) fn theme_library_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Green,
            UiTheme::Forest => Color::Rgb(110, 220, 110),
            UiTheme::Ocean => Color::Rgb(90, 220, 255),
            UiTheme::Rose => Color::Rgb(255, 150, 195),
            UiTheme::Cyber => Color::Rgb(64, 255, 228),
            UiTheme::Lava => Color::Rgb(255, 112, 54),
            UiTheme::Aurora => Color::Rgb(92, 255, 170),
            UiTheme::Candy => Color::Rgb(255, 110, 225),
            UiTheme::Prism => Color::Rgb(255, 98, 178),
            UiTheme::Scanline => Color::Rgb(118, 255, 120),
        }
    }

    pub(super) fn theme_queue_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Yellow,
            UiTheme::Forest => Color::Rgb(190, 230, 160),
            UiTheme::Ocean => Color::Rgb(250, 235, 150),
            UiTheme::Rose => Color::Rgb(255, 220, 165),
            UiTheme::Cyber => Color::Rgb(255, 94, 210),
            UiTheme::Lava => Color::Rgb(255, 205, 80),
            UiTheme::Aurora => Color::Rgb(124, 220, 255),
            UiTheme::Candy => Color::Rgb(255, 210, 120),
            UiTheme::Prism => Color::Rgb(255, 212, 86),
            UiTheme::Scanline => Color::Rgb(255, 214, 84),
        }
    }

    pub(super) fn theme_now_playing_row_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(255, 210, 80),
            UiTheme::Forest => Color::Rgb(210, 255, 170),
            UiTheme::Ocean => Color::Rgb(255, 235, 170),
            UiTheme::Rose => Color::Rgb(255, 230, 185),
            UiTheme::Cyber => Color::Rgb(255, 150, 230),
            UiTheme::Lava => Color::Rgb(255, 220, 120),
            UiTheme::Aurora => Color::Rgb(188, 255, 206),
            UiTheme::Candy => Color::Rgb(255, 220, 180),
            UiTheme::Prism => Color::Rgb(140, 255, 222),
            UiTheme::Scanline => Color::Rgb(186, 255, 188),
        }
    }

    pub(super) fn theme_progress_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Magenta,
            UiTheme::Forest => Color::Rgb(95, 210, 130),
            UiTheme::Ocean => Color::Rgb(80, 190, 255),
            UiTheme::Rose => Color::Rgb(255, 120, 170),
            UiTheme::Cyber => Color::Rgb(118, 94, 255),
            UiTheme::Lava => Color::Rgb(255, 88, 48),
            UiTheme::Aurora => Color::Rgb(72, 225, 190),
            UiTheme::Candy => Color::Rgb(255, 118, 188),
            UiTheme::Prism => Color::Rgb(110, 148, 255),
            UiTheme::Scanline => Color::Rgb(84, 255, 210),
        }
    }

    pub(super) fn theme_status_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(190, 190, 215),
            UiTheme::Forest => Color::Rgb(190, 230, 190),
            UiTheme::Ocean => Color::Rgb(180, 220, 235),
            UiTheme::Rose => Color::Rgb(235, 200, 220),
            UiTheme::Cyber => Color::Rgb(196, 212, 255),
            UiTheme::Lava => Color::Rgb(245, 196, 170),
            UiTheme::Aurora => Color::Rgb(196, 240, 220),
            UiTheme::Candy => Color::Rgb(244, 206, 236),
            UiTheme::Prism => Color::Rgb(226, 228, 255),
            UiTheme::Scanline => Color::Rgb(180, 228, 190),
        }
    }

    pub(super) fn theme_library_panel_bg_color(&self, is_active: bool) -> Color {
        match (self.theme, is_active) {
            (UiTheme::Prism, true) => Color::Rgb(46, 20, 66),
            (UiTheme::Prism, false) => Color::Rgb(24, 14, 42),
            (UiTheme::Scanline, true) => Color::Rgb(20, 34, 22),
            (UiTheme::Scanline, false) => Color::Rgb(10, 20, 14),
            (_, true) => self.theme_panel_alt_bg_color(),
            (_, false) => self.theme_panel_bg_color(),
        }
    }

    pub(super) fn theme_playback_panel_bg_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(20, 40, 68),
            UiTheme::Scanline => Color::Rgb(10, 26, 20),
            _ => self.theme_panel_bg_color(),
        }
    }

    pub(super) fn theme_progress_panel_bg_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(28, 54, 36),
            UiTheme::Scanline => Color::Rgb(14, 32, 24),
            _ => self.theme_panel_bg_color(),
        }
    }

    pub(super) fn theme_visualizer_panel_bg_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(62, 32, 22),
            UiTheme::Scanline => Color::Rgb(6, 18, 12),
            _ => self.theme_panel_bg_color(),
        }
    }

    pub(super) fn theme_modal_bg_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(36, 26, 58),
            UiTheme::Scanline => Color::Rgb(14, 28, 18),
            _ => self.theme_panel_alt_bg_color(),
        }
    }

    pub(super) fn theme_modal_border_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(255, 126, 214),
            UiTheme::Scanline => Color::Rgb(118, 255, 120),
            _ => self.theme_library_color(),
        }
    }

    pub(super) fn theme_modal_highlight_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(120, 232, 255),
            UiTheme::Scanline => Color::Rgb(142, 255, 164),
            _ => self.theme_header_color(),
        }
    }

    pub(super) fn theme_modal_warning_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(255, 142, 96),
            UiTheme::Cyber => Color::Rgb(255, 126, 184),
            UiTheme::Candy => Color::Rgb(255, 138, 120),
            UiTheme::Scanline => Color::Rgb(255, 196, 84),
            _ => Color::Red,
        }
    }

    pub(super) fn theme_popup_active_color(&self) -> Color {
        match self.theme {
            UiTheme::Lava => Color::Rgb(255, 126, 74),
            UiTheme::Prism => Color::Rgb(132, 236, 255),
            UiTheme::Scanline => Color::Rgb(146, 255, 172),
            _ => self.theme_header_color(),
        }
    }

    pub(super) fn theme_popup_inactive_color(&self) -> Color {
        match self.theme {
            UiTheme::Cyber => Color::Rgb(144, 164, 220),
            UiTheme::Candy => Color::Rgb(220, 178, 214),
            UiTheme::Prism => Color::Rgb(214, 188, 255),
            UiTheme::Scanline => Color::Rgb(116, 178, 132),
            _ => self.theme_status_color(),
        }
    }

    pub(super) fn theme_popup_border_color(&self) -> Color {
        match self.theme {
            UiTheme::Lava => Color::Rgb(255, 110, 64),
            UiTheme::Cyber => Color::Rgb(90, 238, 255),
            UiTheme::Aurora => Color::Rgb(124, 255, 214),
            UiTheme::Prism => Color::Rgb(255, 126, 214),
            UiTheme::Scanline => Color::Rgb(102, 255, 156),
            _ => self.theme_header_color(),
        }
    }

    pub(super) fn theme_visualizer_primary_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(255, 146, 108),
            UiTheme::Scanline => Color::Rgb(128, 255, 150),
            _ => Color::Rgb(236, 236, 245),
        }
    }

    pub(super) fn theme_visualizer_secondary_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(255, 214, 116),
            UiTheme::Scanline => Color::Rgb(90, 176, 112),
            _ => Color::Rgb(150, 150, 170),
        }
    }

    pub(super) fn theme_visualizer_clock_date_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(140, 244, 255),
            UiTheme::Scanline => Color::Rgb(255, 228, 108),
            _ => Color::Rgb(245, 185, 175),
        }
    }

    pub(super) fn theme_visualizer_clock_time_color(&self) -> Color {
        match self.theme {
            UiTheme::Prism => Color::Rgb(255, 142, 216),
            UiTheme::Scanline => Color::Rgb(118, 255, 150),
            _ => Color::Rgb(244, 184, 180),
        }
    }

    pub(super) fn theme_visualizer_matrix_head_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::White,
            UiTheme::Forest => Color::Rgb(214, 255, 214),
            UiTheme::Ocean => Color::Rgb(214, 250, 255),
            UiTheme::Rose => Color::Rgb(255, 224, 236),
            UiTheme::Cyber => Color::Rgb(206, 244, 255),
            UiTheme::Lava => Color::Rgb(255, 232, 176),
            UiTheme::Aurora => Color::Rgb(224, 255, 236),
            UiTheme::Candy => Color::Rgb(255, 230, 246),
            UiTheme::Prism => Color::Rgb(255, 236, 190),
            UiTheme::Scanline => Color::Rgb(214, 255, 222),
        }
    }

    pub(super) fn theme_visualizer_matrix_trail_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(120, 255, 120),
            UiTheme::Forest => Color::Rgb(108, 224, 124),
            UiTheme::Ocean => Color::Rgb(96, 228, 255),
            UiTheme::Rose => Color::Rgb(255, 144, 198),
            UiTheme::Cyber => Color::Rgb(108, 255, 238),
            UiTheme::Lava => Color::Rgb(255, 138, 84),
            UiTheme::Aurora => Color::Rgb(104, 255, 188),
            UiTheme::Candy => Color::Rgb(255, 138, 226),
            UiTheme::Prism => Color::Rgb(120, 232, 255),
            UiTheme::Scanline => Color::Rgb(120, 255, 132),
        }
    }

    pub(super) fn theme_visualizer_matrix_fade_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(0, 120, 0),
            UiTheme::Forest => Color::Rgb(26, 114, 44),
            UiTheme::Ocean => Color::Rgb(22, 120, 144),
            UiTheme::Rose => Color::Rgb(126, 34, 76),
            UiTheme::Cyber => Color::Rgb(24, 118, 126),
            UiTheme::Lava => Color::Rgb(134, 46, 18),
            UiTheme::Aurora => Color::Rgb(20, 122, 94),
            UiTheme::Candy => Color::Rgb(126, 38, 122),
            UiTheme::Prism => Color::Rgb(126, 76, 38),
            UiTheme::Scanline => Color::Rgb(28, 110, 42),
        }
    }

    pub(super) fn theme_visualizer_matrix_dot_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(0, 60, 0),
            UiTheme::Forest => Color::Rgb(12, 66, 22),
            UiTheme::Ocean => Color::Rgb(12, 70, 86),
            UiTheme::Rose => Color::Rgb(72, 18, 42),
            UiTheme::Cyber => Color::Rgb(16, 66, 72),
            UiTheme::Lava => Color::Rgb(74, 24, 12),
            UiTheme::Aurora => Color::Rgb(10, 70, 52),
            UiTheme::Candy => Color::Rgb(76, 22, 72),
            UiTheme::Prism => Color::Rgb(82, 48, 20),
            UiTheme::Scanline => Color::Rgb(12, 62, 18),
        }
    }

    pub(super) fn theme_creeper_primary_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(88, 149, 52),
            UiTheme::Forest => Color::Rgb(72, 144, 70),
            UiTheme::Ocean => Color::Rgb(44, 126, 138),
            UiTheme::Rose => Color::Rgb(146, 74, 108),
            UiTheme::Cyber => Color::Rgb(38, 152, 146),
            UiTheme::Lava => Color::Rgb(170, 82, 36),
            UiTheme::Aurora => Color::Rgb(44, 150, 108),
            UiTheme::Candy => Color::Rgb(154, 76, 154),
            UiTheme::Prism => Color::Rgb(196, 102, 70),
            UiTheme::Scanline => Color::Rgb(64, 150, 82),
        }
    }

    pub(super) fn theme_creeper_secondary_color(&self) -> Color {
        match self.theme {
            UiTheme::Neon => Color::Rgb(132, 209, 78),
            UiTheme::Forest => Color::Rgb(120, 210, 118),
            UiTheme::Ocean => Color::Rgb(86, 198, 214),
            UiTheme::Rose => Color::Rgb(220, 124, 170),
            UiTheme::Cyber => Color::Rgb(76, 236, 222),
            UiTheme::Lava => Color::Rgb(255, 148, 84),
            UiTheme::Aurora => Color::Rgb(104, 236, 180),
            UiTheme::Candy => Color::Rgb(244, 134, 224),
            UiTheme::Prism => Color::Rgb(255, 184, 120),
            UiTheme::Scanline => Color::Rgb(126, 255, 146),
        }
    }

    pub(super) fn theme_creeper_shadow_color(&self) -> Color {
        match self.theme {
            UiTheme::Lava => Color::Rgb(20, 6, 6),
            UiTheme::Prism => Color::Rgb(18, 12, 22),
            _ => Color::Rgb(10, 12, 10),
        }
    }

    pub(super) fn theme_creeper_glow_color(&self) -> Color {
        match self.theme {
            UiTheme::Cyber => Color::Rgb(218, 250, 255),
            UiTheme::Prism => Color::Rgb(255, 242, 214),
            UiTheme::Scanline => Color::Rgb(230, 255, 234),
            _ => Color::Rgb(236, 236, 236),
        }
    }
}