import type { ReactNode } from 'react' import { Link, useLocation } from 'react-router' import { BookMarked, BookOpen, BookUser, Bot, Boxes, ChartColumn, Gauge, Inbox, type LucideIcon, LayoutDashboard, LogOut, Network, Package, Rocket, ShieldCheck, Sparkles, Users, } from 'lucide-react' import { Button } from '@/components/ui/button' import { Separator } from '@/components/ui/separator' import { cn } from '@/lib/utils' import { useAuth } from '@/store/auth' export function AppShell({ children }: { children: ReactNode }) { const email = useAuth((s) => s.email) const logout = useAuth((s) => s.logout) return (
{children}
) } function NavSection({ label }: { label: string }) { return (
{label}
) } function NavItem({ icon: Icon, label, to, muted, }: { icon: LucideIcon label: string to?: string muted?: boolean }) { const location = useLocation() const active = to ? location.pathname === to : false const className = cn( 'flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors', active ? 'bg-white/15 font-medium text-white shadow-sm ring-1 ring-white/15 backdrop-blur-sm' : 'text-sidebar-foreground/80', muted ? 'opacity-50' : 'hover:bg-white/10 hover:text-white', ) const content = ( <> {label} {muted && soon} ) if (!to || muted) { return {content} } return ( {content} ) }