package tui import ( "fmt" "github.com/charmbracelet/lipgloss" ) func renderStatusBar(m model, width int) string { left := countText(m) right := contextHints(m) leftRendered := statusStyle.Render(left) rightRendered := helpStyle.Render(right) gap := width - lipgloss.Width(leftRendered) - lipgloss.Width(rightRendered) if gap < 0 { gap = 0 } pad := lipgloss.NewStyle().Width(gap).Render("") return leftRendered + pad + rightRendered } func countText(m model) string { total := len(m.list.entities) if m.filterTag != "" { return fmt.Sprintf("%d entities #%s", total, m.filterTag) } return fmt.Sprintf("%d entities", total) } func contextHints(m model) string { switch m.state { case stateDetail: return "p:promote D:demote c:copy e:edit !:pin esc:back" case stateInput: return "enter:submit esc:cancel" case stateTagFilter: return "j/k:nav enter:select esc:cancel" case stateConfirm: return "y:confirm n:cancel" default: return "a:add d:del x:todo #:filter ?:help q:quit" } }