import type { CLASSES } from './vars'; import type { ButtonProps } from '../button'; import type { BaseProps, PopupPlacement } from '../types'; export {}; export interface PopoverRef { updatePosition: () => void; } export interface PopoverProps extends BaseProps<'popover', typeof CLASSES>, Omit, 'children' | 'content'> { ref?: React.Ref; children: (props: { id: string; onClick: React.MouseEventHandler; onMouseEnter: React.MouseEventHandler; onMouseLeave: React.MouseEventHandler; onKeyDown: React.KeyboardEventHandler; }) => React.ReactNode; content: React.ReactNode; header?: React.ReactElement | string; footer?: React.ReactElement; visible?: boolean; defaultVisible?: boolean; trigger?: 'hover' | 'click'; placement?: PopupPlacement; placementFixed?: boolean; arrow?: boolean; escClosable?: boolean; gap?: number; inWindow?: number | false; mouseEnterDelay?: number; mouseLeaveDelay?: number; modal?: boolean; skipFirstTransition?: boolean; destroyAfterClose?: boolean; lazyLoading?: boolean; zIndex?: number | string; onVisibleChange?: (visible: boolean) => void; afterVisibleChange?: (visible: boolean) => void; } export interface PopoverHeaderProps extends BaseProps<'popover', typeof CLASSES>, React.HTMLAttributes { actions?: (React.ReactNode | { id: React.Key; action: React.ReactNode; })[]; closeProps?: ButtonProps; onCloseClick?: () => any | Promise; } export interface PopoverFooterProps extends BaseProps<'popover', typeof CLASSES>, Omit, 'children'> { align?: 'left' | 'center' | 'right'; actions?: (React.ReactNode | { id: React.Key; action: React.ReactNode; })[]; cancelProps?: ButtonProps; okProps?: ButtonProps; onCancelClick?: () => any | Promise; onOkClick?: () => any | Promise; }