react-simple-formkit 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -120,9 +120,9 @@ return (
120
120
 
121
121
  State updates only when observed via `watch()` or `useWatch()`, or by tracking changes through the Form component's `onChange` callback.
122
122
 
123
- `watch()` will trigger a re-render at the form level.
124
- `useWatch()` will trigger a re-render only in the component where it is called.
125
- `onChange` is just a handler callback that is called when field values change.
123
+ - `watch()` will trigger a re-render at the form level.
124
+ - `useWatch()` will trigger a re-render only in the component where it is called.
125
+ - `onChange` is just a handler callback that is called when field values change.
126
126
 
127
127
  # Manage values
128
128
 
@@ -317,6 +317,13 @@ Generic props:
317
317
  - `name`: `String | Array`
318
318
  - compute: `Function` that will calculate from form values and return a value. It will make re-render when the result changes
319
319
 
320
+ ## useFormContext
321
+
322
+ Return:
323
+
324
+ - `watch`
325
+ - `actions`
326
+
320
327
  # Examples
321
328
 
322
329
  - https://codesandbox.io/p/sandbox/react-simple-formkit-examples-rhmhjj
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var Ee;function pe(){if(Ee)return Z;Ee=1;var a=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function l(m,i,f){var C=null;if(f!==void 0&&(C=""+f),i.key!==void 0&&(C=""+i.key),"key"in i){f={};for(var b in i)b!=="key"&&(f[b]=i[b])}else f=i;return i=f.ref,{$$typeof:a,type:m,key:C,ref:i!==void 0?i:null,props:f}}return Z.Fragment=c,Z.jsx=l,Z.jsxs=l,Z}var Q={};/**
9
+ */var Re;function pe(){if(Re)return Z;Re=1;var a=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function l(m,i,f){var C=null;if(f!==void 0&&(C=""+f),i.key!==void 0&&(C=""+i.key),"key"in i){f={};for(var b in i)b!=="key"&&(f[b]=i[b])}else f=i;return i=f.ref,{$$typeof:a,type:m,key:C,ref:i!==void 0?i:null,props:f}}return Z.Fragment=c,Z.jsx=l,Z.jsxs=l,Z}var Q={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -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 Re;function _e(){return Re||(Re=1,process.env.NODE_ENV!=="production"&&function(){function a(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case W:return"Profiler";case D:return"StrictMode";case ee:return"Suspense";case re:return"SuspenseList";case x:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case w:return"Portal";case M:return(e.displayName||"Context")+".Provider";case H:return(e._context.displayName||"Context")+".Consumer";case K:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ae:return o=e.displayName||null,o!==null?o:a(e.type)||"Memo";case B:o=e._payload,e=e._init;try{return a(e(o))}catch{}}return null}function c(e){return""+e}function l(e){try{c(e);var o=!1}catch{o=!0}if(o){o=console;var u=o.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),c(e)}}function m(e){if(e===j)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===B)return"<...>";try{var o=a(e);return o?"<"+o+">":"<...>"}catch{return"<...>"}}function i(){var e=L.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function C(e){if(Y.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function b(e,o){function u(){O||(O=!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)",o))}u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}function _(){var e=a(this.type);return U[e]||(U[e]=!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.")),e=this.props.ref,e!==void 0?e:null}function P(e,o,u,g,v,p,J,z){return u=p.ref,e={$$typeof:S,type:e,key:o,props:p,_owner:v},(u!==void 0?u:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:_}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:J}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:z}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function h(e,o,u,g,v,p,J,z){var R=o.children;if(R!==void 0)if(g)if(ne(R)){for(g=0;g<R.length;g++)E(R[g]);Object.freeze&&Object.freeze(R)}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 E(R);if(Y.call(o,"key")){R=a(e);var T=Object.keys(o).filter(function(ue){return ue!=="key"});g=0<T.length?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}",I[R+g]||(T=0<T.length?"{"+T.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var ge;function _e(){return ge||(ge=1,process.env.NODE_ENV!=="production"&&function(){function a(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case P:return"Fragment";case W:return"Profiler";case D:return"StrictMode";case ee:return"Suspense";case re:return"SuspenseList";case x:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case w:return"Portal";case M:return(e.displayName||"Context")+".Provider";case H:return(e._context.displayName||"Context")+".Consumer";case K:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ae:return o=e.displayName||null,o!==null?o:a(e.type)||"Memo";case B:o=e._payload,e=e._init;try{return a(e(o))}catch{}}return null}function c(e){return""+e}function l(e){try{c(e);var o=!1}catch{o=!0}if(o){o=console;var u=o.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),c(e)}}function m(e){if(e===P)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===B)return"<...>";try{var o=a(e);return o?"<"+o+">":"<...>"}catch{return"<...>"}}function i(){var e=L.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function C(e){if(Y.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function b(e,o){function u(){O||(O=!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)",o))}u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}function _(){var e=a(this.type);return U[e]||(U[e]=!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.")),e=this.props.ref,e!==void 0?e:null}function A(e,o,u,g,v,p,J,z){return u=p.ref,e={$$typeof:S,type:e,key:o,props:p,_owner:v},(u!==void 0?u:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:_}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:J}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:z}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function h(e,o,u,g,v,p,J,z){var R=o.children;if(R!==void 0)if(g)if(ne(R)){for(g=0;g<R.length;g++)E(R[g]);Object.freeze&&Object.freeze(R)}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 E(R);if(Y.call(o,"key")){R=a(e);var T=Object.keys(o).filter(function(ue){return ue!=="key"});g=0<T.length?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}",I[R+g]||(T=0<T.length?"{"+T.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} />`,g,R,T,R),I[R+g]=!0)}if(R=null,u!==void 0&&(l(u),R=""+u),C(o)&&(l(o.key),R=""+o.key),"key"in o){u={};for(var G in o)G!=="key"&&(u[G]=o[G])}else u=o;return R&&b(u,typeof e=="function"?e.displayName||e.name||"Unknown":e),P(e,R,p,v,i(),u,J,z)}function E(e){typeof e=="object"&&e!==null&&e.$$typeof===S&&e._store&&(e._store.validated=1)}var d=t,S=Symbol.for("react.transitional.element"),w=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),D=Symbol.for("react.strict_mode"),W=Symbol.for("react.profiler"),H=Symbol.for("react.consumer"),M=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),re=Symbol.for("react.suspense_list"),ae=Symbol.for("react.memo"),B=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),L=d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y=Object.prototype.hasOwnProperty,ne=Array.isArray,V=console.createTask?console.createTask:function(){return null};d={"react-stack-bottom-frame":function(e){return e()}};var O,U={},q=d["react-stack-bottom-frame"].bind(d,f)(),$=V(m(f)),I={};Q.Fragment=j,Q.jsx=function(e,o,u,g,v){var p=1e4>L.recentlyCreatedOwnerStacks++;return h(e,o,u,!1,g,v,p?Error("react-stack-top-frame"):q,p?V(m(e)):$)},Q.jsxs=function(e,o,u,g,v){var p=1e4>L.recentlyCreatedOwnerStacks++;return h(e,o,u,!0,g,v,p?Error("react-stack-top-frame"):q,p?V(m(e)):$)}}()),Q}var ge;function Te(){return ge||(ge=1,process.env.NODE_ENV==="production"?oe.exports=pe():oe.exports=_e()),oe.exports}var ke=Te();const k=()=>{},Se=t.createContext({ref:null,watch:null,actions:{reset:k,setValue:k,getValues:k,setError:k,clearError:k,clearErrors:k,checkValidity:k,getNumberFields:k,getFieldValidity:k,getDefaultValues:k,setFieldStateProperty:k,getControlledFields:k},registerController:k,registerHookWatcher:k,lastReloadedAt:k,registerOnchange:k,loadFormValues:k,getWatchValue:k}),ye=()=>t.useContext(Se),Oe=({id:a,control:c,method:l,action:m,children:i,onSubmit:f=()=>{},onInput:C=()=>{},onChange:b=()=>{},onReset:_=()=>{},numberFields:P=[],className:h,...E})=>(t.useEffect(()=>c.registerOnchange(b),[b]),ke.jsx(Se.Provider,{value:c,children:ke.jsx("form",{id:a,ref:c.ref,action:m,method:l,className:h,onInput:C,onSubmit:d=>{l||d.preventDefault();const S=c.loadFormValues();f(S)},onChange:d=>{const S=d.target.name;c.actions.getControlledFields()[S]||c.actions.setValue(S,d.target.value)},onReset:d=>{c.actions.reset(),_(d)},...E,children:i},c.lastReloadedAt)})),Ce=({control:a,name:c,compute:l})=>{const{getWatchValue:m,registerHookWatcher:i}=a||ye(),f=m({name:c,compute:l}),[C,b]=t.useState(f);return t.useEffect(()=>i({name:c,compute:l,setValue:b,computeValue:f}),[]),C},ve=({name:a,defaultValue:c})=>{const{actions:l,registerController:m}=ye(),i=t.useRef(),f=l.getDefaultValues()[a]||c,[C,b]=t.useState(f),_=Ce({name:`fieldStates.${a}.customState`}),P=t.useCallback(E=>{l.setFieldStateProperty(a,"customState",E)},[]),h=t.useCallback((E,{shouldDirty:d=!0,shouldOnChange:S=!0}={})=>{l.setValue(a,E,{shouldDirty:d,shouldOnChange:S}),b(E)},[l.setValue]);return t.useEffect(()=>m(a,b),[]),{ref:i,name:a,defaultValue:f,value:C,onChange:h,customState:_,setCustomState:P}},Ae=({name:a,defaultValue:c,render:l=({ref:m,name:i,defaultValue:f,value:C,onChange:b,customState:_,setCustomState:P})=>null})=>{const m=ve({name:a,defaultValue:c});return l(m)},Pe=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],he=a=>{typeof a.setCustomValidity=="function"&&a.setCustomValidity("");let c=a.validity;console.log(a.valid);let l=Pe.find(m=>c[m]);if(l)return{type:l,message:a.validationMessage}},je=()=>{const[,a]=t.useState({});return t.useCallback(()=>a({}),[])},Fe=()=>{const[a,c]=t.useState(),l=t.useCallback(()=>c(new Date().toString()),[]);return[a,l]},xe=[],Ve={},Ne=({numberFields:a=xe,defaultValues:c=Ve,shouldUnRegister:l=!1,shouldConvertNumber:m=!1}={})=>{const i=je(),[f,C]=Fe(),b=t.useRef(),_=t.useRef(()=>{}),P=t.useRef(!1),h=t.useRef(c),E=t.useRef(c),d=t.useRef(new Set),S=t.useRef(a),w=t.useRef({}),j=t.useRef([]),D=t.useRef([]),W=t.useRef({}),H=t.useRef(0),M=t.useRef({}),K=t.useCallback(()=>{M.current=Object.keys(E.current).reduce((r,n)=>({...r,[n]:{isDirty:!1,isTouched:!1,customState:null}}),{})},[]),ee=t.useCallback((r={})=>{E.current={...E.current,...r},h.current={...E.current},H.current=0,P.current=!1,W.current={},S.current=a,d.current=new Set,D.current=[],j.current=[],w.current={},K(),a.length>0&&(m=!0),C()},[]),re=t.useCallback(()=>!!Object.values(V()).find(r=>r.isDirty),[]),ae=t.useCallback(()=>!!Object.values(Y()).find(r=>!!r),[]),B=t.useCallback(r=>he(r.target),[]),x=t.useCallback(r=>r?h.current[r]:h.current,[]),te=t.useCallback(()=>E.current,[]),L=t.useCallback(()=>S.current,[]),Y=t.useCallback(()=>W.current,[]),ne=t.useCallback(()=>w.current,[]),V=t.useCallback(()=>M.current,[]),O=t.useCallback(({name:r,compute:n})=>{var y;if(typeof n=="function")return n(x());if(Array.isArray(r)){const A={};return r.forEach(F=>{A[F]=O({name:F})}),A}if(r==="isDirty")return re();if(r==="isError")return ae();if(r==="values")return{...x()};if(r==="errors")return{...Y()};if(r==="fieldStates")return{...V()};const s=r.split(".");if(s.length>1){const A=s[1];if(s[0]==="errors")return s.length===2?{...Y()[A]}:{...Y()[A]};if(s[0]==="fieldStates"){if(s.length===2)return{...V()[A]};const F=s[2];return(y=V()[A])==null?void 0:y[F]}}return x()[r]},[]),U=r=>{D.current.forEach(n=>{let s;if(typeof n.name=="string"?s=r(n):n.name.forEach(y=>{s||(s=r({...n,name:y}))}),s){const y=O(n);n.setValue(y)}})},q=r=>{const n=({name:s})=>s==="isError"||s==="errors"||(r?s===`errors.${r}`:s.includes("errors"));[...d.current].forEach(s=>{n({name:s})&&i()}),U(n)},$=t.useCallback((r,n)=>{W.current[r]=n,q(r)},[]),I=t.useCallback(r=>{W.current[r]=null,q(r)},[]),e=t.useCallback(()=>{W.current={},q()},[]),o=t.useCallback(r=>{const n=he(r.target);n?$(r.target.name,n):I(r.target.name)},[$,I]),u=t.useCallback((r,n,s)=>{const y=M.current[r];if(y[n]!==s){M.current[r]={...y,[n]:s};const F=({name:N})=>N==="fieldStates"||N===`fieldStates.${r}`||N===`fieldStates.${r}.${n}`;if([...d.current].forEach(N=>{F({name:N})&&i()}),n==="customState"){j.current.forEach(({name:N,setValue:se})=>{N.includes(r)&&se(s)});return}U(F)}}),g=t.useCallback((r,n,{shouldDirty:s=!0,shouldOnChange:y=!0}={})=>{m&&S.current.includes(r)&&(n=Number(n)||void 0);const A=h.current[r],F=M.current[r],se=w.current[r];if(u(r,"isTouched",!0),s){const X=n!==E.current[r];F.isDirty!==X&&u(r,"isDirty",X)}const ce=re(),fe=P.current,de=n!==A;d.current.has(r)&&de&&i(),d.current.has("values")&&i(),d.current.has("isDirty")&&ce!==fe&&i(),h.current[r]=n,se&&se(n),P.current=ce,U(X=>{const{name:le,compute:me,computeValue:be}=X;if(me){const ie=me(x());return ie!==be&&(X.computeValue=ie),ie!==be}if(le==="values")return!0;if(le==="isDirty")return ce!==fe;if(le===r)return de}),y&&_.current(r,n,h.current)},[u]),v=t.useCallback(r=>{if(typeof r=="string")return d.current.add(r),O({name:r});if(Array.isArray(r)){const n={};return r.forEach(s=>{d.current.add(s),n[s]=O({name:s})}),n}return O({name:r})},[]),p=t.useCallback((r,n)=>{const s=w.current;return s[r]=n,()=>{l&&(delete s[r],delete h.current[r])}},[]),J=t.useCallback(r=>(_.current=r,()=>_.current=()=>{}),[]),z=t.useCallback(r=>{var s;const n=H.current;return(s=r.name)!=null&&s.includes("customState")?j.current.push({key:n,...r}):D.current.push({key:n,...r}),H.current++,()=>{D.current=D.current.filter(y=>y.key!==n),j.current=j.current.filter(y=>y.key!==n)}},[]),R=t.useCallback(()=>{const r=Object.fromEntries(new FormData(b.current)),n=w.current;return Object.keys(n).map(s=>{r[s]=h.current[s]}),m&&S.current.forEach(s=>r.hasOwnProperty(s)&&(r[s]=Number(r[s])||0)),r},[]),T=t.useMemo(()=>({reset:ee,setValue:g,getValues:x,setError:$,clearError:I,clearErrors:e,checkValidity:o,getNumberFields:L,getFieldValidity:B,getDefaultValues:te,setFieldStateProperty:u,getControlledFields:ne}),[ee,g,x,$,I,e,o,L,B,te,u,ne]),G=t.useMemo(()=>({ref:b,watch:v,actions:T,registerController:p,registerHookWatcher:z,lastReloadedAt:f,registerOnchange:J,loadFormValues:R,getWatchValue:O}),[b,v,T,p,z,f,J,R,O]),ue=t.useMemo(()=>({control:G,actions:T,watch:v}),[f,G,T,v]);return t.useLayoutEffect(()=>{if([...b.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&E.current[n.name]&&(n.defaultValue=E.current[n.name]),n.type==="number"&&!S.current.includes(n.name)&&S.current.push(n.name)}),b.current){const n=R();h.current={...n},E.current={...n}}},[f]),t.useLayoutEffect(()=>{K()},[]),ue};exports.Controller=Ae;exports.Form=Oe;exports.useController=ve;exports.useForm=Ne;exports.useWatch=Ce;
22
+ <%s key={someKey} {...props} />`,g,R,T,R),I[R+g]=!0)}if(R=null,u!==void 0&&(l(u),R=""+u),C(o)&&(l(o.key),R=""+o.key),"key"in o){u={};for(var G in o)G!=="key"&&(u[G]=o[G])}else u=o;return R&&b(u,typeof e=="function"?e.displayName||e.name||"Unknown":e),A(e,R,p,v,i(),u,J,z)}function E(e){typeof e=="object"&&e!==null&&e.$$typeof===S&&e._store&&(e._store.validated=1)}var d=t,S=Symbol.for("react.transitional.element"),w=Symbol.for("react.portal"),P=Symbol.for("react.fragment"),D=Symbol.for("react.strict_mode"),W=Symbol.for("react.profiler"),H=Symbol.for("react.consumer"),M=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),re=Symbol.for("react.suspense_list"),ae=Symbol.for("react.memo"),B=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),L=d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y=Object.prototype.hasOwnProperty,ne=Array.isArray,V=console.createTask?console.createTask:function(){return null};d={"react-stack-bottom-frame":function(e){return e()}};var O,U={},q=d["react-stack-bottom-frame"].bind(d,f)(),$=V(m(f)),I={};Q.Fragment=P,Q.jsx=function(e,o,u,g,v){var p=1e4>L.recentlyCreatedOwnerStacks++;return h(e,o,u,!1,g,v,p?Error("react-stack-top-frame"):q,p?V(m(e)):$)},Q.jsxs=function(e,o,u,g,v){var p=1e4>L.recentlyCreatedOwnerStacks++;return h(e,o,u,!0,g,v,p?Error("react-stack-top-frame"):q,p?V(m(e)):$)}}()),Q}var ke;function Te(){return ke||(ke=1,process.env.NODE_ENV==="production"?oe.exports=pe():oe.exports=_e()),oe.exports}var he=Te();const k=()=>{},ye=t.createContext({ref:null,watch:null,actions:{reset:k,setValue:k,getValues:k,setError:k,clearError:k,clearErrors:k,checkValidity:k,getNumberFields:k,getFieldValidity:k,getDefaultValues:k,setFieldStateProperty:k,getControlledFields:k},registerController:k,registerHookWatcher:k,lastReloadedAt:k,registerOnchange:k,loadFormValues:k,getWatchValue:k}),fe=()=>t.useContext(ye),Oe=({id:a,control:c,method:l,action:m,children:i,onSubmit:f=()=>{},onInput:C=()=>{},onChange:b=()=>{},onReset:_=()=>{},numberFields:A=[],className:h,...E})=>(t.useEffect(()=>c.registerOnchange(b),[b]),he.jsx(ye.Provider,{value:c,children:he.jsx("form",{id:a,ref:c.ref,action:m,method:l,className:h,onInput:C,onSubmit:d=>{l||d.preventDefault();const S=c.loadFormValues();f(S)},onChange:d=>{const S=d.target.name;c.actions.getControlledFields()[S]||c.actions.setValue(S,d.target.value)},onReset:d=>{c.actions.reset(),_(d)},...E,children:i},c.lastReloadedAt)})),Ce=({control:a,name:c,compute:l})=>{const{getWatchValue:m,registerHookWatcher:i}=a||fe(),f=m({name:c,compute:l}),[C,b]=t.useState(f);return t.useEffect(()=>i({name:c,compute:l,setValue:b,computeValue:f}),[]),C},ve=({name:a,defaultValue:c})=>{const{actions:l,registerController:m}=fe(),i=t.useRef(),f=l.getDefaultValues()[a]||c,[C,b]=t.useState(f),_=Ce({name:`fieldStates.${a}.customState`}),A=t.useCallback(E=>{l.setFieldStateProperty(a,"customState",E)},[]),h=t.useCallback((E,{shouldDirty:d=!0,shouldOnChange:S=!0}={})=>{l.setValue(a,E,{shouldDirty:d,shouldOnChange:S}),b(E)},[l.setValue]);return t.useEffect(()=>m(a,b),[]),{ref:i,name:a,defaultValue:f,value:C,onChange:h,customState:_,setCustomState:A}},Ae=({name:a,defaultValue:c,render:l=({ref:m,name:i,defaultValue:f,value:C,onChange:b,customState:_,setCustomState:A})=>null})=>{const m=ve({name:a,defaultValue:c});return l(m)},Pe=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],Se=a=>{typeof a.setCustomValidity=="function"&&a.setCustomValidity("");let c=a.validity;console.log(a.valid);let l=Pe.find(m=>c[m]);if(l)return{type:l,message:a.validationMessage}},Fe=()=>{const[,a]=t.useState({});return t.useCallback(()=>a({}),[])},je=()=>{const[a,c]=t.useState(),l=t.useCallback(()=>c(new Date().toString()),[]);return[a,l]},xe=[],Ve={},Ne=({numberFields:a=xe,defaultValues:c=Ve,shouldUnRegister:l=!1,shouldConvertNumber:m=!1}={})=>{const i=Fe(),[f,C]=je(),b=t.useRef(),_=t.useRef(()=>{}),A=t.useRef(!1),h=t.useRef(c),E=t.useRef(c),d=t.useRef(new Set),S=t.useRef(a),w=t.useRef({}),P=t.useRef([]),D=t.useRef([]),W=t.useRef({}),H=t.useRef(0),M=t.useRef({}),K=t.useCallback(()=>{M.current=Object.keys(E.current).reduce((r,n)=>({...r,[n]:{isDirty:!1,isTouched:!1,customState:null}}),{})},[]),ee=t.useCallback((r={})=>{E.current={...E.current,...r},h.current={...E.current},H.current=0,A.current=!1,W.current={},S.current=a,d.current=new Set,D.current=[],P.current=[],w.current={},K(),a.length>0&&(m=!0),C()},[]),re=t.useCallback(()=>!!Object.values(V()).find(r=>r.isDirty),[]),ae=t.useCallback(()=>!!Object.values(Y()).find(r=>!!r),[]),B=t.useCallback(r=>Se(r.target),[]),x=t.useCallback(r=>r?h.current[r]:h.current,[]),te=t.useCallback(()=>E.current,[]),L=t.useCallback(()=>S.current,[]),Y=t.useCallback(()=>W.current,[]),ne=t.useCallback(()=>w.current,[]),V=t.useCallback(()=>M.current,[]),O=t.useCallback(({name:r,compute:n})=>{var y;if(typeof n=="function")return n(x());if(Array.isArray(r)){const F={};return r.forEach(j=>{F[j]=O({name:j})}),F}if(r==="isDirty")return re();if(r==="isError")return ae();if(r==="values")return{...x()};if(r==="errors")return{...Y()};if(r==="fieldStates")return{...V()};const s=r.split(".");if(s.length>1){const F=s[1];if(s[0]==="errors")return s.length===2?Y()[F]:Y();if(s[0]==="fieldStates"){if(s.length===2)return{...V()[F]};const j=s[2];return(y=V()[F])==null?void 0:y[j]}}return x()[r]},[]),U=r=>{D.current.forEach(n=>{let s;if(typeof n.name=="string"?s=r(n):n.name.forEach(y=>{s||(s=r({...n,name:y}))}),s){const y=O(n);n.setValue(y)}})},q=r=>{const n=({name:s})=>s==="isError"||s==="errors"||(r?s===`errors.${r}`:s.includes("errors"));[...d.current].forEach(s=>{n({name:s})&&i()}),U(n)},$=t.useCallback((r,n)=>{W.current[r]=n,q(r)},[]),I=t.useCallback(r=>{W.current[r]=null,q(r)},[]),e=t.useCallback(()=>{W.current={},q()},[]),o=t.useCallback(r=>{const n=Se(r.target);n?$(r.target.name,n):I(r.target.name)},[$,I]),u=t.useCallback((r,n,s)=>{const y=M.current[r];if(y[n]!==s){M.current[r]={...y,[n]:s};const j=({name:N})=>N==="fieldStates"||N===`fieldStates.${r}`||N===`fieldStates.${r}.${n}`;if([...d.current].forEach(N=>{j({name:N})&&i()}),n==="customState"){P.current.forEach(({name:N,setValue:se})=>{N.includes(r)&&se(s)});return}U(j)}}),g=t.useCallback((r,n,{shouldDirty:s=!0,shouldOnChange:y=!0}={})=>{m&&S.current.includes(r)&&(n=Number(n)||void 0);const F=h.current[r],j=M.current[r],se=w.current[r];if(u(r,"isTouched",!0),s){const X=n!==E.current[r];j.isDirty!==X&&u(r,"isDirty",X)}const ce=re(),de=A.current,me=n!==F;d.current.has(r)&&me&&i(),d.current.has("values")&&i(),d.current.has("isDirty")&&ce!==de&&i(),h.current[r]=n,se&&se(n),A.current=ce,U(X=>{const{name:le,compute:be,computeValue:Ee}=X;if(be){const ie=be(x());return ie!==Ee&&(X.computeValue=ie),ie!==Ee}if(le==="values")return!0;if(le==="isDirty")return ce!==de;if(le===r)return me}),y&&_.current(r,n,h.current)},[u]),v=t.useCallback(r=>{if(typeof r=="string")return d.current.add(r),O({name:r});if(Array.isArray(r)){const n={};return r.forEach(s=>{d.current.add(s),n[s]=O({name:s})}),n}return O({name:r})},[]),p=t.useCallback((r,n)=>{const s=w.current;return s[r]=n,()=>{l&&(delete s[r],delete h.current[r])}},[]),J=t.useCallback(r=>(_.current=r,()=>_.current=()=>{}),[]),z=t.useCallback(r=>{var s;const n=H.current;return(s=r.name)!=null&&s.includes("customState")?P.current.push({key:n,...r}):D.current.push({key:n,...r}),H.current++,()=>{D.current=D.current.filter(y=>y.key!==n),P.current=P.current.filter(y=>y.key!==n)}},[]),R=t.useCallback(()=>{const r=Object.fromEntries(new FormData(b.current)),n=w.current;return Object.keys(n).map(s=>{r[s]=h.current[s]}),m&&S.current.forEach(s=>r.hasOwnProperty(s)&&(r[s]=Number(r[s])||0)),r},[]),T=t.useMemo(()=>({reset:ee,setValue:g,getValues:x,setError:$,clearError:I,clearErrors:e,checkValidity:o,getNumberFields:L,getFieldValidity:B,getDefaultValues:te,setFieldStateProperty:u,getControlledFields:ne}),[ee,g,x,$,I,e,o,L,B,te,u,ne]),G=t.useMemo(()=>({ref:b,watch:v,actions:T,registerController:p,registerHookWatcher:z,lastReloadedAt:f,registerOnchange:J,loadFormValues:R,getWatchValue:O}),[b,v,T,p,z,f,J,R,O]),ue=t.useMemo(()=>({control:G,actions:T,watch:v}),[f,G,T,v]);return t.useLayoutEffect(()=>{if([...b.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&E.current[n.name]&&(n.defaultValue=E.current[n.name]),n.type==="number"&&!S.current.includes(n.name)&&S.current.push(n.name)}),b.current){const n=R();h.current={...n},E.current={...n}}},[f]),t.useLayoutEffect(()=>{K()},[]),ue};exports.Controller=Ae;exports.Form=Oe;exports.useController=ve;exports.useForm=Ne;exports.useFormContext=fe;exports.useWatch=Ce;
@@ -50,7 +50,7 @@ function xe() {
50
50
  return e.$$typeof === ne ? null : e.displayName || e.name || null;
51
51
  if (typeof e == "string") return e;
52
52
  switch (e) {
53
- case x:
53
+ case j:
54
54
  return "Fragment";
55
55
  case Y:
56
56
  return "Profiler";
@@ -108,7 +108,7 @@ function xe() {
108
108
  }
109
109
  }
110
110
  function m(e) {
111
- if (e === x) return "<>";
111
+ if (e === j) return "<>";
112
112
  if (typeof e == "object" && e !== null && e.$$typeof === X)
113
113
  return "<...>";
114
114
  try {
@@ -150,7 +150,7 @@ function xe() {
150
150
  "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."
151
151
  )), e = this.props.ref, e !== void 0 ? e : null;
152
152
  }
153
- function j(e, o, c, b, _, T, z, G) {
153
+ function C(e, o, c, b, _, T, z, G) {
154
154
  return c = T.ref, e = {
155
155
  $$typeof: y,
156
156
  type: e,
@@ -221,7 +221,7 @@ React keys must be passed directly to JSX without using spread:
221
221
  return R && E(
222
222
  c,
223
223
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
224
- ), j(
224
+ ), C(
225
225
  e,
226
226
  R,
227
227
  T,
@@ -235,7 +235,7 @@ React keys must be passed directly to JSX without using spread:
235
235
  function g(e) {
236
236
  typeof e == "object" && e !== null && e.$$typeof === y && e._store && (e._store.validated = 1);
237
237
  }
238
- var d = Ae, y = Symbol.for("react.transitional.element"), D = Symbol.for("react.portal"), x = Symbol.for("react.fragment"), W = Symbol.for("react.strict_mode"), Y = Symbol.for("react.profiler"), B = Symbol.for("react.consumer"), $ = Symbol.for("react.context"), ee = Symbol.for("react.forward_ref"), re = Symbol.for("react.suspense"), te = Symbol.for("react.suspense_list"), ae = Symbol.for("react.memo"), X = Symbol.for("react.lazy"), V = Symbol.for("react.activity"), ne = Symbol.for("react.client.reference"), U = d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, I = Object.prototype.hasOwnProperty, oe = Array.isArray, N = console.createTask ? console.createTask : function() {
238
+ var d = Ae, y = Symbol.for("react.transitional.element"), D = Symbol.for("react.portal"), j = Symbol.for("react.fragment"), W = Symbol.for("react.strict_mode"), Y = Symbol.for("react.profiler"), B = Symbol.for("react.consumer"), $ = Symbol.for("react.context"), ee = Symbol.for("react.forward_ref"), re = Symbol.for("react.suspense"), te = Symbol.for("react.suspense_list"), ae = Symbol.for("react.memo"), X = Symbol.for("react.lazy"), V = Symbol.for("react.activity"), ne = Symbol.for("react.client.reference"), U = d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, I = Object.prototype.hasOwnProperty, oe = Array.isArray, N = console.createTask ? console.createTask : function() {
239
239
  return null;
240
240
  };
241
241
  d = {
@@ -247,7 +247,7 @@ React keys must be passed directly to JSX without using spread:
247
247
  d,
248
248
  f
249
249
  )(), M = N(m(f)), L = {};
250
- K.Fragment = x, K.jsx = function(e, o, c, b, _) {
250
+ K.Fragment = j, K.jsx = function(e, o, c, b, _) {
251
251
  var T = 1e4 > U.recentlyCreatedOwnerStacks++;
252
252
  return S(
253
253
  e,
@@ -317,7 +317,7 @@ const h = () => {
317
317
  },
318
318
  onReset: O = () => {
319
319
  },
320
- numberFields: j = [],
320
+ numberFields: C = [],
321
321
  className: S,
322
322
  ...g
323
323
  }) => (Ee(() => u.registerOnchange(E), [E]), /* @__PURE__ */ ke.jsx(Te.Provider, { value: u, children: /* @__PURE__ */ ke.jsx(
@@ -349,7 +349,7 @@ const h = () => {
349
349
  const { getWatchValue: m, registerHookWatcher: i } = s || Oe(), f = m({ name: u, compute: l }), [v, E] = ue(f);
350
350
  return Ee(() => i({ name: u, compute: l, setValue: E, computeValue: f }), []), v;
351
351
  }, Ne = ({ name: s, defaultValue: u }) => {
352
- const { actions: l, registerController: m } = Oe(), i = k(), f = l.getDefaultValues()[s] || u, [v, E] = ue(f), O = Ve({ name: `fieldStates.${s}.customState` }), j = a((g) => {
352
+ const { actions: l, registerController: m } = Oe(), i = k(), f = l.getDefaultValues()[s] || u, [v, E] = ue(f), O = Ve({ name: `fieldStates.${s}.customState` }), C = a((g) => {
353
353
  l.setFieldStateProperty(s, "customState", g);
354
354
  }, []), S = a(
355
355
  (g, { shouldDirty: d = !0, shouldOnChange: y = !0 } = {}) => {
@@ -357,11 +357,11 @@ const h = () => {
357
357
  },
358
358
  [l.setValue]
359
359
  );
360
- return Ee(() => m(s, E), []), { ref: i, name: s, defaultValue: f, value: v, onChange: S, customState: O, setCustomState: j };
360
+ return Ee(() => m(s, E), []), { ref: i, name: s, defaultValue: f, value: v, onChange: S, customState: O, setCustomState: C };
361
361
  }, Ue = ({
362
362
  name: s,
363
363
  defaultValue: u,
364
- render: l = ({ ref: m, name: i, defaultValue: f, value: v, onChange: E, customState: O, setCustomState: j }) => null
364
+ render: l = ({ ref: m, name: i, defaultValue: f, value: v, onChange: E, customState: O, setCustomState: C }) => null
365
365
  }) => {
366
366
  const m = Ne({ name: s, defaultValue: u });
367
367
  return l(m);
@@ -395,21 +395,21 @@ const h = () => {
395
395
  shouldConvertNumber: m = !1
396
396
  } = {}) => {
397
397
  const i = De(), [f, v] = We(), E = k(), O = k(() => {
398
- }), j = k(!1), S = k(u), g = k(u), d = k(/* @__PURE__ */ new Set()), y = k(s), D = k({}), x = k([]), W = k([]), Y = k({}), B = k(0), $ = k({}), ee = a(() => {
398
+ }), C = k(!1), S = k(u), g = k(u), d = k(/* @__PURE__ */ new Set()), y = k(s), D = k({}), j = k([]), W = k([]), Y = k({}), B = k(0), $ = k({}), ee = a(() => {
399
399
  $.current = Object.keys(g.current).reduce(
400
400
  (r, t) => ({ ...r, [t]: { isDirty: !1, isTouched: !1, customState: null } }),
401
401
  {}
402
402
  );
403
403
  }, []), re = a((r = {}) => {
404
- g.current = { ...g.current, ...r }, S.current = { ...g.current }, B.current = 0, j.current = !1, Y.current = {}, y.current = s, d.current = /* @__PURE__ */ new Set(), W.current = [], x.current = [], D.current = {}, ee(), s.length > 0 && (m = !0), v();
404
+ g.current = { ...g.current, ...r }, S.current = { ...g.current }, B.current = 0, C.current = !1, Y.current = {}, y.current = s, d.current = /* @__PURE__ */ new Set(), W.current = [], j.current = [], D.current = {}, ee(), s.length > 0 && (m = !0), v();
405
405
  }, []), te = a(() => !!Object.values(N()).find((r) => r.isDirty), []), ae = a(() => !!Object.values(I()).find((r) => !!r), []), X = a((r) => _e(r.target), []), V = a((r) => r ? S.current[r] : S.current, []), ne = a(() => g.current, []), U = a(() => y.current, []), I = a(() => Y.current, []), oe = a(() => D.current, []), N = a(() => $.current, []), P = a(({ name: r, compute: t }) => {
406
406
  var p;
407
407
  if (typeof t == "function") return t(V());
408
408
  if (Array.isArray(r)) {
409
- const C = {};
409
+ const x = {};
410
410
  return r.forEach((F) => {
411
- C[F] = P({ name: F });
412
- }), C;
411
+ x[F] = P({ name: F });
412
+ }), x;
413
413
  }
414
414
  if (r === "isDirty") return te();
415
415
  if (r === "isError") return ae();
@@ -418,13 +418,13 @@ const h = () => {
418
418
  if (r === "fieldStates") return { ...N() };
419
419
  const n = r.split(".");
420
420
  if (n.length > 1) {
421
- const C = n[1];
421
+ const x = n[1];
422
422
  if (n[0] === "errors")
423
- return n.length === 2 ? { ...I()[C] } : { ...I()[C] };
423
+ return n.length === 2 ? I()[x] : I();
424
424
  if (n[0] === "fieldStates") {
425
- if (n.length === 2) return { ...N()[C] };
425
+ if (n.length === 2) return { ...N()[x] };
426
426
  const F = n[2];
427
- return (p = N()[C]) == null ? void 0 : p[F];
427
+ return (p = N()[x]) == null ? void 0 : p[F];
428
428
  }
429
429
  }
430
430
  return V()[r];
@@ -463,7 +463,7 @@ const h = () => {
463
463
  if ([...d.current].forEach((w) => {
464
464
  F({ name: w }) && i();
465
465
  }), t === "customState") {
466
- x.current.forEach(({ name: w, setValue: se }) => {
466
+ j.current.forEach(({ name: w, setValue: se }) => {
467
467
  w.includes(r) && se(n);
468
468
  });
469
469
  return;
@@ -473,13 +473,13 @@ const h = () => {
473
473
  }), b = a(
474
474
  (r, t, { shouldDirty: n = !0, shouldOnChange: p = !0 } = {}) => {
475
475
  m && y.current.includes(r) && (t = Number(t) || void 0);
476
- const C = S.current[r], F = $.current[r], se = D.current[r];
476
+ const x = S.current[r], F = $.current[r], se = D.current[r];
477
477
  if (c(r, "isTouched", !0), n) {
478
478
  const Z = t !== g.current[r];
479
479
  F.isDirty !== Z && c(r, "isDirty", Z);
480
480
  }
481
- const ie = te(), ge = j.current, Re = t !== C;
482
- d.current.has(r) && Re && i(), d.current.has("values") && i(), d.current.has("isDirty") && ie !== ge && i(), S.current[r] = t, se && se(t), j.current = ie, q((Z) => {
481
+ const ie = te(), ge = C.current, Re = t !== x;
482
+ d.current.has(r) && Re && i(), d.current.has("values") && i(), d.current.has("isDirty") && ie !== ge && i(), S.current[r] = t, se && se(t), C.current = ie, q((Z) => {
483
483
  const { name: fe, compute: be, computeValue: he } = Z;
484
484
  if (be) {
485
485
  const de = be(V());
@@ -510,8 +510,8 @@ const h = () => {
510
510
  }), []), G = a((r) => {
511
511
  var n;
512
512
  const t = B.current;
513
- return (n = r.name) != null && n.includes("customState") ? x.current.push({ key: t, ...r }) : W.current.push({ key: t, ...r }), B.current++, () => {
514
- W.current = W.current.filter((p) => p.key !== t), x.current = x.current.filter((p) => p.key !== t);
513
+ return (n = r.name) != null && n.includes("customState") ? j.current.push({ key: t, ...r }) : W.current.push({ key: t, ...r }), B.current++, () => {
514
+ W.current = W.current.filter((p) => p.key !== t), j.current = j.current.filter((p) => p.key !== t);
515
515
  };
516
516
  }, []), R = a(() => {
517
517
  const r = Object.fromEntries(new FormData(E.current)), t = D.current;
@@ -589,5 +589,6 @@ export {
589
589
  Le as Form,
590
590
  Ne as useController,
591
591
  qe as useForm,
592
+ Oe as useFormContext,
592
593
  Ve as useWatch
593
594
  };
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var de;function Te(){if(de)return Z;de=1;var a=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function l(m,f,i){var C=null;if(i!==void 0&&(C=""+i),f.key!==void 0&&(C=""+f.key),"key"in f){i={};for(var b in f)b!=="key"&&(i[b]=f[b])}else i=f;return f=i.ref,{$$typeof:a,type:m,key:C,ref:f!==void 0?f:null,props:i}}return Z.Fragment=u,Z.jsx=l,Z.jsxs=l,Z}var Q={};/**
9
+ */var me;function Te(){if(me)return Z;me=1;var a=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function l(m,f,i){var C=null;if(i!==void 0&&(C=""+i),f.key!==void 0&&(C=""+f.key),"key"in f){i={};for(var b in f)b!=="key"&&(i[b]=f[b])}else i=f;return f=i.ref,{$$typeof:a,type:m,key:C,ref:f!==void 0?f:null,props:i}}return Z.Fragment=u,Z.jsx=l,Z.jsxs=l,Z}var Q={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -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 me;function _e(){return me||(me=1,process.env.NODE_ENV!=="production"&&function(){function a(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case F:return"Fragment";case M:return"Profiler";case W:return"StrictMode";case re:return"Suspense";case ne:return"SuspenseList";case x:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case D:return"Portal";case Y:return(e.displayName||"Context")+".Provider";case K:return(e._context.displayName||"Context")+".Consumer";case te:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ce:return o=e.displayName||null,o!==null?o:a(e.type)||"Memo";case q:o=e._payload,e=e._init;try{return a(e(o))}catch{}}return null}function u(e){return""+e}function l(e){try{u(e);var o=!1}catch{o=!0}if(o){o=console;var c=o.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return c.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),u(e)}}function m(e){if(e===F)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===q)return"<...>";try{var o=a(e);return o?"<"+o+">":"<...>"}catch{return"<...>"}}function f(){var e=J.A;return e===null?null:e.getOwner()}function i(){return Error("react-stack-top-frame")}function C(e){if(I.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function b(e,o){function c(){A||(A=!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)",o))}c.isReactWarning=!0,Object.defineProperty(e,"key",{get:c,configurable:!0})}function _(){var e=a(this.type);return z[e]||(z[e]=!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.")),e=this.props.ref,e!==void 0?e:null}function j(e,o,c,g,p,v,H,B){return c=v.ref,e={$$typeof:S,type:e,key:o,props:v,_owner:p},(c!==void 0?c:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:_}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function h(e,o,c,g,p,v,H,B){var R=o.children;if(R!==void 0)if(g)if(oe(R)){for(g=0;g<R.length;g++)E(R[g]);Object.freeze&&Object.freeze(R)}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 E(R);if(I.call(o,"key")){R=a(e);var O=Object.keys(o).filter(function(ue){return ue!=="key"});g=0<O.length?"{key: someKey, "+O.join(": ..., ")+": ...}":"{key: someKey}",U[R+g]||(O=0<O.length?"{"+O.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var be;function _e(){return be||(be=1,process.env.NODE_ENV!=="production"&&function(){function a(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case M:return"Profiler";case W:return"StrictMode";case re:return"Suspense";case ne:return"SuspenseList";case x:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case D:return"Portal";case Y:return(e.displayName||"Context")+".Provider";case K:return(e._context.displayName||"Context")+".Consumer";case te:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ue:return o=e.displayName||null,o!==null?o:a(e.type)||"Memo";case q:o=e._payload,e=e._init;try{return a(e(o))}catch{}}return null}function u(e){return""+e}function l(e){try{u(e);var o=!1}catch{o=!0}if(o){o=console;var c=o.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return c.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),u(e)}}function m(e){if(e===j)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===q)return"<...>";try{var o=a(e);return o?"<"+o+">":"<...>"}catch{return"<...>"}}function f(){var e=J.A;return e===null?null:e.getOwner()}function i(){return Error("react-stack-top-frame")}function C(e){if(I.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function b(e,o){function c(){A||(A=!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)",o))}c.isReactWarning=!0,Object.defineProperty(e,"key",{get:c,configurable:!0})}function _(){var e=a(this.type);return z[e]||(z[e]=!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.")),e=this.props.ref,e!==void 0?e:null}function P(e,o,c,g,p,v,H,B){return c=v.ref,e={$$typeof:S,type:e,key:o,props:v,_owner:p},(c!==void 0?c:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:_}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function h(e,o,c,g,p,v,H,B){var R=o.children;if(R!==void 0)if(g)if(oe(R)){for(g=0;g<R.length;g++)E(R[g]);Object.freeze&&Object.freeze(R)}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 E(R);if(I.call(o,"key")){R=a(e);var O=Object.keys(o).filter(function(le){return le!=="key"});g=0<O.length?"{key: someKey, "+O.join(": ..., ")+": ...}":"{key: someKey}",U[R+g]||(O=0<O.length?"{"+O.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} />`,g,R,O,R),U[R+g]=!0)}if(R=null,c!==void 0&&(l(c),R=""+c),C(o)&&(l(o.key),R=""+o.key),"key"in o){c={};for(var X in o)X!=="key"&&(c[X]=o[X])}else c=o;return R&&b(c,typeof e=="function"?e.displayName||e.name||"Unknown":e),j(e,R,v,p,f(),c,H,B)}function E(e){typeof e=="object"&&e!==null&&e.$$typeof===S&&e._store&&(e._store.validated=1)}var d=r,S=Symbol.for("react.transitional.element"),D=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),K=Symbol.for("react.consumer"),Y=Symbol.for("react.context"),te=Symbol.for("react.forward_ref"),re=Symbol.for("react.suspense"),ne=Symbol.for("react.suspense_list"),ce=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),se=Symbol.for("react.client.reference"),J=d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=Object.prototype.hasOwnProperty,oe=Array.isArray,N=console.createTask?console.createTask:function(){return null};d={"react-stack-bottom-frame":function(e){return e()}};var A,z={},G=d["react-stack-bottom-frame"].bind(d,i)(),L=N(m(i)),U={};Q.Fragment=F,Q.jsx=function(e,o,c,g,p){var v=1e4>J.recentlyCreatedOwnerStacks++;return h(e,o,c,!1,g,p,v?Error("react-stack-top-frame"):G,v?N(m(e)):L)},Q.jsxs=function(e,o,c,g,p){var v=1e4>J.recentlyCreatedOwnerStacks++;return h(e,o,c,!0,g,p,v?Error("react-stack-top-frame"):G,v?N(m(e)):L)}}()),Q}var be;function Oe(){return be||(be=1,process.env.NODE_ENV==="production"?ee.exports=Te():ee.exports=_e()),ee.exports}var Ee=Oe();const k=()=>{},Re=r.createContext({ref:null,watch:null,actions:{reset:k,setValue:k,getValues:k,setError:k,clearError:k,clearErrors:k,checkValidity:k,getNumberFields:k,getFieldValidity:k,getDefaultValues:k,setFieldStateProperty:k,getControlledFields:k},registerController:k,registerHookWatcher:k,lastReloadedAt:k,registerOnchange:k,loadFormValues:k,getWatchValue:k}),ge=()=>r.useContext(Re),Ae=({id:a,control:u,method:l,action:m,children:f,onSubmit:i=()=>{},onInput:C=()=>{},onChange:b=()=>{},onReset:_=()=>{},numberFields:j=[],className:h,...E})=>(r.useEffect(()=>u.registerOnchange(b),[b]),Ee.jsx(Re.Provider,{value:u,children:Ee.jsx("form",{id:a,ref:u.ref,action:m,method:l,className:h,onInput:C,onSubmit:d=>{l||d.preventDefault();const S=u.loadFormValues();i(S)},onChange:d=>{const S=d.target.name;u.actions.getControlledFields()[S]||u.actions.setValue(S,d.target.value)},onReset:d=>{u.actions.reset(),_(d)},...E,children:f},u.lastReloadedAt)})),ke=({control:a,name:u,compute:l})=>{const{getWatchValue:m,registerHookWatcher:f}=a||ge(),i=m({name:u,compute:l}),[C,b]=r.useState(i);return r.useEffect(()=>f({name:u,compute:l,setValue:b,computeValue:i}),[]),C},he=({name:a,defaultValue:u})=>{const{actions:l,registerController:m}=ge(),f=r.useRef(),i=l.getDefaultValues()[a]||u,[C,b]=r.useState(i),_=ke({name:`fieldStates.${a}.customState`}),j=r.useCallback(E=>{l.setFieldStateProperty(a,"customState",E)},[]),h=r.useCallback((E,{shouldDirty:d=!0,shouldOnChange:S=!0}={})=>{l.setValue(a,E,{shouldDirty:d,shouldOnChange:S}),b(E)},[l.setValue]);return r.useEffect(()=>m(a,b),[]),{ref:f,name:a,defaultValue:i,value:C,onChange:h,customState:_,setCustomState:j}},Pe=({name:a,defaultValue:u,render:l=({ref:m,name:f,defaultValue:i,value:C,onChange:b,customState:_,setCustomState:j})=>null})=>{const m=he({name:a,defaultValue:u});return l(m)},je=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],Se=a=>{typeof a.setCustomValidity=="function"&&a.setCustomValidity("");let u=a.validity;console.log(a.valid);let l=je.find(m=>u[m]);if(l)return{type:l,message:a.validationMessage}},Fe=()=>{const[,a]=r.useState({});return r.useCallback(()=>a({}),[])},Ve=()=>{const[a,u]=r.useState(),l=r.useCallback(()=>u(new Date().toString()),[]);return[a,l]},xe=[],Ne={},we=({numberFields:a=xe,defaultValues:u=Ne,shouldUnRegister:l=!1,shouldConvertNumber:m=!1}={})=>{const f=Fe(),[i,C]=Ve(),b=r.useRef(),_=r.useRef(()=>{}),j=r.useRef(!1),h=r.useRef(u),E=r.useRef(u),d=r.useRef(new Set),S=r.useRef(a),D=r.useRef({}),F=r.useRef([]),W=r.useRef([]),M=r.useRef({}),K=r.useRef(0),Y=r.useRef({}),te=r.useCallback(()=>{Y.current=Object.keys(E.current).reduce((t,n)=>({...t,[n]:{isDirty:!1,isTouched:!1,customState:null}}),{})},[]),re=r.useCallback((t={})=>{E.current={...E.current,...t},h.current={...E.current},K.current=0,j.current=!1,M.current={},S.current=a,d.current=new Set,W.current=[],F.current=[],D.current={},te(),a.length>0&&(m=!0),C()},[]),ne=r.useCallback(()=>!!Object.values(N()).find(t=>t.isDirty),[]),ce=r.useCallback(()=>!!Object.values(I()).find(t=>!!t),[]),q=r.useCallback(t=>Se(t.target),[]),x=r.useCallback(t=>t?h.current[t]:h.current,[]),se=r.useCallback(()=>E.current,[]),J=r.useCallback(()=>S.current,[]),I=r.useCallback(()=>M.current,[]),oe=r.useCallback(()=>D.current,[]),N=r.useCallback(()=>Y.current,[]),A=r.useCallback(({name:t,compute:n})=>{var y;if(typeof n=="function")return n(x());if(Array.isArray(t)){const P={};return t.forEach(V=>{P[V]=A({name:V})}),P}if(t==="isDirty")return ne();if(t==="isError")return ce();if(t==="values")return{...x()};if(t==="errors")return{...I()};if(t==="fieldStates")return{...N()};const s=t.split(".");if(s.length>1){const P=s[1];if(s[0]==="errors")return s.length===2?{...I()[P]}:{...I()[P]};if(s[0]==="fieldStates"){if(s.length===2)return{...N()[P]};const V=s[2];return(y=N()[P])==null?void 0:y[V]}}return x()[t]},[]),z=t=>{W.current.forEach(n=>{let s;if(typeof n.name=="string"?s=t(n):n.name.forEach(y=>{s||(s=t({...n,name:y}))}),s){const y=A(n);n.setValue(y)}})},G=t=>{const n=({name:s})=>s==="isError"||s==="errors"||(t?s===`errors.${t}`:s.includes("errors"));[...d.current].forEach(s=>{n({name:s})&&f()}),z(n)},L=r.useCallback((t,n)=>{M.current[t]=n,G(t)},[]),U=r.useCallback(t=>{M.current[t]=null,G(t)},[]),e=r.useCallback(()=>{M.current={},G()},[]),o=r.useCallback(t=>{const n=Se(t.target);n?L(t.target.name,n):U(t.target.name)},[L,U]),c=r.useCallback((t,n,s)=>{const y=Y.current[t];if(y[n]!==s){Y.current[t]={...y,[n]:s};const V=({name:w})=>w==="fieldStates"||w===`fieldStates.${t}`||w===`fieldStates.${t}.${n}`;if([...d.current].forEach(w=>{V({name:w})&&f()}),n==="customState"){F.current.forEach(({name:w,setValue:ae})=>{w.includes(t)&&ae(s)});return}z(V)}}),g=r.useCallback((t,n,{shouldDirty:s=!0,shouldOnChange:y=!0}={})=>{m&&S.current.includes(t)&&(n=Number(n)||void 0);const P=h.current[t],V=Y.current[t],ae=D.current[t];if(c(t,"isTouched",!0),s){const $=n!==E.current[t];V.isDirty!==$&&c(t,"isDirty",$)}const le=ne(),ye=j.current,Ce=n!==P;d.current.has(t)&&Ce&&f(),d.current.has("values")&&f(),d.current.has("isDirty")&&le!==ye&&f(),h.current[t]=n,ae&&ae(n),j.current=le,z($=>{const{name:fe,compute:pe,computeValue:ve}=$;if(pe){const ie=pe(x());return ie!==ve&&($.computeValue=ie),ie!==ve}if(fe==="values")return!0;if(fe==="isDirty")return le!==ye;if(fe===t)return Ce}),y&&_.current(t,n,h.current)},[c]),p=r.useCallback(t=>{if(typeof t=="string")return d.current.add(t),A({name:t});if(Array.isArray(t)){const n={};return t.forEach(s=>{d.current.add(s),n[s]=A({name:s})}),n}return A({name:t})},[]),v=r.useCallback((t,n)=>{const s=D.current;return s[t]=n,()=>{l&&(delete s[t],delete h.current[t])}},[]),H=r.useCallback(t=>(_.current=t,()=>_.current=()=>{}),[]),B=r.useCallback(t=>{var s;const n=K.current;return(s=t.name)!=null&&s.includes("customState")?F.current.push({key:n,...t}):W.current.push({key:n,...t}),K.current++,()=>{W.current=W.current.filter(y=>y.key!==n),F.current=F.current.filter(y=>y.key!==n)}},[]),R=r.useCallback(()=>{const t=Object.fromEntries(new FormData(b.current)),n=D.current;return Object.keys(n).map(s=>{t[s]=h.current[s]}),m&&S.current.forEach(s=>t.hasOwnProperty(s)&&(t[s]=Number(t[s])||0)),t},[]),O=r.useMemo(()=>({reset:re,setValue:g,getValues:x,setError:L,clearError:U,clearErrors:e,checkValidity:o,getNumberFields:J,getFieldValidity:q,getDefaultValues:se,setFieldStateProperty:c,getControlledFields:oe}),[re,g,x,L,U,e,o,J,q,se,c,oe]),X=r.useMemo(()=>({ref:b,watch:p,actions:O,registerController:v,registerHookWatcher:B,lastReloadedAt:i,registerOnchange:H,loadFormValues:R,getWatchValue:A}),[b,p,O,v,B,i,H,R,A]),ue=r.useMemo(()=>({control:X,actions:O,watch:p}),[i,X,O,p]);return r.useLayoutEffect(()=>{if([...b.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&E.current[n.name]&&(n.defaultValue=E.current[n.name]),n.type==="number"&&!S.current.includes(n.name)&&S.current.push(n.name)}),b.current){const n=R();h.current={...n},E.current={...n}}},[i]),r.useLayoutEffect(()=>{te()},[]),ue};T.Controller=Pe,T.Form=Ae,T.useController=he,T.useForm=we,T.useWatch=ke,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
22
+ <%s key={someKey} {...props} />`,g,R,O,R),U[R+g]=!0)}if(R=null,c!==void 0&&(l(c),R=""+c),C(o)&&(l(o.key),R=""+o.key),"key"in o){c={};for(var X in o)X!=="key"&&(c[X]=o[X])}else c=o;return R&&b(c,typeof e=="function"?e.displayName||e.name||"Unknown":e),P(e,R,v,p,f(),c,H,B)}function E(e){typeof e=="object"&&e!==null&&e.$$typeof===S&&e._store&&(e._store.validated=1)}var d=r,S=Symbol.for("react.transitional.element"),D=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),K=Symbol.for("react.consumer"),Y=Symbol.for("react.context"),te=Symbol.for("react.forward_ref"),re=Symbol.for("react.suspense"),ne=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),se=Symbol.for("react.client.reference"),J=d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=Object.prototype.hasOwnProperty,oe=Array.isArray,N=console.createTask?console.createTask:function(){return null};d={"react-stack-bottom-frame":function(e){return e()}};var A,z={},G=d["react-stack-bottom-frame"].bind(d,i)(),L=N(m(i)),U={};Q.Fragment=j,Q.jsx=function(e,o,c,g,p){var v=1e4>J.recentlyCreatedOwnerStacks++;return h(e,o,c,!1,g,p,v?Error("react-stack-top-frame"):G,v?N(m(e)):L)},Q.jsxs=function(e,o,c,g,p){var v=1e4>J.recentlyCreatedOwnerStacks++;return h(e,o,c,!0,g,p,v?Error("react-stack-top-frame"):G,v?N(m(e)):L)}}()),Q}var Ee;function Oe(){return Ee||(Ee=1,process.env.NODE_ENV==="production"?ee.exports=Te():ee.exports=_e()),ee.exports}var Re=Oe();const k=()=>{},ge=r.createContext({ref:null,watch:null,actions:{reset:k,setValue:k,getValues:k,setError:k,clearError:k,clearErrors:k,checkValidity:k,getNumberFields:k,getFieldValidity:k,getDefaultValues:k,setFieldStateProperty:k,getControlledFields:k},registerController:k,registerHookWatcher:k,lastReloadedAt:k,registerOnchange:k,loadFormValues:k,getWatchValue:k}),ce=()=>r.useContext(ge),Ae=({id:a,control:u,method:l,action:m,children:f,onSubmit:i=()=>{},onInput:C=()=>{},onChange:b=()=>{},onReset:_=()=>{},numberFields:P=[],className:h,...E})=>(r.useEffect(()=>u.registerOnchange(b),[b]),Re.jsx(ge.Provider,{value:u,children:Re.jsx("form",{id:a,ref:u.ref,action:m,method:l,className:h,onInput:C,onSubmit:d=>{l||d.preventDefault();const S=u.loadFormValues();i(S)},onChange:d=>{const S=d.target.name;u.actions.getControlledFields()[S]||u.actions.setValue(S,d.target.value)},onReset:d=>{u.actions.reset(),_(d)},...E,children:f},u.lastReloadedAt)})),ke=({control:a,name:u,compute:l})=>{const{getWatchValue:m,registerHookWatcher:f}=a||ce(),i=m({name:u,compute:l}),[C,b]=r.useState(i);return r.useEffect(()=>f({name:u,compute:l,setValue:b,computeValue:i}),[]),C},he=({name:a,defaultValue:u})=>{const{actions:l,registerController:m}=ce(),f=r.useRef(),i=l.getDefaultValues()[a]||u,[C,b]=r.useState(i),_=ke({name:`fieldStates.${a}.customState`}),P=r.useCallback(E=>{l.setFieldStateProperty(a,"customState",E)},[]),h=r.useCallback((E,{shouldDirty:d=!0,shouldOnChange:S=!0}={})=>{l.setValue(a,E,{shouldDirty:d,shouldOnChange:S}),b(E)},[l.setValue]);return r.useEffect(()=>m(a,b),[]),{ref:f,name:a,defaultValue:i,value:C,onChange:h,customState:_,setCustomState:P}},Pe=({name:a,defaultValue:u,render:l=({ref:m,name:f,defaultValue:i,value:C,onChange:b,customState:_,setCustomState:P})=>null})=>{const m=he({name:a,defaultValue:u});return l(m)},je=["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],Se=a=>{typeof a.setCustomValidity=="function"&&a.setCustomValidity("");let u=a.validity;console.log(a.valid);let l=je.find(m=>u[m]);if(l)return{type:l,message:a.validationMessage}},Fe=()=>{const[,a]=r.useState({});return r.useCallback(()=>a({}),[])},Ve=()=>{const[a,u]=r.useState(),l=r.useCallback(()=>u(new Date().toString()),[]);return[a,l]},xe=[],Ne={},we=({numberFields:a=xe,defaultValues:u=Ne,shouldUnRegister:l=!1,shouldConvertNumber:m=!1}={})=>{const f=Fe(),[i,C]=Ve(),b=r.useRef(),_=r.useRef(()=>{}),P=r.useRef(!1),h=r.useRef(u),E=r.useRef(u),d=r.useRef(new Set),S=r.useRef(a),D=r.useRef({}),j=r.useRef([]),W=r.useRef([]),M=r.useRef({}),K=r.useRef(0),Y=r.useRef({}),te=r.useCallback(()=>{Y.current=Object.keys(E.current).reduce((t,n)=>({...t,[n]:{isDirty:!1,isTouched:!1,customState:null}}),{})},[]),re=r.useCallback((t={})=>{E.current={...E.current,...t},h.current={...E.current},K.current=0,P.current=!1,M.current={},S.current=a,d.current=new Set,W.current=[],j.current=[],D.current={},te(),a.length>0&&(m=!0),C()},[]),ne=r.useCallback(()=>!!Object.values(N()).find(t=>t.isDirty),[]),ue=r.useCallback(()=>!!Object.values(I()).find(t=>!!t),[]),q=r.useCallback(t=>Se(t.target),[]),x=r.useCallback(t=>t?h.current[t]:h.current,[]),se=r.useCallback(()=>E.current,[]),J=r.useCallback(()=>S.current,[]),I=r.useCallback(()=>M.current,[]),oe=r.useCallback(()=>D.current,[]),N=r.useCallback(()=>Y.current,[]),A=r.useCallback(({name:t,compute:n})=>{var y;if(typeof n=="function")return n(x());if(Array.isArray(t)){const F={};return t.forEach(V=>{F[V]=A({name:V})}),F}if(t==="isDirty")return ne();if(t==="isError")return ue();if(t==="values")return{...x()};if(t==="errors")return{...I()};if(t==="fieldStates")return{...N()};const s=t.split(".");if(s.length>1){const F=s[1];if(s[0]==="errors")return s.length===2?I()[F]:I();if(s[0]==="fieldStates"){if(s.length===2)return{...N()[F]};const V=s[2];return(y=N()[F])==null?void 0:y[V]}}return x()[t]},[]),z=t=>{W.current.forEach(n=>{let s;if(typeof n.name=="string"?s=t(n):n.name.forEach(y=>{s||(s=t({...n,name:y}))}),s){const y=A(n);n.setValue(y)}})},G=t=>{const n=({name:s})=>s==="isError"||s==="errors"||(t?s===`errors.${t}`:s.includes("errors"));[...d.current].forEach(s=>{n({name:s})&&f()}),z(n)},L=r.useCallback((t,n)=>{M.current[t]=n,G(t)},[]),U=r.useCallback(t=>{M.current[t]=null,G(t)},[]),e=r.useCallback(()=>{M.current={},G()},[]),o=r.useCallback(t=>{const n=Se(t.target);n?L(t.target.name,n):U(t.target.name)},[L,U]),c=r.useCallback((t,n,s)=>{const y=Y.current[t];if(y[n]!==s){Y.current[t]={...y,[n]:s};const V=({name:w})=>w==="fieldStates"||w===`fieldStates.${t}`||w===`fieldStates.${t}.${n}`;if([...d.current].forEach(w=>{V({name:w})&&f()}),n==="customState"){j.current.forEach(({name:w,setValue:ae})=>{w.includes(t)&&ae(s)});return}z(V)}}),g=r.useCallback((t,n,{shouldDirty:s=!0,shouldOnChange:y=!0}={})=>{m&&S.current.includes(t)&&(n=Number(n)||void 0);const F=h.current[t],V=Y.current[t],ae=D.current[t];if(c(t,"isTouched",!0),s){const $=n!==E.current[t];V.isDirty!==$&&c(t,"isDirty",$)}const fe=ne(),ye=P.current,Ce=n!==F;d.current.has(t)&&Ce&&f(),d.current.has("values")&&f(),d.current.has("isDirty")&&fe!==ye&&f(),h.current[t]=n,ae&&ae(n),P.current=fe,z($=>{const{name:ie,compute:pe,computeValue:ve}=$;if(pe){const de=pe(x());return de!==ve&&($.computeValue=de),de!==ve}if(ie==="values")return!0;if(ie==="isDirty")return fe!==ye;if(ie===t)return Ce}),y&&_.current(t,n,h.current)},[c]),p=r.useCallback(t=>{if(typeof t=="string")return d.current.add(t),A({name:t});if(Array.isArray(t)){const n={};return t.forEach(s=>{d.current.add(s),n[s]=A({name:s})}),n}return A({name:t})},[]),v=r.useCallback((t,n)=>{const s=D.current;return s[t]=n,()=>{l&&(delete s[t],delete h.current[t])}},[]),H=r.useCallback(t=>(_.current=t,()=>_.current=()=>{}),[]),B=r.useCallback(t=>{var s;const n=K.current;return(s=t.name)!=null&&s.includes("customState")?j.current.push({key:n,...t}):W.current.push({key:n,...t}),K.current++,()=>{W.current=W.current.filter(y=>y.key!==n),j.current=j.current.filter(y=>y.key!==n)}},[]),R=r.useCallback(()=>{const t=Object.fromEntries(new FormData(b.current)),n=D.current;return Object.keys(n).map(s=>{t[s]=h.current[s]}),m&&S.current.forEach(s=>t.hasOwnProperty(s)&&(t[s]=Number(t[s])||0)),t},[]),O=r.useMemo(()=>({reset:re,setValue:g,getValues:x,setError:L,clearError:U,clearErrors:e,checkValidity:o,getNumberFields:J,getFieldValidity:q,getDefaultValues:se,setFieldStateProperty:c,getControlledFields:oe}),[re,g,x,L,U,e,o,J,q,se,c,oe]),X=r.useMemo(()=>({ref:b,watch:p,actions:O,registerController:v,registerHookWatcher:B,lastReloadedAt:i,registerOnchange:H,loadFormValues:R,getWatchValue:A}),[b,p,O,v,B,i,H,R,A]),le=r.useMemo(()=>({control:X,actions:O,watch:p}),[i,X,O,p]);return r.useLayoutEffect(()=>{if([...b.current.querySelectorAll("[name]")].forEach(n=>{!n.defaultValue&&E.current[n.name]&&(n.defaultValue=E.current[n.name]),n.type==="number"&&!S.current.includes(n.name)&&S.current.push(n.name)}),b.current){const n=R();h.current={...n},E.current={...n}}},[i]),r.useLayoutEffect(()=>{te()},[]),le};T.Controller=Pe,T.Form=Ae,T.useController=he,T.useForm=we,T.useFormContext=ce,T.useWatch=ke,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-formkit",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "keywords": [
5
5
  "react formkit",
6
6
  "react ez formkit",