/* istanbul ignore file */ /** * DevLayout Component * Shared layout for all /dev routes with navigation and theme toggle * This file is excluded from coverage as it's a development tool */ 'use client'; import Image from 'next/image'; import { Link } from '@/lib/i18n/routing'; import { usePathname } from '@/lib/i18n/routing'; import { Palette, LayoutDashboard, Box, FileText, BookOpen, Home, ArrowLeft, Rocket, } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { ThemeToggle } from '@/components/theme'; import { cn } from '@/lib/utils'; interface DevLayoutProps { children: React.ReactNode; } const navItems = [ { title: 'Home', href: '/', icon: ArrowLeft, exact: true, }, { title: 'Hub', href: '/dev', icon: Home, exact: true, }, { title: 'Components', href: '/dev/components', icon: Box, }, { title: 'Forms', href: '/dev/forms', icon: FileText, }, { title: 'Layouts', href: '/dev/layouts', icon: LayoutDashboard, }, { title: 'Spacing', href: '/dev/spacing', icon: Palette, }, { title: 'Docs', href: '/dev/docs', icon: BookOpen, }, { title: 'Live Demos', href: '/demos', icon: Rocket, }, ]; export function DevLayout({ children }: DevLayoutProps) { const pathname = usePathname(); const isActive = (href: string, exact?: boolean) => { if (exact) { return pathname === href; } return pathname.startsWith(href); }; return (