-- Fidget.nvim highlights for Forest Night theme
local M = {}

-- Helper function to set highlights
local function hl(group, opts)
    vim.api.nvim_set_hl(0, group, opts)
end

function M.apply(colors, config)
    -- Fidget progress
    hl('FidgetProgress', { fg = colors.func })
    hl('FidgetProgressDone', { fg = colors.info })
    hl('FidgetProgressTitle', { fg = colors.func, bold = true })
    hl('FidgetProgressIcon', { fg = colors.func })
    hl('FidgetProgressGroup', { fg = colors.property })
    hl('FidgetProgressSubGroup', { fg = colors.type })
    hl('FidgetProgressMessage', { fg = colors.fg })
    hl('FidgetProgressPercent', { fg = colors.number })
    hl('FidgetProgressSpinner', { fg = colors.func })
    hl('FidgetProgressText', { fg = colors.fg })
    hl('FidgetProgressClient', { fg = colors.property })
    hl('FidgetProgressTodo', { fg = colors.warning })
    hl('FidgetProgressError', { fg = colors.error })
    hl('FidgetProgressWarn', { fg = colors.warning })
    hl('FidgetProgressInfo', { fg = colors.info })
    hl('FidgetProgressHint', { fg = colors.hint })
    hl('FidgetProgressCancelled', { fg = colors.comment })
    hl('FidgetProgressPending', { fg = colors.warning })
    hl('FidgetProgressRunning', { fg = colors.func })
    hl('FidgetProgressSuccess', { fg = colors.info })
    hl('FidgetProgressFailed', { fg = colors.error })
    hl('FidgetProgressSkipped', { fg = colors.comment })
    hl('FidgetProgressCanceled', { fg = colors.comment })
    hl('FidgetProgressTimeout', { fg = colors.error })
    hl('FidgetProgressUnknown', { fg = colors.comment })
    hl('FidgetProgressDefault', { fg = colors.fg })
    hl('FidgetProgressActive', { fg = colors.func, bold = true })
    hl('FidgetProgressInactive', { fg = colors.comment })
    hl('FidgetProgressQuiet', { fg = colors.comment })
    hl('FidgetProgressLoud', { fg = colors.func, bold = true })
    hl('FidgetProgressSilent', { fg = colors.comment })
    hl('FidgetProgressVerbose', { fg = colors.fg })
    hl('FidgetProgressDebug', { fg = colors.comment })
    hl('FidgetProgressTrace', { fg = colors.comment })
    hl('FidgetProgressLog', { fg = colors.fg })
    hl('FidgetProgressWindow', { fg = colors.fg, bg = colors.bg_alt })
    hl('FidgetProgressBorder', { fg = colors.border })
    hl('FidgetProgressNormal', { fg = colors.fg })
    hl('FidgetProgressHeader', { fg = colors.func, bold = true })
    hl('FidgetProgressFooter', { fg = colors.comment })
    hl('FidgetProgressSeparator', { fg = colors.border })
    hl('FidgetProgressBar', { fg = colors.func, bg = colors.bg_alt })
    hl('FidgetProgressBarFill', { fg = colors.bg, bg = colors.func })
    hl('FidgetProgressBarEmpty', { fg = colors.comment, bg = colors.bg_alt })
    hl('FidgetProgressBarBorder', { fg = colors.border })
    hl('FidgetProgressBarText', { fg = colors.fg })
    hl('FidgetProgressBarPercent', { fg = colors.number })
    hl('FidgetProgressBarSpinner', { fg = colors.func })
    hl('FidgetProgressBarTitle', { fg = colors.func, bold = true })
    hl('FidgetProgressBarMessage', { fg = colors.fg })
    hl('FidgetProgressBarClient', { fg = colors.property })
    hl('FidgetProgressBarIcon', { fg = colors.func })
    hl('FidgetProgressBarGroup', { fg = colors.property })
    hl('FidgetProgressBarSubGroup', { fg = colors.type })
    hl('FidgetProgressBarTodo', { fg = colors.warning })
    hl('FidgetProgressBarError', { fg = colors.error })
    hl('FidgetProgressBarWarn', { fg = colors.warning })
    hl('FidgetProgressBarInfo', { fg = colors.info })
    hl('FidgetProgressBarHint', { fg = colors.hint })
    hl('FidgetProgressBarCancelled', { fg = colors.comment })
    hl('FidgetProgressBarPending', { fg = colors.warning })
    hl('FidgetProgressBarRunning', { fg = colors.func })
    hl('FidgetProgressBarSuccess', { fg = colors.info })
    hl('FidgetProgressBarFailed', { fg = colors.error })
    hl('FidgetProgressBarSkipped', { fg = colors.comment })
    hl('FidgetProgressBarCanceled', { fg = colors.comment })
    hl('FidgetProgressBarTimeout', { fg = colors.error })
    hl('FidgetProgressBarUnknown', { fg = colors.comment })
    hl('FidgetProgressBarDefault', { fg = colors.fg })
    hl('FidgetProgressBarActive', { fg = colors.func, bold = true })
    hl('FidgetProgressBarInactive', { fg = colors.comment })
    hl('FidgetProgressBarQuiet', { fg = colors.comment })
    hl('FidgetProgressBarLoud', { fg = colors.func, bold = true })
    hl('FidgetProgressBarSilent', { fg = colors.comment })
    hl('FidgetProgressBarVerbose', { fg = colors.fg })
    hl('FidgetProgressBarDebug', { fg = colors.comment })
    hl('FidgetProgressBarTrace', { fg = colors.comment })
    hl('FidgetProgressBarLog', { fg = colors.fg })
end

return M
