feat(tui): add split-pane detail, compact date headers, and input drawer

Three layout improvements for better space utilization:

- Compact date headers: date labels render as left gutter column instead
  of standalone lines, saving one line per date group in stream view
- Input drawer: capture bar expands to 4-line drawer with border, hints,
  and live preview of parsed entity/search query
- Split-pane detail: wide terminals (>=100 cols) show list and detail
  side-by-side with h/l focus switching, falling back to full-screen
  detail on narrow terminals
This commit is contained in:
2026-05-19 19:55:37 -04:00
parent e09919b679
commit f89ca8acb9
7 changed files with 413 additions and 95 deletions
+7 -1
View File
@@ -47,7 +47,7 @@ func contextHints(m model) string {
return "p:promote D:demote c:copy e:edit r:run f:fill !:pin esc:back"
}
case stateInput:
return "enter:submit esc:cancel"
return ""
case stateTagFilter:
return "j/k:nav enter:select esc:cancel"
case stateConfirm:
@@ -57,6 +57,12 @@ func contextHints(m model) string {
case stateAbsorb:
return "j/k:nav enter:absorb esc:cancel"
default:
if m.splitDetail {
if m.focus == focusDetail {
return "h:list c:copy e:edit p:promote D:demote !:pin esc:back"
}
return "l:detail a:add d:del #:filter esc:close ?:help q:quit"
}
if m.mode == modeCards {
return "1:stream 2:cards s:sort tab:intent a:add ?:help q:quit"
}