From eea9fc20667f7fefea0578c25aabe3b1d2a1a08a Mon Sep 17 00:00:00 2001 From: Thomas Kpenou Date: Thu, 25 Jun 2026 13:31:23 -0400 Subject: [PATCH] feat(ui): resizable scripts sidebar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drag the handle on the sidebar's right edge to set its width (clamped 220–600px); double-click the handle to reset to the default 300px. The width is persisted to localStorage and restored on load. Disabled in the narrow/overlay layout. Implemented in the shared AppLayout: the sidebar width is data-driven (inline style) instead of a fixed CSS width, with a thin resizer handle driving mousemove. Adds unit tests for clamping, persistence, reset and rendering. Co-Authored-By: Claude Opus 4.8 --- README.md | 6 + web-src/src/common/components/AppLayout.vue | 105 ++++++++++++++++- .../unit/common/AppLayout_resize_test.js | 110 ++++++++++++++++++ 3 files changed, 217 insertions(+), 4 deletions(-) create mode 100644 web-src/tests/unit/common/AppLayout_resize_test.js diff --git a/README.md b/README.md index d864b13d..011a7b28 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,12 @@ ## What's new in this fork +### 2026-06-25 — Resizable sidebar + +The scripts sidebar can now be resized: drag the handle on its right edge to set +the width (between 220 and 600 px), or double-click the handle to reset it to the +default 300 px. The chosen width is persisted in `localStorage`. + ### 2026-06-25 — Search in script output The output panel now has a find bar (search icon in the "Output" header): type to diff --git a/web-src/src/common/components/AppLayout.vue b/web-src/src/common/components/AppLayout.vue index 8f6d69ea..aa13b708 100644 --- a/web-src/src/common/components/AppLayout.vue +++ b/web-src/src/common/components/AppLayout.vue @@ -1,8 +1,14 @@