import type { CSSProperties, VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; import type { XyResponsiveBreakpoint } from "../core"; export type XyDescriptionsLayout = "horizontal" | "vertical"; export type XyDescriptionsSize = "lg" | "md" | "sm"; export type XyDescriptionsColumn = number | Partial>; export type XyDescriptionsItemSpan = "filled" | number; export type XyDescriptionsSemanticDom = "content" | "extra" | "header" | "item" | "label" | "root" | "title" | "view"; export interface XyDescriptionsSemanticProps { bordered: boolean; colon: boolean; column: number; hasExtra: boolean; hasTitle: boolean; layout: XyDescriptionsLayout; size: XyDescriptionsSize; } export type XyDescriptionsClassNames = XySemanticClassNames; export type XyDescriptionsStyles = XySemanticStyles; export interface XyDescriptionsItemConfig { classNames?: XyDescriptionsItemClassNames; children?: VNodeChild; content?: VNodeChild | string; contentStyle?: CSSProperties; key?: string | number; label?: VNodeChild | string; labelStyle?: CSSProperties; span?: XyDescriptionsItemSpan; styles?: XyDescriptionsItemStyles; } export interface XyDescriptionsProps { bordered?: boolean; colon?: boolean; column?: XyDescriptionsColumn; contentStyle?: CSSProperties; extra?: VNodeChild | string; items?: XyDescriptionsItemConfig[]; layout?: XyDescriptionsLayout; size?: XyDescriptionsSize; labelStyle?: CSSProperties; title?: VNodeChild | string; classNames?: XyDescriptionsClassNames; styles?: XyDescriptionsStyles; } export interface XyDescriptionsSlots { default?: () => unknown; extra?: () => unknown; title?: () => unknown; } export type XyDescriptionsItemSemanticDom = "content" | "item" | "label"; export interface XyDescriptionsItemSemanticProps { bordered: boolean; colon: boolean; layout: XyDescriptionsLayout; span: XyDescriptionsItemSpan; } export type XyDescriptionsItemClassNames = XySemanticClassNames; export type XyDescriptionsItemStyles = XySemanticStyles; export interface XyDescriptionsItemProps { contentStyle?: CSSProperties; label?: VNodeChild | string; labelStyle?: CSSProperties; span?: XyDescriptionsItemSpan; classNames?: XyDescriptionsItemClassNames; styles?: XyDescriptionsItemStyles; } export interface XyDescriptionsItemSlots { default?: () => unknown; label?: () => unknown; }