diff --git a/app/globals.css b/app/globals.css index 7ad08e1..12b4b32 100644 --- a/app/globals.css +++ b/app/globals.css @@ -305,3 +305,39 @@ body { animation: none; } } + +/* ───────────────────────────────────────────────────────────────────────── + Electron merged chrome (owner, 2026-09-17). The system title bar is + hidden (titleBarStyle: "hiddenInset" in electron/main.cjs); the app's + own 60px header bands are the drag surface. Everything here is inert + in the plain browser — it keys off , which + SidebarProvider sets after mount when it detects the Electron shell. + + - .lh-drag window-drag region (must sit on pointer-receiving els) + - .lh-no-drag carve-out for interactive elements inside a drag band + - .lh-lights-gutter the sidebar LH band's traffic-light gutter: lights + end at x≈68, the wordmark starts at 80px (5rem) + - .lh-closed-toggle same gutter for the sidebar toggle when the sidebar + is closed — the lights are static, the toggle moves + - .lh-float-drag the home header strip floats pointer-events-none over + the graph; only in Electron does it claim events and + become the drag surface for that page + ───────────────────────────────────────────────────────────────────────── */ +.lh-electron .lh-drag { + -webkit-app-region: drag; +} +.lh-electron .lh-no-drag { + -webkit-app-region: no-drag; +} +/* 92px = measured lights' right edge (~75pt) + the lights' own 16px + inset from the window edge — comfortable, symmetric air (owner). */ +.lh-electron .lh-lights-gutter { + padding-left: 92px; +} +.lh-electron .lh-closed-toggle { + margin-left: 92px; +} +.lh-electron .lh-float-drag { + pointer-events: auto; + -webkit-app-region: drag; +} diff --git a/components/chat.tsx b/components/chat.tsx index 2594701..446119c 100644 --- a/components/chat.tsx +++ b/components/chat.tsx @@ -637,7 +637,7 @@ export function Chat({ 60px is an ALIGNMENT, not just a size: it equals the sidebar's LH wordmark band, so the header's border-b continues that band's bottom edge as one line across the app (owner, round 6). */} -
+
{renaming ? ( void commitRename(titleDraft)} spellCheck={false} aria-label="Session title" - className="min-w-0 flex-1 bg-transparent font-title text-3xl tracking-tight caret-current outline-none" + className="lh-no-drag min-w-0 flex-1 bg-transparent font-title text-3xl tracking-tight caret-current outline-none" /> ) : ( + <> + + {/* flex-1 spacer: keeps the chips at the right edge AND stays a + drag surface (no carve-out) — the freed bar is grippable. */} +