import type { VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export type XySpinSize = "default" | "large" | "lg" | "md" | "middle" | "small" | "sm"; export type XySpinResolvedSize = "lg" | "md" | "sm"; export type XySpinVariant = "dots" | "pulse" | "ring"; export type XySpinMode = "fullscreen" | "nested" | "standalone"; export type XySpinSemanticDom = "content" | "dot" | "indicator" | "overlay" | "root" | "tip"; export interface XySpinSemanticProps { fullscreen: boolean; hasTip: boolean; mode: XySpinMode; size: XySpinResolvedSize; spinning: boolean; variant: XySpinVariant; } export type XySpinClassNames = XySemanticClassNames; export type XySpinStyles = XySemanticStyles; export interface XySpinProps { ariaLabel?: string; classNames?: XySpinClassNames; delay?: number; fullscreen?: boolean; indicator?: VNodeChild; size?: XySpinSize; spinning?: boolean; styles?: XySpinStyles; tip?: VNodeChild; variant?: XySpinVariant; } export interface XySpinSlots { default?: () => VNodeChild; indicator?: () => VNodeChild; tip?: () => VNodeChild; }