import type { CSSProperties, VNodeChild } from "vue"; import type { XyResponsiveBreakpoint, XySemanticClassNames, XySemanticStyles } from "../core"; export type XyGridAlign = "center" | "end" | "start" | "stretch"; export type XyGridAutoFlow = "column" | "column dense" | "row" | "row dense"; export type XyGridColumns = number | Partial>; export type XyGridGapPreset = "lg" | "md" | "sm"; export type XyGridGapValue = XyGridGapPreset | number; export type XyGridGap = XyGridGapValue | [XyGridGapValue, XyGridGapValue]; export type XyGridSemanticDom = "root"; export interface XyGridSemanticProps { align: XyGridAlign; autoFit: boolean; autoFlow: XyGridAutoFlow; columns: number; columnGap: number; justify: XyGridAlign; minItemWidth: number; rowGap: number; } export type XyGridClassNames = XySemanticClassNames; export type XyGridStyles = XySemanticStyles; export interface XyGridProps { align?: XyGridAlign; autoFit?: boolean; autoFlow?: XyGridAutoFlow; classNames?: XyGridClassNames; columnGap?: XyGridGapValue; columns?: XyGridColumns; gap?: XyGridGap; justify?: XyGridAlign; minItemWidth?: number; rowGap?: XyGridGapValue; styles?: XyGridStyles; } export interface XyGridSlots { default?: () => VNodeChild; } export type XyGridItemSemanticDom = "root"; export interface XyGridItemSemanticProps { alignSelf: XyGridAlign | undefined; justifySelf: XyGridAlign | undefined; order: number | undefined; rowSpan: number; span: number; } export type XyGridItemClassNames = XySemanticClassNames; export type XyGridItemStyles = XySemanticStyles; export interface XyGridItemProps { alignSelf?: XyGridAlign; classNames?: XyGridItemClassNames; justifySelf?: XyGridAlign; order?: number; rowSpan?: number; span?: number; styles?: XyGridItemStyles; } export interface XyGridItemSlots { default?: () => VNodeChild; } export type XyGridItemStyle = CSSProperties;