UNPKG

@base-ui/react

Version:

Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.

59 lines 2.07 kB
import * as React from 'react'; import type { InteractionType } from '@base-ui/utils/useEnhancedClickHandler'; import type { BaseUIComponentProps } from "../../internals/types.js"; import type { Side, Align } from "../../utils/useAnchorPositioning.js"; import type { TransitionStatus } from "../../internals/useTransitionStatus.js"; /** * A container for the menu items. * Renders a `<div>` element. * * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu) */ export declare const MenuPopup: React.ForwardRefExoticComponent<Omit<MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>; export interface MenuPopupProps extends BaseUIComponentProps<'div', MenuPopupState> { children?: React.ReactNode; /** * @ignore */ id?: string | undefined; /** * Determines the element to focus when the menu is closed. * * - `false`: Do not move focus. * - `true`: Move focus based on the default behavior (trigger or previously focused element). * - `RefObject`: Move focus to the ref element. * - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`). * Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing. */ finalFocus?: boolean | React.RefObject<HTMLElement | null> | ((closeType: InteractionType) => boolean | HTMLElement | null | void) | undefined; } export interface MenuPopupState { /** * The transition status of the component. */ transitionStatus: TransitionStatus; /** * The side of the anchor the component is placed on. */ side: Side; /** * The alignment of the component relative to the anchor. */ align: Align; /** * Whether the menu is currently open. */ open: boolean; /** * Whether the component is nested. */ nested: boolean; /** * Whether transitions should be skipped. */ instant: 'dismiss' | 'click' | 'group' | 'trigger-change' | undefined; } export declare namespace MenuPopup { type Props = MenuPopupProps; type State = MenuPopupState; }