import type { Emitter } from 'mitt' import type { Ref } from 'vue' /** * State shared in a group of inputs */ export type InputGroupState = { modelValue: Ref readonly: Ref disabled: Ref valid: Ref invalid: Ref } /** * State shared in a group of buttons */ export type ButtonGroupState = { modelValue: Ref< string | number | boolean | (string | number | boolean)[] | undefined > disabled: Ref toggle: Ref multiple: Ref unselectable: Ref modifiers: Ref } /** * State shared in a group of accordions */ export type AccordionGroupBusEvents = { toggle: { name: string, value: boolean } register: { name: string } unregister: { name: string } expand: { name?: string | string[] } collapse: { name?: string | string[] } } export type AccordionGroupState = { disabled: Ref modifiers: Ref bus: Emitter } /** * State shared in a group of alerts */ export type AlertGroupBusEvents = { close: string } export type AlertGroupState = { name?: Ref bus?: Emitter }