local M = {}

function M.get()
	return {
		-- colors
		OctoGrey = { fg = C.base },
		OctoBlue = { fg = C.blue },
		OctoGreen = { fg = C.green },
		OctoRed = { fg = C.red },
		OctoPurple = { fg = C.mauve },
		OctoYellow = { fg = C.yellow },
		-- highlight groups
		OctoDirty = { link = "ErrorMsg" },
		OctoIssueTitle = { link = "PreProc" },
		OctoIssueId = { link = "Question" },
		OctoEmpty = { link = "Comment" },
		OctoFloat = { link = "NormalNC" },
		OctoDate = { link = "Comment" },
		OctoSymbol = { link = "Comment" },
		OctoTimelineItemHeading = { link = "Comment" },
		OctoDetailsLabel = { link = "Title" },
		OctoMissingDetails = { link = "Comment" },
		OctoDetailsValue = { link = "Identifier" },
		OctoDiffHunkPosition = { link = "NormalFloat" },
		OctoCommentLine = { link = "TabLineSel" },
		OctoViewer = { fg = C.base, bg = C.blue },
		OctoBubble = { fg = C.text, bg = C.base },
		OctoBubbleGrey = { fg = C.text, bg = C.base },
		OctoBubbleDelimiterGrey = { fg = C.base },
		OctoBubbleGreen = { fg = C.base, bg = C.green },
		OctoBubbleDelimiterGreen = { fg = C.green },
		OctoBubbleBlue = { fg = C.base, bg = C.sky },
		OctoBubbleDelimiterBlue = { fg = C.sky },
		OctoBubbleYellow = { fg = C.base, bg = C.yellow },
		OctoBubbleDelimiterYellow = { fg = C.yellow },
		OctoBubbleRed = { fg = C.base, bg = C.red },
		OctoBubbleDelimiterRed = { fg = C.red },
		OctoBubblePurple = { fg = C.base, bg = C.mauve },
		OctoBubbleDelimiterPurple = { fg = C.mauve },
		OctoUser = { link = "OctoBubble" },
		OctoUserViewer = { link = "OctoViewer" },
		OctoReaction = { link = "OctoBubble" },
		OctoReactionViewer = { link = "OctoViewer" },
		OctoPassingTest = { link = "OctoGreen" },
		OctoFailingTest = { link = "OctoRed" },
		OctoPullAdditions = { link = "OctoGreen" },
		OctoPullDeletions = { link = "OctoRed" },
		OctoPullModifications = { fg = C.peach },
		OctoStateOpen = { fg = C.green, bg = C.base },
		OctoStateOpenFloat = { fg = C.green, bg = C.base },
		OctoStateClosed = { fg = C.red, bg = C.base },
		OctoStateClosedFloat = { fg = C.red, bg = C.base },
		OctoStateMerged = { fg = C.mauve, bg = C.base },
		OctoStateMergedFloat = { fg = C.mauve, bg = C.base },
		OctoStatePending = { fg = C.peach, bg = C.base },
		OctoStatePendingFloat = { fg = C.peach, bg = C.base },
		OctoStateApproved = { link = "OctoStateOpen" },
		OctoStateApprovedFloat = { link = "OctoStateOpen" },
		OctoStateChangesRequested = { fg = C.maroon, bg = C.base },
		OctoStateChangesRequestedFloat = { fg = C.maroon, bg = C.base },
		OctoStateCommented = { link = "Normal" },
		OctoStateCommentedFloat = { link = "Normal" },
		OctoStateDismissed = { link = "OctoStateClosed" },
		OctoStateDismissedFloat = { link = "OctoStateClosed" },
		OctoStateSubmittedBubble = { link = "OctoBubbleGreen" },
		OctoFilePanelCounter = { fg = C.blue, style = { "bold" } },
		OctoFilePanelTitle = { fg = C.blue, style = { "bold" } },
		OctoNormalFront = { fg = C.text },
		OctoYellowFloat = { fg = C.yellow, bg = C.base },
		OctoPurpleFloat = { fg = C.mauve, bg = C.base },
		OctoRedFloat = { fg = C.red, bg = C.base },
		OctoGreenFloat = { fg = C.green, bg = C.base },
		OctoGreyFloat = { fg = C.text, bg = C.base },
		OctoBlueFloat = { fg = C.blue, bg = C.base },
	}
end

return M
