1package state23import (4 "github.com/charmbracelet/lipgloss"5)67var (8 loadingStyle lipgloss.Style9 errorStyle lipgloss.Style10 cinemaNameStyle lipgloss.Style11 separatorStyle lipgloss.Style12 separatorText string13 hintStyle lipgloss.Style14 hintText string15 hintTextGantt string16 scrollStyle lipgloss.Style17 filterStyle lipgloss.Style18 filterActive lipgloss.Style19 modeBadgeStyle lipgloss.Style2021 // Modal styles22 modalBoxStyle lipgloss.Style23 modalTitleStyle lipgloss.Style24 modalItemStyle lipgloss.Style25 modalCurrentStyle lipgloss.Style26 modalSelectedStyle lipgloss.Style27 modalSelectedCurrentStyle lipgloss.Style28 modalHintStyle lipgloss.Style29)3031func init() {32 loadingStyle = lipgloss.NewStyle().33 Foreground(lipgloss.Color("72")).34 Padding(1)3536 errorStyle = lipgloss.NewStyle().37 Foreground(lipgloss.Color("167")).38 Padding(1).39 Border(lipgloss.NormalBorder()).40 BorderForeground(lipgloss.Color("167"))4142 cinemaNameStyle = lipgloss.NewStyle().43 Foreground(lipgloss.Color("255")).44 Bold(true)4546 separatorStyle = lipgloss.NewStyle().47 Foreground(lipgloss.Color("240"))4849 separatorText = "────────────────────────────────────────"5051 hintStyle = lipgloss.NewStyle().52 Foreground(lipgloss.Color("245"))5354 hintText = "↑↓ scroll t today n/p dates g chart v venue q quit"55 hintTextGantt = "↑↓ scroll t today n/p dates g list v venue q quit"5657 scrollStyle = lipgloss.NewStyle().58 Foreground(lipgloss.Color("245")).59 Background(lipgloss.Color("236")).60 Padding(0, 1)6162 filterStyle = lipgloss.NewStyle().63 Foreground(lipgloss.Color("245")).64 Background(lipgloss.Color("236")).65 Padding(0, 1)6667 filterActive = lipgloss.NewStyle().68 Foreground(lipgloss.Color("235")).69 Background(lipgloss.Color("150")).70 Bold(true).71 Padding(0, 1)7273 modeBadgeStyle = lipgloss.NewStyle().74 Foreground(lipgloss.Color("235")).75 Background(lipgloss.Color("109")).76 Bold(true).77 Padding(0, 1)7879 // Modal styles80 modalBoxStyle = lipgloss.NewStyle().81 Border(lipgloss.RoundedBorder()).82 BorderForeground(lipgloss.Color("109")).83 Background(lipgloss.Color("235")).84 Padding(1, 2)8586 modalTitleStyle = lipgloss.NewStyle().87 Foreground(lipgloss.Color("255")).88 Bold(true)8990 modalItemStyle = lipgloss.NewStyle().91 Foreground(lipgloss.Color("250")).92 Background(lipgloss.Color("237")).93 Padding(0, 1).94 MarginBottom(0)9596 modalCurrentStyle = lipgloss.NewStyle().97 Foreground(lipgloss.Color("255")).98 Background(lipgloss.Color("237")).99 Bold(true).100 Padding(0, 1)101102 modalSelectedStyle = lipgloss.NewStyle().103 Foreground(lipgloss.Color("255")).104 Background(lipgloss.Color("109")).105 Padding(0, 1)106107 modalSelectedCurrentStyle = lipgloss.NewStyle().108 Foreground(lipgloss.Color("255")).109 Background(lipgloss.Color("150")).110 Bold(true).111 Padding(0, 1)112113 modalHintStyle = lipgloss.NewStyle().114 Foreground(lipgloss.Color("243"))115}116117// Color palette for venue dots118var venueDotColors = []lipgloss.Color{119 lipgloss.Color("34"), // green120 lipgloss.Color("33"), // blue121 lipgloss.Color("125"), // magenta122 lipgloss.Color("172"), // orange123 lipgloss.Color("30"), // teal124 lipgloss.Color("91"), // purple125 lipgloss.Color("130"), // brown126 lipgloss.Color("26"), // deep blue127}128129func modalDotStyle(idx int) lipgloss.Style {130 c := venueDotColors[idx%len(venueDotColors)]131 return lipgloss.NewStyle().Foreground(c)132}