remix-validated-form 4.3.0 → 4.3.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/.turbo/turbo-build.log +15 -9
  2. package/README.md +1 -0
  3. package/browser/internal/logic/getRadioChecked.js +10 -0
  4. package/browser/internal/reset.d.ts +0 -0
  5. package/browser/internal/reset.js +0 -0
  6. package/browser/unreleased/formStateHooks.d.ts +0 -0
  7. package/browser/unreleased/formStateHooks.js +0 -0
  8. package/dist/remix-validated-form.cjs.js +1 -0
  9. package/dist/remix-validated-form.es.js +3535 -0
  10. package/dist/remix-validated-form.umd.js +1 -0
  11. package/{build → dist/types}/ValidatedForm.d.ts +0 -0
  12. package/{build → dist/types}/hooks.d.ts +0 -0
  13. package/{build → dist/types}/index.d.ts +0 -0
  14. package/{build → dist/types}/internal/MultiValueMap.d.ts +0 -0
  15. package/{build → dist/types}/internal/constants.d.ts +0 -0
  16. package/{build → dist/types}/internal/flatten.d.ts +0 -0
  17. package/{build → dist/types}/internal/formContext.d.ts +0 -0
  18. package/{build → dist/types}/internal/getInputProps.d.ts +0 -0
  19. package/{build → dist/types}/internal/hooks.d.ts +0 -0
  20. package/{build → dist/types}/internal/hydratable.d.ts +0 -0
  21. package/{build → dist/types}/internal/logic/getCheckboxChecked.d.ts +0 -0
  22. package/{build → dist/types}/internal/logic/getRadioChecked.d.ts +0 -0
  23. package/{build → dist/types}/internal/reset.d.ts +0 -0
  24. package/{build → dist/types}/internal/state/atomUtils.d.ts +0 -0
  25. package/{build → dist/types}/internal/state/controlledFields.d.ts +0 -0
  26. package/{build → dist/types}/internal/state.d.ts +0 -0
  27. package/{build → dist/types}/internal/submissionCallbacks.d.ts +0 -0
  28. package/{build → dist/types}/internal/util.d.ts +0 -0
  29. package/{build → dist/types}/server.d.ts +0 -0
  30. package/{build → dist/types}/unreleased/formStateHooks.d.ts +0 -0
  31. package/{build → dist/types}/userFacingFormContext.d.ts +0 -0
  32. package/{build → dist/types}/validation/createValidator.d.ts +0 -0
  33. package/{build → dist/types}/validation/types.d.ts +0 -0
  34. package/package.json +8 -7
  35. package/src/internal/getInputProps.test.ts +251 -0
  36. package/src/internal/logic/getRadioChecked.ts +11 -0
  37. package/src/validation/validation.test.ts +304 -0
  38. package/tsconfig.json +4 -1
  39. package/vite.config.ts +7 -0
  40. package/.turbo/turbo-test.log +0 -11
  41. package/browser/components.d.ts +0 -7
  42. package/browser/components.js +0 -10
  43. package/browser/internal/SingleTypeMultiValueMap.d.ts +0 -9
  44. package/browser/internal/SingleTypeMultiValueMap.js +0 -41
  45. package/browser/internal/customState.d.ts +0 -105
  46. package/browser/internal/customState.js +0 -46
  47. package/browser/internal/hooks-valtio.d.ts +0 -18
  48. package/browser/internal/hooks-valtio.js +0 -110
  49. package/browser/internal/hooks-zustand.d.ts +0 -16
  50. package/browser/internal/hooks-zustand.js +0 -100
  51. package/browser/internal/immerMiddleware.d.ts +0 -6
  52. package/browser/internal/immerMiddleware.js +0 -7
  53. package/browser/internal/logic/elementUtils.d.ts +0 -3
  54. package/browser/internal/logic/elementUtils.js +0 -3
  55. package/browser/internal/logic/getCheckboxChecked copy.d.ts +0 -1
  56. package/browser/internal/logic/getCheckboxChecked copy.js +0 -9
  57. package/browser/internal/logic/setFieldValue.d.ts +0 -1
  58. package/browser/internal/logic/setFieldValue.js +0 -40
  59. package/browser/internal/logic/setInputValueInForm.d.ts +0 -1
  60. package/browser/internal/logic/setInputValueInForm.js +0 -77
  61. package/browser/internal/setFieldValue.d.ts +0 -20
  62. package/browser/internal/setFieldValue.js +0 -83
  63. package/browser/internal/setFormValues.d.ts +0 -2
  64. package/browser/internal/setFormValues.js +0 -26
  65. package/browser/internal/state/setFieldValue.d.ts +0 -0
  66. package/browser/internal/state/setFieldValue.js +0 -1
  67. package/browser/internal/state-valtio.d.ts +0 -62
  68. package/browser/internal/state-valtio.js +0 -69
  69. package/browser/internal/state-zustand.d.ts +0 -47
  70. package/browser/internal/state-zustand.js +0 -85
  71. package/browser/internal/test.d.ts +0 -0
  72. package/browser/internal/test.js +0 -15
  73. package/browser/internal/useMultiValueMap.d.ts +0 -1
  74. package/browser/internal/useMultiValueMap.js +0 -11
  75. package/browser/internal/watch.d.ts +0 -18
  76. package/browser/internal/watch.js +0 -122
  77. package/browser/lowLevelHooks.d.ts +0 -0
  78. package/browser/lowLevelHooks.js +0 -1
  79. package/browser/test-data/testFormData.d.ts +0 -15
  80. package/browser/test-data/testFormData.js +0 -46
  81. package/browser/types.d.ts +0 -1
  82. package/browser/types.js +0 -1
  83. package/browser/validation/validation.test.d.ts +0 -1
  84. package/browser/validation/validation.test.js +0 -274
  85. package/browser/validation/withYup.d.ts +0 -6
  86. package/browser/validation/withYup.js +0 -40
  87. package/browser/validation/withZod.d.ts +0 -6
  88. package/browser/validation/withZod.js +0 -50
  89. package/build/ValidatedForm.js +0 -261
  90. package/build/hooks.js +0 -91
  91. package/build/index.js +0 -18
  92. package/build/internal/MultiValueMap.js +0 -48
  93. package/build/internal/SingleTypeMultiValueMap.d.ts +0 -8
  94. package/build/internal/SingleTypeMultiValueMap.js +0 -45
  95. package/build/internal/constants.js +0 -7
  96. package/build/internal/flatten.js +0 -14
  97. package/build/internal/formContext.js +0 -5
  98. package/build/internal/getInputProps.js +0 -58
  99. package/build/internal/hooks-valtio.d.ts +0 -18
  100. package/build/internal/hooks-valtio.js +0 -128
  101. package/build/internal/hooks-zustand.d.ts +0 -16
  102. package/build/internal/hooks-zustand.js +0 -117
  103. package/build/internal/hooks.js +0 -128
  104. package/build/internal/hydratable.js +0 -17
  105. package/build/internal/immerMiddleware.d.ts +0 -6
  106. package/build/internal/immerMiddleware.js +0 -14
  107. package/build/internal/logic/elementUtils.d.ts +0 -3
  108. package/build/internal/logic/elementUtils.js +0 -9
  109. package/build/internal/logic/getCheckboxChecked.js +0 -13
  110. package/build/internal/logic/getRadioChecked.js +0 -9
  111. package/build/internal/logic/setFieldValue.d.ts +0 -1
  112. package/build/internal/logic/setFieldValue.js +0 -47
  113. package/build/internal/logic/setInputValueInForm.d.ts +0 -1
  114. package/build/internal/logic/setInputValueInForm.js +0 -84
  115. package/build/internal/reset.js +0 -19
  116. package/build/internal/setFormValues.d.ts +0 -2
  117. package/build/internal/setFormValues.js +0 -33
  118. package/build/internal/state/atomUtils.js +0 -13
  119. package/build/internal/state/controlledFields.js +0 -103
  120. package/build/internal/state-valtio.d.ts +0 -62
  121. package/build/internal/state-valtio.js +0 -83
  122. package/build/internal/state-zustand.d.ts +0 -47
  123. package/build/internal/state-zustand.js +0 -91
  124. package/build/internal/state.js +0 -71
  125. package/build/internal/submissionCallbacks.js +0 -17
  126. package/build/internal/test.d.ts +0 -1
  127. package/build/internal/test.js +0 -12
  128. package/build/internal/util.js +0 -41
  129. package/build/internal/watch.d.ts +0 -20
  130. package/build/internal/watch.js +0 -126
  131. package/build/server.js +0 -32
  132. package/build/types.d.ts +0 -1
  133. package/build/types.js +0 -2
  134. package/build/unreleased/formStateHooks.js +0 -59
  135. package/build/userFacingFormContext.js +0 -30
  136. package/build/validation/createValidator.js +0 -45
  137. package/build/validation/types.js +0 -2
