'use client';
import { ReactNode } from 'react';
import { Header } from './Header';
import { Sidebar } from './Sidebar';
import { Breadcrumbs } from './Breadcrumbs';
/**
* Layout Props
*/
interface LayoutProps {
/**
* Page content
*/
children: ReactNode;
/**
* Show sidebar (desktop only)
* @default true
*/
showSidebar?: boolean;
/**
* Show header
* @default true
*/
showHeader?: boolean;
/**
* Show breadcrumbs
* @default true
*/
showBreadcrumbs?: boolean;
/**
* Maximum content width
* @default '7xl' (1280px)
*/
maxWidth?: 'full' | '7xl' | '6xl' | '5xl' | '4xl';
/**
* Custom page title (shown in breadcrumbs if provided)
*/
title?: string;
}
/**
* Max width classes mapping
*/
const maxWidthClasses = {
full: '',
'7xl': 'max-w-7xl',
'6xl': 'max-w-6xl',
'5xl': 'max-w-5xl',
'4xl': 'max-w-4xl',
};
/**
* Main Layout Component
*
* Provides consistent layout structure for authenticated pages.
*
* Layout structure:
* - Desktop (lg+): Sidebar + Header + Main content
* - Mobile/Tablet: Header + Main content
*
* Features:
* - Responsive sidebar (desktop only)
* - Sticky header
* - Breadcrumb navigation
* - Configurable max-width
* - Proper spacing and padding
*
* @example
* ```tsx
* // Default layout (all features enabled)
* Content hereDashboard
* Profile
*