Improve the JavaScript Playground layout so users can size each major region (file list, editor, variables, console) to match their workflow, and remember those sizes across sessions.
UX / behavior
Use Angular CDK drag handles/sliders (or CDK drag-resize patterns) on the splitters between:
Files container
Main editor
Variables panel
Console
Dragging a handle updates sizes live with sensible min/max widths/heights so the UI never collapses unusably.
On release (or debounced while dragging), persist splitter positions to localStorage (scoped key per playground or app area).
On load, restore saved dimensions; if no saved state, use current default layout.
Optional: Reset layout item can clear saved keys (may be tied separately to View menu work).
Acceptance criteria
All listed regions are resizable via CDK-based splitters.
Sizes restore after refresh and revisiting the page (same browser profile).
Graceful fallback when localStorage is missing or corrupt.
Dependencies / notes
Coordinate with the menu bar ticket if Reset view should clear these stored values.
## Goal
Improve the JavaScript Playground layout so users can **size each major region** (file list, editor, variables, console) to match their workflow, and **remember those sizes** across sessions.
## UX / behavior
- Use **Angular CDK** drag handles/sliders (or CDK drag-resize patterns) on the **splitters** between:
- Files container
- Main editor
- Variables panel
- Console
- Dragging a handle updates sizes **live** with sensible **min/max** widths/heights so the UI never collapses unusably.
- On release (or debounced while dragging), persist splitter positions to **`localStorage`** (scoped key per playground or app area).
- On load, **restore** saved dimensions; if no saved state, use current default layout.
- Optional: **Reset layout** item can clear saved keys (may be tied separately to View menu work).
## Acceptance criteria
- [ ] All listed regions are resizable via CDK-based splitters.
- [ ] Sizes restore after refresh and revisiting the page (same browser profile).
- [ ] Graceful fallback when `localStorage` is missing or corrupt.
## Dependencies / notes
- Coordinate with the menu bar ticket if **Reset view** should clear these stored values.
Closing as superseded. The JavaScript playground was rebuilt on the shared LanguageRunner (libraries/platform/language-runner) + dev-tools-javascript-runner rather than the bespoke CDK-resizable-panes + localStorage layout described here. Pane layout is now owned by the shared shell across all language playgrounds, so this JS-specific CDK-resize/persist design no longer maps to the current architecture. If resizable panes with persistence are still wanted, they should be re-scoped against the shared LanguageRunner as a new ticket.
Closing as **superseded**. The JavaScript playground was rebuilt on the shared `LanguageRunner` (`libraries/platform/language-runner`) + `dev-tools-javascript-runner` rather than the bespoke CDK-resizable-panes + localStorage layout described here. Pane layout is now owned by the shared shell across all language playgrounds, so this JS-specific CDK-resize/persist design no longer maps to the current architecture. If resizable panes with persistence are still wanted, they should be re-scoped against the shared `LanguageRunner` as a new ticket.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
Improve the JavaScript Playground layout so users can size each major region (file list, editor, variables, console) to match their workflow, and remember those sizes across sessions.
UX / behavior
localStorage(scoped key per playground or app area).Acceptance criteria
localStorageis missing or corrupt.Dependencies / notes
Closing as superseded. The JavaScript playground was rebuilt on the shared
LanguageRunner(libraries/platform/language-runner) +dev-tools-javascript-runnerrather than the bespoke CDK-resizable-panes + localStorage layout described here. Pane layout is now owned by the shared shell across all language playgrounds, so this JS-specific CDK-resize/persist design no longer maps to the current architecture. If resizable panes with persistence are still wanted, they should be re-scoped against the sharedLanguageRunneras a new ticket.