import type { FormKitBaseSlots, FormKitInputs } from '@formkit/inputs'; import type { AutoCompleteSlots, CascadeSelectSlots, CheckboxSlots, ColorPickerSlots, DatePickerSlots, InputMaskSlots, InputNumberSlots, InputOtpSlots, InputTextSlots, KnobSlots, ListboxSlots, MultiSelectSlots, PasswordSlots, RadioButtonSlots, RatingSlots, SelectButtonSlots, SelectSlots, SliderSlots, TextareaSlots, ToggleButtonSlots, ToggleSwitchSlots, TreeSelectSlots } from 'primevue'; import type { CascadeSelectProps } from 'primevue/cascadeselect'; import type { ListboxProps } from 'primevue/listbox'; import type { MultiSelectProps } from 'primevue/multiselect'; import type { SelectProps } from 'primevue/select'; import type { SelectButtonProps } from 'primevue/selectbutton'; import type { TreeSelectProps } from 'primevue/treeselect'; import { FormKitDataEdit, FormKitDataView } from './components'; import { useFormKitRepeater, useFormKitSchema, useInputEditor, useInputEditorSchema, usePrimeInputs } from './composables'; import { primeInputs, primeOutputs } from './definitions'; export { FormKitDataEdit, FormKitDataView, primeInputs, primeOutputs, useFormKitRepeater, useFormKitSchema, useInputEditor, useInputEditorSchema, usePrimeInputs, }; /** * Keeps all slots from 1st argument, add any slots from 2nd type which do not collide with the 1st's names. */ type MergeSlots = A & Omit; declare module '@formkit/inputs' { interface FormKitInputProps> { primeAutoComplete: { type: 'primeAutoComplete'; }; primeInputText: { type: 'primeInputText'; }; primeInputNumber: { type: 'primeInputNumber'; }; primeInputMask: { type: 'primeInputMask'; }; primePassword: { type: 'primePassword'; }; primeCheckbox: { type: 'primeCheckbox'; }; primeToggleSwitch: { type: 'primeToggleSwitch'; }; primeTextarea: { type: 'primeTextarea'; }; primeSelect: { type: 'primeSelect'; options?: SelectProps['options']; }; primeMultiSelect: { type: 'primeMultiSelect'; options?: MultiSelectProps['options']; }; primeDatePicker: { type: 'primeDatePicker'; }; primeSlider: { type: 'primeSlider'; }; primeKnob: { type: 'primeKnob'; }; primeRating: { type: 'primeRating'; }; primeRadioButton: { type: 'primeRadioButton'; }; primeColorPicker: { type: 'primeColorPicker'; }; primeToggleButton: { type: 'primeToggleButton'; }; primeListbox: { type: 'primeListbox'; options?: ListboxProps['options']; }; primeSelectButton: { type: 'primeSelectButton'; options?: SelectButtonProps['options']; }; primeCascadeSelect: { type: 'primeCascadeSelect'; options?: CascadeSelectProps['options']; }; primeTreeSelect: { type: 'primeTreeSelect'; options?: TreeSelectProps['options']; }; primeInputOtp: { type: 'primeInputOtp'; }; primeOutputText: { type: 'primeOutputText'; }; primeOutputLink: { type: 'primeOutputLink'; }; primeOutputReference: { type: 'primeOutputReference'; }; primeOutputNumber: { type: 'primeOutputNumber'; }; primeOutputDate: { type: 'primeOutputDate'; }; primeOutputBoolean: { type: 'primeOutputBoolean'; }; primeOutputDuration: { type: 'primeOutputDuration'; }; primeOutputList: { type: 'primeOutputList'; }; } interface FormKitInputSlots> { primeAutoComplete: MergeSlots, AutoCompleteSlots>; primeCascadeSelect: MergeSlots, CascadeSelectSlots>; primeCheckbox: MergeSlots, CheckboxSlots>; primeColorPicker: MergeSlots, ColorPickerSlots>; primeDatePicker: MergeSlots, DatePickerSlots>; primeInputMask: MergeSlots, InputMaskSlots>; primeInputNumber: MergeSlots, InputNumberSlots>; primeInputOtp: MergeSlots, InputOtpSlots>; primeInputText: MergeSlots, InputTextSlots>; primeKnob: MergeSlots, KnobSlots>; primeListbox: MergeSlots, ListboxSlots>; primeMultiSelect: MergeSlots, MultiSelectSlots>; primeOutputBoolean: FormKitBaseSlots; primeOutputDate: FormKitBaseSlots; primeOutputDuration: FormKitBaseSlots; primeOutputLink: FormKitBaseSlots; primeOutputList: FormKitBaseSlots; primeOutputNumber: FormKitBaseSlots; primeOutputReference: FormKitBaseSlots; primeOutputText: FormKitBaseSlots; primePassword: MergeSlots, PasswordSlots>; primeRadioButton: MergeSlots, RadioButtonSlots>; primeRating: MergeSlots, RatingSlots>; primeSelect: MergeSlots, SelectSlots>; primeSelectButton: MergeSlots, SelectButtonSlots>; primeSlider: MergeSlots, SliderSlots>; primeTextarea: MergeSlots, TextareaSlots>; primeToggleButton: MergeSlots, ToggleButtonSlots>; primeToggleSwitch: MergeSlots, ToggleSwitchSlots>; primeTreeSelect: MergeSlots, TreeSelectSlots>; } }