web: reach-over-time chart with playhead, slice 5 of M3

Hand-rolled SVG as decided: dashed percent grid, one cumulative curve
per panel in its accent color, end labels via the shared formatPct, and
a playhead line with per-curve dots synced to the global round. The
cumulative-at-round counting moved into lib/reach.ts so the panel stats
and the chart cannot disagree.
This commit is contained in:
Justin Visser 2026-06-10 17:39:21 +02:00
parent e9d57b2082
commit da1d86aba7
4 changed files with 191 additions and 4 deletions

View file

@ -7,6 +7,7 @@ import HeroHeadline from '@/components/HeroHeadline.vue'
import LegendRow from '@/components/LegendRow.vue'
import PanelGrid from '@/components/PanelGrid.vue'
import PlayerBar from '@/components/PlayerBar.vue'
import ReachChart from '@/components/ReachChart.vue'
import ResultsTable from '@/components/ResultsTable.vue'
import ScenarioToolbar from '@/components/ScenarioToolbar.vue'
import { usePlayback } from '@/composables/usePlayback'
@ -32,6 +33,7 @@ onMounted(async () => {
<PanelGrid />
<LegendRow />
<PlayerBar />
<ReachChart />
<ResultsTable
:panels="store.state.panels"
:results-by-panel-id="store.state.resultsByPanelId"