feat: status popover + CSV export

Two follow-ons after the ⌘K palette:

StatusIndicator → Popover
- The top-bar status light is no longer a direct link to /status.
  Clicking it opens a popover with grouped issues (failing
  integrations, expired tokens, expiring tokens) so a quick glance
  answers "what's broken" without leaving the current page.  A "View
  full status" link at the bottom routes to /status when needed.
- The trigger keeps the same color rollup so the visual hint is
  visible without opening the popover.

DataTable → CSV export
- Optional `exportable` + `exportFilename` props add an "Export CSV"
  button next to the search bar.  Default behavior exports the current
  page; pass `onExportAll` for server-side full-result downloads.
- Built client-side from column defs (label → header, raw value →
  cell).  BOM-prefixed UTF-8 so Excel decodes correctly.  Quoting +
  escape handled.
- Enabled on /admin/data-browser/{companies,tickets} as initial demos.
  Other data-browser pages opt in by adding two props.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
lorentz 2026-05-03 10:20:27 -04:00
parent a0894fe946
commit c97e5fc45c
5 changed files with 317 additions and 33 deletions

View file

@ -349,6 +349,20 @@ below is the working backlog; expand as we go.
expandable-row patterns (useful for `/veeam-analysis`-style
drill-downs).
### Status indicator popover (2026-05-03)
- [x] Top-bar StatusIndicator now opens a Popover instead of routing
directly to `/status`. The popover groups inline issues by tone
(failing integrations, expired tokens, expiring tokens) so a quick
glance answers "what's broken." A "View full status" link at the
bottom routes to `/status`.
### CSV export on DataTable (2026-05-03)
- [x] Optional `exportable` + `exportFilename` props add an "Export CSV"
button next to the search bar. Defaults to current-page export;
provide `onExportAll` for server-side full-result downloads.
Enabled on `/admin/data-browser/companies` and
`/admin/data-browser/tickets`.
### Command palette (2026-05-03)
- [x] **Cmd+K / Ctrl+K** opens a global launcher
(`components/navigation/command-palette.tsx`). Three sections: