Shared scaffolding for the settings flyouts — the overlays opened by the
mode rail's flyout modes: ViewFlyout (grid + canvas behaviour) and
PhysicsFlyout (layout + simulation). The base owns the panel element,
the shared pvt-flyout-* chrome (header, section labels, switch rows) and the
binding to ModeStore — a panel is open exactly while its own mode is
the active one, so the flyouts exclude each other for free.
A subclass declares the mode it answers to, renders its controls in
template and wires them in wire. A subclass overriding
onGraphReady must call super.onGraphReady(): that's where switch rows get
their initial state (graph.simulation only exists by then).
Shared scaffolding for the settings flyouts — the overlays opened by the mode rail's flyout modes: ViewFlyout (grid + canvas behaviour) and PhysicsFlyout (layout + simulation). The base owns the panel element, the shared
pvt-flyout-*chrome (header, section labels, switch rows) and the binding to ModeStore — a panel isopenexactly while its own mode is the active one, so the flyouts exclude each other for free.A subclass declares the mode it answers to, renders its controls in template and wires them in wire. A subclass overriding
onGraphReadymust callsuper.onGraphReady(): that's where switch rows get their initial state (graph.simulationonly exists by then).