import type { VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export type XyProgressStatus = "danger" | "normal" | "success" | "warning"; export type XyProgressSize = "default" | "mini" | "small"; export type XyProgressVariant = "circle" | "dashboard" | "line"; export type XyProgressSemanticDom = "bar" | "info" | "line" | "root" | "trail"; export interface XyProgressSemanticProps { active: boolean; indeterminate: boolean; percent: number; showInfo: boolean; size: XyProgressSize; status: XyProgressStatus; variant: XyProgressVariant; } export type XyProgressClassNames = XySemanticClassNames; export type XyProgressStyles = XySemanticStyles; export interface XyProgressInfoSlotProps { percent: number; status: XyProgressStatus; } export type XyProgressFormat = (percent: number, status: XyProgressStatus) => VNodeChild; export interface XyProgressProps { active?: boolean; ariaLabel?: string; classNames?: XyProgressClassNames; format?: XyProgressFormat; indeterminate?: boolean; percent?: number; showInfo?: boolean; size?: XyProgressSize; status?: XyProgressStatus; strokeColor?: string; strokeWidth?: number | string; styles?: XyProgressStyles; trailColor?: string; variant?: XyProgressVariant; } export interface XyProgressSlots { info?: (props: XyProgressInfoSlotProps) => VNodeChild; }