/** * Application Layout Component * Main layout wrapper that combines sidebar, header, breadcrumbs, and content area * Provides the standard application shell for authenticated pages */ 'use client'; import { ReactNode } from 'react'; import { cn } from '@/lib/utils'; import { Sidebar } from './Sidebar'; import { AppHeader } from './AppHeader'; import { AppBreadcrumbs, type BreadcrumbItem } from './AppBreadcrumbs'; interface Project { id: string; slug: string; name: string; } interface AppLayoutProps { /** Page content */ children: ReactNode; /** Current project (for project-specific pages) */ currentProject?: Project; /** List of available projects */ projects?: Project[]; /** Callback when project is changed */ onProjectChange?: (projectSlug: string) => void; /** Custom breadcrumb items (overrides auto-generation) */ breadcrumbs?: BreadcrumbItem[]; /** Hide breadcrumbs */ hideBreadcrumbs?: boolean; /** Hide sidebar */ hideSidebar?: boolean; /** Additional className for main content area */ className?: string; /** Additional className for the outer wrapper */ wrapperClassName?: string; } export function AppLayout({ children, currentProject, projects = [], onProjectChange, breadcrumbs, hideBreadcrumbs = false, hideSidebar = false, className, wrapperClassName, }: AppLayoutProps) { return (
{description}
}