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}
);
}