@connect-soft/form-generator 1.0.0 → 1.1.0-alpha10

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 (34) hide show
  1. package/README.md +956 -188
  2. package/dist/index.js +4400 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/index.mjs +4329 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/types/components/form/array-field-renderer.d.ts +39 -0
  7. package/dist/types/components/form/array-field-renderer.d.ts.map +1 -0
  8. package/dist/types/components/form/create-template-fields.d.ts +3 -0
  9. package/dist/types/components/form/create-template-fields.d.ts.map +1 -0
  10. package/dist/types/components/form/field-renderer.d.ts +7 -0
  11. package/dist/types/components/form/field-renderer.d.ts.map +1 -0
  12. package/dist/types/components/form/fields-context.d.ts +26 -0
  13. package/dist/types/components/form/fields-context.d.ts.map +1 -0
  14. package/dist/types/components/form/form-generator-typed.d.ts +47 -0
  15. package/dist/types/components/form/form-generator-typed.d.ts.map +1 -0
  16. package/dist/types/components/form/form-generator.d.ts +51 -0
  17. package/dist/types/components/form/form-generator.d.ts.map +1 -0
  18. package/dist/types/components/form/form-utils.d.ts +47 -0
  19. package/dist/types/components/form/form-utils.d.ts.map +1 -0
  20. package/dist/types/components/form/index.d.ts +7 -0
  21. package/dist/types/components/form/index.d.ts.map +1 -0
  22. package/dist/types/index.d.ts +22 -0
  23. package/dist/types/index.d.ts.map +1 -0
  24. package/dist/types/lib/field-registry.d.ts +74 -0
  25. package/dist/types/lib/field-registry.d.ts.map +1 -0
  26. package/dist/types/lib/field-types.d.ts +151 -0
  27. package/dist/types/lib/field-types.d.ts.map +1 -0
  28. package/dist/types/lib/index.d.ts +7 -0
  29. package/dist/types/lib/index.d.ts.map +1 -0
  30. package/dist/types/lib/template-types.d.ts +55 -0
  31. package/dist/types/lib/template-types.d.ts.map +1 -0
  32. package/dist/types/setupTests.d.ts +2 -0
  33. package/dist/types/setupTests.d.ts.map +1 -0
  34. package/package.json +40 -131
