adwaita-web
Version:
A GTK inspired toolkit designed to build awesome web apps
90 lines (89 loc) • 3.06 kB
TypeScript
import type Popper from "@popperjs/core";
import React from "react";
export declare type PopoverProps = {
className?: string;
open?: boolean;
arrow?: boolean;
content: React.ReactNode | (() => React.ReactNode);
children: React.ReactNode;
placement?: "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
align?: "right" | "left";
method?: "mouseover" | "click" | "click-controlled" | "none";
width?: "trigger" | "trigger-min";
delay?: number;
shouldUpdatePlacement?: boolean;
shouldAttachEarly?: boolean;
onOpen?: () => void;
onClose?: () => void;
onDidOpen?: () => void;
onDidClose?: () => void;
};
declare type PopoverState = {
open: boolean;
closing: boolean;
actualPlacement: PopoverProps["placement"];
styles: React.CSSProperties;
};
export declare class Popover extends React.PureComponent<PopoverProps> {
static defaultProps: {
arrow: boolean;
placement: string;
align: string;
method: string;
delay: number;
shouldUpdatePlacement: boolean;
onOpen: () => void;
onClose: () => void;
onDidOpen: () => void;
onDidClose: () => void;
};
domNode: HTMLElement;
isDomNodeAttached: boolean;
isEventListening: boolean;
openTimeout: number | undefined;
closeTimeout: number | undefined;
triggerRef: React.MutableRefObject<Element | null>;
popoverRef: React.MutableRefObject<HTMLElement | null>;
arrowRef: React.MutableRefObject<HTMLDivElement | null>;
observer: ResizeObserver;
popper: Popper.Instance | undefined;
state: PopoverState;
constructor(props: PopoverProps);
componentWillUnmount(): void;
componentDidMount(): void;
componentDidUpdate(prevProps: PopoverProps, prevState: PopoverState): void;
attachDomNode(): void;
detachDomNode(): void;
attachPopper(): void;
detachPopper(): void;
updatePopperOptions(): void;
getPopperOptions(): Partial<Popper.OptionsGeneric<Partial<Popper.Modifier<any, any>>>>;
onContentResize: () => void;
onRefPopover: (ref: HTMLDivElement) => void;
onDocumentClick: (ev: MouseEvent) => void;
onTransitionEnd: () => void;
onUpdatePopper: ({ state }: Popper.ModifierArguments<any>) => void;
onClick: (ev: React.MouseEvent<HTMLElement>) => void;
onMouseOver: () => void;
onMouseOut: () => void;
isControlled: () => boolean;
open: () => void;
close: () => void;
isOpen(): boolean;
getContent(): React.ReactNode;
getEventListeners(): {
onMouseOver: () => void;
onMouseOut: () => void;
onClick?: undefined;
} | {
onClick: (ev: React.MouseEvent<HTMLElement, MouseEvent>) => void;
onMouseOver?: undefined;
onMouseOut?: undefined;
} | {
onMouseOver?: undefined;
onMouseOut?: undefined;
onClick?: undefined;
};
render(): JSX.Element;
}
export {};