package wizard

import "github.com/charmbracelet/lipgloss"

// 颜色定义
var (
	primaryColor   = lipgloss.Color("#7C3AED")
	secondaryColor = lipgloss.Color("#10B981")
	errorColor     = lipgloss.Color("#EF4444")
	warnColor      = lipgloss.Color("#F59E0B")

	// 背景色设为无，让终端自己的背景色生效，避免黑块
	bgColor    = lipgloss.Color("#1F2937")
	textColor  = lipgloss.Color("#FFFFFF")
	mutedColor = lipgloss.Color("#B0B0B0")
)

// 容器样式
var containerStyle = lipgloss.NewStyle().
	Padding(2, 4).
	BorderStyle(lipgloss.RoundedBorder()).
	BorderForeground(primaryColor).
	//Background(bgColor). // 注释掉背景色，防止在某些终端出现黑块
	Foreground(textColor).
	//Width(80).
	Align(lipgloss.Center)

// 标题样式
var titleStyle = lipgloss.NewStyle().
	Bold(true).
	Foreground(primaryColor).
	MarginBottom(1)

var subTitleStyle = lipgloss.NewStyle().
	Foreground(mutedColor).
	MarginBottom(2)

// 按钮样式
var normalButton = lipgloss.NewStyle().
	Padding(0, 2).
	Foreground(lipgloss.Color("#666666")) // 深灰色，更暗

var selectedButton = lipgloss.NewStyle().
	Padding(0, 2).
	Foreground(lipgloss.Color("#3d4747ff")). // 亮绿色
	Bold(true)

// 输入框样式
var inputBox = lipgloss.NewStyle().
	BorderStyle(lipgloss.RoundedBorder()).
	BorderForeground(primaryColor).
	Padding(0, 1)

var labelStyle = lipgloss.NewStyle().
	Foreground(mutedColor).
	Width(12).
	Align(lipgloss.Right)

// 协议框样式
var agreementBox = lipgloss.NewStyle().
	BorderStyle(lipgloss.RoundedBorder()).
	BorderForeground(warnColor).
	Padding(1, 2).
	//Width(70).
	Align(lipgloss.Left)

// 总结框样式
var summaryBox = lipgloss.NewStyle().
	BorderStyle(lipgloss.DoubleBorder()).
	BorderForeground(primaryColor).
	Padding(0, 0).
	Foreground(textColor)

// 进度条样式
var progressStyle = lipgloss.NewStyle().Foreground(primaryColor)

// 提示信息样式
var hintStyle = lipgloss.NewStyle().
	Foreground(mutedColor).
	Italic(true)

// 成功/错误样式
var successTitle = lipgloss.NewStyle().
	Bold(true).
	Foreground(secondaryColor)

var successMsg = lipgloss.NewStyle().
	Foreground(textColor)

var errorTitle = lipgloss.NewStyle().
	Bold(true).
	Foreground(errorColor)

var errorMsg = lipgloss.NewStyle().
	Foreground(textColor)

var infoStyle = lipgloss.NewStyle().
	Foreground(primaryColor).
	Bold(true)