@@ -0,0 +1,39 @@
1
+ import { ReactElement } from 'react';
2
+ import { UseFieldArrayReturn, FieldValues } from 'react-hook-form';
3
+ import type { ArrayField } from '@/lib/field-types';
4
+ export interface ArrayFieldItemProps {
5
+ index: number;
6
+ id: string;
7
+ remove: () => void;
8
+ move: (toIndex: number) => void;
9
+ fields: Record<string, ReactElement>;
10
+ fieldNames: string[];
11
+ namePrefix: string;
12
+ }
13
+ export type ArrayFieldItemRenderFn = (props: ArrayFieldItemProps) => ReactElement;
14
+ export interface ArrayFieldRendererProps {
15
+ field: ArrayField;
16
+ children?: ArrayFieldItemRenderFn;
17
+ }
18
+ export interface UseArrayFieldReturn {
19
+ fieldArray: UseFieldArrayReturn<FieldValues, string>;
20
+ append: () => void;
21
+ appendWith: (values: Record<string, unknown>) => void;
22
+ prepend: () => void;
23
+ remove: (index: number) => void;
24
+ move: (from: number, to: number) => void;
25
+ swap: (indexA: number, indexB: number) => void;
26
+ insert: (index: number, values?: Record<string, unknown>) => void;
27
+ field: ArrayField;
28
+ items: Array<{
29
+ id: string;
30
+ index: number;
31
+ }>;
32
+ canAppend: boolean;
33
+ canRemove: boolean;
34
+ renderField: (index: number, fieldName: string) => ReactElement;
35
+ renderItem: (index: number) => Record<string, ReactElement>;
36
+ }
37
+ export declare function useArrayField(field: ArrayField): UseArrayFieldReturn;
38
+ export declare const ArrayFieldRenderer: import("react").MemoExoticComponent<({ field, children }: ArrayFieldRendererProps) => import("react/jsx-runtime").JSX.Element | null>;
39
+ //# sourceMappingURL=array-field-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-field-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/form/array-field-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,YAAY,EAAe,MAAM,OAAO,CAAC;AACxD,OAAO,EAAiC,mBAAmB,EAAE,WAAW,EAAa,MAAM,iBAAiB,CAAC;AAC7G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,MAAM,WAAW,mBAAmB;IAEhC,KAAK,EAAE,MAAM,CAAC;IAEd,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAErC,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,UAAU,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,YAAY,CAAC;AAKlF,MAAM,WAAW,uBAAuB;IAEpC,KAAK,EAAE,UAAU,CAAC;IAElB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAKD,MAAM,WAAW,mBAAmB;IAEhC,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAErD,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAEtD,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAElE,KAAK,EAAE,UAAU,CAAC;IAElB,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE5C,SAAS,EAAE,OAAO,CAAC;IAEnB,SAAS,EAAE,OAAO,CAAC;IAEnB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC;IAEhE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC/D;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,mBAAmB,CAwGpE;AA0BD,eAAO,MAAM,kBAAkB,4DAA8B,uBAAuB,oDA6ClF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TemplateFields, FieldEntry } from '@/lib/template-types';
2
+ export declare function createTemplateFields(fieldEntries: Map<string, FieldEntry>): TemplateFields;
3
+ //# sourceMappingURL=create-template-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-template-fields.d.ts","sourceRoot":"","sources":["../../../../src/components/form/create-template-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAWvE,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,cAAc,CAoF1F"}
@@ -0,0 +1,7 @@
1
+ import { BaseField } from '@/lib';
2
+ export interface FieldRendererProps {
3
+ field: BaseField;
4
+ namePrefix?: string;
5
+ }
6
+ export declare const FieldRenderer: import("react").MemoExoticComponent<({ field, namePrefix }: FieldRendererProps) => import("react/jsx-runtime").JSX.Element | null>;
7
+ //# sourceMappingURL=field-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/form/field-renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAMrD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,SAAS,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,8DAAgC,kBAAkB,oDAiD1E,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type ReactNode, Ref } from 'react';
2
+ import type { FieldState } from '@/lib/field-registry';
3
+ import type { BaseField, FormItem } from '@/lib/field-types';
4
+ export interface FieldProps<TValue = unknown> {
5
+ name: string;
6
+ value: TValue;
7
+ onChange: (value: TValue) => void;
8
+ onBlur: () => void;
9
+ ref: Ref<any>;
10
+ field: BaseField;
11
+ fieldState: FieldState;
12
+ }
13
+ interface FieldsContextValue {
14
+ fields: Map<string, BaseField>;
15
+ namePrefix?: string;
16
+ }
17
+ export interface FieldsProviderProps {
18
+ children: ReactNode;
19
+ fields: readonly FormItem[];
20
+ namePrefix?: string;
21
+ }
22
+ export declare function FieldsProvider({ children, fields, namePrefix }: FieldsProviderProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function useFieldProps<TValue = unknown>(name: string): FieldProps<TValue>;
24
+ export declare function useFieldsContext(): FieldsContextValue | null;
25
+ export {};
26
+ //# sourceMappingURL=fields-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields-context.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7D,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,OAAO;IAExC,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAEd,KAAK,EAAE,SAAS,CAAC;IAEjB,UAAU,EAAE,UAAU,CAAC;CAC1B;AAKD,UAAU,kBAAkB;IAExB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,SAAS,CAAC;IAEpB,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAE5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,mBAAmB,2CAsCnF;AA8BD,wBAAgB,aAAa,CAAC,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CA6ChF;AAKD,wBAAgB,gBAAgB,IAAI,kBAAkB,GAAG,IAAI,CAE5D"}
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { FieldValues } from 'react-hook-form';
3
+ import { z } from 'zod';
4
+ import { BaseField } from '@/lib';
5
+ import type { RegisteredFieldType } from '@/lib/field-types';
6
+ import type { TemplateRenderFn } from '@/lib/template-types';
7
+ import type { ValidateTypesOptions, FormGeneratorRef, FormSubmitContext } from './form-generator';
8
+ type FieldTypeForValue<T> = T extends string ? 'text' | 'email' | 'password' | 'tel' | 'url' | 'search' | 'textarea' | 'select' | 'radio' | 'time' | 'month' | 'week' | 'color' | 'hidden' : T extends number ? 'number' | 'range' : T extends boolean ? 'checkbox' | 'switch' : T extends Date ? 'date' | 'datetime' | 'datetime-local' : T extends File | FileList ? 'file' : T extends Array<unknown> ? 'array' : RegisteredFieldType;
9
+ export type TypedField<TSchema extends z.ZodType, TKey extends keyof z.infer<TSchema> & string> = BaseField & {
10
+ name: TKey;
11
+ type: FieldTypeForValue<z.infer<TSchema>[TKey]>;
12
+ } & Record<string, unknown>;
13
+ export declare function typedField<TSchema extends z.ZodType>(): <TKey extends keyof z.infer<TSchema> & string>(field: TypedField<TSchema, TKey>) => TypedField<TSchema, TKey>;
14
+ export declare function typedFields<TSchema extends z.ZodType>(fields: Array<TypedField<TSchema, keyof z.infer<TSchema> & string>>): Array<TypedField<TSchema, keyof z.infer<TSchema> & string>>;
15
+ export interface StrictFormGeneratorProps<TSchema extends z.ZodType<FieldValues>> {
16
+ schema: TSchema;
17
+ fields: Array<TypedField<TSchema, keyof z.infer<TSchema> & string> & Record<string, unknown>>;
18
+ onSubmit: (values: z.infer<TSchema>, context: FormSubmitContext<z.infer<TSchema>>) => void | Promise<void>;
19
+ defaultValues?: Partial<z.infer<TSchema>>;
20
+ className?: string;
21
+ submitText?: string;
22
+ disabled?: boolean;
23
+ mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
24
+ title?: string;
25
+ description?: string;
26
+ showReset?: boolean;
27
+ resetText?: string;
28
+ children?: TemplateRenderFn<z.infer<TSchema>>;
29
+ ref?: React.Ref<FormGeneratorRef<z.infer<TSchema>>>;
30
+ validateTypes?: boolean | ValidateTypesOptions;
31
+ }
32
+ export declare function StrictFormGenerator<TSchema extends z.ZodType<FieldValues>>(props: StrictFormGeneratorProps<TSchema>): React.ReactElement;
33
+ export declare function createFieldFactory<TSchema extends z.ZodType<FieldValues>>(_schema: TSchema): <TKey extends keyof z.infer<TSchema> & string>(field: {
34
+ name: TKey;
35
+ type: FieldTypeForValue<z.infer<TSchema>[TKey]>;
36
+ } & Omit<BaseField, "name" | "type"> & Record<string, unknown>) => {
37
+ name: TKey;
38
+ type: FieldTypeForValue<z.infer<TSchema>[TKey]>;
39
+ } & Omit<BaseField<string, any>, "name" | "type"> & Record<string, unknown>;
40
+ export type InferSchema<TSchema extends z.ZodType> = z.infer<TSchema>;
41
+ export type ValidateFieldsComplete<TSchema extends z.ZodType, TFields extends Array<{
42
+ name: string;
43
+ }>> = Exclude<keyof z.infer<TSchema>, TFields[number]['name']> extends never ? TFields : {
44
+ __error: `Missing fields: ${Exclude<keyof z.infer<TSchema> & string, TFields[number]['name']>}`;
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=form-generator-typed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-generator-typed.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-generator-typed.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import { UseFormReturn, FieldValues, FieldErrors } from 'react-hook-form';
3
+ import { FormItem, InferFormValues } from '@/lib';
4
+ import type { TemplateRenderFn } from '@/lib/template-types';
5
+ export interface ValidateTypesOptions {
6
+ throwOnError?: boolean;
7
+ warn?: boolean;
8
+ }
9
+ export interface FormSubmitContext<TValues extends FieldValues = FieldValues> {
10
+ isDirty: boolean;
11
+ dirtyFields: Partial<Record<keyof TValues, boolean>>;
12
+ isValid: boolean;
13
+ errors: FieldErrors<TValues>;
14
+ touchedFields: Partial<Record<keyof TValues, boolean>>;
15
+ isSubmitting: boolean;
16
+ submitCount: number;
17
+ defaultValues: Partial<TValues>;
18
+ form: UseFormReturn<TValues>;
19
+ }
20
+ export interface FormGeneratorProps<TFields extends readonly FormItem[]> {
21
+ fields: TFields;
22
+ onSubmit: (values: InferFormValues<TFields>, context: FormSubmitContext<InferFormValues<TFields>>) => void | Promise<void>;
23
+ defaultValues?: Partial<InferFormValues<TFields>>;
24
+ className?: string;
25
+ submitText?: string;
26
+ disabled?: boolean;
27
+ mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
28
+ title?: string;
29
+ description?: string;
30
+ showReset?: boolean;
31
+ resetText?: string;
32
+ children?: TemplateRenderFn<InferFormValues<TFields>>;
33
+ ref?: React.Ref<FormGeneratorRef<InferFormValues<TFields>>>;
34
+ validateTypes?: boolean | ValidateTypesOptions;
35
+ }
36
+ export interface FormGeneratorRef<TValues extends FieldValues = FieldValues> {
37
+ setValues: (values: Partial<TValues>) => void;
38
+ getValues: () => TValues;
39
+ reset: (values?: Partial<TValues>) => void;
40
+ submit: () => Promise<void>;
41
+ clearErrors: () => void;
42
+ setError: (name: keyof TValues, error: {
43
+ type: string;
44
+ message: string;
45
+ }) => void;
46
+ isValid: () => boolean;
47
+ isDirty: () => boolean;
48
+ form: UseFormReturn<TValues>;
49
+ }
50
+ export declare function FormGenerator<TFields extends readonly FormItem[]>(props: FormGeneratorProps<TFields>): React.ReactElement;
51
+ //# sourceMappingURL=form-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-generator.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-generator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { z } from 'zod';
2
+ import { BaseField, FormItem } from '@/lib';
3
+ export declare function isSchemaRequired(schema: z.ZodTypeAny): boolean;
4
+ export declare function unwrapSchema(schema: z.ZodTypeAny): z.ZodTypeAny;
5
+ export declare function getSchemaTypeName(schema: z.ZodTypeAny): string;
6
+ export interface NumberConstraints {
7
+ min?: number;
8
+ max?: number;
9
+ step?: number;
10
+ }
11
+ export interface StringConstraints {
12
+ minLength?: number;
13
+ maxLength?: number;
14
+ pattern?: string;
15
+ }
16
+ export interface DateConstraints {
17
+ min?: Date;
18
+ max?: Date;
19
+ }
20
+ export declare function getNumberConstraints(schema: z.ZodTypeAny): NumberConstraints;
21
+ export declare function getStringConstraints(schema: z.ZodTypeAny): StringConstraints;
22
+ export declare function getDateConstraints(schema: z.ZodTypeAny): DateConstraints;
23
+ export declare function getSchemaRequirements<T extends z.ZodRawShape>(schema: z.ZodObject<T>): Record<keyof T, boolean>;
24
+ export interface SchemaFieldInfo {
25
+ name: string;
26
+ required: boolean;
27
+ type: string;
28
+ schema: z.ZodTypeAny;
29
+ min?: number;
30
+ max?: number;
31
+ step?: number;
32
+ minLength?: number;
33
+ maxLength?: number;
34
+ pattern?: string;
35
+ minDate?: Date;
36
+ maxDate?: Date;
37
+ }
38
+ export declare function analyzeSchema<T extends z.ZodRawShape>(schema: z.ZodObject<T>): SchemaFieldInfo[];
39
+ export declare function mergeSchemaRequirements<T extends z.ZodRawShape, F extends BaseField>(schema: z.ZodObject<T>, fields: readonly F[]): F[];
40
+ export declare function mergeSchemaConstraints<T extends z.ZodRawShape, F extends BaseField>(schema: z.ZodObject<T>, fields: readonly F[]): F[];
41
+ export declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
42
+ export declare function getValidatorForField(field: BaseField): z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>> | z.ZodAny;
43
+ export declare function buildSchema<Fields extends readonly FormItem[]>(fields: Fields): z.ZodObject<{
44
+ [x: string]: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
45
+ }, z.core.$strip>;
46
+ export declare function buildDefaultValues(fields: readonly FormItem[]): Record<string, unknown>;
47
+ //# sourceMappingURL=form-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { FieldRenderer } from './field-renderer';
2
+ export type { FieldRendererProps } from './field-renderer';
3
+ export { FormGenerator } from './form-generator';
4
+ export type { FormGeneratorProps, FormGeneratorRef } from './form-generator';
5
+ export { ArrayFieldRenderer, useArrayField } from './array-field-renderer';
6
+ export type { ArrayFieldRendererProps, ArrayFieldItemProps, ArrayFieldItemRenderFn, UseArrayFieldReturn } from './array-field-renderer';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/form/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EACR,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,22 @@
1
+ export { FormGenerator, type ValidateTypesOptions } from './components/form/form-generator';
2
+ export type { FormGeneratorProps, FormGeneratorRef, FormSubmitContext } from './components/form/form-generator';
3
+ export { FieldRenderer } from './components/form/field-renderer';
4
+ export type { FieldRendererProps } from './components/form/field-renderer';
5
+ export { StrictFormGenerator, typedField, typedFields, createFieldFactory } from './components/form/form-generator-typed';
6
+ export type { StrictFormGeneratorProps, TypedField, InferSchema, ValidateFieldsComplete } from './components/form/form-generator-typed';
7
+ export { ArrayFieldRenderer, useArrayField } from './components/form/array-field-renderer';
8
+ export type { ArrayFieldRendererProps, ArrayFieldItemProps, ArrayFieldItemRenderFn, UseArrayFieldReturn } from './components/form/array-field-renderer';
9
+ export { useFieldProps, FieldsProvider, useFieldsContext } from './components/form/fields-context';
10
+ export type { FieldProps, FieldsProviderProps } from './components/form/fields-context';
11
+ export { isSchemaRequired, unwrapSchema, getSchemaTypeName, getSchemaRequirements, getNumberConstraints, getStringConstraints, getDateConstraints, analyzeSchema, mergeSchemaRequirements, mergeSchemaConstraints } from './components/form/form-utils';
12
+ export type { SchemaFieldInfo, NumberConstraints, StringConstraints, DateConstraints } from './components/form/form-utils';
13
+ export type { TemplateFields, TemplateButtons, TemplateRenderProps, TemplateRenderFn, TemplateArrayField, TemplateArrayItem } from './lib/template-types';
14
+ export * from './lib/field-types';
15
+ export { registerField, registerFields, getFieldComponent, hasFieldType, unregisterField, getRegisteredFieldTypes, clearFieldRegistry } from './lib/field-registry';
16
+ export type { FieldComponentProps, FieldComponent, FieldDefinition, FieldDefinitionsMap } from './lib/field-registry';
17
+ export { registerFormComponents, registerFormComponent, getFormComponent, hasFormComponent, getFormComponents, clearFormComponentRegistry, resetFormComponentRegistry, clearAllRegistries } from './lib/field-registry';
18
+ export type { FormComponents, SubmitButtonProps, FieldWrapperProps, FieldsWrapperProps } from './lib/field-registry';
19
+ export { useForm, useFormContext, useWatch, useFieldArray, Controller, FormProvider } from 'react-hook-form';
20
+ export type { FieldValues, UseFormReturn, FieldPath, ControllerRenderProps } from 'react-hook-form';
21
+ export { z } from 'zod';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EACH,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,kBAAkB,EACrB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACR,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,sBAAsB,EACzB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC3F,YAAY,EACR,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACnG,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGxF,OAAO,EACH,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACR,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACR,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACH,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGtH,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGrH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7G,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGpG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { z } from 'zod';
2
+ import type { BaseField, RegisteredFieldType, FieldByType } from './field-types';
3
+ import type { ComponentType, ReactNode, Ref } from 'react';
4
+ export type ValidatorFactory<TField extends BaseField = BaseField> = (field: TField) => z.ZodType<any>;
5
+ export interface FieldState {
6
+ invalid: boolean;
7
+ error?: {
8
+ type: string;
9
+ message?: string;
10
+ };
11
+ isDirty: boolean;
12
+ isTouched: boolean;
13
+ }
14
+ export interface FieldComponentProps<TField extends BaseField = BaseField> {
15
+ field: TField;
16
+ formField: {
17
+ value: any;
18
+ onChange: (value: any) => void;
19
+ onBlur: () => void;
20
+ name: string;
21
+ ref: Ref<any>;
22
+ };
23
+ fieldState: FieldState;
24
+ }
25
+ export type FieldComponent<TField extends BaseField = BaseField> = ComponentType<FieldComponentProps<TField>>;
26
+ export interface FieldRegistrationOptions {
27
+ validator?: ValidatorFactory<any>;
28
+ }
29
+ export interface SubmitButtonProps {
30
+ className?: string;
31
+ children: ReactNode;
32
+ disabled?: boolean;
33
+ isSubmitting?: boolean;
34
+ }
35
+ export interface FieldWrapperProps {
36
+ children: ReactNode;
37
+ name: string;
38
+ type: string;
39
+ className?: string;
40
+ }
41
+ export interface FieldsWrapperProps {
42
+ children: ReactNode;
43
+ className?: string;
44
+ }
45
+ export interface FormComponents {
46
+ SubmitButton: ComponentType<SubmitButtonProps>;
47
+ FieldWrapper: ComponentType<FieldWrapperProps>;
48
+ FieldsWrapper: ComponentType<FieldsWrapperProps>;
49
+ }
50
+ export declare function registerField<TType extends RegisteredFieldType>(type: TType, component: FieldComponent<FieldByType<TType>>, options?: FieldRegistrationOptions): void;
51
+ export type FieldDefinition<TType extends RegisteredFieldType = RegisteredFieldType> = FieldComponent<FieldByType<TType>> | {
52
+ component: FieldComponent<FieldByType<TType>>;
53
+ options?: FieldRegistrationOptions;
54
+ };
55
+ export type FieldDefinitionsMap = {
56
+ [TType in RegisteredFieldType]?: FieldDefinition<TType>;
57
+ };
58
+ export declare function registerFields(fields: FieldDefinitionsMap): void;
59
+ export declare function getFieldComponent<TField extends BaseField>(type: string): FieldComponent<TField>;
60
+ export declare function getFieldOptions(type: string): FieldRegistrationOptions | undefined;
61
+ export declare function getFieldValidator(type: string): ValidatorFactory<any> | undefined;
62
+ export declare function hasFieldType(type: string): boolean;
63
+ export declare function unregisterField(type: string): boolean;
64
+ export declare function getRegisteredFieldTypes(): string[];
65
+ export declare function registerFormComponents(components: Partial<FormComponents>): void;
66
+ export declare function registerFormComponent<K extends keyof FormComponents>(name: K, component: FormComponents[K]): void;
67
+ export declare function getFormComponent<K extends keyof FormComponents>(name: K): FormComponents[K];
68
+ export declare function hasFormComponent(name: keyof FormComponents): boolean;
69
+ export declare function getFormComponents(): Partial<FormComponents>;
70
+ export declare function clearFieldRegistry(): void;
71
+ export declare function clearFormComponentRegistry(): void;
72
+ export declare function resetFormComponentRegistry(): void;
73
+ export declare function clearAllRegistries(): void;
74
+ //# sourceMappingURL=field-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-registry.d.ts","sourceRoot":"","sources":["../../../src/lib/field-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ import { z } from 'zod';
2
+ export interface BaseField<TType extends string = string, TValue = any> {
3
+ type: TType;
4
+ name: string;
5
+ label?: string;
6
+ description?: string;
7
+ required?: boolean;
8
+ disabled?: boolean;
9
+ hidden?: boolean;
10
+ defaultValue?: TValue;
11
+ validation?: z.ZodType<TValue>;
12
+ className?: string;
13
+ }
14
+ export interface FieldOption {
15
+ label: string;
16
+ value: string;
17
+ disabled?: boolean;
18
+ }
19
+ export type CreateFieldType<TType extends string, TValue = any, TProps extends Record<string, any> = object> = BaseField<TType, TValue> & TProps;
20
+ export interface TextFieldProps {
21
+ placeholder?: string;
22
+ minLength?: number;
23
+ maxLength?: number;
24
+ pattern?: string;
25
+ }
26
+ export interface NumberFieldProps {
27
+ placeholder?: string;
28
+ min?: number;
29
+ max?: number;
30
+ step?: number;
31
+ }
32
+ export interface OptionsFieldProps {
33
+ options: FieldOption[];
34
+ placeholder?: string;
35
+ }
36
+ export interface TextareaFieldProps {
37
+ placeholder?: string;
38
+ rows?: number;
39
+ minLength?: number;
40
+ maxLength?: number;
41
+ }
42
+ export interface DateFieldProps {
43
+ min?: string;
44
+ max?: string;
45
+ }
46
+ export interface FieldTypeRegistry {
47
+ 'text': CreateFieldType<'text', string, TextFieldProps & {
48
+ fieldType?: 'text' | 'email' | 'password' | 'tel' | 'url' | 'search';
49
+ }>;
50
+ 'email': CreateFieldType<'email', string, TextFieldProps>;
51
+ 'password': CreateFieldType<'password', string, TextFieldProps>;
52
+ 'tel': CreateFieldType<'tel', string, TextFieldProps>;
53
+ 'url': CreateFieldType<'url', string, TextFieldProps>;
54
+ 'search': CreateFieldType<'search', string, TextFieldProps>;
55
+ 'number': CreateFieldType<'number', number, NumberFieldProps>;
56
+ 'range': CreateFieldType<'range', number, NumberFieldProps>;
57
+ 'textarea': CreateFieldType<'textarea', string, TextareaFieldProps>;
58
+ 'checkbox': CreateFieldType<'checkbox', boolean>;
59
+ 'switch': CreateFieldType<'switch', boolean>;
60
+ 'select': CreateFieldType<'select', string, OptionsFieldProps>;
61
+ 'radio': CreateFieldType<'radio', string, OptionsFieldProps>;
62
+ 'date': CreateFieldType<'date', Date, DateFieldProps>;
63
+ 'time': CreateFieldType<'time', string>;
64
+ 'datetime': CreateFieldType<'datetime', Date, DateFieldProps>;
65
+ 'datetime-local': CreateFieldType<'datetime-local', Date, DateFieldProps>;
66
+ 'month': CreateFieldType<'month', string>;
67
+ 'week': CreateFieldType<'week', string>;
68
+ 'color': CreateFieldType<'color', string>;
69
+ 'file': CreateFieldType<'file', File | FileList, {
70
+ accept?: string;
71
+ multiple?: boolean;
72
+ }>;
73
+ 'hidden': CreateFieldType<'hidden', string>;
74
+ }
75
+ export interface ArrayField<TFields extends readonly BaseField[] = readonly BaseField[]> {
76
+ type: 'array';
77
+ name: string;
78
+ label?: string;
79
+ description?: string;
80
+ hidden?: boolean;
81
+ className?: string;
82
+ fields: TFields;
83
+ minItems?: number;
84
+ maxItems?: number;
85
+ defaultValue?: Array<Record<string, unknown>>;
86
+ }
87
+ export declare function isArrayField(field: FormItem | ArrayField): field is ArrayField;
88
+ export type RegisteredFieldType = keyof FieldTypeRegistry;
89
+ export type RegisteredField = FieldTypeRegistry[RegisteredFieldType];
90
+ export type FieldByType<T extends RegisteredFieldType> = FieldTypeRegistry[T];
91
+ export type Field = RegisteredField;
92
+ export type FormItem = Field | ArrayField;
93
+ export interface FieldTypeValueMap {
94
+ 'text': string;
95
+ 'textarea': string;
96
+ 'email': string;
97
+ 'password': string;
98
+ 'url': string;
99
+ 'tel': string;
100
+ 'search': string;
101
+ 'number': number;
102
+ 'range': number;
103
+ 'checkbox': boolean;
104
+ 'switch': boolean;
105
+ 'radio': string;
106
+ 'select': string;
107
+ 'date': Date;
108
+ 'datetime': Date;
109
+ 'datetime-local': Date;
110
+ 'time': string;
111
+ 'month': string;
112
+ 'week': string;
113
+ 'color': string;
114
+ 'file': File | FileList;
115
+ 'hidden': string;
116
+ }
117
+ export type FieldValueType<T extends string> = T extends keyof FieldTypeValueMap ? FieldTypeValueMap[T] : unknown;
118
+ export type InferFieldValue<F> = F extends BaseField<infer T, infer V> ? (unknown extends V ? FieldValueType<T> : V) : unknown;
119
+ export type InferArrayItemValues<T extends readonly BaseField[]> = {
120
+ [K in T[number] as K['name']]: InferFieldValue<K>;
121
+ };
122
+ export type InferFormValues<T extends readonly FormItem[]> = {
123
+ [K in T[number] as K['name']]: K extends ArrayField<infer TFields> ? Array<InferArrayItemValues<TFields>> : K extends BaseField ? K['required'] extends true ? InferFieldValue<K> : InferFieldValue<K> | undefined : unknown;
124
+ };
125
+ export type InferFormValuesFromFields<T extends FormItem[]> = InferFormValues<readonly [...T]>;
126
+ export declare function createField<F extends RegisteredField>(field: F): F;
127
+ export declare function createArrayField<TFields extends readonly BaseField[]>(field: Omit<ArrayField<TFields>, 'type'> & {
128
+ fields: TFields;
129
+ }): ArrayField<TFields>;
130
+ export type ValidateFieldType<T> = T extends {
131
+ type: infer TType;
132
+ } ? TType extends RegisteredFieldType | 'array' ? T : {
133
+ __error: `Invalid field type '${TType & string}'. Must be a registered field type.`;
134
+ type: TType;
135
+ } : T;
136
+ export type StrictFormItem<T> = T extends ArrayField ? T : T extends {
137
+ type: infer TType;
138
+ } ? TType extends RegisteredFieldType ? T : {
139
+ __error: `Invalid field type '${TType & string}'`;
140
+ type: TType;
141
+ name: string;
142
+ } : never;
143
+ export declare function strictFields<T extends FormItem[]>(fields: {
144
+ [K in keyof T]: StrictFormItem<T[K]>;
145
+ }): T;
146
+ export declare function validateFieldType(type: string, registeredTypes: string[]): RegisteredFieldType;
147
+ export declare function validateFieldTypes<T extends readonly FormItem[]>(fields: T, registeredTypes: string[], options?: {
148
+ throwOnError?: boolean;
149
+ warn?: boolean;
150
+ }): T;
151
+ //# sourceMappingURL=field-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/lib/field-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './field-types';
2
+ export type { TemplateFields, TemplateFieldsUtils, TemplateButtons, TemplateRenderProps, TemplateRenderFn, FieldRenderOptions, TemplateArrayField, TemplateArrayItem } from './template-types';
3
+ export { registerField, registerFields, getFieldComponent, getFieldOptions, getFieldValidator, hasFieldType, unregisterField, getRegisteredFieldTypes, clearFieldRegistry } from './field-registry';
4
+ export type { FieldComponentProps, FieldComponent, FieldRegistrationOptions, FieldDefinition, ValidatorFactory, FieldState } from './field-registry';
5
+ export { registerFormComponents, registerFormComponent, getFormComponent, hasFormComponent, getFormComponents, clearFormComponentRegistry, clearAllRegistries } from './field-registry';
6
+ export type { FormComponents, SubmitButtonProps, FieldWrapperProps, FieldsWrapperProps } from './field-registry';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAG9B,YAAY,EACR,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}