Next dashboard components
Next dashboards (dashboard-v2 node, DashboardVersion="Next", ui/dashboard) bind widgets through v2 layout (components.rows) and the Heat data service ($heat-dataservice channels). Configuration and payloads differ from Legacy components even when the same React component renders underneath.
Concepts (realms, channels, direct ingestion): Next data service and direct ingestion.
How wiring works
- Runners publish
$heat-dataservice(see dashboard-v2 upstream contract and dataservice concepts). - Layout rows set
"component": "<ComponentId>"(e.g.MapDisplay) plus aconfigurationblock (channels, titles, widget-specific options). - Data-service wrappers (e.g.
MapDisplayDS) load channel data at playback time. - Widget config (e.g.
mapConfig,composableChartItem) usually lives in layoutconfiguration, not in the channel payload.
Component ids in layout are not the same as Legacy mount ids in all cases, but many names match (e.g. MapDisplay).
Component manifest (build-time)
Building ui/dashboard runs npm run build:manifest, which writes dist/dashboard-component-manifest.json. Source of truth: ui/dashboard/src/dashboard-manifest/registry.ts.
Dataservice migration
Full status table, reference JSON paths, and partial/layout-only notes: Dataservice migration status.
All components (14)
| Component | Migration | Doc |
|---|---|---|
| BarChart | migrated | bar-chart |
| CircuitStats | migrated | circuit-stats |
| CognitiveLoad | migrated | cognitive-load |
| ComposableChart | migrated | composable-chart |
| CustomRenderer | layout-only | custom-renderer |
| EyeTracking | migrated | eye-tracking |
| FlightPath | migrated | flight-path |
| ImpactHeatmap | migrated | impact-heatmap |
| LeaderBoard | migrated | leader-board |
| MapDisplay | migrated | map-display |
| ProgressScore | migrated | progress-score |
| ResponseTime | migrated | response-time |
| StatsSummary | migrated | stats-summary |
| TimelineChart | partial | timeline-chart |
Reference JSON (maximal examples): tools/arbex/reference/next/<ComponentId>.json
Arbex RAG (per-widget): tools/arbex/rag/reference/components/
Authoring new pages
Copy _page-template. Document layout configuration, channel shape, and payload fields separately.