From 24e960b2131c3b3e97b24e9be5d4989d8c226170 Mon Sep 17 00:00:00 2001 From: Kiro Agent <244629292+kiro-agent@users.noreply.github.com> Date: Wed, 19 Aug 2026 23:58:35 +0000 Subject: [PATCH 1/5] feat(configurator): mobile category drawer replaces the cramped icon rail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On mobile the 56px unlabelled icon rail ate horizontal space and forced users to decode glyphs. It's now desktop-only; on mobile the panel heading is a tappable category trigger (chevron) that opens a full, labelled, grouped drawer — the same information architecture as the desktop rail. - SidebarNav gains an `expanded` prop that forces the labelled layout at all widths; the drawer renders `` so there's one source of truth for the nav items/groups/badges. - App: rail is `hidden md:flex`; a new `navDrawerOpen` overlay (md:hidden) slides in the labelled nav with a backdrop, closes on select / backdrop / Escape, and keeps context (the heading always shows the current category; the drawer highlights it). Selecting also snaps the mobile view back to Controls. Desktop is unchanged. check, lint, 286 unit tests and shell e2e pass; screenshot + e2e verified the drawer opens from the heading, lists all groups, switches domain and closes, while desktop keeps the rail. --- configurator/src/App.svelte | 52 ++++++++++++++++--- .../src/components/shell/SidebarNav.svelte | 39 ++++++++------ 2 files changed, 70 insertions(+), 21 deletions(-) diff --git a/configurator/src/App.svelte b/configurator/src/App.svelte index a53099f8..e0d3d79c 100644 --- a/configurator/src/App.svelte +++ b/configurator/src/App.svelte @@ -1,6 +1,6 @@