import type { VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export type XySpaceAlign = "baseline" | "center" | "end" | "start"; export type XySpaceDirection = "horizontal" | "vertical"; export type XySpacePresetSize = "lg" | "large" | "md" | "middle" | "sm" | "small"; export type XySpaceSize = XySpacePresetSize | number | [number, number]; export type XySpaceSemanticDom = "item" | "root" | "separator"; export interface XySpaceSemanticProps { align: XySpaceAlign; direction: XySpaceDirection; hasSeparator: boolean; size: XySpaceSize; wrap: boolean; } export type XySpaceClassNames = XySemanticClassNames; export type XySpaceStyles = XySemanticStyles; export interface XySpaceProps { align?: XySpaceAlign; block?: boolean; classNames?: XySpaceClassNames; direction?: XySpaceDirection; orientation?: XySpaceDirection; separator?: string; size?: XySpaceSize; /** @deprecated Use separator instead. */ split?: string; styles?: XySpaceStyles; wrap?: boolean; } export interface XySpaceCompactProps { block?: boolean; direction?: XySpaceDirection; orientation?: XySpaceDirection; } export interface XySpaceSeparatorSlotProps { direction: XySpaceDirection; index: number; size: XySpaceSize; } export interface XySpaceSlots { default?: () => VNodeChild; separator?: (props: XySpaceSeparatorSlotProps) => VNodeChild; }