feat(http-frontend): move spectrum above controls, add zoom/pan/tooltip

Spectrum panel is now placed above the freq/mode/jog row, spanning the
full card width. Key improvements:

- Scroll wheel zooms in/out at the cursor position (up to 64x); double-
  click resets to full bandwidth view.
- Mouse drag pans the visible window; click-to-tune is suppressed when a
  drag has occurred.
- Touch pinch-to-zoom and single-finger drag-to-pan supported.
- Hover tooltip shows the frequency under the cursor, formatted to the
  currently selected unit (MHz/kHz/Hz, matching the jog-step selection).
- Frequency axis labels update to reflect the zoomed visible range.
- Canvas height increased to 160 px; axis bar styled with card bg.
- A small hint line below the panel explains the controls.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
2026-02-27 21:49:07 +01:00
parent 952961b9fd
commit 547f253837
3 changed files with 292 additions and 100 deletions
@@ -58,6 +58,14 @@
<div id="loading-sub" style="color:#9aa4b5;"></div>
</div>
<div id="content" style="display:none;">
<div id="spectrum-panel" style="display:none;">
<div class="spectrum-wrap">
<canvas id="spectrum-canvas"></canvas>
<div id="spectrum-tooltip"></div>
<div id="spectrum-freq-axis"></div>
</div>
<div id="spectrum-hint">Scroll to zoom &middot; Drag to pan &middot; Double-click to reset</div>
</div>
<div class="status">
<div class="full-row freq-row">
<div class="inline freq-inline">
@@ -158,13 +166,6 @@
</label>
</div>
</div>
<div id="spectrum-panel" style="display:none;">
<div class="label"><span>Spectrum</span></div>
<div class="spectrum-wrap">
<canvas id="spectrum-canvas"></canvas>
<div id="spectrum-freq-axis"></div>
</div>
</div>
</div>
<div class="full-row label-below-row" id="audio-row">
<div class="label"><span>Audio</span></div>