import type { VNodeChild } from "vue"; import type { XyOverlayPlacement, XySemanticClassNames, XySemanticStyles } from "../core"; import type { XyIconName } from "../icon"; import type { XyPopoverTrigger } from "../popover"; export type XyPopconfirmPlacement = XyOverlayPlacement; export type XyPopconfirmTrigger = XyPopoverTrigger; export type XyPopconfirmButtonType = "danger" | "dashed" | "default" | "link" | "primary" | "success" | "text" | "warning"; export type XyPopconfirmAutoFocusButton = "cancel" | "ok" | null; export type XyPopconfirmSemanticDom = "actions" | "arrow" | "cancelButton" | "content" | "description" | "icon" | "message" | "okButton" | "popup" | "root" | "title"; export interface XyPopconfirmSemanticProps { disabled: boolean; hasDescription: boolean; hasIcon: boolean; hasTitle: boolean; open: boolean; placement: XyPopconfirmPlacement; showCancel: boolean; trigger: XyPopconfirmTrigger | XyPopconfirmTrigger[]; } export type XyPopconfirmClassNames = XySemanticClassNames; export type XyPopconfirmStyles = XySemanticStyles; export interface XyPopconfirmActionSlotProps { cancel: (event: MouseEvent) => void; confirm: (event: MouseEvent) => void; open: boolean; } export interface XyPopconfirmProps { arrow?: boolean; autoAdjustOverflow?: boolean; autoFocusButton?: XyPopconfirmAutoFocusButton; block?: boolean; cancelButtonProps?: Record; cancelText?: string; classNames?: XyPopconfirmClassNames; defaultOpen?: boolean; description?: VNodeChild | string; destroyOnHidden?: boolean; disabled?: boolean; getPopupContainer?: () => HTMLElement | null | undefined; icon?: boolean | XyIconName; maxWidth?: number | string; mouseEnterDelay?: number; mouseLeaveDelay?: number; okButtonProps?: Record; okDanger?: boolean; okLoading?: boolean; okText?: string; okType?: XyPopconfirmButtonType; open?: boolean; placement?: XyPopconfirmPlacement; showCancel?: boolean; styles?: XyPopconfirmStyles; teleport?: boolean; title?: VNodeChild | string; trigger?: XyPopconfirmTrigger | XyPopconfirmTrigger[]; zIndex?: number; } export interface XyPopconfirmSlots { actions?: (props: XyPopconfirmActionSlotProps) => VNodeChild; default?: () => VNodeChild; description?: () => VNodeChild; icon?: () => VNodeChild; title?: () => VNodeChild; }