fix(studio): keep the preview alive when the window is tight (#3091)

Panel sizes are reconciled against the window on every resize, with the preview holding a 360x200 floor that panels yield to before it gives.

Measured preview pane: 760px window 192 -> 433, 560px window 2 -> 516. Windows at or above 1280px are unchanged.

- fitPanels owns the who-yields decision for both axes
- panel caps are window-relative, replacing a flat 600px inspector cap
- below 860 the sidebar rails, below 700 the inspector collapses too
- auto-collapse is derived render state and never writes leftCollapsed
  (localStorage) or rightCollapsed (synced into the shareable URL)
- the rail and header toggles act on the effective state, so neither is a
  dead click that silently persists a collapse the user never asked for
This commit is contained in:
Miguel Ángel
2026-08-07 13:35:39 -07:00
committed by GitHub
parent 13f9af1cec
commit d5cc1c9c62
11 changed files with 632 additions and 66 deletions
@@ -17,9 +17,10 @@ export function PanelLayoutProvider({
rightWidth,
adjustPanelWidth,
leftCollapsed,
setLeftCollapsed,
rightCollapsed,
setRightCollapsed,
effectiveLeftCollapsed,
effectiveRightCollapsed,
rightPanelTab,
setRightPanelTab,
rightInspectorPanes,
@@ -41,9 +42,10 @@ export function PanelLayoutProvider({
rightWidth,
adjustPanelWidth,
leftCollapsed,
setLeftCollapsed,
rightCollapsed,
setRightCollapsed,
effectiveLeftCollapsed,
effectiveRightCollapsed,
rightPanelTab,
setRightPanelTab,
rightInspectorPanes,
@@ -59,9 +61,10 @@ export function PanelLayoutProvider({
rightWidth,
adjustPanelWidth,
leftCollapsed,
setLeftCollapsed,
rightCollapsed,
setRightCollapsed,
effectiveLeftCollapsed,
effectiveRightCollapsed,
rightPanelTab,
setRightPanelTab,
rightInspectorPanes,