package ui

import (
	"github.com/charmbracelet/lipgloss"
)

// base - background
// surface - not active popups, inputs, etc
// overlay - active popups, inputs ,etc
// muted - ignored, not needed
// subtle - inactive tabs, items, etc
// text - text color
// err - errors
// info - informational messages
// cyan, green, blue, magenta - accessory colors for styling

type Rosepine struct {
	Base lipgloss.AdaptiveColor
	Surface lipgloss.AdaptiveColor
	Overlay lipgloss.AdaptiveColor
	Muted lipgloss.AdaptiveColor
	Subtle lipgloss.AdaptiveColor
	Text lipgloss.AdaptiveColor
	Err lipgloss.AdaptiveColor
	Info lipgloss.AdaptiveColor
	Cyan lipgloss.AdaptiveColor
	Green lipgloss.AdaptiveColor
	Blue lipgloss.AdaptiveColor
	Magenta lipgloss.AdaptiveColor
}

func MakeTheme() Rosepine {
	return Rosepine{
		Base: lipgloss.AdaptiveColor{
			Light:"#faf4ed",
			Dark:"#232136",
		},
		Surface: lipgloss.AdaptiveColor{
			Light:"#fffaf3",
			Dark:"#2a273f",
		},
		Overlay: lipgloss.AdaptiveColor{
			Light:"#f2e9e1",
			Dark:"#393552",
		},
		Muted: lipgloss.AdaptiveColor{
			Light:"#9893a5",
			Dark:"#6e6a86",
		},
		Subtle: lipgloss.AdaptiveColor{
			Light:"#797593",
			Dark:"#908caa",
		},
		Text: lipgloss.AdaptiveColor{
			Light:"#575279",
			Dark:"#e0def4",
		},
		Err: lipgloss.AdaptiveColor{
			Light:"#b4637a",
			Dark:"#eb6f92",
		},
		Info: lipgloss.AdaptiveColor{
			Light:"#ea9d34",
			Dark:"#f6c177",
		},
		Cyan: lipgloss.AdaptiveColor{
			Light:"#d7827e",
			Dark:"#ea9a97",
		},
		Green: lipgloss.AdaptiveColor{
			Light:"#286983",
			Dark:"#3e8fb0",
		},
		Blue: lipgloss.AdaptiveColor{
			Light:"#56949f",
			Dark:"#9ccfd8",
		},
		Magenta: lipgloss.AdaptiveColor{
			Light:"#907aa9",
			Dark:"#c4a7e7",
		},
	}
}