react-simple-formkit 1.0.2 → 1.0.4

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
@@ -147,6 +147,24 @@ return (
147
147
  )
148
148
  ```
149
149
 
150
+ ## Centralized processing with onChange
151
+
152
+ ```
153
+ const handleChange = ({ formState, isDirty }) => {
154
+ console.log({ formState, isDirty });
155
+ };
156
+
157
+ return (
158
+ <Form form={form} onChange={handleChange}>
159
+ <input required name="email" />
160
+ <input required name="password" type="password" />
161
+ <button type="submit" disabled={!isDirty}>
162
+ Submit
163
+ </button>
164
+ </Form>
165
+ );
166
+ ```
167
+
150
168
  # Support for third party library
151
169
 
152
170
  ## Catch value instantly
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),se=(a,n)=>{let d=!1;return Object.keys(n).forEach(l=>{if(!(l in a)||d)return;const c=n[l],s=a[l];(typeof c=="object"||c!==s)&&(d=!0)}),d},Q=a=>!a||typeof a.checkValidity!="function"||a.checkValidity()?null:a.validationMessage,ne=()=>{const[a,n]=o.useState({}),d=o.useMemo(()=>Object.values(a).filter(Boolean).length>0,[a]),l=o.useCallback((i,R)=>{n(m=>m[i]===R?m:{...m,[i]:R})},[]),c=o.useCallback(i=>{n(R=>({...R,...i}))},[]),s=o.useCallback(i=>{n(R=>R[i]?{...R,[i]:""}:R)},[]),b=o.useCallback(()=>{n({})},[]);return{isError:d,errors:a,changeError:l,changeErrors:c,clearError:s,clearErrors:b}},X={defaultValues:{},numberFields:[]},ce=(a=X)=>{const{defaultValues:n=X.defaultValues,numberFields:d=X.numberFields}=a,{changeError:l,errors:c,changeErrors:s,clearError:b,clearErrors:i,isError:R}=ne(),[m,T]=o.useState(!1),E=o.useRef({}),k=o.useRef(n),O=o.useRef({}),C=o.useRef(),F=o.useCallback((t,{shouldDirty:_=!0}={})=>{let f=t;if(typeof t=="function"&&(f=t(E.current)),E.current=f,_){const j=se(E.current,k.current);j!==m&&T(j)}},[m]),V=o.useCallback(()=>{T(!1),i();const t=O.current;Object.values(t).forEach(f=>f("")),C.current.reset(),E.current=k.current},[i]),U=o.useCallback((t,_)=>{const f=O.current;return f[t]=_,()=>f[t]=null},[]),D=o.useCallback(t=>Q(t.target),[]),Y=o.useCallback(t=>t?E.current[t]:E.current,[]),I=o.useCallback(()=>k.current,[]),y=o.useCallback(()=>{setTimeout(()=>C.current.dispatchEvent(new Event("input",{bubbles:!0})))},[]),$=o.useCallback(t=>{const _=Q(t.target);_?l(t.target.name,_):l(t.target.name,null)},[l]),M=o.useCallback((t,_,{shouldDirty:f=!0}={})=>{const j=O.current;if(typeof t=="string"){const S=j[t];if(!S)throw new Error(`${t} is uncontrolled, please use Controller for it!`);S(_,{shouldDirty:f}),y()}typeof t=="object"&&(Object.entries(t).forEach(([S,L])=>{const x=j[S];if(!x)throw new Error(`${S} is uncontrolled, please use Controller for it!`);x(L,{shouldDirty:f})}),y())},[y]),w=o.useCallback(()=>{const t=Object.fromEntries(new FormData(C.current)),_=O.current;return Object.keys(_).map(f=>{t[f]=E.current[f]}),d.forEach(f=>t.hasOwnProperty(f)&&(t[f]=+t[f])),t},[]),q=o.useMemo(()=>({setValue:M,instantChange:y,getDefaultValues:I,getFormState:Y,setFormState:F,changeError:l,changeErrors:s,clearError:b,clearErrors:i,loadFormValues:w,checkValidity:$,getFieldValidity:D,reset:V}),[M,y,I,Y,F,l,s,b,w,D,$,V]);return o.useEffect(()=>{if(C.current){const t=w();k.current={...t,...n},E.current={...t,...n}}},[]),{ref:C,isDirty:m,isError:R,errors:c,numberFields:d,subscribe:U,actions:q}};var W={exports:{}},A={};/**
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react");var J={exports:{}},V={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -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 K;function ue(){if(K)return A;K=1;var a=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function d(l,c,s){var b=null;if(s!==void 0&&(b=""+s),c.key!==void 0&&(b=""+c.key),"key"in c){s={};for(var i in c)i!=="key"&&(s[i]=c[i])}else s=c;return c=s.ref,{$$typeof:a,type:l,key:b,ref:c!==void 0?c:null,props:s}}return A.Fragment=n,A.jsx=d,A.jsxs=d,A}var N={};/**
9
+ */var K;function le(){if(K)return V;K=1;var o=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function b(i,c,s){var E=null;if(s!==void 0&&(E=""+s),c.key!==void 0&&(E=""+c.key),"key"in c){s={};for(var u in c)u!=="key"&&(s[u]=c[u])}else s=c;return c=s.ref,{$$typeof:o,type:i,key:E,ref:c!==void 0?c:null,props:s}}return V.Fragment=a,V.jsx=b,V.jsxs=b,V}var D={};/**
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 ee;function le(){return ee||(ee=1,process.env.NODE_ENV!=="production"&&function(){function a(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===t?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case F:return"Fragment";case U:return"Profiler";case V:return"StrictMode";case y:return"Suspense";case $:return"SuspenseList";case q: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 C:return"Portal";case Y:return(e.displayName||"Context")+".Provider";case D:return(e._context.displayName||"Context")+".Consumer";case I:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case M:return r=e.displayName||null,r!==null?r:a(e.type)||"Memo";case w:r=e._payload,e=e._init;try{return a(e(r))}catch{}}return null}function n(e){return""+e}function d(e){try{n(e);var r=!1}catch{r=!0}if(r){r=console;var u=r.error,p=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",p),n(e)}}function l(e){if(e===F)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===w)return"<...>";try{var r=a(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function c(){var e=_.A;return e===null?null:e.getOwner()}function s(){return Error("react-stack-top-frame")}function b(e){if(f.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function i(e,r){function u(){L||(L=!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)",r))}u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}function R(){var e=a(this.type);return x[e]||(x[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 m(e,r,u,p,g,h,J,z){return u=h.ref,e={$$typeof:O,type:e,key:r,props:h,_owner:g},(u!==void 0?u:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:R}):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 T(e,r,u,p,g,h,J,z){var v=r.children;if(v!==void 0)if(p)if(j(v)){for(p=0;p<v.length;p++)E(v[p]);Object.freeze&&Object.freeze(v)}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(v);if(f.call(r,"key")){v=a(e);var P=Object.keys(r).filter(function(ae){return ae!=="key"});p=0<P.length?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}",Z[v+p]||(P=0<P.length?"{"+P.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var ee;function ie(){return ee||(ee=1,process.env.NODE_ENV!=="production"&&function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===P?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case S:return"Fragment";case I:return"Profiler";case Y:return"StrictMode";case L:return"Suspense";case W:return"SuspenseList";case U: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 $:return(e.displayName||"Context")+".Provider";case z:return(e._context.displayName||"Context")+".Consumer";case M:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case j:return r=e.displayName||null,r!==null?r:o(e.type)||"Memo";case x:r=e._payload,e=e._init;try{return o(e(r))}catch{}}return null}function a(e){return""+e}function b(e){try{a(e);var r=!1}catch{r=!0}if(r){r=console;var l=r.error,k=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",k),a(e)}}function i(e){if(e===S)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===x)return"<...>";try{var r=o(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function c(){var e=A.A;return e===null?null:e.getOwner()}function s(){return Error("react-stack-top-frame")}function E(e){if(t.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function u(e,r){function l(){g||(g=!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)",r))}l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}function R(){var e=o(this.type);return O[e]||(O[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 m(e,r,l,k,C,h,G,X){return l=h.ref,e={$$typeof:y,type:e,key:r,props:h,_owner:C},(l!==void 0?l:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:R}):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:G}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:X}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function T(e,r,l,k,C,h,G,X){var _=r.children;if(_!==void 0)if(k)if(v(_)){for(k=0;k<_.length;k++)f(_[k]);Object.freeze&&Object.freeze(_)}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 f(_);if(t.call(r,"key")){_=o(e);var F=Object.keys(r).filter(function(ue){return ue!=="key"});k=0<F.length?"{key: someKey, "+F.join(": ..., ")+": ...}":"{key: someKey}",Q[_+k]||(F=0<F.length?"{"+F.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} />`,p,v,P,v),Z[v+p]=!0)}if(v=null,u!==void 0&&(d(u),v=""+u),b(r)&&(d(r.key),v=""+r.key),"key"in r){u={};for(var G in r)G!=="key"&&(u[G]=r[G])}else u=r;return v&&i(u,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,v,h,g,c(),u,J,z)}function E(e){typeof e=="object"&&e!==null&&e.$$typeof===O&&e._store&&(e._store.validated=1)}var k=o,O=Symbol.for("react.transitional.element"),C=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),V=Symbol.for("react.strict_mode"),U=Symbol.for("react.profiler"),D=Symbol.for("react.consumer"),Y=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),$=Symbol.for("react.suspense_list"),M=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),t=Symbol.for("react.client.reference"),_=k.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,f=Object.prototype.hasOwnProperty,j=Array.isArray,S=console.createTask?console.createTask:function(){return null};k={"react-stack-bottom-frame":function(e){return e()}};var L,x={},B=k["react-stack-bottom-frame"].bind(k,s)(),H=S(l(s)),Z={};N.Fragment=F,N.jsx=function(e,r,u,p,g){var h=1e4>_.recentlyCreatedOwnerStacks++;return T(e,r,u,!1,p,g,h?Error("react-stack-top-frame"):B,h?S(l(e)):H)},N.jsxs=function(e,r,u,p,g){var h=1e4>_.recentlyCreatedOwnerStacks++;return T(e,r,u,!0,p,g,h?Error("react-stack-top-frame"):B,h?S(l(e)):H)}}()),N}var re;function ie(){return re||(re=1,process.env.NODE_ENV==="production"?W.exports=ue():W.exports=le()),W.exports}var te=ie();const oe=o.createContext({}),fe=()=>o.useContext(oe),de=({id:a,form:n,method:d,action:l,children:c,onSubmit:s=()=>{},onInput:b=()=>{},onChange:i=()=>{},numberFields:R=[],className:m,...T})=>te.jsx(oe.Provider,{value:n,children:te.jsx("form",{ref:n==null?void 0:n.ref,action:l,className:m,onSubmit:E=>{E.preventDefault();const k=n.actions.loadFormValues();s(k)},onInput:E=>{b(E);const k=n.actions.loadFormValues();n.actions.setFormState(k)},onChange:E=>{const k=n.actions.loadFormValues();n.actions.setFormState(k),i(k)},...T,children:c})}),be=({name:a,defaultValue:n,render:d=({ref:l,name:c,defaultValue:s,value:b,setValue:i})=>null})=>{const[l,c]=o.useState(n),s=fe(),b=o.useRef(),i=o.useCallback((R,{shouldDirty:m=!1}={})=>{s.actions.setFormState(T=>({...T,[a]:R}),{shouldDirty:m}),c(R)},[c,s.actions.setFormState]);return o.useEffect(()=>(s.actions.setFormState(m=>({...m,[a]:n}),{shouldDirty:!1}),s.subscribe(a,(m,{shouldDirty:T=!0})=>{c(m),s.actions.setFormState(E=>({...E,[a]:m}),{shouldDirty:T}),b.current&&typeof b.current.dispatchEvent=="function"&&b.current.dispatchEvent(new Event("change"))})),[]),d({ref:b,name:a,defaultValue:n,value:l,setValue:i})};exports.Controller=be;exports.Form=de;exports.useForm=ce;exports.useValidateForm=ne;
22
+ <%s key={someKey} {...props} />`,k,_,F,_),Q[_+k]=!0)}if(_=null,l!==void 0&&(b(l),_=""+l),E(r)&&(b(r.key),_=""+r.key),"key"in r){l={};for(var B in r)B!=="key"&&(l[B]=r[B])}else l=r;return _&&u(l,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,_,h,C,c(),l,G,X)}function f(e){typeof e=="object"&&e!==null&&e.$$typeof===y&&e._store&&(e._store.validated=1)}var p=n,y=Symbol.for("react.transitional.element"),w=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),Y=Symbol.for("react.strict_mode"),I=Symbol.for("react.profiler"),z=Symbol.for("react.consumer"),$=Symbol.for("react.context"),M=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),U=Symbol.for("react.activity"),P=Symbol.for("react.client.reference"),A=p.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,t=Object.prototype.hasOwnProperty,v=Array.isArray,d=console.createTask?console.createTask:function(){return null};p={"react-stack-bottom-frame":function(e){return e()}};var g,O={},q=p["react-stack-bottom-frame"].bind(p,s)(),N=d(i(s)),Q={};D.Fragment=S,D.jsx=function(e,r,l,k,C){var h=1e4>A.recentlyCreatedOwnerStacks++;return T(e,r,l,!1,k,C,h?Error("react-stack-top-frame"):q,h?d(i(e)):N)},D.jsxs=function(e,r,l,k,C){var h=1e4>A.recentlyCreatedOwnerStacks++;return T(e,r,l,!0,k,C,h?Error("react-stack-top-frame"):q,h?d(i(e)):N)}}()),D}var re;function fe(){return re||(re=1,process.env.NODE_ENV==="production"?J.exports=le():J.exports=ie()),J.exports}var te=fe();const ae=n.createContext({}),de=()=>n.useContext(ae),be=(o,a)=>{let b=!1;return Object.keys(a).forEach(i=>{if(!(i in o)||b)return;const c=a[i],s=o[i];(typeof c=="object"||c!==s)&&(b=!0)}),b},ne=o=>!o||typeof o.checkValidity!="function"||o.checkValidity()?null:o.validationMessage,oe=({id:o,form:a,method:b,action:i,children:c,onSubmit:s=()=>{},onInput:E=()=>{},onChange:u=()=>{},numberFields:R=[],className:m,...T})=>(n.useEffect(()=>a.actions.registerOnchange(u),[u]),te.jsx(ae.Provider,{value:a,children:te.jsx("form",{ref:a==null?void 0:a.ref,action:i,className:m,onSubmit:f=>{b||f.preventDefault();const p=a.actions.loadFormValues();s(p)},onInput:f=>{if(f.target.tagName==="FORM"){const p=a.actions.loadFormValues();a.actions.setFormState(p)}else E(f)},onChange:()=>{const f=a.actions.loadFormValues();a.actions.setFormState(f)},...T,children:c})})),se=({name:o,defaultValue:a,render:b=({ref:i,name:c,defaultValue:s,value:E,setValue:u})=>null})=>{const[i,c]=n.useState(a),s=de(),E=n.useRef(),u=n.useCallback((R,{shouldDirty:m=!1}={})=>{s.actions.setFormState(T=>({...T,[o]:R}),{shouldDirty:m}),c(R)},[c,s.actions.setFormState]);return n.useEffect(()=>(s.actions.setFormState(m=>({...m,[o]:a}),{shouldDirty:!1}),s.subscribe(o,(m,{shouldDirty:T=!0})=>{c(m),s.actions.setFormState(f=>({...f,[o]:m}),{shouldDirty:T}),E.current&&typeof E.current.dispatchEvent=="function"&&E.current.dispatchEvent(new Event("change"))})),[]),b({ref:E,name:o,defaultValue:a,value:i,setValue:u})},Z=()=>{const[o,a]=n.useState({}),b=n.useMemo(()=>Object.values(o).filter(Boolean).length>0,[o]),i=n.useCallback((u,R)=>{a(m=>m[u]===R?m:{...m,[u]:R})},[]),c=n.useCallback(u=>{a(R=>({...R,...u}))},[]),s=n.useCallback(u=>{a(R=>R[u]?{...R,[u]:""}:R)},[]),E=n.useCallback(()=>{a({})},[]);return{isError:b,errors:o,changeError:i,changeErrors:c,clearError:s,clearErrors:E}},H={defaultValues:{},numberFields:[]},ce=(o=H)=>{const{defaultValues:a=H.defaultValues,numberFields:b=H.numberFields}=o,{changeError:i,errors:c,changeErrors:s,clearError:E,clearErrors:u,isError:R}=Z(),[m,T]=n.useState(!1),f=n.useRef({}),p=n.useRef(a),y=n.useRef({}),w=n.useRef(()=>{}),S=n.useRef(),Y=n.useCallback((t,{shouldDirty:v=!0}={})=>{let d=t;typeof t=="function"&&(d=t(f.current)),f.current=d;let g=m;v&&(g=be(f.current,p.current),g!==m&&T(g)),w.current({formState:f.current,isDirty:g})},[m]),I=n.useCallback(()=>{T(!1),u();const t=y.current;Object.values(t).forEach(d=>d("")),S.current.reset(),f.current=p.current},[u]),z=n.useCallback((t,v)=>{const d=y.current;return d[t]=v,()=>d[t]=null},[]),$=n.useCallback(t=>(w.current=t,()=>w.current=()=>{})),M=n.useCallback(t=>ne(t.target),[]),L=n.useCallback(t=>t?f.current[t]:f.current,[]),W=n.useCallback(()=>p.current,[]),j=n.useCallback(()=>{setTimeout(()=>S.current.dispatchEvent(new Event("input",{bubbles:!0})))},[]),x=n.useCallback(t=>{const v=ne(t.target);v?i(t.target.name,v):i(t.target.name,null)},[i]),U=n.useCallback((t,v,{shouldDirty:d=!0}={})=>{const g=y.current;if(typeof t=="string"){const O=g[t];if(!O)throw new Error(`${t} is uncontrolled, please use Controller for it!`);O(v,{shouldDirty:d}),j()}typeof t=="object"&&(Object.entries(t).forEach(([O,q])=>{const N=g[O];if(!N)throw new Error(`${O} is uncontrolled, please use Controller for it!`);N(q,{shouldDirty:d})}),j())},[j]),P=n.useCallback(()=>{const t=Object.fromEntries(new FormData(S.current)),v=y.current;return Object.keys(v).map(d=>{t[d]=f.current[d]}),b.forEach(d=>t.hasOwnProperty(d)&&(t[d]=+t[d])),t},[]),A=n.useMemo(()=>({setValue:U,instantChange:j,getDefaultValues:W,getFormState:L,setFormState:Y,changeError:i,changeErrors:s,clearError:E,clearErrors:u,loadFormValues:P,checkValidity:x,getFieldValidity:M,registerOnchange:$,reset:I}),[U,j,W,L,Y,i,s,E,P,M,x,$,I]);return n.useEffect(()=>{if(S.current){const t=P();p.current={...t,...a},f.current={...t,...a}}},[]),{ref:S,isDirty:m,isError:R,errors:c,numberFields:b,subscribe:z,actions:A}},me={Form:oe,Controller:se,useForm:ce,useValidateForm:Z};exports.Controller=se;exports.Form=oe;exports.default=me;exports.useForm=ce;exports.useValidateForm=Z;
@@ -1,111 +1,5 @@
1
- import le, { useState as H, useMemo as ae, useCallback as T, useRef as V, useEffect as se, createContext as ie, useContext as fe } from "react";
2
- const de = (o, n) => {
3
- let f = !1;
4
- return Object.keys(n).forEach((u) => {
5
- if (!(u in o) || f) return;
6
- const s = n[u], a = o[u];
7
- (typeof s == "object" || s !== a) && (f = !0);
8
- }), f;
9
- }, ee = (o) => !o || typeof o.checkValidity != "function" || o.checkValidity() ? null : o.validationMessage, Ee = () => {
10
- const [o, n] = H({}), f = ae(() => Object.values(o).filter(Boolean).length > 0, [o]), u = T((l, b) => {
11
- n((E) => E[l] === b ? E : { ...E, [l]: b });
12
- }, []), s = T((l) => {
13
- n((b) => ({ ...b, ...l }));
14
- }, []), a = T((l) => {
15
- n((b) => b[l] ? { ...b, [l]: "" } : b);
16
- }, []), d = T(() => {
17
- n({});
18
- }, []);
19
- return { isError: f, errors: o, changeError: u, changeErrors: s, clearError: a, clearErrors: d };
20
- }, B = {
21
- defaultValues: {},
22
- numberFields: []
23
- }, ve = (o = B) => {
24
- const { defaultValues: n = B.defaultValues, numberFields: f = B.numberFields } = o, { changeError: u, errors: s, changeErrors: a, clearError: d, clearErrors: l, isError: b } = Ee(), [E, h] = H(!1), m = V({}), R = V(n), O = V({}), y = V(), x = T(
25
- (t, { shouldDirty: v = !0 } = {}) => {
26
- let i = t;
27
- if (typeof t == "function" && (i = t(m.current)), m.current = i, v) {
28
- const w = de(m.current, R.current);
29
- w !== E && h(w);
30
- }
31
- },
32
- [E]
33
- ), D = T(() => {
34
- h(!1), l();
35
- const t = O.current;
36
- Object.values(t).forEach((i) => i("")), y.current.reset(), m.current = R.current;
37
- }, [l]), q = T((t, v) => {
38
- const i = O.current;
39
- return i[t] = v, () => i[t] = null;
40
- }, []), Y = T((t) => ee(t.target), []), I = T((t) => t ? m.current[t] : m.current, []), $ = T(() => R.current, []), j = T(() => {
41
- setTimeout(() => y.current.dispatchEvent(new Event("input", { bubbles: !0 })));
42
- }, []), M = T(
43
- (t) => {
44
- const v = ee(t.target);
45
- v ? u(t.target.name, v) : u(t.target.name, null);
46
- },
47
- [u]
48
- ), L = T(
49
- (t, v, { shouldDirty: i = !0 } = {}) => {
50
- const w = O.current;
51
- if (typeof t == "string") {
52
- const S = w[t];
53
- if (!S)
54
- throw new Error(`${t} is uncontrolled, please use Controller for it!`);
55
- S(v, { shouldDirty: i }), j();
56
- }
57
- typeof t == "object" && (Object.entries(t).forEach(([S, W]) => {
58
- const F = w[S];
59
- if (!F)
60
- throw new Error(`${S} is uncontrolled, please use Controller for it!`);
61
- F(W, { shouldDirty: i });
62
- }), j());
63
- },
64
- [j]
65
- ), A = T(() => {
66
- const t = Object.fromEntries(new FormData(y.current)), v = O.current;
67
- return Object.keys(v).map((i) => {
68
- t[i] = m.current[i];
69
- }), f.forEach((i) => t.hasOwnProperty(i) && (t[i] = +t[i])), t;
70
- }, []), J = ae(
71
- () => ({
72
- setValue: L,
73
- instantChange: j,
74
- getDefaultValues: $,
75
- getFormState: I,
76
- setFormState: x,
77
- changeError: u,
78
- changeErrors: a,
79
- clearError: d,
80
- clearErrors: l,
81
- loadFormValues: A,
82
- checkValidity: M,
83
- getFieldValidity: Y,
84
- reset: D
85
- }),
86
- [
87
- L,
88
- j,
89
- $,
90
- I,
91
- x,
92
- u,
93
- a,
94
- d,
95
- A,
96
- Y,
97
- M,
98
- D
99
- ]
100
- );
101
- return se(() => {
102
- if (y.current) {
103
- const t = A();
104
- R.current = { ...t, ...n }, m.current = { ...t, ...n };
105
- }
106
- }, []), { ref: y, isDirty: E, isError: b, errors: s, numberFields: f, subscribe: q, actions: J };
107
- };
108
- var U = { exports: {} }, C = {};
1
+ import ie, { createContext as fe, useContext as de, useEffect as Q, useState as K, useRef as A, useCallback as _, useMemo as se } from "react";
2
+ var z = { exports: {} }, D = {};
109
3
  /**
110
4
  * @license React
111
5
  * react-jsx-runtime.production.js
@@ -116,28 +10,28 @@ var U = { exports: {} }, C = {};
116
10
  * LICENSE file in the root directory of this source tree.
117
11
  */
118
12
  var re;
119
- function me() {
120
- if (re) return C;
13
+ function Ee() {
14
+ if (re) return D;
121
15
  re = 1;
122
16
  var o = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
123
- function f(u, s, a) {
124
- var d = null;
125
- if (a !== void 0 && (d = "" + a), s.key !== void 0 && (d = "" + s.key), "key" in s) {
17
+ function d(l, s, a) {
18
+ var m = null;
19
+ if (a !== void 0 && (m = "" + a), s.key !== void 0 && (m = "" + s.key), "key" in s) {
126
20
  a = {};
127
- for (var l in s)
128
- l !== "key" && (a[l] = s[l]);
21
+ for (var c in s)
22
+ c !== "key" && (a[c] = s[c]);
129
23
  } else a = s;
130
24
  return s = a.ref, {
131
25
  $$typeof: o,
132
- type: u,
133
- key: d,
26
+ type: l,
27
+ key: m,
134
28
  ref: s !== void 0 ? s : null,
135
29
  props: a
136
30
  };
137
31
  }
138
- return C.Fragment = n, C.jsx = f, C.jsxs = f, C;
32
+ return D.Fragment = n, D.jsx = d, D.jsxs = d, D;
139
33
  }
140
- var N = {};
34
+ var Y = {};
141
35
  /**
142
36
  * @license React
143
37
  * react-jsx-runtime.development.js
@@ -148,43 +42,43 @@ var N = {};
148
42
  * LICENSE file in the root directory of this source tree.
149
43
  */
150
44
  var te;
151
- function be() {
45
+ function me() {
152
46
  return te || (te = 1, process.env.NODE_ENV !== "production" && function() {
153
47
  function o(e) {
154
48
  if (e == null) return null;
155
49
  if (typeof e == "function")
156
- return e.$$typeof === t ? null : e.displayName || e.name || null;
50
+ return e.$$typeof === C ? null : e.displayName || e.name || null;
157
51
  if (typeof e == "string") return e;
158
52
  switch (e) {
159
- case x:
53
+ case O:
160
54
  return "Fragment";
161
- case q:
55
+ case $:
162
56
  return "Profiler";
163
- case D:
57
+ case I:
164
58
  return "StrictMode";
165
- case j:
59
+ case W:
166
60
  return "Suspense";
167
- case M:
61
+ case U:
168
62
  return "SuspenseList";
169
- case J:
63
+ case q:
170
64
  return "Activity";
171
65
  }
172
66
  if (typeof e == "object")
173
67
  switch (typeof e.tag == "number" && console.error(
174
68
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
175
69
  ), e.$$typeof) {
176
- case y:
70
+ case F:
177
71
  return "Portal";
178
- case I:
72
+ case M:
179
73
  return (e.displayName || "Context") + ".Provider";
180
- case Y:
74
+ case G:
181
75
  return (e._context.displayName || "Context") + ".Consumer";
182
- case $:
76
+ case L:
183
77
  var r = e.render;
184
78
  return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
185
- case L:
79
+ case x:
186
80
  return r = e.displayName || null, r !== null ? r : o(e.type) || "Memo";
187
- case A:
81
+ case P:
188
82
  r = e._payload, e = e._init;
189
83
  try {
190
84
  return o(e(r));
@@ -196,7 +90,7 @@ function be() {
196
90
  function n(e) {
197
91
  return "" + e;
198
92
  }
199
- function f(e) {
93
+ function d(e) {
200
94
  try {
201
95
  n(e);
202
96
  var r = !1;
@@ -205,17 +99,17 @@ function be() {
205
99
  }
206
100
  if (r) {
207
101
  r = console;
208
- var c = r.error, p = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
209
- return c.call(
102
+ var u = r.error, R = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
103
+ return u.call(
210
104
  r,
211
105
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
212
- p
106
+ R
213
107
  ), n(e);
214
108
  }
215
109
  }
216
- function u(e) {
217
- if (e === x) return "<>";
218
- if (typeof e == "object" && e !== null && e.$$typeof === A)
110
+ function l(e) {
111
+ if (e === O) return "<>";
112
+ if (typeof e == "object" && e !== null && e.$$typeof === P)
219
113
  return "<...>";
220
114
  try {
221
115
  var r = o(e);
@@ -225,45 +119,45 @@ function be() {
225
119
  }
226
120
  }
227
121
  function s() {
228
- var e = v.A;
122
+ var e = N.A;
229
123
  return e === null ? null : e.getOwner();
230
124
  }
231
125
  function a() {
232
126
  return Error("react-stack-top-frame");
233
127
  }
234
- function d(e) {
235
- if (i.call(e, "key")) {
128
+ function m(e) {
129
+ if (t.call(e, "key")) {
236
130
  var r = Object.getOwnPropertyDescriptor(e, "key").get;
237
131
  if (r && r.isReactWarning) return !1;
238
132
  }
239
133
  return e.key !== void 0;
240
134
  }
241
- function l(e, r) {
242
- function c() {
243
- W || (W = !0, console.error(
135
+ function c(e, r) {
136
+ function u() {
137
+ h || (h = !0, console.error(
244
138
  "%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)",
245
139
  r
246
140
  ));
247
141
  }
248
- c.isReactWarning = !0, Object.defineProperty(e, "key", {
249
- get: c,
142
+ u.isReactWarning = !0, Object.defineProperty(e, "key", {
143
+ get: u,
250
144
  configurable: !0
251
145
  });
252
146
  }
253
147
  function b() {
254
148
  var e = o(this.type);
255
- return F[e] || (F[e] = !0, console.error(
149
+ return S[e] || (S[e] = !0, console.error(
256
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."
257
151
  )), e = this.props.ref, e !== void 0 ? e : null;
258
152
  }
259
- function E(e, r, c, p, g, k, z, G) {
260
- return c = k.ref, e = {
261
- $$typeof: O,
153
+ function E(e, r, u, R, y, k, X, B) {
154
+ return u = k.ref, e = {
155
+ $$typeof: j,
262
156
  type: e,
263
157
  key: r,
264
158
  props: k,
265
- _owner: g
266
- }, (c !== void 0 ? c : null) !== null ? Object.defineProperty(e, "ref", {
159
+ _owner: y
160
+ }, (u !== void 0 ? u : null) !== null ? Object.defineProperty(e, "ref", {
267
161
  enumerable: !1,
268
162
  get: b
269
163
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
@@ -280,163 +174,279 @@ function be() {
280
174
  configurable: !1,
281
175
  enumerable: !1,
282
176
  writable: !0,
283
- value: z
177
+ value: X
284
178
  }), Object.defineProperty(e, "_debugTask", {
285
179
  configurable: !1,
286
180
  enumerable: !1,
287
181
  writable: !0,
288
- value: G
182
+ value: B
289
183
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
290
184
  }
291
- function h(e, r, c, p, g, k, z, G) {
292
- var _ = r.children;
293
- if (_ !== void 0)
294
- if (p)
295
- if (w(_)) {
296
- for (p = 0; p < _.length; p++)
297
- m(_[p]);
298
- Object.freeze && Object.freeze(_);
185
+ function g(e, r, u, R, y, k, X, B) {
186
+ var p = r.children;
187
+ if (p !== void 0)
188
+ if (R)
189
+ if (T(p)) {
190
+ for (R = 0; R < p.length; R++)
191
+ i(p[R]);
192
+ Object.freeze && Object.freeze(p);
299
193
  } else
300
194
  console.error(
301
195
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
302
196
  );
303
- else m(_);
304
- if (i.call(r, "key")) {
305
- _ = o(e);
306
- var P = Object.keys(r).filter(function(ue) {
307
- return ue !== "key";
197
+ else i(p);
198
+ if (t.call(r, "key")) {
199
+ p = o(e);
200
+ var w = Object.keys(r).filter(function(le) {
201
+ return le !== "key";
308
202
  });
309
- p = 0 < P.length ? "{key: someKey, " + P.join(": ..., ") + ": ...}" : "{key: someKey}", K[_ + p] || (P = 0 < P.length ? "{" + P.join(": ..., ") + ": ...}" : "{}", console.error(
203
+ R = 0 < w.length ? "{key: someKey, " + w.join(": ..., ") + ": ...}" : "{key: someKey}", ee[p + R] || (w = 0 < w.length ? "{" + w.join(": ..., ") + ": ...}" : "{}", console.error(
310
204
  `A props object containing a "key" prop is being spread into JSX:
