Three user-facing fixes: 1. Outlet was getting pushed below the tank floor by the top-down nudge because its ideal y is already near the bottom. Now outflowLevel is PINNED at its proportional y (like basinHeight is pinned at the rim) and a second bottom-up pass pushes non-pinned items upward from the outlet anchor. Result: outlet stays near the tank floor, dryRunLevel sits right above it, the rest of the stack stays readable. Two anchors, two passes. 2. Zone labels mirrored from the wiki basin-model drawio: - "Spare volume before spilling" (overflowLevel ↔ maxLevel) - "Sewage + tank buffer" (maxLevel ↔ startLevel) - "Tank buffer" (startLevel ↔ minLevel) - "Tank buffer" (minLevel ↔ dryRunLevel) - "Dead volume" (outflowLevel ↔ floor) Each sits at the midpoint of its pair of nudged thresholds and hides when the gap between them is too small to read (< 14 px). 3. basinVolume moved into the SVG as a pinned input above the tank rim (alongside basinHeight), replacing the separate form row. One editor, one diagram — the total volume belongs with the geometry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
31 KiB
31 KiB