local M = {} ---@class Config ---@field on_colors fun(colors: ColorScheme) ---@field on_highlights fun(highlights: Highlights, colors: ColorScheme) local defaults = { style = "storm", -- The theme comes in three styles, `storm`, a darker variant `night` and `day` transparent = false, -- Enable this to disable setting the background color terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim styles = { -- Style to be applied to different syntax groups -- Value is any valid attr-list value for `:help nvim_set_hl` comments = { italic = true }, keywords = { italic = true }, functions = {}, variables = {}, -- Background styles. Can be "dark", "transparent" or "normal" sidebars = "dark", -- style for sidebars, see below floats = "dark", -- style for floating windows }, sidebars = { "qf", "help" }, -- Set a darker background on sidebar-like windows. For example: `["qf", "vista_kind", "terminal", "packer"]` day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors hide_inactive_statusline = false, -- Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard **StatusLine** and **LuaLine**. dim_inactive = false, -- dims inactive windows lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold --- You can override specific color groups to use other groups or a hex color --- fucntion will be called with a ColorScheme table ---@param colors ColorScheme on_colors = function(colors) end, --- You can override specific highlights to use other groups or a hex color --- fucntion will be called with a Highlights and ColorScheme table ---@param highlights Highlights ---@param colors ColorScheme on_highlights = function(highlights, colors) end, use_background = true, -- can be light/dark/auto. When auto, background will be set to vim.o.background } ---@type Config M.options = {} ---@param options Config|nil function M.setup(options) M.options = vim.tbl_deep_extend("force", {}, defaults, options or {}) end ---@param options Config|nil function M.extend(options) M.options = vim.tbl_deep_extend("force", {}, M.options or defaults, options or {}) end function M.is_day() return M.options.style == "day" or M.options.use_background and vim.o.background == "light" end M.setup() return M