@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.
38 lines • 1.87 kB
TypeScript
import * as React from 'react';
import type { InteractionType } from '@base-ui-components/utils/useEnhancedClickHandler';
import type { FloatingRootContext } from "../../floating-ui-react/index.js";
import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
import type { HTMLProps } from "../../utils/types.js";
import type { PopoverRoot } from "./PopoverRoot.js";
export interface PopoverRootContext {
open: boolean;
openOnHover: boolean;
setOpen: (open: boolean, eventDetails: PopoverRoot.ChangeEventDetails) => void;
triggerElement: Element | null;
setTriggerElement: (el: Element | null) => void;
positionerElement: HTMLElement | null;
setPositionerElement: (el: HTMLElement | null) => void;
popupRef: React.RefObject<HTMLElement | null>;
backdropRef: React.RefObject<HTMLDivElement | null>;
internalBackdropRef: React.RefObject<HTMLDivElement | null>;
delay: number;
closeDelay: number;
instantType: 'dismiss' | 'click' | undefined;
mounted: boolean;
setMounted: React.Dispatch<React.SetStateAction<boolean>>;
transitionStatus: TransitionStatus;
titleId: string | undefined;
setTitleId: React.Dispatch<React.SetStateAction<string | undefined>>;
descriptionId: string | undefined;
setDescriptionId: React.Dispatch<React.SetStateAction<string | undefined>>;
floatingRootContext: FloatingRootContext;
triggerProps: HTMLProps;
popupProps: HTMLProps;
openMethod: InteractionType | null;
openReason: PopoverRoot.ChangeEventReason | null;
onOpenChangeComplete: ((open: boolean) => void) | undefined;
modal: boolean | 'trap-focus';
}
export declare const PopoverRootContext: React.Context<PopoverRootContext | undefined>;
export declare function usePopoverRootContext(optional?: false): PopoverRootContext;
export declare function usePopoverRootContext(optional: true): PopoverRootContext | undefined;