@zod-to-form/react 0.6.1 → 0.6.3
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/FieldRenderer.d.ts +19 -9
- package/dist/FieldRenderer.d.ts.map +1 -1
- package/dist/FieldRenderer.js +236 -110
- package/dist/FieldRenderer.js.map +1 -1
- package/dist/SchemaLiteSubmit.d.ts +9 -0
- package/dist/SchemaLiteSubmit.d.ts.map +1 -0
- package/dist/SchemaLiteSubmit.js +26 -0
- package/dist/SchemaLiteSubmit.js.map +1 -0
- package/dist/ZodForm.d.ts +1 -0
- package/dist/ZodForm.d.ts.map +1 -1
- package/dist/ZodForm.js +45 -6
- package/dist/ZodForm.js.map +1 -1
- package/dist/components/Checkbox.d.ts.map +1 -1
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +1 -3
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/FileInput.d.ts.map +1 -1
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/RadioGroup.d.ts.map +1 -1
- package/dist/components/RadioGroup.js +1 -2
- package/dist/components/RadioGroup.js.map +1 -1
- package/dist/components/Select.d.ts.map +1 -1
- package/dist/components/Switch.d.ts.map +1 -1
- package/dist/components/Textarea.d.ts.map +1 -1
- package/dist/components/index.d.ts +5 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/shadcn/index.d.ts +117 -113
- package/dist/shadcn/index.d.ts.map +1 -1
- package/dist/shadcn/index.js +6 -3
- package/dist/shadcn/index.js.map +1 -1
- package/dist/useZodForm.d.ts +10 -1
- package/dist/useZodForm.d.ts.map +1 -1
- package/dist/useZodForm.js +65 -49
- package/dist/useZodForm.js.map +1 -1
- package/package.json +2 -2
package/dist/FieldRenderer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
import type { FormField, FieldConfig, ComponentOverride } from '@zod-to-form/core';
|
|
3
3
|
import { defaultComponentMap } from './components/index.js';
|
|
4
4
|
type ComponentMap = typeof defaultComponentMap;
|
|
@@ -6,7 +6,7 @@ export type RuntimeComponentConfig = {
|
|
|
6
6
|
/**
|
|
7
7
|
* Component source and optional per-component overrides.
|
|
8
8
|
* `source` is used by CLI codegen to emit a static import statement (not used at runtime).
|
|
9
|
-
* `overrides` maps component names to `ComponentOverride` metadata (controlled,
|
|
9
|
+
* `overrides` maps component names to `ComponentOverride` metadata (controlled, props, etc.).
|
|
10
10
|
*/
|
|
11
11
|
components: {
|
|
12
12
|
source: string;
|
|
@@ -15,17 +15,27 @@ export type RuntimeComponentConfig = {
|
|
|
15
15
|
/**
|
|
16
16
|
* The pre-imported components module object, e.g. `import * as myComponents from './components'`.
|
|
17
17
|
* Used to resolve component functions by name at runtime.
|
|
18
|
+
* Section components are also resolved from this module.
|
|
18
19
|
*/
|
|
19
20
|
componentModule?: Record<string, unknown>;
|
|
20
21
|
fields?: Record<string, FieldConfig>;
|
|
21
|
-
/**
|
|
22
|
-
* Pre-imported section components, keyed by the section name used in `fields[key].section`.
|
|
23
|
-
* Required when using section field grouping at runtime.
|
|
24
|
-
*/
|
|
25
|
-
sectionComponents?: Record<string, ComponentType<{
|
|
26
|
-
fields: string[];
|
|
27
|
-
}>>;
|
|
28
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* One-time validation of component config for removed keys.
|
|
25
|
+
* Called once per form render (from ZodForm), not per field.
|
|
26
|
+
*/
|
|
27
|
+
export declare function warnRemovedConfigKeys(componentConfig: RuntimeComponentConfig | undefined): void;
|
|
28
|
+
export interface FieldTemplateProps {
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
label: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
helpText?: string;
|
|
33
|
+
error?: string;
|
|
34
|
+
name: string;
|
|
35
|
+
required?: boolean;
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
deprecated?: boolean;
|
|
38
|
+
}
|
|
29
39
|
type FieldRendererProps = {
|
|
30
40
|
field: FormField;
|
|
31
41
|
components?: Partial<ComponentMap>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldRenderer.d.ts","sourceRoot":"","sources":["../src/FieldRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"FieldRenderer.d.ts","sourceRoot":"","sources":["../src/FieldRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,KAAK,YAAY,GAAG,OAAO,mBAAmB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;OAIG;IACH,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;KAC/C,CAAC;IACF;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC,CAAC;AAIF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAqD/F;AAsJD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAmCD,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C,CAAC;AAqSF,eAAO,MAAM,aAAa,+EAIvB,kBAAkB,oDA6HnB,CAAC"}
|
package/dist/FieldRenderer.js
CHANGED
|
@@ -1,8 +1,55 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, memo } from 'react';
|
|
3
3
|
import { getEmptyDefault } from '@zod-to-form/core';
|
|
4
4
|
import { useController, useFieldArray, useFormContext } from 'react-hook-form';
|
|
5
5
|
import { defaultComponentMap } from './components/index.js';
|
|
6
|
+
const _warned = new Set();
|
|
7
|
+
/**
|
|
8
|
+
* One-time validation of component config for removed keys.
|
|
9
|
+
* Called once per form render (from ZodForm), not per field.
|
|
10
|
+
*/
|
|
11
|
+
export function warnRemovedConfigKeys(componentConfig) {
|
|
12
|
+
if (!componentConfig)
|
|
13
|
+
return;
|
|
14
|
+
// Check component overrides for removed keys and misconfiguration
|
|
15
|
+
if (componentConfig.components.overrides) {
|
|
16
|
+
for (const [name, entry] of Object.entries(componentConfig.components.overrides)) {
|
|
17
|
+
if (!entry)
|
|
18
|
+
continue;
|
|
19
|
+
if ('propMap' in entry && !_warned.has(`override:propMap:${name}`)) {
|
|
20
|
+
_warned.add(`override:propMap:${name}`);
|
|
21
|
+
console.warn(`[zod-to-form] Component override "${name}" uses "propMap" which has been removed. ` +
|
|
22
|
+
`Move field expression values into "props" instead.`);
|
|
23
|
+
}
|
|
24
|
+
if (entry.props && !entry.controlled) {
|
|
25
|
+
const hasFieldExpr = Object.values(entry.props).some((v) => typeof v === 'string' && FIELD_EXPRESSIONS.has(v));
|
|
26
|
+
if (hasFieldExpr && !_warned.has(`override:noControlled:${name}`)) {
|
|
27
|
+
_warned.add(`override:noControlled:${name}`);
|
|
28
|
+
console.warn(`[zod-to-form] Component override "${name}" has field expression values in "props" ` +
|
|
29
|
+
`but "controlled" is not set to true. Field expressions are only resolved for controlled components.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Check field configs for removed keys
|
|
35
|
+
if (componentConfig.fields) {
|
|
36
|
+
for (const [key, fieldConfig] of Object.entries(componentConfig.fields)) {
|
|
37
|
+
if (!fieldConfig)
|
|
38
|
+
continue;
|
|
39
|
+
if ('propMap' in fieldConfig && !_warned.has(`field:propMap:${key}`)) {
|
|
40
|
+
_warned.add(`field:propMap:${key}`);
|
|
41
|
+
console.warn(`[zod-to-form] Field "${key}" uses "propMap" which has been removed. ` +
|
|
42
|
+
`Move field expression values into "props" instead. ` +
|
|
43
|
+
`Example: props: { onValueChange: 'field.onChange' }`);
|
|
44
|
+
}
|
|
45
|
+
if ('gridColumn' in fieldConfig && !_warned.has(`field:gridColumn:${key}`)) {
|
|
46
|
+
_warned.add(`field:gridColumn:${key}`);
|
|
47
|
+
console.warn(`[zod-to-form] Field "${key}" uses "gridColumn" which has been removed. ` +
|
|
48
|
+
`Use "props.style" or "props.className" for layout instead.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
6
53
|
function resolveFieldOverride(field, componentConfig) {
|
|
7
54
|
if (!componentConfig) {
|
|
8
55
|
return {};
|
|
@@ -18,8 +65,17 @@ function resolveFieldOverride(field, componentConfig) {
|
|
|
18
65
|
componentOverride: componentConfig.components.overrides?.[field.component]
|
|
19
66
|
};
|
|
20
67
|
}
|
|
68
|
+
/** Check if a value is a valid React component (function, memo, forwardRef, lazy) */
|
|
69
|
+
function isReactComponent(value) {
|
|
70
|
+
if (typeof value === 'function')
|
|
71
|
+
return true;
|
|
72
|
+
// React.memo, forwardRef, lazy produce objects with $$typeof
|
|
73
|
+
if (value !== null && typeof value === 'object' && '$$typeof' in value)
|
|
74
|
+
return true;
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
21
77
|
function asComponentType(value, errorMessage) {
|
|
22
|
-
if (
|
|
78
|
+
if (!isReactComponent(value)) {
|
|
23
79
|
throw new Error(errorMessage);
|
|
24
80
|
}
|
|
25
81
|
return value;
|
|
@@ -48,37 +104,96 @@ function getErrorAtPath(errors, path) {
|
|
|
48
104
|
}
|
|
49
105
|
return undefined;
|
|
50
106
|
}
|
|
107
|
+
function zodSchemaValidate(field) {
|
|
108
|
+
if (field.validation?.mode !== 'zodSchema' || !field.zodSchema)
|
|
109
|
+
return undefined;
|
|
110
|
+
const schema = field.zodSchema;
|
|
111
|
+
return (value) => {
|
|
112
|
+
// Normalize empty strings to undefined to match zodResolver behavior
|
|
113
|
+
const normalized = value === '' ? undefined : value;
|
|
114
|
+
const result = schema.safeParse(normalized);
|
|
115
|
+
if (result.success)
|
|
116
|
+
return true;
|
|
117
|
+
return result.error?.issues[0]?.message ?? 'Validation failed';
|
|
118
|
+
};
|
|
119
|
+
}
|
|
51
120
|
function getRegisterOptions(field) {
|
|
121
|
+
const opts = {};
|
|
52
122
|
if (field.zodType === 'number' || field.zodType === 'bigint') {
|
|
53
|
-
|
|
123
|
+
opts['valueAsNumber'] = true;
|
|
54
124
|
}
|
|
55
125
|
if (field.zodType === 'date') {
|
|
56
|
-
|
|
126
|
+
opts['valueAsDate'] = true;
|
|
57
127
|
}
|
|
58
128
|
if (field.zodType === 'file') {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return value.length > 0 ? value.item(0) : undefined;
|
|
63
|
-
}
|
|
64
|
-
return value;
|
|
129
|
+
opts['setValueAs'] = (value) => {
|
|
130
|
+
if (value instanceof FileList) {
|
|
131
|
+
return value.length > 0 ? value.item(0) : undefined;
|
|
65
132
|
}
|
|
133
|
+
return value;
|
|
66
134
|
};
|
|
67
135
|
}
|
|
68
|
-
|
|
136
|
+
// Optimized validation: per-field validation
|
|
137
|
+
if (field.validation?.mode === 'native' && field.validation.rules) {
|
|
138
|
+
// L2: native RHF rules — spread directly into register options
|
|
139
|
+
const rules = field.validation.rules;
|
|
140
|
+
if (rules.required)
|
|
141
|
+
opts['required'] = rules.required;
|
|
142
|
+
if (rules.min)
|
|
143
|
+
opts['min'] = rules.min;
|
|
144
|
+
if (rules.max)
|
|
145
|
+
opts['max'] = rules.max;
|
|
146
|
+
if (rules.minLength)
|
|
147
|
+
opts['minLength'] = rules.minLength;
|
|
148
|
+
if (rules.maxLength)
|
|
149
|
+
opts['maxLength'] = rules.maxLength;
|
|
150
|
+
if (rules.pattern)
|
|
151
|
+
opts['pattern'] = rules.pattern;
|
|
152
|
+
}
|
|
153
|
+
else if (field.validation?.mode === 'zodSchema') {
|
|
154
|
+
// L1: per-field zodSchema validation via register({ validate })
|
|
155
|
+
const validate = zodSchemaValidate(field);
|
|
156
|
+
if (validate) {
|
|
157
|
+
opts['validate'] = validate;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// component-enforced: no validation emitted
|
|
161
|
+
return opts;
|
|
162
|
+
}
|
|
163
|
+
function DefaultFieldTemplate({ children, label, description, helpText, error, name, deprecated, components }) {
|
|
164
|
+
const { FieldLabel, FieldDescription, FieldMessage } = { ...defaultComponentMap, ...components };
|
|
165
|
+
return (_jsxs(_Fragment, { children: [_jsxs(FieldLabel, { htmlFor: name, children: [deprecated ? _jsx("s", { children: label }) : label, deprecated ? (_jsxs("span", { "aria-hidden": "true", title: "Deprecated", children: [' ', "\u26A0"] })) : null, deprecated ? _jsx("span", { className: "sr-only", children: " (Deprecated)" }) : null] }), children, description ? _jsx(FieldDescription, { children: description }) : null, helpText ? (_jsx("p", { style: { fontSize: '0.875rem', color: '#6b7280', marginTop: '0.25rem' }, children: helpText })) : null, error ? _jsx(FieldMessage, { children: error }) : null] }));
|
|
69
166
|
}
|
|
70
|
-
|
|
167
|
+
function buildBaseComponentProps(field, errorMessage) {
|
|
168
|
+
return {
|
|
169
|
+
id: field.key,
|
|
170
|
+
'aria-invalid': errorMessage ? 'true' : 'false',
|
|
171
|
+
required: field.required,
|
|
172
|
+
readOnly: field.readOnly,
|
|
173
|
+
disabled: field.disabled
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
// ─── Fieldset block for nested object fields ──────────────────────────
|
|
71
177
|
const FieldsetBlock = memo(function FieldsetBlock({ field, components, componentConfig }) {
|
|
72
178
|
const componentMap = { ...defaultComponentMap, ...components };
|
|
73
179
|
const FieldComponent = componentMap.Field;
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
|
|
180
|
+
const overrideComponentName = componentConfig?.fields?.[field.key]?.component;
|
|
181
|
+
if (overrideComponentName && componentConfig?.componentModule) {
|
|
182
|
+
const candidate = componentConfig.componentModule[overrideComponentName];
|
|
183
|
+
if (isReactComponent(candidate)) {
|
|
184
|
+
const OverrideComponent = candidate;
|
|
185
|
+
return (_jsx(FieldComponent, { children: _jsx(OverrideComponent, { children: field.children?.map((child) => (_jsx(FieldRenderer, { field: child, components: componentMap, componentConfig: componentConfig }, child.key))) }) }));
|
|
186
|
+
}
|
|
187
|
+
// Warn if component not found, fall back to fieldset
|
|
188
|
+
if (!_warned.has(`fieldset:${field.key}`)) {
|
|
189
|
+
_warned.add(`fieldset:${field.key}`);
|
|
190
|
+
console.warn(`[zod-to-form] Field "${field.key}" specifies component "${overrideComponentName}" ` +
|
|
191
|
+
`but it was not found in componentModule. Falling back to <fieldset>.`);
|
|
192
|
+
}
|
|
77
193
|
}
|
|
78
|
-
return (_jsx(FieldComponent, {
|
|
79
|
-
_jsx("legend", { children: field.label }), field.children?.map((child) => (_jsx(FieldRenderer, { field: child, components: componentMap, componentConfig: componentConfig }, child.key)))] }) }));
|
|
194
|
+
return (_jsx(FieldComponent, { children: _jsxs("fieldset", { children: [_jsx("legend", { children: field.label }), field.children?.map((child) => (_jsx(FieldRenderer, { field: child, components: componentMap, componentConfig: componentConfig }, child.key)))] }) }));
|
|
80
195
|
});
|
|
81
|
-
// ───
|
|
196
|
+
// ─── Array block with useFieldArray ───────────────────────────────────
|
|
82
197
|
function getDefaultAppendValue(arrayItem) {
|
|
83
198
|
if (!arrayItem)
|
|
84
199
|
return '';
|
|
@@ -89,22 +204,14 @@ const ArrayBlock = memo(function ArrayBlock({ field, components, componentConfig
|
|
|
89
204
|
const { control } = useFormContext();
|
|
90
205
|
const { fields: items, append, remove } = useFieldArray({ control, name: field.key });
|
|
91
206
|
const minLength = field.constraints.minLength ?? 0;
|
|
92
|
-
|
|
93
|
-
if (field.gridColumn) {
|
|
94
|
-
wrapperProps['style'] = { gridColumn: field.gridColumn };
|
|
95
|
-
}
|
|
96
|
-
return (_jsxs("fieldset", { ...wrapperProps, children: [
|
|
97
|
-
_jsx("legend", { children: field.label }), items.map((item, index) => {
|
|
207
|
+
return (_jsxs("fieldset", { children: [_jsx("legend", { children: field.label }), items.map((item, index) => {
|
|
98
208
|
if (!field.arrayItem)
|
|
99
209
|
return null;
|
|
100
210
|
const itemField = { ...field.arrayItem, key: `${field.key}.${index}` };
|
|
101
|
-
return (_jsxs("div", { children: [
|
|
102
|
-
|
|
103
|
-
] }, item.id));
|
|
104
|
-
}), _jsx("button", { type: "button", onClick: () => append(getDefaultAppendValue(field.arrayItem)), children: "Add" })
|
|
105
|
-
] }));
|
|
211
|
+
return (_jsxs("div", { children: [_jsx(FieldRenderer, { field: itemField, components: componentMap, componentConfig: componentConfig }), _jsx("button", { type: "button", onClick: () => remove(index), disabled: items.length <= minLength, children: "Remove" })] }, item.id));
|
|
212
|
+
}), _jsx("button", { type: "button", onClick: () => append(getDefaultAppendValue(field.arrayItem)), children: "Add" })] }));
|
|
106
213
|
});
|
|
107
|
-
// ───
|
|
214
|
+
// ─── Discriminated union block with watch ─────────────────────────────
|
|
108
215
|
const DiscriminatedUnionBlock = memo(function DiscriminatedUnionBlock({ field, components, componentConfig }) {
|
|
109
216
|
const componentMap = { ...defaultComponentMap, ...components };
|
|
110
217
|
const { register, watch } = useFormContext();
|
|
@@ -115,82 +222,105 @@ const DiscriminatedUnionBlock = memo(function DiscriminatedUnionBlock({ field, c
|
|
|
115
222
|
const variantFields = currentValue ? (variants?.[currentValue] ?? []) : [];
|
|
116
223
|
const FieldComponent = componentMap.Field;
|
|
117
224
|
const FieldLabelComponent = componentMap.FieldLabel;
|
|
118
|
-
|
|
119
|
-
if (field.gridColumn) {
|
|
120
|
-
wrapperProps['style'] = { gridColumn: field.gridColumn };
|
|
121
|
-
}
|
|
122
|
-
return (_jsxs(FieldComponent, { ...wrapperProps, children: [
|
|
123
|
-
_jsx(FieldLabelComponent, { htmlFor: discKey, children: field.label }), _jsxs("select", { id: discKey, ...register(discKey), children: [
|
|
124
|
-
_jsx("option", { value: "", children: "Select\u2026" }), field.options?.map((opt) => (_jsx("option", { value: String(opt.value), children: opt.label }, String(opt.value))))] }), variantFields.map((child) => (_jsx(FieldRenderer, { field: child, components: componentMap, componentConfig: componentConfig }, child.key)))] }));
|
|
225
|
+
return (_jsxs(FieldComponent, { children: [_jsx(FieldLabelComponent, { htmlFor: discKey, children: field.label }), _jsxs("select", { id: discKey, ...register(discKey), children: [_jsx("option", { value: "", children: "Select\u2026" }), field.options?.map((opt) => (_jsx("option", { value: String(opt.value), children: opt.label }, String(opt.value))))] }), variantFields.map((child) => (_jsx(FieldRenderer, { field: child, components: componentMap, componentConfig: componentConfig }, child.key)))] }));
|
|
125
226
|
});
|
|
227
|
+
/** Maps field expression strings to their corresponding RHF controller field property names */
|
|
228
|
+
const EXPRESSION_TO_FIELD_PROP = {
|
|
229
|
+
'field.value': 'value',
|
|
230
|
+
'field.onChange': 'onChange',
|
|
231
|
+
'field.onBlur': 'onBlur',
|
|
232
|
+
'field.ref': 'ref',
|
|
233
|
+
'field.name': 'name'
|
|
234
|
+
};
|
|
235
|
+
/** Derived from EXPRESSION_TO_FIELD_PROP — guaranteed to stay in sync */
|
|
236
|
+
const FIELD_EXPRESSIONS = new Set(Object.keys(EXPRESSION_TO_FIELD_PROP));
|
|
126
237
|
/**
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
238
|
+
* Resolve props for a controlled component by merging preset override props,
|
|
239
|
+
* per-field config props, and the RHF controller field.
|
|
240
|
+
*
|
|
241
|
+
* - Props whose values match a known field expression string (e.g., `'field.onChange'`)
|
|
242
|
+
* are resolved from the RHF controller field.
|
|
243
|
+
* - All other props pass through as literal values.
|
|
244
|
+
* - Merge order: preset override props → field config props (field wins on conflict).
|
|
245
|
+
* - RHF default props (value, onChange, onBlur, ref, name) are included unless
|
|
246
|
+
* a field expression explicitly remaps that controller property to a different prop name.
|
|
130
247
|
*/
|
|
131
|
-
function
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
'
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
248
|
+
function resolveProps(controllerField, presetProps, fieldProps) {
|
|
249
|
+
// Shallow merge: preset first, field config wins on conflict (FR-019)
|
|
250
|
+
const merged = { ...presetProps, ...fieldProps };
|
|
251
|
+
// Separate field expressions from literal props
|
|
252
|
+
const fieldExpressionEntries = [];
|
|
253
|
+
const literalEntries = [];
|
|
254
|
+
for (const [key, value] of Object.entries(merged)) {
|
|
255
|
+
if (typeof value === 'string' && FIELD_EXPRESSIONS.has(value)) {
|
|
256
|
+
fieldExpressionEntries.push([key, value]);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
literalEntries.push([key, value]);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// Start with default RHF controller field props
|
|
263
|
+
const result = { ...controllerField };
|
|
264
|
+
// Track which RHF expressions are remapped to custom prop names
|
|
265
|
+
const remappedExprs = new Set(fieldExpressionEntries.map(([, expr]) => expr));
|
|
266
|
+
// Remove default props whose RHF expression is being remapped to a different name
|
|
267
|
+
for (const [expr, defaultProp] of Object.entries(EXPRESSION_TO_FIELD_PROP)) {
|
|
268
|
+
if (remappedExprs.has(expr)) {
|
|
269
|
+
// Only remove if the remapped prop name differs from the default
|
|
270
|
+
const remappedPropName = fieldExpressionEntries.find(([, e]) => e === expr)?.[0];
|
|
271
|
+
if (remappedPropName !== defaultProp) {
|
|
272
|
+
delete result[defaultProp];
|
|
273
|
+
}
|
|
148
274
|
}
|
|
149
275
|
}
|
|
150
|
-
// Apply
|
|
151
|
-
for (const [
|
|
152
|
-
const
|
|
153
|
-
if (
|
|
154
|
-
result[
|
|
276
|
+
// Apply field expression mappings — resolve from controller field
|
|
277
|
+
for (const [propName, expr] of fieldExpressionEntries) {
|
|
278
|
+
const controllerProp = EXPRESSION_TO_FIELD_PROP[expr];
|
|
279
|
+
if (controllerProp) {
|
|
280
|
+
result[propName] = controllerField[controllerProp];
|
|
155
281
|
}
|
|
156
282
|
}
|
|
283
|
+
// Apply literal props (override any controller defaults)
|
|
284
|
+
for (const [key, value] of literalEntries) {
|
|
285
|
+
result[key] = value;
|
|
286
|
+
}
|
|
157
287
|
return result;
|
|
158
288
|
}
|
|
159
|
-
|
|
160
|
-
* Merge component-level propMap with per-field propMap override.
|
|
161
|
-
* Per-field entries win when keys overlap.
|
|
162
|
-
*/
|
|
163
|
-
function resolvePropMap(componentOverride, fieldOverride) {
|
|
164
|
-
const entryMap = componentOverride?.propMap;
|
|
165
|
-
const fieldMap = fieldOverride?.propMap;
|
|
166
|
-
if (!entryMap && !fieldMap)
|
|
167
|
-
return undefined;
|
|
168
|
-
return { ...entryMap, ...fieldMap };
|
|
169
|
-
}
|
|
170
|
-
const ControlledFieldInner = memo(function ControlledFieldInner({ field, Component, propMap, overrideProps, errorMessage }) {
|
|
289
|
+
const ControlledFieldInner = memo(function ControlledFieldInner({ field, Component, presetProps, fieldConfigProps, errorMessage }) {
|
|
171
290
|
const { control } = useFormContext();
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
const
|
|
176
|
-
|
|
291
|
+
// TODO(L3): Re-enable watch mode for controlled components
|
|
292
|
+
// const watchValidateFn = useWatchValidate(field);
|
|
293
|
+
// When optimized validation is enabled, pass per-field rules to controller
|
|
294
|
+
const controllerRules = (() => {
|
|
295
|
+
// TODO(L3): if (watchValidateFn) return { validate: watchValidateFn };
|
|
296
|
+
if (field.validation?.mode === 'native' && field.validation.rules) {
|
|
297
|
+
return field.validation.rules;
|
|
298
|
+
}
|
|
299
|
+
const validate = zodSchemaValidate(field);
|
|
300
|
+
return validate ? { validate } : undefined;
|
|
301
|
+
})();
|
|
302
|
+
const { field: controllerField } = useController({
|
|
303
|
+
name: field.key,
|
|
304
|
+
control,
|
|
305
|
+
rules: controllerRules
|
|
306
|
+
});
|
|
307
|
+
// controllerField is ControllerRenderProps which extends Record<string, unknown>
|
|
308
|
+
const resolved = resolveProps(controllerField, presetProps, fieldConfigProps);
|
|
177
309
|
const componentProps = {
|
|
178
|
-
|
|
179
|
-
'aria-invalid': errorMessage ? 'true' : 'false',
|
|
180
|
-
required: field.required,
|
|
181
|
-
readOnly: field.readOnly,
|
|
310
|
+
...buildBaseComponentProps(field, errorMessage),
|
|
182
311
|
...field.props,
|
|
183
|
-
...
|
|
184
|
-
...mappedProps
|
|
312
|
+
...resolved
|
|
185
313
|
};
|
|
186
|
-
if (
|
|
187
|
-
componentProps['options'] = field
|
|
314
|
+
if (field.options) {
|
|
315
|
+
componentProps['options'] = field.options;
|
|
188
316
|
}
|
|
189
317
|
return _jsx(Component, { ...componentProps });
|
|
190
318
|
});
|
|
191
319
|
export const FieldRenderer = memo(function FieldRenderer({ field, components, componentConfig }) {
|
|
192
320
|
// Always call hooks first (React hooks rule — no conditional hook calls)
|
|
193
321
|
const { register, formState } = useFormContext();
|
|
322
|
+
// TODO(L3): Re-enable useWatchValidate when L3 cross-field optimization is implemented
|
|
323
|
+
// const watchValidate = useWatchValidate(field);
|
|
194
324
|
const componentMap = { ...defaultComponentMap, ...components };
|
|
195
325
|
const mapping = useMemo(() => resolveFieldOverride(field, componentConfig), [field, componentConfig]);
|
|
196
326
|
// Synchronous component resolution from componentModule
|
|
@@ -215,10 +345,10 @@ export const FieldRenderer = memo(function FieldRenderer({ field, components, co
|
|
|
215
345
|
componentMap[field.component] ??
|
|
216
346
|
componentMap.Input);
|
|
217
347
|
const FieldComponent = componentMap.Field;
|
|
218
|
-
const FieldLabelComponent = componentMap.FieldLabel;
|
|
219
|
-
const FieldDescriptionComponent = componentMap.FieldDescription;
|
|
220
|
-
const FieldMessageComponent = componentMap.FieldMessage;
|
|
221
348
|
const errorMessage = getErrorAtPath(formState.errors, field.key);
|
|
349
|
+
// Resolve field template: componentModule['FieldTemplate'] → DefaultFieldTemplate fallback
|
|
350
|
+
const customTemplate = componentConfig?.componentModule?.['FieldTemplate'];
|
|
351
|
+
const FieldTemplate = (isReactComponent(customTemplate) ? customTemplate : DefaultFieldTemplate);
|
|
222
352
|
if (field.hidden) {
|
|
223
353
|
return null;
|
|
224
354
|
}
|
|
@@ -227,18 +357,14 @@ export const FieldRenderer = memo(function FieldRenderer({ field, components, co
|
|
|
227
357
|
return null;
|
|
228
358
|
}
|
|
229
359
|
const isControlled = mapping.componentOverride?.controlled === true;
|
|
230
|
-
const wrapperProps = {};
|
|
231
|
-
if (field.gridColumn) {
|
|
232
|
-
wrapperProps['style'] = { gridColumn: field.gridColumn };
|
|
233
|
-
}
|
|
234
360
|
let fieldContent;
|
|
361
|
+
const registerOpts = getRegisterOptions(field);
|
|
362
|
+
// TODO(L3): Merge watch-mode validate when L3 cross-field optimization is implemented
|
|
363
|
+
// if (watchValidate) { registerOpts['validate'] = watchValidate; }
|
|
235
364
|
if (field.render) {
|
|
236
|
-
const registration = register(field.key,
|
|
365
|
+
const registration = register(field.key, registerOpts);
|
|
237
366
|
const componentProps = {
|
|
238
|
-
|
|
239
|
-
'aria-invalid': errorMessage ? 'true' : 'false',
|
|
240
|
-
required: field.required,
|
|
241
|
-
readOnly: field.readOnly,
|
|
367
|
+
...buildBaseComponentProps(field, errorMessage),
|
|
242
368
|
...field.props,
|
|
243
369
|
...mapping.override?.props,
|
|
244
370
|
...registration
|
|
@@ -246,26 +372,26 @@ export const FieldRenderer = memo(function FieldRenderer({ field, components, co
|
|
|
246
372
|
fieldContent = field.render(field, componentProps);
|
|
247
373
|
}
|
|
248
374
|
else if (isControlled) {
|
|
249
|
-
|
|
250
|
-
fieldContent = (_jsx(ControlledFieldInner, { field: field, Component: Component, propMap: propMap, overrideProps: mapping.override?.props, errorMessage: errorMessage }));
|
|
375
|
+
fieldContent = (_jsx(ControlledFieldInner, { field: field, Component: Component, presetProps: mapping.componentOverride?.props, fieldConfigProps: mapping.override?.props, errorMessage: errorMessage }));
|
|
251
376
|
}
|
|
252
377
|
else {
|
|
253
|
-
const registration = register(field.key,
|
|
378
|
+
const registration = register(field.key, registerOpts);
|
|
254
379
|
const componentProps = {
|
|
255
|
-
|
|
256
|
-
'aria-invalid': errorMessage ? 'true' : 'false',
|
|
257
|
-
required: field.required,
|
|
258
|
-
readOnly: field.readOnly,
|
|
380
|
+
...buildBaseComponentProps(field, errorMessage),
|
|
259
381
|
...field.props,
|
|
260
382
|
...mapping.override?.props,
|
|
261
383
|
...registration
|
|
262
384
|
};
|
|
263
|
-
if (
|
|
264
|
-
componentProps['options'] = field
|
|
385
|
+
if (field.options) {
|
|
386
|
+
componentProps['options'] = field.options;
|
|
265
387
|
}
|
|
266
388
|
fieldContent = _jsx(Component, { ...componentProps });
|
|
267
389
|
}
|
|
268
|
-
|
|
269
|
-
|
|
390
|
+
const mergedFieldProps = { ...field.props, ...mapping.override?.props };
|
|
391
|
+
const wrapperProps = {
|
|
392
|
+
...(mergedFieldProps['style'] ? { style: mergedFieldProps['style'] } : undefined),
|
|
393
|
+
...(mergedFieldProps['className'] ? { className: mergedFieldProps['className'] } : undefined)
|
|
394
|
+
};
|
|
395
|
+
return (_jsx(FieldComponent, { ...wrapperProps, children: _jsx(FieldTemplate, { name: field.key, label: field.label, description: field.description, helpText: field.helpText, error: errorMessage, required: field.required, disabled: field.disabled, deprecated: field.deprecated, components: components, children: fieldContent }) }));
|
|
270
396
|
});
|
|
271
397
|
//# sourceMappingURL=FieldRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldRenderer.js","sourceRoot":"","sources":["../src/FieldRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA2B5D,SAAS,oBAAoB,CAC3B,KAAgB,EAChB,eAAmD;IAEnD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,iBAAiB,EACf,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YAC/E,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,OAAO;QACL,iBAAiB,EAAE,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,KAAc,EACd,YAAoB;IAEpB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,KAA+C,CAAC;AACzD,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAgB,EAChB,eAAuC;IAEvC,MAAM,GAAG,GAAG,eAAe,CAAC,eAAe,CAAC;IAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,yEAAyE,KAAK,CAAC,GAAG,KAAK;YACrF,kEAAkE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,eAAe,CACpB,SAAS,EACT,yCAAyC,KAAK,CAAC,SAAS,yCAAyC,CAClG,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,IAAY;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,MAA6C,CAAC;IAE5D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAwC,CAAC;IACpE,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,UAAU,EAAE,CAAC,KAAc,EAAE,EAAE;gBAC7B,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;oBAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,yEAAyE;AAEzE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,EAChD,KAAK,EACL,UAAU,EACV,eAAe,EACI;IACnB,MAAM,YAAY,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC;IAE1C,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,CACL,KAAC,cAAc,OAAK,YAAY,YAC9B;gBACE,2BAAS,KAAK,CAAC,KAAK,GAAU,EAC7B,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,KAAC,aAAa,IAEZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,eAAe,IAH3B,KAAK,CAAC,GAAG,CAId,CACH,CAAC,IACO,GACI,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,yEAAyE;AAEzE,SAAS,qBAAqB,CAAC,SAAgC;IAC7D,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,EAC1C,KAAK,EACL,UAAU,EACV,eAAe,EACI;IACnB,MAAM,YAAY,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,CAAC;IAEnD,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,CACL,uBAAc,YAAY;YACxB,2BAAS,KAAK,CAAC,KAAK,GAAU,EAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,SAAS;oBAAE,OAAO,IAAI,CAAC;gBAClC,MAAM,SAAS,GAAc,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;gBAClF,OAAO,CACL;wBACE,KAAC,aAAa,IACZ,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,eAAe,GAChC,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS,uBAG5B;yBAZD,IAAI,CAAC,EAAE,CAaX,CACP,CAAC;YACJ,CAAC,CAAC,EACF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAE1E;YACA,CACZ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,yEAAyE;AAEzE,MAAM,uBAAuB,GAAG,IAAI,CAAC,SAAS,uBAAuB,CAAC,EACpE,KAAK,EACL,UAAU,EACV,eAAe,EACI;IACnB,MAAM,YAAY,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAW,CAAC;IAC9D,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAuB,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAA4C,CAAC;IACrF,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3E,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC;IAC1C,MAAM,mBAAmB,GAAG,YAAY,CAAC,UAAU,CAAC;IACpD,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,CACL,MAAC,cAAc,OAAK,YAAY;YAC9B,KAAC,mBAAmB,IAAC,OAAO,EAAE,OAAO,YAAG,KAAK,CAAC,KAAK,GAAuB,EAC1E,kBAAQ,EAAE,EAAE,OAAO,KAAM,QAAQ,CAAC,OAAO,CAAC;oBACxC,iBAAQ,KAAK,EAAC,EAAE,6BAAiB,EAChC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC3B,iBAAgC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,YACrD,GAAG,CAAC,KAAK,IADC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAErB,CACV,CAAC,IACK,EACR,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,aAAa,IAEZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,eAAe,IAH3B,KAAK,CAAC,GAAG,CAId,CACH,CAAC,IACa,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,YAAY,CACnB,eAAwC,EACxC,OAA2C;IAE3C,IAAI,CAAC,OAAO;QAAE,OAAO,eAAe,CAAC;IAErC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,aAAa,GAA2B;QAC5C,aAAa,EAAE,OAAO;QACtB,gBAAgB,EAAE,UAAU;QAC5B,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;KACrB,CAAC;IAEF,2CAA2C;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtD,gDAAgD;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,iBAAqC,EACrC,aAA2B;IAE3B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,aAAa,EAAE,OAAO,CAAC;IACxC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;AACtC,CAAC;AAcD,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,oBAAoB,CAAC,EAC9D,KAAK,EACL,SAAS,EACT,OAAO,EACP,aAAa,EACb,YAAY,EACS;IACrB,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IACrC,sFAAsF;IACtF,kFAAkF;IAClF,iEAAiE;IACjE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,YAAY,CAAC,eAAqD,EAAE,OAAO,CAAC,CAAC;IAEjG,MAAM,cAAc,GAA4B;QAC9C,EAAE,EAAE,KAAK,CAAC,GAAG;QACb,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,KAAK,CAAC,KAAK;QACd,GAAG,aAAa;QAChB,GAAG,WAAW;KACf,CAAC;IAEF,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAC,SAAS,OAAK,cAAc,GAAI,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,EACvD,KAAK,EACL,UAAU,EACV,eAAe,EACI;IACnB,yEAAyE;IACzE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,EAClD,CAAC,KAAK,EAAE,eAAe,CAAC,CACzB,CAAC;IAEF,wDAAwD;IACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,eAAe,EAAE,eAAe;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,0BAA0B,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IAE7B,uDAAuD;IACvD,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAI,CAC5F,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;QACrC,OAAO,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAI,CAAC;IAClG,CAAC;IAED,gEAAgE;IAChE,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClE,OAAO,CACL,KAAC,uBAAuB,IACtB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,eAAe,GAChC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,mBAAmB;QACpC,YAAY,CAAC,KAAK,CAAC,SAA+B,CAAC;QACnD,YAAY,CAAC,KAAK,CAA2C,CAAC;IAChE,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC;IAC1C,MAAM,mBAAmB,GAAG,YAAY,CAAC,UAAU,CAAC;IACpD,MAAM,yBAAyB,GAAG,YAAY,CAAC,gBAAgB,CAAC;IAChE,MAAM,qBAAqB,GAAG,YAAY,CAAC,YAAY,CAAC;IACxD,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uFAAuF;IACvF,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,UAAU,KAAK,IAAI,CAAC;IAEpE,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,YAAuB,CAAC;IAE5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAA4B;YAC9C,EAAE,EAAE,KAAK,CAAC,GAAG;YACb,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,KAAK,CAAC,KAAK;YACd,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK;YAC1B,GAAG,YAAY;SAChB,CAAC;QACF,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAc,CAAC;IAClE,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5E,YAAY,GAAG,CACb,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EACtC,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAA4B;YAC9C,EAAE,EAAE,KAAK,CAAC,GAAG;YACb,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,KAAK,CAAC,KAAK;YACd,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK;YAC1B,GAAG,YAAY;SAChB,CAAC;QACF,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,YAAY,GAAG,KAAC,SAAS,OAAK,cAAc,GAAI,CAAC;IACnD,CAAC;IAED,OAAO,CACL,MAAC,cAAc,OAAK,YAAY;YAC9B,KAAC,mBAAmB,IAAC,OAAO,EAAE,KAAK,CAAC,GAAG,YAAG,KAAK,CAAC,KAAK,GAAuB,EAC3E,YAAY,EACZ,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CACnB,KAAC,yBAAyB,cAAE,KAAK,CAAC,WAAW,GAA6B,CAC3E,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,CAAC,CAAC,CAAC,KAAC,qBAAqB,cAAE,YAAY,GAAyB,CAAC,CAAC,CAAC,IAAI,IACrE,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"FieldRenderer.js","sourceRoot":"","sources":["../src/FieldRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { $ZodType } from 'zod/v4/core';
|
|
2
|
+
import type { UseFormSetError } from 'react-hook-form';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps a form onSubmit handler with schemaLite validation.
|
|
5
|
+
* Runs schemaLite.safeParse on the form data before calling the original handler.
|
|
6
|
+
* Maps validation errors to form fields via setError.
|
|
7
|
+
*/
|
|
8
|
+
export declare function wrapWithSchemaLite<TData extends Record<string, unknown>>(schemaLite: $ZodType, setError: UseFormSetError<TData>, onSubmit: (data: TData) => void | Promise<void>): (data: TData) => void | Promise<void>;
|
|
9
|
+
//# sourceMappingURL=SchemaLiteSubmit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaLiteSubmit.d.ts","sourceRoot":"","sources":["../src/SchemaLiteSubmit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,iBAAiB,CAAC;AAU/E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,EAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC9C,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { normalizeFormValues } from '@zod-to-form/core';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps a form onSubmit handler with schemaLite validation.
|
|
4
|
+
* Runs schemaLite.safeParse on the form data before calling the original handler.
|
|
5
|
+
* Maps validation errors to form fields via setError.
|
|
6
|
+
*/
|
|
7
|
+
export function wrapWithSchemaLite(schemaLite, setError, onSubmit) {
|
|
8
|
+
const schema = schemaLite;
|
|
9
|
+
return (data) => {
|
|
10
|
+
const result = schema.safeParse(normalizeFormValues(data));
|
|
11
|
+
if (!result.success && result.error) {
|
|
12
|
+
for (const issue of result.error.issues) {
|
|
13
|
+
const path = issue.path.map(String).join('.');
|
|
14
|
+
if (path) {
|
|
15
|
+
setError(path, { type: 'validate', message: issue.message });
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
setError('root', { type: 'validate', message: issue.message });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
return onSubmit(data);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=SchemaLiteSubmit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaLiteSubmit.js","sourceRoot":"","sources":["../src/SchemaLiteSubmit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AASxD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAoB,EACpB,QAAgC,EAChC,QAA+C;IAE/C,MAAM,MAAM,GAAG,UAAsC,CAAC;IACtD,OAAO,CAAC,IAAW,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,IAAI,EAAE,CAAC;oBACT,QAAQ,CAAC,IAAwB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/ZodForm.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { RuntimeComponentConfig } from './FieldRenderer.js';
|
|
|
6
6
|
type ZodFormProps<TSchema extends ZodObject> = {
|
|
7
7
|
schema: TSchema;
|
|
8
8
|
onSubmit?: (data: output<TSchema>) => unknown;
|
|
9
|
+
onInvalid?: (errors: Record<string, unknown>) => void;
|
|
9
10
|
onValueChange?: (data: output<TSchema>) => void;
|
|
10
11
|
mode?: 'onSubmit' | 'onChange' | 'onBlur';
|
|
11
12
|
defaultValues?: Partial<output<TSchema>>;
|