package wizard

import "github.com/charmbracelet/lipgloss"

// 颜色定义
var (
	primaryColor   = lipgloss.Color("#7C3AED")
	secondaryColor = lipgloss.Color("#10B981")
	titleColor     = lipgloss.Color("#8b19a2")
	errorColor     = lipgloss.Color("#EF4444")
	warnColor      = lipgloss.Color("#F59E0B")
	btnTextColor   = lipgloss.Color("#666666") // 深灰色
	btnbordColor   = lipgloss.Color("#3b4147")
	btnFocusColor  = lipgloss.Color("#ffffff")

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

// 容器样式
var (
	// 基础布局样式
	appStyle = lipgloss.NewStyle().
			Padding(1, 1).
			BorderStyle(lipgloss.RoundedBorder()).
			BorderForeground(primaryColor).
			Foreground(textColor).
			Align(lipgloss.Center).
			Height(40)

	// 标题样式
	titleStyle = lipgloss.NewStyle().
			Foreground(titleColor).
			Padding(0, 1).
			Bold(true).
			Align(lipgloss.Center)

	// 子标题/标签样式
	labelStyle = lipgloss.NewStyle().
			Width(30).
			Align(lipgloss.Right).
			PaddingRight(2)

	valueStyle = lipgloss.NewStyle().
			Foreground(textColor).
			Width(50)

	// 输入框/列表内容样式
	inputBoxStyle = lipgloss.NewStyle().
			BorderStyle(lipgloss.RoundedBorder()).
			BorderForeground(btnbordColor).
			Padding(0, 1).
			Width(50)

	// 按钮基础样式
	btnBaseStyle = lipgloss.NewStyle().
			Foreground(btnTextColor).
			Padding(0, 2).
			Margin(1, 1).
			Border(lipgloss.RoundedBorder()).
			BorderForeground(btnbordColor)

	// 按钮选中/聚焦样式
	btnSelectedStyle = lipgloss.NewStyle().
				Foreground(btnFocusColor).
				Padding(0, 2).
				Margin(1, 1).
				Border(lipgloss.RoundedBorder()).
				BorderForeground(btnbordColor)

	splitlineStyle = lipgloss.NewStyle().
			Foreground(lipgloss.Color("#888888"))

	// 协议文本样式
	licenseTextStyle = lipgloss.NewStyle().
				Foreground(lipgloss.Color("#f8f8f2")).
				Width(76)

	// 提示文本样式
	hintStyle = lipgloss.NewStyle().
			Foreground(lipgloss.Color("#888888")).
			Width(76)

	infoStyle = lipgloss.NewStyle().
			Foreground(lipgloss.Color("#888888")).
			Border(lipgloss.RoundedBorder()).
			BorderForeground(btnbordColor)

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

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

	// quit 提示样式
	quitStyle = lipgloss.NewStyle().
			Foreground(lipgloss.Color("#888888")).
			Bold(true).
			Width(76)

	// 错误提示样式
	errorStyle = lipgloss.NewStyle().
			Foreground(lipgloss.Color("#ff5555")).
			Bold(true).
			Width(76)

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

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