UNPKG

1.88 kBTypeScriptView Raw
1import * as React from 'react';
2import type { CSSMotionProps } from 'rc-motion';
3import type { BuiltinPlacements, MenuClickEventHandler, MenuMode, SelectEventHandler, TriggerSubMenuAction, RenderIconType } from './interface';
4export interface MenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onClick' | 'onSelect' | 'dir'> {
5 prefixCls?: string;
6 children?: React.ReactNode;
7 disabled?: boolean;
8 /** @private Disable auto overflow. Pls note the prop name may refactor since we do not final decided. */
9 disabledOverflow?: boolean;
10 /** direction of menu */
11 direction?: 'ltr' | 'rtl';
12 mode?: MenuMode;
13 inlineCollapsed?: boolean;
14 defaultOpenKeys?: string[];
15 openKeys?: string[];
16 activeKey?: string;
17 defaultActiveFirst?: boolean;
18 selectable?: boolean;
19 multiple?: boolean;
20 defaultSelectedKeys?: string[];
21 selectedKeys?: string[];
22 onSelect?: SelectEventHandler;
23 onDeselect?: SelectEventHandler;
24 inlineIndent?: number;
25 /** Menu motion define. Use `defaultMotions` if you need config motion of each mode */
26 motion?: CSSMotionProps;
27 /** Default menu motion of each mode */
28 defaultMotions?: Partial<{
29 [key in MenuMode | 'other']: CSSMotionProps;
30 }>;
31 subMenuOpenDelay?: number;
32 subMenuCloseDelay?: number;
33 forceSubMenuRender?: boolean;
34 triggerSubMenuAction?: TriggerSubMenuAction;
35 builtinPlacements?: BuiltinPlacements;
36 itemIcon?: RenderIconType;
37 expandIcon?: RenderIconType;
38 overflowedIndicator?: React.ReactNode;
39 /** @private Internal usage. Do not use in your production. */
40 overflowedIndicatorPopupClassName?: string;
41 getPopupContainer?: (node: HTMLElement) => HTMLElement;
42 onClick?: MenuClickEventHandler;
43 onOpenChange?: (openKeys: string[]) => void;
44}
45declare const Menu: React.FC<MenuProps>;
46export default Menu;