autoforma 2.0.0 → 2.1.0

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,9 +1,9 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { Layout, UiConfig, UpdateFieldSchema } from '../types';
3
- export interface AutoFormRenderContextProps {
3
+ export interface AutoFormRenderContextProps<TCustom extends string = never> {
4
4
  layout?: Layout;
5
- uiConfig?: UiConfig;
6
- updateFieldSchema?: UpdateFieldSchema;
5
+ uiConfig?: UiConfig<TCustom>;
6
+ updateFieldSchema?: UpdateFieldSchema<TCustom>;
7
7
  }
8
- export declare const AutoFormRenderContext: import('react').Context<AutoFormRenderContextProps | null>;
9
- export declare const AutoFormRenderContextProvider: ({ children, layout, uiConfig, updateFieldSchema, }: PropsWithChildren<AutoFormRenderContextProps>) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const AutoFormRenderContext: import('react').Context<AutoFormRenderContextProps<any> | null>;
9
+ export declare const AutoFormRenderContextProvider: <TCustom extends string = never>({ children, layout, uiConfig, updateFieldSchema, }: PropsWithChildren<AutoFormRenderContextProps<TCustom>>) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { AutoFormRenderContextProps } from './AutoFormRenderContext';
2
- export declare const useAutoFormRenderContext: () => AutoFormRenderContextProps;
2
+ export declare const useAutoFormRenderContext: <TCustom extends string = never>() => AutoFormRenderContextProps<TCustom>;
@@ -1,4 +1,4 @@
1
1
  import { default as React } from 'react';
2
2
  import { FormRef, FormProps } from '../types';
3
- declare const AutoForm: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<FormRef>>;
3
+ declare const AutoForm: React.ForwardRefExoticComponent<FormProps<string> & React.RefAttributes<FormRef>>;
4
4
  export default AutoForm;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const DefaultInput: (props: FieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultInput: <TCustom extends string = never>(props: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultInput;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const DefaultSelect: (props: FieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultSelect: <TCustom extends string = never>(props: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultSelect;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const FieldLayout: (props: FieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const FieldLayout: <TCustom extends string = never>(props: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element;
3
3
  export default FieldLayout;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const FieldRenderer: ({ fieldSchema }: FieldProps) => import("react/jsx-runtime").JSX.Element | undefined;
2
+ declare const FieldRenderer: <TCustom extends string = never>({ fieldSchema }: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element | undefined;
3
3
  export default FieldRenderer;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const UnWatchedField: ({ fieldSchema }: FieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const UnWatchedField: <TCustom extends string = never>({ fieldSchema }: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element;
3
3
  export default UnWatchedField;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const WatchedField: ({ fieldSchema }: FieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const WatchedField: <TCustom extends string = never>({ fieldSchema }: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element;
3
3
  export default WatchedField;
@@ -1,3 +1,3 @@
1
1
  import { FieldProps } from '../types';
2
- declare const Watcher: (props: FieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Watcher: <TCustom extends string = never>(props: FieldProps<TCustom>) => import("react/jsx-runtime").JSX.Element;
3
3
  export default Watcher;
@@ -1,8 +1,8 @@
1
1
  import { Resolver, UseFormRegisterReturn } from 'react-hook-form';
2
2
  export type FormValues = Record<string, any>;
3
- export type FieldType = "text" | "number" | "checkbox" | "select" | "date" | "datetime-local" | "time" | "array" | "object";
4
- export interface BaseFieldSchema {
5
- type: FieldType;
3
+ export type FieldType<TCustom extends string = never> = "text" | "number" | "checkbox" | "select" | "date" | "datetime-local" | "time" | "array" | "object" | TCustom;
4
+ export interface BaseFieldSchema<TCustom extends string = never> {
5
+ type: FieldType<TCustom>;
6
6
  name: string;
7
7
  label: string;
8
8
  dependsOn?: string[];
@@ -11,39 +11,39 @@ export interface BaseFieldSchema {
11
11
  readonly?: boolean;
12
12
  meta?: Record<string, any>;
13
13
  }
14
- export interface HasFields extends BaseFieldSchema {
15
- fields: FieldSchema[];
14
+ export interface HasFields<TCustom extends string = never> extends BaseFieldSchema<TCustom> {
15
+ fields: FieldSchema<TCustom>[];
16
16
  }
17
- export interface ArrayFieldSchema extends HasFields {
17
+ export interface ArrayFieldSchema<TCustom extends string = never> extends HasFields<TCustom> {
18
18
  type: "array";
19
19
  }
20
- export interface ObjectFieldSchema extends HasFields {
20
+ export interface ObjectFieldSchema<TCustom extends string = never> extends HasFields<TCustom> {
21
21
  type: "object";
22
22
  }
23
- export interface SelectFieldSchema extends BaseFieldSchema {
23
+ export interface SelectFieldSchema<TCustom extends string = never> extends BaseFieldSchema<TCustom> {
24
24
  type: "select";
25
25
  options: {
26
26
  label: string;
27
27
  value: string;
28
28
  }[];
29
29
  }
30
- export type FieldSchema = BaseFieldSchema | SelectFieldSchema | HasFields;
31
- export type Schema = FieldSchema[];
32
- export type UpdateFieldSchema = {
33
- [key: string]: (path: string, fieldSchema: FieldSchema, values: FormValues) => FieldSchema | Promise<FieldSchema>;
30
+ export type FieldSchema<TCustom extends string = never> = BaseFieldSchema<TCustom> | SelectFieldSchema<TCustom> | HasFields<TCustom>;
31
+ export type Schema<TCustom extends string = never> = FieldSchema<TCustom>[];
32
+ export type UpdateFieldSchema<TCustom extends string = never> = {
33
+ [key: string]: (path: string, fieldSchema: FieldSchema<TCustom>, values: FormValues) => FieldSchema<TCustom> | Promise<FieldSchema<TCustom>>;
34
34
  };
35
- export type CustomFieldRendererProps = {
36
- fieldSchema: FieldSchema;
35
+ export type CustomFieldRendererProps<TCustom extends string = never> = {
36
+ fieldSchema: FieldSchema<TCustom>;
37
37
  register: UseFormRegisterReturn<string>;
38
38
  };
39
- export type CustomRender = Record<string, React.ComponentType<CustomFieldRendererProps>>;
40
- export interface UiConfig {
41
- renderersByName?: CustomRender;
42
- renderersByType?: CustomRender;
43
- }
39
+ export type CustomRender<TCustom extends string = never> = Record<string, React.ComponentType<CustomFieldRendererProps<TCustom>>>;
40
+ export type UiConfig<TCustom extends string = never> = {
41
+ renderersByName?: CustomRender<TCustom>;
42
+ renderersByType?: CustomRender<TCustom>;
43
+ };
44
44
  export type Layout = "vertical" | "horizontal" | "custom";
45
- export interface FormProps {
46
- schema: Schema;
45
+ export interface FormProps<TCustom extends string = never> {
46
+ schema: Schema<TCustom>;
47
47
  onSubmit: (values: FormValues) => void;
48
48
  layout?: Layout;
49
49
  uiConfig?: UiConfig;
@@ -61,6 +61,6 @@ export interface FormRef {
61
61
  getValues: () => FormValues;
62
62
  reset: (values: FormValues) => void;
63
63
  }
64
- export interface FieldProps {
65
- fieldSchema: FieldSchema;
64
+ export interface FieldProps<TCustom extends string = never> {
65
+ fieldSchema: FieldSchema<TCustom>;
66
66
  }
@@ -1,2 +1,2 @@
1
1
  import { FormValues, Schema } from '../types';
2
- export declare function generateInitialValues<TValues extends FormValues = Record<string, any>>(schema: Schema, initialValues?: Partial<TValues>): TValues;
2
+ export declare function generateInitialValues<TValues extends FormValues = Record<string, any>, TCustom extends string = never>(schema: Schema<TCustom>, initialValues?: Partial<TValues>): TValues;
@@ -1,2 +1,2 @@
1
1
  import { FieldType } from '../types';
2
- export declare const getDefaultValueForField: (type: FieldType) => any;
2
+ export declare function getDefaultValueForField<TCustom extends string = never>(type: FieldType<TCustom>): any;
@@ -1,2 +1,2 @@
1
1
  import { Schema } from '../types';
2
- export declare function makeSchemaReadOnly(schema: Schema): Schema;
2
+ export declare function makeSchemaReadOnly<TCustom extends string = never>(schema: Schema<TCustom>): Schema<TCustom>;
@@ -1,2 +1,2 @@
1
1
  import { Schema } from '../types';
2
- export declare function renderSchema(schema: Schema): import("react/jsx-runtime").JSX.Element[];
2
+ export declare function renderSchema<TCustom extends string = never>(schema: Schema<TCustom>): import("react/jsx-runtime").JSX.Element[];
package/dist/index.cjs.js CHANGED
@@ -14,9 +14,9 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var vr;function Xr(){return vr||(vr=1,process.env.NODE_ENV!=="production"&&(function(){function e(c){if(c==null)return null;if(typeof c=="function")return c.$$typeof===be?null:c.displayName||c.name||null;if(typeof c=="string")return c;switch(c){case $:return"Fragment";case w:return"Profiler";case B:return"StrictMode";case V:return"Suspense";case C:return"SuspenseList";case K:return"Activity"}if(typeof c=="object")switch(typeof c.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),c.$$typeof){case W:return"Portal";case _:return c.displayName||"Context";case T:return(c._context.displayName||"Context")+".Consumer";case m:var E=c.render;return c=c.displayName,c||(c=E.displayName||E.name||"",c=c!==""?"ForwardRef("+c+")":"ForwardRef"),c;case Q:return E=c.displayName||null,E!==null?E:e(c.type)||"Memo";case se:E=c._payload,c=c._init;try{return e(c(E))}catch{}}return null}function t(c){return""+c}function r(c){try{t(c);var E=!1}catch{E=!0}if(E){E=console;var M=E.error,Y=typeof Symbol=="function"&&Symbol.toStringTag&&c[Symbol.toStringTag]||c.constructor.name||"Object";return M.call(E,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Y),t(c)}}function s(c){if(c===$)return"<>";if(typeof c=="object"&&c!==null&&c.$$typeof===se)return"<...>";try{var E=e(c);return E?"<"+E+">":"<...>"}catch{return"<...>"}}function o(){var c=k.A;return c===null?null:c.getOwner()}function a(){return Error("react-stack-top-frame")}function l(c){if(S.call(c,"key")){var E=Object.getOwnPropertyDescriptor(c,"key").get;if(E&&E.isReactWarning)return!1}return c.key!==void 0}function d(c,E){function M(){ee||(ee=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",E))}M.isReactWarning=!0,Object.defineProperty(c,"key",{get:M,configurable:!0})}function F(){var c=e(this.type);return X[c]||(X[c]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),c=this.props.ref,c!==void 0?c:null}function A(c,E,M,Y,xe,pe){var z=M.ref;return c={$$typeof:U,type:c,key:E,props:M,_owner:Y},(z!==void 0?z:null)!==null?Object.defineProperty(c,"ref",{enumerable:!1,get:F}):Object.defineProperty(c,"ref",{enumerable:!1,value:null}),c._store={},Object.defineProperty(c._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(c,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(c,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:xe}),Object.defineProperty(c,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:pe}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c}function I(c,E,M,Y,xe,pe){var z=E.children;if(z!==void 0)if(Y)if(q(z)){for(Y=0;Y<z.length;Y++)p(z[Y]);Object.freeze&&Object.freeze(z)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p(z);if(S.call(E,"key")){z=e(c);var le=Object.keys(E).filter(function(ke){return ke!=="key"});Y=0<le.length?"{key: someKey, "+le.join(": ..., ")+": ...}":"{key: someKey}",me[z+Y]||(le=0<le.length?"{"+le.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var vr;function Xr(){return vr||(vr=1,process.env.NODE_ENV!=="production"&&(function(){function e(c){if(c==null)return null;if(typeof c=="function")return c.$$typeof===be?null:c.displayName||c.name||null;if(typeof c=="string")return c;switch(c){case $:return"Fragment";case w:return"Profiler";case B:return"StrictMode";case V:return"Suspense";case C:return"SuspenseList";case K:return"Activity"}if(typeof c=="object")switch(typeof c.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),c.$$typeof){case W:return"Portal";case _:return c.displayName||"Context";case D:return(c._context.displayName||"Context")+".Consumer";case m:var E=c.render;return c=c.displayName,c||(c=E.displayName||E.name||"",c=c!==""?"ForwardRef("+c+")":"ForwardRef"),c;case Q:return E=c.displayName||null,E!==null?E:e(c.type)||"Memo";case se:E=c._payload,c=c._init;try{return e(c(E))}catch{}}return null}function t(c){return""+c}function r(c){try{t(c);var E=!1}catch{E=!0}if(E){E=console;var M=E.error,Y=typeof Symbol=="function"&&Symbol.toStringTag&&c[Symbol.toStringTag]||c.constructor.name||"Object";return M.call(E,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Y),t(c)}}function s(c){if(c===$)return"<>";if(typeof c=="object"&&c!==null&&c.$$typeof===se)return"<...>";try{var E=e(c);return E?"<"+E+">":"<...>"}catch{return"<...>"}}function o(){var c=k.A;return c===null?null:c.getOwner()}function a(){return Error("react-stack-top-frame")}function l(c){if(S.call(c,"key")){var E=Object.getOwnPropertyDescriptor(c,"key").get;if(E&&E.isReactWarning)return!1}return c.key!==void 0}function d(c,E){function M(){ee||(ee=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",E))}M.isReactWarning=!0,Object.defineProperty(c,"key",{get:M,configurable:!0})}function F(){var c=e(this.type);return X[c]||(X[c]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),c=this.props.ref,c!==void 0?c:null}function A(c,E,M,Y,xe,pe){var z=M.ref;return c={$$typeof:U,type:c,key:E,props:M,_owner:Y},(z!==void 0?z:null)!==null?Object.defineProperty(c,"ref",{enumerable:!1,get:F}):Object.defineProperty(c,"ref",{enumerable:!1,value:null}),c._store={},Object.defineProperty(c._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(c,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(c,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:xe}),Object.defineProperty(c,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:pe}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c}function I(c,E,M,Y,xe,pe){var z=E.children;if(z!==void 0)if(Y)if(q(z)){for(Y=0;Y<z.length;Y++)p(z[Y]);Object.freeze&&Object.freeze(z)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p(z);if(S.call(E,"key")){z=e(c);var le=Object.keys(E).filter(function(ke){return ke!=="key"});Y=0<le.length?"{key: someKey, "+le.join(": ..., ")+": ...}":"{key: someKey}",me[z+Y]||(le=0<le.length?"{"+le.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,Y,z,le,z),me[z+Y]=!0)}if(z=null,M!==void 0&&(r(M),z=""+M),l(E)&&(r(E.key),z=""+E.key),"key"in E){M={};for(var Ae in E)Ae!=="key"&&(M[Ae]=E[Ae])}else M=E;return z&&d(M,typeof c=="function"?c.displayName||c.name||"Unknown":c),A(c,z,M,o(),xe,pe)}function p(c){R(c)?c._store&&(c._store.validated=1):typeof c=="object"&&c!==null&&c.$$typeof===se&&(c._payload.status==="fulfilled"?R(c._payload.value)&&c._payload.value._store&&(c._payload.value._store.validated=1):c._store&&(c._store.validated=1))}function R(c){return typeof c=="object"&&c!==null&&c.$$typeof===U}var b=h,U=Symbol.for("react.transitional.element"),W=Symbol.for("react.portal"),$=Symbol.for("react.fragment"),B=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),_=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),C=Symbol.for("react.suspense_list"),Q=Symbol.for("react.memo"),se=Symbol.for("react.lazy"),K=Symbol.for("react.activity"),be=Symbol.for("react.client.reference"),k=b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,S=Object.prototype.hasOwnProperty,q=Array.isArray,J=console.createTask?console.createTask:function(){return null};b={react_stack_bottom_frame:function(c){return c()}};var ee,X={},fe=b.react_stack_bottom_frame.bind(b,a)(),ye=J(s(a)),me={};Se.Fragment=$,Se.jsx=function(c,E,M){var Y=1e4>k.recentlyCreatedOwnerStacks++;return I(c,E,M,!1,Y?Error("react-stack-top-frame"):fe,Y?J(s(c)):ye)},Se.jsxs=function(c,E,M){var Y=1e4>k.recentlyCreatedOwnerStacks++;return I(c,E,M,!0,Y?Error("react-stack-top-frame"):fe,Y?J(s(c)):ye)}})()),Se}var gr;function Zr(){return gr||(gr=1,process.env.NODE_ENV==="production"?Ce.exports=Gr():Ce.exports=Xr()),Ce.exports}var O=Zr(),Te=e=>e.type==="checkbox",he=e=>e instanceof Date,re=e=>e==null;const Rr=e=>typeof e=="object";var G=e=>!re(e)&&!Array.isArray(e)&&Rr(e)&&!he(e),Qr=e=>G(e)&&e.target?Te(e.target)?e.target.checked:e.target.value:e,Kr=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,et=(e,t)=>e.has(Kr(t)),rt=e=>{const t=e.constructor&&e.constructor.prototype;return G(t)&&t.hasOwnProperty("isPrototypeOf")},tr=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function L(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(tr&&(e instanceof Blob||t))return e;const r=Array.isArray(e);if(!r&&!(G(e)&&rt(e)))return e;const s=r?[]:Object.create(Object.getPrototypeOf(e));for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=L(e[o]));return s}var Ie=e=>/^\w*$/.test(e),N=e=>e===void 0,Me=e=>Array.isArray(e)?e.filter(Boolean):[],sr=e=>Me(e.replace(/["|']|\]/g,"").split(/\.|\[/)),g=(e,t,r)=>{if(!t||!G(e))return r;const s=(Ie(t)?[t]:sr(t)).reduce((o,a)=>re(o)?o:o[a],e);return N(s)||s===e?N(e[t])?r:e[t]:s},ce=e=>typeof e=="boolean",oe=e=>typeof e=="function",P=(e,t,r)=>{let s=-1;const o=Ie(t)?[t]:sr(t),a=o.length,l=a-1;for(;++s<a;){const d=o[s];let F=r;if(s!==l){const A=e[d];F=G(A)||Array.isArray(A)?A:isNaN(+o[s+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=F,e=e[d]}};const hr={BLUR:"blur",FOCUS_OUT:"focusout"},ie={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},de={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},nr=h.createContext(null);nr.displayName="HookFormContext";const ge=()=>h.useContext(nr),tt=e=>{const{children:t,...r}=e;return h.createElement(nr.Provider,{value:r},t)};var st=(e,t,r,s=!0)=>{const o={defaultValues:t._defaultValues};for(const a in e)Object.defineProperty(o,a,{get:()=>{const l=a;return t._proxyFormState[l]!==ie.all&&(t._proxyFormState[l]=!s||ie.all),e[l]}});return o};const ar=typeof window<"u"?h.useLayoutEffect:h.useEffect;var ne=e=>typeof e=="string",Ze=(e,t,r,s,o)=>ne(e)?(s&&t.watch.add(e),g(r,e,o)):Array.isArray(e)?e.map(a=>(s&&t.watch.add(a),g(r,a))):(s&&(t.watchAll=!0),r),Qe=e=>re(e)||!Rr(e);function ue(e,t,r=new WeakSet){if(Qe(e)||Qe(t))return Object.is(e,t);if(he(e)&&he(t))return e.getTime()===t.getTime();const s=Object.keys(e),o=Object.keys(t);if(s.length!==o.length)return!1;if(r.has(e)||r.has(t))return!0;r.add(e),r.add(t);for(const a of s){const l=e[a];if(!o.includes(a))return!1;if(a!=="ref"){const d=t[a];if(he(l)&&he(d)||G(l)&&G(d)||Array.isArray(l)&&Array.isArray(d)?!ue(l,d,r):!Object.is(l,d))return!1}}return!0}function Sr(e){const t=ge(),{control:r=t.control,name:s,defaultValue:o,disabled:a,exact:l,compute:d}=e||{},F=h.useRef(o),A=h.useRef(d),I=h.useRef(void 0),p=h.useRef(r),R=h.useRef(s);A.current=d;const[b,U]=h.useState(()=>{const _=r._getWatch(s,F.current);return A.current?A.current(_):_}),W=h.useCallback(_=>{const m=Ze(s,r._names,_||r._formValues,!1,F.current);return A.current?A.current(m):m},[r._formValues,r._names,s]),$=h.useCallback(_=>{if(!a){const m=Ze(s,r._names,_||r._formValues,!1,F.current);if(A.current){const V=A.current(m);ue(V,I.current)||(U(V),I.current=V)}else U(m)}},[r._formValues,r._names,a,s]);ar(()=>((p.current!==r||!ue(R.current,s))&&(p.current=r,R.current=s,$()),r._subscribe({name:s,formState:{values:!0},exact:l,callback:_=>{$(_.values)}})),[r,l,s,$]),h.useEffect(()=>r._removeUnmounted());const B=p.current!==r,w=R.current,T=h.useMemo(()=>{if(a)return null;const _=!B&&!ue(w,s);return B||_?W():null},[a,B,s,w,W]);return T!==null?T:b}var nt=(e,t,r,s,o)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[s]:o||!0}}:{},te=e=>Array.isArray(e)?e:[e],br=()=>{let e=[];return{get observers(){return e},next:o=>{for(const a of e)a.next&&a.next(o)},subscribe:o=>(e.push(o),{unsubscribe:()=>{e=e.filter(a=>a!==o)}}),unsubscribe:()=>{e=[]}}};function Or(e,t){const r={};for(const s in e)if(e.hasOwnProperty(s)){const o=e[s],a=t[s];if(o&&G(o)&&a){const l=Or(o,a);G(l)&&(r[s]=l)}else e[s]&&(r[s]=a)}return r}var Z=e=>G(e)&&!Object.keys(e).length,ir=e=>e.type==="file",je=e=>{if(!tr)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Tr=e=>e.type==="select-multiple",or=e=>e.type==="radio",at=e=>or(e)||Te(e),We=e=>je(e)&&e.isConnected;function it(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=N(e)?s++:e[t[s++]];return e}function ot(e){for(const t in e)if(e.hasOwnProperty(t)&&!N(e[t]))return!1;return!0}function H(e,t){const r=Array.isArray(t)?t:Ie(t)?[t]:sr(t),s=r.length===1?e:it(e,r),o=r.length-1,a=r[o];return s&&delete s[a],o!==0&&(G(s)&&Z(s)||Array.isArray(s)&&ot(s))&&H(e,r.slice(0,-1)),e}var ut=e=>{for(const t in e)if(oe(e[t]))return!0;return!1};function Dr(e){return Array.isArray(e)||G(e)&&!ut(e)}function Ke(e,t={}){for(const r in e){const s=e[r];Dr(s)?(t[r]=Array.isArray(s)?[]:{},Ke(s,t[r])):N(s)||(t[r]=!0)}return t}function Ve(e,t,r){r||(r=Ke(t));for(const s in e){const o=e[s];if(Dr(o))N(t)||Qe(r[s])?r[s]=Ke(o,Array.isArray(o)?[]:{}):Ve(o,re(t)?{}:t[s],r[s]);else{const a=t[s];r[s]=!ue(o,a)}}return r}const xr={value:!1,isValid:!1},pr={value:!0,isValid:!0};var Cr=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!N(e[0].attributes.value)?N(e[0].value)||e[0].value===""?pr:{value:e[0].value,isValid:!0}:pr:xr}return xr},jr=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>N(e)?e:t?e===""?NaN:e&&+e:r&&ne(e)?new Date(e):s?s(e):e;const Ar={isValid:!1,value:null};var Pr=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,Ar):Ar;function Fr(e){const t=e.ref;return ir(t)?t.files:or(t)?Pr(e.refs).value:Tr(t)?[...t.selectedOptions].map(({value:r})=>r):Te(t)?Cr(e.refs).value:jr(N(t.value)?e.ref.value:t.value,e)}var lt=(e,t,r,s)=>{const o={};for(const a of e){const l=g(t,a);l&&P(o,a,l._f)}return{criteriaMode:r,names:[...e],fields:o,shouldUseNativeValidation:s}},Pe=e=>e instanceof RegExp,Oe=e=>N(e)?e:Pe(e)?e.source:G(e)?Pe(e.value)?e.value.source:e.value:e,Ee=e=>({isOnSubmit:!e||e===ie.onSubmit,isOnBlur:e===ie.onBlur,isOnChange:e===ie.onChange,isOnAll:e===ie.all,isOnTouch:e===ie.onTouched});const Vr="AsyncFunction";var ct=e=>!!e&&!!e.validate&&!!(oe(e.validate)&&e.validate.constructor.name===Vr||G(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===Vr)),dt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),er=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(s=>e.startsWith(s)&&/^\.\w+/.test(e.slice(s.length))));const we=(e,t,r,s)=>{for(const o of r||Object.keys(e)){const a=g(e,o);if(a){const{_f:l,...d}=a;if(l){if(l.refs&&l.refs[0]&&t(l.refs[0],o)&&!s)return!0;if(l.ref&&t(l.ref,l.name)&&!s)return!0;if(we(d,t))break}else if(G(d)&&we(d,t))break}}};function Er(e,t,r){const s=g(e,r);if(s||Ie(r))return{error:s,name:r};const o=r.split(".");for(;o.length;){const a=o.join("."),l=g(t,a),d=g(e,a);if(l&&!Array.isArray(l)&&r!==a)return{name:r};if(d&&d.type)return{name:a,error:d};if(d&&d.root&&d.root.type)return{name:`${a}.root`,error:d.root};o.pop()}return{name:r}}var ft=(e,t,r,s)=>{r(e);const{name:o,...a}=e;return Z(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find(l=>t[l]===(!s||ie.all))},yt=(e,t,r)=>!e||!t||e===t||te(e).some(s=>s&&(r?s===t:s.startsWith(t)||t.startsWith(s))),mt=(e,t,r,s,o)=>o.isOnAll?!1:!r&&o.isOnTouch?!(t||e):(r?s.isOnBlur:o.isOnBlur)?!e:(r?s.isOnChange:o.isOnChange)?e:!0,_t=(e,t)=>!Me(g(e,t)).length&&H(e,t),Nr=(e,t,r)=>{const s=te(g(e,r));return P(s,"root",t[r]),P(e,r,s),e};function wr(e,t,r="validate"){if(ne(e)||Array.isArray(e)&&e.every(ne)||ce(e)&&!e)return{type:r,message:ne(e)?e:"",ref:t}}var Fe=e=>G(e)&&!Pe(e)?e:{value:e,message:""},rr=async(e,t,r,s,o,a)=>{const{ref:l,refs:d,required:F,maxLength:A,minLength:I,min:p,max:R,pattern:b,validate:U,name:W,valueAsNumber:$,mount:B}=e._f,w=g(r,W);if(!B||t.has(W))return{};const T=d?d[0]:l,_=k=>{o&&T.reportValidity&&(T.setCustomValidity(ce(k)?"":k||""),T.reportValidity())},m={},V=or(l),C=Te(l),Q=V||C,se=($||ir(l))&&N(l.value)&&N(w)||je(l)&&l.value===""||w===""||Array.isArray(w)&&!w.length,K=nt.bind(null,W,s,m),be=(k,S,q,J=de.maxLength,ee=de.minLength)=>{const X=k?S:q;m[W]={type:k?J:ee,message:X,ref:l,...K(k?J:ee,X)}};if(a?!Array.isArray(w)||!w.length:F&&(!Q&&(se||re(w))||ce(w)&&!w||C&&!Cr(d).isValid||V&&!Pr(d).isValid)){const{value:k,message:S}=ne(F)?{value:!!F,message:F}:Fe(F);if(k&&(m[W]={type:de.required,message:S,ref:T,...K(de.required,S)},!s))return _(S),m}if(!se&&(!re(p)||!re(R))){let k,S;const q=Fe(R),J=Fe(p);if(!re(w)&&!isNaN(w)){const ee=l.valueAsNumber||w&&+w;re(q.value)||(k=ee>q.value),re(J.value)||(S=ee<J.value)}else{const ee=l.valueAsDate||new Date(w),X=me=>new Date(new Date().toDateString()+" "+me),fe=l.type=="time",ye=l.type=="week";ne(q.value)&&w&&(k=fe?X(w)>X(q.value):ye?w>q.value:ee>new Date(q.value)),ne(J.value)&&w&&(S=fe?X(w)<X(J.value):ye?w<J.value:ee<new Date(J.value))}if((k||S)&&(be(!!k,q.message,J.message,de.max,de.min),!s))return _(m[W].message),m}if((A||I)&&!se&&(ne(w)||a&&Array.isArray(w))){const k=Fe(A),S=Fe(I),q=!re(k.value)&&w.length>+k.value,J=!re(S.value)&&w.length<+S.value;if((q||J)&&(be(q,k.message,S.message),!s))return _(m[W].message),m}if(b&&!se&&ne(w)){const{value:k,message:S}=Fe(b);if(Pe(k)&&!w.match(k)&&(m[W]={type:de.pattern,message:S,ref:l,...K(de.pattern,S)},!s))return _(S),m}if(U){if(oe(U)){const k=await U(w,r),S=wr(k,T);if(S&&(m[W]={...S,...K(de.validate,S.message)},!s))return _(S.message),m}else if(G(U)){let k={};for(const S in U){if(!Z(k)&&!s)break;const q=wr(await U[S](w,r),T,S);q&&(k={...q,...K(S,q.message)},_(q.message),s&&(m[W]=k))}if(!Z(k)&&(m[W]={ref:T,...k},!s))return m}}return _(!0),m};const vt={mode:ie.onSubmit,reValidateMode:ie.onChange,shouldFocusError:!0};function gt(e={}){let t={...vt,...e},r={submitCount:0,isDirty:!1,isReady:!1,isLoading:oe(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},s={},o=G(t.defaultValues)||G(t.values)?L(t.defaultValues||t.values)||{}:{},a=t.shouldUnregister?{}:L(o),l={action:!1,mount:!1,watch:!1,keepIsValid:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},F,A=0;const I={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},p={...I};let R={...p};const b={array:br(),state:br()},U=t.criteriaMode===ie.all,W=n=>i=>{clearTimeout(A),A=setTimeout(n,i)},$=async n=>{if(!l.keepIsValid&&!t.disabled&&(p.isValid||R.isValid||n)){let i;t.resolver?(i=Z((await Q()).errors),B()):i=await K(s,!0),i!==r.isValid&&b.state.next({isValid:i})}},B=(n,i)=>{!t.disabled&&(p.isValidating||p.validatingFields||R.isValidating||R.validatingFields)&&((n||Array.from(d.mount)).forEach(u=>{u&&(i?P(r.validatingFields,u,i):H(r.validatingFields,u))}),b.state.next({validatingFields:r.validatingFields,isValidating:!Z(r.validatingFields)}))},w=(n,i=[],u,v,y=!0,f=!0)=>{if(v&&u&&!t.disabled){if(l.action=!0,f&&Array.isArray(g(s,n))){const x=u(g(s,n),v.argA,v.argB);y&&P(s,n,x)}if(f&&Array.isArray(g(r.errors,n))){const x=u(g(r.errors,n),v.argA,v.argB);y&&P(r.errors,n,x),_t(r.errors,n)}if((p.touchedFields||R.touchedFields)&&f&&Array.isArray(g(r.touchedFields,n))){const x=u(g(r.touchedFields,n),v.argA,v.argB);y&&P(r.touchedFields,n,x)}(p.dirtyFields||R.dirtyFields)&&(r.dirtyFields=Ve(o,a)),b.state.next({name:n,isDirty:k(n,i),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else P(a,n,i)},T=(n,i)=>{P(r.errors,n,i),b.state.next({errors:r.errors})},_=n=>{r.errors=n,b.state.next({errors:r.errors,isValid:!1})},m=(n,i,u,v)=>{const y=g(s,n);if(y){const f=g(a,n,N(u)?g(o,n):u);N(f)||v&&v.defaultChecked||i?P(a,n,i?f:Fr(y._f)):J(n,f),l.mount&&!l.action&&$()}},V=(n,i,u,v,y)=>{let f=!1,x=!1;const D={name:n};if(!t.disabled){if(!u||v){(p.isDirty||R.isDirty)&&(x=r.isDirty,r.isDirty=D.isDirty=k(),f=x!==D.isDirty);const j=ue(g(o,n),i);x=!!g(r.dirtyFields,n),j?H(r.dirtyFields,n):P(r.dirtyFields,n,!0),D.dirtyFields=r.dirtyFields,f=f||(p.dirtyFields||R.dirtyFields)&&x!==!j}if(u){const j=g(r.touchedFields,n);j||(P(r.touchedFields,n,u),D.touchedFields=r.touchedFields,f=f||(p.touchedFields||R.touchedFields)&&j!==u)}f&&y&&b.state.next(D)}return f?D:{}},C=(n,i,u,v)=>{const y=g(r.errors,n),f=(p.isValid||R.isValid)&&ce(i)&&r.isValid!==i;if(t.delayError&&u?(F=W(()=>T(n,u)),F(t.delayError)):(clearTimeout(A),F=null,u?P(r.errors,n,u):H(r.errors,n)),(u?!ue(y,u):y)||!Z(v)||f){const x={...v,...f&&ce(i)?{isValid:i}:{},errors:r.errors,name:n};r={...r,...x},b.state.next(x)}},Q=async n=>(B(n,!0),await t.resolver(a,t.context,lt(n||d.mount,s,t.criteriaMode,t.shouldUseNativeValidation))),se=async n=>{const{errors:i}=await Q(n);if(B(n),n)for(const u of n){const v=g(i,u);v?P(r.errors,u,v):H(r.errors,u)}else r.errors=i;return i},K=async(n,i,u={valid:!0})=>{for(const v in n){const y=n[v];if(y){const{_f:f,...x}=y;if(f){const D=d.array.has(f.name),j=y._f&&ct(y._f);j&&p.validatingFields&&B([f.name],!0);const ae=await rr(y,d.disabled,a,U,t.shouldUseNativeValidation&&!i,D);if(j&&p.validatingFields&&B([f.name]),ae[f.name]&&(u.valid=!1,i))break;!i&&(g(ae,f.name)?D?Nr(r.errors,ae,f.name):P(r.errors,f.name,ae[f.name]):H(r.errors,f.name))}!Z(x)&&await K(x,i,u)}}return u.valid},be=()=>{for(const n of d.unMount){const i=g(s,n);i&&(i._f.refs?i._f.refs.every(u=>!We(u)):!We(i._f.ref))&&le(n)}d.unMount=new Set},k=(n,i)=>!t.disabled&&(n&&i&&P(a,n,i),!ue(c(),o)),S=(n,i,u)=>Ze(n,d,{...l.mount?a:N(i)?o:ne(n)?{[n]:i}:i},u,i),q=n=>Me(g(l.mount?a:o,n,t.shouldUnregister?g(o,n,[]):[])),J=(n,i,u={})=>{const v=g(s,n);let y=i;if(v){const f=v._f;f&&(!f.disabled&&P(a,n,jr(i,f)),y=je(f.ref)&&re(i)?"":i,Tr(f.ref)?[...f.ref.options].forEach(x=>x.selected=y.includes(x.value)):f.refs?Te(f.ref)?f.refs.forEach(x=>{(!x.defaultChecked||!x.disabled)&&(Array.isArray(y)?x.checked=!!y.find(D=>D===x.value):x.checked=y===x.value||!!y)}):f.refs.forEach(x=>x.checked=x.value===y):ir(f.ref)?f.ref.value="":(f.ref.value=y,f.ref.type||b.state.next({name:n,values:L(a)})))}(u.shouldDirty||u.shouldTouch)&&V(n,y,u.shouldTouch,u.shouldDirty,!0),u.shouldValidate&&me(n)},ee=(n,i,u)=>{for(const v in i){if(!i.hasOwnProperty(v))return;const y=i[v],f=n+"."+v,x=g(s,f);(d.array.has(n)||G(y)||x&&!x._f)&&!he(y)?ee(f,y,u):J(f,y,u)}},X=(n,i,u={})=>{const v=g(s,n),y=d.array.has(n),f=L(i);P(a,n,f),y?(b.array.next({name:n,values:L(a)}),(p.isDirty||p.dirtyFields||R.isDirty||R.dirtyFields)&&u.shouldDirty&&b.state.next({name:n,dirtyFields:Ve(o,a),isDirty:k(n,f)})):v&&!v._f&&!re(f)?ee(n,f,u):J(n,f,u),er(n,d)&&b.state.next({...r,name:n}),b.state.next({name:l.mount?n:void 0,values:L(a)})},fe=async n=>{l.mount=!0;const i=n.target;let u=i.name,v=!0;const y=g(s,u),f=j=>{v=Number.isNaN(j)||he(j)&&isNaN(j.getTime())||ue(j,g(a,u,j))},x=Ee(t.mode),D=Ee(t.reValidateMode);if(y){let j,ae;const De=i.type?Fr(y._f):Qr(n),_e=n.type===hr.BLUR||n.type===hr.FOCUS_OUT,zr=!dt(y._f)&&!t.resolver&&!g(r.errors,u)&&!y._f.deps||mt(_e,g(r.touchedFields,u),r.isSubmitted,D,x),Ue=er(u,d,_e);P(a,u,De),_e?(!i||!i.readOnly)&&(y._f.onBlur&&y._f.onBlur(n),F&&F(0)):y._f.onChange&&y._f.onChange(n);const Be=V(u,De,_e),Hr=!Z(Be)||Ue;if(!_e&&b.state.next({name:u,type:n.type,values:L(a)}),zr)return(p.isValid||R.isValid)&&(t.mode==="onBlur"?_e&&$():_e||$()),Hr&&b.state.next({name:u,...Ue?{}:Be});if(!_e&&Ue&&b.state.next({...r}),t.resolver){const{errors:yr}=await Q([u]);if(B([u]),f(De),v){const Jr=Er(r.errors,s,u),mr=Er(yr,s,Jr.name||u);j=mr.error,u=mr.name,ae=Z(yr)}}else B([u],!0),j=(await rr(y,d.disabled,a,U,t.shouldUseNativeValidation))[u],B([u]),f(De),v&&(j?ae=!1:(p.isValid||R.isValid)&&(ae=await K(s,!0)));v&&(y._f.deps&&(!Array.isArray(y._f.deps)||y._f.deps.length>0)&&me(y._f.deps),C(u,ae,j,Be))}},ye=(n,i)=>{if(g(r.errors,i)&&n.focus)return n.focus(),1},me=async(n,i={})=>{let u,v;const y=te(n);if(t.resolver){const f=await se(N(n)?n:y);u=Z(f),v=n?!y.some(x=>g(f,x)):u}else n?(v=(await Promise.all(y.map(async f=>{const x=g(s,f);return await K(x&&x._f?{[f]:x}:x)}))).every(Boolean),!(!v&&!r.isValid)&&$()):v=u=await K(s);return b.state.next({...!ne(n)||(p.isValid||R.isValid)&&u!==r.isValid?{}:{name:n},...t.resolver||!n?{isValid:u}:{},errors:r.errors}),i.shouldFocus&&!v&&we(s,ye,n?y:d.mount),v},c=(n,i)=>{let u={...l.mount?a:o};return i&&(u=Or(i.dirtyFields?r.dirtyFields:r.touchedFields,u)),N(n)?u:ne(n)?g(u,n):n.map(v=>g(u,v))},E=(n,i)=>({invalid:!!g((i||r).errors,n),isDirty:!!g((i||r).dirtyFields,n),error:g((i||r).errors,n),isValidating:!!g(r.validatingFields,n),isTouched:!!g((i||r).touchedFields,n)}),M=n=>{n&&te(n).forEach(i=>H(r.errors,i)),b.state.next({errors:n?r.errors:{}})},Y=(n,i,u)=>{const v=(g(s,n,{_f:{}})._f||{}).ref,y=g(r.errors,n)||{},{ref:f,message:x,type:D,...j}=y;P(r.errors,n,{...j,...i,ref:v}),b.state.next({name:n,errors:r.errors,isValid:!1}),u&&u.shouldFocus&&v&&v.focus&&v.focus()},xe=(n,i)=>oe(n)?b.state.subscribe({next:u=>"values"in u&&n(S(void 0,i),u)}):S(n,i,!0),pe=n=>b.state.subscribe({next:i=>{yt(n.name,i.name,n.exact)&&ft(i,n.formState||p,qr,n.reRenderRoot)&&n.callback({values:{...a},...r,...i,defaultValues:o})}}).unsubscribe,z=n=>(l.mount=!0,R={...R,...n.formState},pe({...n,formState:{...I,...n.formState}})),le=(n,i={})=>{for(const u of n?te(n):d.mount)d.mount.delete(u),d.array.delete(u),i.keepValue||(H(s,u),H(a,u)),!i.keepError&&H(r.errors,u),!i.keepDirty&&H(r.dirtyFields,u),!i.keepTouched&&H(r.touchedFields,u),!i.keepIsValidating&&H(r.validatingFields,u),!t.shouldUnregister&&!i.keepDefaultValue&&H(o,u);b.state.next({values:L(a)}),b.state.next({...r,...i.keepDirty?{isDirty:k()}:{}}),!i.keepIsValid&&$()},Ae=({disabled:n,name:i})=>{(ce(n)&&l.mount||n||d.disabled.has(i))&&(n?d.disabled.add(i):d.disabled.delete(i))},ke=(n,i={})=>{let u=g(s,n);const v=ce(i.disabled)||ce(t.disabled);return P(s,n,{...u||{},_f:{...u&&u._f?u._f:{ref:{name:n}},name:n,mount:!0,...i}}),d.mount.add(n),u?Ae({disabled:ce(i.disabled)?i.disabled:t.disabled,name:n}):m(n,!0,i.value),{...v?{disabled:i.disabled||t.disabled}:{},...t.progressive?{required:!!i.required,min:Oe(i.min),max:Oe(i.max),minLength:Oe(i.minLength),maxLength:Oe(i.maxLength),pattern:Oe(i.pattern)}:{},name:n,onChange:fe,onBlur:fe,ref:y=>{if(y){ke(n,i),u=g(s,n);const f=N(y.value)&&y.querySelectorAll&&y.querySelectorAll("input,select,textarea")[0]||y,x=at(f),D=u._f.refs||[];if(x?D.find(j=>j===f):f===u._f.ref)return;P(s,n,{_f:{...u._f,...x?{refs:[...D.filter(We),f,...Array.isArray(g(o,n))?[{}]:[]],ref:{type:f.type,name:n}}:{ref:f}}}),m(n,!1,void 0,f)}else u=g(s,n,{}),u._f&&(u._f.mount=!1),(t.shouldUnregister||i.shouldUnregister)&&!(et(d.array,n)&&l.action)&&d.unMount.add(n)}}},Le=()=>t.shouldFocusError&&we(s,ye,d.mount),Wr=n=>{ce(n)&&(b.state.next({disabled:n}),we(s,(i,u)=>{const v=g(s,u);v&&(i.disabled=v._f.disabled||n,Array.isArray(v._f.refs)&&v._f.refs.forEach(y=>{y.disabled=v._f.disabled||n}))},0,!1))},lr=(n,i)=>async u=>{let v;u&&(u.preventDefault&&u.preventDefault(),u.persist&&u.persist());let y=L(a);if(b.state.next({isSubmitting:!0}),t.resolver){const{errors:f,values:x}=await Q();B(),r.errors=f,y=L(x)}else await K(s);if(d.disabled.size)for(const f of d.disabled)H(y,f);if(H(r.errors,"root"),Z(r.errors)){b.state.next({errors:{}});try{await n(y,u)}catch(f){v=f}}else i&&await i({...r.errors},u),Le(),setTimeout(Le);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Z(r.errors)&&!v,submitCount:r.submitCount+1,errors:r.errors}),v)throw v},$r=(n,i={})=>{g(s,n)&&(N(i.defaultValue)?X(n,L(g(o,n))):(X(n,i.defaultValue),P(o,n,L(i.defaultValue))),i.keepTouched||H(r.touchedFields,n),i.keepDirty||(H(r.dirtyFields,n),r.isDirty=i.defaultValue?k(n,L(g(o,n))):k()),i.keepError||(H(r.errors,n),p.isValid&&$()),b.state.next({...r}))},cr=(n,i={})=>{const u=n?L(n):o,v=L(u),y=Z(n),f=y?o:v;if(i.keepDefaultValues||(o=u),!i.keepValues){if(i.keepDirtyValues){const x=new Set([...d.mount,...Object.keys(Ve(o,a))]);for(const D of Array.from(x))g(r.dirtyFields,D)?P(f,D,g(a,D)):X(D,g(f,D))}else{if(tr&&N(n))for(const x of d.mount){const D=g(s,x);if(D&&D._f){const j=Array.isArray(D._f.refs)?D._f.refs[0]:D._f.ref;if(je(j)){const ae=j.closest("form");if(ae){ae.reset();break}}}}if(i.keepFieldsRef)for(const x of d.mount)X(x,g(f,x));else s={}}a=t.shouldUnregister?i.keepDefaultValues?L(o):{}:L(f),b.array.next({values:{...f}}),b.state.next({values:{...f}})}d={mount:i.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},l.mount=!p.isValid||!!i.keepIsValid||!!i.keepDirtyValues||!t.shouldUnregister&&!Z(f),l.watch=!!t.shouldUnregister,l.keepIsValid=!!i.keepIsValid,l.action=!1,i.keepErrors||(r.errors={}),b.state.next({submitCount:i.keepSubmitCount?r.submitCount:0,isDirty:y?!1:i.keepDirty?r.isDirty:!!(i.keepDefaultValues&&!ue(n,o)),isSubmitted:i.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:y?{}:i.keepDirtyValues?i.keepDefaultValues&&a?Ve(o,a):r.dirtyFields:i.keepDefaultValues&&n?Ve(o,n):i.keepDirty?r.dirtyFields:{},touchedFields:i.keepTouched?r.touchedFields:{},errors:i.keepErrors?r.errors:{},isSubmitSuccessful:i.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:o})},dr=(n,i)=>cr(oe(n)?n(a):n,{...t.resetOptions,...i}),Yr=(n,i={})=>{const u=g(s,n),v=u&&u._f;if(v){const y=v.refs?v.refs[0]:v.ref;y.focus&&setTimeout(()=>{y.focus(),i.shouldSelect&&oe(y.select)&&y.select()})}},qr=n=>{r={...r,...n}},fr={control:{register:ke,unregister:le,getFieldState:E,handleSubmit:lr,setError:Y,_subscribe:pe,_runSchema:Q,_updateIsValidating:B,_focusError:Le,_getWatch:S,_getDirty:k,_setValid:$,_setFieldArray:w,_setDisabledField:Ae,_setErrors:_,_getFieldArray:q,_reset:cr,_resetDefaultValues:()=>oe(t.defaultValues)&&t.defaultValues().then(n=>{dr(n,t.resetOptions),b.state.next({isLoading:!1})}),_removeUnmounted:be,_disableForm:Wr,_subjects:b,_proxyFormState:p,get _fields(){return s},get _formValues(){return a},get _state(){return l},set _state(n){l=n},get _defaultValues(){return o},get _names(){return d},set _names(n){d=n},get _formState(){return r},get _options(){return t},set _options(n){t={...t,...n}}},subscribe:z,trigger:me,register:ke,handleSubmit:lr,watch:xe,setValue:X,getValues:c,reset:dr,resetField:$r,clearErrors:M,unregister:le,setError:Y,setFocus:Yr,getFieldState:E};return{...fr,formControl:fr}}var ve=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const e=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const r=(Math.random()*16+e)%16|0;return(t=="x"?r:r&3|8).toString(16)})},$e=(e,t,r={})=>r.shouldFocus||N(r.shouldFocus)?r.focusName||`${e}.${N(r.focusIndex)?t:r.focusIndex}.`:"",Ye=(e,t)=>[...e,...te(t)],qe=e=>Array.isArray(e)?e.map(()=>{}):void 0;function ze(e,t,r){return[...e.slice(0,t),...te(r),...e.slice(t)]}var He=(e,t,r)=>Array.isArray(e)?(N(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[],Je=(e,t)=>[...te(t),...te(e)];function ht(e,t){let r=0;const s=[...e];for(const o of t)s.splice(o-r,1),r++;return Me(s).length?s:[]}var Ge=(e,t)=>N(t)?[]:ht(e,te(t).sort((r,s)=>r-s)),Xe=(e,t,r)=>{[e[t],e[r]]=[e[r],e[t]]},kr=(e,t,r)=>(e[t]=r,e);function bt(e){const t=ge(),{control:r=t.control,name:s,keyName:o="id",shouldUnregister:a,rules:l}=e,[d,F]=h.useState(r._getFieldArray(s)),A=h.useRef(r._getFieldArray(s).map(ve)),I=h.useRef(!1);r._names.array.add(s),h.useMemo(()=>l&&d.length>=0&&r.register(s,l),[r,s,d.length,l]),ar(()=>r._subjects.array.subscribe({next:({values:_,name:m})=>{if(m===s||!m){const V=g(_,s);Array.isArray(V)&&(F(V),A.current=V.map(ve))}}}).unsubscribe,[r,s]);const p=h.useCallback(_=>{I.current=!0,r._setFieldArray(s,_)},[r,s]),R=(_,m)=>{const V=te(L(_)),C=Ye(r._getFieldArray(s),V);r._names.focus=$e(s,C.length-1,m),A.current=Ye(A.current,V.map(ve)),p(C),F(C),r._setFieldArray(s,C,Ye,{argA:qe(_)})},b=(_,m)=>{const V=te(L(_)),C=Je(r._getFieldArray(s),V);r._names.focus=$e(s,0,m),A.current=Je(A.current,V.map(ve)),p(C),F(C),r._setFieldArray(s,C,Je,{argA:qe(_)})},U=_=>{const m=Ge(r._getFieldArray(s),_);A.current=Ge(A.current,_),p(m),F(m),!Array.isArray(g(r._fields,s))&&P(r._fields,s,void 0),r._setFieldArray(s,m,Ge,{argA:_})},W=(_,m,V)=>{const C=te(L(m)),Q=ze(r._getFieldArray(s),_,C);r._names.focus=$e(s,_,V),A.current=ze(A.current,_,C.map(ve)),p(Q),F(Q),r._setFieldArray(s,Q,ze,{argA:_,argB:qe(m)})},$=(_,m)=>{const V=r._getFieldArray(s);Xe(V,_,m),Xe(A.current,_,m),p(V),F(V),r._setFieldArray(s,V,Xe,{argA:_,argB:m},!1)},B=(_,m)=>{const V=r._getFieldArray(s);He(V,_,m),He(A.current,_,m),p(V),F(V),r._setFieldArray(s,V,He,{argA:_,argB:m},!1)},w=(_,m)=>{const V=L(m),C=kr(r._getFieldArray(s),_,V);A.current=[...C].map((Q,se)=>!Q||se===_?ve():A.current[se]),p(C),F([...C]),r._setFieldArray(s,C,kr,{argA:_,argB:V},!0,!1)},T=_=>{const m=te(L(_));A.current=m.map(ve),p([...m]),F([...m]),r._setFieldArray(s,[...m],V=>V,{},!0,!1)};return h.useEffect(()=>{if(r._state.action=!1,er(s,r._names)&&r._subjects.state.next({...r._formState}),I.current&&(!Ee(r._options.mode).isOnSubmit||r._formState.isSubmitted)&&!Ee(r._options.reValidateMode).isOnSubmit)if(r._options.resolver)r._runSchema([s]).then(_=>{r._updateIsValidating([s]);const m=g(_.errors,s),V=g(r._formState.errors,s);(V?!m&&V.type||m&&(V.type!==m.type||V.message!==m.message):m&&m.type)&&(m?P(r._formState.errors,s,m):H(r._formState.errors,s),r._subjects.state.next({errors:r._formState.errors}))});else{const _=g(r._fields,s);_&&_._f&&!(Ee(r._options.reValidateMode).isOnSubmit&&Ee(r._options.mode).isOnSubmit)&&rr(_,r._names.disabled,r._formValues,r._options.criteriaMode===ie.all,r._options.shouldUseNativeValidation,!0).then(m=>!Z(m)&&r._subjects.state.next({errors:Nr(r._formState.errors,m,s)}))}r._subjects.state.next({name:s,values:L(r._formValues)}),r._names.focus&&we(r._fields,(_,m)=>{if(r._names.focus&&m.startsWith(r._names.focus)&&_.focus)return _.focus(),1}),r._names.focus="",r._setValid(),I.current=!1},[d,s,r]),h.useEffect(()=>(!g(r._formValues,s)&&r._setFieldArray(s),()=>{const _=(m,V)=>{const C=g(r._fields,m);C&&C._f&&(C._f.mount=V)};r._options.shouldUnregister||a?r.unregister(s):_(s,!1)}),[s,r,o,a]),{swap:h.useCallback($,[p,s,r]),move:h.useCallback(B,[p,s,r]),prepend:h.useCallback(b,[p,s,r]),append:h.useCallback(R,[p,s,r]),remove:h.useCallback(U,[p,s,r]),insert:h.useCallback(W,[p,s,r]),update:h.useCallback(w,[p,s,r]),replace:h.useCallback(T,[p,s,r]),fields:h.useMemo(()=>d.map((_,m)=>({..._,[o]:A.current[m]||ve()})),[d,o])}}function xt(e={}){const t=h.useRef(void 0),r=h.useRef(void 0),[s,o]=h.useState({isDirty:!1,isValidating:!1,isLoading:oe(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:oe(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:s},e.defaultValues&&!oe(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:l,...d}=gt(e);t.current={...d,formState:s}}const a=t.current.control;return a._options=e,ar(()=>{const l=a._subscribe({formState:a._proxyFormState,callback:()=>o({...a._formState}),reRenderRoot:!0});return o(d=>({...d,isReady:!0})),a._formState.isReady=!0,l},[a]),h.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),h.useEffect(()=>{e.mode&&(a._options.mode=e.mode),e.reValidateMode&&(a._options.reValidateMode=e.reValidateMode)},[a,e.mode,e.reValidateMode]),h.useEffect(()=>{e.errors&&(a._setErrors(e.errors),a._focusError())},[a,e.errors]),h.useEffect(()=>{e.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,e.shouldUnregister]),h.useEffect(()=>{if(a._proxyFormState.isDirty){const l=a._getDirty();l!==s.isDirty&&a._subjects.state.next({isDirty:l})}},[a,s.isDirty]),h.useEffect(()=>{var l;e.values&&!ue(e.values,r.current)?(a._reset(e.values,{keepFieldsRef:!0,...a._options.resetOptions}),!((l=a._options.resetOptions)===null||l===void 0)&&l.keepIsValid||a._setValid(),r.current=e.values,o(d=>({...d}))):a._resetDefaultValues()},[a,e.values]),h.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),t.current.formState=st(s,a),t.current}function pt(e,t){const r={};return e.forEach((s,o)=>{const a=s.split(".");let l=r;a.forEach((d,F)=>{const A=F===a.length-1,I=!isNaN(Number(d));A?l[d]=t[o]:(d in l||(l[d]=I?[]:{}),l=l[d])})}),r}const At=e=>{switch(e){case"text":return"";case"number":return 0;case"array":return[];case"checkbox":return!1;case"object":return{};case"select":return null;case"date":return new Date().toISOString().slice(0,10);case"datetime-local":return new Date().toISOString().slice(0,16);case"time":return new Date().toISOString().slice(11,16);default:return""}};function Ir(e){return e.replace(/\.\d+\./g,".")}function Ft(e,t){const r=e.split("."),s=[];return r.forEach((o,a)=>{isNaN(Number(o))||s.push({pos:a,value:o})}),t.map(o=>{const l=[...o.split(".")];return s.forEach(({pos:d,value:F})=>{d<=l.length&&l.splice(d,0,F)}),l.join(".")})}function Ne(e,t={}){const r={};for(const s of e)if(s.type==="object"){const o=s.fields;r[s.name]=Ne(o,t==null?void 0:t[s.name])}else r[s.name]=(t==null?void 0:t[s.name])??s.initialValue??At(s.type);return r}const Vt=e=>{const{fieldSchema:t}=e,r=t.fields,{control:s}=ge(),{fields:o,append:a}=bt({name:t.name,control:s}),l=()=>{a(Ne(r))};return O.jsxs("div",{children:[o.map((d,F)=>{const A=r.map(I=>({...I,name:`${t.name}.${F}.${I.name}`}));return O.jsxs(h.Fragment,{children:[O.jsxs("div",{children:["row ",F]}),ur(A)]},d.id)}),t.readonly!==!0&&O.jsx("button",{onClick:l,children:"Add Row"})]})},Mr=h.createContext(null),Et=({children:e,layout:t="vertical",uiConfig:r,updateFieldSchema:s})=>{const o=h.useMemo(()=>({layout:t,uiConfig:r,updateFieldSchema:s}),[t,r,s]);return O.jsx(Mr.Provider,{value:o,children:e})},Lr=()=>{const e=h.useContext(Mr);if(!e)throw new Error("useAutoFormRenderContext must be used within AutoFormRenderContextProvider");return e},wt=e=>{const{fieldSchema:t}=e,{register:r}=ge(),s=r(t.name);return O.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[O.jsx("label",{children:t.label}),O.jsx("input",{type:t.type,...s,readOnly:t.readonly})]})},kt=e=>{const{fieldSchema:t}=e,{register:r}=ge(),s=r(t.name),o=t.options;return O.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[O.jsx("label",{children:t.label}),O.jsx("select",{...s,disabled:t.readonly,children:o.map(a=>O.jsx("option",{value:a.value,children:a.label},a.value))})]})},Ur=({fieldSchema:e})=>{var F,A;const r=Lr().uiConfig,{register:s}=ge(),o=Ir(e.name),a=s(e.name);if(e.visible===!1)return;const l=(F=r==null?void 0:r.renderersByName)==null?void 0:F[o];if(l)return O.jsx(l,{fieldSchema:e,register:a});const d=(A=r==null?void 0:r.renderersByType)==null?void 0:A[e.type];return d?O.jsx(d,{fieldSchema:e,register:a}):e.type==="select"?O.jsx(kt,{fieldSchema:e}):O.jsx(wt,{fieldSchema:e})},Rt=({fieldSchema:e})=>O.jsx(Ur,{fieldSchema:e}),St=({fieldSchema:e})=>{const{control:t}=ge(),r=Lr(),s=e.dependsOn??[],o=h.useMemo(()=>Ft(e.name,s),[e.name,s]),a=Sr({control:t,name:o}),[l,d]=h.useState(e);return h.useEffect(()=>{if(!s.length)return;let F=!1;return(async()=>{var U;const I=Ir(e.name),p=pt(o,a??[]),R=(U=r==null?void 0:r.updateFieldSchema)==null?void 0:U[I];if(!R)return;const b=await R(e.name,e,p);!F&&b&&d({...e,...b})})(),()=>{F=!0}},[a]),O.jsx(Ur,{fieldSchema:l})},Ot=e=>{var r;const{fieldSchema:t}=e;return(r=t.dependsOn)!=null&&r.length?O.jsx(St,{fieldSchema:t}):O.jsx(Rt,{fieldSchema:t})},Tt=e=>{const{fieldSchema:t}=e;return O.jsx(Ot,{fieldSchema:t})},Dt=e=>{const{fieldSchema:t}=e;let r=h.useMemo(()=>t.fields.map(s=>({...s,name:`${t.name}.${s.name}`})),[t.fields]);return O.jsx(O.Fragment,{children:ur(r)})};function ur(e){return e.map(t=>{switch(t.type){case"array":return O.jsx(Vt,{fieldSchema:t},t.name);case"object":return O.jsx(Dt,{fieldSchema:t},t.name);default:return O.jsx(Tt,{fieldSchema:t},t.name)}})}function Br(e){return e.map(t=>{if(["object","array"].includes(t.type)){const r=t.fields;return{...t,readonly:!0,fields:Br(r)}}return{...t,readonly:!0}})}const Ct=e=>{const{onDirtyChange:t,onValuesChange:r}=e,{formState:s,control:o}=ge(),a=Sr({control:o});return h.useEffect(()=>{r(a)},[a]),h.useEffect(()=>{t(s.isDirty)},[s.isDirty]),null},jt=({onValuesChange:e,onDirtyChange:t})=>(Ct({onDirtyChange:t,onValuesChange:e}),null),Pt=h.forwardRef((e,t)=>{const{schema:r,onSubmit:s,uiConfig:o={renderersByName:{},renderersByType:{}},updateFieldSchema:a={},layout:l="vertical",values:d=()=>({}),hideSubmit:F=!1,onDirtyChange:A=T=>{},onValuesChange:I=T=>{},resolver:p,readonly:R}=e,b=xt({reValidateMode:"onSubmit",criteriaMode:"all",resolver:p}),U=h.useRef(!1),W=b.handleSubmit(s),$=h.useMemo(()=>{let T=r;return R&&(T=Br(T)),T},[R,r]);h.useEffect(()=>{if(U.current)return;let T=!1;return(async()=>{const m=await d();T||(b.reset(Ne(r,m)),U.current=!0)})(),()=>{T=!0}},[d,r]),h.useImperativeHandle(t,()=>({submit:async()=>{await b.handleSubmit(s)()},reset:T=>{b.reset(T?Ne(r,T):void 0)},getValues:()=>b.getValues(),setValue:(T,_)=>{b.setValue(T,_)}}));const B=h.useMemo(()=>ur($),[$]),w=F||R;return O.jsxs(tt,{...b,children:[O.jsx(jt,{onDirtyChange:A,onValuesChange:I}),O.jsxs(Et,{layout:l,uiConfig:o,updateFieldSchema:a,children:[["vertical","horizontal"].includes(l)&&O.jsx("div",{style:{display:"flex",flexDirection:l==="vertical"?"column":"row"},children:B}),l==="custom"&&B,!w&&O.jsx("button",{style:{marginTop:"1rem"},onClick:W,children:"Submit"})]})]})});exports.AutoForm=Pt;
22
+ <%s key={someKey} {...props} />`,Y,z,le,z),me[z+Y]=!0)}if(z=null,M!==void 0&&(r(M),z=""+M),l(E)&&(r(E.key),z=""+E.key),"key"in E){M={};for(var Ae in E)Ae!=="key"&&(M[Ae]=E[Ae])}else M=E;return z&&d(M,typeof c=="function"?c.displayName||c.name||"Unknown":c),A(c,z,M,o(),xe,pe)}function p(c){R(c)?c._store&&(c._store.validated=1):typeof c=="object"&&c!==null&&c.$$typeof===se&&(c._payload.status==="fulfilled"?R(c._payload.value)&&c._payload.value._store&&(c._payload.value._store.validated=1):c._store&&(c._store.validated=1))}function R(c){return typeof c=="object"&&c!==null&&c.$$typeof===U}var b=h,U=Symbol.for("react.transitional.element"),W=Symbol.for("react.portal"),$=Symbol.for("react.fragment"),B=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),D=Symbol.for("react.consumer"),_=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),C=Symbol.for("react.suspense_list"),Q=Symbol.for("react.memo"),se=Symbol.for("react.lazy"),K=Symbol.for("react.activity"),be=Symbol.for("react.client.reference"),k=b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,S=Object.prototype.hasOwnProperty,q=Array.isArray,J=console.createTask?console.createTask:function(){return null};b={react_stack_bottom_frame:function(c){return c()}};var ee,X={},fe=b.react_stack_bottom_frame.bind(b,a)(),ye=J(s(a)),me={};Se.Fragment=$,Se.jsx=function(c,E,M){var Y=1e4>k.recentlyCreatedOwnerStacks++;return I(c,E,M,!1,Y?Error("react-stack-top-frame"):fe,Y?J(s(c)):ye)},Se.jsxs=function(c,E,M){var Y=1e4>k.recentlyCreatedOwnerStacks++;return I(c,E,M,!0,Y?Error("react-stack-top-frame"):fe,Y?J(s(c)):ye)}})()),Se}var gr;function Zr(){return gr||(gr=1,process.env.NODE_ENV==="production"?Ce.exports=Gr():Ce.exports=Xr()),Ce.exports}var O=Zr(),Te=e=>e.type==="checkbox",he=e=>e instanceof Date,re=e=>e==null;const Rr=e=>typeof e=="object";var G=e=>!re(e)&&!Array.isArray(e)&&Rr(e)&&!he(e),Qr=e=>G(e)&&e.target?Te(e.target)?e.target.checked:e.target.value:e,Kr=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,et=(e,t)=>e.has(Kr(t)),rt=e=>{const t=e.constructor&&e.constructor.prototype;return G(t)&&t.hasOwnProperty("isPrototypeOf")},tr=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function L(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(tr&&(e instanceof Blob||t))return e;const r=Array.isArray(e);if(!r&&!(G(e)&&rt(e)))return e;const s=r?[]:Object.create(Object.getPrototypeOf(e));for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=L(e[o]));return s}var Ie=e=>/^\w*$/.test(e),N=e=>e===void 0,Me=e=>Array.isArray(e)?e.filter(Boolean):[],sr=e=>Me(e.replace(/["|']|\]/g,"").split(/\.|\[/)),g=(e,t,r)=>{if(!t||!G(e))return r;const s=(Ie(t)?[t]:sr(t)).reduce((o,a)=>re(o)?o:o[a],e);return N(s)||s===e?N(e[t])?r:e[t]:s},ce=e=>typeof e=="boolean",oe=e=>typeof e=="function",P=(e,t,r)=>{let s=-1;const o=Ie(t)?[t]:sr(t),a=o.length,l=a-1;for(;++s<a;){const d=o[s];let F=r;if(s!==l){const A=e[d];F=G(A)||Array.isArray(A)?A:isNaN(+o[s+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=F,e=e[d]}};const hr={BLUR:"blur",FOCUS_OUT:"focusout"},ie={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},de={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},nr=h.createContext(null);nr.displayName="HookFormContext";const ge=()=>h.useContext(nr),tt=e=>{const{children:t,...r}=e;return h.createElement(nr.Provider,{value:r},t)};var st=(e,t,r,s=!0)=>{const o={defaultValues:t._defaultValues};for(const a in e)Object.defineProperty(o,a,{get:()=>{const l=a;return t._proxyFormState[l]!==ie.all&&(t._proxyFormState[l]=!s||ie.all),e[l]}});return o};const ar=typeof window<"u"?h.useLayoutEffect:h.useEffect;var ne=e=>typeof e=="string",Ze=(e,t,r,s,o)=>ne(e)?(s&&t.watch.add(e),g(r,e,o)):Array.isArray(e)?e.map(a=>(s&&t.watch.add(a),g(r,a))):(s&&(t.watchAll=!0),r),Qe=e=>re(e)||!Rr(e);function ue(e,t,r=new WeakSet){if(Qe(e)||Qe(t))return Object.is(e,t);if(he(e)&&he(t))return e.getTime()===t.getTime();const s=Object.keys(e),o=Object.keys(t);if(s.length!==o.length)return!1;if(r.has(e)||r.has(t))return!0;r.add(e),r.add(t);for(const a of s){const l=e[a];if(!o.includes(a))return!1;if(a!=="ref"){const d=t[a];if(he(l)&&he(d)||G(l)&&G(d)||Array.isArray(l)&&Array.isArray(d)?!ue(l,d,r):!Object.is(l,d))return!1}}return!0}function Sr(e){const t=ge(),{control:r=t.control,name:s,defaultValue:o,disabled:a,exact:l,compute:d}=e||{},F=h.useRef(o),A=h.useRef(d),I=h.useRef(void 0),p=h.useRef(r),R=h.useRef(s);A.current=d;const[b,U]=h.useState(()=>{const _=r._getWatch(s,F.current);return A.current?A.current(_):_}),W=h.useCallback(_=>{const m=Ze(s,r._names,_||r._formValues,!1,F.current);return A.current?A.current(m):m},[r._formValues,r._names,s]),$=h.useCallback(_=>{if(!a){const m=Ze(s,r._names,_||r._formValues,!1,F.current);if(A.current){const V=A.current(m);ue(V,I.current)||(U(V),I.current=V)}else U(m)}},[r._formValues,r._names,a,s]);ar(()=>((p.current!==r||!ue(R.current,s))&&(p.current=r,R.current=s,$()),r._subscribe({name:s,formState:{values:!0},exact:l,callback:_=>{$(_.values)}})),[r,l,s,$]),h.useEffect(()=>r._removeUnmounted());const B=p.current!==r,w=R.current,D=h.useMemo(()=>{if(a)return null;const _=!B&&!ue(w,s);return B||_?W():null},[a,B,s,w,W]);return D!==null?D:b}var nt=(e,t,r,s,o)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[s]:o||!0}}:{},te=e=>Array.isArray(e)?e:[e],br=()=>{let e=[];return{get observers(){return e},next:o=>{for(const a of e)a.next&&a.next(o)},subscribe:o=>(e.push(o),{unsubscribe:()=>{e=e.filter(a=>a!==o)}}),unsubscribe:()=>{e=[]}}};function Or(e,t){const r={};for(const s in e)if(e.hasOwnProperty(s)){const o=e[s],a=t[s];if(o&&G(o)&&a){const l=Or(o,a);G(l)&&(r[s]=l)}else e[s]&&(r[s]=a)}return r}var Z=e=>G(e)&&!Object.keys(e).length,ir=e=>e.type==="file",je=e=>{if(!tr)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Tr=e=>e.type==="select-multiple",or=e=>e.type==="radio",at=e=>or(e)||Te(e),We=e=>je(e)&&e.isConnected;function it(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=N(e)?s++:e[t[s++]];return e}function ot(e){for(const t in e)if(e.hasOwnProperty(t)&&!N(e[t]))return!1;return!0}function H(e,t){const r=Array.isArray(t)?t:Ie(t)?[t]:sr(t),s=r.length===1?e:it(e,r),o=r.length-1,a=r[o];return s&&delete s[a],o!==0&&(G(s)&&Z(s)||Array.isArray(s)&&ot(s))&&H(e,r.slice(0,-1)),e}var ut=e=>{for(const t in e)if(oe(e[t]))return!0;return!1};function Dr(e){return Array.isArray(e)||G(e)&&!ut(e)}function Ke(e,t={}){for(const r in e){const s=e[r];Dr(s)?(t[r]=Array.isArray(s)?[]:{},Ke(s,t[r])):N(s)||(t[r]=!0)}return t}function Ve(e,t,r){r||(r=Ke(t));for(const s in e){const o=e[s];if(Dr(o))N(t)||Qe(r[s])?r[s]=Ke(o,Array.isArray(o)?[]:{}):Ve(o,re(t)?{}:t[s],r[s]);else{const a=t[s];r[s]=!ue(o,a)}}return r}const xr={value:!1,isValid:!1},pr={value:!0,isValid:!0};var Cr=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!N(e[0].attributes.value)?N(e[0].value)||e[0].value===""?pr:{value:e[0].value,isValid:!0}:pr:xr}return xr},jr=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>N(e)?e:t?e===""?NaN:e&&+e:r&&ne(e)?new Date(e):s?s(e):e;const Ar={isValid:!1,value:null};var Pr=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,Ar):Ar;function Fr(e){const t=e.ref;return ir(t)?t.files:or(t)?Pr(e.refs).value:Tr(t)?[...t.selectedOptions].map(({value:r})=>r):Te(t)?Cr(e.refs).value:jr(N(t.value)?e.ref.value:t.value,e)}var lt=(e,t,r,s)=>{const o={};for(const a of e){const l=g(t,a);l&&P(o,a,l._f)}return{criteriaMode:r,names:[...e],fields:o,shouldUseNativeValidation:s}},Pe=e=>e instanceof RegExp,Oe=e=>N(e)?e:Pe(e)?e.source:G(e)?Pe(e.value)?e.value.source:e.value:e,Ee=e=>({isOnSubmit:!e||e===ie.onSubmit,isOnBlur:e===ie.onBlur,isOnChange:e===ie.onChange,isOnAll:e===ie.all,isOnTouch:e===ie.onTouched});const Vr="AsyncFunction";var ct=e=>!!e&&!!e.validate&&!!(oe(e.validate)&&e.validate.constructor.name===Vr||G(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===Vr)),dt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),er=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(s=>e.startsWith(s)&&/^\.\w+/.test(e.slice(s.length))));const we=(e,t,r,s)=>{for(const o of r||Object.keys(e)){const a=g(e,o);if(a){const{_f:l,...d}=a;if(l){if(l.refs&&l.refs[0]&&t(l.refs[0],o)&&!s)return!0;if(l.ref&&t(l.ref,l.name)&&!s)return!0;if(we(d,t))break}else if(G(d)&&we(d,t))break}}};function Er(e,t,r){const s=g(e,r);if(s||Ie(r))return{error:s,name:r};const o=r.split(".");for(;o.length;){const a=o.join("."),l=g(t,a),d=g(e,a);if(l&&!Array.isArray(l)&&r!==a)return{name:r};if(d&&d.type)return{name:a,error:d};if(d&&d.root&&d.root.type)return{name:`${a}.root`,error:d.root};o.pop()}return{name:r}}var ft=(e,t,r,s)=>{r(e);const{name:o,...a}=e;return Z(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find(l=>t[l]===(!s||ie.all))},yt=(e,t,r)=>!e||!t||e===t||te(e).some(s=>s&&(r?s===t:s.startsWith(t)||t.startsWith(s))),mt=(e,t,r,s,o)=>o.isOnAll?!1:!r&&o.isOnTouch?!(t||e):(r?s.isOnBlur:o.isOnBlur)?!e:(r?s.isOnChange:o.isOnChange)?e:!0,_t=(e,t)=>!Me(g(e,t)).length&&H(e,t),Nr=(e,t,r)=>{const s=te(g(e,r));return P(s,"root",t[r]),P(e,r,s),e};function wr(e,t,r="validate"){if(ne(e)||Array.isArray(e)&&e.every(ne)||ce(e)&&!e)return{type:r,message:ne(e)?e:"",ref:t}}var Fe=e=>G(e)&&!Pe(e)?e:{value:e,message:""},rr=async(e,t,r,s,o,a)=>{const{ref:l,refs:d,required:F,maxLength:A,minLength:I,min:p,max:R,pattern:b,validate:U,name:W,valueAsNumber:$,mount:B}=e._f,w=g(r,W);if(!B||t.has(W))return{};const D=d?d[0]:l,_=k=>{o&&D.reportValidity&&(D.setCustomValidity(ce(k)?"":k||""),D.reportValidity())},m={},V=or(l),C=Te(l),Q=V||C,se=($||ir(l))&&N(l.value)&&N(w)||je(l)&&l.value===""||w===""||Array.isArray(w)&&!w.length,K=nt.bind(null,W,s,m),be=(k,S,q,J=de.maxLength,ee=de.minLength)=>{const X=k?S:q;m[W]={type:k?J:ee,message:X,ref:l,...K(k?J:ee,X)}};if(a?!Array.isArray(w)||!w.length:F&&(!Q&&(se||re(w))||ce(w)&&!w||C&&!Cr(d).isValid||V&&!Pr(d).isValid)){const{value:k,message:S}=ne(F)?{value:!!F,message:F}:Fe(F);if(k&&(m[W]={type:de.required,message:S,ref:D,...K(de.required,S)},!s))return _(S),m}if(!se&&(!re(p)||!re(R))){let k,S;const q=Fe(R),J=Fe(p);if(!re(w)&&!isNaN(w)){const ee=l.valueAsNumber||w&&+w;re(q.value)||(k=ee>q.value),re(J.value)||(S=ee<J.value)}else{const ee=l.valueAsDate||new Date(w),X=me=>new Date(new Date().toDateString()+" "+me),fe=l.type=="time",ye=l.type=="week";ne(q.value)&&w&&(k=fe?X(w)>X(q.value):ye?w>q.value:ee>new Date(q.value)),ne(J.value)&&w&&(S=fe?X(w)<X(J.value):ye?w<J.value:ee<new Date(J.value))}if((k||S)&&(be(!!k,q.message,J.message,de.max,de.min),!s))return _(m[W].message),m}if((A||I)&&!se&&(ne(w)||a&&Array.isArray(w))){const k=Fe(A),S=Fe(I),q=!re(k.value)&&w.length>+k.value,J=!re(S.value)&&w.length<+S.value;if((q||J)&&(be(q,k.message,S.message),!s))return _(m[W].message),m}if(b&&!se&&ne(w)){const{value:k,message:S}=Fe(b);if(Pe(k)&&!w.match(k)&&(m[W]={type:de.pattern,message:S,ref:l,...K(de.pattern,S)},!s))return _(S),m}if(U){if(oe(U)){const k=await U(w,r),S=wr(k,D);if(S&&(m[W]={...S,...K(de.validate,S.message)},!s))return _(S.message),m}else if(G(U)){let k={};for(const S in U){if(!Z(k)&&!s)break;const q=wr(await U[S](w,r),D,S);q&&(k={...q,...K(S,q.message)},_(q.message),s&&(m[W]=k))}if(!Z(k)&&(m[W]={ref:D,...k},!s))return m}}return _(!0),m};const vt={mode:ie.onSubmit,reValidateMode:ie.onChange,shouldFocusError:!0};function gt(e={}){let t={...vt,...e},r={submitCount:0,isDirty:!1,isReady:!1,isLoading:oe(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},s={},o=G(t.defaultValues)||G(t.values)?L(t.defaultValues||t.values)||{}:{},a=t.shouldUnregister?{}:L(o),l={action:!1,mount:!1,watch:!1,keepIsValid:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},F,A=0;const I={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},p={...I};let R={...p};const b={array:br(),state:br()},U=t.criteriaMode===ie.all,W=n=>i=>{clearTimeout(A),A=setTimeout(n,i)},$=async n=>{if(!l.keepIsValid&&!t.disabled&&(p.isValid||R.isValid||n)){let i;t.resolver?(i=Z((await Q()).errors),B()):i=await K(s,!0),i!==r.isValid&&b.state.next({isValid:i})}},B=(n,i)=>{!t.disabled&&(p.isValidating||p.validatingFields||R.isValidating||R.validatingFields)&&((n||Array.from(d.mount)).forEach(u=>{u&&(i?P(r.validatingFields,u,i):H(r.validatingFields,u))}),b.state.next({validatingFields:r.validatingFields,isValidating:!Z(r.validatingFields)}))},w=(n,i=[],u,v,y=!0,f=!0)=>{if(v&&u&&!t.disabled){if(l.action=!0,f&&Array.isArray(g(s,n))){const x=u(g(s,n),v.argA,v.argB);y&&P(s,n,x)}if(f&&Array.isArray(g(r.errors,n))){const x=u(g(r.errors,n),v.argA,v.argB);y&&P(r.errors,n,x),_t(r.errors,n)}if((p.touchedFields||R.touchedFields)&&f&&Array.isArray(g(r.touchedFields,n))){const x=u(g(r.touchedFields,n),v.argA,v.argB);y&&P(r.touchedFields,n,x)}(p.dirtyFields||R.dirtyFields)&&(r.dirtyFields=Ve(o,a)),b.state.next({name:n,isDirty:k(n,i),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else P(a,n,i)},D=(n,i)=>{P(r.errors,n,i),b.state.next({errors:r.errors})},_=n=>{r.errors=n,b.state.next({errors:r.errors,isValid:!1})},m=(n,i,u,v)=>{const y=g(s,n);if(y){const f=g(a,n,N(u)?g(o,n):u);N(f)||v&&v.defaultChecked||i?P(a,n,i?f:Fr(y._f)):J(n,f),l.mount&&!l.action&&$()}},V=(n,i,u,v,y)=>{let f=!1,x=!1;const T={name:n};if(!t.disabled){if(!u||v){(p.isDirty||R.isDirty)&&(x=r.isDirty,r.isDirty=T.isDirty=k(),f=x!==T.isDirty);const j=ue(g(o,n),i);x=!!g(r.dirtyFields,n),j?H(r.dirtyFields,n):P(r.dirtyFields,n,!0),T.dirtyFields=r.dirtyFields,f=f||(p.dirtyFields||R.dirtyFields)&&x!==!j}if(u){const j=g(r.touchedFields,n);j||(P(r.touchedFields,n,u),T.touchedFields=r.touchedFields,f=f||(p.touchedFields||R.touchedFields)&&j!==u)}f&&y&&b.state.next(T)}return f?T:{}},C=(n,i,u,v)=>{const y=g(r.errors,n),f=(p.isValid||R.isValid)&&ce(i)&&r.isValid!==i;if(t.delayError&&u?(F=W(()=>D(n,u)),F(t.delayError)):(clearTimeout(A),F=null,u?P(r.errors,n,u):H(r.errors,n)),(u?!ue(y,u):y)||!Z(v)||f){const x={...v,...f&&ce(i)?{isValid:i}:{},errors:r.errors,name:n};r={...r,...x},b.state.next(x)}},Q=async n=>(B(n,!0),await t.resolver(a,t.context,lt(n||d.mount,s,t.criteriaMode,t.shouldUseNativeValidation))),se=async n=>{const{errors:i}=await Q(n);if(B(n),n)for(const u of n){const v=g(i,u);v?P(r.errors,u,v):H(r.errors,u)}else r.errors=i;return i},K=async(n,i,u={valid:!0})=>{for(const v in n){const y=n[v];if(y){const{_f:f,...x}=y;if(f){const T=d.array.has(f.name),j=y._f&&ct(y._f);j&&p.validatingFields&&B([f.name],!0);const ae=await rr(y,d.disabled,a,U,t.shouldUseNativeValidation&&!i,T);if(j&&p.validatingFields&&B([f.name]),ae[f.name]&&(u.valid=!1,i))break;!i&&(g(ae,f.name)?T?Nr(r.errors,ae,f.name):P(r.errors,f.name,ae[f.name]):H(r.errors,f.name))}!Z(x)&&await K(x,i,u)}}return u.valid},be=()=>{for(const n of d.unMount){const i=g(s,n);i&&(i._f.refs?i._f.refs.every(u=>!We(u)):!We(i._f.ref))&&le(n)}d.unMount=new Set},k=(n,i)=>!t.disabled&&(n&&i&&P(a,n,i),!ue(c(),o)),S=(n,i,u)=>Ze(n,d,{...l.mount?a:N(i)?o:ne(n)?{[n]:i}:i},u,i),q=n=>Me(g(l.mount?a:o,n,t.shouldUnregister?g(o,n,[]):[])),J=(n,i,u={})=>{const v=g(s,n);let y=i;if(v){const f=v._f;f&&(!f.disabled&&P(a,n,jr(i,f)),y=je(f.ref)&&re(i)?"":i,Tr(f.ref)?[...f.ref.options].forEach(x=>x.selected=y.includes(x.value)):f.refs?Te(f.ref)?f.refs.forEach(x=>{(!x.defaultChecked||!x.disabled)&&(Array.isArray(y)?x.checked=!!y.find(T=>T===x.value):x.checked=y===x.value||!!y)}):f.refs.forEach(x=>x.checked=x.value===y):ir(f.ref)?f.ref.value="":(f.ref.value=y,f.ref.type||b.state.next({name:n,values:L(a)})))}(u.shouldDirty||u.shouldTouch)&&V(n,y,u.shouldTouch,u.shouldDirty,!0),u.shouldValidate&&me(n)},ee=(n,i,u)=>{for(const v in i){if(!i.hasOwnProperty(v))return;const y=i[v],f=n+"."+v,x=g(s,f);(d.array.has(n)||G(y)||x&&!x._f)&&!he(y)?ee(f,y,u):J(f,y,u)}},X=(n,i,u={})=>{const v=g(s,n),y=d.array.has(n),f=L(i);P(a,n,f),y?(b.array.next({name:n,values:L(a)}),(p.isDirty||p.dirtyFields||R.isDirty||R.dirtyFields)&&u.shouldDirty&&b.state.next({name:n,dirtyFields:Ve(o,a),isDirty:k(n,f)})):v&&!v._f&&!re(f)?ee(n,f,u):J(n,f,u),er(n,d)&&b.state.next({...r,name:n}),b.state.next({name:l.mount?n:void 0,values:L(a)})},fe=async n=>{l.mount=!0;const i=n.target;let u=i.name,v=!0;const y=g(s,u),f=j=>{v=Number.isNaN(j)||he(j)&&isNaN(j.getTime())||ue(j,g(a,u,j))},x=Ee(t.mode),T=Ee(t.reValidateMode);if(y){let j,ae;const De=i.type?Fr(y._f):Qr(n),_e=n.type===hr.BLUR||n.type===hr.FOCUS_OUT,zr=!dt(y._f)&&!t.resolver&&!g(r.errors,u)&&!y._f.deps||mt(_e,g(r.touchedFields,u),r.isSubmitted,T,x),Ue=er(u,d,_e);P(a,u,De),_e?(!i||!i.readOnly)&&(y._f.onBlur&&y._f.onBlur(n),F&&F(0)):y._f.onChange&&y._f.onChange(n);const Be=V(u,De,_e),Hr=!Z(Be)||Ue;if(!_e&&b.state.next({name:u,type:n.type,values:L(a)}),zr)return(p.isValid||R.isValid)&&(t.mode==="onBlur"?_e&&$():_e||$()),Hr&&b.state.next({name:u,...Ue?{}:Be});if(!_e&&Ue&&b.state.next({...r}),t.resolver){const{errors:yr}=await Q([u]);if(B([u]),f(De),v){const Jr=Er(r.errors,s,u),mr=Er(yr,s,Jr.name||u);j=mr.error,u=mr.name,ae=Z(yr)}}else B([u],!0),j=(await rr(y,d.disabled,a,U,t.shouldUseNativeValidation))[u],B([u]),f(De),v&&(j?ae=!1:(p.isValid||R.isValid)&&(ae=await K(s,!0)));v&&(y._f.deps&&(!Array.isArray(y._f.deps)||y._f.deps.length>0)&&me(y._f.deps),C(u,ae,j,Be))}},ye=(n,i)=>{if(g(r.errors,i)&&n.focus)return n.focus(),1},me=async(n,i={})=>{let u,v;const y=te(n);if(t.resolver){const f=await se(N(n)?n:y);u=Z(f),v=n?!y.some(x=>g(f,x)):u}else n?(v=(await Promise.all(y.map(async f=>{const x=g(s,f);return await K(x&&x._f?{[f]:x}:x)}))).every(Boolean),!(!v&&!r.isValid)&&$()):v=u=await K(s);return b.state.next({...!ne(n)||(p.isValid||R.isValid)&&u!==r.isValid?{}:{name:n},...t.resolver||!n?{isValid:u}:{},errors:r.errors}),i.shouldFocus&&!v&&we(s,ye,n?y:d.mount),v},c=(n,i)=>{let u={...l.mount?a:o};return i&&(u=Or(i.dirtyFields?r.dirtyFields:r.touchedFields,u)),N(n)?u:ne(n)?g(u,n):n.map(v=>g(u,v))},E=(n,i)=>({invalid:!!g((i||r).errors,n),isDirty:!!g((i||r).dirtyFields,n),error:g((i||r).errors,n),isValidating:!!g(r.validatingFields,n),isTouched:!!g((i||r).touchedFields,n)}),M=n=>{n&&te(n).forEach(i=>H(r.errors,i)),b.state.next({errors:n?r.errors:{}})},Y=(n,i,u)=>{const v=(g(s,n,{_f:{}})._f||{}).ref,y=g(r.errors,n)||{},{ref:f,message:x,type:T,...j}=y;P(r.errors,n,{...j,...i,ref:v}),b.state.next({name:n,errors:r.errors,isValid:!1}),u&&u.shouldFocus&&v&&v.focus&&v.focus()},xe=(n,i)=>oe(n)?b.state.subscribe({next:u=>"values"in u&&n(S(void 0,i),u)}):S(n,i,!0),pe=n=>b.state.subscribe({next:i=>{yt(n.name,i.name,n.exact)&&ft(i,n.formState||p,qr,n.reRenderRoot)&&n.callback({values:{...a},...r,...i,defaultValues:o})}}).unsubscribe,z=n=>(l.mount=!0,R={...R,...n.formState},pe({...n,formState:{...I,...n.formState}})),le=(n,i={})=>{for(const u of n?te(n):d.mount)d.mount.delete(u),d.array.delete(u),i.keepValue||(H(s,u),H(a,u)),!i.keepError&&H(r.errors,u),!i.keepDirty&&H(r.dirtyFields,u),!i.keepTouched&&H(r.touchedFields,u),!i.keepIsValidating&&H(r.validatingFields,u),!t.shouldUnregister&&!i.keepDefaultValue&&H(o,u);b.state.next({values:L(a)}),b.state.next({...r,...i.keepDirty?{isDirty:k()}:{}}),!i.keepIsValid&&$()},Ae=({disabled:n,name:i})=>{(ce(n)&&l.mount||n||d.disabled.has(i))&&(n?d.disabled.add(i):d.disabled.delete(i))},ke=(n,i={})=>{let u=g(s,n);const v=ce(i.disabled)||ce(t.disabled);return P(s,n,{...u||{},_f:{...u&&u._f?u._f:{ref:{name:n}},name:n,mount:!0,...i}}),d.mount.add(n),u?Ae({disabled:ce(i.disabled)?i.disabled:t.disabled,name:n}):m(n,!0,i.value),{...v?{disabled:i.disabled||t.disabled}:{},...t.progressive?{required:!!i.required,min:Oe(i.min),max:Oe(i.max),minLength:Oe(i.minLength),maxLength:Oe(i.maxLength),pattern:Oe(i.pattern)}:{},name:n,onChange:fe,onBlur:fe,ref:y=>{if(y){ke(n,i),u=g(s,n);const f=N(y.value)&&y.querySelectorAll&&y.querySelectorAll("input,select,textarea")[0]||y,x=at(f),T=u._f.refs||[];if(x?T.find(j=>j===f):f===u._f.ref)return;P(s,n,{_f:{...u._f,...x?{refs:[...T.filter(We),f,...Array.isArray(g(o,n))?[{}]:[]],ref:{type:f.type,name:n}}:{ref:f}}}),m(n,!1,void 0,f)}else u=g(s,n,{}),u._f&&(u._f.mount=!1),(t.shouldUnregister||i.shouldUnregister)&&!(et(d.array,n)&&l.action)&&d.unMount.add(n)}}},Le=()=>t.shouldFocusError&&we(s,ye,d.mount),Wr=n=>{ce(n)&&(b.state.next({disabled:n}),we(s,(i,u)=>{const v=g(s,u);v&&(i.disabled=v._f.disabled||n,Array.isArray(v._f.refs)&&v._f.refs.forEach(y=>{y.disabled=v._f.disabled||n}))},0,!1))},lr=(n,i)=>async u=>{let v;u&&(u.preventDefault&&u.preventDefault(),u.persist&&u.persist());let y=L(a);if(b.state.next({isSubmitting:!0}),t.resolver){const{errors:f,values:x}=await Q();B(),r.errors=f,y=L(x)}else await K(s);if(d.disabled.size)for(const f of d.disabled)H(y,f);if(H(r.errors,"root"),Z(r.errors)){b.state.next({errors:{}});try{await n(y,u)}catch(f){v=f}}else i&&await i({...r.errors},u),Le(),setTimeout(Le);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Z(r.errors)&&!v,submitCount:r.submitCount+1,errors:r.errors}),v)throw v},$r=(n,i={})=>{g(s,n)&&(N(i.defaultValue)?X(n,L(g(o,n))):(X(n,i.defaultValue),P(o,n,L(i.defaultValue))),i.keepTouched||H(r.touchedFields,n),i.keepDirty||(H(r.dirtyFields,n),r.isDirty=i.defaultValue?k(n,L(g(o,n))):k()),i.keepError||(H(r.errors,n),p.isValid&&$()),b.state.next({...r}))},cr=(n,i={})=>{const u=n?L(n):o,v=L(u),y=Z(n),f=y?o:v;if(i.keepDefaultValues||(o=u),!i.keepValues){if(i.keepDirtyValues){const x=new Set([...d.mount,...Object.keys(Ve(o,a))]);for(const T of Array.from(x))g(r.dirtyFields,T)?P(f,T,g(a,T)):X(T,g(f,T))}else{if(tr&&N(n))for(const x of d.mount){const T=g(s,x);if(T&&T._f){const j=Array.isArray(T._f.refs)?T._f.refs[0]:T._f.ref;if(je(j)){const ae=j.closest("form");if(ae){ae.reset();break}}}}if(i.keepFieldsRef)for(const x of d.mount)X(x,g(f,x));else s={}}a=t.shouldUnregister?i.keepDefaultValues?L(o):{}:L(f),b.array.next({values:{...f}}),b.state.next({values:{...f}})}d={mount:i.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},l.mount=!p.isValid||!!i.keepIsValid||!!i.keepDirtyValues||!t.shouldUnregister&&!Z(f),l.watch=!!t.shouldUnregister,l.keepIsValid=!!i.keepIsValid,l.action=!1,i.keepErrors||(r.errors={}),b.state.next({submitCount:i.keepSubmitCount?r.submitCount:0,isDirty:y?!1:i.keepDirty?r.isDirty:!!(i.keepDefaultValues&&!ue(n,o)),isSubmitted:i.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:y?{}:i.keepDirtyValues?i.keepDefaultValues&&a?Ve(o,a):r.dirtyFields:i.keepDefaultValues&&n?Ve(o,n):i.keepDirty?r.dirtyFields:{},touchedFields:i.keepTouched?r.touchedFields:{},errors:i.keepErrors?r.errors:{},isSubmitSuccessful:i.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:o})},dr=(n,i)=>cr(oe(n)?n(a):n,{...t.resetOptions,...i}),Yr=(n,i={})=>{const u=g(s,n),v=u&&u._f;if(v){const y=v.refs?v.refs[0]:v.ref;y.focus&&setTimeout(()=>{y.focus(),i.shouldSelect&&oe(y.select)&&y.select()})}},qr=n=>{r={...r,...n}},fr={control:{register:ke,unregister:le,getFieldState:E,handleSubmit:lr,setError:Y,_subscribe:pe,_runSchema:Q,_updateIsValidating:B,_focusError:Le,_getWatch:S,_getDirty:k,_setValid:$,_setFieldArray:w,_setDisabledField:Ae,_setErrors:_,_getFieldArray:q,_reset:cr,_resetDefaultValues:()=>oe(t.defaultValues)&&t.defaultValues().then(n=>{dr(n,t.resetOptions),b.state.next({isLoading:!1})}),_removeUnmounted:be,_disableForm:Wr,_subjects:b,_proxyFormState:p,get _fields(){return s},get _formValues(){return a},get _state(){return l},set _state(n){l=n},get _defaultValues(){return o},get _names(){return d},set _names(n){d=n},get _formState(){return r},get _options(){return t},set _options(n){t={...t,...n}}},subscribe:z,trigger:me,register:ke,handleSubmit:lr,watch:xe,setValue:X,getValues:c,reset:dr,resetField:$r,clearErrors:M,unregister:le,setError:Y,setFocus:Yr,getFieldState:E};return{...fr,formControl:fr}}var ve=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const e=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const r=(Math.random()*16+e)%16|0;return(t=="x"?r:r&3|8).toString(16)})},$e=(e,t,r={})=>r.shouldFocus||N(r.shouldFocus)?r.focusName||`${e}.${N(r.focusIndex)?t:r.focusIndex}.`:"",Ye=(e,t)=>[...e,...te(t)],qe=e=>Array.isArray(e)?e.map(()=>{}):void 0;function ze(e,t,r){return[...e.slice(0,t),...te(r),...e.slice(t)]}var He=(e,t,r)=>Array.isArray(e)?(N(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[],Je=(e,t)=>[...te(t),...te(e)];function ht(e,t){let r=0;const s=[...e];for(const o of t)s.splice(o-r,1),r++;return Me(s).length?s:[]}var Ge=(e,t)=>N(t)?[]:ht(e,te(t).sort((r,s)=>r-s)),Xe=(e,t,r)=>{[e[t],e[r]]=[e[r],e[t]]},kr=(e,t,r)=>(e[t]=r,e);function bt(e){const t=ge(),{control:r=t.control,name:s,keyName:o="id",shouldUnregister:a,rules:l}=e,[d,F]=h.useState(r._getFieldArray(s)),A=h.useRef(r._getFieldArray(s).map(ve)),I=h.useRef(!1);r._names.array.add(s),h.useMemo(()=>l&&d.length>=0&&r.register(s,l),[r,s,d.length,l]),ar(()=>r._subjects.array.subscribe({next:({values:_,name:m})=>{if(m===s||!m){const V=g(_,s);Array.isArray(V)&&(F(V),A.current=V.map(ve))}}}).unsubscribe,[r,s]);const p=h.useCallback(_=>{I.current=!0,r._setFieldArray(s,_)},[r,s]),R=(_,m)=>{const V=te(L(_)),C=Ye(r._getFieldArray(s),V);r._names.focus=$e(s,C.length-1,m),A.current=Ye(A.current,V.map(ve)),p(C),F(C),r._setFieldArray(s,C,Ye,{argA:qe(_)})},b=(_,m)=>{const V=te(L(_)),C=Je(r._getFieldArray(s),V);r._names.focus=$e(s,0,m),A.current=Je(A.current,V.map(ve)),p(C),F(C),r._setFieldArray(s,C,Je,{argA:qe(_)})},U=_=>{const m=Ge(r._getFieldArray(s),_);A.current=Ge(A.current,_),p(m),F(m),!Array.isArray(g(r._fields,s))&&P(r._fields,s,void 0),r._setFieldArray(s,m,Ge,{argA:_})},W=(_,m,V)=>{const C=te(L(m)),Q=ze(r._getFieldArray(s),_,C);r._names.focus=$e(s,_,V),A.current=ze(A.current,_,C.map(ve)),p(Q),F(Q),r._setFieldArray(s,Q,ze,{argA:_,argB:qe(m)})},$=(_,m)=>{const V=r._getFieldArray(s);Xe(V,_,m),Xe(A.current,_,m),p(V),F(V),r._setFieldArray(s,V,Xe,{argA:_,argB:m},!1)},B=(_,m)=>{const V=r._getFieldArray(s);He(V,_,m),He(A.current,_,m),p(V),F(V),r._setFieldArray(s,V,He,{argA:_,argB:m},!1)},w=(_,m)=>{const V=L(m),C=kr(r._getFieldArray(s),_,V);A.current=[...C].map((Q,se)=>!Q||se===_?ve():A.current[se]),p(C),F([...C]),r._setFieldArray(s,C,kr,{argA:_,argB:V},!0,!1)},D=_=>{const m=te(L(_));A.current=m.map(ve),p([...m]),F([...m]),r._setFieldArray(s,[...m],V=>V,{},!0,!1)};return h.useEffect(()=>{if(r._state.action=!1,er(s,r._names)&&r._subjects.state.next({...r._formState}),I.current&&(!Ee(r._options.mode).isOnSubmit||r._formState.isSubmitted)&&!Ee(r._options.reValidateMode).isOnSubmit)if(r._options.resolver)r._runSchema([s]).then(_=>{r._updateIsValidating([s]);const m=g(_.errors,s),V=g(r._formState.errors,s);(V?!m&&V.type||m&&(V.type!==m.type||V.message!==m.message):m&&m.type)&&(m?P(r._formState.errors,s,m):H(r._formState.errors,s),r._subjects.state.next({errors:r._formState.errors}))});else{const _=g(r._fields,s);_&&_._f&&!(Ee(r._options.reValidateMode).isOnSubmit&&Ee(r._options.mode).isOnSubmit)&&rr(_,r._names.disabled,r._formValues,r._options.criteriaMode===ie.all,r._options.shouldUseNativeValidation,!0).then(m=>!Z(m)&&r._subjects.state.next({errors:Nr(r._formState.errors,m,s)}))}r._subjects.state.next({name:s,values:L(r._formValues)}),r._names.focus&&we(r._fields,(_,m)=>{if(r._names.focus&&m.startsWith(r._names.focus)&&_.focus)return _.focus(),1}),r._names.focus="",r._setValid(),I.current=!1},[d,s,r]),h.useEffect(()=>(!g(r._formValues,s)&&r._setFieldArray(s),()=>{const _=(m,V)=>{const C=g(r._fields,m);C&&C._f&&(C._f.mount=V)};r._options.shouldUnregister||a?r.unregister(s):_(s,!1)}),[s,r,o,a]),{swap:h.useCallback($,[p,s,r]),move:h.useCallback(B,[p,s,r]),prepend:h.useCallback(b,[p,s,r]),append:h.useCallback(R,[p,s,r]),remove:h.useCallback(U,[p,s,r]),insert:h.useCallback(W,[p,s,r]),update:h.useCallback(w,[p,s,r]),replace:h.useCallback(D,[p,s,r]),fields:h.useMemo(()=>d.map((_,m)=>({..._,[o]:A.current[m]||ve()})),[d,o])}}function xt(e={}){const t=h.useRef(void 0),r=h.useRef(void 0),[s,o]=h.useState({isDirty:!1,isValidating:!1,isLoading:oe(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:oe(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:s},e.defaultValues&&!oe(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:l,...d}=gt(e);t.current={...d,formState:s}}const a=t.current.control;return a._options=e,ar(()=>{const l=a._subscribe({formState:a._proxyFormState,callback:()=>o({...a._formState}),reRenderRoot:!0});return o(d=>({...d,isReady:!0})),a._formState.isReady=!0,l},[a]),h.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),h.useEffect(()=>{e.mode&&(a._options.mode=e.mode),e.reValidateMode&&(a._options.reValidateMode=e.reValidateMode)},[a,e.mode,e.reValidateMode]),h.useEffect(()=>{e.errors&&(a._setErrors(e.errors),a._focusError())},[a,e.errors]),h.useEffect(()=>{e.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,e.shouldUnregister]),h.useEffect(()=>{if(a._proxyFormState.isDirty){const l=a._getDirty();l!==s.isDirty&&a._subjects.state.next({isDirty:l})}},[a,s.isDirty]),h.useEffect(()=>{var l;e.values&&!ue(e.values,r.current)?(a._reset(e.values,{keepFieldsRef:!0,...a._options.resetOptions}),!((l=a._options.resetOptions)===null||l===void 0)&&l.keepIsValid||a._setValid(),r.current=e.values,o(d=>({...d}))):a._resetDefaultValues()},[a,e.values]),h.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),t.current.formState=st(s,a),t.current}function pt(e,t){const r={};return e.forEach((s,o)=>{const a=s.split(".");let l=r;a.forEach((d,F)=>{const A=F===a.length-1,I=!isNaN(Number(d));A?l[d]=t[o]:(d in l||(l[d]=I?[]:{}),l=l[d])})}),r}function At(e){switch(e){case"text":return"";case"number":return 0;case"array":return[];case"checkbox":return!1;case"object":return{};case"select":return null;case"date":return new Date().toISOString().slice(0,10);case"datetime-local":return new Date().toISOString().slice(0,16);case"time":return new Date().toISOString().slice(11,16);default:return""}}function Ir(e){return e.replace(/\.\d+\./g,".")}function Ft(e,t){const r=e.split("."),s=[];return r.forEach((o,a)=>{isNaN(Number(o))||s.push({pos:a,value:o})}),t.map(o=>{const l=[...o.split(".")];return s.forEach(({pos:d,value:F})=>{d<=l.length&&l.splice(d,0,F)}),l.join(".")})}function Ne(e,t={}){const r={};for(const s of e)if(s.type==="object"){const o=s.fields;r[s.name]=Ne(o,t==null?void 0:t[s.name])}else r[s.name]=(t==null?void 0:t[s.name])??s.initialValue??At(s.type);return r}const Vt=e=>{const{fieldSchema:t}=e,r=t.fields,{control:s}=ge(),{fields:o,append:a}=bt({name:t.name,control:s}),l=()=>{a(Ne(r))};return O.jsxs("div",{children:[o.map((d,F)=>{const A=r.map(I=>({...I,name:`${t.name}.${F}.${I.name}`}));return O.jsxs(h.Fragment,{children:[O.jsxs("div",{children:["row ",F]}),ur(A)]},d.id)}),t.readonly!==!0&&O.jsx("button",{onClick:l,children:"Add Row"})]})},Mr=h.createContext(null),Et=({children:e,layout:t="vertical",uiConfig:r,updateFieldSchema:s})=>{const o=h.useMemo(()=>({layout:t,uiConfig:r,updateFieldSchema:s}),[t,r,s]);return O.jsx(Mr.Provider,{value:o,children:e})},Lr=()=>{const e=h.useContext(Mr);if(!e)throw new Error("useAutoFormRenderContext must be used within AutoFormRenderContextProvider");return e},wt=e=>{const{fieldSchema:t}=e,{register:r}=ge(),s=r(t.name);return O.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[O.jsx("label",{children:t.label}),O.jsx("input",{type:t.type,...s,readOnly:t.readonly})]})},kt=e=>{const{fieldSchema:t}=e,{register:r}=ge(),s=r(t.name),o=t.options;return O.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[O.jsx("label",{children:t.label}),O.jsx("select",{...s,disabled:t.readonly,children:o.map(a=>O.jsx("option",{value:a.value,children:a.label},a.value))})]})},Ur=({fieldSchema:e})=>{var F,A;const r=Lr().uiConfig,{register:s}=ge(),o=Ir(e.name),a=s(e.name);if(e.visible===!1)return;const l=(F=r==null?void 0:r.renderersByName)==null?void 0:F[o];if(l)return O.jsx(l,{fieldSchema:e,register:a});const d=(A=r==null?void 0:r.renderersByType)==null?void 0:A[e.type];return d?O.jsx(d,{fieldSchema:e,register:a}):e.type==="select"?O.jsx(kt,{fieldSchema:e}):O.jsx(wt,{fieldSchema:e})},Rt=({fieldSchema:e})=>O.jsx(Ur,{fieldSchema:e}),St=({fieldSchema:e})=>{const{control:t}=ge(),r=Lr(),s=e.dependsOn??[],o=h.useMemo(()=>Ft(e.name,s),[e.name,s]),a=Sr({control:t,name:o}),[l,d]=h.useState(e);return h.useEffect(()=>{if(!s.length)return;let F=!1;return(async()=>{var U;const I=Ir(e.name),p=pt(o,a??[]),R=(U=r==null?void 0:r.updateFieldSchema)==null?void 0:U[I];if(!R)return;const b=await R(e.name,e,p);!F&&b&&d({...e,...b})})(),()=>{F=!0}},[a]),O.jsx(Ur,{fieldSchema:l})},Ot=e=>{var r;const{fieldSchema:t}=e;return(r=t.dependsOn)!=null&&r.length?O.jsx(St,{fieldSchema:t}):O.jsx(Rt,{fieldSchema:t})},Tt=e=>{const{fieldSchema:t}=e;return O.jsx(Ot,{fieldSchema:t})},Dt=e=>{const{fieldSchema:t}=e;let r=h.useMemo(()=>t.fields.map(s=>({...s,name:`${t.name}.${s.name}`})),[t.fields]);return O.jsx(O.Fragment,{children:ur(r)})};function ur(e){return e.map(t=>{switch(t.type){case"array":return O.jsx(Vt,{fieldSchema:t},t.name);case"object":return O.jsx(Dt,{fieldSchema:t},t.name);default:return O.jsx(Tt,{fieldSchema:t},t.name)}})}function Br(e){return e.map(t=>{if(["object","array"].includes(t.type)){const r=t.fields;return{...t,readonly:!0,fields:Br(r)}}return{...t,readonly:!0}})}const Ct=e=>{const{onDirtyChange:t,onValuesChange:r}=e,{formState:s,control:o}=ge(),a=Sr({control:o});return h.useEffect(()=>{r(a)},[a]),h.useEffect(()=>{t(s.isDirty)},[s.isDirty]),null},jt=({onValuesChange:e,onDirtyChange:t})=>(Ct({onDirtyChange:t,onValuesChange:e}),null),Pt=h.forwardRef((e,t)=>{const{schema:r,onSubmit:s,uiConfig:o={renderersByName:{},renderersByType:{}},updateFieldSchema:a={},layout:l="vertical",values:d=()=>({}),hideSubmit:F=!1,onDirtyChange:A=()=>{},onValuesChange:I=()=>{},resolver:p,readonly:R}=e,b=xt({reValidateMode:"onSubmit",criteriaMode:"all",resolver:p}),U=h.useRef(!1),W=b.handleSubmit(s),$=h.useMemo(()=>{let D=r;return R&&(D=Br(D)),D},[R,r]);h.useEffect(()=>{if(U.current)return;let D=!1;return(async()=>{const m=await d();D||(b.reset(Ne(r,m)),U.current=!0)})(),()=>{D=!0}},[d,r]),h.useImperativeHandle(t,()=>({submit:async()=>{await b.handleSubmit(s)()},reset:D=>{b.reset(D?Ne(r,D):void 0)},getValues:()=>b.getValues(),setValue:(D,_)=>{b.setValue(D,_)}}));const B=h.useMemo(()=>ur($),[$]),w=F||R;return O.jsxs(tt,{...b,children:[O.jsx(jt,{onDirtyChange:A,onValuesChange:I}),O.jsxs(Et,{layout:l,uiConfig:o,updateFieldSchema:a,children:[["vertical","horizontal"].includes(l)&&O.jsx("div",{style:{display:"flex",flexDirection:l==="vertical"?"column":"row"},children:B}),l==="custom"&&B,!w&&O.jsx("button",{style:{marginTop:"1rem"},onClick:W,children:"Submit"})]})]})});exports.AutoForm=Pt;
package/dist/index.es.js CHANGED
@@ -71,7 +71,7 @@ function st() {
71
71
  return "Portal";
72
72
  case _:
73
73
  return c.displayName || "Context";
74
- case T:
74
+ case D:
75
75
  return (c._context.displayName || "Context") + ".Consumer";
76
76
  case m:
77
77
  var E = c.render;
@@ -237,7 +237,7 @@ React keys must be passed directly to JSX without using spread:
237
237
  function R(c) {
238
238
  return typeof c == "object" && c !== null && c.$$typeof === U;
239
239
  }
240
- var g = V, U = Symbol.for("react.transitional.element"), W = Symbol.for("react.portal"), $ = Symbol.for("react.fragment"), B = Symbol.for("react.strict_mode"), w = Symbol.for("react.profiler"), T = Symbol.for("react.consumer"), _ = Symbol.for("react.context"), m = Symbol.for("react.forward_ref"), F = Symbol.for("react.suspense"), C = Symbol.for("react.suspense_list"), Q = Symbol.for("react.memo"), se = Symbol.for("react.lazy"), K = Symbol.for("react.activity"), be = Symbol.for("react.client.reference"), k = g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, S = Object.prototype.hasOwnProperty, q = Array.isArray, J = console.createTask ? console.createTask : function() {
240
+ var g = V, U = Symbol.for("react.transitional.element"), W = Symbol.for("react.portal"), $ = Symbol.for("react.fragment"), B = Symbol.for("react.strict_mode"), w = Symbol.for("react.profiler"), D = Symbol.for("react.consumer"), _ = Symbol.for("react.context"), m = Symbol.for("react.forward_ref"), F = Symbol.for("react.suspense"), C = Symbol.for("react.suspense_list"), Q = Symbol.for("react.memo"), se = Symbol.for("react.lazy"), K = Symbol.for("react.activity"), be = Symbol.for("react.client.reference"), k = g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, S = Object.prototype.hasOwnProperty, q = Array.isArray, J = console.createTask ? console.createTask : function() {
241
241
  return null;
242
242
  };
243
243
  g = {
@@ -406,13 +406,13 @@ function Tr(e) {
406
406
  $(_.values);
407
407
  }
408
408
  })), [r, l, s, $]), V.useEffect(() => r._removeUnmounted());
409
- const B = x.current !== r, w = R.current, T = V.useMemo(() => {
409
+ const B = x.current !== r, w = R.current, D = V.useMemo(() => {
410
410
  if (a)
411
411
  return null;
412
412
  const _ = !B && !ue(w, s);
413
413
  return B || _ ? W() : null;
414
414
  }, [a, B, s, w, W]);
415
- return T !== null ? T : g;
415
+ return D !== null ? D : g;
416
416
  }
417
417
  var dt = (e, t, r, s, o) => t ? {
418
418
  ...r[e],
@@ -622,8 +622,8 @@ var Fe = (e) => G(e) && !Ie(e) ? e : {
622
622
  const { ref: l, refs: d, required: A, maxLength: p, minLength: I, min: x, max: R, pattern: g, validate: U, name: W, valueAsNumber: $, mount: B } = e._f, w = h(r, W);
623
623
  if (!B || t.has(W))
624
624
  return {};
625
- const T = d ? d[0] : l, _ = (k) => {
626
- o && T.reportValidity && (T.setCustomValidity(ce(k) ? "" : k || ""), T.reportValidity());
625
+ const D = d ? d[0] : l, _ = (k) => {
626
+ o && D.reportValidity && (D.setCustomValidity(ce(k) ? "" : k || ""), D.reportValidity());
627
627
  }, m = {}, F = lr(l), C = De(l), Q = F || C, se = ($ || ur(l)) && N(l.value) && N(w) || Ne(l) && l.value === "" || w === "" || Array.isArray(w) && !w.length, K = dt.bind(null, W, s, m), be = (k, S, q, J = de.maxLength, ee = de.minLength) => {
628
628
  const X = k ? S : q;
629
629
  m[W] = {
@@ -638,7 +638,7 @@ var Fe = (e) => G(e) && !Ie(e) ? e : {
638
638
  if (k && (m[W] = {
639
639
  type: de.required,
640
640
  message: S,
641
- ref: T,
641
+ ref: D,
642
642
  ...K(de.required, S)
643
643
  }, !s))
644
644
  return _(S), m;
@@ -673,7 +673,7 @@ var Fe = (e) => G(e) && !Ie(e) ? e : {
673
673
  }
674
674
  if (U) {
675
675
  if (oe(U)) {
676
- const k = await U(w, r), S = Rr(k, T);
676
+ const k = await U(w, r), S = Rr(k, D);
677
677
  if (S && (m[W] = {
678
678
  ...S,
679
679
  ...K(de.validate, S.message)
@@ -684,14 +684,14 @@ var Fe = (e) => G(e) && !Ie(e) ? e : {
684
684
  for (const S in U) {
685
685
  if (!Z(k) && !s)
686
686
  break;
687
- const q = Rr(await U[S](w, r), T, S);
687
+ const q = Rr(await U[S](w, r), D, S);
688
688
  q && (k = {
689
689
  ...q,
690
690
  ...K(S, q.message)
691
691
  }, _(q.message), s && (m[W] = k));
692
692
  }
693
693
  if (!Z(k) && (m[W] = {
694
- ref: T,
694
+ ref: D,
695
695
  ...k
696
696
  }, !s))
697
697
  return m;
@@ -791,7 +791,7 @@ function Vt(e = {}) {
791
791
  });
792
792
  } else
793
793
  P(a, n, i);
794
- }, T = (n, i) => {
794
+ }, D = (n, i) => {
795
795
  P(r.errors, n, i), g.state.next({
796
796
  errors: r.errors
797
797
  });
@@ -808,25 +808,25 @@ function Vt(e = {}) {
808
808
  }
809
809
  }, F = (n, i, u, v, y) => {
810
810
  let f = !1, b = !1;
811
- const D = {
811
+ const T = {
812
812
  name: n
813
813
  };
814
814
  if (!t.disabled) {
815
815
  if (!u || v) {
816
- (x.isDirty || R.isDirty) && (b = r.isDirty, r.isDirty = D.isDirty = k(), f = b !== D.isDirty);
816
+ (x.isDirty || R.isDirty) && (b = r.isDirty, r.isDirty = T.isDirty = k(), f = b !== T.isDirty);
817
817
  const j = ue(h(o, n), i);
818
- b = !!h(r.dirtyFields, n), j ? H(r.dirtyFields, n) : P(r.dirtyFields, n, !0), D.dirtyFields = r.dirtyFields, f = f || (x.dirtyFields || R.dirtyFields) && b !== !j;
818
+ b = !!h(r.dirtyFields, n), j ? H(r.dirtyFields, n) : P(r.dirtyFields, n, !0), T.dirtyFields = r.dirtyFields, f = f || (x.dirtyFields || R.dirtyFields) && b !== !j;
819
819
  }
820
820
  if (u) {
821
821
  const j = h(r.touchedFields, n);
822
- j || (P(r.touchedFields, n, u), D.touchedFields = r.touchedFields, f = f || (x.touchedFields || R.touchedFields) && j !== u);
822
+ j || (P(r.touchedFields, n, u), T.touchedFields = r.touchedFields, f = f || (x.touchedFields || R.touchedFields) && j !== u);
823
823
  }
824
- f && y && g.state.next(D);
824
+ f && y && g.state.next(T);
825
825
  }
826
- return f ? D : {};
826
+ return f ? T : {};
827
827
  }, C = (n, i, u, v) => {
828
828
  const y = h(r.errors, n), f = (x.isValid || R.isValid) && ce(i) && r.isValid !== i;
829
- if (t.delayError && u ? (A = W(() => T(n, u)), A(t.delayError)) : (clearTimeout(p), A = null, u ? P(r.errors, n, u) : H(r.errors, n)), (u ? !ue(y, u) : y) || !Z(v) || f) {
829
+ if (t.delayError && u ? (A = W(() => D(n, u)), A(t.delayError)) : (clearTimeout(p), A = null, u ? P(r.errors, n, u) : H(r.errors, n)), (u ? !ue(y, u) : y) || !Z(v) || f) {
830
830
  const b = {
831
831
  ...v,
832
832
  ...f && ce(i) ? { isValid: i } : {},
@@ -856,12 +856,12 @@ function Vt(e = {}) {
856
856
  if (y) {
857
857
  const { _f: f, ...b } = y;
858
858
  if (f) {
859
- const D = d.array.has(f.name), j = y._f && ht(y._f);
859
+ const T = d.array.has(f.name), j = y._f && ht(y._f);
860
860
  j && x.validatingFields && B([f.name], !0);
861
- const ae = await sr(y, d.disabled, a, U, t.shouldUseNativeValidation && !i, D);
861
+ const ae = await sr(y, d.disabled, a, U, t.shouldUseNativeValidation && !i, T);
862
862
  if (j && x.validatingFields && B([f.name]), ae[f.name] && (u.valid = !1, i))
863
863
  break;
864
- !i && (h(ae, f.name) ? D ? Lr(r.errors, ae, f.name) : P(r.errors, f.name, ae[f.name]) : H(r.errors, f.name));
864
+ !i && (h(ae, f.name) ? T ? Lr(r.errors, ae, f.name) : P(r.errors, f.name, ae[f.name]) : H(r.errors, f.name));
865
865
  }
866
866
  !Z(b) && await K(b, i, u);
867
867
  }
@@ -881,7 +881,7 @@ function Vt(e = {}) {
881
881
  if (v) {
882
882
  const f = v._f;
883
883
  f && (!f.disabled && P(a, n, Nr(i, f)), y = Ne(f.ref) && re(i) ? "" : i, Cr(f.ref) ? [...f.ref.options].forEach((b) => b.selected = y.includes(b.value)) : f.refs ? De(f.ref) ? f.refs.forEach((b) => {
884
- (!b.defaultChecked || !b.disabled) && (Array.isArray(y) ? b.checked = !!y.find((D) => D === b.value) : b.checked = y === b.value || !!y);
884
+ (!b.defaultChecked || !b.disabled) && (Array.isArray(y) ? b.checked = !!y.find((T) => T === b.value) : b.checked = y === b.value || !!y);
885
885
  }) : f.refs.forEach((b) => b.checked = b.value === y) : ur(f.ref) ? f.ref.value = "" : (f.ref.value = y, f.ref.type || g.state.next({
886
886
  name: n,
887
887
  values: M(a)
@@ -914,10 +914,10 @@ function Vt(e = {}) {
914
914
  let u = i.name, v = !0;
915
915
  const y = h(s, u), f = (j) => {
916
916
  v = Number.isNaN(j) || ge(j) && isNaN(j.getTime()) || ue(j, h(a, u, j));
917
- }, b = Ee(t.mode), D = Ee(t.reValidateMode);
917
+ }, b = Ee(t.mode), T = Ee(t.reValidateMode);
918
918
  if (y) {
919
919
  let j, ae;
920
- const Ce = i.type ? Er(y._f) : at(n), _e = n.type === xr.BLUR || n.type === xr.FOCUS_OUT, Jr = !gt(y._f) && !t.resolver && !h(r.errors, u) && !y._f.deps || pt(_e, h(r.touchedFields, u), r.isSubmitted, D, b), We = tr(u, d, _e);
920
+ const Ce = i.type ? Er(y._f) : at(n), _e = n.type === xr.BLUR || n.type === xr.FOCUS_OUT, Jr = !gt(y._f) && !t.resolver && !h(r.errors, u) && !y._f.deps || pt(_e, h(r.touchedFields, u), r.isSubmitted, T, b), We = tr(u, d, _e);
921
921
  P(a, u, Ce), _e ? (!i || !i.readOnly) && (y._f.onBlur && y._f.onBlur(n), A && A(0)) : y._f.onChange && y._f.onChange(n);
922
922
  const $e = F(u, Ce, _e), Gr = !Z($e) || We;
923
923
  if (!_e && g.state.next({
@@ -970,7 +970,7 @@ function Vt(e = {}) {
970
970
  errors: n ? r.errors : {}
971
971
  });
972
972
  }, Y = (n, i, u) => {
973
- const v = (h(s, n, { _f: {} })._f || {}).ref, y = h(r.errors, n) || {}, { ref: f, message: b, type: D, ...j } = y;
973
+ const v = (h(s, n, { _f: {} })._f || {}).ref, y = h(r.errors, n) || {}, { ref: f, message: b, type: T, ...j } = y;
974
974
  P(r.errors, n, {
975
975
  ...j,
976
976
  ...i,
@@ -1041,15 +1041,15 @@ function Vt(e = {}) {
1041
1041
  ref: (y) => {
1042
1042
  if (y) {
1043
1043
  ke(n, i), u = h(s, n);
1044
- const f = N(y.value) && y.querySelectorAll && y.querySelectorAll("input,select,textarea")[0] || y, b = ft(f), D = u._f.refs || [];
1045
- if (b ? D.find((j) => j === f) : f === u._f.ref)
1044
+ const f = N(y.value) && y.querySelectorAll && y.querySelectorAll("input,select,textarea")[0] || y, b = ft(f), T = u._f.refs || [];
1045
+ if (b ? T.find((j) => j === f) : f === u._f.ref)
1046
1046
  return;
1047
1047
  P(s, n, {
1048
1048
  _f: {
1049
1049
  ...u._f,
1050
1050
  ...b ? {
1051
1051
  refs: [
1052
- ...D.filter(Ye),
1052
+ ...T.filter(Ye),
1053
1053
  f,
1054
1054
  ...Array.isArray(h(o, n)) ? [{}] : []
1055
1055
  ],
@@ -1111,14 +1111,14 @@ function Vt(e = {}) {
1111
1111
  ...d.mount,
1112
1112
  ...Object.keys(Ve(o, a))
1113
1113
  ]);
1114
- for (const D of Array.from(b))
1115
- h(r.dirtyFields, D) ? P(f, D, h(a, D)) : X(D, h(f, D));
1114
+ for (const T of Array.from(b))
1115
+ h(r.dirtyFields, T) ? P(f, T, h(a, T)) : X(T, h(f, T));
1116
1116
  } else {
1117
1117
  if (nr && N(n))
1118
1118
  for (const b of d.mount) {
1119
- const D = h(s, b);
1120
- if (D && D._f) {
1121
- const j = Array.isArray(D._f.refs) ? D._f.refs[0] : D._f.ref;
1119
+ const T = h(s, b);
1120
+ if (T && T._f) {
1121
+ const j = Array.isArray(T._f.refs) ? T._f.refs[0] : T._f.ref;
1122
1122
  if (Ne(j)) {
1123
1123
  const ae = j.closest("form");
1124
1124
  if (ae) {
@@ -1339,7 +1339,7 @@ function wt(e) {
1339
1339
  argA: _,
1340
1340
  argB: F
1341
1341
  }, !0, !1);
1342
- }, T = (_) => {
1342
+ }, D = (_) => {
1343
1343
  const m = te(M(_));
1344
1344
  p.current = m.map(ve), x([...m]), A([...m]), r._setFieldArray(s, [...m], (F) => F, {}, !0, !1);
1345
1345
  };
@@ -1382,7 +1382,7 @@ function wt(e) {
1382
1382
  remove: V.useCallback(U, [x, s, r]),
1383
1383
  insert: V.useCallback(W, [x, s, r]),
1384
1384
  update: V.useCallback(w, [x, s, r]),
1385
- replace: V.useCallback(T, [x, s, r]),
1385
+ replace: V.useCallback(D, [x, s, r]),
1386
1386
  fields: V.useMemo(() => d.map((_, m) => ({
1387
1387
  ..._,
1388
1388
  [o]: p.current[m] || ve()
@@ -1467,7 +1467,7 @@ function Rt(e, t) {
1467
1467
  });
1468
1468
  }), r;
1469
1469
  }
1470
- const St = (e) => {
1470
+ function St(e) {
1471
1471
  switch (e) {
1472
1472
  case "text":
1473
1473
  return "";
@@ -1490,7 +1490,7 @@ const St = (e) => {
1490
1490
  default:
1491
1491
  return "";
1492
1492
  }
1493
- };
1493
+ }
1494
1494
  function Mr(e) {
1495
1495
  return e.replace(/\.\d+\./g, ".");
1496
1496
  }
@@ -1541,9 +1541,7 @@ const Tt = (e) => {
1541
1541
  }),
1542
1542
  t.readonly !== !0 && /* @__PURE__ */ O.jsx("button", { onClick: l, children: "Add Row" })
1543
1543
  ] });
1544
- }, Ur = Zr(
1545
- null
1546
- ), Dt = ({
1544
+ }, Ur = Zr(null), Dt = ({
1547
1545
  children: e,
1548
1546
  layout: t = "vertical",
1549
1547
  uiConfig: r,
@@ -1684,86 +1682,88 @@ const Ut = (e) => {
1684
1682
  }) => (Ut({
1685
1683
  onDirtyChange: t,
1686
1684
  onValuesChange: e
1687
- }), null), Yt = V.forwardRef((e, t) => {
1688
- const {
1689
- schema: r,
1690
- onSubmit: s,
1691
- uiConfig: o = {
1692
- renderersByName: {},
1693
- renderersByType: {}
1694
- },
1695
- updateFieldSchema: a = {},
1696
- layout: l = "vertical",
1697
- values: d = () => ({}),
1698
- hideSubmit: A = !1,
1699
- onDirtyChange: p = (T) => {
1700
- },
1701
- onValuesChange: I = (T) => {
1702
- },
1703
- resolver: x,
1704
- readonly: R
1705
- } = e, g = kt({
1706
- reValidateMode: "onSubmit",
1707
- criteriaMode: "all",
1708
- resolver: x
1709
- }), U = et(!1), W = g.handleSubmit(s), $ = Te(() => {
1710
- let T = r;
1711
- return R && (T = $r(T)), T;
1712
- }, [R, r]);
1713
- Pe(() => {
1714
- if (U.current) return;
1715
- let T = !1;
1716
- return (async () => {
1717
- const m = await d();
1718
- T || (g.reset(Le(r, m)), U.current = !0);
1719
- })(), () => {
1720
- T = !0;
1721
- };
1722
- }, [d, r]), rt(t, () => ({
1723
- submit: async () => {
1724
- await g.handleSubmit(s)();
1725
- },
1726
- reset: (T) => {
1727
- g.reset(T ? Le(r, T) : void 0);
1728
- },
1729
- getValues: () => g.getValues(),
1730
- setValue: (T, _) => {
1731
- g.setValue(T, _);
1732
- }
1733
- }));
1734
- const B = Te(() => cr($), [$]), w = A || R;
1735
- return /* @__PURE__ */ O.jsxs(lt, { ...g, children: [
1736
- /* @__PURE__ */ O.jsx(
1737
- Bt,
1738
- {
1739
- onDirtyChange: p,
1740
- onValuesChange: I
1741
- }
1742
- ),
1743
- /* @__PURE__ */ O.jsxs(
1744
- Dt,
1745
- {
1746
- layout: l,
1747
- uiConfig: o,
1748
- updateFieldSchema: a,
1749
- children: [
1750
- ["vertical", "horizontal"].includes(l) && /* @__PURE__ */ O.jsx(
1751
- "div",
1752
- {
1753
- style: {
1754
- display: "flex",
1755
- flexDirection: l === "vertical" ? "column" : "row"
1756
- },
1757
- children: B
1758
- }
1759
- ),
1760
- l === "custom" && B,
1761
- !w && /* @__PURE__ */ O.jsx("button", { style: { marginTop: "1rem" }, onClick: W, children: "Submit" })
1762
- ]
1685
+ }), null), Yt = V.forwardRef(
1686
+ (e, t) => {
1687
+ const {
1688
+ schema: r,
1689
+ onSubmit: s,
1690
+ uiConfig: o = {
1691
+ renderersByName: {},
1692
+ renderersByType: {}
1693
+ },
1694
+ updateFieldSchema: a = {},
1695
+ layout: l = "vertical",
1696
+ values: d = () => ({}),
1697
+ hideSubmit: A = !1,
1698
+ onDirtyChange: p = () => {
1699
+ },
1700
+ onValuesChange: I = () => {
1701
+ },
1702
+ resolver: x,
1703
+ readonly: R
1704
+ } = e, g = kt({
1705
+ reValidateMode: "onSubmit",
1706
+ criteriaMode: "all",
1707
+ resolver: x
1708
+ }), U = et(!1), W = g.handleSubmit(s), $ = Te(() => {
1709
+ let D = r;
1710
+ return R && (D = $r(D)), D;
1711
+ }, [R, r]);
1712
+ Pe(() => {
1713
+ if (U.current) return;
1714
+ let D = !1;
1715
+ return (async () => {
1716
+ const m = await d();
1717
+ D || (g.reset(Le(r, m)), U.current = !0);
1718
+ })(), () => {
1719
+ D = !0;
1720
+ };
1721
+ }, [d, r]), rt(t, () => ({
1722
+ submit: async () => {
1723
+ await g.handleSubmit(s)();
1724
+ },
1725
+ reset: (D) => {
1726
+ g.reset(D ? Le(r, D) : void 0);
1727
+ },
1728
+ getValues: () => g.getValues(),
1729
+ setValue: (D, _) => {
1730
+ g.setValue(D, _);
1763
1731
  }
1764
- )
1765
- ] });
1766
- });
1732
+ }));
1733
+ const B = Te(() => cr($), [$]), w = A || R;
1734
+ return /* @__PURE__ */ O.jsxs(lt, { ...g, children: [
1735
+ /* @__PURE__ */ O.jsx(
1736
+ Bt,
1737
+ {
1738
+ onDirtyChange: p,
1739
+ onValuesChange: I
1740
+ }
1741
+ ),
1742
+ /* @__PURE__ */ O.jsxs(
1743
+ Dt,
1744
+ {
1745
+ layout: l,
1746
+ uiConfig: o,
1747
+ updateFieldSchema: a,
1748
+ children: [
1749
+ ["vertical", "horizontal"].includes(l) && /* @__PURE__ */ O.jsx(
1750
+ "div",
1751
+ {
1752
+ style: {
1753
+ display: "flex",
1754
+ flexDirection: l === "vertical" ? "column" : "row"
1755
+ },
1756
+ children: B
1757
+ }
1758
+ ),
1759
+ l === "custom" && B,
1760
+ !w && /* @__PURE__ */ O.jsx("button", { style: { marginTop: "1rem" }, onClick: W, children: "Submit" })
1761
+ ]
1762
+ }
1763
+ )
1764
+ ] });
1765
+ }
1766
+ );
1767
1767
  export {
1768
1768
  Yt as AutoForm
1769
1769
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autoforma",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "AutoForma is a headless dynamic form builder based on React Hook Form",
5
5
  "type": "module",
6
6
  "sideEffects": false,