UNPKG

@appbuckets/react-ui

Version:
69 lines (68 loc) 2.25 kB
import * as React from 'react'; import { PortalProps, ShorthandItem } from '@appbuckets/react-ui-core'; import { Placement, Rect } from '@popperjs/core'; import { Modifier, StrictModifierNames } from 'react-popper'; import { MouseHandler, UIMutableComponentProps, VoidHandler } from '../generic'; import { HeaderProps } from '../Header'; export declare type PopperOffsetFunction = (data: { popper: Rect; reference: Rect; placement: Placement; }) => [number, number]; export declare type PopupOpenEvent = 'hover' | 'click' | 'focus'; export declare type PopupPosition = | 'auto' | 'auto start' | 'auto end' | 'top left' | 'top right' | 'bottom left' | 'bottom right' | 'left center' | 'right center' | 'top center' | 'bottom center'; export interface PopupProps extends UIMutableComponentProps<StrictPopupProps> {} export interface StrictPopupProps { /** Simplify Tooltip */ basic?: boolean; /** Content Shorthand */ content?: ShorthandItem<HeaderProps>; /** Disable Popup Display */ disabled?: boolean; /** Hide Popup on Document Scroll */ hideOnScroll?: boolean; /** The close delay used to hide popup after scrolling */ hideOnScrollDelay?: number; /** Do not close Popup Element on Mouse Over */ hoverable?: boolean; /** Invert Popup Style */ inverted?: boolean; /** Popup Offset */ offset?: PopperOffsetFunction | [number, number]; /** On Close Handler */ onClose?: PopupStateChangeHandler; /** On Mount Event Handler */ onMount?: PopupMountChangeHandler; /** On Open Event Handler */ onOpen?: PopupStateChangeHandler; /** On Unmount Event Handler */ onUnmount?: PopupMountChangeHandler; /** Open Triggers Event */ openOn?: PopupOpenEvent[]; /** Set Popup Position */ position?: PopupPosition; /** Set Popper Modifier */ popperModifiers?: ReadonlyArray<Modifier<StrictModifierNames>>; /** Add properties to Portal */ portalProps?: PortalProps; /** An array of dependencies to force popper update */ updateDependencies?: any[]; /** The trigger element */ trigger?: React.ReactElement; } export declare type PopupStateChangeHandler = MouseHandler< HTMLElement, PopupProps >; export declare type PopupMountChangeHandler = VoidHandler<PopupProps>;