@connect-soft/form-generator 1.1.0-alpha2 → 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.
- package/README.md +486 -28
- package/dist/index.js +292 -87
- package/dist/index.js.map +1 -1
- package/dist/{index.m.js → index.mjs} +294 -89
- package/dist/index.mjs.map +1 -0
- package/dist/types/components/form/create-template-fields.d.ts +4 -0
- package/dist/types/components/form/create-template-fields.d.ts.map +1 -0
- package/dist/types/components/form/form-generator.d.ts +33 -12
- package/dist/types/components/form/form-generator.d.ts.map +1 -1
- package/dist/types/components/form/form-utils.d.ts +13 -0
- package/dist/types/components/form/form-utils.d.ts.map +1 -0
- 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 +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/index.d.ts +1 -0
- package/dist/types/lib/index.d.ts.map +1 -1
- package/dist/types/lib/template-types.d.ts +54 -0
- package/dist/types/lib/template-types.d.ts.map +1 -0
- package/package.json +11 -25
- package/MIGRATION.md +0 -503
- package/dist/index.m.js.map +0 -1
- package/dist/styles/globals.css +0 -2
|
@@ -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,27 +1,48 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { UseFormReturn, FieldValues } from 'react-hook-form';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
import { FormItem, InferFormValues } from '@/lib';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
schema: TSchema;
|
|
7
|
-
onSubmit: (values: z.infer<TSchema>) => void | Promise<void>;
|
|
8
|
-
defaultValues?: Partial<z.infer<TSchema>>;
|
|
5
|
+
import type { TemplateRenderFn } from '@/lib/template-types';
|
|
6
|
+
interface FormGeneratorBaseProps<TValues extends FieldValues = FieldValues> {
|
|
9
7
|
className?: string;
|
|
10
8
|
submitText?: string;
|
|
11
9
|
disabled?: boolean;
|
|
12
10
|
mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
|
|
11
|
+
title?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
showReset?: boolean;
|
|
14
|
+
resetText?: string;
|
|
15
|
+
children?: TemplateRenderFn<TValues>;
|
|
16
|
+
ref?: React.Ref<FormGeneratorRef<TValues>>;
|
|
17
|
+
}
|
|
18
|
+
export interface FormGeneratorPropsWithSchema<TSchema extends z.ZodType<FieldValues>> extends FormGeneratorBaseProps<z.infer<TSchema>> {
|
|
19
|
+
fields: readonly FormItem[];
|
|
20
|
+
schema: TSchema;
|
|
21
|
+
onSubmit: (values: z.infer<TSchema>) => void | Promise<void>;
|
|
22
|
+
defaultValues?: Partial<z.infer<TSchema>>;
|
|
13
23
|
}
|
|
14
|
-
export interface FormGeneratorPropsWithoutSchema<TFields extends readonly FormItem[]> {
|
|
24
|
+
export interface FormGeneratorPropsWithoutSchema<TFields extends readonly FormItem[]> extends FormGeneratorBaseProps<InferFormValues<TFields>> {
|
|
15
25
|
fields: TFields;
|
|
16
26
|
schema?: undefined;
|
|
17
27
|
onSubmit: (values: InferFormValues<TFields>) => void | Promise<void>;
|
|
18
28
|
defaultValues?: Partial<InferFormValues<TFields>>;
|
|
19
|
-
className?: string;
|
|
20
|
-
submitText?: string;
|
|
21
|
-
disabled?: boolean;
|
|
22
|
-
mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
|
|
23
29
|
}
|
|
24
|
-
export type FormGeneratorProps<TSchema extends z.ZodType = z.ZodType
|
|
25
|
-
export
|
|
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> {
|
|
32
|
+
setValues: (values: Partial<TValues>) => void;
|
|
33
|
+
getValues: () => TValues;
|
|
34
|
+
reset: (values?: Partial<TValues>) => void;
|
|
35
|
+
submit: () => Promise<void>;
|
|
36
|
+
clearErrors: () => void;
|
|
37
|
+
setError: (name: keyof TValues, error: {
|
|
38
|
+
type: string;
|
|
39
|
+
message: string;
|
|
40
|
+
}) => void;
|
|
41
|
+
isValid: () => boolean;
|
|
42
|
+
isDirty: () => boolean;
|
|
43
|
+
form: UseFormReturn<TValues>;
|
|
44
|
+
}
|
|
26
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;
|
|
47
|
+
export {};
|
|
27
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,
|
|
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,5 +1,5 @@
|
|
|
1
1
|
export { FieldRenderer, FormItemRenderer } from './field-renderer';
|
|
2
2
|
export type { FieldRendererProps, FormItemRendererProps } from './field-renderer';
|
|
3
3
|
export { FormGenerator } from './form-generator';
|
|
4
|
-
export type { FormGeneratorProps, FormGeneratorPropsWithSchema, FormGeneratorPropsWithoutSchema } from './form-generator';
|
|
4
|
+
export type { FormGeneratorProps, FormGeneratorPropsWithSchema, FormGeneratorPropsWithoutSchema, FormGeneratorRef } from './form-generator';
|
|
5
5
|
//# 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,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACR,kBAAkB,EAClB,4BAA4B,EAC5B,+BAA+B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/form/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACR,kBAAkB,EAClB,4BAA4B,EAC5B,+BAA+B,EAC/B,gBAAgB,EACnB,MAAM,kBAAkB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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;
|
|
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,43 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@connect-soft/form-generator",
|
|
3
|
-
"version": "1.1.0-
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.1.0-alpha4",
|
|
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",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
|
-
"module": "dist/index.
|
|
8
|
+
"module": "dist/index.mjs",
|
|
9
9
|
"types": "dist/types/index.d.ts",
|
|
10
|
-
"sideEffects":
|
|
11
|
-
"*.css"
|
|
12
|
-
],
|
|
10
|
+
"sideEffects": false,
|
|
13
11
|
"exports": {
|
|
14
12
|
".": {
|
|
15
13
|
"types": "./dist/types/index.d.ts",
|
|
16
|
-
"import": "./dist/index.
|
|
14
|
+
"import": "./dist/index.mjs",
|
|
17
15
|
"require": "./dist/index.js"
|
|
18
|
-
},
|
|
19
|
-
"./styles": "./dist/styles/globals.css",
|
|
20
|
-
"./advanced": {
|
|
21
|
-
"types": "./dist/types/components/ui/advanced/index.d.ts",
|
|
22
|
-
"import": "./dist/components/ui/advanced/index.m.js",
|
|
23
|
-
"require": "./dist/components/ui/advanced/index.js"
|
|
24
|
-
},
|
|
25
|
-
"./adapters": {
|
|
26
|
-
"types": "./dist/types/adapters/index.d.ts",
|
|
27
|
-
"import": "./dist/adapters/index.m.js",
|
|
28
|
-
"require": "./dist/adapters/index.js"
|
|
29
16
|
}
|
|
30
17
|
},
|
|
31
18
|
"files": [
|
|
32
19
|
"dist",
|
|
33
|
-
"README.md"
|
|
34
|
-
"MIGRATION.md"
|
|
20
|
+
"README.md"
|
|
35
21
|
],
|
|
36
22
|
"keywords": [
|
|
37
23
|
"react",
|
|
38
|
-
"
|
|
39
|
-
"tailwind",
|
|
40
|
-
"shadcn",
|
|
24
|
+
"headless",
|
|
41
25
|
"form",
|
|
42
26
|
"forms",
|
|
43
27
|
"form-generator",
|
|
@@ -45,7 +29,9 @@
|
|
|
45
29
|
"validation",
|
|
46
30
|
"typescript",
|
|
47
31
|
"react-hooks",
|
|
48
|
-
"react-hook-form"
|
|
32
|
+
"react-hook-form",
|
|
33
|
+
"zod",
|
|
34
|
+
"type-safe"
|
|
49
35
|
],
|
|
50
36
|
"peerDependencies": {
|
|
51
37
|
"react": "^19.0.0",
|
|
@@ -85,7 +71,7 @@
|
|
|
85
71
|
"scripts": {
|
|
86
72
|
"clean": "rimraf dist",
|
|
87
73
|
"prebuild": "pnpm clean",
|
|
88
|
-
"build": "rollup --config rollup.config.cjs && tsc -p tsconfig.build.json
|
|
74
|
+
"build": "rollup --config rollup.config.cjs && tsc -p tsconfig.build.json",
|
|
89
75
|
"type": "tsc --noEmit -p tsconfig.build.json",
|
|
90
76
|
"test": "jest",
|
|
91
77
|
"test:watch": "jest --watch",
|