'use client'; import { forwardRef, HTMLAttributes, ReactNode } from 'react'; import styles from './brutal-nav.module.css'; export interface BrutalNavLinkProps { href: string; children: ReactNode; active?: boolean; } export interface BrutalNavStatusProps { label: string; value: string; status?: 'online' | 'offline' | 'warning'; } export interface BrutalNavProps extends HTMLAttributes { brand: string; brandGlitch?: boolean; links?: BrutalNavLinkProps[]; statusItems?: BrutalNavStatusProps[]; variant?: 'default' | 'heavy' | 'double'; children?: ReactNode; } export const BrutalNav = forwardRef( ({ brand, brandGlitch, links, statusItems, variant = 'default', children, className, ...props }, ref) => { const navClasses = [ styles.nav, variant === 'heavy' && styles.variantHeavy, variant === 'double' && styles.variantDouble, className, ].filter(Boolean).join(' '); return ( {brandGlitch ? ( {brand} ) : brand} {links?.map((link, i) => ( {link.children} ))} {children} {statusItems && statusItems.length > 0 && ( {statusItems.map((item, i) => ( {item.label} {item.status && ( )} {item.value} ))} )} ); } ); BrutalNav.displayName = 'BrutalNav'; export default BrutalNav;