Let users swap the Files side of the layout with the area that holds Variables and Console (i.e. alternate which stack lives on which side or primary column), matching common IDE patterns.
UX / behavior
Provide a clear action (e.g. View → Swap panes once the new menu exists, or a temporary control until then) that toggles between two layout arrangements:
Default: files in current position vs. variables/console in current position.
Swapped: files and variables/console exchange placement.
Persist swap preference in localStorage alongside splitter sizes (same storage story as the CDK slider ticket).
Ensure Start debugging / run and editor focus still target the correct sources after swap (relate to any bugs where stale lesson/sandbox model is used).
Acceptance criteria
One action reliably toggles file column vs variables+console column placement.
Preference survives reload.
No broken bindings to lesson vs sandbox content after layout change.
Related
Pairs with CDK resizable panes ticket for splitter persistence.
Top menu ticket exposes View → Swap panes.
## Goal
Let users **swap** the **Files** side of the layout with the area that holds **Variables** and **Console** (i.e. alternate which stack lives on which side or primary column), matching common IDE patterns.
## UX / behavior
- Provide a clear action (e.g. **View → Swap panes** once the new menu exists, or a temporary control until then) that **toggles** between two layout arrangements:
- Default: files in current position vs. variables/console in current position.
- Swapped: files and variables/console **exchange** placement.
- Persist swap preference in **`localStorage`** alongside splitter sizes (same storage story as the CDK slider ticket).
- Ensure **Start debugging / run** and **editor focus** still target the correct sources after swap (relate to any bugs where stale lesson/sandbox model is used).
## Acceptance criteria
- [ ] One action reliably toggles file column vs variables+console column placement.
- [ ] Preference survives reload.
- [ ] No broken bindings to lesson vs sandbox content after layout change.
## Related
- Pairs with **CDK resizable panes** ticket for splitter persistence.
- **Top menu** ticket exposes **View → Swap panes**.
Closing as superseded. The JavaScript playground was rebuilt on the shared LanguageRunner (libraries/platform/language-runner) + dev-tools-javascript-runner rather than the bespoke layout described here (swap Files panel with the Variables/Console column + persist). Panel composition is now governed by the shared shell across all language playgrounds, so this JS-specific column-swap/persist design no longer maps to the current architecture. If the swap/persist behaviour is still wanted, it 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 layout described here (swap Files panel with the Variables/Console column + persist). Panel composition is now governed by the shared shell across all language playgrounds, so this JS-specific column-swap/persist design no longer maps to the current architecture. If the swap/persist behaviour is still wanted, it 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
Let users swap the Files side of the layout with the area that holds Variables and Console (i.e. alternate which stack lives on which side or primary column), matching common IDE patterns.
UX / behavior
localStoragealongside splitter sizes (same storage story as the CDK slider ticket).Acceptance criteria
Related
Closing as superseded. The JavaScript playground was rebuilt on the shared
LanguageRunner(libraries/platform/language-runner) +dev-tools-javascript-runnerrather than the bespoke layout described here (swap Files panel with the Variables/Console column + persist). Panel composition is now governed by the shared shell across all language playgrounds, so this JS-specific column-swap/persist design no longer maps to the current architecture. If the swap/persist behaviour is still wanted, it should be re-scoped against the sharedLanguageRunneras a new ticket.