UNPKG

@wordpress/compose

Version:
54 lines 1.81 kB
/** * External dependencies */ import type { RefCallback, SyntheticEvent } from 'react'; import { useFocusOnMount } from '../use-focus-on-mount'; import useFocusOutside from '../use-focus-outside'; type DialogOptions = { /** * Determines focus behavior when the dialog mounts. * * - `"firstElement"` focuses the first tabbable element within. * - `"firstInputElement"` focuses the first value control within. * - `true` focuses the element itself. * - `false` does nothing and _should not be used unless an accessible * substitute behavior is implemented_. * * @default 'firstElement' */ focusOnMount?: useFocusOnMount.Mode; /** * Determines whether tabbing is constrained to within the popover, * preventing keyboard focus from leaving the popover content without * explicit focus elsewhere, or whether the popover remains part of the * wider tab order. * If no value is passed, it will be derived from `focusOnMount`. * * @see focusOnMount * @default `focusOnMount` !== false */ constrainTabbing?: boolean; onClose?: () => void; /** * Use the `onClose` prop instead. * * @deprecated */ __unstableOnClose?: (type: string | undefined, event: SyntheticEvent) => void; }; type useDialogReturn = [ RefCallback<HTMLElement>, ReturnType<typeof useFocusOutside> & Pick<HTMLElement, 'tabIndex'> ]; /** * Returns a ref and props to apply to a dialog wrapper to enable the following behaviors: * - constrained tabbing. * - focus on mount. * - return focus on unmount. * - focus outside. * * @param options Dialog Options. */ declare function useDialog(options: DialogOptions): useDialogReturn; export default useDialog; //# sourceMappingURL=index.d.ts.map