'use client'; import { Fragment } from 'react'; import * as Accordion from '../Accordion'; import { HStack } from 'styled-system/jsx'; import { navigationMenu } from 'styled-system/recipes'; import type { NavigationMenuProps } from './types'; export function NavigationMenu({ sections, activeHref, defaultOpenSections, onNavigate, renderLink, ariaLabel = 'Navigation', }: NavigationMenuProps) { const styles = navigationMenu(); const defaultRenderLink: NavigationMenuProps['renderLink'] = ({ href, children, isActive, className, }) => ( { e.preventDefault(); onNavigate?.(href); }} > {children} ); const resolvedRenderLink = renderLink ?? defaultRenderLink; return ( {sections.map((section) => ( {section.icon} {section.title} {section.items.map((item) => { const isActive = activeHref === item.href; return ( {resolvedRenderLink({ href: item.href, children: item.label, isActive, className: styles.itemLink, })} ); })} ))} ); }