import type { VNodeChild } from "vue"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export type XyCollapseKey = string | number; export type XyCollapseExpandIconPosition = "end" | "start"; export type XyCollapsePanelCollapsible = "header" | "icon"; export type XyCollapseSize = "lg" | "md" | "sm"; export interface XyCollapseProps { accordion?: boolean; animated?: boolean; bordered?: boolean; classNames?: XyCollapseClassNames; defaultActiveKeys?: XyCollapseKey | XyCollapseKey[]; destroyInactivePanel?: boolean; expandIconPosition?: XyCollapseExpandIconPosition; ghost?: boolean; modelValue?: XyCollapseKey | XyCollapseKey[]; size?: XyCollapseSize; styles?: XyCollapseStyles; } export interface XyCollapseSemanticProps { accordion: boolean; bordered: boolean; ghost: boolean; size: XyCollapseSize; } export type XyCollapseClassNames = XySemanticClassNames<"root", XyCollapseSemanticProps>; export type XyCollapseStyles = XySemanticStyles<"root", XyCollapseSemanticProps>; export interface XyCollapseExpandIconSlotProps { active: boolean; disabled: boolean; name: XyCollapseKey; } export interface XyCollapseSlots { default?: () => VNodeChild; expandIcon?: (props: XyCollapseExpandIconSlotProps) => VNodeChild; } export interface XyCollapsePanelProps { classNames?: XyCollapsePanelClassNames; collapsible?: XyCollapsePanelCollapsible; disabled?: boolean; name: XyCollapseKey; showArrow?: boolean; styles?: XyCollapsePanelStyles; title?: string; } export type XyCollapsePanelSemanticDom = "chevron" | "content" | "extra" | "heading" | "root" | "title" | "trigger"; export interface XyCollapsePanelSemanticProps { active: boolean; disabled: boolean; name: XyCollapseKey; } export type XyCollapsePanelClassNames = XySemanticClassNames; export type XyCollapsePanelStyles = XySemanticStyles; export interface XyCollapsePanelSlots { default?: () => VNodeChild; expandIcon?: (props: XyCollapseExpandIconSlotProps) => VNodeChild; extra?: () => VNodeChild; header?: () => VNodeChild; }