UNPKG

@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.

52 lines 2.27 kB
import * as React from 'react'; import { InteractionType } from '@base-ui-components/utils/useEnhancedClickHandler'; import { type BaseUIComponentProps } from "../../utils/types.js"; import { type TransitionStatus } from "../../utils/useTransitionStatus.js"; /** * A container for the dialog contents. * Renders a `<div>` element. * * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog) */ export declare const DialogPopup: React.ForwardRefExoticComponent<DialogPopupProps & React.RefAttributes<HTMLDivElement>>; export interface DialogPopupProps extends BaseUIComponentProps<'div', DialogPopup.State> { /** * Determines the element to focus when the dialog is opened. * * - `false`: Do not move focus. * - `true`: Move focus based on the default behavior (first tabbable element or popup). * - `RefObject`: Move focus to the ref element. * - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`). * Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing. */ initialFocus?: boolean | React.RefObject<HTMLElement | null> | ((openType: InteractionType) => boolean | HTMLElement | null | void); /** * Determines the element to focus when the dialog is closed. * * - `false`: Do not move focus. * - `true`: Move focus based on the default behavior (trigger or previously focused element). * - `RefObject`: Move focus to the ref element. * - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`). * Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing. */ finalFocus?: boolean | React.RefObject<HTMLElement | null> | ((closeType: InteractionType) => boolean | HTMLElement | null | void); } export interface DialogPopupState { /** * Whether the dialog is currently open. */ open: boolean; transitionStatus: TransitionStatus; /** * Whether the dialog is nested within a parent dialog. */ nested: boolean; /** * Whether the dialog has nested dialogs open. */ nestedDialogOpen: boolean; } export declare namespace DialogPopup { type Props = DialogPopupProps; type State = DialogPopupState; }