950 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			950 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import * as vue from 'vue'; | ||
|  | import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, JSXComponent, PropType, WritableComputedRef, Ref, CSSProperties, ComputedRef } from 'vue'; | ||
|  | 
 | ||
|  | type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = { | ||
|  |     $children?: (VNodeChild | (T extends { | ||
|  |         default: infer V; | ||
|  |     } ? V : {}) | { | ||
|  |         [K in keyof T]?: T[K]; | ||
|  |     }); | ||
|  |     'v-slots'?: { | ||
|  |         [K in keyof T]?: T[K] | false; | ||
|  |     }; | ||
|  | } & { | ||
|  |     [K in keyof T as `v-slot:${K & string}`]?: T[K] | false; | ||
|  | }; | ||
|  | type RawSlots = Record<string, unknown>; | ||
|  | type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild; | ||
|  | type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]; | ||
|  | type MakeInternalSlots<T extends RawSlots> = { | ||
|  |     [K in keyof T]: Slot<T[K]>; | ||
|  | }; | ||
|  | type MakeSlots<T extends RawSlots> = { | ||
|  |     [K in keyof T]: VueSlot<T[K]>; | ||
|  | }; | ||
|  | type GenericProps<Props, Slots extends Record<string, unknown>> = { | ||
|  |     $props: Props & SlotsToProps<Slots>; | ||
|  |     $slots: MakeSlots<Slots>; | ||
|  | }; | ||
|  | interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> { | ||
|  |     filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>; | ||
|  | } | ||
|  | 
 | ||
|  | declare function deepEqual(a: any, b: any): boolean; | ||
|  | 
 | ||
|  | type Density = null | 'default' | 'comfortable' | 'compact'; | ||
|  | 
 | ||
|  | type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent; | ||
|  | declare const IconValue: PropType<IconValue>; | ||
|  | 
 | ||
|  | type SelectionControlSlot = { | ||
|  |     model: WritableComputedRef<boolean>; | ||
|  |     textColorClasses: Ref<string[]>; | ||
|  |     textColorStyles: Ref<CSSProperties>; | ||
|  |     backgroundColorClasses: Ref<string[]>; | ||
|  |     backgroundColorStyles: Ref<CSSProperties>; | ||
|  |     inputNode: VNode; | ||
|  |     icon: IconValue | undefined; | ||
|  |     props: { | ||
|  |         onBlur: (e: Event) => void; | ||
|  |         onFocus: (e: FocusEvent) => void; | ||
|  |         id: string; | ||
|  |     }; | ||
|  | }; | ||
|  | type VSelectionControlSlots = { | ||
|  |     default: { | ||
|  |         backgroundColorClasses: Ref<string[]>; | ||
|  |         backgroundColorStyles: Ref<CSSProperties>; | ||
|  |     }; | ||
|  |     label: { | ||
|  |         label: string | undefined; | ||
|  |         props: Record<string, unknown>; | ||
|  |     }; | ||
|  |     input: SelectionControlSlot; | ||
|  | }; | ||
|  | 
 | ||
|  | type ValidationResult = string | boolean; | ||
|  | type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>); | ||
|  | 
 | ||
|  | type VMessageSlot = { | ||
|  |     message: string; | ||
|  | }; | ||
|  | 
 | ||
|  | interface VInputSlot { | ||
|  |     id: ComputedRef<string>; | ||
|  |     messagesId: ComputedRef<string>; | ||
|  |     isDirty: ComputedRef<boolean>; | ||
|  |     isDisabled: ComputedRef<boolean>; | ||
|  |     isReadonly: ComputedRef<boolean>; | ||
|  |     isPristine: Ref<boolean>; | ||
|  |     isValid: ComputedRef<boolean | null>; | ||
|  |     isValidating: Ref<boolean>; | ||
|  |     reset: () => void; | ||
|  |     resetValidation: () => void; | ||
|  |     validate: () => void; | ||
|  | } | ||
|  | type VInputSlots = { | ||
|  |     default: VInputSlot; | ||
|  |     prepend: VInputSlot; | ||
|  |     append: VInputSlot; | ||
|  |     details: VInputSlot; | ||
|  |     message: VMessageSlot; | ||
|  | }; | ||
|  | 
 | ||
