From 40ad9332e60f66f61c8f423b26c1255ec7919acf Mon Sep 17 00:00:00 2001 From: Matthew Valancy Date: Thu, 18 Jun 2026 10:14:15 -0700 Subject: [PATCH] =?UTF-8?q?LAYOUT-6:=20fix=20layout-toggle=20overlap=20?= =?UTF-8?q?=E2=80=94=20move=20into=20the=20graph=20control=20cluster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The #30 hierarchical-layout toggle was a fixed bottom-left button (createPortal), which overlapped the left sidebar's Debug/Chat Console toggle when the sidebar was collapsed (live audit: 40% overlap @1024/1280/1920). Move it into the graph's absolute control cluster, stacked under the zoom-extents button (desktop-only, matching that button's styling), so it's positioned relative to the graph area — never over the sidebar. Caught by the GraphDone-Cloud live overlap audit; web typecheck clean; THE GATE 5/5. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/web/src/pages/Workspace.tsx | 32 ++++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/web/src/pages/Workspace.tsx b/packages/web/src/pages/Workspace.tsx index 2d0524ce..d07a8aec 100644 --- a/packages/web/src/pages/Workspace.tsx +++ b/packages/web/src/pages/Workspace.tsx @@ -460,6 +460,22 @@ export function Workspace() { > + {/* Layout mode (desktop): force (organic) vs hierarchical (dependency + layers). Lives in the graph control cluster under zoom-extents, so + it never overlaps the left sidebar's console toggle. */} + {inspectorNode && (
setInspectorNode(null)} /> @@ -514,22 +530,6 @@ export function Workspace() { document.body )} - {/* Layout Mode Toggle - force (organic) vs hierarchical (dependency layers) */} - {viewMode === 'graph' && currentGraph && !isMobile && createPortal( - , - document.body - )} - {/* Mini-Map Toggle Button - Shows when mini-map is hidden (desktop only) */} {viewMode === 'graph' && currentGraph && !showMiniMap && !isMobile && createPortal(