diff --git a/src/App.svelte b/src/App.svelte index 8b4efda..93724b6 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -34,6 +34,11 @@ e.preventDefault(); void store.save(); } + // ⌘/Ctrl+B: toggle the diagram-list sidebar. + if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'b') { + e.preventDefault(); + store.showSidebar = !store.showSidebar; + } // ⌘/Ctrl+E: jump into viewer mode and toggle the quick-edit drawer. if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'e') { e.preventDefault(); @@ -54,7 +59,9 @@
- + {#if store.showSidebar} + + {/if} {#if store.activeId}
{#if store.layout !== 'preview'} diff --git a/src/lib/components/Preview.svelte b/src/lib/components/Preview.svelte index 42a0bbe..c8cbebb 100644 --- a/src/lib/components/Preview.svelte +++ b/src/lib/components/Preview.svelte @@ -26,10 +26,12 @@ return () => clearTimeout(timer); }); - // Re-fit when the available space changes (layout / panel toggles). + // Re-fit when the available space changes (layout / panel / sidebar toggles). $effect(() => { void store.layout; void store.showGit; + void store.showOptimize; + void store.showSidebar; tick().then(fit); }); diff --git a/src/lib/components/Toolbar.svelte b/src/lib/components/Toolbar.svelte index beb375d..6250ce0 100644 --- a/src/lib/components/Toolbar.svelte +++ b/src/lib/components/Toolbar.svelte @@ -50,6 +50,12 @@
+ {#if store.activeId} diff --git a/src/lib/store.svelte.ts b/src/lib/store.svelte.ts index d71b17a..2acdd25 100644 --- a/src/lib/store.svelte.ts +++ b/src/lib/store.svelte.ts @@ -42,6 +42,8 @@ class Store { toasts = $state([]); /** Most recent successfully rendered SVG, used for export. */ lastSvg = $state(''); + /** Whether the left sidebar (diagram list) is visible. */ + showSidebar = $state(true); /** Whether the Git side panel is visible. */ showGit = $state(true); /** Whether the Optimize (Diagram Doctor) side panel is visible. */