diff --git a/src/App.tsx b/src/App.tsx index 779b28e..7a01c3f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -38,6 +38,7 @@ function App() { const isMobile = useIsMobile(); const [showPassportLogin, setShowPassportLogin] = useState(false); + const [consoleCollapsed, setConsoleCollapsed] = useState(isMobile); const [user, setUser] = useState<{ login: string; avatarUrl: string; email: string } | null>(() => { const stored = typeof window !== 'undefined' ? localStorage.getItem('aethex-user') : null; return stored ? JSON.parse(stored) : null; @@ -446,7 +447,10 @@ end)`, - + setConsoleCollapsed(!consoleCollapsed)} + /> )} {/* Unified feature tabs for all major panels */} diff --git a/src/components/FileTabs.tsx b/src/components/FileTabs.tsx index a680bbd..23258e9 100644 --- a/src/components/FileTabs.tsx +++ b/src/components/FileTabs.tsx @@ -19,12 +19,12 @@ export function FileTabs({ if (openFiles.length === 0) return null; return ( -
-
+
+
{openFiles.map((file) => (
onFileSelect(file)} title={file.name} > - {file.name} + {file.name}
))} diff --git a/src/components/FileTree.tsx b/src/components/FileTree.tsx index 6335d93..1475c40 100644 --- a/src/components/FileTree.tsx +++ b/src/components/FileTree.tsx @@ -153,7 +153,7 @@ export function FileTree({ onDragLeave={handleDragLeave} onDrop={(e) => handleDrop(e, node)} onDragEnd={handleDragEnd} - className={`flex items-center gap-1 px-2 py-1 hover:bg-muted/60 cursor-pointer group rounded-sm transition-colors ${ + className={`flex items-center gap-1 px-2 py-1.5 md:py-1 hover:bg-muted/60 cursor-pointer group rounded-sm transition-colors touch-manipulation ${ isSelected ? 'bg-accent/30 text-accent font-semibold' : 'text-foreground' } ${isDragging ? 'opacity-50' : ''} ${isDropTarget && node.type === 'folder' ? 'bg-blue-500/20 border-2 border-blue-500 border-dashed' : ''}`} style={{ paddingLeft: `${depth * 10 + 8}px` }} @@ -167,12 +167,12 @@ export function FileTree({ > {node.type === 'folder' ? ( isExpanded ? ( - + ) : ( - + ) ) : ( - + )} {isEditing ? ( @@ -197,9 +197,9 @@ export function FileTree({ diff --git a/src/components/Toolbar.tsx b/src/components/Toolbar.tsx index 0684c7e..ffe776c 100644 --- a/src/components/Toolbar.tsx +++ b/src/components/Toolbar.tsx @@ -8,7 +8,7 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; -import { Copy, FileCode, Download, Info, Play, FolderPlus, User, SignOut } from '@phosphor-icons/react'; +import { Copy, FileCode, Download, Info, Play, FolderPlus, User, SignOut, List } from '@phosphor-icons/react'; import { toast } from 'sonner'; import { useState, useEffect } from 'react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog'; @@ -56,92 +56,149 @@ export function Toolbar({ code, onTemplatesClick, onPreviewClick, onNewProjectCl return ( <> -
-

+
+

AeThex

Studio
+ {/* Desktop: Show all buttons */} - - - - - New Project - +
+ + + + + New Project + - - - - - Preview - + + + + + Preview + - - - - - Templates - + + + + + Templates + - - - - - Copy - + + + + + Copy + - - - - - Export - + + + + + Export + - - - - - About - + + + + + About + +
+ + {/* Mobile: Hamburger menu with essential actions */} +
+ + + + + Preview + + + + + + + + + + New Project + + + + Templates + + + + Copy Code + + + + Export + + + setShowInfo(true)}> + + About + + + +
-