/**
* A component for creating popover dialogs. Only requires child element.
*
*
*
*
*/
import React, { Component } from 'react';
import PopperJs, { type PopperOptions, type ReferenceObject } from 'popper.js';
import './Popper.scss';
interface PopperProps {
children: React.ReactNode;
options: PopperOptions;
className: string;
timeout: number;
onEntered: () => void;
onExited: () => void;
onBlur: (e: React.FocusEvent) => void;
isShown: boolean;
closeOnBlur: boolean;
interactive: boolean;
keepInParent: boolean;
referenceObject: ReferenceObject | null;
'data-testid'?: string;
}
interface PopperState {
show: boolean;
popper: PopperJs | null;
}
declare class Popper extends Component {
static defaultProps: {
options: {};
className: string;
timeout: 150;
onEntered(): void;
onExited(): void;
onBlur(): void;
isShown: boolean;
interactive: boolean;
closeOnBlur: boolean;
keepInParent: boolean;
referenceObject: null;
'data-testid': undefined;
};
constructor(props: PopperProps);
componentDidUpdate(prevProps: PopperProps): void;
componentWillUnmount(): void;
element: HTMLDivElement;
container: React.RefObject;
nodeRef: React.RefObject;
rAF: number;
/** Goes through an element and it's parents until the first visible element is found */
getVisibleElement(element: HTMLElement | null): HTMLElement | null;
initPopper(): void;
destroyPopper(updateState?: boolean): void;
show(): void;
hide(): void;
scheduleUpdate(): void;
handleBlur(e: React.FocusEvent): void;
handleEnter(): void;
handleExit(): void;
renderContent(): JSX.Element;
render(): JSX.Element;
}
export default Popper;
export type { PopperOptions, ReferenceObject };
//# sourceMappingURL=Popper.d.ts.map