Dashboard
Dashboard primitives that compose the patient, provider, and HQ surfaces. The patient portal today is a directional sketch — the targets defined here are the polished version every surface should land at.
Phase 4 builds these in packages/ui/components/dashboard/ and demos each one here with all variants and props.
- Hero headerPage title + meta + optional action.
- Section headerSection title + optional action link.
- Stat cardSingle metric: label, big number, optional delta.
- Status cardLeft-border state indicator card.
- Portal cardThe 560px tile with header + body. Canonical container for everything else.
- Portal card listKey/value rows inside a portal card. For static record data.
- Status rowHorizontal row: title, badge, timestamp. For activity / queue items.
- Data tableWide multi-column tabular data with sortable columns.
- Empty stateIllustration + heading + body + cta.
- Loading skeletonShimmer placeholders for cards/rows/tables.
- BadgeTone-aware status pill.
- ToolbarSearch + filter chips + sort, above any list.
- TabsIn-page tab switcher for multi-view sections.