|  | type VCheckboxSlots = Omit<VInputSlots, 'default'> & VSelectionControlSlots; | ||
|  | declare const VCheckbox: { | ||
|  |     new (...args: any[]): vue.CreateComponentPublicInstance<{ | ||
|  |         error: boolean; | ||
|  |         direction: "horizontal" | "vertical"; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         messages: string | readonly string[]; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |         focused: boolean; | ||
|  |         errorMessages: string | readonly string[] | null; | ||
|  |         maxErrors: string | number; | ||
|  |         rules: readonly ValidationRule[]; | ||
|  |         centerAffix: boolean; | ||
|  |         hideSpinButtons: boolean; | ||
|  |         persistentHint: boolean; | ||
|  |     } & { | ||
|  |         type?: string | undefined; | ||
|  |         id?: string | undefined; | ||
|  |         name?: string | undefined; | ||
|  |         color?: string | undefined; | ||
|  |         value?: any; | ||
|  |         label?: string | undefined; | ||
|  |         class?: any; | ||
|  |         theme?: string | undefined; | ||
|  |         prependIcon?: IconValue | undefined; | ||
|  |         appendIcon?: IconValue | undefined; | ||
|  |         defaultsTarget?: string | undefined; | ||
|  |         baseColor?: string | undefined; | ||
|  |         trueValue?: any; | ||
|  |         falseValue?: any; | ||
|  |         'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |         'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |         'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; | ||
|  |         validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; | ||
|  |         validationValue?: any; | ||
|  |         hint?: string | undefined; | ||
|  |         hideDetails?: boolean | "auto" | undefined; | ||
|  |     } & { | ||
|  |         "onUpdate:focused"?: ((focused: boolean) => any) | undefined; | ||
|  |     }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{ | ||
|  |         'update:modelValue': (value: any) => boolean; | ||
|  |         'update:focused': (focused: boolean) => boolean; | ||
|  |     }, "$children" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "update:modelValue" | "v-slot:input" | "v-slot:label" | "v-slot:message" | "v-slot:details">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { | ||
|  |         error: boolean; | ||
|  |         direction: "horizontal" | "vertical"; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         messages: string | readonly string[]; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |         focused: boolean; | ||
|  |         errorMessages: string | readonly string[] | null; | ||
|  |         maxErrors: string | number; | ||
|  |         rules: readonly ValidationRule[]; | ||
|  |         centerAffix: boolean; | ||
|  |         hideSpinButtons: boolean; | ||
|  |         persistentHint: boolean; | ||
|  |     } & { | ||
|  |         type?: string | undefined; | ||
|  |         id?: string | undefined; | ||
|  |         name?: string | undefined; | ||
|  |         color?: string | undefined; | ||
|  |         value?: any; | ||
|  |         label?: string | undefined; | ||
|  |         class?: any; | ||
|  |         theme?: string | undefined; | ||
|  |         prependIcon?: IconValue | undefined; | ||
|  |         appendIcon?: IconValue | undefined; | ||
|  |         defaultsTarget?: string | undefined; | ||
|  |         baseColor?: string | undefined; | ||
|  |         trueValue?: any; | ||
|  |         falseValue?: any; | ||
|  |         'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |         'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |         'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; | ||
|  |         validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; | ||
|  |         validationValue?: any; | ||
|  |         hint?: string | undefined; | ||
|  |         hideDetails?: boolean | "auto" | undefined; | ||
|  |     } & { | ||
|  |         "onUpdate:focused"?: ((focused: boolean) => any) | undefined; | ||
|  |     }, { | ||
|  |         error: boolean; | ||
|  |         direction: "horizontal" | "vertical"; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         messages: string | readonly string[]; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |         focused: boolean; | ||
|  |         errorMessages: string | readonly string[] | null; | ||
|  |         maxErrors: string | number; | ||
|  |         rules: readonly ValidationRule[]; | ||
|  |         centerAffix: boolean; | ||
|  |         hideSpinButtons: boolean; | ||
|  |         persistentHint: boolean; | ||
|  |     }, true, {}, vue.SlotsType<Partial<{ | ||
|  |         message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         details: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         append: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         prepend: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         default: (arg: { | ||
|  |             backgroundColorClasses: vue.Ref<string[]>; | ||
|  |             backgroundColorStyles: vue.Ref<vue.CSSProperties>; | ||
|  |         }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         label: (arg: { | ||
|  |             label: string | undefined; | ||
|  |             props: Record<string, unknown>; | ||
|  |         }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         input: (arg: SelectionControlSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |     }>>, { | ||
|  |         P: {}; | ||
|  |         B: {}; | ||
|  |         D: {}; | ||
|  |         C: {}; | ||
|  |         M: {}; | ||
|  |         Defaults: {}; | ||
|  |     }, { | ||
|  |         error: boolean; | ||
|  |         direction: "horizontal" | "vertical"; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         messages: string | readonly string[]; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |         focused: boolean; | ||
|  |         errorMessages: string | readonly string[] | null; | ||
|  |         maxErrors: string | number; | ||
|  |         rules: readonly ValidationRule[]; | ||
|  |         centerAffix: boolean; | ||
|  |         hideSpinButtons: boolean; | ||
|  |         persistentHint: boolean; | ||
|  |     } & { | ||
|  |         type?: string | undefined; | ||
|  |         id?: string | undefined; | ||
|  |         name?: string | undefined; | ||
|  |         color?: string | undefined; | ||
|  |         value?: any; | ||
|  |         label?: string | undefined; | ||
|  |         class?: any; | ||
|  |         theme?: string | undefined; | ||
|  |         prependIcon?: IconValue | undefined; | ||
|  |         appendIcon?: IconValue | undefined; | ||
|  |         defaultsTarget?: string | undefined; | ||
|  |         baseColor?: string | undefined; | ||
|  |         trueValue?: any; | ||
|  |         falseValue?: any; | ||
|  |         'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |         'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |         'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; | ||
|  |         validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; | ||
|  |         validationValue?: any; | ||
|  |         hint?: string | undefined; | ||
|  |         hideDetails?: boolean | "auto" | undefined; | ||
|  |     } & { | ||
|  |         "onUpdate:focused"?: ((focused: boolean) => any) | undefined; | ||
|  |     }, {}, {}, {}, {}, { | ||
|  |         error: boolean; | ||
|  |         direction: "horizontal" | "vertical"; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         messages: string | readonly string[]; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |         focused: boolean; | ||
|  |         errorMessages: string | readonly string[] | null; | ||
|  |         maxErrors: string | number; | ||
|  |         rules: readonly ValidationRule[]; | ||
|  |         centerAffix: boolean; | ||
|  |         hideSpinButtons: boolean; | ||
|  |         persistentHint: boolean; | ||
|  |     }>; | ||
|  |     __isFragment?: undefined; | ||
|  |     __isTeleport?: undefined; | ||
|  |     __isSuspense?: undefined; | ||
|  | } & vue.ComponentOptionsBase<{ | ||
|  |     error: boolean; | ||
|  |     direction: "horizontal" | "vertical"; | ||
|  |     style: vue.StyleValue; | ||
|  |     disabled: boolean | null; | ||
|  |     multiple: boolean | null; | ||
|  |     readonly: boolean | null; | ||
|  |     indeterminate: boolean; | ||
|  |     messages: string | readonly string[]; | ||
|  |     density: Density; | ||
|  |     ripple: boolean; | ||
|  |     falseIcon: NonNullable<IconValue>; | ||
|  |     trueIcon: NonNullable<IconValue>; | ||
|  |     valueComparator: typeof deepEqual; | ||
|  |     indeterminateIcon: IconValue; | ||
|  |     focused: boolean; | ||
|  |     errorMessages: string | readonly string[] | null; | ||
|  |     maxErrors: string | number; | ||
|  |     rules: readonly ValidationRule[]; | ||
|  |     centerAffix: boolean; | ||
|  |     hideSpinButtons: boolean; | ||
|  |     persistentHint: boolean; | ||
|  | } & { | ||
|  |     type?: string | undefined; | ||
|  |     id?: string | undefined; | ||
|  |     name?: string | undefined; | ||
|  |     color?: string | undefined; | ||
|  |     value?: any; | ||
|  |     label?: string | undefined; | ||
|  |     class?: any; | ||
|  |     theme?: string | undefined; | ||
|  |     prependIcon?: IconValue | undefined; | ||
|  |     appendIcon?: IconValue | undefined; | ||
|  |     defaultsTarget?: string | undefined; | ||
|  |     baseColor?: string | undefined; | ||
|  |     trueValue?: any; | ||
|  |     falseValue?: any; | ||
|  |     'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |     'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; | ||
|  |     'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; | ||
|  |     validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined; | ||
|  |     validationValue?: any; | ||
|  |     hint?: string | undefined; | ||
|  |     hideDetails?: boolean | "auto" | undefined; | ||
|  | } & { | ||
|  |     "onUpdate:focused"?: ((focused: boolean) => any) | undefined; | ||
|  | }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{ | ||
|  |     'update:modelValue': (value: any) => boolean; | ||
|  |     'update:focused': (focused: boolean) => boolean; | ||
|  | }, "$children" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "update:modelValue" | "v-slot:input" | "v-slot:label" | "v-slot:message" | "v-slot:details">, string, { | ||
|  |     error: boolean; | ||
|  |     direction: "horizontal" | "vertical"; | ||
|  |     style: vue.StyleValue; | ||
|  |     disabled: boolean | null; | ||
|  |     multiple: boolean | null; | ||
|  |     readonly: boolean | null; | ||
|  |     indeterminate: boolean; | ||
|  |     messages: string | readonly string[]; | ||
|  |     density: Density; | ||
|  |     ripple: boolean; | ||
|  |     falseIcon: NonNullable<IconValue>; | ||
|  |     trueIcon: NonNullable<IconValue>; | ||
|  |     valueComparator: typeof deepEqual; | ||
|  |     indeterminateIcon: IconValue; | ||
|  |     focused: boolean; | ||
|  |     errorMessages: string | readonly string[] | null; | ||
|  |     maxErrors: string | number; | ||
|  |     rules: readonly ValidationRule[]; | ||
|  |     centerAffix: boolean; | ||
|  |     hideSpinButtons: boolean; | ||
|  |     persistentHint: boolean; | ||
|  | }, {}, string, vue.SlotsType<Partial<{ | ||
|  |     message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     details: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     append: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     prepend: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     default: (arg: { | ||
|  |         backgroundColorClasses: vue.Ref<string[]>; | ||
|  |         backgroundColorStyles: vue.Ref<vue.CSSProperties>; | ||
|  |     }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     label: (arg: { | ||
|  |         label: string | undefined; | ||
|  |         props: Record<string, unknown>; | ||
|  |     }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     input: (arg: SelectionControlSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  | }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: { | ||
|  |     modelValue?: T | null | undefined; | ||
|  |     'onUpdate:modelValue'?: ((value: T | null) => void) | undefined; | ||
|  | }, slots: VCheckboxSlots) => GenericProps<{ | ||
|  |     modelValue?: T | null | undefined; | ||
|  |     'onUpdate:modelValue'?: ((value: T | null) => void) | undefined; | ||
|  | }, VCheckboxSlots>) & FilterPropsOptions<{ | ||
|  |     type: StringConstructor; | ||
|  |     error: BooleanConstructor; | ||
|  |     id: StringConstructor; | ||
|  |     name: StringConstructor; | ||
|  |     color: StringConstructor; | ||
|  |     value: null; | ||
|  |     label: StringConstructor; | ||
|  |     style: { | ||
|  |         type: vue.PropType<vue.StyleValue>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     disabled: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     multiple: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     readonly: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     class: vue.PropType<any>; | ||
|  |     indeterminate: BooleanConstructor; | ||
|  |     theme: StringConstructor; | ||
|  |     density: { | ||
|  |         type: vue.PropType<Density>; | ||
|  |         default: string; | ||
|  |         validator: (v: any) => boolean; | ||
|  |     }; | ||
|  |     modelValue: null; | ||
|  |     ripple: { | ||
|  |         type: BooleanConstructor; | ||
|  |         default: boolean; | ||
|  |     }; | ||
|  |     defaultsTarget: StringConstructor; | ||
|  |     falseIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     trueIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     valueComparator: { | ||
|  |         type: vue.PropType<typeof deepEqual>; | ||
|  |         default: typeof deepEqual; | ||
|  |     }; | ||
|  |     baseColor: StringConstructor; | ||
|  |     trueValue: null; | ||
|  |     falseValue: null; | ||
|  |     indeterminateIcon: { | ||
|  |         type: vue.PropType<IconValue>; | ||
|  |         default: string; | ||
|  |     }; | ||
|  |     focused: BooleanConstructor; | ||
|  |     'onUpdate:focused': vue.PropType<(args_0: boolean) => void>; | ||
|  |     errorMessages: { | ||
|  |         type: vue.PropType<string | readonly string[] | null>; | ||
|  |         default: () => never[]; | ||
|  |     }; | ||
|  |     maxErrors: { | ||
|  |         type: (StringConstructor | NumberConstructor)[]; | ||
|  |         default: number; | ||
|  |     }; | ||
|  |     rules: { | ||
|  |         type: vue.PropType<readonly ValidationRule[]>; | ||
|  |         default: () => never[]; | ||
|  |     }; | ||
|  |     validateOn: vue.PropType<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>; | ||
|  |     validationValue: null; | ||
|  |     appendIcon: vue.PropType<IconValue>; | ||
|  |     centerAffix: { | ||
|  |         type: BooleanConstructor; | ||
|  |         default: boolean; | ||
|  |     }; | ||
|  |     prependIcon: vue.PropType<IconValue>; | ||
|  |     hideDetails: vue.PropType<boolean | "auto">; | ||
|  |     hideSpinButtons: BooleanConstructor; | ||
|  |     hint: StringConstructor; | ||
|  |     persistentHint: BooleanConstructor; | ||
|  |     messages: { | ||
|  |         type: vue.PropType<string | readonly string[]>; | ||
|  |         default: () => never[]; | ||
|  |     }; | ||
|  |     direction: { | ||
|  |         type: vue.PropType<"horizontal" | "vertical">; | ||
|  |         default: string; | ||
|  |         validator: (v: any) => boolean; | ||
|  |     }; | ||
|  |     'onClick:prepend': vue.PropType<(args_0: MouseEvent) => void>; | ||
|  |     'onClick:append': vue.PropType<(args_0: MouseEvent) => void>; | ||
|  | }, vue.ExtractPropTypes<{ | ||
|  |     type: StringConstructor; | ||
|  |     error: BooleanConstructor; | ||
|  |     id: StringConstructor; | ||
|  |     name: StringConstructor; | ||
|  |     color: StringConstructor; | ||
|  |     value: null; | ||
|  |     label: StringConstructor; | ||
|  |     style: { | ||
|  |         type: vue.PropType<vue.StyleValue>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     disabled: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     multiple: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     readonly: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     class: vue.PropType<any>; | ||
|  |     indeterminate: BooleanConstructor; | ||
|  |     theme: StringConstructor; | ||
|  |     density: { | ||
|  |         type: vue.PropType<Density>; | ||
|  |         default: string; | ||
|  |         validator: (v: any) => boolean; | ||
|  |     }; | ||
|  |     modelValue: null; | ||
|  |     ripple: { | ||
|  |         type: BooleanConstructor; | ||
|  |         default: boolean; | ||
|  |     }; | ||
|  |     defaultsTarget: StringConstructor; | ||
|  |     falseIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     trueIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     valueComparator: { | ||
|  |         type: vue.PropType<typeof deepEqual>; | ||
|  |         default: typeof deepEqual; | ||
|  |     }; | ||
|  |     baseColor: StringConstructor; | ||
|  |     trueValue: null; | ||
|  |     falseValue: null; | ||
|  |     indeterminateIcon: { | ||
|  |         type: vue.PropType<IconValue>; | ||
|  |         default: string; | ||
|  |     }; | ||
|  |     focused: BooleanConstructor; | ||
|  |     'onUpdate:focused': vue.PropType<(args_0: boolean) => void>; | ||
|  |     errorMessages: { | ||
|  |         type: vue.PropType<string | readonly string[] | null>; | ||
|  |         default: () => never[]; | ||
|  |     }; | ||
|  |     maxErrors: { | ||
|  |         type: (StringConstructor | NumberConstructor)[]; | ||
|  |         default: number; | ||
|  |     }; | ||
|  |     rules: { | ||
|  |         type: vue.PropType<readonly ValidationRule[]>; | ||
|  |         default: () => never[]; | ||
|  |     }; | ||
|  |     validateOn: vue.PropType<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>; | ||
|  |     validationValue: null; | ||
|  |     appendIcon: vue.PropType<IconValue>; | ||
|  |     centerAffix: { | ||
|  |         type: BooleanConstructor; | ||
|  |         default: boolean; | ||
|  |     }; | ||
|  |     prependIcon: vue.PropType<IconValue>; | ||
|  |     hideDetails: vue.PropType<boolean | "auto">; | ||
|  |     hideSpinButtons: BooleanConstructor; | ||
|  |     hint: StringConstructor; | ||
|  |     persistentHint: BooleanConstructor; | ||
|  |     messages: { | ||
|  |         type: vue.PropType<string | readonly string[]>; | ||
|  |         default: () => never[]; | ||
|  |     }; | ||
|  |     direction: { | ||
|  |         type: vue.PropType<"horizontal" | "vertical">; | ||
|  |         default: string; | ||
|  |         validator: (v: any) => boolean; | ||
|  |     }; | ||
|  |     'onClick:prepend': vue.PropType<(args_0: MouseEvent) => void>; | ||
|  |     'onClick:append': vue.PropType<(args_0: MouseEvent) => void>; | ||
|  | }>>; | ||
|  | type VCheckbox = InstanceType<typeof VCheckbox>; | ||
|  | 
 | ||
|  | declare const VCheckboxBtn: { | ||
|  |     new (...args: any[]): vue.CreateComponentPublicInstance<{ | ||
|  |         inline: boolean; | ||
|  |         error: boolean; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |     } & { | ||
|  |         type?: string | undefined; | ||
|  |         id?: string | undefined; | ||
|  |         name?: string | undefined; | ||
|  |         color?: string | undefined; | ||
|  |         value?: any; | ||
|  |         label?: string | undefined; | ||
|  |         class?: any; | ||
|  |         theme?: string | undefined; | ||
|  |         defaultsTarget?: string | undefined; | ||
|  |         baseColor?: string | undefined; | ||
|  |         trueValue?: any; | ||
|  |         falseValue?: any; | ||
|  |     } & { | ||
|  |         "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined; | ||
|  |     }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{ | ||
|  |         'update:modelValue': (value: any) => boolean; | ||
|  |         'update:indeterminate': (value: boolean) => boolean; | ||
|  |     }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue" | "v-slot:input" | "v-slot:label">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { | ||
|  |         inline: boolean; | ||
|  |         error: boolean; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |     } & { | ||
|  |         type?: string | undefined; | ||
|  |         id?: string | undefined; | ||
|  |         name?: string | undefined; | ||
|  |         color?: string | undefined; | ||
|  |         value?: any; | ||
|  |         label?: string | undefined; | ||
|  |         class?: any; | ||
|  |         theme?: string | undefined; | ||
|  |         defaultsTarget?: string | undefined; | ||
|  |         baseColor?: string | undefined; | ||
|  |         trueValue?: any; | ||
|  |         falseValue?: any; | ||
|  |     } & { | ||
|  |         "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined; | ||
|  |     }, { | ||
|  |         inline: boolean; | ||
|  |         error: boolean; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |     }, true, {}, vue.SlotsType<Partial<{ | ||
|  |         default: (arg: { | ||
|  |             backgroundColorClasses: vue.Ref<string[]>; | ||
|  |             backgroundColorStyles: vue.Ref<vue.CSSProperties>; | ||
|  |         }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         label: (arg: { | ||
|  |             label: string | undefined; | ||
|  |             props: Record<string, unknown>; | ||
|  |         }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |         input: (arg: SelectionControlSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |             [key: string]: any; | ||
|  |         }>[]; | ||
|  |     }>>, { | ||
|  |         P: {}; | ||
|  |         B: {}; | ||
|  |         D: {}; | ||
|  |         C: {}; | ||
|  |         M: {}; | ||
|  |         Defaults: {}; | ||
|  |     }, { | ||
|  |         inline: boolean; | ||
|  |         error: boolean; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |     } & { | ||
|  |         type?: string | undefined; | ||
|  |         id?: string | undefined; | ||
|  |         name?: string | undefined; | ||
|  |         color?: string | undefined; | ||
|  |         value?: any; | ||
|  |         label?: string | undefined; | ||
|  |         class?: any; | ||
|  |         theme?: string | undefined; | ||
|  |         defaultsTarget?: string | undefined; | ||
|  |         baseColor?: string | undefined; | ||
|  |         trueValue?: any; | ||
|  |         falseValue?: any; | ||
|  |     } & { | ||
|  |         "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined; | ||
|  |     }, {}, {}, {}, {}, { | ||
|  |         inline: boolean; | ||
|  |         error: boolean; | ||
|  |         style: vue.StyleValue; | ||
|  |         disabled: boolean | null; | ||
|  |         multiple: boolean | null; | ||
|  |         readonly: boolean | null; | ||
|  |         indeterminate: boolean; | ||
|  |         density: Density; | ||
|  |         ripple: boolean; | ||
|  |         falseIcon: NonNullable<IconValue>; | ||
|  |         trueIcon: NonNullable<IconValue>; | ||
|  |         valueComparator: typeof deepEqual; | ||
|  |         indeterminateIcon: IconValue; | ||
|  |     }>; | ||
|  |     __isFragment?: undefined; | ||
|  |     __isTeleport?: undefined; | ||
|  |     __isSuspense?: undefined; | ||
|  | } & vue.ComponentOptionsBase<{ | ||
|  |     inline: boolean; | ||
|  |     error: boolean; | ||
|  |     style: vue.StyleValue; | ||
|  |     disabled: boolean | null; | ||
|  |     multiple: boolean | null; | ||
|  |     readonly: boolean | null; | ||
|  |     indeterminate: boolean; | ||
|  |     density: Density; | ||
|  |     ripple: boolean; | ||
|  |     falseIcon: NonNullable<IconValue>; | ||
|  |     trueIcon: NonNullable<IconValue>; | ||
|  |     valueComparator: typeof deepEqual; | ||
|  |     indeterminateIcon: IconValue; | ||
|  | } & { | ||
|  |     type?: string | undefined; | ||
|  |     id?: string | undefined; | ||
|  |     name?: string | undefined; | ||
|  |     color?: string | undefined; | ||
|  |     value?: any; | ||
|  |     label?: string | undefined; | ||
|  |     class?: any; | ||
|  |     theme?: string | undefined; | ||
|  |     defaultsTarget?: string | undefined; | ||
|  |     baseColor?: string | undefined; | ||
|  |     trueValue?: any; | ||
|  |     falseValue?: any; | ||
|  | } & { | ||
|  |     "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined; | ||
|  | }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{ | ||
|  |     'update:modelValue': (value: any) => boolean; | ||
|  |     'update:indeterminate': (value: boolean) => boolean; | ||
|  | }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue" | "v-slot:input" | "v-slot:label">, string, { | ||
|  |     inline: boolean; | ||
|  |     error: boolean; | ||
|  |     style: vue.StyleValue; | ||
|  |     disabled: boolean | null; | ||
|  |     multiple: boolean | null; | ||
|  |     readonly: boolean | null; | ||
|  |     indeterminate: boolean; | ||
|  |     density: Density; | ||
|  |     ripple: boolean; | ||
|  |     falseIcon: NonNullable<IconValue>; | ||
|  |     trueIcon: NonNullable<IconValue>; | ||
|  |     valueComparator: typeof deepEqual; | ||
|  |     indeterminateIcon: IconValue; | ||
|  | }, {}, string, vue.SlotsType<Partial<{ | ||
|  |     default: (arg: { | ||
|  |         backgroundColorClasses: vue.Ref<string[]>; | ||
|  |         backgroundColorStyles: vue.Ref<vue.CSSProperties>; | ||
|  |     }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     label: (arg: { | ||
|  |         label: string | undefined; | ||
|  |         props: Record<string, unknown>; | ||
|  |     }) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  |     input: (arg: SelectionControlSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
|  |         [key: string]: any; | ||
|  |     }>[]; | ||
|  | }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: { | ||
|  |     modelValue?: T | undefined; | ||
|  |     'onUpdate:modelValue'?: ((value: T) => void) | undefined; | ||
|  | }, slots: VSelectionControlSlots) => GenericProps<{ | ||
|  |     modelValue?: T | undefined; | ||
|  |     'onUpdate:modelValue'?: ((value: T) => void) | undefined; | ||
|  | }, VSelectionControlSlots>) & FilterPropsOptions<{ | ||
|  |     theme: StringConstructor; | ||
|  |     density: { | ||
|  |         type: vue.PropType<Density>; | ||
|  |         default: string; | ||
|  |         validator: (v: any) => boolean; | ||
|  |     }; | ||
|  |     class: vue.PropType<any>; | ||
|  |     style: { | ||
|  |         type: vue.PropType<vue.StyleValue>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     color: StringConstructor; | ||
|  |     disabled: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     defaultsTarget: StringConstructor; | ||
|  |     error: BooleanConstructor; | ||
|  |     id: StringConstructor; | ||
|  |     inline: BooleanConstructor; | ||
|  |     falseIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     trueIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     ripple: { | ||
|  |         type: BooleanConstructor; | ||
|  |         default: boolean; | ||
|  |     }; | ||
|  |     multiple: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     name: StringConstructor; | ||
|  |     readonly: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     modelValue: null; | ||
|  |     type: StringConstructor; | ||
|  |     valueComparator: { | ||
|  |         type: vue.PropType<typeof deepEqual>; | ||
|  |         default: typeof deepEqual; | ||
|  |     }; | ||
|  |     label: StringConstructor; | ||
|  |     baseColor: StringConstructor; | ||
|  |     trueValue: null; | ||
|  |     falseValue: null; | ||
|  |     value: null; | ||
|  |     indeterminate: BooleanConstructor; | ||
|  |     indeterminateIcon: { | ||
|  |         type: vue.PropType<IconValue>; | ||
|  |         default: string; | ||
|  |     }; | ||
|  | }, vue.ExtractPropTypes<{ | ||
|  |     theme: StringConstructor; | ||
|  |     density: { | ||
|  |         type: vue.PropType<Density>; | ||
|  |         default: string; | ||
|  |         validator: (v: any) => boolean; | ||
|  |     }; | ||
|  |     class: vue.PropType<any>; | ||
|  |     style: { | ||
|  |         type: vue.PropType<vue.StyleValue>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     color: StringConstructor; | ||
|  |     disabled: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     defaultsTarget: StringConstructor; | ||
|  |     error: BooleanConstructor; | ||
|  |     id: StringConstructor; | ||
|  |     inline: BooleanConstructor; | ||
|  |     falseIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     trueIcon: { | ||
|  |         type: vue.PropType<NonNullable<IconValue>>; | ||
|  |         default: NonNullable<IconValue>; | ||
|  |     }; | ||
|  |     ripple: { | ||
|  |         type: BooleanConstructor; | ||
|  |         default: boolean; | ||
|  |     }; | ||
|  |     multiple: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     name: StringConstructor; | ||
|  |     readonly: { | ||
|  |         type: vue.PropType<boolean | null>; | ||
|  |         default: null; | ||
|  |     }; | ||
|  |     modelValue: null; | ||
|  |     type: StringConstructor; | ||
|  |     valueComparator: { | ||
|  |         type: vue.PropType<typeof deepEqual>; | ||
|  |         default: typeof deepEqual; | ||
|  |     }; | ||
|  |     label: StringConstructor; | ||
|  |     baseColor: StringConstructor; | ||
|  |     trueValue: null; | ||
|  |     falseValue: null; | ||
|  |     value: null; | ||
|  |     indeterminate: BooleanConstructor; | ||
|  |     indeterminateIcon: { | ||
|  |         type: vue.PropType<IconValue>; | ||
|  |         default: string; | ||
|  |     }; | ||
|  | }>>; | ||
|  | type VCheckboxBtn = InstanceType<typeof VCheckboxBtn>; | ||
|  | 
 | ||
|  | export { VCheckbox, VCheckboxBtn }; |