[object Object]

← back to Quadrille Showroom

Hamburger dock: stow all panels on load + launch each as movable modal; hide first-person avatar in framed views

3b94ca1555500e6a56936ed76225042acffda697 · 2026-06-29 15:30:40 -0700 · steve@designerwallcoverings.com

Files touched

Diff

commit 3b94ca1555500e6a56936ed76225042acffda697
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date:   Mon Jun 29 15:30:40 2026 -0700

    Hamburger dock: stow all panels on load + launch each as movable modal; hide first-person avatar in framed views
---
 5x/sweep-1.md          | 14 ++++++++++++++
 public/js/dock.js      | 10 +++++++---
 public/js/viewmodes.js |  4 ++++
 public/showroom.html   |  3 +++
 4 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/5x/sweep-1.md b/5x/sweep-1.md
new file mode 100644
index 0000000..1fe0a0a
--- /dev/null
+++ b/5x/sweep-1.md
@@ -0,0 +1,14 @@
+# /5x sweep 1 — http://127.0.0.1:7690/
+
+## Six-way
+- M1 HTTP contract: PASS (note: no-creds→200, localhost auth-exempt — not a defect)
+- M2 headless render: PASS (17KB screenshot)
+- M3 automation E2E: **FAIL** — `#guided-bar` resolved HIDDEN 21× (waitForSelector visible timeout 8s)
+- B4 Chrome / B5 Safari / B6 Firefox: PASS (visual open)
+
+## Clickthrough
+- sort-select selectOption('natural'|'newest'|'title'|'sku'|'book'): **FAIL** — 30s timeout each
+
+## To diagnose before fixing (real fix only)
+1. Is `#guided-bar` *supposed* to be visible on load, or hidden until guided focus? (app bug vs wrong ready-selector)
+2. Is the sort `<select>` hidden, or do its real option values differ from the clickthrough's guesses?
diff --git a/public/js/dock.js b/public/js/dock.js
index e0d861f..f0fe1a9 100644
--- a/public/js/dock.js
+++ b/public/js/dock.js
@@ -46,10 +46,14 @@
     { sel: '#btn-fullscreen',          label: 'Fullscreen' }
   ];
 
-  // --- STOW-ONLY: passive overlays/clusters hidden for a clean screen --------
+  // --- STOW-ONLY: passive chrome hidden for a clean "just a hamburger" screen --
   var STOW_ONLY = [
-    '.top-center', '.top-right',          // top-toolbar clusters (folded into menu)
-    '#guided-instruction', '#guided-title', '#bottom-bar'  // bottom chatter
+    '#top-bar',                                   // whole top toolbar (tools folded into menu)
+    '#guided-instruction', '#guided-title',       // guided-mode overlays
+    '#bottom-bar', '#wing-caption', '#now-viewing',// bottom caption / navigator chatter
+    '#minimap',                                   // spatial minimap (explore aid)
+    '#welcome-tip',                               // "how to browse" tip card
+    '#chosen-tray', '#sample-tray'                // side trays (re-appear via their own features)
   ];
 
   var Z_BASE = 5000, zTop = Z_BASE;       // modal stacking
diff --git a/public/js/viewmodes.js b/public/js/viewmodes.js
index 49bd8b7..d243836 100644
--- a/public/js/viewmodes.js
+++ b/public/js/viewmodes.js
@@ -381,6 +381,10 @@ function boot() {
     const modeFrame = m.frame || null;
     QH.frameHook = (dt) => { if (modeFrame) { try { modeFrame(dt); } catch (e) {} } perfTick(dt); };
     try { m.enter(); } catch (e) { console.warn('view-mode enter failed', key, e); }
+    // First-person body shows ONLY in Walk-Through. Every framed view (Hero/Angled/Orbit/
+    // Gallery/Top-Down/…) frames the wing bank from a spot that would otherwise look
+    // straight through the avatar standing at room centre — so hide it for those.
+    if (QH.setAvatarVisible) QH.setAvatarVisible(key === 'walk');
     if (QH.requestShadowUpdate) QH.requestShadowUpdate(20); // mode changed geometry/visibility → rebake shadows
     // Update panel UI
     document.querySelectorAll('#vm-view .vm-chip').forEach(c => c.classList.toggle('active', c.dataset.mode === key));
diff --git a/public/showroom.html b/public/showroom.html
index 6fb9c5b..c3e700c 100644
--- a/public/showroom.html
+++ b/public/showroom.html
@@ -399,5 +399,8 @@
   <script src="/js/viewmodes.js"></script>
   <script src="/js/versions.js"></script>
   <script src="/js/ageview.js"></script>
+  <!-- Hamburger dock: stows every panel on load, re-launches each as a movable modal -->
+  <script src="/js/modal-rig.js"></script>
+  <script src="/js/dock.js"></script>
 </body>
 </html>

← a785d8a Center book starts open at 20 degrees (was 65)  ·  back to Quadrille Showroom  ·  Next/Previous step one pattern across all 883 + keep pager v d598030 →