diff --git a/app/web/static/compare.js b/app/web/static/compare.js index 6b808bd..33d8a44 100644 --- a/app/web/static/compare.js +++ b/app/web/static/compare.js @@ -1,7 +1,7 @@ // compare.js — thin shim that parses ?stem=…&stem=… (legacy ?a=&b=) and // hands off to panel-grid.js. -import { mountPanels } from './panel-grid.js?v=5'; +import { mountPanels } from './panel-grid.js?v=6'; const params = new URLSearchParams(window.location.search); let stems = params.getAll('stem').filter(Boolean); diff --git a/app/web/static/panel-grid.js b/app/web/static/panel-grid.js index ee67a19..7b60e80 100644 --- a/app/web/static/panel-grid.js +++ b/app/web/static/panel-grid.js @@ -567,6 +567,9 @@ export function mountPanels({ host, controls, stems }) { // Reset controls to a clean state (they may be reused across opens). if (scrub) scrub.value = '0'; if (playBtn) { playBtn.textContent = '▶'; playBtn.setAttribute('aria-label', 'play'); } + // Axes dropdown is meaningless for a single-panel view (nothing to lock + // against; aspect is fixed by the modal dialog's own sizing). + if (syncSel) syncSel.disabled = total < 2; // Parallel fetch; each panel's error is independent. const ready = Promise.allSettled(stems.map(fetchFrames)).then((results) => { diff --git a/app/web/static/run-modal.js b/app/web/static/run-modal.js index 29b0b39..6d48620 100644 --- a/app/web/static/run-modal.js +++ b/app/web/static/run-modal.js @@ -1,7 +1,7 @@ // run-modal.js — homepage click-hijack for embedding links. Opens a // that renders the run's embedding via panel-grid.js. -import { mountPanels } from './panel-grid.js?v=5'; +import { mountPanels } from './panel-grid.js?v=6'; const dialog = document.getElementById('run-modal'); const host = document.getElementById('modal-panel-host'); diff --git a/app/web/static/style.css b/app/web/static/style.css index abae981..eb9ce39 100644 --- a/app/web/static/style.css +++ b/app/web/static/style.css @@ -1695,6 +1695,9 @@ button.submit:disabled { background: var(--faint); border-color: var(--faint); c align-items: center; gap: 0.35rem; } +/* Hide a wrap entirely when its select is disabled (e.g., axes on a + single-panel modal view). */ +.compare-controls label:has(select:disabled) { display: none; } .compare-controls .cc-lbl { color: var(--faint); text-transform: lowercase; diff --git a/app/web/templates/compare.html b/app/web/templates/compare.html index e200d3f..073118c 100644 --- a/app/web/templates/compare.html +++ b/app/web/templates/compare.html @@ -102,7 +102,7 @@ - + diff --git a/app/web/templates/index.html b/app/web/templates/index.html index 011c8a2..1e2d32f 100644 --- a/app/web/templates/index.html +++ b/app/web/templates/index.html @@ -4,7 +4,7 @@ embedding notebook - + - +