@connect-soft/form-generator 1.1.0-alpha8 → 1.1.0-alpha9
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.
- package/README.md +219 -0
- package/dist/index.js +415 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +410 -44
- package/dist/index.mjs.map +1 -1
- package/dist/types/components/form/fields-context.d.ts +26 -0
- package/dist/types/components/form/fields-context.d.ts.map +1 -0
- package/dist/types/components/form/form-generator-typed.d.ts +49 -0
- package/dist/types/components/form/form-generator-typed.d.ts.map +1 -0
- package/dist/types/components/form/form-generator.d.ts +7 -20
- package/dist/types/components/form/form-generator.d.ts.map +1 -1
- package/dist/types/components/form/form-utils.d.ts +4 -2
- package/dist/types/components/form/form-utils.d.ts.map +1 -1
- package/dist/types/components/form/index.d.ts +1 -1
- package/dist/types/components/form/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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,49 @@
|
|
|
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 } 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<BaseField & {
|
|
18
|
+
name: keyof z.infer<TSchema> & string;
|
|
19
|
+
} & Record<string, unknown>>;
|
|
20
|
+
onSubmit: (values: z.infer<TSchema>) => void | Promise<void>;
|
|
21
|
+
defaultValues?: Partial<z.infer<TSchema>>;
|
|
22
|
+
className?: string;
|
|
23
|
+
submitText?: string;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
|
|
26
|
+
title?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
showReset?: boolean;
|
|
29
|
+
resetText?: string;
|
|
30
|
+
children?: TemplateRenderFn<z.infer<TSchema>>;
|
|
31
|
+
ref?: React.Ref<FormGeneratorRef<z.infer<TSchema>>>;
|
|
32
|
+
validateTypes?: boolean | ValidateTypesOptions;
|
|
33
|
+
}
|
|
34
|
+
export declare function StrictFormGenerator<TSchema extends z.ZodType<FieldValues>>(props: StrictFormGeneratorProps<TSchema>): React.ReactElement;
|
|
35
|
+
export declare function createFieldFactory<TSchema extends z.ZodType<FieldValues>>(_schema: TSchema): <TKey extends keyof z.infer<TSchema> & string>(field: {
|
|
36
|
+
name: TKey;
|
|
37
|
+
type: FieldTypeForValue<z.infer<TSchema>[TKey]>;
|
|
38
|
+
} & Omit<BaseField, "name" | "type"> & Record<string, unknown>) => {
|
|
39
|
+
name: TKey;
|
|
40
|
+
type: FieldTypeForValue<z.infer<TSchema>[TKey]>;
|
|
41
|
+
} & Omit<BaseField<string, any>, "name" | "type"> & Record<string, unknown>;
|
|
42
|
+
export type InferSchema<TSchema extends z.ZodType> = z.infer<TSchema>;
|
|
43
|
+
export type ValidateFieldsComplete<TSchema extends z.ZodType, TFields extends Array<{
|
|
44
|
+
name: string;
|
|
45
|
+
}>> = Exclude<keyof z.infer<TSchema>, TFields[number]['name']> extends never ? TFields : {
|
|
46
|
+
__error: `Missing fields: ${Exclude<keyof z.infer<TSchema> & string, TFields[number]['name']>}`;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
49
|
+
//# 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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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { UseFormReturn, FieldValues } from 'react-hook-form';
|
|
3
|
-
import { z } from 'zod';
|
|
4
3
|
import { FormItem, InferFormValues } from '@/lib';
|
|
5
4
|
import type { TemplateRenderFn } from '@/lib/template-types';
|
|
6
5
|
export interface ValidateTypesOptions {
|
|
7
6
|
throwOnError?: boolean;
|
|
8
7
|
warn?: boolean;
|
|
9
8
|
}
|
|
10
|
-
interface
|
|
9
|
+
export interface FormGeneratorProps<TFields extends readonly FormItem[]> {
|
|
10
|
+
fields: TFields;
|
|
11
|
+
onSubmit: (values: InferFormValues<TFields>) => void | Promise<void>;
|
|
12
|
+
defaultValues?: Partial<InferFormValues<TFields>>;
|
|
11
13
|
className?: string;
|
|
12
14
|
submitText?: string;
|
|
13
15
|
disabled?: boolean;
|
|
@@ -16,23 +18,10 @@ interface FormGeneratorBaseProps<TValues extends FieldValues = FieldValues> {
|
|
|
16
18
|
description?: string;
|
|
17
19
|
showReset?: boolean;
|
|
18
20
|
resetText?: string;
|
|
19
|
-
children?: TemplateRenderFn<
|
|
20
|
-
ref?: React.Ref<FormGeneratorRef<
|
|
21
|
+
children?: TemplateRenderFn<InferFormValues<TFields>>;
|
|
22
|
+
ref?: React.Ref<FormGeneratorRef<InferFormValues<TFields>>>;
|
|
21
23
|
validateTypes?: boolean | ValidateTypesOptions;
|
|
22
24
|
}
|
|
23
|
-
export interface FormGeneratorPropsWithSchema<TSchema extends z.ZodType<FieldValues>> extends FormGeneratorBaseProps<z.infer<TSchema>> {
|
|
24
|
-
fields: readonly FormItem[];
|
|
25
|
-
schema: TSchema;
|
|
26
|
-
onSubmit: (values: z.infer<TSchema>) => void | Promise<void>;
|
|
27
|
-
defaultValues?: Partial<z.infer<TSchema>>;
|
|
28
|
-
}
|
|
29
|
-
export interface FormGeneratorPropsWithoutSchema<TFields extends readonly FormItem[]> extends FormGeneratorBaseProps<InferFormValues<TFields>> {
|
|
30
|
-
fields: TFields;
|
|
31
|
-
schema?: undefined;
|
|
32
|
-
onSubmit: (values: InferFormValues<TFields>) => void | Promise<void>;
|
|
33
|
-
defaultValues?: Partial<InferFormValues<TFields>>;
|
|
34
|
-
}
|
|
35
|
-
export type FormGeneratorProps<TSchema extends z.ZodType<FieldValues> = z.ZodType<FieldValues>, TFields extends readonly FormItem[] = readonly FormItem[]> = FormGeneratorPropsWithSchema<TSchema> | FormGeneratorPropsWithoutSchema<TFields>;
|
|
36
25
|
export interface FormGeneratorRef<TValues extends FieldValues = FieldValues> {
|
|
37
26
|
setValues: (values: Partial<TValues>) => void;
|
|
38
27
|
getValues: () => TValues;
|
|
@@ -47,7 +36,5 @@ export interface FormGeneratorRef<TValues extends FieldValues = FieldValues> {
|
|
|
47
36
|
isDirty: () => boolean;
|
|
48
37
|
form: UseFormReturn<TValues>;
|
|
49
38
|
}
|
|
50
|
-
export declare function FormGenerator<TFields extends readonly FormItem[]>(props:
|
|
51
|
-
export declare function FormGenerator<TSchema extends z.ZodType<FieldValues>>(props: FormGeneratorPropsWithSchema<TSchema>): React.ReactElement;
|
|
52
|
-
export {};
|
|
39
|
+
export declare function FormGenerator<TFields extends readonly FormItem[]>(props: FormGeneratorProps<TFields>): React.ReactElement;
|
|
53
40
|
//# sourceMappingURL=form-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-generator.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-generator.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0E,MAAM,OAAO,CAAC;AAC/F,OAAO,EAAyB,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"form-generator.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-generator.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0E,MAAM,OAAO,CAAC;AAC/F,OAAO,EAAyB,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,EAGH,QAAQ,EACR,eAAe,EAKlB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACR,gBAAgB,EAKnB,MAAM,sBAAsB,CAAC;AAU9B,MAAM,WAAW,oBAAoB;IAMjC,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAKD,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,SAAS,QAAQ,EAAE;IAEnE,MAAM,EAAE,OAAO,CAAC;IAEhB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAElD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;IAEhE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAQ5D,aAAa,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;CAClD;AAMD,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW;IAEvE,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAE9C,SAAS,EAAE,MAAM,OAAO,CAAC;IAEzB,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAE3C,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAElF,OAAO,EAAE,MAAM,OAAO,CAAC;IAEvB,OAAO,EAAE,MAAM,OAAO,CAAC;IAEvB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAChC;AA4CD,wBAAgB,aAAa,CAAC,OAAO,SAAS,SAAS,QAAQ,EAAE,EAC7D,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACnC,KAAK,CAAC,YAAY,CAgPpB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { BaseField, FormItem } from '@/lib';
|
|
3
3
|
export declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
|
|
4
|
-
export declare function getValidatorForField(field: BaseField): z.ZodType<unknown
|
|
5
|
-
export declare function buildSchema
|
|
4
|
+
export declare function getValidatorForField(field: BaseField): z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>> | z.ZodAny;
|
|
5
|
+
export declare function buildSchema<Fields extends readonly FormItem[]>(fields: Fields): z.ZodObject<{
|
|
6
|
+
[x: string]: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
7
|
+
}, z.core.$strip>;
|
|
6
8
|
export declare function buildDefaultValues(fields: readonly FormItem[]): Record<string, unknown>;
|
|
7
9
|
//# sourceMappingURL=form-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAqB,SAAS,EAAE,QAAQ,EAA4B,MAAM,OAAO,CAAC;AAKzF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBnH;AAiDD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"form-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/form/form-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAqB,SAAS,EAAE,QAAQ,EAA4B,MAAM,OAAO,CAAC;AAKzF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBnH;AAiDD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,8EAsBpD;AA0BD,wBAAgB,WAAW,CAAC,MAAM,SAAS,SAAS,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM;;kBA0B7E;AAmBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBvF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { FieldRenderer } from './field-renderer';
|
|
2
2
|
export type { FieldRendererProps } from './field-renderer';
|
|
3
3
|
export { FormGenerator } from './form-generator';
|
|
4
|
-
export type { FormGeneratorProps,
|
|
4
|
+
export type { FormGeneratorProps, FormGeneratorRef } from './form-generator';
|
|
5
5
|
export { ArrayFieldRenderer, useArrayField } from './array-field-renderer';
|
|
6
6
|
export type { ArrayFieldRendererProps, ArrayFieldItemProps, ArrayFieldItemRenderFn, UseArrayFieldReturn } from './array-field-renderer';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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,
|
|
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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
export { FormGenerator, type
|
|
1
|
+
export { FormGenerator, type ValidateTypesOptions } from './components/form/form-generator';
|
|
2
2
|
export type { FormGeneratorProps, FormGeneratorRef } from './components/form/form-generator';
|
|
3
3
|
export { FieldRenderer } from './components/form/field-renderer';
|
|
4
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';
|
|
5
7
|
export { ArrayFieldRenderer, useArrayField } from './components/form/array-field-renderer';
|
|
6
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';
|
|
7
11
|
export type { TemplateFields, TemplateButtons, TemplateRenderProps, TemplateRenderFn, TemplateArrayField, TemplateArrayItem } from './lib/template-types';
|
|
8
12
|
export * from './lib/field-types';
|
|
9
13
|
export { registerField, registerFields, getFieldComponent, hasFieldType, unregisterField, getRegisteredFieldTypes, clearFieldRegistry } from './lib/field-registry';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
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,MAAM,kCAAkC,CAAC;AAC7F,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,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@connect-soft/form-generator",
|
|
3
|
-
"version": "1.1.0-
|
|
3
|
+
"version": "1.1.0-alpha9",
|
|
4
4
|
"description": "Headless, type-safe form generator with react-hook-form and Zod validation",
|
|
5
5
|
"author": "Lukáš Černý <lukas.cerny@connect-soft.cz>",
|
|
6
6
|
"license": "ISC",
|