///
import { Menu as MenuPrimitive } from '@base-ui/react';
interface CommonProps {
autocomplete?: boolean;
autocompleteMode?: 'auto' | 'manual';
inputValue?: string;
inputRef?: React.RefObject;
contentRef?: React.RefObject;
isInitialRender?: React.RefObject;
open?: boolean;
}
interface MenuContextValue extends CommonProps {
parent?: CommonProps;
onInputValueChange?: (value: string) => void;
}
interface UseMenuContextReturn extends MenuContextValue {
shouldFilter?: boolean;
parent?: CommonProps & {
shouldFilter?: boolean;
};
}
/**
Root context to manage the Menu control
@remarks Only for internal usage.
*/
export declare const MenuContext: import("react").Context;
export declare const useMenuContext: () => UseMenuContextReturn;
export interface MenuRootBaseProps {
open?: boolean;
defaultOpen?: boolean;
onOpenChange?: MenuPrimitive.Root.Props['onOpenChange'];
modal?: boolean;
loopFocus?: boolean;
}
export interface NormalMenuRootProps extends MenuPrimitive.Root.Props {
autocomplete?: false;
autocompleteMode?: never;
inputValue?: never;
onInputValueChange?: never;
defaultInputValue?: never;
}
export interface AutocompleteMenuRootProps extends MenuPrimitive.Root.Props, CommonProps {
autocomplete: true;
onInputValueChange?: (value: string) => void;
defaultInputValue?: string;
}
export type MenuRootProps = NormalMenuRootProps | AutocompleteMenuRootProps;
export declare const MenuRoot: {
({ autocomplete, autocompleteMode, inputValue: providedInputValue, onInputValueChange, defaultInputValue, open: providedOpen, onOpenChange, defaultOpen, ...props }: MenuRootProps): import("react/jsx-runtime").JSX.Element;
displayName: string;
};
export interface NormalMenuSubMenuProps extends MenuPrimitive.SubmenuRoot.Props {
autocomplete?: false;
autocompleteMode?: never;
inputValue?: never;
onInputValueChange?: never;
defaultInputValue?: never;
}
export interface AutocompleteMenuSubMenuProps extends MenuPrimitive.SubmenuRoot.Props {
autocomplete: true;
autocompleteMode?: 'auto' | 'manual';
inputValue?: string;
onInputValueChange?: (value: string) => void;
defaultInputValue?: string;
}
export type MenuSubMenuProps = NormalMenuSubMenuProps | AutocompleteMenuSubMenuProps;
export declare const MenuSubMenu: {
({ autocomplete, autocompleteMode, inputValue: providedInputValue, onInputValueChange, defaultInputValue, open: providedOpen, onOpenChange, defaultOpen, ...props }: MenuSubMenuProps): import("react/jsx-runtime").JSX.Element;
displayName: string;
};
export {};
//# sourceMappingURL=menu-root.d.ts.map