import { Button } from "../button"; import { StyledContent, StyledItemList, StyledLabel, StyledLink, StyledMenuItem, StyledRoot, StyledTrigger, StyledViewport, ViewportPosition, } from "./navigation-menu.styled"; type MenuListItem = | { label: string | React.ReactElement<{ children: string }>; content: React.ReactNode; } | { label: React.ReactElement<{ children: string }>; content?: never; }; export interface NavigationMenuProps extends React.ComponentProps { items: MenuListItem[]; itemListProps?: React.ComponentProps; menuItemProps?: React.ComponentProps; triggerProps?: React.ComponentProps; contentProps?: React.ComponentProps; buttonProps?: Omit, "text">; labelProps?: React.ComponentProps; linkProps?: React.ComponentProps; } export const NavigationMenu: React.FC = ({ items, itemListProps, menuItemProps, triggerProps, contentProps, buttonProps, labelProps, linkProps, ...rootProps }) => { return ( {items.map((item, index) => { return ( {"content" in item ? ( <> {typeof item.label === "string" ? (