Keyboard binding registration concern extracted from
input/input-handler.ts. The entry point + types live here; the
per-context binding bodies live as siblings
(navigation-bindings.ts, fly-bindings.ts).
The function takes everything it needs as a deps object.
Optional panels (scale bar, colormap legend, overlay manager,
recording panel, layers panel) are passed as getter functions so
the bindings always read the live reference at dispatch time —
the InputHandler may wire them in after this function runs.
Keyboard binding registration concern extracted from
input/input-handler.ts. The entry point + types live here; the per-context binding bodies live as siblings (navigation-bindings.ts,fly-bindings.ts).The function takes everything it needs as a deps object. Optional panels (scale bar, colormap legend, overlay manager, recording panel, layers panel) are passed as getter functions so the bindings always read the live reference at dispatch time — the InputHandler may wire them in after this function runs.