import type { ReactNode } from 'react'; import { Header } from './Header'; import { Sidebar } from './Sidebar'; import { AnnouncementBanner } from '../feedback/AnnouncementBanner'; import { GlobalPlayer } from '@/features/player/components/GlobalPlayer'; import { useQueueSync } from '@/features/player/hooks/useQueueSync'; import { useUIStore } from '@/stores/ui'; import { cn } from '@/lib/utils'; import { AstralBackground } from '../ui/AstralBackground'; interface DashboardLayoutProps { children: ReactNode; } /** * Layout principal "App Shell" - Veza Professional V2 * * Architecture: * - Body: Fixed viewport (overflow-hidden) * - Sidebar: Fixed left, z-index high * - Main: Scrollable container independent of window * - Header: Sticky top within Main */ export function DashboardLayout({ children }: DashboardLayoutProps) { const { sidebarOpen } = useUIStore(); useQueueSync(); return (