UNPKG

@payfit/unity-components

Version:

46 lines (45 loc) • 1.67 kB
import { ReactElement } from 'react'; import { SubmenuTriggerProps as AriaSubmenuTriggerProps } from 'react-aria-components/Menu'; export interface MenuSubmenuProps extends Omit<AriaSubmenuTriggerProps, 'children'> { /** * The submenu trigger item followed by its menu content. */ children: [ReactElement, ReactElement]; } /** * Adds a keyboard-accessible nested menu to a `MenuContent` panel. * * Use `MenuSubmenu` when an action needs a second level of choices. React Aria * manages focus, pointer interaction, arrow-key navigation, and `Escape` * dismissal; Unity adds the submenu caret to the trigger item automatically. * @param props - React Aria submenu behavior and the two-part composition. * @param props.children - Exactly two children: the trigger `RawMenuItem`, * followed by its `MenuContent`. * @see {@link MenuSubmenuProps} for all available props. * @example * ```tsx * import { * MenuContent, * MenuSubmenu, * RawMenuItem, * } from '@payfit/unity-components' * * <MenuContent> * <MenuSubmenu> * <RawMenuItem>Share</RawMenuItem> * <MenuContent> * <RawMenuItem>SMS</RawMenuItem> * <RawMenuItem>Email</RawMenuItem> * </MenuContent> * </MenuSubmenu> * </MenuContent> * ``` * @remarks * Nest another `MenuSubmenu` inside the child `MenuContent` to create deeper * levels. Add a `suffix` to the trigger item when it also needs a badge or * other trailing content; Unity displays it before the submenu caret. */ export declare function MenuSubmenu({ children, ...rest }: MenuSubmenuProps): ReactElement; export declare namespace MenuSubmenu { var displayName: string; }