Part of the test-coverage epic (#18).
Scope:
- Mode transitions: normal highway ↔ lyrics pane ↔ viz renderer, verifying mutual exclusivity (entering one mode exits the others cleanly).
recreatePanelHighway() — discarding the previous highway instance before a new renderer takes over.
- Canvas context-type lock/swap behavior when switching 2D ↔ WebGL viz renderers mid-session.
- Viz-mode arrangement switching (
panel.select.onchange in-place viz switch branch).
- Per-panel viz popover lifecycle:
_showVizControls/_hideVizControls, rebuild-on-open behavior.
Part of the test-coverage epic (#18).
Scope:
recreatePanelHighway()— discarding the previous highway instance before a new renderer takes over.panel.select.onchangein-place viz switch branch)._showVizControls/_hideVizControls, rebuild-on-open behavior.