@zod-to-form/react 0.4.0 → 0.4.1
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/dist/ZodForm.d.ts.map +1 -1
- package/dist/ZodForm.js +3 -44
- package/dist/ZodForm.js.map +1 -1
- package/package.json +2 -2
package/dist/ZodForm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZodForm.d.ts","sourceRoot":"","sources":["../src/ZodForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ZodForm.d.ts","sourceRoot":"","sources":["../src/ZodForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC7C,OAAO,KAAK,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE,KAAK,YAAY,CAAC,OAAO,SAAS,SAAS,IAAI;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAChD,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,SAAS,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAsD1F"}
|
package/dist/ZodForm.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { FormProvider } from 'react-hook-form';
|
|
4
|
+
import { normalizeFieldKey, collectFieldSections } from '@zod-to-form/core';
|
|
4
5
|
import { FieldRenderer } from './FieldRenderer.js';
|
|
5
6
|
import { defaultComponentMap } from './components/index.js';
|
|
6
7
|
import { useZodForm } from './useZodForm.js';
|
|
@@ -19,50 +20,8 @@ export function ZodForm(props) {
|
|
|
19
20
|
const sections = useMemo(() => {
|
|
20
21
|
if (!componentConfig?.fields)
|
|
21
22
|
return new Map();
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
// can match config keys like "items[].x".
|
|
25
|
-
const normalizeFieldKey = (key) => {
|
|
26
|
-
// Replace any ".<number>(.|$)" with ".[]$1"
|
|
27
|
-
return key.replace(/\.(\d+)(\.|$)/g, '.[]$2');
|
|
28
|
-
};
|
|
29
|
-
const getOverrideForKey = (key) => {
|
|
30
|
-
const fieldsConfig = componentConfig.fields;
|
|
31
|
-
if (!fieldsConfig)
|
|
32
|
-
return undefined;
|
|
33
|
-
const direct = fieldsConfig[key];
|
|
34
|
-
if (direct)
|
|
35
|
-
return direct;
|
|
36
|
-
const normalizedKey = normalizeFieldKey(key);
|
|
37
|
-
if (normalizedKey !== key) {
|
|
38
|
-
return fieldsConfig[normalizedKey];
|
|
39
|
-
}
|
|
40
|
-
return undefined;
|
|
41
|
-
};
|
|
42
|
-
const traverseField = (field) => {
|
|
43
|
-
const override = getOverrideForKey(field.key);
|
|
44
|
-
if (override?.section) {
|
|
45
|
-
const existing = result.get(override.section);
|
|
46
|
-
if (existing) {
|
|
47
|
-
existing.push(field.key);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
result.set(override.section, [field.key]);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (Array.isArray(field.children)) {
|
|
54
|
-
for (const child of field.children) {
|
|
55
|
-
traverseField(child);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (field.arrayItem) {
|
|
59
|
-
traverseField(field.arrayItem);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
for (const field of fields) {
|
|
63
|
-
traverseField(field);
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
23
|
+
const configFields = componentConfig.fields;
|
|
24
|
+
return collectFieldSections(fields, (key) => configFields[key] ?? configFields[normalizeFieldKey(key)]);
|
|
66
25
|
}, [fields, componentConfig]);
|
|
67
26
|
return (_jsx(FormProvider, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(submitHandler), className: className, noValidate: true, children: [fields.map((field) => (_jsx(FieldRenderer, { field: field, components: mergedComponents, componentConfig: componentConfig }, field.key))), sections.size > 0 && (_jsx(SectionRenderer, { sections: sections, componentConfig: componentConfig })), children] }) }));
|
|
68
27
|
}
|
package/dist/ZodForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZodForm.js","sourceRoot":"","sources":["../src/ZodForm.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,MAAM,UAAU,OAAO,CAA4B,KAA4B;IAC7E,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,aAAa,EACb,UAAU,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,EACT,GAAG,KAAK,CAAC;IACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAElG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE;QAC1C,aAAa;QACb,YAAY;QACZ,UAAU;QACV,IAAI;QACJ,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAEpD,wCAAwC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,eAAe,EAAE,MAAM;YAAE,OAAO,IAAI,GAAG,EAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ZodForm.js","sourceRoot":"","sources":["../src/ZodForm.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,MAAM,UAAU,OAAO,CAA4B,KAA4B;IAC7E,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,aAAa,EACb,UAAU,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,EACT,GAAG,KAAK,CAAC;IACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAElG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE;QAC1C,aAAa;QACb,YAAY;QACZ,UAAU;QACV,IAAI;QACJ,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAEpD,wCAAwC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,eAAe,EAAE,MAAM;YAAE,OAAO,IAAI,GAAG,EAAoB,CAAC;QACjE,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;QAC5C,OAAO,oBAAoB,CACzB,MAAM,EACN,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CACnE,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,OAAO,CACL,KAAC,YAAY,OAAK,IAAI,YACpB,gBAAM,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,mBAC/E,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,aAAa,IAEZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,EAC5B,eAAe,EAAE,eAAe,IAH3B,KAAK,CAAC,GAAG,CAId,CACH,CAAC,EACD,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CACpB,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,GAAI,CAC1E,EACA,QAAQ,IACJ,GACM,CAChB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,EACvB,QAAQ,EACR,eAAe,EAIhB;IACC,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAG,eAAe,EAAE,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,KAAC,gBAAgB,IAAmB,MAAM,EAAE,SAAS,IAA9B,WAAW,CAAuB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zod-to-form/react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Runtime <ZodForm> renderer for Zod v4 schemas",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/pradeepmouli/zod-to-form#readme",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"zod": "^4.3.6"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@zod-to-form/core": "0.4.
|
|
55
|
+
"@zod-to-form/core": "0.4.1"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"build": "tsgo -p tsconfig.build.json",
|