+ );
+}
diff --git a/src/components/refactored/sidebar/types/index.ts b/src/components/refactored/sidebar/types/index.ts
new file mode 100644
index 00000000..b02dac8c
--- /dev/null
+++ b/src/components/refactored/sidebar/types/index.ts
@@ -0,0 +1 @@
+export type SearchMode = 'projects' | 'conversations';
\ No newline at end of file
diff --git a/src/components/refactored/sidebar/view/Sidebar.tsx b/src/components/refactored/sidebar/view/Sidebar.tsx
new file mode 100644
index 00000000..74e197d7
--- /dev/null
+++ b/src/components/refactored/sidebar/view/Sidebar.tsx
@@ -0,0 +1,60 @@
+import { useState } from 'react';
+import { PanelRightOpen } from 'lucide-react';
+import { Button } from '@/shared/view/ui';
+import { cn } from '@/lib/utils';
+import SidebarHeader from '@/components/refactored/sidebar/view/SidebarHeader.js';
+
+
+export function Sidebar() {
+ const [isCollapsed, setIsCollapsed] = useState(false);
+
+ return (
+ <>
+ {/* Mobile Backdrop Overlay - allows tapping outside to close */}
+ {!isCollapsed && (
+
setIsCollapsed(true)}
+ />
+ )}
+
+
+
+ {/* Collapsed view handle - Only show on desktop since mobile hides it completely behind a toggle usually, but let's keep it consistent or standard.
+ Actually, on mobile, if it's completely hidden, we need a way to open it from the main content. For now we show the small bar if it's flex,
+ but since we made it fixed, let's keep the small bar fixed too. */}
+ {isCollapsed && (
+
+ )}
+ >
+ );
+}
diff --git a/src/components/refactored/sidebar/view/SidebarHeader.tsx b/src/components/refactored/sidebar/view/SidebarHeader.tsx
new file mode 100644
index 00000000..99f65fef
--- /dev/null
+++ b/src/components/refactored/sidebar/view/SidebarHeader.tsx
@@ -0,0 +1,133 @@
+import { useState } from 'react';
+import { FolderPlus, Plus, RefreshCw, PanelLeftClose } from 'lucide-react';
+import type { SearchMode } from '../types';
+import { SidebarSearch } from './SidebarSearch';
+import { Button } from '@/shared/view/ui';
+import { cn } from '@/lib/utils';
+import { IS_PLATFORM } from '@/constants/config';
+
+type SidebarHeaderProps = {
+ isCollapsed: boolean;
+ onToggleCollapse: () => void;
+};
+
+export default function SidebarHeader({ isCollapsed, onToggleCollapse }: SidebarHeaderProps) {
+ // UI States declared here to avoid prop drilling as per instructions
+ const [searchMode, setSearchMode] = useState('projects');
+ const [searchFilter, setSearchFilter] = useState('');
+ const [isRefreshing, setIsRefreshing] = useState(false);
+
+ const handleRefresh = () => {
+ setIsRefreshing(true);
+ setTimeout(() => setIsRefreshing(false), 1000);
+ };
+
+ const LogoBlock = () => (
+