import type { CSSProperties, VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export type XySplitterLayout = "horizontal" | "vertical"; export type XySplitterSize = number | string; export type XySplitterSemanticDom = "handle" | "root"; export interface XySplitterSemanticProps { layout: XySplitterLayout; panelCount: number; resizing: boolean; } export type XySplitterClassNames = XySemanticClassNames; export type XySplitterStyles = XySemanticStyles; export interface XySplitterProps { classNames?: XySplitterClassNames; layout?: XySplitterLayout; resizeStep?: number; styles?: XySplitterStyles; } export interface XySplitterSlots { default?: () => VNodeChild; } export interface XySplitterResizeEvent { layout: XySplitterLayout; sizes: number[]; } export type XySplitterPanelSemanticDom = "root"; export interface XySplitterPanelSemanticProps { resizable: boolean; size?: XySplitterSize; } export type XySplitterPanelClassNames = XySemanticClassNames; export type XySplitterPanelStyles = XySemanticStyles; export interface XySplitterPanelProps { classNames?: XySplitterPanelClassNames; defaultSize?: XySplitterSize; max?: XySplitterSize; min?: XySplitterSize; resizable?: boolean; size?: XySplitterSize; styles?: XySplitterPanelStyles; } export interface XySplitterPanelSlots { default?: () => VNodeChild; } export type XySplitterPanelStyle = CSSProperties;