@base-ui-components/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.
39 lines • 1.89 kB
TypeScript
import * as React from 'react';
import type { FloatingRootContext } from "../../floating-ui-react/index.js";
import type { MenuParent, MenuRoot } from "./MenuRoot.js";
import { HTMLProps } from "../../utils/types.js";
import { TransitionStatus } from "../../utils/useTransitionStatus.js";
export interface MenuRootContext {
disabled: boolean;
typingRef: React.RefObject<boolean>;
modal: boolean;
activeIndex: number | null;
floatingRootContext: FloatingRootContext;
itemProps: HTMLProps;
popupProps: HTMLProps;
triggerProps: HTMLProps;
itemDomElements: React.MutableRefObject<(HTMLElement | null)[]>;
itemLabels: React.MutableRefObject<(string | null)[]>;
mounted: boolean;
open: boolean;
popupRef: React.RefObject<HTMLElement | null>;
setOpen: (open: boolean, event: Event | undefined, reason: MenuRoot.OpenChangeReason | undefined) => void;
positionerRef: React.RefObject<HTMLElement | null>;
setPositionerElement: (element: HTMLElement | null) => void;
triggerElement: HTMLElement | null;
setTriggerElement: (element: HTMLElement | null) => void;
transitionStatus: TransitionStatus;
allowMouseUpTriggerRef: React.RefObject<boolean>;
lastOpenChangeReason: MenuRoot.OpenChangeReason | null;
instantType: 'dismiss' | 'click' | 'group' | undefined;
onOpenChangeComplete: ((open: boolean) => void) | undefined;
setHoverEnabled: React.Dispatch<React.SetStateAction<boolean>>;
setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;
parent: MenuParent;
rootId: string | undefined;
allowMouseEnter: boolean;
setAllowMouseEnter: React.Dispatch<React.SetStateAction<boolean>>;
}
export declare const MenuRootContext: React.Context<MenuRootContext | undefined>;
export declare function useMenuRootContext(optional?: false): MenuRootContext;
export declare function useMenuRootContext(optional: true): MenuRootContext | undefined;