Report: drop Stage 0 lane, flip 5→1 axis, fix Actual label clipping

DateTimeline now skips section rank 0 (intake) and renders stage lanes
top-to-bottom 5→1, matching how the framework actually numbers stages.

MembershipChart's latest-Actual label was placed at the circle's
x + 6, which overflowed the SVG when the most-recent point landed near
the right padding. Anchor it to xOf(maxT) - 4 with textAnchor="end",
mirroring the Goal label so both endpoint labels stay inside the chart.
This commit is contained in:
Joel Brock
2026-06-11 13:39:42 -07:00
parent 2dc8ec4e6d
commit 8dfbbea0ba
2 changed files with 15 additions and 11 deletions
+5 -2
View File
@@ -281,11 +281,14 @@ export function MembershipChart({
/>
))}
{/* Most-recent point value labels */}
{/* Most-recent point value labels. Both anchor to the chart's right
edge so the carry-forward endpoint label stays inside the viewBox
instead of overflowing past the right padding. */}
{actualCoords.length > 0 && (
<text
x={actualCoords[actualCoords.length - 1].x + 6}
x={xOf(maxT) - 4}
y={actualCoords[actualCoords.length - 1].y - 6}
textAnchor="end"
className="fill-leaf-800 text-[10px] font-medium tabular-nums"
>
{numberFmt.format(actualCoords[actualCoords.length - 1].v)}