@zod-to-form/react 0.4.0 → 0.4.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ZodForm.d.ts","sourceRoot":"","sources":["../src/ZodForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC7C,OAAO,KAAK,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnF,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,CAqG1F"}
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 result = new Map();
23
- // Normalize field keys so that concrete indices like "items.0.x"
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ZodForm.js","sourceRoot":"","sources":["../src/ZodForm.tsx"],"names":[],"mappings":"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"}
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.0",
3
+ "version": "0.4.2",
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",
@@ -45,14 +45,14 @@
45
45
  "@testing-library/react": "^16.3.2",
46
46
  "@types/react": "^19.2.14",
47
47
  "@types/react-dom": "^19.2.3",
48
- "jsdom": "^28.1.0",
48
+ "jsdom": "^29.0.0",
49
49
  "react": "^19.2.4",
50
50
  "react-dom": "^19.2.4",
51
51
  "react-hook-form": "^7.71.2",
52
52
  "zod": "^4.3.6"
53
53
  },
54
54
  "dependencies": {
55
- "@zod-to-form/core": "0.4.0"
55
+ "@zod-to-form/core": "0.4.2"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "tsgo -p tsconfig.build.json",