diff --git a/src/components/EstimateBuilder.tsx b/src/components/EstimateBuilder.tsx index 83507c3..bf0ffec 100644 --- a/src/components/EstimateBuilder.tsx +++ b/src/components/EstimateBuilder.tsx @@ -219,6 +219,7 @@ const EstimateBuilder: Component = (props) => { > setIsSidebarCollapsed(!isSidebarCollapsed())} unassignedItems={unassignedItems()} grandTotals={grandTotals()} hoveredScopeId={hoveredScopeId()} diff --git a/src/components/estimate-builder/BuilderHeader.tsx b/src/components/estimate-builder/BuilderHeader.tsx index 02c5708..300b342 100644 --- a/src/components/estimate-builder/BuilderHeader.tsx +++ b/src/components/estimate-builder/BuilderHeader.tsx @@ -1,6 +1,6 @@ import { createSignal, onCleanup, Show } from 'solid-js'; import type { Component } from 'solid-js'; -import { PanelLeftOpen, PanelLeftClose, Calculator, Plus, Upload, Table, Download, History, Save, ChevronDown, MoreHorizontal } from 'lucide-solid'; +import { Calculator, Plus, Upload, Table, Download, History, Save, ChevronDown, MoreHorizontal } from 'lucide-solid'; import { appStore } from '../../store/appStore'; interface BuilderHeaderProps { @@ -34,13 +34,6 @@ export const BuilderHeader: Component = (props) => { return (
-
diff --git a/src/components/estimate-builder/BuilderSidebar.tsx b/src/components/estimate-builder/BuilderSidebar.tsx index 4f621c8..a0b027a 100644 --- a/src/components/estimate-builder/BuilderSidebar.tsx +++ b/src/components/estimate-builder/BuilderSidebar.tsx @@ -1,11 +1,12 @@ import type { Component } from 'solid-js'; import { For } from 'solid-js'; -import { Plus, ListTree, ChevronRight } from 'lucide-solid'; +import { Plus, ListTree, ChevronRight, PanelLeftOpen, PanelLeftClose } from 'lucide-solid'; import { appStore } from '../../store/appStore'; import type { EstimateItem } from '../../types'; interface BuilderSidebarProps { isCollapsed: boolean; + onToggleSidebar: () => void; unassignedItems: EstimateItem[]; grandTotals: { grandTotal: number }; hoveredScopeId: string | null; @@ -24,123 +25,149 @@ export const BuilderSidebar: Component = (props) => { return ( /* * The sidebar sits inside a CSS grid column (in EstimateBuilder.tsx). - * It fills its column completely. When the column width transitions to 0, - * the sidebar content is clipped by overflow-hidden on this element. - * This means the main content genuinely reclaims the space. + * We use overflow-visible on the aside so the toggle button can remain + * visible and clickable even when the grid column width is 0px. */