dr-sandbox/app/web
Michael Pilosov 44de8deeeb viz: extract N-panel-agnostic module; homepage modal reuses it for single-run view
- panel-grid.js (new): exports mountPanels({host, controls, stems}) → {destroy}.
  Moved createPanel + shared control wiring + linked-hover + pad-to-match
  time mapping out of compare.js. Stem-count-agnostic; works for 1, 2, or N.
- Panel DOM is cloned from <template id=compare-panel-tpl> on each page.
- compare.js is now a ~10-line shim: parse ?a=&b=, call mountPanels.
- Per-panel color is viridis-sampled by index/N (middle viridis for N=1,
  ends-of-palette for N=2, linear lerp for N≤8, cycle at N≥9). Set as
  --panel-color on the panel element; CSS reads it for tag/time-seg.
- Homepage <dialog id=run-modal> + run-modal.js hijack the 'embedding' link
  (plain click → modal; meta/ctrl/middle-click still opens plotly HTML).
  Dialog close disposes every panel's renderer/geometry/material.
- .compare-grid → repeat(auto-fit, minmax(360px, 1fr)) handles N=1..many,
  replaces the <900px one-column media rule.
- Runs list: relabel Prefect's 'Late' state as 'Queued' — more honest
  description of what the runner is doing at the concurrency cap.
2026-04-22 16:17:01 -06:00
..
static viz: extract N-panel-agnostic module; homepage modal reuses it for single-run view 2026-04-22 16:17:01 -06:00
templates viz: extract N-panel-agnostic module; homepage modal reuses it for single-run view 2026-04-22 16:17:01 -06:00
__init__.py rename folder 2026-04-21 19:30:45 -06:00
main.py viz: extract N-panel-agnostic module; homepage modal reuses it for single-run view 2026-04-22 16:17:01 -06:00
plotly_parse.py stems: include embed_args hash in output filename + emit frames.json sidecar 2026-04-22 15:52:39 -06:00