ui: tidy sidebar tree indent and consolidate sidebar toggles into filter bar

Folder tree now indents 20px per level (chevron width + gap) so a child's
chevron column lines up under its parent's label, and depth-1 rows nest
under the section eyebrow instead of starting flush with it. Spacer for
leaf rows matches the chevron button footprint so rows align regardless
of expandability.

Sidebar open/close buttons (previously split between TopBar and each
panel header) collapse into two toggles at the ends of the FilterBar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-14 22:31:10 +02:00
parent 574d71371f
commit a6eb406052
6 changed files with 74 additions and 88 deletions

View File

@@ -56,12 +56,7 @@ function MainApp() {
return (
<div className="flex flex-col h-screen bg-bg text-text">
<TopBar
leftSidebarOpen={leftSidebarOpen}
rightSidebarOpen={showRightSidebar}
onExpandLeft={() => setLeftSidebarOpen(true)}
onExpandRight={() => setRightSidebarOpen(true)}
/>
<TopBar />
<div className="flex flex-1 overflow-hidden">
{/* Left Sidebar */}
@@ -70,9 +65,7 @@ function MainApp() {
leftSidebarOpen ? 'w-60' : 'w-0'
} overflow-hidden border-r border-border bg-surface`}
>
<LeftSidebar
onCollapse={() => setLeftSidebarOpen(false)}
/>
<LeftSidebar />
</div>
{/* Main column — filter bar, discard bar, timeline. Lives to the
@@ -80,7 +73,14 @@ function MainApp() {
* across the sidebar. relative so the KeyboardHints overlay
* centers against this column, not the viewport. */}
<div className="relative flex min-w-0 flex-1 flex-col">
{!isSettings && <FilterBar />}
{!isSettings && (
<FilterBar
leftSidebarOpen={leftSidebarOpen}
rightSidebarOpen={showRightSidebar}
onToggleLeftSidebar={() => setLeftSidebarOpen(!leftSidebarOpen)}
onToggleRightSidebar={() => setRightSidebarOpen(!rightSidebarOpen)}
/>
)}
{!isSettings && <DiscardActionBar />}
<div className="flex-1 overflow-auto">
{currentSection === 'settings' ? (
@@ -110,7 +110,7 @@ function MainApp() {
showRightSidebar ? 'w-72' : 'w-0'
} overflow-hidden border-l border-border bg-surface`}
>
<RightSidebar onCollapse={() => setRightSidebarOpen(false)} />
<RightSidebar />
</div>
</div>