import { ComponentElement, Component } from 'react'; import { Popover } from '@instructure/ui-popover/latest'; import { MenuItem } from './MenuItem'; import type { MenuItemProps } from './MenuItem/props'; import { MenuItemGroup } from './MenuItemGroup'; import type { MenuGroupProps } from './MenuItemGroup/props'; import { MenuItemSeparator } from './MenuItemSeparator'; import type { MenuSeparatorProps } from './MenuItemSeparator/props'; import type { MenuProps } from './props'; type MenuChild = ComponentElement; type MenuItemChild = ComponentElement; type MenuGroupChild = ComponentElement; type MenuSeparatorChild = ComponentElement; /** --- category: components --- **/ declare class Menu extends Component { static readonly componentId = "Menu"; static allowedProps: readonly (keyof { children?: React.ReactNode; label?: string; disabled?: boolean; trigger?: React.ReactNode; placement?: import("@instructure/ui-position").PlacementPropValues; defaultShow?: boolean; show?: boolean; onToggle?: (show: boolean, menu: Menu) => void; onSelect?: (e: React.MouseEvent, value: MenuItemProps["value"] | MenuItemProps["value"][], selected: MenuItemProps["selected"], args: MenuItem) => void; onDismiss?: (event: React.UIEvent | React.FocusEvent, documentClick: boolean) => void; onFocus?: (event: React.FocusEvent) => void; onMouseOver?: (event: React.MouseEvent) => void; onKeyDown?: (event: React.KeyboardEvent) => void; onKeyUp?: (event: React.KeyboardEvent) => void; menuRef?: (el: HTMLElement | null) => void; popoverRef?: (el: Popover | null) => void; mountNode?: import("@instructure/ui-position").PositionMountNode; constrain?: import("@instructure/ui-position").PositionConstraint; shouldHideOnSelect?: boolean; shouldFocusTriggerOnClose?: boolean; positionContainerDisplay?: "inline-block" | "block"; type?: "flyout"; id?: string; withArrow?: boolean; offsetX?: string | number; offsetY?: string | number; maxHeight?: string | number; renderLabelInfo?: React.ReactNode | (() => React.ReactNode); })[]; static defaultProps: { label: null; disabled: boolean; trigger: null; placement: string; defaultShow: boolean; mountNode: null; constrain: string; shouldHideOnSelect: boolean; shouldFocusTriggerOnClose: boolean; withArrow: boolean; offsetX: number; offsetY: number; }; static Item: typeof MenuItem; static Group: typeof MenuItemGroup; static Separator: typeof MenuItemSeparator; state: { hasFocus: boolean; }; _rootNode: null; _menuItems: MenuItem[]; _popover: Popover | null; _trigger: MenuItem | (React.ReactInstance & { focus?: () => void; }) | null; _menu: HTMLElement | null; _labelId: string; _activeSubMenu?: Menu | null; _id: string; ref: Element | null; handleRef: (el: HTMLElement | null) => void; constructor(props: MenuProps); componentDidMount(): void; componentDidUpdate(): void; static contextType: import("react").Context<{ registerMenuItem: (_value: any) => void; removeMenuItem: (_value: any) => void; }>; registerMenuItem: (item: MenuItem) => void; removeMenuItem: (item: MenuItem) => void; get menuItems(): MenuItem[]; getMenuItemIndex: (item: MenuItem) => number; handleTriggerKeyDown: (event: React.KeyboardEvent) => void; handleTriggerMouseOver: (event: React.MouseEvent) => void; handleToggle: (shown: boolean) => void; handleMenuKeyDown: (event: React.KeyboardEvent) => void; handleMenuItemSelect: MenuProps['onSelect']; handleMenuItemFocus: () => void; handleMenuItemBlur: () => void; handleMenuItemMouseOver: MenuItemProps['onMouseOver']; hideActiveSubMenu: (event: React.MouseEvent | React.KeyboardEvent) => void; handleSubMenuToggle: MenuProps['onToggle']; handleSubMenuDismiss: (event: React.UIEvent | React.FocusEvent, documentClick: boolean) => void; hide: (event: React.UIEvent | React.FocusEvent) => void; show: (event: React.MouseEvent | React.KeyboardEvent) => void; focus(): void; focused(): boolean; get focusedIndex(): number; moveFocus(step: number): void; get shown(): boolean | undefined; renderChildren(): (MenuChild | MenuItemChild | MenuGroupChild | MenuSeparatorChild)[]; renderMenu(): import("@emotion/react/jsx-runtime").JSX.Element; render(): import("@emotion/react/jsx-runtime").JSX.Element; } export default Menu; export { Menu, MenuItem, MenuItemGroup, MenuItemSeparator }; //# sourceMappingURL=index.d.ts.map