using System.Drawing;

namespace Elfisa.UI.Theming
{
    public sealed class DarkFluentPalette : IThemePalette
    {
        public ThemeVariant Variant => ThemeVariant.DarkFluent;

        public ThemeColors Colors { get; } = new ThemeColors
        {
            Name = "Dark Fluent",
            Mode = ThemeMode.Dark,
            BackgroundPrimary = Color.FromArgb(32, 32, 32),
            BackgroundSecondary = Color.FromArgb(40, 40, 40),
            Surface = Color.FromArgb(44, 44, 44),
            SurfaceElevated = Color.FromArgb(56, 56, 56),
            Border = Color.FromArgb(68, 68, 68),
            BorderSubtle = Color.FromArgb(58, 58, 58),
            TextPrimary = Color.FromArgb(255, 255, 255),
            TextSecondary = Color.FromArgb(210, 210, 210),
            TextMuted = Color.FromArgb(160, 160, 160),
            TextOnAccent = Color.FromArgb(0, 0, 0),
            AccentPrimary = Color.FromArgb(96, 205, 255),
            AccentPrimaryHover = Color.FromArgb(120, 215, 255),
            AccentPrimaryPressed = Color.FromArgb(70, 180, 230),
            AccentSecondary = Color.FromArgb(68, 68, 68),
            Success = Color.FromArgb(108, 203, 95),
            SuccessSoft = Color.FromArgb(40, 70, 45),
            Warning = Color.FromArgb(252, 225, 0),
            WarningSoft = Color.FromArgb(75, 70, 30),
            Danger = Color.FromArgb(255, 153, 164),
            DangerSoft = Color.FromArgb(80, 45, 50),
            Info = Color.FromArgb(96, 205, 255),
            InfoSoft = Color.FromArgb(35, 60, 75),
            TitleBarTop = Color.FromArgb(28, 28, 28),
            TitleBarBottom = Color.FromArgb(0, 120, 212),
            NavBackground = Color.FromArgb(32, 32, 32),
            CartHeaderBackground = Color.FromArgb(48, 48, 48),
            ToolbarBackground = Color.FromArgb(40, 40, 40),
            SectionHeaderBackground = Color.FromArgb(48, 48, 48),
            OverlayScrim = Color.FromArgb(190, 0, 0, 0),
            SidebarBackground = Color.FromArgb(28, 28, 28),
            SidebarItem = Color.FromArgb(200, 200, 200),
            SidebarItemHover = Color.FromArgb(48, 48, 48),
            SidebarItemActive = Color.FromArgb(40, 65, 80),
            SidebarItemActiveText = Color.FromArgb(96, 205, 255),
            GridHeaderBackground = Color.FromArgb(48, 48, 48),
            GridHeaderForeground = Color.FromArgb(200, 200, 200),
            GridRowBackground = Color.FromArgb(44, 44, 44),
            GridRowAlternate = Color.FromArgb(40, 40, 40),
            GridRowHover = Color.FromArgb(56, 56, 56),
            GridRowSelected = Color.FromArgb(40, 65, 80),
            GridRowSelectedText = Color.FromArgb(220, 245, 255),
            GridBorder = Color.FromArgb(58, 58, 58),
            InputBackground = Color.FromArgb(48, 48, 48),
            InputBorder = Color.FromArgb(68, 68, 68),
            InputBorderFocus = Color.FromArgb(96, 205, 255),
            Shadow = Color.FromArgb(56, 0, 0, 0),
            ScrollbarThumb = Color.FromArgb(100, 100, 100),
            ScrollbarTrack = Color.FromArgb(40, 40, 40)
        };

        public DarkFluentPalette()
        {
            Colors.FontRegular12 = new Font("Segoe UI", 12f);
            Colors.FontRegular13 = new Font("Segoe UI", 13f);
            Colors.FontRegular14 = new Font("Segoe UI", 14f);
            Colors.FontSemibold14 = new Font("Segoe UI Semibold", 14f);
            Colors.FontSemibold16 = new Font("Segoe UI Semibold", 16f);
            Colors.FontBold18 = new Font("Segoe UI", 18f, FontStyle.Bold);
        }
    }
}
