import type { VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export interface XyWatermarkFont { color?: string; fontFamily?: string; fontSize?: number; fontStyle?: "none" | "normal" | "italic" | "oblique"; fontWeight?: "normal" | "lighter" | "bold" | "bolder" | number; textAlign?: CanvasTextAlign; } export interface XyWatermarkText { font?: XyWatermarkFont; text: string; } export type XyWatermarkContent = string | XyWatermarkText | Array; export type XyWatermarkSemanticDom = "content" | "mark" | "root"; export interface XyWatermarkSemanticProps { hasContent: boolean; hasImage: boolean; } export interface XyWatermarkLayerProps { content?: XyWatermarkContent; font?: XyWatermarkFont; gap?: [number, number]; height?: number; image?: string; onRemove?: () => void; offset?: [number, number]; rotate?: number; width?: number; zIndex?: number; } export interface XyWatermarkProps extends XyWatermarkLayerProps { classNames?: XyWatermarkClassNames; inherit?: boolean; styles?: XyWatermarkStyles; } export type XyWatermarkInheritedProps = Omit; export type XyWatermarkClassNames = XySemanticClassNames; export type XyWatermarkStyles = XySemanticStyles; export interface XyWatermarkSlots { default?: () => VNodeChild; }