e22e040688
CI / test (pull_request) Successful in 2m31s
Tag autocomplete shows suggestions when typing #partial in capture bar. Tab/enter accepts, up/down navigates, esc dismisses. Query composition extends ? search with date filters (@today, @week, @month, <7d, >30d), card type filters (^snippet), all composable with existing text and tag filters.
104 lines
4.3 KiB
Go
104 lines
4.3 KiB
Go
package tui
|
||
|
||
import "github.com/charmbracelet/lipgloss"
|
||
|
||
var (
|
||
titleStyle lipgloss.Style
|
||
statusStyle lipgloss.Style
|
||
listItemStyle lipgloss.Style
|
||
selectedItemStyle lipgloss.Style
|
||
glyphStyle lipgloss.Style
|
||
completedGlyphStyle lipgloss.Style
|
||
tagStyle lipgloss.Style
|
||
idStyle lipgloss.Style
|
||
inputPromptStyle lipgloss.Style
|
||
detailHeaderStyle lipgloss.Style
|
||
detailBodyStyle lipgloss.Style
|
||
helpStyle lipgloss.Style
|
||
errorStyle lipgloss.Style
|
||
dateHeaderStyle lipgloss.Style
|
||
pinnedStyle lipgloss.Style
|
||
filterPillStyle lipgloss.Style
|
||
helpKeyStyle lipgloss.Style
|
||
helpDescStyle lipgloss.Style
|
||
affordanceStyle lipgloss.Style
|
||
useCountStyle lipgloss.Style
|
||
modeStyle lipgloss.Style
|
||
detailLabelStyle lipgloss.Style
|
||
detailValueStyle lipgloss.Style
|
||
checkDoneStyle lipgloss.Style
|
||
checkPendingStyle lipgloss.Style
|
||
searchPillStyle lipgloss.Style
|
||
gutterStyle lipgloss.Style
|
||
drawerBorderStyle lipgloss.Style
|
||
drawerHintsStyle lipgloss.Style
|
||
drawerPreviewStyle lipgloss.Style
|
||
separatorStyle lipgloss.Style
|
||
hintKeyStyle lipgloss.Style
|
||
hintDescStyle lipgloss.Style
|
||
railHeaderStyle lipgloss.Style
|
||
railTagStyle lipgloss.Style
|
||
railActiveTagStyle lipgloss.Style
|
||
railCountStyle lipgloss.Style
|
||
stumbleAgeStyle lipgloss.Style
|
||
acSelectedStyle lipgloss.Style
|
||
acItemStyle lipgloss.Style
|
||
)
|
||
|
||
func init() {
|
||
applyTheme()
|
||
}
|
||
|
||
func applyTheme() {
|
||
t := activeTheme()
|
||
accent := lipgloss.Color(t.Accent)
|
||
dim := lipgloss.Color(t.Dim)
|
||
muted := lipgloss.Color(t.Muted)
|
||
ok := lipgloss.Color(t.Ok)
|
||
todo := lipgloss.Color(t.Todo)
|
||
event := lipgloss.Color(t.Event)
|
||
remind := lipgloss.Color(t.Remind)
|
||
danger := lipgloss.Color(t.Danger)
|
||
|
||
titleStyle = lipgloss.NewStyle().Bold(true).Foreground(accent).PaddingLeft(1)
|
||
statusStyle = lipgloss.NewStyle().Foreground(dim).PaddingLeft(1)
|
||
listItemStyle = lipgloss.NewStyle().PaddingLeft(4)
|
||
selectedItemStyle = lipgloss.NewStyle().PaddingLeft(1).Bold(true).Foreground(accent).SetString("›")
|
||
glyphStyle = lipgloss.NewStyle().Width(2)
|
||
completedGlyphStyle = lipgloss.NewStyle().Width(2).Foreground(dim)
|
||
tagStyle = lipgloss.NewStyle().Foreground(ok)
|
||
idStyle = lipgloss.NewStyle().Foreground(dim)
|
||
inputPromptStyle = lipgloss.NewStyle().Foreground(accent).Bold(true)
|
||
detailHeaderStyle = lipgloss.NewStyle().Bold(true).Foreground(accent).MarginBottom(1)
|
||
detailBodyStyle = lipgloss.NewStyle().PaddingLeft(2).PaddingTop(1)
|
||
helpStyle = lipgloss.NewStyle().Foreground(dim).PaddingLeft(1)
|
||
errorStyle = lipgloss.NewStyle().Foreground(danger).PaddingLeft(1)
|
||
dateHeaderStyle = lipgloss.NewStyle().Foreground(dim).PaddingLeft(1)
|
||
pinnedStyle = lipgloss.NewStyle().Foreground(todo)
|
||
filterPillStyle = lipgloss.NewStyle().Foreground(ok).Bold(true)
|
||
helpKeyStyle = lipgloss.NewStyle().Foreground(accent).Bold(true).Width(18)
|
||
helpDescStyle = lipgloss.NewStyle().Foreground(dim)
|
||
affordanceStyle = lipgloss.NewStyle().Foreground(event).Bold(true)
|
||
useCountStyle = lipgloss.NewStyle().Foreground(remind)
|
||
modeStyle = lipgloss.NewStyle().Foreground(dim).Bold(true)
|
||
detailLabelStyle = lipgloss.NewStyle().Foreground(accent).Bold(true)
|
||
detailValueStyle = lipgloss.NewStyle().Foreground(muted)
|
||
checkDoneStyle = lipgloss.NewStyle().Foreground(ok)
|
||
checkPendingStyle = lipgloss.NewStyle().Foreground(dim)
|
||
searchPillStyle = lipgloss.NewStyle().Foreground(danger).Bold(true)
|
||
gutterStyle = lipgloss.NewStyle().Foreground(dim)
|
||
drawerBorderStyle = lipgloss.NewStyle().Foreground(dim)
|
||
drawerHintsStyle = lipgloss.NewStyle().Foreground(dim).PaddingLeft(2)
|
||
drawerPreviewStyle = lipgloss.NewStyle().Foreground(muted).PaddingLeft(2)
|
||
separatorStyle = lipgloss.NewStyle().Foreground(dim)
|
||
hintKeyStyle = lipgloss.NewStyle().Foreground(accent).Bold(true)
|
||
hintDescStyle = lipgloss.NewStyle().Foreground(dim)
|
||
railHeaderStyle = lipgloss.NewStyle().Bold(true).Foreground(dim)
|
||
railTagStyle = lipgloss.NewStyle().Foreground(ok)
|
||
railActiveTagStyle = lipgloss.NewStyle().Foreground(ok).Bold(true)
|
||
railCountStyle = lipgloss.NewStyle().Foreground(dim)
|
||
stumbleAgeStyle = lipgloss.NewStyle().Foreground(remind)
|
||
acSelectedStyle = lipgloss.NewStyle().Foreground(accent).Bold(true)
|
||
acItemStyle = lipgloss.NewStyle().Foreground(muted)
|
||
}
|