feat(tui): lazygit-style titled panel borders

All panels wrapped in titled rounded borders (╭─ Title ──╮). Focused
panel gets accent-colored border, unfocused panels get muted border.

- Monitors panel: titled "Monitors", focused when detail is closed
- Logs panel: titled "Logs", always unfocused (passive display)
- Detail panel: titled with monitor name, focused when open

Table's own RoundedBorder replaced with HiddenBorder — the titled
panel border provides the visual frame, table uses space-separated
columns internally. Consistent chrome across all panels.
This commit is contained in:
2026-06-20 19:30:59 -04:00
parent 065d5d74bb
commit e5ac4a1fec
4 changed files with 77 additions and 32 deletions
-9
View File
@@ -18,15 +18,6 @@ func (m Model) viewDetailInline(width int) string {
var b strings.Builder
title := m.st.titleStyle.Render(site.Name)
b.WriteString(" " + title + "\n")
divW := width - 4
if divW < 20 {
divW = 20
}
b.WriteString(" " + m.st.subtleStyle.Render(strings.Repeat("─", divW)) + "\n")
status := m.fmtStatus(site.Status, site.Paused, m.isMonitorInMaintenance(site.ID))
latency := m.fmtLatency(site.Latency)
uptime := m.fmtUptime(hist.Statuses)