UNPKG

@project44-manifest/react

Version:

Manifest Design System react components

127 lines 3.79 kB
/// <reference types="react" /> import type { CSS } from '@project44-manifest/react-styles'; import type { Placement } from '../Overlay'; export declare type PopoverElement = 'div'; export interface PopoverProps { /** * Theme aware style object */ css?: CSS; /** * Whether to close the overlay when the user interacts outside it. * * @default true */ isDismissable?: boolean; /** * Whether pressing the escape key to close the popover should be disabled. * * @default false */ isKeyboardDismissDisabled?: boolean; /** * Whether the popover is currently open. */ isOpen?: boolean; /** * Handler that is called when the popover should close. */ onClose?: () => void; /** * Whether the overlay should close when focus is lost or moves outside it. */ shouldCloseOnBlur?: boolean; /** * When user interacts with the argument element outside of the overlay ref, * return true if onClose should be called. This gives you a chance to filter * out interaction with elements that should not dismiss the overlay. * By default, onClose will always be called on interaction outside the overlay ref. */ shouldCloseOnInteractOutside?: (element: Element) => boolean; } export interface PopoverTriggerProps { /** * Whether the popover is open by default (uncontrolled). */ defaultOpen?: boolean; /** * Whether the popover is open by default (controlled). */ isOpen?: boolean; /** * The maxHeight specified for the popover element. * * By default, it will take all space up to the current viewport height. */ maxHeight?: number; /** * The additional offset applied along the main axis between the element and its * anchor element. * * @default 4 */ offset?: number; /** * Handler that is called when the popover's open state changes. */ onOpenChange?: (isOpen: boolean) => void; /** * The placement of the element with respect to its anchor element. * * @default 'bottom' */ placement?: Placement; /** * A ref for the scrollable region within the popover. * * @default overlayRef */ scrollRef?: React.RefObject<Element>; /** * Whether the element should flip its orientation (e.g. top to bottom or left to right) when * there is insufficient room for it to render completely. * * @default true */ shouldFlip?: boolean; /** * Whether the popover should update its position automatically. * * @default true */ shouldUpdatePosition?: boolean; /** * Type of popover that is opened by the trigger. * * @default 'dialog' */ type?: 'dialog' | 'grid' | 'listbox' | 'menu' | 'tree'; } export interface PopoverTriggerState { /** Whether the popover is currently open. */ readonly isOpen: boolean; /** Sets whether the popover is open. */ setOpen: (isOpen: boolean) => void; /** Closes the popover. */ close: () => void; /** Opens the popover. */ open: () => void; /** Toggles the popover's visibility. */ toggle: () => void; } export interface PopoverTriggerStateProps { /** Whether the popover is open by default (uncontrolled). */ defaultOpen?: boolean; /** * Whether pressing the escape key to close the popover should be disabled. * * @default false */ /** * Whether the popover is open by default (controlled). */ isOpen?: boolean; /** Handler that is called when the popover's open state changes. */ onOpenChange?: (isOpen: boolean) => void; } //# sourceMappingURL=Popover.types.d.ts.map