@@ -0,0 +1 @@
1
+ var z$=Object.defineProperty,W$=Object.defineProperties;var k$=Object.getOwnPropertyDescriptors;var Ze=Object.getOwnPropertySymbols;var zn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable;var qn=(m,y,I)=>y in m?z$(m,y,{enumerable:!0,configurable:!0,writable:!0,value:I}):m[y]=I,U=(m,y)=>{for(var I in y||(y={}))zn.call(y,I)&&qn(m,I,y[I]);if(Ze)for(var I of Ze(y))Wn.call(y,I)&&qn(m,I,y[I]);return m},z=(m,y)=>W$(m,k$(y));var kn=(m,y)=>{var I={};for(var N in m)zn.call(m,N)&&y.indexOf(N)<0&&(I[N]=m[N]);if(m!=null&&Ze)for(var N of Ze(m))y.indexOf(N)<0&&Wn.call(m,N)&&(I[N]=m[N]);return I};(function(m,y){typeof exports=="object"&&typeof module!="undefined"?y(exports,require("react"),require("@remix-run/react"),require("@remix-run/server-runtime")):typeof define=="function"&&define.amd?define(["exports","react","@remix-run/react","@remix-run/server-runtime"],y):(m=typeof globalThis!="undefined"?globalThis:m||self,y(m["remix-validated-form"]={},m.React,m.react,m.serverRuntime))})(this,function(m,y,I,N){"use strict";function Jn(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ne=Jn(y),Pe=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Yn(){this.__data__=[],this.size=0}var Xn=Yn;function Zn(e,t){return e===t||e!==e&&t!==t}var Qe=Zn,Qn=Qe;function ea(e,t){for(var r=e.length;r--;)if(Qn(e[r][0],t))return r;return-1}var Me=ea,ta=Me,ra=Array.prototype,na=ra.splice;function aa(e){var t=this.__data__,r=ta(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():na.call(t,r,1),--this.size,!0}var oa=aa,sa=Me;function ia(e){var t=this.__data__,r=sa(t,e);return r<0?void 0:t[r][1]}var ua=ia,ca=Me;function la(e){return ca(this.__data__,e)>-1}var fa=la,da=Me;function va(e,t){var r=this.__data__,n=da(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var pa=va,ga=Xn,ha=oa,ya=ua,$a=fa,_a=pa;function ae(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ae.prototype.clear=ga,ae.prototype.delete=ha,ae.prototype.get=ya,ae.prototype.has=$a,ae.prototype.set=_a;var Fe=ae,ba=Fe;function ma(){this.__data__=new ba,this.size=0}var Aa=ma;function Sa(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ta=Sa;function wa(e){return this.__data__.get(e)}var Oa=wa;function Ea(e){return this.__data__.has(e)}var Ca=Ea,Ia=typeof Pe=="object"&&Pe&&Pe.Object===Object&&Pe,Vt=Ia,Pa=Vt,Ma=typeof self=="object"&&self&&self.Object===Object&&self,Fa=Pa||Ma||Function("return this")(),G=Fa,ja=G,xa=ja.Symbol,oe=xa,Rt=oe,Ht=Object.prototype,Da=Ht.hasOwnProperty,La=Ht.toString,$e=Rt?Rt.toStringTag:void 0;function Ba(e){var t=Da.call(e,$e),r=e[$e];try{e[$e]=void 0;var n=!0}catch{}var a=La.call(e);return n&&(t?e[$e]=r:delete e[$e]),a}var Ua=Ba,Na=Object.prototype,Ga=Na.toString;function Va(e){return Ga.call(e)}var Ra=Va,Kt=oe,Ha=Ua,Ka=Ra,qa="[object Null]",za="[object Undefined]",qt=Kt?Kt.toStringTag:void 0;function Wa(e){return e==null?e===void 0?za:qa:qt&&qt in Object(e)?Ha(e):Ka(e)}var se=Wa;function ka(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ee=ka,Ja=se,Ya=ee,Xa="[object AsyncFunction]",Za="[object Function]",Qa="[object GeneratorFunction]",eo="[object Proxy]";function to(e){if(!Ya(e))return!1;var t=Ja(e);return t==Za||t==Qa||t==Xa||t==eo}var zt=to,ro=G,no=ro["__core-js_shared__"],ao=no,et=ao,Wt=function(){var e=/[^.]+$/.exec(et&&et.keys&&et.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function oo(e){return!!Wt&&Wt in e}var so=oo,io=Function.prototype,uo=io.toString;function co(e){if(e!=null){try{return uo.call(e)}catch{}try{return e+""}catch{}}return""}var kt=co,lo=zt,fo=so,vo=ee,po=kt,go=/[\\^$.*+?()[\]{}|]/g,ho=/^\[object .+?Constructor\]$/,yo=Function.prototype,$o=Object.prototype,_o=yo.toString,bo=$o.hasOwnProperty,mo=RegExp("^"+_o.call(bo).replace(go,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ao(e){if(!vo(e)||fo(e))return!1;var t=lo(e)?mo:ho;return t.test(po(e))}var So=Ao;function To(e,t){return e==null?void 0:e[t]}var wo=To,Oo=So,Eo=wo;function Co(e,t){var r=Eo(e,t);return Oo(r)?r:void 0}var te=Co,Io=te,Po=G,Mo=Io(Po,"Map"),tt=Mo,Fo=te,jo=Fo(Object,"create"),je=jo,Jt=je;function xo(){this.__data__=Jt?Jt(null):{},this.size=0}var Do=xo;function Lo(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Bo=Lo,Uo=je,No="__lodash_hash_undefined__",Go=Object.prototype,Vo=Go.hasOwnProperty;function Ro(e){var t=this.__data__;if(Uo){var r=t[e];return r===No?void 0:r}return Vo.call(t,e)?t[e]:void 0}var Ho=Ro,Ko=je,qo=Object.prototype,zo=qo.hasOwnProperty;function Wo(e){var t=this.__data__;return Ko?t[e]!==void 0:zo.call(t,e)}var ko=Wo,Jo=je,Yo="__lodash_hash_undefined__";function Xo(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Jo&&t===void 0?Yo:t,this}var Zo=Xo,Qo=Do,es=Bo,ts=Ho,rs=ko,ns=Zo;function ie(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ie.prototype.clear=Qo,ie.prototype.delete=es,ie.prototype.get=ts,ie.prototype.has=rs,ie.prototype.set=ns;var as=ie,Yt=as,os=Fe,ss=tt;function is(){this.size=0,this.__data__={hash:new Yt,map:new(ss||os),string:new Yt}}var us=is;function cs(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ls=cs,fs=ls;function ds(e,t){var r=e.__data__;return fs(t)?r[typeof t=="string"?"string":"hash"]:r.map}var xe=ds,vs=xe;function ps(e){var t=vs(this,e).delete(e);return this.size-=t?1:0,t}var gs=ps,hs=xe;function ys(e){return hs(this,e).get(e)}var $s=ys,_s=xe;function bs(e){return _s(this,e).has(e)}var ms=bs,As=xe;function Ss(e,t){var r=As(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var Ts=Ss,ws=us,Os=gs,Es=$s,Cs=ms,Is=Ts;function ue(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ue.prototype.clear=ws,ue.prototype.delete=Os,ue.prototype.get=Es,ue.prototype.has=Cs,ue.prototype.set=Is;var rt=ue,Ps=Fe,Ms=tt,Fs=rt,js=200;function xs(e,t){var r=this.__data__;if(r instanceof Ps){var n=r.__data__;if(!Ms||n.length<js-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Fs(n)}return r.set(e,t),this.size=r.size,this}var Ds=xs,Ls=Fe,Bs=Aa,Us=Ta,Ns=Oa,Gs=Ca,Vs=Ds;function ce(e){var t=this.__data__=new Ls(e);this.size=t.size}ce.prototype.clear=Bs,ce.prototype.delete=Us,ce.prototype.get=Ns,ce.prototype.has=Gs,ce.prototype.set=Vs;var nt=ce,Rs="__lodash_hash_undefined__";function Hs(e){return this.__data__.set(e,Rs),this}var Ks=Hs;function qs(e){return this.__data__.has(e)}var zs=qs,Ws=rt,ks=Ks,Js=zs;function De(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ws;++t<r;)this.add(e[t])}De.prototype.add=De.prototype.push=ks,De.prototype.has=Js;var Xt=De;function Ys(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var Xs=Ys;function Zs(e,t){return e.has(t)}var Zt=Zs,Qs=Xt,ei=Xs,ti=Zt,ri=1,ni=2;function ai(e,t,r,n,a,o){var s=r&ri,i=e.length,f=t.length;if(i!=f&&!(s&&f>i))return!1;var d=o.get(e),b=o.get(t);if(d&&b)return d==t&&b==e;var g=-1,_=!0,S=r&ni?new Qs:void 0;for(o.set(e,t),o.set(t,e);++g<i;){var C=e[g],M=t[g];if(n)var E=s?n(M,C,g,t,e,o):n(C,M,g,e,t,o);if(E!==void 0){if(E)continue;_=!1;break}if(S){if(!ei(t,function(A,j){if(!ti(S,j)&&(C===A||a(C,A,r,n,o)))return S.push(j)})){_=!1;break}}else if(!(C===M||a(C,M,r,n,o))){_=!1;break}}return o.delete(e),o.delete(t),_}var Qt=ai,oi=G,si=oi.Uint8Array,er=si;function ii(e){var t=-1,r=Array(e.size);return e.forEach(function(n,a){r[++t]=[a,n]}),r}var ui=ii;function ci(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var at=ci,tr=oe,rr=er,li=Qe,fi=Qt,di=ui,vi=at,pi=1,gi=2,hi="[object Boolean]",yi="[object Date]",$i="[object Error]",_i="[object Map]",bi="[object Number]",mi="[object RegExp]",Ai="[object Set]",Si="[object String]",Ti="[object Symbol]",wi="[object ArrayBuffer]",Oi="[object DataView]",nr=tr?tr.prototype:void 0,ot=nr?nr.valueOf:void 0;function Ei(e,t,r,n,a,o,s){switch(r){case Oi:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case wi:return!(e.byteLength!=t.byteLength||!o(new rr(e),new rr(t)));case hi:case yi:case bi:return li(+e,+t);case $i:return e.name==t.name&&e.message==t.message;case mi:case Si:return e==t+"";case _i:var i=di;case Ai:var f=n&pi;if(i||(i=vi),e.size!=t.size&&!f)return!1;var d=s.get(e);if(d)return d==t;n|=gi,s.set(e,t);var b=fi(i(e),i(t),n,a,o,s);return s.delete(e),b;case Ti:if(ot)return ot.call(e)==ot.call(t)}return!1}var Ci=Ei;function Ii(e,t){for(var r=-1,n=t.length,a=e.length;++r<n;)e[a+r]=t[r];return e}var st=Ii,Pi=Array.isArray,V=Pi,Mi=st,Fi=V;function ji(e,t,r){var n=t(e);return Fi(e)?n:Mi(n,r(e))}var ar=ji;function xi(e,t){for(var r=-1,n=e==null?0:e.length,a=0,o=[];++r<n;){var s=e[r];t(s,r,e)&&(o[a++]=s)}return o}var Di=xi;function Li(){return[]}var or=Li,Bi=Di,Ui=or,Ni=Object.prototype,Gi=Ni.propertyIsEnumerable,sr=Object.getOwnPropertySymbols,Vi=sr?function(e){return e==null?[]:(e=Object(e),Bi(sr(e),function(t){return Gi.call(e,t)}))}:Ui,it=Vi;function Ri(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}var Hi=Ri;function Ki(e){return e!=null&&typeof e=="object"}var J=Ki,qi=se,zi=J,Wi="[object Arguments]";function ki(e){return zi(e)&&qi(e)==Wi}var Ji=ki,ir=Ji,Yi=J,ur=Object.prototype,Xi=ur.hasOwnProperty,Zi=ur.propertyIsEnumerable,Qi=ir(function(){return arguments}())?ir:function(e){return Yi(e)&&Xi.call(e,"callee")&&!Zi.call(e,"callee")},ut=Qi,_e={exports:{}};function eu(){return!1}var tu=eu;(function(e,t){var r=G,n=tu,a=t&&!t.nodeType&&t,o=a&&!0&&e&&!e.nodeType&&e,s=o&&o.exports===a,i=s?r.Buffer:void 0,f=i?i.isBuffer:void 0,d=f||n;e.exports=d})(_e,_e.exports);var ru=9007199254740991,nu=/^(?:0|[1-9]\d*)$/;function au(e,t){var r=typeof e;return t=t==null?ru:t,!!t&&(r=="number"||r!="symbol"&&nu.test(e))&&e>-1&&e%1==0&&e<t}var ct=au,ou=9007199254740991;function su(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ou}var lt=su,iu=se,uu=lt,cu=J,lu="[object Arguments]",fu="[object Array]",du="[object Boolean]",vu="[object Date]",pu="[object Error]",gu="[object Function]",hu="[object Map]",yu="[object Number]",$u="[object Object]",_u="[object RegExp]",bu="[object Set]",mu="[object String]",Au="[object WeakMap]",Su="[object ArrayBuffer]",Tu="[object DataView]",wu="[object Float32Array]",Ou="[object Float64Array]",Eu="[object Int8Array]",Cu="[object Int16Array]",Iu="[object Int32Array]",Pu="[object Uint8Array]",Mu="[object Uint8ClampedArray]",Fu="[object Uint16Array]",ju="[object Uint32Array]",O={};O[wu]=O[Ou]=O[Eu]=O[Cu]=O[Iu]=O[Pu]=O[Mu]=O[Fu]=O[ju]=!0,O[lu]=O[fu]=O[Su]=O[du]=O[Tu]=O[vu]=O[pu]=O[gu]=O[hu]=O[yu]=O[$u]=O[_u]=O[bu]=O[mu]=O[Au]=!1;function xu(e){return cu(e)&&uu(e.length)&&!!O[iu(e)]}var Du=xu;function Lu(e){return function(t){return e(t)}}var ft=Lu,be={exports:{}};(function(e,t){var r=Vt,n=t&&!t.nodeType&&t,a=n&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===n,s=o&&r.process,i=function(){try{var f=a&&a.require&&a.require("util").types;return f||s&&s.binding&&s.binding("util")}catch{}}();e.exports=i})(be,be.exports);var Bu=Du,Uu=ft,cr=be.exports,lr=cr&&cr.isTypedArray,Nu=lr?Uu(lr):Bu,fr=Nu,Gu=Hi,Vu=ut,Ru=V,Hu=_e.exports,Ku=ct,qu=fr,zu=Object.prototype,Wu=zu.hasOwnProperty;function ku(e,t){var r=Ru(e),n=!r&&Vu(e),a=!r&&!n&&Hu(e),o=!r&&!n&&!a&&qu(e),s=r||n||a||o,i=s?Gu(e.length,String):[],f=i.length;for(var d in e)(t||Wu.call(e,d))&&!(s&&(d=="length"||a&&(d=="offset"||d=="parent")||o&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||Ku(d,f)))&&i.push(d);return i}var dr=ku,Ju=Object.prototype;function Yu(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Ju;return e===r}var dt=Yu;function Xu(e,t){return function(r){return e(t(r))}}var vr=Xu,Zu=vr,Qu=Zu(Object.keys,Object),ec=Qu,tc=dt,rc=ec,nc=Object.prototype,ac=nc.hasOwnProperty;function oc(e){if(!tc(e))return rc(e);var t=[];for(var r in Object(e))ac.call(e,r)&&r!="constructor"&&t.push(r);return t}var sc=oc,ic=zt,uc=lt;function cc(e){return e!=null&&uc(e.length)&&!ic(e)}var pr=cc,lc=dr,fc=sc,dc=pr;function vc(e){return dc(e)?lc(e):fc(e)}var Le=vc,pc=ar,gc=it,hc=Le;function yc(e){return pc(e,hc,gc)}var gr=yc,hr=gr,$c=1,_c=Object.prototype,bc=_c.hasOwnProperty;function mc(e,t,r,n,a,o){var s=r&$c,i=hr(e),f=i.length,d=hr(t),b=d.length;if(f!=b&&!s)return!1;for(var g=f;g--;){var _=i[g];if(!(s?_ in t:bc.call(t,_)))return!1}var S=o.get(e),C=o.get(t);if(S&&C)return S==t&&C==e;var M=!0;o.set(e,t),o.set(t,e);for(var E=s;++g<f;){_=i[g];var A=e[_],j=t[_];if(n)var x=s?n(j,A,_,t,e,o):n(A,j,_,e,t,o);if(!(x===void 0?A===j||a(A,j,r,n,o):x)){M=!1;break}E||(E=_=="constructor")}if(M&&!E){var B=e.constructor,k=t.constructor;B!=k&&"constructor"in e&&"constructor"in t&&!(typeof B=="function"&&B instanceof B&&typeof k=="function"&&k instanceof k)&&(M=!1)}return o.delete(e),o.delete(t),M}var Ac=mc,Sc=te,Tc=G,wc=Sc(Tc,"DataView"),Oc=wc,Ec=te,Cc=G,Ic=Ec(Cc,"Promise"),Pc=Ic,Mc=te,Fc=G,jc=Mc(Fc,"Set"),yr=jc,xc=te,Dc=G,Lc=xc(Dc,"WeakMap"),Bc=Lc,vt=Oc,pt=tt,gt=Pc,ht=yr,yt=Bc,$r=se,le=kt,_r="[object Map]",Uc="[object Object]",br="[object Promise]",mr="[object Set]",Ar="[object WeakMap]",Sr="[object DataView]",Nc=le(vt),Gc=le(pt),Vc=le(gt),Rc=le(ht),Hc=le(yt),re=$r;(vt&&re(new vt(new ArrayBuffer(1)))!=Sr||pt&&re(new pt)!=_r||gt&&re(gt.resolve())!=br||ht&&re(new ht)!=mr||yt&&re(new yt)!=Ar)&&(re=function(e){var t=$r(e),r=t==Uc?e.constructor:void 0,n=r?le(r):"";if(n)switch(n){case Nc:return Sr;case Gc:return _r;case Vc:return br;case Rc:return mr;case Hc:return Ar}return t});var Be=re,$t=nt,Kc=Qt,qc=Ci,zc=Ac,Tr=Be,wr=V,Or=_e.exports,Wc=fr,kc=1,Er="[object Arguments]",Cr="[object Array]",Ue="[object Object]",Jc=Object.prototype,Ir=Jc.hasOwnProperty;function Yc(e,t,r,n,a,o){var s=wr(e),i=wr(t),f=s?Cr:Tr(e),d=i?Cr:Tr(t);f=f==Er?Ue:f,d=d==Er?Ue:d;var b=f==Ue,g=d==Ue,_=f==d;if(_&&Or(e)){if(!Or(t))return!1;s=!0,b=!1}if(_&&!b)return o||(o=new $t),s||Wc(e)?Kc(e,t,r,n,a,o):qc(e,t,f,r,n,a,o);if(!(r&kc)){var S=b&&Ir.call(e,"__wrapped__"),C=g&&Ir.call(t,"__wrapped__");if(S||C){var M=S?e.value():e,E=C?t.value():t;return o||(o=new $t),a(M,E,r,n,o)}}return _?(o||(o=new $t),zc(e,t,r,n,a,o)):!1}var Xc=Yc,Zc=Xc,Pr=J;function Mr(e,t,r,n,a){return e===t?!0:e==null||t==null||!Pr(e)&&!Pr(t)?e!==e&&t!==t:Zc(e,t,r,n,Mr,a)}var _t=Mr,Qc=nt,el=_t,tl=1,rl=2;function nl(e,t,r,n){var a=r.length,o=a,s=!n;if(e==null)return!o;for(e=Object(e);a--;){var i=r[a];if(s&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++a<o;){i=r[a];var f=i[0],d=e[f],b=i[1];if(s&&i[2]){if(d===void 0&&!(f in e))return!1}else{var g=new Qc;if(n)var _=n(d,b,f,e,t,g);if(!(_===void 0?el(b,d,tl|rl,n,g):_))return!1}}return!0}var al=nl,ol=ee;function sl(e){return e===e&&!ol(e)}var Fr=sl,il=Fr,ul=Le;function cl(e){for(var t=ul(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,il(a)]}return t}var ll=cl;function fl(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var jr=fl,dl=al,vl=ll,pl=jr;function gl(e){var t=vl(e);return t.length==1&&t[0][2]?pl(t[0][0],t[0][1]):function(r){return r===e||dl(r,e,t)}}var hl=gl,yl=se,$l=J,_l="[object Symbol]";function bl(e){return typeof e=="symbol"||$l(e)&&yl(e)==_l}var bt=bl,ml=V,Al=bt,Sl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Tl=/^\w*$/;function wl(e,t){if(ml(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Al(e)?!0:Tl.test(e)||!Sl.test(e)||t!=null&&e in Object(t)}var mt=wl,xr=rt,Ol="Expected a function";function At(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Ol);var r=function(){var n=arguments,a=t?t.apply(this,n):n[0],o=r.cache;if(o.has(a))return o.get(a);var s=e.apply(this,n);return r.cache=o.set(a,s)||o,s};return r.cache=new(At.Cache||xr),r}At.Cache=xr;var El=At,Cl=El,Il=500;function Pl(e){var t=Cl(e,function(n){return r.size===Il&&r.clear(),n}),r=t.cache;return t}var Ml=Pl,Fl=Ml,jl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xl=/\\(\\)?/g,Dl=Fl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(jl,function(r,n,a,o){t.push(a?o.replace(xl,"$1"):n||r)}),t}),Ll=Dl;function Bl(e,t){for(var r=-1,n=e==null?0:e.length,a=Array(n);++r<n;)a[r]=t(e[r],r,e);return a}var St=Bl,Dr=oe,Ul=St,Nl=V,Gl=bt,Vl=1/0,Lr=Dr?Dr.prototype:void 0,Br=Lr?Lr.toString:void 0;function Ur(e){if(typeof e=="string")return e;if(Nl(e))return Ul(e,Ur)+"";if(Gl(e))return Br?Br.call(e):"";var t=e+"";return t=="0"&&1/e==-Vl?"-0":t}var Rl=Ur,Hl=Rl;function Kl(e){return e==null?"":Hl(e)}var ql=Kl,zl=V,Wl=mt,kl=Ll,Jl=ql;function Yl(e,t){return zl(e)?e:Wl(e,t)?[e]:kl(Jl(e))}var fe=Yl,Xl=bt,Zl=1/0;function Ql(e){if(typeof e=="string"||Xl(e))return e;var t=e+"";return t=="0"&&1/e==-Zl?"-0":t}var de=Ql,ef=fe,tf=de;function rf(e,t){t=ef(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[tf(t[r++])];return r&&r==n?e:void 0}var Ne=rf,nf=Ne;function af(e,t,r){var n=e==null?void 0:nf(e,t);return n===void 0?r:n}var Ge=af;function of(e,t){return e!=null&&t in Object(e)}var sf=of,uf=fe,cf=ut,lf=V,ff=ct,df=lt,vf=de;function pf(e,t,r){t=uf(t,e);for(var n=-1,a=t.length,o=!1;++n<a;){var s=vf(t[n]);if(!(o=e!=null&&r(e,s)))break;e=e[s]}return o||++n!=a?o:(a=e==null?0:e.length,!!a&&df(a)&&ff(s,a)&&(lf(e)||cf(e)))}var gf=pf,hf=sf,yf=gf;function $f(e,t){return e!=null&&yf(e,t,hf)}var _f=$f,bf=_t,mf=Ge,Af=_f,Sf=mt,Tf=Fr,wf=jr,Of=de,Ef=1,Cf=2;function If(e,t){return Sf(e)&&Tf(t)?wf(Of(e),t):function(r){var n=mf(r,e);return n===void 0&&n===t?Af(r,e):bf(t,n,Ef|Cf)}}var Pf=If;function Mf(e){return e}var Nr=Mf;function Ff(e){return function(t){return t==null?void 0:t[e]}}var jf=Ff,xf=Ne;function Df(e){return function(t){return xf(t,e)}}var Lf=Df,Bf=jf,Uf=Lf,Nf=mt,Gf=de;function Vf(e){return Nf(e)?Bf(Gf(e)):Uf(e)}var Rf=Vf,Hf=hl,Kf=Pf,qf=Nr,zf=V,Wf=Rf;function kf(e){return typeof e=="function"?e:e==null?qf:typeof e=="object"?zf(e)?Kf(e[0],e[1]):Hf(e):Wf(e)}var Gr=kf,Jf="Expected a function";function Yf(e){if(typeof e!="function")throw new TypeError(Jf);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var Xf=Yf,Zf=te,Qf=function(){try{var e=Zf(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Vr=Qf,Rr=Vr;function ed(e,t,r){t=="__proto__"&&Rr?Rr(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var Hr=ed,td=Hr,rd=Qe,nd=Object.prototype,ad=nd.hasOwnProperty;function od(e,t,r){var n=e[t];(!(ad.call(e,t)&&rd(n,r))||r===void 0&&!(t in e))&&td(e,t,r)}var Tt=od,sd=Tt,id=fe,ud=ct,Kr=ee,cd=de;function ld(e,t,r,n){if(!Kr(e))return e;t=id(t,e);for(var a=-1,o=t.length,s=o-1,i=e;i!=null&&++a<o;){var f=cd(t[a]),d=r;if(f==="__proto__"||f==="constructor"||f==="prototype")return e;if(a!=s){var b=i[f];d=n?n(b,f,i):void 0,d===void 0&&(d=Kr(b)?b:ud(t[a+1])?[]:{})}sd(i,f,d),i=i[f]}return e}var qr=ld,fd=Ne,dd=qr,vd=fe;function pd(e,t,r){for(var n=-1,a=t.length,o={};++n<a;){var s=t[n],i=fd(e,s);r(i,s)&&dd(o,vd(s,e),i)}return o}var gd=pd,hd=vr,yd=hd(Object.getPrototypeOf,Object),wt=yd,$d=st,_d=wt,bd=it,md=or,Ad=Object.getOwnPropertySymbols,Sd=Ad?function(e){for(var t=[];e;)$d(t,bd(e)),e=_d(e);return t}:md,zr=Sd;function Td(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var wd=Td,Od=ee,Ed=dt,Cd=wd,Id=Object.prototype,Pd=Id.hasOwnProperty;function Md(e){if(!Od(e))return Cd(e);var t=Ed(e),r=[];for(var n in e)n=="constructor"&&(t||!Pd.call(e,n))||r.push(n);return r}var Fd=Md,jd=dr,xd=Fd,Dd=pr;function Ld(e){return Dd(e)?jd(e,!0):xd(e)}var Ot=Ld,Bd=ar,Ud=zr,Nd=Ot;function Gd(e){return Bd(e,Nd,Ud)}var Et=Gd,Vd=St,Rd=Gr,Hd=gd,Kd=Et;function qd(e,t){if(e==null)return{};var r=Vd(Kd(e),function(n){return[n]});return t=Rd(t),Hd(e,r,function(n,a){return t(n,a[0])})}var zd=qd,Wd=Gr,kd=Xf,Jd=zd;function Yd(e,t){return Jd(e,kd(Wd(t)))}var Xd=Yd;const Zd=(e="on",t)=>{if(Array.isArray(t))return t.some(r=>r===!0||r===e);if(typeof t=="boolean")return t;if(typeof t=="string")return t===e},Qd=(e="on",t)=>{if(typeof t=="string")return t===e},ev={initial:"onBlur",whenTouched:"onChange",whenSubmitted:"onChange"},tv=({clearError:e,validate:t,defaultValue:r,touched:n,setTouched:a,hasBeenSubmitted:o,validationBehavior:s,name:i})=>{const f=U(U({},ev),s);return(d={})=>{const b=o?f.whenSubmitted:n?f.whenTouched:f.initial,g=z(U({},d),{onChange:(..._)=>{var S;return b==="onChange"?t():e(),(S=d==null?void 0:d.onChange)==null?void 0:S.call(d,..._)},onBlur:(..._)=>{var S;return b==="onBlur"&&t(),a(!0),(S=d==null?void 0:d.onBlur)==null?void 0:S.call(d,..._)},name:i});return d.type==="checkbox"?g.defaultChecked=Zd(d.value,r):d.type==="radio"?g.defaultChecked=Qd(d.value,r):d.value===void 0&&(g.defaultValue=r),Xd(g,_=>_===void 0)}},ve=Symbol(),Wr=e=>!!e[ve],rv=e=>!e[ve].c,Ve=e=>{var t,r;(r=(t=e[ve]).c)==null||r.call(t)},Re=(e,t)=>{const r=e[ve].o,n=t[ve].o;return r===n||e===n||Wr(r)&&Re(r,t)},kr=e=>{const t={o:e,c:null},r=new Promise(n=>{t.c=()=>{t.c=null,n()},e.then(t.c,t.c)});return r[ve]=t,r};var nv=Object.defineProperty,av=Object.defineProperties,ov=Object.getOwnPropertyDescriptors,Jr=Object.getOwnPropertySymbols,sv=Object.prototype.hasOwnProperty,iv=Object.prototype.propertyIsEnumerable,Yr=(e,t,r)=>t in e?nv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,uv=(e,t)=>{for(var r in t||(t={}))sv.call(t,r)&&Yr(e,r,t[r]);if(Jr)for(var r of Jr(t))iv.call(t,r)&&Yr(e,r,t[r]);return e},cv=(e,t)=>av(e,ov(t));const Ct=e=>"init"in e,Xr="r",Zr="w",Qr="c",en="s",lv="h",J$="n",Y$="l",X$="a",Z$="m",fv=e=>{const t=new WeakMap,r=new WeakMap,n=new Map;let a,o;if(e)for(const[u,l]of e){const v={v:l,r:0,d:new Map};t.set(u,v)}const s=new WeakMap,i=(u,l,v)=>{let p=s.get(l);p||(p=new Map,s.set(l,p)),v.then(()=>{p.get(u)===v&&(p.delete(u),p.size||s.delete(l))}),p.set(u,v)},f=u=>{const l=new Set,v=s.get(u);return v&&(s.delete(u),v.forEach((p,h)=>{Ve(p),l.add(h)})),l},d=new WeakMap,b=u=>{let l=d.get(u);return l||(l=new Map,d.set(u,l)),l},g=(u,l)=>{if(u){const v=b(u);let p=v.get(l);return p||(p=g(u.p,l),p&&("p"in p&&p.p.then(()=>v.delete(l)),v.set(l,p))),p}return t.get(l)},_=(u,l,v)=>{if(u)b(u).set(l,v);else{const p=t.get(l);t.set(l,v),n.has(l)||n.set(l,p)}},S=(u,l=new Map,v)=>{if(!v)return l;const p=new Map;let h=!1;return v.forEach(c=>{var $;const T=(($=g(u,c))==null?void 0:$.r)||0;p.set(c,T),l.get(c)!==T&&(h=!0)}),l.size===p.size&&!h?l:p},C=(u,l,v,p,h)=>{const c=g(u,l);if(c){if(h&&(!("p"in c)||!Re(c.p,h)))return c;"p"in c&&Ve(c.p)}const $={v,r:(c==null?void 0:c.r)||0,d:S(u,c==null?void 0:c.d,p)};return!c||!("v"in c)||!Object.is(c.v,v)?(++$.r,$.d.has(l)&&($.d=new Map($.d).set(l,$.r))):$.d!==c.d&&($.d.size!==c.d.size||!Array.from($.d.keys()).every(T=>c.d.has(T)))&&Promise.resolve().then(()=>{K(u)}),_(u,l,$),$},M=(u,l,v,p,h)=>{const c=g(u,l);if(c){if(h&&(!("p"in c)||!Re(c.p,h)))return c;"p"in c&&Ve(c.p)}const $={e:v,r:(c==null?void 0:c.r)||0,d:S(u,c==null?void 0:c.d,p)};return _(u,l,$),$},E=(u,l,v,p)=>{const h=g(u,l);if(h&&"p"in h){if(Re(h.p,v))return h;Ve(h.p)}i(u,l,v);const c={p:v,r:(h==null?void 0:h.r)||0,d:S(u,h==null?void 0:h.d,p)};return _(u,l,c),c},A=(u,l,v,p)=>{if(v instanceof Promise){const h=kr(v.then(c=>{C(u,l,c,p,h),K(u)}).catch(c=>{if(c instanceof Promise)return Wr(c)?c.then(()=>{x(u,l,!0)}):c;M(u,l,c,p,h),K(u)}));return E(u,l,h,p)}return C(u,l,v,p)},j=(u,l)=>{const v=g(u,l);if(v){const p=cv(uv({},v),{i:v.r});_(u,l,p)}},x=(u,l,v)=>{if(!v){const h=g(u,l);if(h&&(h.r!==h.i&&"p"in h&&!rv(h.p)||(h.d.forEach((c,$)=>{if($!==l)if(!r.has($))x(u,$);else{const T=g(u,$);T&&T.r===T.i&&x(u,$)}}),Array.from(h.d).every(([c,$])=>{const T=g(u,c);return T&&"v"in T&&T.r===$}))))return h}const p=new Set;try{const h=l.read(c=>{p.add(c);const $=c===l?g(u,c):x(u,c);if($){if("e"in $)throw $.e;if("p"in $)throw $.p;return $.v}if(Ct(c))return c.init;throw new Error("no atom init")});return A(u,l,h,p)}catch(h){if(h instanceof Promise){const c=kr(h);return E(u,l,c,p)}return M(u,l,h,p)}},B=(u,l)=>x(l,u),k=u=>{let l=r.get(u);return l||(l=Ce(u)),l},Oe=(u,l)=>!l.l.size&&(!l.t.size||l.t.size===1&&l.t.has(u)),H=u=>{const l=r.get(u);l&&Oe(u,l)&&Ie(u)},Ee=(u,l)=>{const v=r.get(l);v==null||v.t.forEach(p=>{p!==l&&(j(u,p),Ee(u,p))})},ke=(u,l,v)=>{let p=!0;const h=(T,D)=>{typeof D=="boolean"&&(console.warn("[DEPRECATED] Please use { unstable_promise: true }"),D={unstable_promise:D});const q=x(u,T);if("e"in q)throw q.e;if("p"in q){if(D!=null&&D.unstable_promise)return q.p.then(()=>h(T,D));throw q.p}if("v"in q)return q.v;throw new Error("no value found")},c=(T,D)=>{let q;if(T===l){if(!Ct(T))throw new Error("atom not writable");f(T).forEach(Kn=>{Kn!==u&&A(Kn,T,D)}),A(u,T,D),Ee(u,T)}else q=ke(u,T,D);return p||K(u),q},$=l.write(h,c,v);return p=!1,u=void 0,$},ge=(u,l,v)=>{const p=ke(v,u,l);return K(v),p},he=u=>!!u.write,Ce=(u,l)=>{const v={t:new Set(l&&[l]),l:new Set};if(r.set(u,v),x(void 0,u).d.forEach((h,c)=>{const $=r.get(c);$?$.t.add(u):c!==u&&Ce(c,u)}),he(u)&&u.onMount){const h=$=>ge(u,$),c=u.onMount(h);c&&(v.u=c)}return v},Ie=u=>{var l;const v=(l=r.get(u))==null?void 0:l.u;v&&v(),r.delete(u);const p=g(void 0,u);p&&p.d.forEach((h,c)=>{if(c!==u){const $=r.get(c);$&&($.t.delete(u),Oe(c,$)&&Ie(c))}})},ye=(u,l,v)=>{const p=new Set(l.d.keys());v==null||v.forEach((h,c)=>{if(p.has(c)){p.delete(c);return}const $=r.get(c);$&&($.t.delete(u),Oe(c,$)&&Ie(c))}),p.forEach(h=>{const c=r.get(h);c?c.t.add(u):r.has(u)&&Ce(h,u)})},K=u=>{if(u){b(u).forEach((v,p)=>{if(v!==t.get(p)){const h=r.get(p);h==null||h.l.forEach(c=>c(u))}});return}for(;n.size;){const l=Array.from(n);n.clear(),l.forEach(([v,p])=>{const h=g(void 0,v);h&&h.d!==(p==null?void 0:p.d)&&ye(v,h,p==null?void 0:p.d);const c=r.get(v);c==null||c.l.forEach($=>$())})}},Je=u=>{b(u).forEach((v,p)=>{const h=t.get(p);(v.r>((h==null?void 0:h.r)||0)||"v"in v&&v.r===(h==null?void 0:h.r)&&v.d!==(h==null?void 0:h.d))&&(t.set(p,v),v.d!==(h==null?void 0:h.d)&&ye(p,v,h==null?void 0:h.d))})},Gt=(u,l)=>{l&&Je(l),K(void 0)},Ye=(u,l)=>{const p=k(u).l;return p.add(l),()=>{p.delete(l),H(u)}},Xe=(u,l)=>{for(const[v,p]of u)Ct(v)&&(A(l,v,p),Ee(l,v));K(l)};return{[Xr]:B,[Zr]:ge,[Qr]:Gt,[en]:Ye,[lv]:Xe}},dv=e=>({s:fv(e)}),It=new Map,tn=e=>(It.has(e)||It.set(e,y.createContext(dv())),It.get(e));let vv=0;function P(e,t){const r=`atom${++vv}`,n={toString:()=>r};return typeof e=="function"?n.read=e:(n.init=e,n.read=a=>a(n),n.write=(a,o,s)=>o(n,typeof s=="function"?s(a(n)):s)),t&&(n.write=t),n}const pv=e=>!!e.write;function rn(e,t){"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope);const r=tn(t),{s:n,w:a}=y.useContext(r),o=y.useCallback(g=>{const _=n[Xr](e,g);if("e"in _)throw _.e;if("p"in _)throw _.p;if("v"in _)return _.v;throw new Error("no atom value")},[n,e]),[[s,i,f],d]=y.useReducer(y.useCallback((g,_)=>{const S=o(_);return Object.is(g[1],S)&&g[2]===e?g:[_,S,e]},[o,e]),void 0,()=>{const _=o(void 0);return[void 0,_,e]});f!==e&&d(void 0),y.useEffect(()=>{const g=n[en](e,d);return d(void 0),g},[n,e]),y.useEffect(()=>{n[Qr](e,s)});const b=y.useCallback(g=>{if(pv(e)){const _=S=>n[Zr](e,g,S);return a?a(_):_()}else throw new Error("not writable atom")},[n,a,e]);return y.useDebugValue(i),[i,b]}const gv="w";function nn(e,t){const r=tn(t),{s:n,w:a}=y.useContext(r);return y.useCallback(s=>{const i=f=>n[gv](e,s,f);return a?a(i):i()},[n,a,e])}function hv(e,t){return rn(e,t)[0]}function Y(e,t){let r=null;const n=new Map,a=o=>{let s;if(t===void 0)s=n.get(o);else for(const[f,d]of n)if(t(f,o)){s=d;break}if(s!==void 0)if(r!=null&&r(s[1],o))n.delete(o);else return s[0];const i=e(o);return n.set(o,[i,Date.now()]),i};return a.remove=o=>{if(t===void 0)n.delete(o);else for(const[s]of n)if(t(s,o)){n.delete(s);break}},a.setShouldRemove=o=>{if(r=o,!!r)for(const[s,i]of n)r(i[1],s)&&n.delete(s)},a}const yv=(e,t)=>{do{const[r,...n]=t,a=e.get(r);if(!a)return;if(!n.length)return a[1];e=a[0],t=n}while(t.length)},$v=(e,t,r)=>{do{const[n,...a]=t;let o=e.get(n);if(o||(o=[new WeakMap],e.set(n,o)),!a.length){o[1]=r;return}e=o[0],t=a}while(t.length)},_v=(()=>{const e=new WeakMap;return(r,n)=>{const a=yv(e,n);if(a)return a;const o=r();return $v(e,n,o),o}})();function bv(e,t,r=Object.is){return _v(()=>{const n=P(()=>({}));return P(o=>{const s=t(o(e)),i=o(n);return"prev"in i&&r(i.prev,s)?i.prev:(i.prev=s,s)})},[e,t,r])}function mv(e,t){const r=y.useMemo(()=>P(null,(a,o,[s,i,f])=>{try{i(e(a,o,s))}catch(d){f(d)}}),[e]),n=nn(r,t);return y.useCallback(a=>new Promise((o,s)=>{n([a,o,s])}),[n])}function Av(e){try{e().removeItem||console.warn("Missing removeItem. In the next version, it will be required.")}catch{}return{getItem:t=>{const r=e().getItem(t);return r instanceof Promise?r.then(n=>JSON.parse(n||"")):JSON.parse(r||"")},setItem:(t,r)=>e().setItem(t,JSON.stringify(r)),removeItem:t=>{var r,n;return(n=(r=e()).removeItem)==null?void 0:n.call(r,t)}}}Av(()=>localStorage);var Sv="Invariant failed";function an(e,t){if(!e)throw new Error(Sv)}const He="__rvfInternalFormId",Tv="__rvfInternalFormDefaults",on=e=>`${Tv}_${e}`,sn=y.createContext(null),Pt=e=>({hydrateTo:()=>e,map:t=>Pt(t(e))}),Mt=()=>({hydrateTo:e=>e,map:()=>Mt()}),me={serverData:Pt,hydratedData:Mt,from:(e,t)=>t?Mt():Pt(e)};function wv(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}var Ov=wv,Ev=Tt,Cv=Hr;function Iv(e,t,r,n){var a=!r;r||(r={});for(var o=-1,s=t.length;++o<s;){var i=t[o],f=n?n(r[i],e[i],i,r,e):void 0;f===void 0&&(f=e[i]),a?Cv(r,i,f):Ev(r,i,f)}return r}var Ae=Iv,Pv=Ae,Mv=Le;function Fv(e,t){return e&&Pv(t,Mv(t),e)}var jv=Fv,xv=Ae,Dv=Ot;function Lv(e,t){return e&&xv(t,Dv(t),e)}var Bv=Lv,Ft={exports:{}};(function(e,t){var r=G,n=t&&!t.nodeType&&t,a=n&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===n,s=o?r.Buffer:void 0,i=s?s.allocUnsafe:void 0;function f(d,b){if(b)return d.slice();var g=d.length,_=i?i(g):new d.constructor(g);return d.copy(_),_}e.exports=f})(Ft,Ft.exports);function Uv(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}var Nv=Uv,Gv=Ae,Vv=it;function Rv(e,t){return Gv(e,Vv(e),t)}var Hv=Rv,Kv=Ae,qv=zr;function zv(e,t){return Kv(e,qv(e),t)}var Wv=zv,kv=Object.prototype,Jv=kv.hasOwnProperty;function Yv(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Jv.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var Xv=Yv,un=er;function Zv(e){var t=new e.constructor(e.byteLength);return new un(t).set(new un(e)),t}var jt=Zv,Qv=jt;function ep(e,t){var r=t?Qv(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var tp=ep,rp=/\w*$/;function np(e){var t=new e.constructor(e.source,rp.exec(e));return t.lastIndex=e.lastIndex,t}var ap=np,cn=oe,ln=cn?cn.prototype:void 0,fn=ln?ln.valueOf:void 0;function op(e){return fn?Object(fn.call(e)):{}}var sp=op,ip=jt;function up(e,t){var r=t?ip(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var cp=up,lp=jt,fp=tp,dp=ap,vp=sp,pp=cp,gp="[object Boolean]",hp="[object Date]",yp="[object Map]",$p="[object Number]",_p="[object RegExp]",bp="[object Set]",mp="[object String]",Ap="[object Symbol]",Sp="[object ArrayBuffer]",Tp="[object DataView]",wp="[object Float32Array]",Op="[object Float64Array]",Ep="[object Int8Array]",Cp="[object Int16Array]",Ip="[object Int32Array]",Pp="[object Uint8Array]",Mp="[object Uint8ClampedArray]",Fp="[object Uint16Array]",jp="[object Uint32Array]";function xp(e,t,r){var n=e.constructor;switch(t){case Sp:return lp(e);case gp:case hp:return new n(+e);case Tp:return fp(e,r);case wp:case Op:case Ep:case Cp:case Ip:case Pp:case Mp:case Fp:case jp:return pp(e,r);case yp:return new n;case $p:case mp:return new n(e);case _p:return dp(e);case bp:return new n;case Ap:return vp(e)}}var Dp=xp,Lp=ee,dn=Object.create,Bp=function(){function e(){}return function(t){if(!Lp(t))return{};if(dn)return dn(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}(),Up=Bp,Np=Up,Gp=wt,Vp=dt;function Rp(e){return typeof e.constructor=="function"&&!Vp(e)?Np(Gp(e)):{}}var Hp=Rp,Kp=Be,qp=J,zp="[object Map]";function Wp(e){return qp(e)&&Kp(e)==zp}var kp=Wp,Jp=kp,Yp=ft,vn=be.exports,pn=vn&&vn.isMap,Xp=pn?Yp(pn):Jp,Zp=Xp,Qp=Be,eg=J,tg="[object Set]";function rg(e){return eg(e)&&Qp(e)==tg}var ng=rg,ag=ng,og=ft,gn=be.exports,hn=gn&&gn.isSet,sg=hn?og(hn):ag,ig=sg,ug=nt,cg=Ov,lg=Tt,fg=jv,dg=Bv,vg=Ft.exports,pg=Nv,gg=Hv,hg=Wv,yg=gr,$g=Et,_g=Be,bg=Xv,mg=Dp,Ag=Hp,Sg=V,Tg=_e.exports,wg=Zp,Og=ee,Eg=ig,Cg=Le,Ig=Ot,Pg=1,Mg=2,Fg=4,yn="[object Arguments]",jg="[object Array]",xg="[object Boolean]",Dg="[object Date]",Lg="[object Error]",$n="[object Function]",Bg="[object GeneratorFunction]",Ug="[object Map]",Ng="[object Number]",_n="[object Object]",Gg="[object RegExp]",Vg="[object Set]",Rg="[object String]",Hg="[object Symbol]",Kg="[object WeakMap]",qg="[object ArrayBuffer]",zg="[object DataView]",Wg="[object Float32Array]",kg="[object Float64Array]",Jg="[object Int8Array]",Yg="[object Int16Array]",Xg="[object Int32Array]",Zg="[object Uint8Array]",Qg="[object Uint8ClampedArray]",eh="[object Uint16Array]",th="[object Uint32Array]",w={};w[yn]=w[jg]=w[qg]=w[zg]=w[xg]=w[Dg]=w[Wg]=w[kg]=w[Jg]=w[Yg]=w[Xg]=w[Ug]=w[Ng]=w[_n]=w[Gg]=w[Vg]=w[Rg]=w[Hg]=w[Zg]=w[Qg]=w[eh]=w[th]=!0,w[Lg]=w[$n]=w[Kg]=!1;function Ke(e,t,r,n,a,o){var s,i=t&Pg,f=t&Mg,d=t&Fg;if(r&&(s=a?r(e,n,a,o):r(e)),s!==void 0)return s;if(!Og(e))return e;var b=Sg(e);if(b){if(s=bg(e),!i)return pg(e,s)}else{var g=_g(e),_=g==$n||g==Bg;if(Tg(e))return vg(e,i);if(g==_n||g==yn||_&&!a){if(s=f||_?{}:Ag(e),!i)return f?hg(e,dg(s,e)):gg(e,fg(s,e))}else{if(!w[g])return a?e:{};s=mg(e,g,i)}}o||(o=new ug);var S=o.get(e);if(S)return S;o.set(e,s),Eg(e)?e.forEach(function(E){s.add(Ke(E,t,r,E,e,o))}):wg(e)&&e.forEach(function(E,A){s.set(A,Ke(E,t,r,A,e,o))});var C=d?f?$g:yg:f?Ig:Cg,M=b?void 0:C(e);return cg(M||e,function(E,A){M&&(A=E,E=e[A]),lg(s,A,Ke(E,t,r,A,e,o))}),s}var rh=Ke;function nh(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var ah=nh;function oh(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n<a;)o[n]=e[n+t];return o}var sh=oh,ih=Ne,uh=sh;function ch(e,t){return t.length<2?e:ih(e,uh(t,0,-1))}var lh=ch,fh=fe,dh=ah,vh=lh,ph=de;function gh(e,t){return t=fh(t,e),e=vh(e,t),e==null||delete e[ph(dh(t))]}var hh=gh,yh=se,$h=wt,_h=J,bh="[object Object]",mh=Function.prototype,Ah=Object.prototype,bn=mh.toString,Sh=Ah.hasOwnProperty,Th=bn.call(Object);function wh(e){if(!_h(e)||yh(e)!=bh)return!1;var t=$h(e);if(t===null)return!0;var r=Sh.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&bn.call(r)==Th}var Oh=wh,Eh=Oh;function Ch(e){return Eh(e)?void 0:e}var Ih=Ch,mn=oe,Ph=ut,Mh=V,An=mn?mn.isConcatSpreadable:void 0;function Fh(e){return Mh(e)||Ph(e)||!!(An&&e&&e[An])}var jh=Fh,xh=st,Dh=jh;function Sn(e,t,r,n,a){var o=-1,s=e.length;for(r||(r=Dh),a||(a=[]);++o<s;){var i=e[o];t>0&&r(i)?t>1?Sn(i,t-1,r,n,a):xh(a,i):n||(a[a.length]=i)}return a}var Lh=Sn,Bh=Lh;function Uh(e){var t=e==null?0:e.length;return t?Bh(e,1):[]}var Nh=Uh;function Gh(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Vh=Gh,Rh=Vh,Tn=Math.max;function Hh(e,t,r){return t=Tn(t===void 0?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=Tn(n.length-t,0),s=Array(o);++a<o;)s[a]=n[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=n[a];return i[t]=r(s),Rh(e,this,i)}}var Kh=Hh;function qh(e){return function(){return e}}var zh=qh,Wh=zh,wn=Vr,kh=Nr,Jh=wn?function(e,t){return wn(e,"toString",{configurable:!0,enumerable:!1,value:Wh(t),writable:!0})}:kh,Yh=Jh,Xh=800,Zh=16,Qh=Date.now;function ey(e){var t=0,r=0;return function(){var n=Qh(),a=Zh-(n-r);if(r=n,a>0){if(++t>=Xh)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var ty=ey,ry=Yh,ny=ty,ay=ny(ry),oy=ay,sy=Nh,iy=Kh,uy=oy;function cy(e){return uy(iy(e,void 0,sy),e+"")}var ly=cy,fy=St,dy=rh,vy=hh,py=fe,gy=Ae,hy=Ih,yy=ly,$y=Et,_y=1,by=2,my=4,Ay=yy(function(e,t){var r={};if(e==null)return r;var n=!1;t=fy(t,function(o){return o=py(o,e),n||(n=o.length>1),o}),gy(e,$y(e),r),n&&(r=dy(r,_y|by|my,hy));for(var a=t.length;a--;)vy(r,t[a]);return r}),On=Ay,Sy=_t;function Ty(e,t){return Sy(e,t)}var En=Ty;const X=e=>Y(t=>P(e)),Z=e=>Y(e,En),xt=Symbol("remix-validated-form-scope"),Se=X(!1),Te=X(!1),we=X(!1),R=X({}),pe=X({}),W=X({validateField:()=>Promise.resolve(null),registerReceiveFocus:()=>()=>{},defaultValues:{}}),wy=X(null),Oy=e=>{[Se,Te,we,R,pe,W].forEach(t=>t.remove(e))},Cn=Y(e=>P(t=>Object.keys(t(R(e))).length===0)),Ey=Y(e=>P(null,(t,r)=>{r(Te(e),!0),r(we(e),!0)})),Cy=Y(e=>P(null,(t,r)=>{r(Te(e),!1)})),In=Y(e=>P(null,(t,r,{field:n,touched:a})=>{const o=t(pe(e));o[n]!==a&&r(pe(e),z(U({},o),{[n]:a}))})),Dt=Y(e=>P(null,(t,r,{field:n,error:a})=>{const o=t(R(e));a===void 0&&n in o&&r(R(e),On(o,n)),a!==void 0&&o[n]!==a&&r(R(e),z(U({},t(R(e))),{[n]:a}))})),Iy=Z(({formId:e,field:t})=>P(r=>r(pe(e))[t],(r,n,a)=>{n(In(e),{field:t,touched:a})})),Py=Z(({formId:e,field:t})=>P(r=>r(R(e))[t],(r,n,a)=>{n(Dt(e),{field:t,error:a})}));Z(({formId:e,field:t})=>bv(W(e),r=>r.defaultValues[t]));const L=e=>nn(e,xt),qe=e=>rn(e,xt),F=e=>hv(e,xt),Q=(e,t)=>{const r=y.useContext(sn);if(e)return{formId:e};if(r)return r;throw new Error(`Unable to determine form for ${t}. Please use it inside a ValidatedForm or pass a 'formId'.`)};function Lt({fetcher:e,subaction:t,formId:r}){var a;const n=I.useActionData();return e?(a=e.data)!=null&&a.fieldErrors?e.data:null:n!=null&&n.fieldErrors?typeof r=="string"&&n.formId?n.formId===r?n:null:!t&&!n.subaction||n.subaction===t?n:null:null}const Pn=e=>{const t=Lt(e),r=F(Se(e.formId));return me.from(t==null?void 0:t.fieldErrors,r)},Mn=({formId:e})=>{const t=I.useMatches();if(typeof e=="string"){const r=on(e),n=t.reverse().find(a=>a.data&&r in a.data);return n==null?void 0:n.data[r]}return null},Fn=e=>{const{formId:t,defaultValuesProp:r}=e,n=F(Se(t)),a=Lt(e),o=Mn(e);return n?me.hydratedData():a!=null&&a.repopulateFields?(an(typeof a.repopulateFields=="object"),me.serverData(a.repopulateFields)):r?me.serverData(r):me.serverData(o)},My=({fetcher:e})=>{const t=I.useTransition();return e?e.state==="submitting":!!t.submission},Fy=(e,{formId:t})=>qe(Iy({formId:t,field:e})),jy=(e,t)=>{const r=Pn(t),[n,a]=qe(Py({formId:t.formId,field:e}));return[r.map(o=>o==null?void 0:o[e]).hydrateTo(n),a]},jn=(e,t)=>{const r=Fn(t),{defaultValues:n}=F(W(t.formId));return r.map(a=>Ge(a,e)).hydrateTo(Ge(n,e))},xy=({formId:e})=>{const t=L(Dt(e));return y.useCallback(r=>t({field:r,error:void 0}),[t])},Dy=({formId:e})=>{const t=L(In(e));return y.useCallback((r,n)=>t({field:r,touched:n}),[t])},Bt=X({}),ze=Z(()=>P(0)),We=Z(()=>P(void 0)),xn=Z(()=>P(!1)),Dn=Z(()=>P(void 0)),Ut=Z(()=>P(void 0)),Ly=P(null,(e,t,{formId:r,field:n})=>{t(ze({formId:r,field:n}),o=>o+1),e(ze({formId:r,field:n}))===1&&t(Bt(r),o=>z(U({},o),{[n]:We({formId:r,field:n})}))}),By=P(null,(e,t,{formId:r,field:n})=>{t(ze({formId:r,field:n}),o=>o-1),e(ze({formId:r,field:n}))===0&&(t(Bt(r),o=>On(o,n)),We.remove({formId:r,field:n}),Ut.remove({formId:r,field:n}),xn.remove({formId:r,field:n}))}),Ln=P(null,(e,t,{formId:r,field:n,value:a})=>{t(We({formId:r,field:n}),a);const o=Ut({formId:r,field:n}),s=Dn({formId:r,field:n}),i=new Promise(f=>t(o,()=>{f(),t(o,void 0),t(s,void 0)}));t(s,i)}),Uy=(e,t)=>{const r=We({formId:e.formId,field:t}),[n,a]=qe(r),o=jn(t,e),s=F(Se(e.formId)),[i,f]=qe(xn({formId:e.formId,field:t}));return y.useEffect(()=>{s&&!i&&(a(o),f(!0))},[o,t,e.formId,i,s,f,a]),i?n:o},Ny=(e,t)=>{const r=F(Ut({formId:e.formId,field:t}));y.useEffect(()=>{r==null||r()},[r]);const n=L(Ly),a=L(By);y.useEffect(()=>(n({formId:e.formId,field:t}),()=>a({formId:e.formId,field:t})),[e.formId,t,n,a]);const o=L(Ln),s=y.useCallback(f=>o({formId:e.formId,field:t,value:f}),[t,e.formId,o]);return[Uy(e,t),s]},Gy=e=>{const t=L(Ln);return y.useCallback((r,n)=>t({formId:e,field:r,value:n}),[e,t])},Vy=e=>mv(y.useCallback(async(t,r,n)=>{await t(Dn({formId:e,field:n}))},[e])),Bn=e=>{const t=Q(e,"useIsSubmitting");return F(Te(t.formId))},Un=e=>{const t=Q(e,"useIsValid");return F(Cn(t.formId))},Ry=(e,t)=>{const{formId:r,handleReceiveFocus:n}=t!=null?t:{},a=Q(r,"useField"),o=jn(e,a),[s,i]=Fy(e,a),[f,d]=jy(e,a),b=F(we(a.formId)),{validateField:g,registerReceiveFocus:_}=F(W(a.formId));return y.useEffect(()=>{if(n)return _(e,n)},[n,e,_]),y.useMemo(()=>{const C={error:f,clearError:()=>d(void 0),validate:()=>{g(e)},defaultValue:o,touched:s,setTouched:i},M=tv(z(U({},C),{name:e,hasBeenSubmitted:b,validationBehavior:t==null?void 0:t.validationBehavior}));return z(U({},C),{getInputProps:M})},[f,o,s,i,e,b,t==null?void 0:t.validationBehavior,d,g])},Hy=(e,t)=>{const r=Q(t,"useControlField"),[n,a]=Ny(r,e);return[n,a]},Ky=e=>{const t=Q(e,"useControlField");return Gy(t.formId)};function qy(e,t,r){return N.json({fieldErrors:e.fieldErrors,subaction:e.subaction,repopulateFields:t,formId:e.formId},U({status:422},r))}const zy=(e,t)=>({[on(e)]:t});function Wy(e,t,r,n){for(var a=e.length,o=r+(n?1:-1);n?o--:++o<a;)if(t(e[o],o,e))return o;return-1}var ky=Wy;function Jy(e){return e!==e}var Yy=Jy;function Xy(e,t,r){for(var n=r-1,a=e.length;++n<a;)if(e[n]===t)return n;return-1}var Zy=Xy,Qy=ky,e$=Yy,t$=Zy;function r$(e,t,r){return t===t?t$(e,t,r):Qy(e,e$,r)}var n$=r$,a$=n$;function o$(e,t){var r=e==null?0:e.length;return!!r&&a$(e,t,0)>-1}var s$=o$;function i$(e,t,r){for(var n=-1,a=e==null?0:e.length;++n<a;)if(r(t,e[n]))return!0;return!1}var u$=i$;function c$(){}var l$=c$,Nt=yr,f$=l$,d$=at,v$=1/0,p$=Nt&&1/d$(new Nt([,-0]))[1]==v$?function(e){return new Nt(e)}:f$,g$=p$,h$=Xt,y$=s$,$$=u$,_$=Zt,b$=g$,m$=at,A$=200;function S$(e,t,r){var n=-1,a=y$,o=e.length,s=!0,i=[],f=i;if(r)s=!1,a=$$;else if(o>=A$){var d=t?null:b$(e);if(d)return m$(d);s=!1,a=_$,f=new h$}else f=t?[]:i;e:for(;++n<o;){var b=e[n],g=t?t(b):b;if(b=r||b!==0?b:0,s&&g===g){for(var _=f.length;_--;)if(f[_]===g)continue e;t&&f.push(g),i.push(b)}else a(f,g,r)||(f!==i&&f.push(g),i.push(b))}return i}var T$=S$,w$=T$;function O$(e){return e&&e.length?w$(e):[]}var E$=O$;class Nn{constructor(){this.dict=new Map,this.add=(t,r)=>{this.dict.has(t)?this.dict.get(t).push(r):this.dict.set(t,[r])},this.delete=t=>{this.dict.delete(t)},this.remove=(t,r)=>{if(!this.dict.has(t))return;const n=this.dict.get(t),a=n.indexOf(r);a!==-1&&n.splice(a,1),n.length===0&&this.dict.delete(t)},this.getAll=t=>{var r;return(r=this.dict.get(t))!=null?r:[]},this.entries=()=>this.dict.entries(),this.values=()=>this.dict.values(),this.has=t=>this.dict.has(t)}}const C$=()=>{const e=y.useRef(null);return y.useCallback(()=>(e.current||(e.current=new Nn),e.current),[])},I$=Y(e=>P(null,(t,r)=>{r(R(e),{}),r(pe(e),{}),r(we(e),!1);const{defaultValues:n}=t(W(e)),a=t(Bt(e));Object.entries(a).forEach(([o,s])=>r(s,Ge(n,o)))}));function Gn(e,t){const r=y.useRef(!1);y.useEffect(()=>{e&&(r.current=!0),!e&&r.current&&(r.current=!1,t())})}const P$=e=>t=>{e.filter(Boolean).forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})},M$=typeof window!="undefined"?y.useLayoutEffect:y.useEffect,F$=e=>{const t=y.useRef(e),r=t.current===e||En(t.current,e);return y.useEffect(()=>{r||(t.current=e)}),r?t.current:e},Vn=e=>new FormData(e);function j$(e){return e!==null}const x$=(e,t,r)=>{var o;const n=[...r.elements].map(s=>{const i=s instanceof RadioNodeList?s[0]:s;return i instanceof HTMLInputElement?i.name:null}).filter(j$).filter(s=>s in e),a=E$(n);for(const s of a){if(t.has(s)){t.getAll(s).forEach(f=>{f()});break}const i=r.elements.namedItem(s);if(!!i){if(i instanceof RadioNodeList){const f=(o=[...i].filter(d=>d instanceof HTMLInputElement).find(d=>d.value===i.value))!=null?o:i[0];if(f&&f instanceof HTMLInputElement){f.focus();break}}if(i instanceof HTMLInputElement){if(i.type==="hidden")continue;i.focus();break}}}},D$=e=>{const[t]=y.useState(()=>Symbol("remix-validated-form-id"));return e!=null?e:t},L$=({resetAfterSubmit:e,formRef:t})=>{const r=Bn(),n=Un();return Gn(r,()=>{var a;n&&e&&((a=t.current)==null||a.reset())}),null};function B$(e){let t=!1;return new Proxy(e,{get:(r,n)=>n==="preventDefault"?()=>{t=!0}:n==="defaultPrevented"?t:r[n]})}function U$(M){var E=M,{validator:e,onSubmit:t,children:r,fetcher:n,action:a,defaultValues:o,formRef:s,onReset:i,subaction:f,resetAfterSubmit:d=!1,disableFocusOnError:b,method:g,replace:_,id:S}=E,C=kn(E,["validator","onSubmit","children","fetcher","action","defaultValues","formRef","onReset","subaction","resetAfterSubmit","disableFocusOnError","method","replace","id"]);var h;const A=D$(S),j=F$(o),x=y.useMemo(()=>({formId:A,action:a,subaction:f,defaultValuesProp:j,fetcher:n}),[a,n,A,j,f]),B=Lt(x),k=Mn(x),Oe=My(x),H=y.useRef(null),Ee=(h=n==null?void 0:n.Form)!=null?h:I.Form,ke=I.useSubmit(),ge=L(R(A)),he=L(Dt(A)),Ce=L(I$(A)),Ie=L(Ey(A)),ye=L(Cy(A)),K=L(W(A)),Je=L(Se(A)),Gt=L(wy(A));y.useEffect(()=>(Je(!0),()=>Oy(A)),[A,Je]);const Ye=Vy(A),Xe=y.useCallback(async c=>{an(H.current),await Ye(c);const{error:$}=await e.validateField(Vn(H.current),c);return $?(he({field:c,error:$}),$):(he({field:c,error:void 0}),null)},[Ye,he,e]),u=C$(),l=y.useCallback((c,$)=>(u().add(c,$),()=>{u().remove(c,$)}),[u]);M$(()=>{var c;K({action:a,defaultValues:(c=j!=null?j:k)!=null?c:{},subaction:f,validateField:Xe,registerReceiveFocus:l})},[a,j,l,f,K,Xe,k]),y.useEffect(()=>{var c;ge((c=B==null?void 0:B.fieldErrors)!=null?c:{})},[B==null?void 0:B.fieldErrors,ge,he]),Gn(Oe,()=>{ye()});let v=ne.default.useRef();y.useEffect(()=>{let c=H.current;if(!c)return;function $(T){if(!(T.target instanceof HTMLElement))return;let D=T.target.closest("button,input[type=submit]");D&&D.form===c&&D.type==="submit"&&(v.current=D)}return window.addEventListener("click",$,{capture:!0}),()=>{window.removeEventListener("click",$,{capture:!0})}},[]);const p=async c=>{Ie();const $=await e.validate(Vn(c.currentTarget));if($.error)ye(),ge($.error.fieldErrors),b||x$($.error.fieldErrors,u(),H.current);else{const T=B$(c);if(await(t==null?void 0:t($.data,T)),T.defaultPrevented){ye();return}n?n.submit(v.current||H.current):ke(v.current||H.current,{method:g,replace:_}),v.current=null}};return ne.default.createElement(Ee,z(U({ref:P$([H,s,Gt])},C),{id:S,action:a,method:g,replace:_,onSubmit:c=>{c.preventDefault(),p(c)},onReset:c=>{i==null||i(c),!c.defaultPrevented&&Ce()}}),ne.default.createElement(sn.Provider,{value:x},ne.default.createElement(L$,{formRef:H,resetAfterSubmit:d}),f&&ne.default.createElement("input",{type:"hidden",value:f,name:"subaction"}),S&&ne.default.createElement("input",{type:"hidden",value:S,name:He}),r))}var N$=qr;function G$(e,t,r){return e==null?e:N$(e,t,r)}var V$=G$;const Rn=e=>{const t=new Nn;return e.forEach(([r,n])=>t.add(r,n)),[...t.entries()].reduce((r,[n,a])=>V$(r,n,a.length===1?a[0]:a),{})},Hn=e=>"entries"in e&&typeof e.entries=="function"?Rn([...e.entries()]):Rn(Object.entries(e));function R$(e){return{validate:async t=>{const r=Hn(t),n=await e.validate(r);return n.error?{data:void 0,error:{fieldErrors:n.error,subaction:r.subaction,formId:r[He]},submittedData:r,formId:r[He]}:{data:n.data,error:void 0,submittedData:r,formId:r[He]}},validateField:(t,r)=>e.validateField(Hn(t),r)}}const H$=e=>{const t=Q(e,"useIsValid"),r=F(W(t.formId)),n=F(Te(t.formId)),a=F(we(t.formId)),o=F(pe(t.formId)),s=F(Cn(t.formId)),f=Fn(t).hydrateTo(r.defaultValues),d=F(R(t.formId)),g=Pn(t).hydrateTo(d);return y.useMemo(()=>z(U({},r),{defaultValues:f,fieldErrors:g!=null?g:{},hasBeenSubmitted:a,isSubmitting:n,touchedFields:o,isValid:s}),[r,a,f,g,n,s,o])},K$=e=>{const t=Q(e,"useFormHelpers"),r=Dy(t),{validateField:n}=F(W(t.formId)),a=xy(t);return y.useMemo(()=>({setTouched:r,validateField:n,clearError:a}),[a,r,n])},q$=e=>{const t=Q(e,"useFormContext"),r=H$(e),{clearError:n,setTouched:a,validateField:o}=K$(e),{registerReceiveFocus:s}=F(W(t.formId)),i=y.useCallback((...f)=>{f.forEach(d=>{n(d)})},[n]);return z(U({},r),{setFieldTouched:a,validateField:o,clearError:i,registerReceiveFocus:s})};m.ValidatedForm=U$,m.createValidator=R$,m.setFormDefaults=zy,m.useControlField=Hy,m.useField=Ry,m.useFormContext=q$,m.useIsSubmitting=Bn,m.useIsValid=Un,m.useUpdateControlledField=Ky,m.validationError=qy,Object.defineProperties(m,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "remix-validated-form",
3
- "version": "4.3.0",
3
+ "version": "4.3.1-beta.0",
4
4
  "description": "Form component and utils for easy form validation in remix",
5
- "browser": "./browser/index.js",
6
- "main": "./build/index.js",
5
+ "browser": "./dist/remix-validated-form.cjs.js",
6
+ "main": "./dist/remix-validated-form.umd.js",
7
+ "module": "./dist/remix-validated-form.es.js",
8
+ "types": "./dist/types/index.d.ts",
7
9
  "repository": {
8
10
  "type": "git",
9
11
  "url": "https://github.com/airjp73/remix-validated-form"
@@ -11,9 +13,7 @@
11
13
  "sideEffects": false,
12
14
  "scripts": {
13
15
  "dev": "tsc --module ESNext --outDir ./browser --watch",
14
- "build": "npm run build:browser && npm run build:main",
15
- "build:browser": "tsc --module ESNext --outDir ./browser",
16
- "build:main": "tsc --module CommonJS --outDir ./build",
16
+ "build": "vite build",
17
17
  "prepublishOnly": "cp ../../README.md ./README.md && npm run build",
18
18
  "postpublish": "rm ./README.md"
19
19
  },
@@ -45,7 +45,8 @@
45
45
  "fetch-blob": "^3.1.3",
46
46
  "react": "^17.0.2",
47
47
  "tsconfig": "*",
48
- "typescript": "^4.5.3"
48
+ "typescript": "^4.5.3",
49
+ "vite-config": "*"
49
50
  },
50
51
  "dependencies": {
51
52
  "jotai": "^1.5.3",
@@ -0,0 +1,251 @@
1
+ import { describe, it, expect, vi } from "vitest";
2
+ import {
3
+ createGetInputProps,
4
+ CreateGetInputPropsOptions,
5
+ } from "./getInputProps";
6
+
7
+ const fakeEvent = { fake: "event" } as any;
8
+
9
+ describe("getInputProps", () => {
10
+ describe("initial", () => {
11
+ it("should validate on blur by default", () => {
12
+ const options: CreateGetInputPropsOptions = {
13
+ name: "some-field",
14
+ defaultValue: "test default value",
15
+ touched: false,
16
+ hasBeenSubmitted: false,
17
+ setTouched: vi.fn(),
18
+ clearError: vi.fn(),
19
+ validate: vi.fn(),
20
+ };
21
+ const getInputProps = createGetInputProps(options);
22
+
23
+ const provided = {
24
+ onBlur: vi.fn(),
25
+ onChange: vi.fn(),
26
+ };
27
+ const { onChange, onBlur } = getInputProps(provided);
28
+
29
+ onChange!(fakeEvent);
30
+ expect(provided.onChange).toBeCalledTimes(1);
31
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
32
+ expect(options.setTouched).not.toBeCalled();
33
+ expect(options.validate).not.toBeCalled();
34
+
35
+ onBlur!(fakeEvent);
36
+ expect(provided.onBlur).toBeCalledTimes(1);
37
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
38
+ expect(options.setTouched).toBeCalledTimes(1);
39
+ expect(options.setTouched).toBeCalledWith(true);
40
+ expect(options.validate).toBeCalledTimes(1);
41
+ });
42
+
43
+ it("should respect provided validation behavior", () => {
44
+ const options: CreateGetInputPropsOptions = {
45
+ name: "some-field",
46
+ defaultValue: "test default value",
47
+ touched: false,
48
+ hasBeenSubmitted: false,
49
+ setTouched: vi.fn(),
50
+ clearError: vi.fn(),
51
+ validate: vi.fn(),
52
+ validationBehavior: {
53
+ initial: "onChange",
54
+ },
55
+ };
56
+ const getInputProps = createGetInputProps(options);
57
+
58
+ const provided = {
59
+ onBlur: vi.fn(),
60
+ onChange: vi.fn(),
61
+ };
62
+ const { onChange, onBlur } = getInputProps(provided);
63
+
64
+ onChange!(fakeEvent);
65
+ expect(provided.onChange).toBeCalledTimes(1);
66
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
67
+ expect(options.setTouched).not.toBeCalled();
68
+ expect(options.validate).toBeCalledTimes(1);
69
+
70
+ onBlur!(fakeEvent);
71
+ expect(provided.onBlur).toBeCalledTimes(1);
72
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
73
+ expect(options.setTouched).toBeCalledTimes(1);
74
+ expect(options.setTouched).toBeCalledWith(true);
75
+ expect(options.validate).toBeCalledTimes(1);
76
+ });
77
+
78
+ it("should not validate when behavior is onSubmit", () => {
79
+ const options: CreateGetInputPropsOptions = {
80
+ name: "some-field",
81
+ defaultValue: "test default value",
82
+ touched: false,
83
+ hasBeenSubmitted: false,
84
+ setTouched: vi.fn(),
85
+ clearError: vi.fn(),
86
+ validate: vi.fn(),
87
+ validationBehavior: {
88
+ initial: "onSubmit",
89
+ },
90
+ };
91
+ const getInputProps = createGetInputProps(options);
92
+
93
+ const provided = {
94
+ onBlur: vi.fn(),
95
+ onChange: vi.fn(),
96
+ };
97
+ const { onChange, onBlur } = getInputProps(provided);
98
+
99
+ onChange!(fakeEvent);
100
+ expect(provided.onChange).toBeCalledTimes(1);
101
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
102
+ expect(options.setTouched).not.toBeCalled();
103
+ expect(options.validate).not.toBeCalled();
104
+
105
+ onBlur!(fakeEvent);
106
+ expect(provided.onBlur).toBeCalledTimes(1);
107
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
108
+ expect(options.setTouched).toBeCalledTimes(1);
109
+ expect(options.setTouched).toBeCalledWith(true);
110
+ expect(options.validate).not.toBeCalled();
111
+ });
112
+ });
113
+
114
+ describe("whenTouched", () => {
115
+ it("should validate on change by default", () => {
116
+ const options: CreateGetInputPropsOptions = {
117
+ name: "some-field",
118
+ defaultValue: "test default value",
119
+ touched: true,
120
+ hasBeenSubmitted: false,
121
+ setTouched: vi.fn(),
122
+ clearError: vi.fn(),
123
+ validate: vi.fn(),
124
+ };
125
+ const getInputProps = createGetInputProps(options);
126
+
127
+ const provided = {
128
+ onBlur: vi.fn(),
129
+ onChange: vi.fn(),
130
+ };
131
+ const { onChange, onBlur } = getInputProps(provided);
132
+
133
+ onChange!(fakeEvent);
134
+ expect(provided.onChange).toBeCalledTimes(1);
135
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
136
+ expect(options.setTouched).not.toBeCalled();
137
+ expect(options.validate).toBeCalledTimes(1);
138
+
139
+ onBlur!(fakeEvent);
140
+ expect(provided.onBlur).toBeCalledTimes(1);
141
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
142
+ expect(options.setTouched).toBeCalledTimes(1);
143
+ expect(options.setTouched).toBeCalledWith(true);
144
+ expect(options.validate).toBeCalledTimes(1);
145
+ });
146
+
147
+ it("should respect provided validation behavior", () => {
148
+ const options: CreateGetInputPropsOptions = {
149
+ name: "some-field",
150
+ defaultValue: "test default value",
151
+ touched: true,
152
+ hasBeenSubmitted: false,
153
+ setTouched: vi.fn(),
154
+ clearError: vi.fn(),
155
+ validate: vi.fn(),
156
+ validationBehavior: {
157
+ whenTouched: "onBlur",
158
+ },
159
+ };
160
+ const getInputProps = createGetInputProps(options);
161
+
162
+ const provided = {
163
+ onBlur: vi.fn(),
164
+ onChange: vi.fn(),
165
+ };
166
+ const { onChange, onBlur } = getInputProps(provided);
167
+
168
+ onChange!(fakeEvent);
169
+ expect(provided.onChange).toBeCalledTimes(1);
170
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
171
+ expect(options.setTouched).not.toBeCalled();
172
+ expect(options.validate).not.toBeCalled();
173
+
174
+ onBlur!(fakeEvent);
175
+ expect(provided.onBlur).toBeCalledTimes(1);
176
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
177
+ expect(options.setTouched).toBeCalledTimes(1);
178
+ expect(options.setTouched).toBeCalledWith(true);
179
+ expect(options.validate).toBeCalledTimes(1);
180
+ });
181
+ });
182
+
183
+ describe("whenSubmitted", () => {
184
+ it("should validate on change by default", () => {
185
+ const options: CreateGetInputPropsOptions = {
186
+ name: "some-field",
187
+ defaultValue: "test default value",
188
+ touched: true,
189
+ hasBeenSubmitted: true,
190
+ setTouched: vi.fn(),
191
+ clearError: vi.fn(),
192
+ validate: vi.fn(),
193
+ };
194
+ const getInputProps = createGetInputProps(options);
195
+
196
+ const provided = {
197
+ onBlur: vi.fn(),
198
+ onChange: vi.fn(),
199
+ };
200
+ const { onChange, onBlur } = getInputProps(provided);
201
+
202
+ onChange!(fakeEvent);
203
+ expect(provided.onChange).toBeCalledTimes(1);
204
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
205
+ expect(options.setTouched).not.toBeCalled();
206
+ expect(options.validate).toBeCalledTimes(1);
207
+
208
+ onBlur!(fakeEvent);
209
+ expect(provided.onBlur).toBeCalledTimes(1);
210
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
211
+ expect(options.setTouched).toBeCalledTimes(1);
212
+ expect(options.setTouched).toBeCalledWith(true);
213
+ expect(options.validate).toBeCalledTimes(1);
214
+ });
215
+
216
+ it("should respect provided validation behavior", () => {
217
+ const options: CreateGetInputPropsOptions = {
218
+ name: "some-field",
219
+ defaultValue: "test default value",
220
+ touched: true,
221
+ hasBeenSubmitted: true,
222
+ setTouched: vi.fn(),
223
+ clearError: vi.fn(),
224
+ validate: vi.fn(),
225
+ validationBehavior: {
226
+ whenSubmitted: "onBlur",
227
+ },
228
+ };
229
+ const getInputProps = createGetInputProps(options);
230
+
231
+ const provided = {
232
+ onBlur: vi.fn(),
233
+ onChange: vi.fn(),
234
+ };
235
+ const { onChange, onBlur } = getInputProps(provided);
236
+
237
+ onChange!(fakeEvent);
238
+ expect(provided.onChange).toBeCalledTimes(1);
239
+ expect(provided.onChange).toBeCalledWith(fakeEvent);
240
+ expect(options.setTouched).not.toBeCalled();
241
+ expect(options.validate).not.toBeCalled();
242
+
243
+ onBlur!(fakeEvent);
244
+ expect(provided.onBlur).toBeCalledTimes(1);
245
+ expect(provided.onBlur).toBeCalledWith(fakeEvent);
246
+ expect(options.setTouched).toBeCalledTimes(1);
247
+ expect(options.setTouched).toBeCalledWith(true);
248
+ expect(options.validate).toBeCalledTimes(1);
249
+ });
250
+ });
251
+ });
@@ -5,3 +5,14 @@ export const getRadioChecked = (
5
5
  if (typeof newValue === "string") return newValue === radioValue;
6
6
  return undefined;
7
7
  };
8
+
9
+ if (import.meta.vitest) {
10
+ const { it, expect } = import.meta.vitest;
11
+ it("add", () => {
12
+ expect(getRadioChecked("on", "on")).toBe(true);
13
+ expect(getRadioChecked("on", undefined)).toBe(undefined);
14
+ expect(getRadioChecked("trueValue", undefined)).toBe(undefined);
15
+ expect(getRadioChecked("trueValue", "bob")).toBe(false);
16
+ expect(getRadioChecked("trueValue", "trueValue")).toBe(true);
17
+ });
18
+ }