local generated = require("github_theme.generated.themes") local M = {} local function normalize_none(value) if value == false then return "NONE" end return value end function M.get(variant, opts) local entry = assert(generated.variants[variant], ("github_theme: unknown variant '%s'"):format(variant)) local palette = vim.deepcopy(entry.palette) if opts.transparent then for _, key in ipairs({ "bg", "bg_float", "bg_popup", "bg_sidebar", "bg_statusline" }) do palette[key] = "NONE" end end for key, value in pairs(opts.colors or {}) do palette[key] = normalize_none(value) end return { name = entry.name, is_dark = entry.is_dark, palette = palette, meta = generated.meta, } end return M