import { AppShell, NavLink, Group, Title, Box, Select, Text, Paper } from '@repo/ui/components'; import { Outlet, useLocation, useNavigate } from 'react-router-dom'; import { useTranslation } from '@repo/core-i18n'; import { Layout, FileText, Database, ShieldCheck, Lock, Activity, Printer, Globe, Layers, Table2 } from 'lucide-react'; import { DensityType } from '@repo/ui/provider'; import { useThemeStore } from '../core/stores/theme.store'; import { ColorSchemeType } from '@repo/ui/provider'; interface ShowcaseLayoutProps { density: DensityType; setDensity: (val: DensityType) => void; } export default function ShowcaseLayout({ density, setDensity }: ShowcaseLayoutProps) { const navigate = useNavigate(); const location = useLocation(); const { i18n } = useTranslation(); const { colorScheme, setColorScheme } = useThemeStore(); const navItems = [ { label: 'UI Components', path: '/ui-components', icon: Layout }, { label: 'Layout Engine', path: '/shell-demo', icon: Layout }, { label: 'Form Engine', path: '/forms', icon: FileText }, { label: 'Offline Storage', path: '/storage', icon: Database }, { label: 'RBAC Engine', path: '/rbac', icon: ShieldCheck }, { label: 'Auth & Security', path: '/auth', icon: Lock }, { label: 'Events', path: '/events', icon: Activity }, { label: 'Hardware', path: '/hardware', icon: Printer }, { label: 'Action Tools', path: '/action-tools', icon: Layers }, { label: 'AG Grid', path: '/ag-grid', icon: Table2 }, ]; const getSubtitle = () => { const currentPath = location.pathname.replace('/', ''); switch (currentPath) { case 'rbac': return 'Role-Based Access Control and Permissions'; case 'storage': return 'Offline-First PouchDB Synchronization'; case 'auth': return 'Authentication & Security Layers'; case 'ui-components': return 'Theme, Typography, Forms & Data Grids'; case 'forms': return 'Enterprise Form Engine & Zod Validation'; case 'events': return 'Global Event Bus Synchronization'; case 'hardware': return 'Hardware Integration & Printers'; case 'layout-engine': return 'Core Layout Engine & Variants'; case 'action-tools': return 'Showcase for PageActions and RowActions components'; case 'ag-grid': return 'Enterprise Data Grid with Mantine Theme Integration'; default: return 'Architecture Showcase'; } }; return ( Eigen ERP Architecture Showcase {navItems.map((item) => ( } onClick={() => navigate(item.path)} variant="filled" style={{ borderRadius: 'var(--mantine-radius-md)', marginBottom: 4 }} /> ))} setDensity((val as DensityType) || 'standard')} data={[ { value: 'compact', label: 'Compact' }, { value: 'standard', label: 'Standard' }, ]} /> Architecture Showcase {getSubtitle()}