feat: component library, markdown renderer, multi-workspace dashboard

- Add PeerCardViewer with collapsible ALL_CAPS sections and title-case metadata table
- Add MarkdownRenderer (react-markdown + remark-gfm) with TimestampChip (Luxon)
- Add Badge, Card, Collapsible shadcn/ui components
- Rebuild Dashboard with per-workspace queue table and aggregate stats
- Add metadata.source chip to SessionList, observe_me badge to PeerList
- Make session_id in ConclusionBrowser a clickable link
- Fix sessionPeers pagination crash (unwrap .items from Page_Peer_ response)
- Add COLOR constants (src/lib/constants.ts) and localized formatCount (Intl)
- Fix dark mode contrast: text-2/3/4 vars, global font-size baseline
This commit is contained in:
Offending Commit
2026-04-24 13:47:22 -05:00
parent 45e0183439
commit 91c78915e5
18 changed files with 2614 additions and 381 deletions

28
src/lib/constants.ts Normal file
View File

@@ -0,0 +1,28 @@
// Semantic color tokens for inline styles.
// CSS variables (var(--text-1) etc.) handle theme-aware colors.
// These constants are for fixed semantic states that don't invert with theme.
export const COLOR = {
// Status
success: "#34d399",
successDim: "rgba(52,211,153,0.08)",
successBorder: "rgba(52,211,153,0.2)",
warning: "#f59e0b",
warningDim: "rgba(245,158,11,0.08)",
warningBorder: "rgba(245,158,11,0.2)",
destructive: "#f87171",
destructiveDim: "rgba(239,68,68,0.08)",
destructiveBorder: "rgba(239,68,68,0.2)",
// Accent (indigo — matches --accent CSS var)
accent: "#6366f1",
accentText: "#818cf8",
accentSoft: "#c7d2fe",
accentDim: "rgba(99,102,241,0.08)",
accentDimHover: "rgba(99,102,241,0.06)",
accentSubtle: "rgba(99,102,241,0.1)",
accentBorder: "rgba(99,102,241,0.2)",
accentBorderStrong: "rgba(99,102,241,0.15)",
} as const;