@payfit/unity-components
Version:
46 lines (45 loc) • 1.67 kB
TypeScript
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;
}