import type { XySemanticClassNames, XySemanticStyles } from "../core"; export type XySkeletonType = "avatar" | "button" | "image" | "input" | "text"; export type XySkeletonSize = "default" | "large" | "lg" | "md" | "middle" | "medium" | "small" | "sm" | number | string; export type XySkeletonShape = "circle" | "round" | "square"; export type XySkeletonWidth = number | string; export interface XySkeletonAvatarConfig { shape?: "circle" | "square"; size?: XySkeletonSize; } export interface XySkeletonTitleConfig { width?: XySkeletonWidth; } export interface XySkeletonParagraphConfig { rows?: number; width?: XySkeletonWidth | XySkeletonWidth[]; } export type XySkeletonSemanticDom = "avatar" | "content" | "element" | "paragraph" | "root" | "row" | "title"; export interface XySkeletonSemanticProps { animated: boolean; block: boolean; hasAvatar: boolean; hasParagraph: boolean; hasTitle: boolean; loading: boolean; rows: number; shape: XySkeletonShape; size: "lg" | "md" | "sm"; type: XySkeletonType; } export type XySkeletonClassNames = XySemanticClassNames; export type XySkeletonStyles = XySemanticStyles; export interface XySkeletonProps { animated?: boolean; ariaLabel?: string; avatar?: boolean | XySkeletonAvatarConfig; block?: boolean; classNames?: XySkeletonClassNames; height?: number | string; loading?: boolean; paragraph?: boolean | XySkeletonParagraphConfig; rows?: number; shape?: XySkeletonShape; size?: XySkeletonSize; styles?: XySkeletonStyles; title?: boolean | XySkeletonTitleConfig; type?: XySkeletonType; width?: number | string; }