import type { CSSProperties, VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; import type { XyIconName } from "../icon"; export type XyResultStatus = "403" | "404" | "500" | "error" | "info" | "success" | "warning"; export type XyResultSize = "lg" | "md" | "sm"; export type XyResultLayout = "center" | "left"; export type XyResultImagePreset = XyResultStatus; export type XyResultImage = XyResultImagePreset | (string & {}) | false; export type XyResultTitleLevel = 1 | 2 | 3 | 4 | 5; export type XyResultVisualType = "icon" | "image" | "none"; export type XyResultSemanticDom = "content" | "extra" | "icon" | "image" | "root" | "subTitle" | "title" | "visual"; export interface XyResultSemanticProps { hasExtra: boolean; hasSubTitle: boolean; hasTitle: boolean; layout: XyResultLayout; size: XyResultSize; status: XyResultStatus; visual: XyResultVisualType; } export type XyResultClassNames = XySemanticClassNames; export type XyResultStyles = XySemanticStyles; export interface XyResultProps { classNames?: XyResultClassNames; extra?: string | VNodeChild; icon?: boolean | XyIconName; image?: XyResultImage; imageAlt?: string; imageStyle?: CSSProperties; layout?: XyResultLayout; size?: XyResultSize; status?: XyResultStatus; styles?: XyResultStyles; subTitle?: string | VNodeChild; title?: string | VNodeChild; titleLevel?: XyResultTitleLevel; } export interface XyResultSlots { default?: () => VNodeChild; extra?: () => VNodeChild; icon?: () => VNodeChild; image?: () => VNodeChild; subTitle?: () => VNodeChild; title?: () => VNodeChild; }