import type { CSSProperties, VNodeChild } from "vue"; import type { XyOverlayPlacement, XySemanticClassNames, XySemanticStyles } from "../core"; export type XyPopoverPlacement = XyOverlayPlacement; export type XyPopoverTrigger = "click" | "contextmenu" | "focus" | "hover" | "manual"; export type XyPopoverSemanticDom = "arrow" | "content" | "popup" | "root" | "title"; export interface XyPopoverSemanticProps { arrow: boolean; disabled: boolean; hasContent: boolean; hasTitle: boolean; open: boolean; placement: XyPopoverPlacement; } export type XyPopoverClassNames = XySemanticClassNames; export type XyPopoverStyles = XySemanticStyles; export interface XyPopoverProps { ariaLabel?: string; arrow?: boolean; autoAdjustOverflow?: boolean; block?: boolean; classNames?: XyPopoverClassNames; color?: string; content?: VNodeChild | string; defaultOpen?: boolean; destroyOnHidden?: boolean; disabled?: boolean; getPopupContainer?: () => HTMLElement | null | undefined; maxWidth?: number | string; mouseEnterDelay?: number; mouseLeaveDelay?: number; open?: boolean; placement?: XyPopoverPlacement; styles?: XyPopoverStyles; teleport?: boolean; title?: VNodeChild | string; trigger?: XyPopoverTrigger | XyPopoverTrigger[]; zIndex?: number; } export interface XyPopoverSlots { content?: () => VNodeChild; default?: () => VNodeChild; title?: () => VNodeChild; } export type XyPopoverPopupStyle = CSSProperties;