'use client'; import { forwardRef, HTMLAttributes, ReactNode } from 'react'; import styles from './vertical-nav.module.css'; export interface VerticalNavItemProps { href?: string; glyph: string; label?: string; active?: boolean; onClick?: () => void; } export interface VerticalNavProps extends HTMLAttributes { items?: VerticalNavItemProps[]; runeTop?: string; runeBottom?: string; variant?: 'default' | 'dark'; size?: 'default' | 'compact'; children?: ReactNode; } export const VerticalNavItem = forwardRef( ({ href, glyph, label, active, onClick, ...props }, ref) => { const classes = [styles.glyph, active && styles.glyphActive].filter(Boolean).join(' '); if (href) { return ( {glyph} ); } return ( ); } ); VerticalNavItem.displayName = 'VerticalNavItem'; export const VerticalNav = forwardRef( ({ items, runeTop = 'ᛟ', runeBottom = 'ᛞ', variant = 'default', size = 'default', children, className, ...props }, ref) => { const classes = [ styles.nav, variant === 'dark' && styles.variantDark, size === 'compact' && styles.sizeCompact, className, ].filter(Boolean).join(' '); return ( ); } ); VerticalNav.displayName = 'VerticalNav'; export default VerticalNav;