import { Box } from '@/ui/Box'; import { Icon } from '@/ui/Icon'; import { Text } from '@/ui/Text'; import { LucideIcon, ChevronRight } from 'lucide-react'; interface NavLinkProps { href: string; label: string; icon?: LucideIcon; isActive?: boolean; variant?: 'sidebar' | 'top'; collapsed?: boolean; LinkComponent?: React.ComponentType<{ href: string; children: React.ReactNode; className?: string }>; } export function NavLink({ href, label, icon, isActive, variant = 'sidebar', collapsed = false, LinkComponent }: NavLinkProps) { const isTop = variant === 'top'; // Radical "Game Menu" Style // Active: Solid Primary Color, Shadow, Bold. // Inactive: Glass card with strong hover effects. const content = ( {icon && ( )} {!collapsed && ( {label} )} {/* Chevron on Hover/Active - Only when expanded and not top nav */} {!collapsed && !isTop && ( )} ); if (LinkComponent) { return ( {content} ); } return ( {content} ); }