feat(web/ui6): migrate dashboard, workspaces, search, chat pages
Phase UI6 — the three highest-traffic operator surfaces plus chat
move off legacy globals onto @bytelyst/ui Card + Badge + Input +
Select + Textarea + Button primitives via the local adapter.
dashboard/page.tsx:
- Welcome card, Saved views card, Quick links card, Operator workflows
card, Recent note activity card — all section.surface-card → Card.
- All saved-view/quick-link/workflow/note rows: surface-muted with
inline styles → grid+rounded+bg utility classes with hover state.
- All inline 'badge' spans (scope, status, tags) → Badge with
semantic variants (workflow status maps to warning/success).
workspaces/page.tsx:
- Saved-views aside, filter section, workspace article rows, error
banner — all surface-card → Card.
- Filter input → Input. Visibility/owner/tag chips → Badge.
- Workspace-note rows → utility-class hover panels.
search/page.tsx:
- POST /notes/search action chip → Badge.
- Saved searches aside + results pane — both surface-card → Card.
- '+ Save current' button + per-view Remove button — raw <button>
→ Button (size sm, ghost variant for Remove).
- Search input + filter chips + result rows — Input + Badge +
utility-class panels.
chat/page.tsx:
- Workspace <select> → Select with options=[{value,label}].
- Question <textarea> → Textarea.
Ratchet impact for this commit:
raw interactive controls 25 → 19 (-6)
legacy global surface classes 67 → 38 (-29)
Cumulative since session start (38/92 baseline):
raw 38 → 19 (-19)
legacy 92 → 38 (-54)
Verified: pnpm typecheck, test (96/96), audit:ui:ratchet at new
baseline.