formifex 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/components/ANTDFormComponents/AntdForm.d.ts +12 -0
  2. package/dist/components/ANTDFormComponents/AntdFormComponent.d.ts +10 -0
  3. package/dist/components/ANTDFormComponents/AntdFormFlex.d.ts +3 -0
  4. package/dist/components/ANTDFormComponents/AntdFormGrid.d.ts +3 -0
  5. package/dist/components/ANTDFormComponents/AntdFormSection.d.ts +4 -0
  6. package/dist/components/ANTDFormComponents/inputs/InputCheckbox.d.ts +12 -0
  7. package/dist/components/ANTDFormComponents/inputs/InputColorPicker.d.ts +14 -0
  8. package/dist/components/ANTDFormComponents/inputs/InputDateRange.d.ts +17 -0
  9. package/dist/components/ANTDFormComponents/inputs/InputDateTime.d.ts +17 -0
  10. package/dist/components/ANTDFormComponents/inputs/InputNumber.d.ts +20 -0
  11. package/dist/components/ANTDFormComponents/inputs/InputPassword.d.ts +12 -0
  12. package/dist/components/ANTDFormComponents/inputs/InputRadio.d.ts +12 -0
  13. package/dist/components/ANTDFormComponents/inputs/InputRate.d.ts +13 -0
  14. package/dist/components/ANTDFormComponents/inputs/InputSelect.d.ts +55 -0
  15. package/dist/components/ANTDFormComponents/inputs/InputSlider.d.ts +4 -0
  16. package/dist/components/ANTDFormComponents/inputs/InputString.d.ts +14 -0
  17. package/dist/components/ANTDFormComponents/inputs/InputSwitch.d.ts +13 -0
  18. package/dist/components/ANTDFormComponents/inputs/InputTextArea.d.ts +17 -0
  19. package/dist/components/ANTDFormComponents/inputs/InputTime.d.ts +12 -0
  20. package/dist/components/ANTDFormComponents/inputs/InputUpload.d.ts +16 -0
  21. package/dist/components/ANTDFormComponents/inputs/_InputController.d.ts +12 -0
  22. package/dist/components/FormBuilder.d.ts +45 -0
  23. package/dist/components/FormBuilderComponents/OptionsRender.d.ts +9 -0
  24. package/dist/components/FormController.d.ts +10 -0
  25. package/dist/components/useFormController.d.ts +32 -0
  26. package/dist/index.d.ts +4 -0
  27. package/dist/index.es.js +27670 -0
  28. package/dist/index.umd.js +227 -0
  29. package/dist/types/common.d.ts +107 -0
  30. package/dist/types/form.d.ts +63 -0
  31. package/dist/types/handler.d.ts +4 -0
  32. package/dist/types/inputs/_input.d.ts +87 -0
  33. package/dist/types/inputs/checkbox.d.ts +40 -0
  34. package/dist/types/inputs/colorpicker.d.ts +14 -0
  35. package/dist/types/inputs/date.d.ts +47 -0
  36. package/dist/types/inputs/number.d.ts +21 -0
  37. package/dist/types/inputs/password.d.ts +12 -0
  38. package/dist/types/inputs/radio.d.ts +59 -0
  39. package/dist/types/inputs/rate.d.ts +13 -0
  40. package/dist/types/inputs/select.d.ts +44 -0
  41. package/dist/types/inputs/slider.d.ts +33 -0
  42. package/dist/types/inputs/switch.d.ts +12 -0
  43. package/dist/types/inputs/text.d.ts +15 -0
  44. package/dist/types/inputs/textArea.d.ts +17 -0
  45. package/dist/types/inputs/upload.d.ts +44 -0
  46. package/dist/types/layout.d.ts +47 -0
  47. package/dist/vite.svg +1 -0
  48. package/package.json +25 -0
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { FormControllerRef } from '../../types/handler';
3
+ declare const AntdForm: React.ForwardRefExoticComponent<{
4
+ formType?: "antd" | "web" | undefined;
5
+ theme?: "light" | "dark";
6
+ formController: import('../FormController').UseFormControllerReturn;
7
+ className?: string;
8
+ sections?: import('../..').TFormStructure[];
9
+ style?: React.CSSProperties;
10
+ enablePostSave?: boolean;
11
+ } & import('../../types/form').TFormGeneralProps & React.RefAttributes<FormControllerRef>>;
12
+ export default AntdForm;
@@ -0,0 +1,10 @@
1
+ import { TFormComponentProperties } from '../../types/form';
2
+ import { AxiosInstance } from 'axios';
3
+ declare const AntdFormComponent: (props: TFormComponentProperties & {
4
+ httpAgent?: AxiosInstance;
5
+ suppressionRef?: React.RefObject<boolean>;
6
+ disabled?: boolean;
7
+ readOnly?: boolean;
8
+ updateLookupData?: (key: string, data: any) => void;
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
+ export default AntdFormComponent;
@@ -0,0 +1,3 @@
1
+ import { TFormComponentProperties, TFormItem } from '../../types/form';
2
+ import { TFlexLayout } from '../../types/layout';
3
+ export default function AntdFormFlex({ children, id, className, style, ...rest }: TFormItem & TFlexLayout & TFormComponentProperties): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { TFormItem, TFormComponentProperties } from '../../types/form';
2
+ import { TGridLayout } from '../../types/layout';
3
+ export default function AntdFormGrid({ children, id, className, style, ...rest }: TFormItem & TGridLayout & TFormComponentProperties): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { TFormComponentProperties, TFormItem } from '../../types/form';
2
+ import { TSectionLayout } from '../../types/layout';
3
+ declare const AntdFormSection: ({ children, label, id, className, style, section_id, wrapperClassName, wrapperStyle, collapsible, labelPlacement, labelMargin, showHeader, showDivider, expandIcon, collapseIcon, tooltip, ...rest }: TFormItem & TFormComponentProperties & TSectionLayout) => import("react/jsx-runtime").JSX.Element;
4
+ export default AntdFormSection;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { TInputCheckbox } from '../../../types/inputs/checkbox';
3
+ import { FormInstance } from 'antd/lib/form';
4
+ import { AxiosInstance } from 'axios';
5
+ type InputCheckboxProps = TInputCheckbox & {
6
+ form?: FormInstance;
7
+ httpAgent?: AxiosInstance;
8
+ initialData?: any;
9
+ lookupData?: any;
10
+ };
11
+ declare const InputCheckboxComponent: React.ForwardRefExoticComponent<InputCheckboxProps & React.RefAttributes<any>>;
12
+ export default InputCheckboxComponent;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ declare const InputColorPickerComponent: React.ForwardRefExoticComponent<{
3
+ dataType: import("../../../types/common").EDataType.string | "string";
4
+ inputType: import("../../../types/inputs/_input").EInputType.color | "color";
5
+ properties?: {
6
+ disabledAlpha?: boolean;
7
+ disabledFormat?: boolean;
8
+ mode?: "single" | "gradient" | ("single" | "gradient")[];
9
+ placement?: "top" | "left" | "right" | "bottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
10
+ format?: "rgb" | "hex" | "hsb";
11
+ showText?: boolean;
12
+ };
13
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
14
+ export default InputColorPickerComponent;
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ declare const InputDateRangeComponent: React.ForwardRefExoticComponent<{
3
+ inputType: import("../../../types/inputs/_input").EInputType.date | "date" | import("../../../types/inputs/_input").EInputType.datetime | "datetime";
4
+ popupClassName?: string | undefined;
5
+ popupStyle?: React.CSSProperties | undefined;
6
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
7
+ properties?: {
8
+ allowClear?: boolean | undefined;
9
+ format?: string | undefined;
10
+ picker?: "date" | "week" | "month" | "quarter" | "year" | undefined;
11
+ placement?: "bottomLeft" | "bottomRight" | "topLeft" | "topRight" | undefined;
12
+ minDate?: import('dayjs').Dayjs | undefined;
13
+ maxDate?: import('dayjs').Dayjs | undefined;
14
+ showNow?: boolean | undefined;
15
+ } & (import('../../../types/inputs/date').TShowTime | import('../../../types/inputs/date').TMultiple);
16
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
17
+ export default InputDateRangeComponent;
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ declare const InputDatePickerComponent: React.ForwardRefExoticComponent<{
3
+ inputType: import("../../../types/inputs/_input").EInputType.date | "date" | import("../../../types/inputs/_input").EInputType.datetime | "datetime";
4
+ popupClassName?: string | undefined;
5
+ popupStyle?: React.CSSProperties | undefined;
6
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
7
+ properties?: {
8
+ allowClear?: boolean | undefined;
9
+ format?: string | undefined;
10
+ picker?: "date" | "week" | "month" | "quarter" | "year" | undefined;
11
+ placement?: "bottomLeft" | "bottomRight" | "topLeft" | "topRight" | undefined;
12
+ minDate?: import('dayjs').Dayjs | undefined;
13
+ maxDate?: import('dayjs').Dayjs | undefined;
14
+ showNow?: boolean | undefined;
15
+ } & (import('../../../types/inputs/date').TShowTime | import('../../../types/inputs/date').TMultiple);
16
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
17
+ export default InputDatePickerComponent;
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ declare const InputNumberComponent: React.ForwardRefExoticComponent<{
3
+ inputType: import("../../../types/inputs/_input").EInputType.number | "number";
4
+ dataType: import("../../../types/common").EDataType.number | "number";
5
+ properties?: {
6
+ suffix?: React.ReactNode | string | undefined | null;
7
+ prefix?: React.ReactNode | string | undefined | null;
8
+ decimalSeparator?: string;
9
+ precision?: number;
10
+ min?: number;
11
+ max?: number;
12
+ unitFamily?: import('../../../types/common').EUnitFamily;
13
+ unitClass?: string;
14
+ unit?: string;
15
+ unitLabel?: string;
16
+ defaultValue?: number;
17
+ controls: boolean;
18
+ };
19
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
20
+ export default InputNumberComponent;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ declare const InputPasswordComponent: React.ForwardRefExoticComponent<{
3
+ dataType: import("../../../types/common").EDataType.string | "string";
4
+ inputType: import("../../../types/inputs/_input").EInputType.password | "password";
5
+ defaultValue?: string;
6
+ properties?: {
7
+ maxLength?: number;
8
+ allowClear?: boolean;
9
+ showCount?: boolean;
10
+ };
11
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
12
+ export default InputPasswordComponent;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { TInputRadio } from '../../../types/inputs/radio';
3
+ import { FormInstance } from 'antd/lib/form';
4
+ import { AxiosInstance } from 'axios';
5
+ type InputRadioProps = TInputRadio & {
6
+ form?: FormInstance;
7
+ httpAgent?: AxiosInstance;
8
+ initialData?: any;
9
+ lookupData?: any;
10
+ };
11
+ declare const InputRadioComponent: React.ForwardRefExoticComponent<InputRadioProps & React.RefAttributes<any>>;
12
+ export default InputRadioComponent;
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ declare const InputRateComponent: React.ForwardRefExoticComponent<{
3
+ dataType: import("../../../types/common").EDataType.number | "number";
4
+ inputType: import("../../../types/inputs/_input").EInputType.rate | "rate";
5
+ defaultValue?: number;
6
+ properties?: {
7
+ allowHalf?: boolean;
8
+ character?: React.ReactNode;
9
+ count?: number;
10
+ tooltips?: string[];
11
+ };
12
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
13
+ export default InputRateComponent;
@@ -0,0 +1,55 @@
1
+ import { default as React } from 'react';
2
+ import { FormInstance } from 'antd/lib/form';
3
+ import { AxiosInstance } from 'axios';
4
+ declare const InputSelectComponent: React.ForwardRefExoticComponent<{
5
+ inputType: import("../../../types/inputs/_input").EInputType.select | "select";
6
+ dataType: import("../../../types/common").EDataType.string | "string" | import("../../../types/common").EDataType.number | "number";
7
+ defaultValue?: string | number | (number | string)[];
8
+ options?: {
9
+ label: string | React.ReactNode;
10
+ value: string | number;
11
+ }[] | {}[] | (() => {
12
+ label: string | React.ReactNode;
13
+ value: string | number;
14
+ }[] | Promise<{
15
+ label: string | React.ReactNode;
16
+ value: string | number;
17
+ }[]>) | {
18
+ dataSource: any[] | (() => any[] | Promise<any[]>) | Record<string, any>;
19
+ labelField?: string;
20
+ valueField?: string;
21
+ transform?: (item: any, formValues?: any) => {
22
+ label: string | React.ReactNode;
23
+ value: string | number;
24
+ };
25
+ dependentField?: string;
26
+ };
27
+ sharedOptionIDs?: string[];
28
+ mode?: "multiple" | "tags" | undefined;
29
+ list?: boolean;
30
+ labelProp?: string;
31
+ valueProp?: string;
32
+ optionLabelProp?: string;
33
+ properties?: {
34
+ labelInValue?: boolean;
35
+ allowClear?: boolean;
36
+ maxTagCount?: number;
37
+ showSearch?: boolean;
38
+ listHeight?: number;
39
+ };
40
+ filter?: {
41
+ fieldID: string;
42
+ referenceField: string;
43
+ }[];
44
+ } & import('../../../types/inputs/_input').TInputGeneric & import('../../../types/inputs/_input').TLookupProps & {
45
+ data: any;
46
+ lookupData?: Record<string, any>;
47
+ form?: FormInstance;
48
+ id?: string;
49
+ disabled?: boolean;
50
+ readOnly?: boolean;
51
+ httpAgent?: AxiosInstance;
52
+ initialData?: any;
53
+ loading?: boolean;
54
+ } & React.RefAttributes<any>>;
55
+ export default InputSelectComponent;
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { TInputSlider } from '../../../types/inputs/slider';
3
+ declare const InputSliderComponent: React.ForwardRefExoticComponent<TInputSlider & React.RefAttributes<unknown>>;
4
+ export default InputSliderComponent;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ declare const InputStringComponent: React.ForwardRefExoticComponent<{
3
+ dataType: import("../../../types/common").EDataType.string | "string";
4
+ inputType: import("../../../types/inputs/_input").EInputType.string | "string";
5
+ defaultValue?: string;
6
+ properties?: {
7
+ suffix?: React.ReactNode | string | undefined | null;
8
+ prefix?: React.ReactNode | string | undefined | null;
9
+ maxLength?: number;
10
+ allowClear?: boolean;
11
+ showCount?: boolean;
12
+ };
13
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
14
+ export default InputStringComponent;
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ declare const InputSwitchComponent: React.ForwardRefExoticComponent<{
3
+ dataType: import("../../../types/common").EDataType.boolean | "boolean";
4
+ inputType: import("../../../types/inputs/_input").EInputType.switch | "switch";
5
+ defaultValue?: boolean;
6
+ properties?: {
7
+ checkedChildren?: React.ReactNode;
8
+ unCheckedChildren?: React.ReactNode;
9
+ };
10
+ } & import('../../../types/inputs/_input').TInputGeneric & {
11
+ data: any;
12
+ } & React.RefAttributes<unknown>>;
13
+ export default InputSwitchComponent;
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ declare const TextAreaComponent: React.ForwardRefExoticComponent<{
3
+ dataType: import("../../../types/common").EDataType.string | "string";
4
+ inputType: import("../../../types/inputs/_input").EInputType.textarea | "textarea";
5
+ defaultValue?: string;
6
+ properties?: {
7
+ resize?: "vertical" | "horizontal" | "both" | "none";
8
+ maxLength?: number;
9
+ allowClear?: boolean;
10
+ showCount?: boolean;
11
+ autoSize?: boolean | {
12
+ minRows: number;
13
+ maxRows: number;
14
+ };
15
+ };
16
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
17
+ export default TextAreaComponent;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ declare const InputTimePickerComponent: React.ForwardRefExoticComponent<{
3
+ inputType: import("../../../types/inputs/_input").EInputType.time | "time";
4
+ popupClassName?: string | undefined;
5
+ popupStyle?: React.CSSProperties | undefined;
6
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
7
+ properties?: {
8
+ showNow?: boolean | undefined;
9
+ allowClear?: boolean | undefined;
10
+ } & import('../../../types/inputs/date').TTimePickerProperties;
11
+ } & import('../../../types/inputs/_input').TInputGeneric & React.RefAttributes<unknown>>;
12
+ export default InputTimePickerComponent;
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ import { TInputUpload } from '../../../types/inputs/upload';
3
+ import { FormInstance } from 'antd/lib';
4
+ import { AxiosInstance } from 'axios';
5
+ type InputUploadProps = TInputUpload & {
6
+ data: any;
7
+ httpAgent?: AxiosInstance;
8
+ lookupData?: Record<string, any>;
9
+ initialData?: any;
10
+ formRef?: FormInstance;
11
+ id?: string;
12
+ disabled?: boolean;
13
+ readOnly?: boolean;
14
+ };
15
+ declare const InputUploadComponent: React.ForwardRefExoticComponent<InputUploadProps & React.RefAttributes<any>>;
16
+ export default InputUploadComponent;
@@ -0,0 +1,12 @@
1
+ import { TInput, TLookupProps } from '../../../types/inputs/_input';
2
+ import { FormInstance } from 'antd';
3
+ import { AxiosInstance } from 'axios';
4
+ declare const InputController: (props: TInput & TLookupProps & {
5
+ formRef: FormInstance;
6
+ lookupData?: Record<string, any>;
7
+ initialData?: any;
8
+ httpAgent?: AxiosInstance;
9
+ suppressionRef?: React.RefObject<boolean>;
10
+ updateLookupData?: (key: string, data: any) => void;
11
+ }) => import("react/jsx-runtime").JSX.Element;
12
+ export default InputController;
@@ -0,0 +1,45 @@
1
+ import { default as React } from 'react';
2
+ export interface FormComponent {
3
+ id: string;
4
+ type: string;
5
+ label: string;
6
+ category?: string;
7
+ placeholder?: string;
8
+ required?: boolean;
9
+ options?: string[];
10
+ validation?: any;
11
+ style?: React.CSSProperties;
12
+ className?: string;
13
+ flex?: {
14
+ grow?: number;
15
+ shrink?: number;
16
+ basis?: string;
17
+ };
18
+ }
19
+ export interface DroppedComponent extends FormComponent {
20
+ position: {
21
+ x: number;
22
+ y: number;
23
+ };
24
+ containerId: string;
25
+ children?: DroppedComponent[];
26
+ }
27
+ export interface SectionComponent {
28
+ id: string;
29
+ type: "section";
30
+ label: string;
31
+ position: {
32
+ x: number;
33
+ y: number;
34
+ };
35
+ containerId: string;
36
+ style?: React.CSSProperties;
37
+ className?: string;
38
+ children?: DroppedComponent[];
39
+ }
40
+ export interface FormBuilderProps {
41
+ onFormChange?: (sections: SectionComponent[]) => void;
42
+ initialSections?: SectionComponent[];
43
+ }
44
+ declare const FormBuilder: React.FC<FormBuilderProps>;
45
+ export default FormBuilder;
@@ -0,0 +1,9 @@
1
+ declare const OptionsRender: ({ component, handleEditComponent, handleDeleteComponent, attributes, listeners, isHovered, }: {
2
+ component: any;
3
+ handleEditComponent: (id: string) => void;
4
+ handleDeleteComponent: (id: string) => void;
5
+ attributes: any;
6
+ listeners: any;
7
+ isHovered?: boolean;
8
+ }) => import("react/jsx-runtime").JSX.Element;
9
+ export default OptionsRender;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { TFormProps } from '../types/form';
3
+ import { FormControllerRef } from '../types/handler';
4
+ import { UseFormControllerActions, UseFormControllerState } from './useFormController';
5
+ export type UseFormControllerReturn = UseFormControllerState & UseFormControllerActions;
6
+ interface FormControllerComponent extends React.ForwardRefExoticComponent<TFormProps & React.RefAttributes<FormControllerRef>> {
7
+ useFormController: () => UseFormControllerReturn;
8
+ }
9
+ declare const FormController: FormControllerComponent;
10
+ export default FormController;
@@ -0,0 +1,32 @@
1
+ import { FormControllerRef } from '../types/handler';
2
+ import { FormInstance } from 'antd';
3
+ export interface UseFormControllerState {
4
+ formData: any | null;
5
+ initialFormData: any | null;
6
+ errors: any;
7
+ isDirty: boolean;
8
+ isValidated: boolean;
9
+ lookupData: any;
10
+ formRef: FormInstance;
11
+ schema: any;
12
+ }
13
+ export interface UseFormControllerActions {
14
+ setFormData: React.Dispatch<React.SetStateAction<any>>;
15
+ setFormValidated: React.Dispatch<React.SetStateAction<boolean>>;
16
+ setInitialFormData: React.Dispatch<React.SetStateAction<any>>;
17
+ setErrors: React.Dispatch<React.SetStateAction<any>>;
18
+ setIsDirty: React.Dispatch<React.SetStateAction<boolean>>;
19
+ setLookupData: React.Dispatch<React.SetStateAction<any>>;
20
+ setSchema: React.Dispatch<React.SetStateAction<any>>;
21
+ resetForm: () => void;
22
+ resetToInitialData: () => void;
23
+ nullifyForm: () => void;
24
+ updateLookupData: (key: string, data: any) => void;
25
+ formControllerRef: React.RefObject<FormControllerRef>;
26
+ handlePostSave: (props?: any) => Promise<any>;
27
+ setFormValues: (data: any, suppressUpdate?: boolean) => void;
28
+ _registerHandlePostSave: (handler: (props?: any) => Promise<any>) => void;
29
+ _registerSetFormValues: (handler: (data: any, suppressUpdate?: boolean) => void) => void;
30
+ }
31
+ declare const useFormController: (_initialFormData?: any, _initialSchema?: any, _initialLookupData?: any) => UseFormControllerState & UseFormControllerActions;
32
+ export default useFormController;
@@ -0,0 +1,4 @@
1
+ export { default as FormController } from './components/FormController';
2
+ export { default as FormBuilder } from './components/FormBuilder';
3
+ export type { FormControllerRef } from './types/handler';
4
+ export type { TFormStructure, TFormItem, TFormItems } from './types/form';