@connect-soft/form-generator 1.1.0-alpha3 → 1.1.0-alpha4

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.
@@ -0,0 +1,4 @@
1
+ import type { TemplateFields, FieldEntry, TemplateLayouts, LayoutEntry } from '@/lib/template-types';
2
+ export declare function createTemplateFields(fieldEntries: Map<string, FieldEntry>): TemplateFields;
3
+ export declare function createTemplateLayouts(layoutEntries: Map<string, LayoutEntry>): TemplateLayouts;
4
+ //# 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,eAAe,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWrG,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,cAAc,CAoF1F;AAKD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,eAAe,CAkD9F"}
@@ -1,28 +1,34 @@
1
1
  import React from 'react';
2
- import { UseFormReturn } from 'react-hook-form';
2
+ import { UseFormReturn, FieldValues } from 'react-hook-form';
3
3
  import { z } from 'zod';
4
4
  import { FormItem, InferFormValues } from '@/lib';
5
- interface FormGeneratorBaseProps {
5
+ import type { TemplateRenderFn } from '@/lib/template-types';
6
+ interface FormGeneratorBaseProps<TValues extends FieldValues = FieldValues> {
6
7
  className?: string;
7
8
  submitText?: string;
8
9
  disabled?: boolean;
9
10
  mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
10
- ref?: React.Ref<FormGeneratorRef<any>>;
11
+ title?: string;
12
+ description?: string;
13
+ showReset?: boolean;
14
+ resetText?: string;
15
+ children?: TemplateRenderFn<TValues>;
16
+ ref?: React.Ref<FormGeneratorRef<TValues>>;
11
17
  }
12
- export interface FormGeneratorPropsWithSchema<TSchema extends z.ZodType> extends FormGeneratorBaseProps {
18
+ export interface FormGeneratorPropsWithSchema<TSchema extends z.ZodType<FieldValues>> extends FormGeneratorBaseProps<z.infer<TSchema>> {
13
19
  fields: readonly FormItem[];
14
20
  schema: TSchema;
15
21
  onSubmit: (values: z.infer<TSchema>) => void | Promise<void>;
16
22
  defaultValues?: Partial<z.infer<TSchema>>;
17
23
  }
18
- export interface FormGeneratorPropsWithoutSchema<TFields extends readonly FormItem[]> extends FormGeneratorBaseProps {
24
+ export interface FormGeneratorPropsWithoutSchema<TFields extends readonly FormItem[]> extends FormGeneratorBaseProps<InferFormValues<TFields>> {
19
25
  fields: TFields;
20
26
  schema?: undefined;
21
27
  onSubmit: (values: InferFormValues<TFields>) => void | Promise<void>;
22
28
  defaultValues?: Partial<InferFormValues<TFields>>;
23
29
  }
24
- export type FormGeneratorProps<TSchema extends z.ZodType = z.ZodType, TFields extends readonly FormItem[] = readonly FormItem[]> = FormGeneratorPropsWithSchema<TSchema> | FormGeneratorPropsWithoutSchema<TFields>;
25
- export interface FormGeneratorRef<TValues extends Record<string, any> = Record<string, any>> {
30
+ export type FormGeneratorProps<TSchema extends z.ZodType<FieldValues> = z.ZodType<FieldValues>, TFields extends readonly FormItem[] = readonly FormItem[]> = FormGeneratorPropsWithSchema<TSchema> | FormGeneratorPropsWithoutSchema<TFields>;
31
+ export interface FormGeneratorRef<TValues extends FieldValues = FieldValues> {
26
32
  setValues: (values: Partial<TValues>) => void;
27
33
  getValues: () => TValues;
28
34
  reset: (values?: Partial<TValues>) => void;
@@ -36,6 +42,7 @@ export interface FormGeneratorRef<TValues extends Record<string, any> = Record<s
36
42
  isDirty: () => boolean;
37
43
  form: UseFormReturn<TValues>;
38
44
  }
39
- export declare const FormGenerator: <TSchema extends z.ZodType = z.ZodType, TFields extends readonly FormItem[] = readonly FormItem[]>(props: FormGeneratorProps<TSchema, TFields>) => React.ReactElement;
45
+ export declare function FormGenerator<TFields extends readonly FormItem[]>(props: FormGeneratorPropsWithoutSchema<TFields>): React.ReactElement;
46
+ export declare function FormGenerator<TSchema extends z.ZodType<FieldValues>>(props: FormGeneratorPropsWithSchema<TSchema>): React.ReactElement;
40
47
  export {};
41
48
  //# 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,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,EAAyB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIH,QAAQ,EAIR,eAAe,EAClB,MAAM,OAAO,CAAC;AA8Lf,UAAU,sBAAsB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;IAEhE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1C;AAMD,MAAM,WAAW,4BAA4B,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAE,SAAQ,sBAAsB;IACnG,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7C;AAMD,MAAM,WAAW,+BAA+B,CAAC,OAAO,SAAS,SAAS,QAAQ,EAAE,CAAE,SAAQ,sBAAsB;IAChH,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,kBAAkB,CAC1B,OAAO,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EACrC,OAAO,SAAS,SAAS,QAAQ,EAAE,GAAG,SAAS,QAAQ,EAAE,IACzD,4BAA4B,CAAC,OAAO,CAAC,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAMrF,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAEvF,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;AAuGD,eAAO,MAAM,aAAa,EAAwB,CAC9C,OAAO,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EACrC,OAAO,SAAS,SAAS,QAAQ,EAAE,GAAG,SAAS,QAAQ,EAAE,EAEzD,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,KAC1C,KAAK,CAAC,YAAY,CAAC"}
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,13 @@
1
+ import { z } from 'zod';
2
+ import { BaseField, FormItem, ColumnsLayout, SectionLayout } from '@/lib';
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(items: readonly FormItem[]): z.ZodType<unknown>;
6
+ export declare function buildDefaultValues(items: readonly FormItem[]): Record<string, unknown>;
7
+ export declare function getItemKey(item: FormItem, index: number): string;
8
+ export declare function extractFields(items: readonly FormItem[]): BaseField[];
9
+ export declare function extractLayouts(items: readonly FormItem[]): {
10
+ layout: ColumnsLayout | SectionLayout;
11
+ index: number;
12
+ }[];
13
+ //# 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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAqB,SAAS,EAAE,QAAQ,EAAiB,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK5G,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,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAsBzE;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAqC1E;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BtF;AAKD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhE;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,EAAE,CAsBrE;AAKD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG;IAAE,MAAM,EAAE,aAAa,GAAG,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAUrH"}
@@ -1,7 +1,8 @@
1
1
  export { FormGenerator } from './components/form/form-generator';
2
- export type { FormGeneratorProps } from './components/form/form-generator';
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 type { TemplateFields, TemplateLayouts, TemplateButtons, TemplateRenderProps, TemplateRenderFn } from './lib/template-types';
5
6
  export * from './lib/field-types';
6
7
  export { registerField, registerFields, getFieldComponent, hasFieldType, unregisterField, getRegisteredFieldTypes, clearFieldRegistry } from './lib/field-registry';
7
8
  export type { FieldComponentProps, FieldComponent, RegistrationConfig } from './lib/field-registry';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,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,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGpG,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACR,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGrG,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,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,YAAY,EACR,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACnB,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,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGpG,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACR,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGrG,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"}
@@ -1,4 +1,5 @@
1
1
  export * from './field-types';
2
+ export type { TemplateFields, TemplateFieldsUtils, TemplateLayouts, TemplateButtons, TemplateRenderProps, TemplateRenderFn, FieldRenderOptions, LayoutRenderOptions } from './template-types';
2
3
  export { registerField, registerFields, getFieldComponent, getFieldClassName, getFieldOptions, getFieldValidator, hasFieldType, unregisterField, getRegisteredFieldTypes, clearFieldRegistry } from './field-registry';
3
4
  export type { FieldComponentProps, FieldComponent, FieldRegistrationOptions, FieldDefinition, ValidatorFactory, FieldState } from './field-registry';
4
5
  export { registerFormComponents, registerFormComponent, getFormComponent, hasFormComponent, getFormComponents, clearFormComponentRegistry, clearAllRegistries } from './field-registry';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAG9B,OAAO,EACH,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,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,EACR,cAAc,EACd,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
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,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,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,EACR,cAAc,EACd,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { BaseField, LayoutBlock } from './field-types';
2
+ import type { ReactElement } from 'react';
3
+ import type { FieldValues, UseFormReturn } from 'react-hook-form';
4
+ export interface FieldRenderOptions {
5
+ className?: string;
6
+ namePrefix?: string;
7
+ }
8
+ export interface LayoutRenderOptions {
9
+ className?: string;
10
+ namePrefix?: string;
11
+ }
12
+ export interface TemplateFieldsUtils {
13
+ all: ReactElement[];
14
+ remaining: ReactElement[];
15
+ names: string[];
16
+ has(name: string): boolean;
17
+ render(...names: string[]): ReactElement[];
18
+ }
19
+ export type TemplateFields = TemplateFieldsUtils & {
20
+ [fieldName: string]: ReactElement;
21
+ };
22
+ export type TemplateLayouts = {
23
+ all: ReactElement[];
24
+ } & {
25
+ [layoutName: string]: ReactElement;
26
+ };
27
+ export interface TemplateButtons {
28
+ submit: ReactElement;
29
+ reset?: ReactElement;
30
+ }
31
+ export interface TemplateRenderProps<TValues extends FieldValues = FieldValues> {
32
+ fields: TemplateFields;
33
+ layouts: TemplateLayouts;
34
+ buttons: TemplateButtons;
35
+ title?: string;
36
+ description?: string;
37
+ form: UseFormReturn<TValues>;
38
+ isSubmitting: boolean;
39
+ isValid: boolean;
40
+ isDirty: boolean;
41
+ renderField: (field: BaseField, options?: FieldRenderOptions) => ReactElement;
42
+ renderLayout: (layout: LayoutBlock, options?: LayoutRenderOptions) => ReactElement;
43
+ }
44
+ export type TemplateRenderFn<TValues extends FieldValues = FieldValues> = (props: TemplateRenderProps<TValues>) => ReactElement | null;
45
+ export interface FieldEntry {
46
+ field: BaseField;
47
+ element: ReactElement;
48
+ accessed: boolean;
49
+ }
50
+ export interface LayoutEntry {
51
+ layout: LayoutBlock;
52
+ element: ReactElement;
53
+ }
54
+ //# sourceMappingURL=template-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-types.d.ts","sourceRoot":"","sources":["../../../src/lib/template-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IAE/B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,MAAM,WAAW,mBAAmB;IAEhC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,MAAM,WAAW,mBAAmB;IAEhC,GAAG,EAAE,YAAY,EAAE,CAAC;IAGpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAG1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAG3B,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;CAC9C;AAOD,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG;IAE/C,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC;CACrC,CAAC;AAKF,MAAM,MAAM,eAAe,GAAG;IAE1B,GAAG,EAAE,YAAY,EAAE,CAAC;CACvB,GAAG;IAEA,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;CACtC,CAAC;AAKF,MAAM,WAAW,eAAe;IAE5B,MAAM,EAAE,YAAY,CAAC;IAErB,KAAK,CAAC,EAAE,YAAY,CAAC;CACxB;AAKD,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW;IAE1E,MAAM,EAAE,cAAc,CAAC;IAGvB,OAAO,EAAE,eAAe,CAAC;IAGzB,OAAO,EAAE,eAAe,CAAC;IAGzB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAG7B,YAAY,EAAE,OAAO,CAAC;IAGtB,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,OAAO,CAAC;IAGjB,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,YAAY,CAAC;IAG9E,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,mBAAmB,KAAK,YAAY,CAAC;CACtF;AAKD,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IAAI,CACtE,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAClC,YAAY,GAAG,IAAI,CAAC;AAKzB,MAAM,WAAW,UAAU;IAEvB,KAAK,EAAE,SAAS,CAAC;IAEjB,OAAO,EAAE,YAAY,CAAC;IAEtB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAKD,MAAM,WAAW,WAAW;IAExB,MAAM,EAAE,WAAW,CAAC;IAEpB,OAAO,EAAE,YAAY,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@connect-soft/form-generator",
3
- "version": "1.1.0-alpha3",
3
+ "version": "1.1.0-alpha4",
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",