from textual.theme import Theme

THEMES: list[Theme] = [
    # ── Terminal / Pro themes ─────────────────────────────────────
    Theme(
        name="terminal",
        primary="#ff8c00",
        secondary="#00c853",
        accent="#ff8c00",
        warning="#ffd600",
        error="#ff1744",
        success="#00c853",
        background="#000000",
        surface="#0a0a0a",
        panel="#1a1a1a",
        dark=True,
    ),
    Theme(
        name="terminal-green",
        primary="#00e676",
        secondary="#00e676",
        accent="#69f0ae",
        warning="#ffd600",
        error="#ff1744",
        success="#00e676",
        background="#000000",
        surface="#0a0f0a",
        panel="#0f1a0f",
        dark=True,
    ),
    # ── Dark themes ───────────────────────────────────────────────
    Theme(
        name="tokyo-night",
        primary="#7aa2f7",
        secondary="#9ece6a",
        accent="#bb9af7",
        warning="#e0af68",
        error="#f7768e",
        success="#9ece6a",
        background="#1a1b26",
        surface="#16161e",
        panel="#24283b",
        dark=True,
    ),
    Theme(
        name="catppuccin",
        primary="#89b4fa",
        secondary="#a6e3a1",
        accent="#cba6f7",
        warning="#f9e2af",
        error="#f38ba8",
        success="#a6e3a1",
        background="#1e1e2e",
        surface="#181825",
        panel="#313244",
        dark=True,
    ),
    Theme(
        name="gruvbox",
        primary="#83a598",
        secondary="#b8bb26",
        accent="#d3869b",
        warning="#fabd2f",
        error="#fb4934",
        success="#b8bb26",
        background="#282828",
        surface="#1d2021",
        panel="#3c3836",
        dark=True,
    ),
    Theme(
        name="dracula",
        primary="#bd93f9",
        secondary="#50fa7b",
        accent="#ff79c6",
        warning="#f1fa8c",
        error="#ff5555",
        success="#50fa7b",
        background="#282a36",
        surface="#21222c",
        panel="#44475a",
        dark=True,
    ),
    Theme(
        name="nord",
        primary="#88c0d0",
        secondary="#a3be8c",
        accent="#b48ead",
        warning="#ebcb8b",
        error="#bf616a",
        success="#a3be8c",
        background="#2e3440",
        surface="#272c36",
        panel="#3b4252",
        dark=True,
    ),
    Theme(
        name="rose-pine",
        primary="#c4a7e7",
        secondary="#9ccfd8",
        accent="#ebbcba",
        warning="#f6c177",
        error="#eb6f92",
        success="#9ccfd8",
        background="#191724",
        surface="#1f1d2e",
        panel="#26233a",
        dark=True,
    ),
    Theme(
        name="solarized-dark",
        primary="#268bd2",
        secondary="#859900",
        accent="#6c71c4",
        warning="#b58900",
        error="#dc322f",
        success="#859900",
        background="#002b36",
        surface="#073642",
        panel="#073642",
        dark=True,
    ),
    Theme(
        name="monokai",
        primary="#66d9ef",
        secondary="#a6e22e",
        accent="#ae81ff",
        warning="#e6db74",
        error="#f92672",
        success="#a6e22e",
        background="#272822",
        surface="#1e1f1c",
        panel="#3e3d32",
        dark=True,
    ),
    Theme(
        name="github-dark",
        primary="#58a6ff",
        secondary="#3fb950",
        accent="#d2a8ff",
        warning="#d29922",
        error="#f85149",
        success="#3fb950",
        background="#0d1117",
        surface="#010409",
        panel="#161b22",
        dark=True,
    ),
    Theme(
        name="one-dark",
        primary="#61afef",
        secondary="#98c379",
        accent="#c678dd",
        warning="#e5c07b",
        error="#e06c75",
        success="#98c379",
        background="#282c34",
        surface="#21252b",
        panel="#2c313a",
        dark=True,
    ),
    # ── Light themes ──────────────────────────────────────────────
    Theme(
        name="github-light",
        primary="#0969da",
        secondary="#1a7f37",
        accent="#8250df",
        warning="#9a6700",
        error="#cf222e",
        success="#1a7f37",
        background="#ffffff",
        surface="#f6f8fa",
        panel="#d0d7de",
        dark=False,
    ),
    Theme(
        name="solarized-light",
        primary="#268bd2",
        secondary="#859900",
        accent="#6c71c4",
        warning="#b58900",
        error="#dc322f",
        success="#859900",
        background="#fdf6e3",
        surface="#eee8d5",
        panel="#93a1a1",
        dark=False,
    ),
    Theme(
        name="catppuccin-latte",
        primary="#1e66f5",
        secondary="#40a02b",
        accent="#8839ef",
        warning="#df8e1d",
        error="#d20f39",
        success="#40a02b",
        background="#eff1f5",
        surface="#e6e9ef",
        panel="#ccd0da",
        dark=False,
    ),
    Theme(
        name="rose-pine-dawn",
        primary="#907aa9",
        secondary="#56949f",
        accent="#d7827e",
        warning="#ea9d34",
        error="#b4637a",
        success="#56949f",
        background="#faf4ed",
        surface="#fffaf3",
        panel="#dfdad9",
        dark=False,
    ),
    # ── High contrast ─────────────────────────────────────────────
    Theme(
        name="hc-dark",
        primary="#6cf",
        secondary="#6f6",
        accent="#f6f",
        warning="#ff6",
        error="#f66",
        success="#6f6",
        background="#000000",
        surface="#0a0a0a",
        panel="#222222",
        dark=True,
    ),
    Theme(
        name="hc-light",
        primary="#0000cc",
        secondary="#006600",
        accent="#660099",
        warning="#996600",
        error="#cc0000",
        success="#006600",
        background="#ffffff",
        surface="#f0f0f0",
        panel="#cccccc",
        dark=False,
    ),
]

DEFAULT_THEME = "terminal"