311
205
  let props = %s;
312
206
  <%s {...props} />
313
207
  React keys must be passed directly to JSX without using spread:
314
208
  let props = %s;
315
209
  <%s key={someKey} {...props} />`,
210
+ R,
316
211
  p,
317
- _,
318
- P,
319
- _
320
- ), K[_ + p] = !0);
212
+ w,
213
+ p
214
+ ), ee[p + R] = !0);
321
215
  }
322
- if (_ = null, c !== void 0 && (f(c), _ = "" + c), d(r) && (f(r.key), _ = "" + r.key), "key" in r) {
323
- c = {};
324
- for (var X in r)
325
- X !== "key" && (c[X] = r[X]);
326
- } else c = r;
327
- return _ && l(
328
- c,
216
+ if (p = null, u !== void 0 && (d(u), p = "" + u), m(r) && (d(r.key), p = "" + r.key), "key" in r) {
217
+ u = {};
218
+ for (var H in r)
219
+ H !== "key" && (u[H] = r[H]);
220
+ } else u = r;
221
+ return p && c(
222
+ u,
329
223
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
330
224
  ), E(
331
225
  e,
332
- _,
226
+ p,
333
227
  k,
334
- g,
228
+ y,
335
229
  s(),
336
- c,
337
- z,
338
- G
230
+ u,
231
+ X,
232
+ B
339
233
  );
340
234
  }
341
- function m(e) {
342
- typeof e == "object" && e !== null && e.$$typeof === O && e._store && (e._store.validated = 1);
235
+ function i(e) {
236
+ typeof e == "object" && e !== null && e.$$typeof === j && e._store && (e._store.validated = 1);
343
237
  }
344
- var R = le, O = Symbol.for("react.transitional.element"), y = Symbol.for("react.portal"), x = Symbol.for("react.fragment"), D = Symbol.for("react.strict_mode"), q = Symbol.for("react.profiler"), Y = Symbol.for("react.consumer"), I = Symbol.for("react.context"), $ = Symbol.for("react.forward_ref"), j = Symbol.for("react.suspense"), M = Symbol.for("react.suspense_list"), L = Symbol.for("react.memo"), A = Symbol.for("react.lazy"), J = Symbol.for("react.activity"), t = Symbol.for("react.client.reference"), v = R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, i = Object.prototype.hasOwnProperty, w = Array.isArray, S = console.createTask ? console.createTask : function() {
238
+ var v = ie, j = Symbol.for("react.transitional.element"), F = Symbol.for("react.portal"), O = Symbol.for("react.fragment"), I = Symbol.for("react.strict_mode"), $ = Symbol.for("react.profiler"), G = Symbol.for("react.consumer"), M = Symbol.for("react.context"), L = Symbol.for("react.forward_ref"), W = Symbol.for("react.suspense"), U = Symbol.for("react.suspense_list"), x = Symbol.for("react.memo"), P = Symbol.for("react.lazy"), q = Symbol.for("react.activity"), C = Symbol.for("react.client.reference"), N = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, t = Object.prototype.hasOwnProperty, T = Array.isArray, f = console.createTask ? console.createTask : function() {
345
239
  return null;
346
240
  };
347
- R = {
241
+ v = {
348
242
  "react-stack-bottom-frame": function(e) {
349
243
  return e();
350
244
  }
351
245
  };
352
- var W, F = {}, Z = R["react-stack-bottom-frame"].bind(
353
- R,
246
+ var h, S = {}, J = v["react-stack-bottom-frame"].bind(
247
+ v,
354
248
  a
355
- )(), Q = S(u(a)), K = {};
356
- N.Fragment = x, N.jsx = function(e, r, c, p, g) {
357
- var k = 1e4 > v.recentlyCreatedOwnerStacks++;
358
- return h(
249
+ )(), V = f(l(a)), ee = {};
250
+ Y.Fragment = O, Y.jsx = function(e, r, u, R, y) {
251
+ var k = 1e4 > N.recentlyCreatedOwnerStacks++;
252
+ return g(
359
253
  e,
360
254
  r,
361
- c,
255
+ u,
362
256
  !1,
363
- p,
364
- g,
365
- k ? Error("react-stack-top-frame") : Z,
366
- k ? S(u(e)) : Q
257
+ R,
258
+ y,
259
+ k ? Error("react-stack-top-frame") : J,
260
+ k ? f(l(e)) : V
367
261
  );
368
- }, N.jsxs = function(e, r, c, p, g) {
369
- var k = 1e4 > v.recentlyCreatedOwnerStacks++;
370
- return h(
262
+ }, Y.jsxs = function(e, r, u, R, y) {
263
+ var k = 1e4 > N.recentlyCreatedOwnerStacks++;
264
+ return g(
371
265
  e,
372
266
  r,
373
- c,
267
+ u,
374
268
  !0,
375
- p,
376
- g,
377
- k ? Error("react-stack-top-frame") : Z,
378
- k ? S(u(e)) : Q
269
+ R,
270
+ y,
271
+ k ? Error("react-stack-top-frame") : J,
272
+ k ? f(l(e)) : V
379
273
  );
380
274
  };
381
- }()), N;
275
+ }()), Y;
382
276
  }
383
277
  var ne;
384
- function Re() {
385
- return ne || (ne = 1, process.env.NODE_ENV === "production" ? U.exports = me() : U.exports = be()), U.exports;
278
+ function be() {
279
+ return ne || (ne = 1, process.env.NODE_ENV === "production" ? z.exports = Ee() : z.exports = me()), z.exports;
386
280
  }
387
- var oe = Re();
388
- const ce = ie({}), pe = () => fe(ce), Te = ({
281
+ var oe = be();
282
+ const ce = fe({}), Re = () => de(ce), pe = (o, n) => {
283
+ let d = !1;
284
+ return Object.keys(n).forEach((l) => {
285
+ if (!(l in o) || d) return;
286
+ const s = n[l], a = o[l];
287
+ (typeof s == "object" || s !== a) && (d = !0);
288
+ }), d;
289
+ }, ae = (o) => !o || typeof o.checkValidity != "function" || o.checkValidity() ? null : o.validationMessage, _e = ({
389
290
  id: o,
390
291
  form: n,
391
- method: f,
392
- action: u,
292
+ method: d,
293
+ action: l,
393
294
  children: s,
394
295
  onSubmit: a = () => {
395
296
  },
396
- onInput: d = () => {
297
+ onInput: m = () => {
397
298
  },
398
- onChange: l = () => {
299
+ onChange: c = () => {
399
300
  },
400
301
  numberFields: b = [],
401
302
  className: E,
402
- ...h
403
- }) => /* @__PURE__ */ oe.jsx(ce.Provider, { value: n, children: /* @__PURE__ */ oe.jsx(
303
+ ...g
304
+ }) => (Q(() => n.actions.registerOnchange(c), [c]), /* @__PURE__ */ oe.jsx(ce.Provider, { value: n, children: /* @__PURE__ */ oe.jsx(
404
305
  "form",
405
306
  {
406
307
  ref: n == null ? void 0 : n.ref,
407
- action: u,
308
+ action: l,
408
309
  className: E,
409
- onSubmit: (m) => {
410
- m.preventDefault();
411
- const R = n.actions.loadFormValues();
412
- a(R);
310
+ onSubmit: (i) => {
311
+ d || i.preventDefault();
312
+ const v = n.actions.loadFormValues();
313
+ a(v);
413
314
  },
414
- onInput: (m) => {
415
- d(m);
416
- const R = n.actions.loadFormValues();
417
- n.actions.setFormState(R);
315
+ onInput: (i) => {
316
+ if (i.target.tagName === "FORM") {
317
+ const v = n.actions.loadFormValues();
318
+ n.actions.setFormState(v);
319
+ } else
320
+ m(i);
418
321
  },
419
- onChange: (m) => {
420
- const R = n.actions.loadFormValues();
421
- n.actions.setFormState(R), l(R);
322
+ onChange: () => {
323
+ const i = n.actions.loadFormValues();
324
+ n.actions.setFormState(i);
422
325
  },
423
- ...h,
326
+ ...g,
424
327
  children: s
425
328
  }
426
- ) }), he = ({ name: o, defaultValue: n, render: f = ({ ref: u, name: s, defaultValue: a, value: d, setValue: l }) => null }) => {
427
- const [u, s] = H(n), a = pe(), d = V(), l = T(
329
+ ) })), ve = ({ name: o, defaultValue: n, render: d = ({ ref: l, name: s, defaultValue: a, value: m, setValue: c }) => null }) => {
330
+ const [l, s] = K(n), a = Re(), m = A(), c = _(
428
331
  (b, { shouldDirty: E = !1 } = {}) => {
429
- a.actions.setFormState((h) => ({ ...h, [o]: b }), { shouldDirty: E }), s(b);
332
+ a.actions.setFormState((g) => ({ ...g, [o]: b }), { shouldDirty: E }), s(b);
430
333
  },
431
334
  [s, a.actions.setFormState]
432
335
  );
433
- return se(() => (a.actions.setFormState((E) => ({ ...E, [o]: n }), { shouldDirty: !1 }), a.subscribe(o, (E, { shouldDirty: h = !0 }) => {
434
- s(E), a.actions.setFormState((m) => ({ ...m, [o]: E }), { shouldDirty: h }), d.current && typeof d.current.dispatchEvent == "function" && d.current.dispatchEvent(new Event("change"));
435
- })), []), f({ ref: d, name: o, defaultValue: n, value: u, setValue: l });
336
+ return Q(() => (a.actions.setFormState((E) => ({ ...E, [o]: n }), { shouldDirty: !1 }), a.subscribe(o, (E, { shouldDirty: g = !0 }) => {
337
+ s(E), a.actions.setFormState((i) => ({ ...i, [o]: E }), { shouldDirty: g }), m.current && typeof m.current.dispatchEvent == "function" && m.current.dispatchEvent(new Event("change"));
338
+ })), []), d({ ref: m, name: o, defaultValue: n, value: l, setValue: c });
339
+ }, ue = () => {
340
+ const [o, n] = K({}), d = se(() => Object.values(o).filter(Boolean).length > 0, [o]), l = _((c, b) => {
341
+ n((E) => E[c] === b ? E : { ...E, [c]: b });
342
+ }, []), s = _((c) => {
343
+ n((b) => ({ ...b, ...c }));
344
+ }, []), a = _((c) => {
345
+ n((b) => b[c] ? { ...b, [c]: "" } : b);
346
+ }, []), m = _(() => {
347
+ n({});
348
+ }, []);
349
+ return { isError: d, errors: o, changeError: l, changeErrors: s, clearError: a, clearErrors: m };
350
+ }, Z = {
351
+ defaultValues: {},
352
+ numberFields: []
353
+ }, Te = (o = Z) => {
354
+ const { defaultValues: n = Z.defaultValues, numberFields: d = Z.numberFields } = o, { changeError: l, errors: s, changeErrors: a, clearError: m, clearErrors: c, isError: b } = ue(), [E, g] = K(!1), i = A({}), v = A(n), j = A({}), F = A(() => {
355
+ }), O = A(), I = _(
356
+ (t, { shouldDirty: T = !0 } = {}) => {
357
+ let f = t;
358
+ typeof t == "function" && (f = t(i.current)), i.current = f;
359
+ let h = E;
360
+ T && (h = pe(i.current, v.current), h !== E && g(h)), F.current({ formState: i.current, isDirty: h });
361
+ },
362
+ [E]
363
+ ), $ = _(() => {
364
+ g(!1), c();
365
+ const t = j.current;
366
+ Object.values(t).forEach((f) => f("")), O.current.reset(), i.current = v.current;
367
+ }, [c]), G = _((t, T) => {
368
+ const f = j.current;
369
+ return f[t] = T, () => f[t] = null;
370
+ }, []), M = _((t) => (F.current = t, () => F.current = () => {
371
+ })), L = _((t) => ae(t.target), []), W = _((t) => t ? i.current[t] : i.current, []), U = _(() => v.current, []), x = _(() => {
372
+ setTimeout(() => O.current.dispatchEvent(new Event("input", { bubbles: !0 })));
373
+ }, []), P = _(
374
+ (t) => {
375
+ const T = ae(t.target);
376
+ T ? l(t.target.name, T) : l(t.target.name, null);
377
+ },
378
+ [l]
379
+ ), q = _(
380
+ (t, T, { shouldDirty: f = !0 } = {}) => {
381
+ const h = j.current;
382
+ if (typeof t == "string") {
383
+ const S = h[t];
384
+ if (!S)
385
+ throw new Error(`${t} is uncontrolled, please use Controller for it!`);
386
+ S(T, { shouldDirty: f }), x();
387
+ }
388
+ typeof t == "object" && (Object.entries(t).forEach(([S, J]) => {
389
+ const V = h[S];
390
+ if (!V)
391
+ throw new Error(`${S} is uncontrolled, please use Controller for it!`);
392
+ V(J, { shouldDirty: f });
393
+ }), x());
394
+ },
395
+ [x]
396
+ ), C = _(() => {
397
+ const t = Object.fromEntries(new FormData(O.current)), T = j.current;
398
+ return Object.keys(T).map((f) => {
399
+ t[f] = i.current[f];
400
+ }), d.forEach((f) => t.hasOwnProperty(f) && (t[f] = +t[f])), t;
401
+ }, []), N = se(
402
+ () => ({
403
+ setValue: q,
404
+ instantChange: x,
405
+ getDefaultValues: U,
406
+ getFormState: W,
407
+ setFormState: I,
408
+ changeError: l,
409
+ changeErrors: a,
410
+ clearError: m,
411
+ clearErrors: c,
412
+ loadFormValues: C,
413
+ checkValidity: P,
414
+ getFieldValidity: L,
415
+ registerOnchange: M,
416
+ reset: $
417
+ }),
418
+ [
419
+ q,
420
+ x,
421
+ U,
422
+ W,
423
+ I,
424
+ l,
425
+ a,
426
+ m,
427
+ C,
428
+ L,
429
+ P,
430
+ M,
431
+ $
432
+ ]
433
+ );
434
+ return Q(() => {
435
+ if (O.current) {
436
+ const t = C();
437
+ v.current = { ...t, ...n }, i.current = { ...t, ...n };
438
+ }
439
+ }, []), { ref: O, isDirty: E, isError: b, errors: s, numberFields: d, subscribe: G, actions: N };
440
+ }, he = {
441
+ Form: _e,
442
+ Controller: ve,
443
+ useForm: Te,
444
+ useValidateForm: ue
436
445
  };
437
446
  export {
438
- he as Controller,
439
- Te as Form,
440
- ve as useForm,
441
- Ee as useValidateForm
447
+ ve as Controller,
448
+ _e as Form,
449
+ he as default,
450
+ Te as useForm,
451
+ ue as useValidateForm
442
452
  };
@@ -1,4 +1,4 @@
1
- (function(h,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h.Name={},h.React))})(this,function(h,r){"use strict";const se=(a,o)=>{let d=!1;return Object.keys(o).forEach(u=>{if(!(u in a)||d)return;const c=o[u],s=a[u];(typeof c=="object"||c!==s)&&(d=!0)}),d},Q=a=>!a||typeof a.checkValidity!="function"||a.checkValidity()?null:a.validationMessage,K=()=>{const[a,o]=r.useState({}),d=r.useMemo(()=>Object.values(a).filter(Boolean).length>0,[a]),u=r.useCallback((i,R)=>{o(m=>m[i]===R?m:{...m,[i]:R})},[]),c=r.useCallback(i=>{o(R=>({...R,...i}))},[]),s=r.useCallback(i=>{o(R=>R[i]?{...R,[i]:""}:R)},[]),b=r.useCallback(()=>{o({})},[]);return{isError:d,errors:a,changeError:u,changeErrors:c,clearError:s,clearErrors:b}},z={defaultValues:{},numberFields:[]},ce=(a=z)=>{const{defaultValues:o=z.defaultValues,numberFields:d=z.numberFields}=a,{changeError:u,errors:c,changeErrors:s,clearError:b,clearErrors:i,isError:R}=K(),[m,_]=r.useState(!1),E=r.useRef({}),k=r.useRef(o),O=r.useRef({}),C=r.useRef(),w=r.useCallback((n,{shouldDirty:T=!0}={})=>{let f=n;if(typeof n=="function"&&(f=n(E.current)),E.current=f,T){const F=se(E.current,k.current);F!==m&&_(F)}},[m]),Y=r.useCallback(()=>{_(!1),i();const n=O.current;Object.values(n).forEach(f=>f("")),C.current.reset(),E.current=k.current},[i]),G=r.useCallback((n,T)=>{const f=O.current;return f[n]=T,()=>f[n]=null},[]),I=r.useCallback(n=>Q(n.target),[]),M=r.useCallback(n=>n?E.current[n]:E.current,[]),L=r.useCallback(()=>k.current,[]),j=r.useCallback(()=>{setTimeout(()=>C.current.dispatchEvent(new Event("input",{bubbles:!0})))},[]),W=r.useCallback(n=>{const T=Q(n.target);T?u(n.target.name,T):u(n.target.name,null)},[u]),U=r.useCallback((n,T,{shouldDirty:f=!0}={})=>{const F=O.current;if(typeof n=="string"){const g=F[n];if(!g)throw new Error(`${n} is uncontrolled, please use Controller for it!`);g(T,{shouldDirty:f}),j()}typeof n=="object"&&(Object.entries(n).forEach(([g,J])=>{const V=F[g];if(!V)throw new Error(`${g} is uncontrolled, please use Controller for it!`);V(J,{shouldDirty:f})}),j())},[j]),P=r.useCallback(()=>{const n=Object.fromEntries(new FormData(C.current)),T=O.current;return Object.keys(T).map(f=>{n[f]=E.current[f]}),d.forEach(f=>n.hasOwnProperty(f)&&(n[f]=+n[f])),n},[]),X=r.useMemo(()=>({setValue:U,instantChange:j,getDefaultValues:L,getFormState:M,setFormState:w,changeError:u,changeErrors:s,clearError:b,clearErrors:i,loadFormValues:P,checkValidity:W,getFieldValidity:I,reset:Y}),[U,j,L,M,w,u,s,b,P,I,W,Y]);return r.useEffect(()=>{if(C.current){const n=P();k.current={...n,...o},E.current={...n,...o}}},[]),{ref:C,isDirty:m,isError:R,errors:c,numberFields:d,subscribe:G,actions:X}};var D={exports:{}},x={};/**
1
+ (function(T,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],r):(T=typeof globalThis<"u"?globalThis:T||self,r(T.Name={},T.React))})(this,function(T,r){"use strict";var I={exports:{}},P={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -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 q;function le(){if(q)return x;q=1;var a=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function d(u,c,s){var b=null;if(s!==void 0&&(b=""+s),c.key!==void 0&&(b=""+c.key),"key"in c){s={};for(var i in c)i!=="key"&&(s[i]=c[i])}else s=c;return c=s.ref,{$$typeof:a,type:u,key:b,ref:c!==void 0?c:null,props:s}}return x.Fragment=o,x.jsx=d,x.jsxs=d,x}var N={};/**
9
+ */var $;function le(){if($)return P;$=1;var o=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function b(i,c,s){var E=null;if(s!==void 0&&(E=""+s),c.key!==void 0&&(E=""+c.key),"key"in c){s={};for(var u in c)u!=="key"&&(s[u]=c[u])}else s=c;return c=s.ref,{$$typeof:o,type:i,key:E,ref:c!==void 0?c:null,props:s}}return P.Fragment=a,P.jsx=b,P.jsxs=b,P}var A={};/**
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 $;function ue(){return $||($=1,process.env.NODE_ENV!=="production"&&function(){function a(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===n?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case w:return"Fragment";case G:return"Profiler";case Y:return"StrictMode";case j:return"Suspense";case W: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 C:return"Portal";case M:return(e.displayName||"Context")+".Provider";case I:return(e._context.displayName||"Context")+".Consumer";case L:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case U:return t=e.displayName||null,t!==null?t:a(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return a(e(t))}catch{}}return null}function o(e){return""+e}function d(e){try{o(e);var t=!1}catch{t=!0}if(t){t=console;var l=t.error,p=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",p),o(e)}}function u(e){if(e===w)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===P)return"<...>";try{var t=a(e);return t?"<"+t+">":"<...>"}catch{return"<...>"}}function c(){var e=T.A;return e===null?null:e.getOwner()}function s(){return Error("react-stack-top-frame")}function b(e){if(f.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function i(e,t){function l(){J||(J=!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)",t))}l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}function R(){var e=a(this.type);return V[e]||(V[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 m(e,t,l,p,y,S,B,H){return l=S.ref,e={$$typeof:O,type:e,key:t,props:S,_owner:y},(l!==void 0?l:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:R}):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:B}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function _(e,t,l,p,y,S,B,H){var v=t.children;if(v!==void 0)if(p)if(F(v)){for(p=0;p<v.length;p++)E(v[p]);Object.freeze&&Object.freeze(v)}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(v);if(f.call(t,"key")){v=a(e);var A=Object.keys(t).filter(function(me){return me!=="key"});p=0<A.length?"{key: someKey, "+A.join(": ..., ")+": ...}":"{key: someKey}",ae[v+p]||(A=0<A.length?"{"+A.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var ee;function ie(){return ee||(ee=1,process.env.NODE_ENV!=="production"&&function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===V?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case O:return"Fragment";case L:return"Profiler";case M:return"StrictMode";case J:return"Suspense";case z:return"SuspenseList";case G: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 x:return"Portal";case W:return(e.displayName||"Context")+".Provider";case Z:return(e._context.displayName||"Context")+".Consumer";case U:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case F:return t=e.displayName||null,t!==null?t:o(e.type)||"Memo";case N:t=e._payload,e=e._init;try{return o(e(t))}catch{}}return null}function a(e){return""+e}function b(e){try{a(e);var t=!1}catch{t=!0}if(t){t=console;var l=t.error,k=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",k),a(e)}}function i(e){if(e===O)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===N)return"<...>";try{var t=o(e);return t?"<"+t+">":"<...>"}catch{return"<...>"}}function c(){var e=D.A;return e===null?null:e.getOwner()}function s(){return Error("react-stack-top-frame")}function E(e){if(n.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function u(e,t){function l(){g||(g=!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)",t))}l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}function R(){var e=o(this.type);return y[e]||(y[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 m(e,t,l,k,C,S,Q,K){return l=S.ref,e={$$typeof:j,type:e,key:t,props:S,_owner:C},(l!==void 0?l:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:R}):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:Q}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:K}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function h(e,t,l,k,C,S,Q,K){var p=t.children;if(p!==void 0)if(k)if(v(p)){for(k=0;k<p.length;k++)f(p[k]);Object.freeze&&Object.freeze(p)}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 f(p);if(n.call(t,"key")){p=o(e);var w=Object.keys(t).filter(function(Ee){return Ee!=="key"});k=0<w.length?"{key: someKey, "+w.join(": ..., ")+": ...}":"{key: someKey}",ue[p+k]||(w=0<w.length?"{"+w.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} />`,p,v,A,v),ae[v+p]=!0)}if(v=null,l!==void 0&&(d(l),v=""+l),b(t)&&(d(t.key),v=""+t.key),"key"in t){l={};for(var Z in t)Z!=="key"&&(l[Z]=t[Z])}else l=t;return v&&i(l,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,v,S,y,c(),l,B,H)}function E(e){typeof e=="object"&&e!==null&&e.$$typeof===O&&e._store&&(e._store.validated=1)}var k=r,O=Symbol.for("react.transitional.element"),C=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),Y=Symbol.for("react.strict_mode"),G=Symbol.for("react.profiler"),I=Symbol.for("react.consumer"),M=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),U=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),X=Symbol.for("react.activity"),n=Symbol.for("react.client.reference"),T=k.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,f=Object.prototype.hasOwnProperty,F=Array.isArray,g=console.createTask?console.createTask:function(){return null};k={"react-stack-bottom-frame":function(e){return e()}};var J,V={},ne=k["react-stack-bottom-frame"].bind(k,s)(),oe=g(u(s)),ae={};N.Fragment=w,N.jsx=function(e,t,l,p,y){var S=1e4>T.recentlyCreatedOwnerStacks++;return _(e,t,l,!1,p,y,S?Error("react-stack-top-frame"):ne,S?g(u(e)):oe)},N.jsxs=function(e,t,l,p,y){var S=1e4>T.recentlyCreatedOwnerStacks++;return _(e,t,l,!0,p,y,S?Error("react-stack-top-frame"):ne,S?g(u(e)):oe)}}()),N}var ee;function ie(){return ee||(ee=1,process.env.NODE_ENV==="production"?D.exports=le():D.exports=ue()),D.exports}var te=ie();const re=r.createContext({}),fe=()=>r.useContext(re),de=({id:a,form:o,method:d,action:u,children:c,onSubmit:s=()=>{},onInput:b=()=>{},onChange:i=()=>{},numberFields:R=[],className:m,..._})=>te.jsx(re.Provider,{value:o,children:te.jsx("form",{ref:o==null?void 0:o.ref,action:u,className:m,onSubmit:E=>{E.preventDefault();const k=o.actions.loadFormValues();s(k)},onInput:E=>{b(E);const k=o.actions.loadFormValues();o.actions.setFormState(k)},onChange:E=>{const k=o.actions.loadFormValues();o.actions.setFormState(k),i(k)},..._,children:c})}),be=({name:a,defaultValue:o,render:d=({ref:u,name:c,defaultValue:s,value:b,setValue:i})=>null})=>{const[u,c]=r.useState(o),s=fe(),b=r.useRef(),i=r.useCallback((R,{shouldDirty:m=!1}={})=>{s.actions.setFormState(_=>({..._,[a]:R}),{shouldDirty:m}),c(R)},[c,s.actions.setFormState]);return r.useEffect(()=>(s.actions.setFormState(m=>({...m,[a]:o}),{shouldDirty:!1}),s.subscribe(a,(m,{shouldDirty:_=!0})=>{c(m),s.actions.setFormState(E=>({...E,[a]:m}),{shouldDirty:_}),b.current&&typeof b.current.dispatchEvent=="function"&&b.current.dispatchEvent(new Event("change"))})),[]),d({ref:b,name:a,defaultValue:o,value:u,setValue:i})};h.Controller=be,h.Form=de,h.useForm=ce,h.useValidateForm=K,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
22
+ <%s key={someKey} {...props} />`,k,p,w,p),ue[p+k]=!0)}if(p=null,l!==void 0&&(b(l),p=""+l),E(t)&&(b(t.key),p=""+t.key),"key"in t){l={};for(var q in t)q!=="key"&&(l[q]=t[q])}else l=t;return p&&u(l,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,p,S,C,c(),l,Q,K)}function f(e){typeof e=="object"&&e!==null&&e.$$typeof===j&&e._store&&(e._store.validated=1)}var _=r,j=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),M=Symbol.for("react.strict_mode"),L=Symbol.for("react.profiler"),Z=Symbol.for("react.consumer"),W=Symbol.for("react.context"),U=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),F=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),G=Symbol.for("react.activity"),V=Symbol.for("react.client.reference"),D=_.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,n=Object.prototype.hasOwnProperty,v=Array.isArray,d=console.createTask?console.createTask:function(){return null};_={"react-stack-bottom-frame":function(e){return e()}};var g,y={},X=_["react-stack-bottom-frame"].bind(_,s)(),Y=d(i(s)),ue={};A.Fragment=O,A.jsx=function(e,t,l,k,C){var S=1e4>D.recentlyCreatedOwnerStacks++;return h(e,t,l,!1,k,C,S?Error("react-stack-top-frame"):X,S?d(i(e)):Y)},A.jsxs=function(e,t,l,k,C){var S=1e4>D.recentlyCreatedOwnerStacks++;return h(e,t,l,!0,k,C,S?Error("react-stack-top-frame"):X,S?d(i(e)):Y)}}()),A}var te;function fe(){return te||(te=1,process.env.NODE_ENV==="production"?I.exports=le():I.exports=ie()),I.exports}var re=fe();const ne=r.createContext({}),de=()=>r.useContext(ne),be=(o,a)=>{let b=!1;return Object.keys(a).forEach(i=>{if(!(i in o)||b)return;const c=a[i],s=o[i];(typeof c=="object"||c!==s)&&(b=!0)}),b},ae=o=>!o||typeof o.checkValidity!="function"||o.checkValidity()?null:o.validationMessage,oe=({id:o,form:a,method:b,action:i,children:c,onSubmit:s=()=>{},onInput:E=()=>{},onChange:u=()=>{},numberFields:R=[],className:m,...h})=>(r.useEffect(()=>a.actions.registerOnchange(u),[u]),re.jsx(ne.Provider,{value:a,children:re.jsx("form",{ref:a==null?void 0:a.ref,action:i,className:m,onSubmit:f=>{b||f.preventDefault();const _=a.actions.loadFormValues();s(_)},onInput:f=>{if(f.target.tagName==="FORM"){const _=a.actions.loadFormValues();a.actions.setFormState(_)}else E(f)},onChange:()=>{const f=a.actions.loadFormValues();a.actions.setFormState(f)},...h,children:c})})),se=({name:o,defaultValue:a,render:b=({ref:i,name:c,defaultValue:s,value:E,setValue:u})=>null})=>{const[i,c]=r.useState(a),s=de(),E=r.useRef(),u=r.useCallback((R,{shouldDirty:m=!1}={})=>{s.actions.setFormState(h=>({...h,[o]:R}),{shouldDirty:m}),c(R)},[c,s.actions.setFormState]);return r.useEffect(()=>(s.actions.setFormState(m=>({...m,[o]:a}),{shouldDirty:!1}),s.subscribe(o,(m,{shouldDirty:h=!0})=>{c(m),s.actions.setFormState(f=>({...f,[o]:m}),{shouldDirty:h}),E.current&&typeof E.current.dispatchEvent=="function"&&E.current.dispatchEvent(new Event("change"))})),[]),b({ref:E,name:o,defaultValue:a,value:i,setValue:u})},B=()=>{const[o,a]=r.useState({}),b=r.useMemo(()=>Object.values(o).filter(Boolean).length>0,[o]),i=r.useCallback((u,R)=>{a(m=>m[u]===R?m:{...m,[u]:R})},[]),c=r.useCallback(u=>{a(R=>({...R,...u}))},[]),s=r.useCallback(u=>{a(R=>R[u]?{...R,[u]:""}:R)},[]),E=r.useCallback(()=>{a({})},[]);return{isError:b,errors:o,changeError:i,changeErrors:c,clearError:s,clearErrors:E}},H={defaultValues:{},numberFields:[]},ce=(o=H)=>{const{defaultValues:a=H.defaultValues,numberFields:b=H.numberFields}=o,{changeError:i,errors:c,changeErrors:s,clearError:E,clearErrors:u,isError:R}=B(),[m,h]=r.useState(!1),f=r.useRef({}),_=r.useRef(a),j=r.useRef({}),x=r.useRef(()=>{}),O=r.useRef(),M=r.useCallback((n,{shouldDirty:v=!0}={})=>{let d=n;typeof n=="function"&&(d=n(f.current)),f.current=d;let g=m;v&&(g=be(f.current,_.current),g!==m&&h(g)),x.current({formState:f.current,isDirty:g})},[m]),L=r.useCallback(()=>{h(!1),u();const n=j.current;Object.values(n).forEach(d=>d("")),O.current.reset(),f.current=_.current},[u]),Z=r.useCallback((n,v)=>{const d=j.current;return d[n]=v,()=>d[n]=null},[]),W=r.useCallback(n=>(x.current=n,()=>x.current=()=>{})),U=r.useCallback(n=>ae(n.target),[]),J=r.useCallback(n=>n?f.current[n]:f.current,[]),z=r.useCallback(()=>_.current,[]),F=r.useCallback(()=>{setTimeout(()=>O.current.dispatchEvent(new Event("input",{bubbles:!0})))},[]),N=r.useCallback(n=>{const v=ae(n.target);v?i(n.target.name,v):i(n.target.name,null)},[i]),G=r.useCallback((n,v,{shouldDirty:d=!0}={})=>{const g=j.current;if(typeof n=="string"){const y=g[n];if(!y)throw new Error(`${n} is uncontrolled, please use Controller for it!`);y(v,{shouldDirty:d}),F()}typeof n=="object"&&(Object.entries(n).forEach(([y,X])=>{const Y=g[y];if(!Y)throw new Error(`${y} is uncontrolled, please use Controller for it!`);Y(X,{shouldDirty:d})}),F())},[F]),V=r.useCallback(()=>{const n=Object.fromEntries(new FormData(O.current)),v=j.current;return Object.keys(v).map(d=>{n[d]=f.current[d]}),b.forEach(d=>n.hasOwnProperty(d)&&(n[d]=+n[d])),n},[]),D=r.useMemo(()=>({setValue:G,instantChange:F,getDefaultValues:z,getFormState:J,setFormState:M,changeError:i,changeErrors:s,clearError:E,clearErrors:u,loadFormValues:V,checkValidity:N,getFieldValidity:U,registerOnchange:W,reset:L}),[G,F,z,J,M,i,s,E,V,U,N,W,L]);return r.useEffect(()=>{if(O.current){const n=V();_.current={...n,...a},f.current={...n,...a}}},[]),{ref:O,isDirty:m,isError:R,errors:c,numberFields:b,subscribe:Z,actions:D}},me={Form:oe,Controller:se,useForm:ce,useValidateForm:B};T.Controller=se,T.Form=oe,T.default=me,T.useForm=ce,T.useValidateForm=B,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-formkit",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "keywords": [
5
5
  "react formkit",
6
6
  "react ez formkit",
@@ -17,10 +17,6 @@
17
17
  ],
18
18
  "main": "dist/react-simple-formkit.js",
19
19
  "module": "dist/react-simple-formkit.mjs",
20
- "repository": {
21
- "type": "git",
22
- "url": "https://github.com/huynguyen294/react-simple-formkit.git"
23
- },
24
20
  "author": "huynguyen294",
25
21
  "license": "MIT",
26
22
  "scripts": {