react-f0rm 1.1.1 → 1.3.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 (61) hide show
  1. package/README.md +242 -39
  2. package/dist/devtools/index.cjs.js +1 -1
  3. package/dist/devtools/index.cjs.js.map +1 -1
  4. package/dist/devtools/index.d.ts +2 -2
  5. package/dist/devtools/index.mjs +1 -1
  6. package/dist/devtools/index.mjs.map +1 -1
  7. package/dist/errors-BKrUdpfI.cjs.js +2 -0
  8. package/dist/errors-BKrUdpfI.cjs.js.map +1 -0
  9. package/dist/errors-CrQBddrJ.mjs +2 -0
  10. package/dist/errors-CrQBddrJ.mjs.map +1 -0
  11. package/dist/form-CeKSBs31.d.ts +486 -0
  12. package/dist/index.cjs.js +1 -1
  13. package/dist/index.cjs.js.map +1 -1
  14. package/dist/index.d.ts +1097 -118
  15. package/dist/index.mjs +1 -1
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/index.umd.js +1082 -544
  18. package/dist/index.umd.js.map +1 -1
  19. package/dist/index.umd.min.js +2 -2
  20. package/dist/index.umd.min.js.map +1 -1
  21. package/dist/persist.cjs.js +2 -0
  22. package/dist/persist.cjs.js.map +1 -0
  23. package/dist/persist.d.ts +49 -0
  24. package/dist/persist.mjs +2 -0
  25. package/dist/persist.mjs.map +1 -0
  26. package/dist/resolvers/standard-schema.cjs.js +1 -1
  27. package/dist/resolvers/standard-schema.cjs.js.map +1 -1
  28. package/dist/resolvers/standard-schema.d.ts +7 -5
  29. package/dist/resolvers/standard-schema.mjs +1 -1
  30. package/dist/resolvers/standard-schema.mjs.map +1 -1
  31. package/dist/resolvers/yup.cjs.js +1 -1
  32. package/dist/resolvers/yup.cjs.js.map +1 -1
  33. package/dist/resolvers/yup.d.ts +1 -1
  34. package/dist/resolvers/yup.mjs +1 -1
  35. package/dist/resolvers/yup.mjs.map +1 -1
  36. package/dist/resolvers/zod.cjs.js +1 -1
  37. package/dist/resolvers/zod.cjs.js.map +1 -1
  38. package/dist/resolvers/zod.d.ts +1 -1
  39. package/dist/resolvers/zod.mjs +1 -1
  40. package/dist/resolvers/zod.mjs.map +1 -1
  41. package/dist/server/index.cjs.js +2 -0
  42. package/dist/server/index.cjs.js.map +1 -0
  43. package/dist/server/index.d.ts +77 -0
  44. package/dist/server/index.mjs +2 -0
  45. package/dist/server/index.mjs.map +1 -0
  46. package/dist/validate-CNtuUhmk.mjs +2 -0
  47. package/dist/validate-CNtuUhmk.mjs.map +1 -0
  48. package/dist/validate-Cl4ksNFu.cjs.js +2 -0
  49. package/dist/validate-Cl4ksNFu.cjs.js.map +1 -0
  50. package/dist/validate-nksgv1pR.d.ts +272 -0
  51. package/dist/values-Cu6awQOJ.cjs.js +2 -0
  52. package/dist/values-Cu6awQOJ.cjs.js.map +1 -0
  53. package/dist/values-DRY-a32G.mjs +2 -0
  54. package/dist/values-DRY-a32G.mjs.map +1 -0
  55. package/package.json +87 -29
  56. package/dist/form-2_tBkEXU.mjs +0 -2
  57. package/dist/form-2_tBkEXU.mjs.map +0 -1
  58. package/dist/form-BiDaJLjD.d.ts +0 -826
  59. package/dist/form-BwLNQ6WB.cjs.js +0 -2
  60. package/dist/form-BwLNQ6WB.cjs.js.map +0 -1
  61. package/dist/validate-2XUilILy.d.ts +0 -22
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react");function t(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var r=t(e);function n(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),o=2;o<r;o++)n[o-2]=arguments[o];(e.get(t)||[]).forEach(function(e){return e.apply(void 0,n)})}function o(e,t,r){var n=function(e,t){var r=e.get(t);if(r)return r;var n=new Set;return e.set(t,n),n}(e,t);return n.add(r),function(){return n.delete(r)}}const s=new Map;function i(e){if(Array.isArray(e))return e;const t=s.get(e);if(t)return t;const r=function(e){const t=[];let r="";const n=()=>{if(u(r)){const n=[...t.map(String),r].join("."),o=t.reduce((e,t)=>e+("number"==typeof t?`[${t}]`:`${e?".":""}${t}`),"");throw new TypeError(`Numeric path segment must use bracket notation: "${n}" → "${o}[${r}]" (path: ${e})`)}t.push(r),r=""};for(let o=0;o<e.length;o++){const s=e[o];if("."===s)""!==r&&n();else if("["===s){""!==r&&n();const s=e[o+1];if('"'===s||"'"===s){const r=e.indexOf(s,o+2);if(-1===r)throw new TypeError(`Unterminated quote in path: ${e}`);if("]"!==e[r+1])throw new TypeError(`Expected "]" after quoted segment in path: ${e}`);t.push(e.slice(o+2,r)),o=r+1}else{const r=e.indexOf("]",o+1);if(-1===r)throw new TypeError(`Unterminated bracket in path: ${e}`);const n=e.slice(o+1,r);t.push(u(n)?Number(n):n),o=r}}else r+=s}""===r&&0!==t.length||n();return t}(e);if(s.size>=1e4){const e=s.keys().next();e.done||s.delete(e.value)}return s.set(e,r),r}const u=e=>/^-?\d+$/.test(e);function a(e,t){return t.reduce((e,t)=>{if(null!=e)return e[t]},e)}function c(e,t){if(!t.length||null==e)return e;const[r,...n]=t;if(n.length){const t=c(e[r],n);return t===e[r]?e:l(e,[r],t)}if(Array.isArray(e)){if(!(r in e))return e;const t=e.slice();return delete t[r],t}if("object"!=typeof e||!(r in e))return e;const o={...e};return delete o[r],o}function l(e,t,r){if(!t.length)return r;const[n,...o]=t,s="number"==typeof n?n:Array.isArray(e)&&"string"==typeof n&&u(n)?Number(n):void 0;if(void 0!==s){const t=Array.isArray(e)?e.slice():[];return t[s]=l(t[s],o,r),t}return{...e,[n]:l(e&&e[n],o,r)}}function f(e,t,r,n){if(!t.length)return r;let o=e,s=null,i="";for(let a=0;a<t.length;a++){const c=t[a];if(!n.has(o)){let t;t="number"==typeof c||Array.isArray(o)&&"string"==typeof c&&u(c)?Array.isArray(o)?o.slice():[]:{...o},n.add(t),0===a?e=t:s[i]=t,o=t}a===t.length-1?o[c]=r:(s=o,i=c,o=o[c])}return e}function d(e){return e&&"function"==typeof e.then}function p(e,t){if(Object.is(e,t))return!0;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;const r=Array.isArray(e);if(r!==Array.isArray(t))return!1;if(r){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!p(e[r],t[r]))return!1;return!0}const n=Object.getPrototypeOf(e);if(n!==Object.prototype&&null!==n)return!1;if(Object.getPrototypeOf(t)!==n)return!1;const o=Object.keys(e),s=Object.keys(t);if(o.length!==s.length)return!1;for(const r of o)if(!p(e[r],t[r]))return!1;return!0}function m(e,t,r,n){return new Promise((s,i)=>{if(n())return void i();if(r())return void s();const u=o(e,t,()=>{if(n())return u(),void i();r()&&(u(),s())})})}function h(e){const t=i(e);return{value:t,key:JSON.stringify(t)}}const y=Symbol("validation-outcome");function g(e){return{emitter:new Map,...e,mode:e?.mode??"onSubmit",reValidateMode:e?.reValidateMode??"onChange",disabled:e?.disabled??!1,validateDeps:e?.validateDeps?new Set(e.validateDeps.map(e=>h(e).key)):void 0,initialValues:e?.initialValues??{},values:new Map,deleted:new Set,errors:new Map,touched:new Set,validators:new Map,changeHandlers:new Map,validating:new Set,parsedValues:void 0,isSubmitting:!1,submitCount:0,isSubmitSuccessful:void 0}}const v=new WeakMap;function b(e){const t=v.get(e);t&&t.version++}function x(e){let t=v.get(e);return t?t.version>0&&(t.result=k(e),t.version=0):(t={version:0,result:k(e)},v.set(e,t)),t.result}function k(e){const{initialValues:t,parsedValues:r,values:n,deleted:o}=e,s=new Set;let i=r??t;for(const[e,t]of n)i=f(i,JSON.parse(e),t,s);for(const e of o)i=c(i,JSON.parse(e));return i}function E({initialValues:e,parsedValues:t,values:r,deleted:n},o){const{key:s,value:i}=o;if(r.has(s))return r.get(s);if(!n.has(s)){for(let e=i.length-1;e>0;e--){const t=JSON.stringify(i.slice(0,e));if(r.has(t))return a(r.get(t),i.slice(e))}return a(t??e,i)}}function S(e,t,r,o){const{emitter:s,values:i,deleted:u}=e;i.set(t.key,r),X(i,t),Z(u,t),H(e,t),!1===o?.shouldDirty&&q(e,t,r),z(e),b(e),o?.shouldTouch&&L(e,t),o?.shouldValidate&&e.validators.get(t.key)?.(),n(s,"change",t)}function V(e,t,r){const{values:n,deleted:o}=e;n.set(t.key,r),X(n,t),Z(o,t),H(e,t),z(e),b(e)}function w({emitter:e},t){n(e,"change",t)}function C(e,t,r,n){!1===n?.shouldDirty&&q(e,t,r);const o=e.changeHandlers.get(t.key);o?o(r):S(e,t,r,n)}function O({errors:e},t){return e.get(t.key)?.[0]}const A=[];function T({errors:e},t){return e.get(t.key)??A}function _({errors:e}){const t=[];for(const[r,n]of e){const e=JSON.parse(r).join(".");for(const{type:r,message:o}of n)t.push({path:e,type:r,message:o})}return t}function D({errors:e}){return e.values().next().value?.[0]?.message}function j({emitter:e,validating:t},r){t.delete(r.key),n(e,"validating",r)}function F({emitter:e,validating:t},r){t.add(r.key),n(e,"validating",r)}function P(e,t,r){M(e,h(t),r)}function M({emitter:e,errors:t},r,o){const s=function(e){if("string"==typeof e)return e?[{type:"custom",message:e}]:void 0;if(ne(e))return[e];if(!e)return;const t=[];return e.forEach(e=>{"string"==typeof e&&e?t.push({type:"custom",message:e}):ne(e)&&t.push(e)}),t.length?t:void 0}(o);s?t.set(r.key,s):t.delete(r.key),n(e,"errors",r)}function B(e,t){const{emitter:r,errors:o}=e;if(void 0===t)return o.clear(),void n(r,"errors");const s="string"==typeof t||re(t)?[h(t)]:t.map(e=>h(e));for(const{key:e}of s)o.delete(e);for(const e of s)n(r,"errors",e)}function L({emitter:e,touched:t},r){t.has(r.key)||(t.add(r.key),n(e,"touched",r))}function N({touched:e},t){return e.has(t.key)}function R(e){let t=!1;return $(e,()=>{t=!0}),t}function $(e,t){for(const[r,n]of e.values){const o=JSON.parse(r);W(e,r,o)!==n&&t(o.join("."))}}const I=new WeakMap;function W(e,t,r){const n=I.get(e);return n?.has(t)?n.get(t):a(e.initialValues,r)}function q(e,{key:t},r){let n=I.get(e);n||(n=new Map,I.set(e,n)),n.set(t,r)}function H(e,{key:t}){const r=I.get(e);if(!r?.size)return;const n=`${t.slice(0,-1)},`;for(const e of r.keys())e.startsWith(n)&&r.delete(e)}function J(e,t){const r=I.get(e);r&&(void 0===t?r.clear():r.delete(t))}const U=new WeakMap;function z(e){const t=U.get(e);t&&t.version++}function G(e){const t={};return $(e,e=>{t[e]=!0}),t}function K(e){let t=U.get(e);if(t){if(t.version>0){const r=G(e);(function(e,t){const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(e=>!0===t[e])})(t.result,r)||(t.result=r),t.version=0}}else t={version:0,result:G(e)},U.set(e,t);return t.result}function Y({touched:e}){return Array.from(e,e=>JSON.parse(e).join("."))}function Q(e,t){const{key:r,value:o}=t,{emitter:s,values:i,touched:u,errors:a,validating:c,deleted:l}=e;i.delete(r),u.delete(r),a.delete(r),c.delete(r),J(e,r),function(e,t){for(let r=1;r<t.length;r++)if(e.has(JSON.stringify(t.slice(0,r))))return!0;const r=`${JSON.stringify(t).slice(0,-1)},`;for(const t of e.keys())if(t.startsWith(r))return!0;return!1}(i,o)||l.add(r),z(e),b(e),n(s,"change",t),n(s,"touched",t),n(s,"errors",t),n(s,"validating",t)}function X(e,{key:t}){if(!e.size)return;const r=`${t.slice(0,-1)},`;for(const t of e.keys())t.startsWith(r)&&e.delete(t)}function Z(e,{key:t}){if(e.size)for(const r of e)(r===t||r.startsWith(`${t.slice(0,-1)},`)||t.startsWith(`${r.slice(0,-1)},`))&&e.delete(r)}function ee(e,t){e.initialValues===t||p(e.initialValues,t)||(e.initialValues=t,e.parsedValues=void 0,e.values.clear(),e.deleted.clear(),J(e),z(e),b(e),n(e.emitter,"change"))}function te({errors:e}){return e.size>0}function re(e){return e.some(e=>"number"==typeof e)}function ne(e){return!!e&&"object"==typeof e&&"string"==typeof e.type&&"string"==typeof e.message}function oe(e,t,r=[],n){Object.entries(t).forEach(([t,o])=>{const s=[...r,...u(t)?[t]:i(t)];"string"==typeof o?o&&(P(e,s,o),se(e,s,n)):Array.isArray(o)||ne(o)?(P(e,s,o),se(e,s,n)):o&&"object"==typeof o&&oe(e,o,s,n)})}function se(e,t,r){if(!r)return;const n=h(t),o=e.errors.get(n.key);o&&r.set(n.key,o)}function ie(e,t){const r=e.validateDeps?function(e){let t=ue.get(e);t||(t=new Map,ue.set(e,t));return t}(e):void 0;if(r&&(!function(e,t){for(const[r,o]of t){e.errors.get(r)===o&&(e.errors.delete(r),n(e.emitter,"errors",h(JSON.parse(r))))}}(e,r),r.clear()),t){if("object"==typeof t&&y in t){const o=t;return o.errors&&oe(e,o.errors,[],r),void function(e,t){void 0!==t&&t!==e.parsedValues&&(e.parsedValues=t,b(e),n(e.emitter,"change"))}(e,o.values)}oe(e,t,[],r)}}const ue=new WeakMap;const ae="__form_validate__";function ce(e){for(const t of e.validating)if(t!==ae)return!1;return!0}const le=Symbol("form-validate-settled"),fe=new WeakMap;function de(e){const t=e.validate;if(!t)return Promise.resolve();const r=e.validateDebounce??0;if(r<=0){const r=new AbortController;return Promise.resolve(t(x(e),{form:e,signal:r.signal})).then(t=>{ie(e,t)})}const o=function(e){let t=fe.get(e);return t||(t={timer:null,controller:null,round:null,marked:!1,waiters:[]},fe.set(e,t)),t}(e);return null!==o.timer?clearTimeout(o.timer):(o.marked=!0,e.validating.add(ae),n(e.emitter,"validating")),o.timer=setTimeout(()=>{o.timer=null;const t=o.round={};(function(e,t,r){const n=e.validate;if(!n)return Promise.resolve();t.controller?.abort();const o=t.controller=new AbortController;let s;try{s=Promise.resolve(n(x(e),{form:e,signal:o.signal}))}catch(e){s=Promise.reject(e)}return s.then(n=>{t.round===r&&ie(e,n)},e=>{if(t.round===r)throw e})})(e,o,t).then(()=>pe(e,o,t,le),r=>pe(e,o,t,r))},r),new Promise((e,t)=>{o.waiters.push({resolve:e,reject:t})})}function pe(e,t,r,o){if(t.round!==r)return;if(t.round=null,null!==t.timer)return;t.marked&&(t.marked=!1,e.validating.delete(ae),n(e.emitter,"validating"));const s=t.waiters;t.waiters=[];for(const e of s)o===le?e.resolve():e.reject(o)}function me(e,t,r){e.validateDeps?.has(t.key)&&e.validate&&("onChange"===r||"all"===r||"onTouched"===r&&N(e,t)||"onChange"===e.reValidateMode&&function(e){const t=ue.get(e);if(!t)return!1;for(const[r,n]of t)if(e.errors.get(r)===n)return!0;return!1}(e))&&de(e).catch(()=>{})}const he=new WeakMap;function ye(e,t,r){let n=he.get(e);n||(n=new Map,he.set(e,n));for(const e of r){let r=n.get(e);r||(r=new Set,n.set(e,r)),r.add(t)}}function ge(e,t,r){const n=he.get(e);if(n)for(const e of r){const r=n.get(e);r?.delete(t)&&(r.size||n.delete(e))}}function ve(e,t,r){const n=he.get(e)?.get(t.key);if(n?.size)for(const o of n)o!==t.key&&("onChange"===r||"all"===r||"onTouched"===r&&N(e,t)||"onChange"===e.reValidateMode&&e.errors.has(o))&&e.validators.get(o)?.()}function be(e){const t=new Error(D(e));return t.errors=_(e),t}async function xe(e){if(e.validators.forEach(e=>e()),await m(e.emitter,"validating",()=>ce(e),()=>te(e)).catch(()=>{throw be(e)}),e.validate&&(await de(e),te(e)))throw be(e)}async function ke(e){return xe(e).catch(e=>e.message)}function Ee(e,t){e.isSubmitting=t,n(e.emitter,"submitting")}function Se(e){e.submitCount++,n(e.emitter,"submitCount")}function Ve(e,t){e.isSubmitSuccessful=t,n(e.emitter,"submitSuccessful")}function we(e){if(e.startsWith("["))try{const t=JSON.parse(e);if(Array.isArray(t))return t.join(".")}catch{}return e}function Ce(e,t){const{onSubmit:r,onValidSubmit:o,onInvalidSubmit:s,shouldFocusError:i=!0}=t??{};return async t=>{t&&"function"==typeof t.preventDefault&&t.preventDefault();const u=t?.currentTarget;Ee(e,!0),Se(e);const a=x(e);if(u&&"function"==typeof u.checkValidity&&!1===u.checkValidity()){if(u.reportValidity(),i&&"function"==typeof u.querySelector){const e=u.querySelector(":invalid");e&&"function"==typeof e.focus&&e.focus()}return Ee(e,!1),Ve(e,!1),void(s&&s(function(e){const t=[],{elements:r}=e;for(let e=0;e<r.length;e++){const n=r[e];n.name&&"function"==typeof n.checkValidity&&!n.checkValidity()&&t.push({path:we(n.name),type:"native",message:n.validationMessage})}return t}(u),a))}if(await ke(e)){if(Ee(e,!1),Ve(e,!1),i){const t=e.errors.keys().next().value;void 0!==t&&n(e.emitter,"focusError",t)}s&&s(_(e),a)}else try{const n=x(e);r&&await r(n,t),o&&await o(n,t),Ve(e,!0)}catch{Ve(e,!1)}finally{Ee(e,!1)}}}function Oe(e,t){switch(e){case"required":return"This field is required";case"min":return`Must be at least ${t}`;case"max":return`Must be at most ${t}`;case"minLength":return`Must be at least ${t} characters`;case"maxLength":return`Must be at most ${t} characters`;case"pattern":return"Invalid format";default:return"Invalid value"}}var Ae,Te={exports:{}},_e={};var De,je,Fe={};var Pe=(je||(je=1,"production"===process.env.NODE_ENV?Te.exports=function(){if(Ae)return _e;Ae=1;var t=e,r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=t.useState,o=t.useEffect,s=t.useLayoutEffect,i=t.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var a="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=n({inst:{value:r,getSnapshot:t}}),c=a[0].inst,l=a[1];return s(function(){c.value=r,c.getSnapshot=t,u(c)&&l({inst:c})},[e,r,t]),o(function(){return u(c)&&l({inst:c}),e(function(){u(c)&&l({inst:c})})},[e]),i(r),r};return _e.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:a,_e}():Te.exports=(De||(De=1,"production"!==process.env.NODE_ENV&&function(){function t(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var r=e,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,s=r.useEffect,i=r.useLayoutEffect,u=r.useDebugValue,a=!1,c=!1,l="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,l){a||void 0===r.startTransition||(a=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var f=l();if(!c){var d=l();n(f,d)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}var p=(d=o({inst:{value:f,getSnapshot:l}}))[0].inst,m=d[1];return i(function(){p.value=f,p.getSnapshot=l,t(p)&&m({inst:p})},[e,f,l]),s(function(){return t(p)&&m({inst:p}),e(function(){t(p)&&m({inst:p})})},[e]),u(f),f};Fe.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:l,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Fe)),Te.exports);function Me(e,t){return e.startsWith(`${t.slice(0,-1)},`)}function Be(e,t,r,n,s){const{key:i}=r;return o(e,t,e=>{(void 0===e||e.key===i||Me(i,e.key)||"branch"===n&&Me(e.key,i))&&s()})}function Le(e,t,r,n){return o(e,t,e=>{void 0!==e&&e.key!==r||n()})}function Ne(t){const[r]=e.useState(()=>{const e=g(t);return t&&void 0!==t.values&&ee(e,t.values),e}),n=t&&t.initialValues,o=t&&t.values,s=e.useRef(null);null===s.current&&(s.current={done:!1,source:void 0}),e.useEffect(()=>{if(void 0===n)return;const e=s.current;e.done&&(e.source===n||p(e.source,n))||(e.done=!0,e.source=n,ee(r,n))},[r,n]);const i=e.useRef(null);return null===i.current&&(i.current={done:!1,source:void 0}),e.useEffect(()=>{if(void 0===o)return;const e=i.current;e.done&&(e.source===o||p(e.source,o))||(e.done=!0,e.source=o,ee(r,o))},[r,o]),r}function Re(t,r){const n=e.useRef(null);null===n.current&&(n.current={hasValue:!1});const o=n.current,s=e.useRef(r);s.current=r;const i=e.useCallback(()=>(o.hasValue||(o.value=s.current(),o.hasValue=!0),o.value),[o]),u=e.useCallback(e=>{o.hasValue=!1;return t(()=>{o.hasValue=!1,e()})},[t,o]);return Pe.useSyncExternalStore(u,i,i)}function $e(t,r,n){return Re(e.useCallback(e=>o(t,r,e),[t,r]),n)}function Ie(t,r){const{emitter:n}=t,{key:o}=r;return Re(e.useCallback(e=>Be(n,"change",r,"leaf",e),[n,o]),E.bind(null,t,r))}function We(t,r){const{emitter:n}=t,{key:o}=r;return Re(e.useCallback(e=>Le(n,"touched",o,e),[n,o]),N.bind(null,t,r))}function qe(t,r){const{emitter:n}=t,{key:o}=r;return Re(e.useCallback(e=>Le(n,"errors",o,e),[n,o]),O.bind(null,t,r))}function He(t,r){const{emitter:n}=t,{key:o}=r;return Re(e.useCallback(e=>Le(n,"errors",o,e),[n,o]),T.bind(null,t,r))}function Je(t){const r=e.useMemo(()=>h(i(t)),[t]);return e.useMemo(()=>r,[r.key])}function Ue(t){const r=e.useRef(t);return r.current=t,r}function ze(t){const r=Ue(t);return e.useCallback((...e)=>r.current(...e),[r])}function Ge(e,t){if(!e)return t;const r=function(e){return t=>{if(e.required&&(""===t||null==t))return[{type:"required",message:"string"==typeof e.required?e.required:Oe("required")}];const r=[],n=(t,r)=>e.messages?.[t]??Oe(t,r);if(void 0!==e.min){const o=Number(t);!Number.isNaN(o)&&o<e.min&&r.push({type:"min",message:n("min",e.min)})}if(void 0!==e.max){const o=Number(t);!Number.isNaN(o)&&o>e.max&&r.push({type:"max",message:n("max",e.max)})}return void 0!==e.minLength&&"string"==typeof t&&t.length<e.minLength&&r.push({type:"minLength",message:n("minLength",e.minLength)}),void 0!==e.maxLength&&"string"==typeof t&&t.length>e.maxLength&&r.push({type:"maxLength",message:n("maxLength",e.maxLength)}),e.pattern&&!e.pattern.value.test(t)&&r.push({type:"pattern",message:e.messages?.pattern??e.pattern.message??Oe("pattern")}),r.length?r:void 0}}(e);return t?(e,n)=>{const o=r(e,n),s=e=>{const t=[...o??[]];return Array.isArray(e)?t.push(...e):e&&t.push(e),t.length?t:void 0},i=t(e,n);return d(i)?i.then(s):s(i)}:r}function Ke({form:t,name:r,initialValue:n,shouldUnregister:o,validate:s,rules:i,validateDebounce:u,validateDeps:a,delayError:c,disabled:l,mode:f},p){const m=e.useContext(p),y=t||m;if(!y)throw new Error("no form provided");const g=Je(r),v=e.useRef(!1);void 0!==n&&void 0===E(y,g)&&(V(y,g,n),v.current=!0),e.useEffect(()=>{v.current&&(v.current=!1,w(y,g))});const b=function(t,r,n,o){const s=e.useContext(ot),i=n||s;if(!i)throw new Error("no form provided");const u=e.useRef(null),a=e.useRef(t);a.current=t;const c=e.useRef(o?.debounce??0);return c.current=o?.debounce??0,e.useEffect(()=>{let e=null,t=null,n=!1;const o=()=>{n||(n=!0,F(i,r))},s=()=>{n&&(n=!1,j(i,r))},l=()=>{e=null;const n=a.current;if(!n)return void s();t?.abort(),t=new AbortController;const c=u.current={};let l;try{l=n(E(i,r),{form:i,path:r,signal:t.signal})}catch(e){throw s(),e}if(!d(l))return M(i,r,l),void s();o(),l.then(e=>{c===u.current&&M(i,r,e)}).catch(()=>{}).finally(()=>{c===u.current&&(s(),u.current=null)})};return i.validators.set(r.key,()=>{const t=c.current;if(t>0)return null!==e?clearTimeout(e):o(),void(e=setTimeout(l,t));l()}),()=>{i.validators.delete(r.key),null!==e&&(clearTimeout(e),e=null),s(),t?.abort()}},[i,r.key]),ze(()=>i.validators.get(r.key)?.())}(Ge(i,s),g,y,{debounce:u}),x=He(y,g),k=function(t,r){const[n,o]=e.useState(t);return e.useEffect(()=>{if(void 0===r)return;if(0===t.length)return void o(t);if(n.length>0)return void o(t);const e=setTimeout(()=>o(t),r);return()=>clearTimeout(e)},[t,r,n]),void 0===r?t:n}(x,c),C=k[0],O=C?.message,A=Ie(y,g),T=$e(y.emitter,"disabled",()=>y.disabled),_=f??y.mode,D=ze(e=>{S(y,g,e),("onChange"===_||"all"===_||"onTouched"===_&&N(y,g)||x.length>0&&"onChange"===y.reValidateMode)&&b(),me(y,g,_),ve(y,g,_)});e.useEffect(()=>(y.changeHandlers.set(g.key,D),()=>{y.changeHandlers.get(g.key)===D&&y.changeHandlers.delete(g.key)}),[y,g.key,D]);const P=a?.length?a.join("\n"):void 0;e.useEffect(()=>{if(!P)return;const e=a.map(e=>h(e).key);return ye(y,g.key,e),()=>ge(y,g.key,e)},[y,g.key,P]);const B=ze(()=>{L(y,g),("onBlur"===_||"onTouched"===_||"all"===_||x.length>0&&"onBlur"===y.reValidateMode)&&b()});return e.useEffect(()=>()=>{!1!==o&&Q(y,g)},[g,y,o]),{form:y,value:A,error:O,errorObject:C,errors:k,onChange:D,onBlur:B,name:g.key,disabled:T||!!l}}function Ye(e){return Ke(e,ot)}const Qe=new WeakMap;function Xe(e){const t=(Qe.get(e)??0)+1;return Qe.set(e,t),`_${t}`}const Ze=new WeakMap;function et(e,t,r){let n=Ze.get(e);n||(n=new Map,Ze.set(e,n)),n.set(t,r)}function tt(e){return e+1}function rt(t,r){const n=e.useContext(r),o=t.form||n;if(!o)throw new Error("no form provided");const s=Je(t.name),i=e.useRef([]),u=e.useCallback(()=>E(o,s)||[],[o,s]),a=e.useCallback(e=>{S(o,s,e)},[o,s]),c=e.useCallback(()=>{const e=u();for(;i.current.length<e.length;)i.current.push(Xe(o));for(;i.current.length>e.length;)i.current.pop();return i.current.map((e,t)=>({id:e,index:t}))},[u,o]),[l,f]=e.useReducer(c,void 0,c);e.useEffect(()=>Be(o.emitter,"change",s,"branch",f),[o.emitter,s]),et(o,s.key,i.current),e.useEffect(()=>(et(o,s.key,i.current),()=>{const e=Ze.get(o);e?.get(s.key)===i.current&&e.delete(s.key)}),[o,s.key]);return{fields:l,append:ze(e=>{const t=u();i.current.push(Xe(o)),a([...t,e])}),prepend:ze(e=>{const t=u();i.current.unshift(Xe(o)),a([e,...t])}),insert:ze((e,t)=>{const r=u();i.current.splice(e,0,Xe(o));const n=[...r.slice(0,e),t,...r.slice(e)];a(n)}),remove:ze(e=>{const t=u();i.current.splice(e,1);const r=t.filter((t,r)=>r!==e);a(r)}),swap:ze((e,t)=>{const r=u();[i.current[e],i.current[t]]=[i.current[t],i.current[e]];const n=[...r];[n[e],n[t]]=[n[t],n[e]],a(n)}),move:ze((e,t)=>{const r=u(),[n]=i.current.splice(e,1);i.current.splice(t,0,n);const o=[...r],[s]=o.splice(e,1);o.splice(t,0,s),a(o)}),replace:ze(e=>{i.current=e.map(()=>Xe(o)),a([...e])}),update:ze((e,t)=>{const r=u();if(e<0||e>=r.length)return;const n=[...r];n[e]=t,a(n)})}}function nt(t,r){const n=e.useContext(r),o=t.form||n;if(!o)throw new Error("no form provided");const{id:s}=t,i=Je(t.name),u=e.useCallback(()=>function(e,t){return Ze.get(e)?.get(t)}(o,i.key)?.indexOf(s)??-1,[o,i.key,s]),a=e.useCallback(e=>{const t=E(o,i);return Array.isArray(t)?t[e]:void 0},[o,i]),c=u(),l=a(c),f=e.useRef({index:c,value:l});f.current={index:c,value:l};const d=Ue({computeIndex:u,computeValue:a}),[,p]=e.useReducer(tt,0);e.useEffect(()=>Be(o.emitter,"change",i,"leaf",()=>{const{computeIndex:e,computeValue:t}=d.current,r=e();r===f.current.index&&Object.is(t(r),f.current.value)||p()}),[o.emitter,i,d]);const m=Je([...i.value,c]),h=He(o,m);return{value:l,setValue:ze(e=>{if(c<0)return;const t=[...E(o,i)??[]];c>=t.length||(t[c]=e,S(o,i,t))}),errors:h,error:h[0]?.message,name:m.key,index:c,form:o}}const ot=e.createContext(null),st=ot.Provider;const it=e.createContext(null),ut=it.Provider;function at(e){return e.replace(/["'[\],\s]+/g,"-").replace(/^-+|-+$/g,"")||"field"}function ct(e,t,r){return{"aria-invalid":!!e||r["aria-invalid"],"aria-describedby":e?[r["aria-describedby"],at(t)].filter(Boolean).join(" "):r["aria-describedby"]}}const lt=r.forwardRef(({validate:e,eventToValue:t,initialValue:n,name:s,asProps:i,renderError:u,as:a,valueToProps:c,form:l,shouldUnregister:f,rules:d,validateDebounce:p,disabled:m,delayError:h,mode:y,...g},v)=>{const b=r.useRef(null),[x,k]=r.useState(0),E=r.useCallback(e=>{b.current=e,function(e,t){"function"==typeof e?e(t):e&&(e.current=t)}(v,e)},[v]),{value:S,onChange:V,onBlur:w,error:C,form:O,name:A,disabled:T}=Ye({name:s,form:l,initialValue:n,shouldUnregister:f,rules:d,validateDebounce:p,delayError:h,disabled:m,mode:y,validate:(...t)=>{const r=b.current;if(!r||"function"!=typeof r.checkValidity||(r.setCustomValidity(""),!1!==r.checkValidity()))return e?e(...t):void 0;k(e=>e+1)}}),_=a||"input";r.useEffect(()=>{const e=b.current;e&&"function"==typeof e.setCustomValidity&&("string"==typeof C?(e.setCustomValidity(C),e.reportValidity()):e.setCustomValidity(""))},[C]),r.useEffect(()=>{x>0&&b.current?.reportValidity()},[x]),r.useEffect(()=>o(O.emitter,"focusError",(e,t)=>{if(e!==A)return;const r=b.current;r&&"function"==typeof r.focus&&(r.focus(),t?.shouldSelect&&"function"==typeof r.select&&r.select())}),[O,A]);const D=t??(e=>e.target.value),j=at(A);return r.createElement(r.Fragment,null,r.createElement(_,{...g,name:A,onBlur:w,...i,...c?c(S):{value:S},...ct(C,A,g),disabled:T,onChange:e=>V(D(e)),ref:E}),C&&u?r.createElement("span",{id:j,role:"alert"},u(C,j)):null)}),ft=r.forwardRef(({name:e,form:t,initialValue:n,shouldUnregister:o,validate:s,rules:i,validateDebounce:u,disabled:a,delayError:c,mode:l,...f},d)=>{const{value:p,onChange:m,onBlur:h,error:y,name:g,disabled:v}=Ye({name:e,form:t,initialValue:n,shouldUnregister:o,validate:s,rules:i,validateDebounce:u,delayError:c,disabled:a,mode:l});return r.createElement("input",{...f,name:g,onBlur:h,type:"checkbox",checked:!!p,...ct(y,g,f),disabled:v,onChange:e=>m(e.target.checked),ref:d})});function dt(e,t){return e?Array.isArray(t)?t:[]:t??""}const pt=r.forwardRef(({name:e,multiple:t,children:n,form:o,initialValue:s,shouldUnregister:i,validate:u,rules:a,validateDebounce:c,disabled:l,delayError:f,mode:d,...p},m)=>{const{value:h,onChange:y,onBlur:g,error:v,name:b,disabled:x}=Ye({name:e,form:o,initialValue:s,shouldUnregister:i,validate:u,rules:a,validateDebounce:c,delayError:f,disabled:l,mode:d});return r.createElement("select",{...p,name:b,onBlur:g,multiple:t,value:dt(t,h),...ct(v,b,p),disabled:x,onChange:e=>y(t?Array.from(e.target.selectedOptions,e=>e.value):e.target.value),ref:m},n)});exports.Checkbox=ft,exports.CheckboxGroupContext=it,exports.CheckboxGroupProvider=ut,exports.Field=lt,exports.Form=function({form:e,context:t,initialValues:n,values:o,onSubmit:s,onValidSubmit:i,onInvalidSubmit:u,shouldFocusError:a,...c}){const l=Ne({initialValues:n,values:o}),f=e||l,d=Ce(f,{onSubmit:s,onValidSubmit:i,onInvalidSubmit:u,shouldFocusError:a}),{Provider:p}=t??ot;return r.createElement(p,{value:f},r.createElement("form",{...c,noValidate:!0,onSubmit:d}))},exports.FormContext=ot,exports.FormProvider=st,exports.Select=pt,exports.VALIDATION_OUTCOME=y,exports.changeValue=function(e,t,r,n){C(e,h(t),r,n)},exports.changeValueByPath=C,exports.clearErrors=B,exports.createForm=g,exports.createFormContext=function(){const t=e.createContext(null);return{context:t,FormProvider:function({form:r,children:n}){return e.createElement(t.Provider,{value:r},n)},useFormContext:function(){const r=e.useContext(t);if(!r)throw new Error("no form provided");return r},useField:function(e){return Ke(e,t)},useFieldArray:function(e){return rt(e,t)},useFieldArrayItem:function(e){return nt(e,t)}}},exports.emitChangeByPath=w,exports.ensureValidate=xe,exports.fieldErrorId=function(e){return at(h(e).key)},exports.getDirtyFields=K,exports.getError=function(e,t){return O(e,h(t))},exports.getErrorByPath=O,exports.getErrors=_,exports.getFieldErrors=function(e,t){return T(e,h(t))},exports.getFieldErrorsByPath=T,exports.getFieldState=function(e,t){const r=h(t),{values:n,touched:o,validating:s}=e,i=n.get(r.key);return{value:E(e,r),error:O(e,r),errors:T(e,r),isDirty:n.has(r.key)&&W(e,r.key,r.value)!==i,isTouched:o.has(r.key),isValidating:s.has(r.key)}},exports.getFirstError=D,exports.getTouchedFields=Y,exports.getValue=function(e,t){return E(e,h(t))},exports.getValueByPath=E,exports.getValues=x,exports.handleSubmit=Ce,exports.hasErrors=te,exports.hasTouched=function(e,t){return N(e,h(t))},exports.hasTouchedByPath=N,exports.incrementSubmitCount=Se,exports.isDirty=R,exports.isTouched=function({touched:e}){return e.size>0},exports.registerFieldValidateDeps=ye,exports.removeField=function(e,t){Q(e,h(t))},exports.removeFieldByPath=Q,exports.reset=function(e,t,r){const o=[];if(r?.keepDirtyValues)for(const[t,r]of e.values){const n=JSON.parse(t);W(e,t,n)!==r&&o.push({segments:n,value:r})}e.initialValues=t,e.parsedValues=void 0,r?.keepErrors||B(e);const{emitter:s,touched:i,values:u,deleted:a,validating:c}=e;u.clear(),a.clear(),J(e),r?.keepTouched||i.clear(),c.clear(),r?.keepIsSubmitting||(e.isSubmitting=!1),r?.keepSubmitCount||(e.submitCount=0),r?.keepIsSubmitted||(e.isSubmitSuccessful=void 0),z(e),b(e);for(const{segments:t,value:r}of o)S(e,h(t),r);n(s,"change"),n(s,"touched"),n(s,"validating"),n(s,"submitting"),n(s,"submitCount"),n(s,"submitSuccessful"),n(s,"reset")},exports.resetField=function(e,t,r){const o=h(t),{emitter:s,values:i,touched:u,errors:l,deleted:f}=e;if(i.delete(o.key),J(e,o.key),void 0!==e.parsedValues){e.parsedValues=c(e.parsedValues,o.value);const t=a(e.initialValues,o.value);void 0!==t&&i.set(o.key,t)}r&&"value"in r&&i.set(o.key,r.value),Z(f,o),n(s,"change"),!r?.keepTouched&&u.delete(o.key)&&n(s,"touched",o),!r?.keepErrors&&l.delete(o.key)&&n(s,"errors",o),z(e),b(e)},exports.revalidateDependentsOnChange=ve,exports.revalidateFormOnChange=me,exports.seedValueByPath=V,exports.setDisabled=function(e,t){e.disabled=t,n(e.emitter,"disabled")},exports.setError=P,exports.setErrorByPath=M,exports.setFocus=function(e,t,r){const{key:o}=h(t);r?n(e.emitter,"focusError",o,r):n(e.emitter,"focusError",o)},exports.setInitialValues=ee,exports.setIsSubmitting=Ee,exports.setServerErrors=function(e,t,r){r?.keepExisting||B(e);for(const[r,n]of Object.entries(t))P(e,r,(Array.isArray(n)?n:[n]).map(e=>({type:"server",message:e})))},exports.setSubmitSuccessful=Ve,exports.setTouched=function(e,t){L(e,h(t))},exports.setTouchedByPath=L,exports.setValidatingByPath=F,exports.setValue=function(e,t,r,n){S(e,h(t),r,n)},exports.setValueByPath=S,exports.subscribe=function(e,t){const{name:r,event:n="change",scope:s="branch",callback:i}=t;if(void 0===r)return o(e.emitter,n,i);const u=(function(e){return Array.isArray(e)&&e.every(e=>"number"!=typeof e)}(r)?r:[r]).map(t=>{const r=h(t);return"errors"===n||"touched"===n?Le(e.emitter,n,r.key,i):Be(e.emitter,n,r,s,i)});return 1===u.length?u[0]:()=>u.forEach(e=>e())},exports.trigger=async function(e,t){const r=t=>m(e.emitter,"validating",()=>void 0===t?ce(e):t.every(t=>!e.validating.has(t)),()=>!1);if(void 0===t)return e.validators.forEach(e=>e()),await r(),e.validate&&await de(e),!te(e);const n="string"==typeof t||re(t)?[h(t).key]:t.map(e=>h(e).key);return n.forEach(t=>e.validators.get(t)?.()),await r(n),n.every(t=>!e.errors.has(t))},exports.unregisterFieldValidateDeps=ge,exports.unsetValidatingByPath=j,exports.useCanSubmit=function(t){const{emitter:r}=t;return Re(e.useCallback(e=>{const t=o(r,"errors",e),n=o(r,"submitting",e);return()=>{t(),n()}},[r]),()=>!t.isSubmitting&&!te(t))},exports.useCheckboxGroupContext=function(){const t=e.useContext(it);if(!t)throw new Error("no group provided");return t},exports.useDirtyFields=function(e){return $e(e.emitter,"change",K.bind(null,e))},exports.useError=function(e,t){return qe(e,h(t))?.message},exports.useErrorByPath=qe,exports.useField=Ye,exports.useFieldArray=function(e){return rt(e,ot)},exports.useFieldArrayItem=function(e){return nt(e,ot)},exports.useFieldErrors=function(e,t){return He(e,h(t))},exports.useFieldErrorsByPath=He,exports.useForm=Ne,exports.useFormContext=function(){const t=e.useContext(ot);if(!t)throw new Error("no form provided");return t},exports.useHasErrors=function(e){return $e(e.emitter,"errors",te.bind(null,e))},exports.useIsDirty=function(e){return $e(e.emitter,"change",R.bind(null,e))},exports.useIsSubmitting=function(e){return $e(e.emitter,"submitting",()=>e.isSubmitting)},exports.useSubmitCount=function(e){return $e(e.emitter,"submitCount",()=>e.submitCount)},exports.useTouched=function(e,t){return We(e,h(t))},exports.useTouchedByPath=We,exports.useTouchedFields=function(e){return $e(e.emitter,"touched",Y.bind(null,e))},exports.useValue=function(e,t){return Ie(e,h(t))},exports.useValueByPath=Ie,exports.useWatch=$e,exports.validate=ke;
1
+ "use strict";var e=require("@for-fun/event-emitter"),t=require("react");function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var n=r(t);const o=new Map;function i(e){if(Array.isArray(e))return e;const t=o.get(e);if(t)return t;const r=function(e){const t=[];let r="";const n=()=>{if(s(r)){const n=[...t.map(String),r].join("."),o=t.reduce((e,t)=>e+("number"==typeof t?`[${t}]`:`${e?".":""}${t}`),"");throw new TypeError(`Numeric path segment must use bracket notation: "${n}" → "${o}[${r}]" (path: ${e})`)}t.push(r),r=""};for(let o=0;o<e.length;o++){const i=e[o];if("."===i)""!==r&&n();else if("["===i){""!==r&&n();const i=e[o+1];if('"'===i||"'"===i){const r=e.indexOf(i,o+2);if(-1===r)throw new TypeError(`Unterminated quote in path: ${e}`);if("]"!==e[r+1])throw new TypeError(`Expected "]" after quoted segment in path: ${e}`);t.push(e.slice(o+2,r)),o=r+1}else{const r=e.indexOf("]",o+1);if(-1===r)throw new TypeError(`Unterminated bracket in path: ${e}`);const n=e.slice(o+1,r);t.push(s(n)?Number(n):n),o=r}}else r+=i}""===r&&0!==t.length||n();return t}(e);if(o.size>=1e4){const e=o.keys().next();e.done||o.delete(e.value)}return o.set(e,r),r}const s=e=>/^-?\d+$/.test(e);function u(e,t){return t.reduce((e,t)=>{if(null!=e)return e[t]},e)}function a(e,t){if(!t.length||null==e)return e;const[r,...n]=t;if(n.length){const t=a(e[r],n);return t===e[r]?e:c(e,[r],t)}if(Array.isArray(e)){if(!(r in e))return e;const t=e.slice();return delete t[r],t}if("object"!=typeof e||!(r in e))return e;const o={...e};return delete o[r],o}function c(e,t,r){if(!t.length)return r;const[n,...o]=t,i="number"==typeof n?n:Array.isArray(e)&&"string"==typeof n&&s(n)?Number(n):void 0;if(void 0!==i){const t=Array.isArray(e)?e.slice():[];return t[i]=c(t[i],o,r),t}return{...e,[n]:c(e&&e[n],o,r)}}function l(e,t,r,n){if(!t.length)return r;let o=e,i=null,u="";for(let a=0;a<t.length;a++){const c=t[a];if(!n.has(o)){let t;t="number"==typeof c||Array.isArray(o)&&"string"==typeof c&&s(c)?Array.isArray(o)?o.slice():[]:{...o},n.add(t),0===a?e=t:i[u]=t,o=t}a===t.length-1?o[c]=r:(i=o,u=c,o=o[c])}return e}function d(e){return e&&"function"==typeof e.then}function f(e,t){if(Object.is(e,t))return!0;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;const r=Array.isArray(e);if(r!==Array.isArray(t))return!1;if(r){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!f(e[r],t[r]))return!1;return!0}const n=Object.getPrototypeOf(e);if(n!==Object.prototype&&null!==n)return!1;if(Object.getPrototypeOf(t)!==n)return!1;const o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(const r of o)if(!f(e[r],t[r]))return!1;return!0}function m(t,r,n,o){return new Promise((i,s)=>{if(o())return void s();if(n())return void i();const u=e.on(t,r,()=>{if(o())return u(),void s();n()&&(u(),i())})})}function y(e){const t=i(e);return{value:t,key:JSON.stringify(t)}}const p=new WeakMap;function h(e){const t=p.get(e);t&&t.version++}const g=new WeakMap;function v(e,t,r){const n=g.get(e);return n?.has(t)?n.get(t):u(e.initialValues,r)}function b(e,{key:t},r){let n=g.get(e);n||(n=new Map,g.set(e,n)),n.set(t,r)}function k(e,{key:t}){const r=g.get(e);if(!r?.size)return;const n=`${t.slice(0,-1)},`;for(const e of r.keys())e.startsWith(n)&&r.delete(e)}function x(e,t){const r=g.get(e);r&&(void 0===t?r.clear():r.delete(t))}const S=new WeakMap;function V(e){const t=S.get(e);t&&t.version++}function w(e){return e.some(e=>"number"==typeof e)}function E(e){return!!e&&"object"==typeof e&&"string"==typeof e.type&&"string"==typeof e.message}const C="_form",A=Symbol("validation-outcome");function F({errors:e},t){return e.get(t.key)?.[0]}const O=[];function M({errors:e},t){return e.get(t.key)??O}function D({errors:e}){const t=[];for(const[r,n]of e){const e=JSON.parse(r).join(".");for(const{type:r,message:o}of n)t.push({path:e,type:r,message:o})}return t}function T({errors:e}){return e.values().next().value?.[0]?.message}function P(e,t,r,n){j(e,y(t),r,n)}function j(t,r,n,o){const{emitter:i,errors:s}=t,u=function(e){if("string"==typeof e)return e?[{type:"custom",message:e}]:void 0;if(E(e))return[e];if(!e)return;const t=[];return e.forEach(e=>{"string"==typeof e&&e?t.push({type:"custom",message:e}):E(e)&&t.push(e)}),t.length?t:void 0}(n);u?s.set(r.key,u):s.delete(r.key),e.emit(i,"errors",r),o?.shouldFocus&&e.emit(i,"focusError",r.key)}function L(t,r){const{emitter:n,errors:o}=t;if(void 0===r)return o.clear(),void e.emit(n,"errors");const i="string"==typeof r||w(r)?[y(r)]:r.map(e=>y(e));for(const{key:e}of i)o.delete(e);for(const t of i)e.emit(n,"errors",t)}function B({errors:e}){return e.size>0}function R(e,t){const r=e.values.get(t.key);return e.values.has(t.key)&&v(e,t.key,t.value)!==r}function N(e){let t=!1;return I(e,()=>{t=!0}),t}function I(e,t){for(const[r,n]of e.values){const o=JSON.parse(r);v(e,r,o)!==n&&t(o.join("."))}}function q(e){const t={};return I(e,e=>{t[e]=!0}),t}function $(e){let t=S.get(e);if(t){if(t.version>0){const r=q(e);(function(e,t){const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(e=>!0===t[e])})(t.result,r)||(t.result=r),t.version=0}}else t={version:0,result:q(e)},S.set(e,t);return t.result}function W({emitter:t,touched:r},n){r.has(n.key)||(r.add(n.key),e.emit(t,"touched",n))}function U({touched:e},t){return e.has(t.key)}function J({touched:e}){return Array.from(e,e=>JSON.parse(e).join("."))}function z(e){let t=p.get(e);return t?t.version>0&&(t.result=_(e),t.version=0):(t={version:0,result:_(e)},p.set(e,t)),t.result}function _(e){const{initialValues:t,parsedValues:r,values:n,deleted:o}=e,i=new Set;let s=r??t;for(const[e,t]of n)s=l(s,JSON.parse(e),t,i);for(const e of o)s=a(s,JSON.parse(e));return s}function G({initialValues:e,parsedValues:t,values:r,deleted:n},o){const{key:i,value:s}=o;if(r.has(i))return r.get(i);if(!n.has(i)){for(let e=s.length-1;e>0;e--){const t=JSON.stringify(s.slice(0,e));if(r.has(t))return u(r.get(t),s.slice(e))}return u(t??e,s)}}function H(t,r,n,o){const{emitter:i,values:s,deleted:u}=t,a="function"==typeof n?n(G(t,r)):n;s.set(r.key,a),Y(s,r),Z(u,r),k(t,r),!1===o?.shouldDirty&&b(t,r,a),V(t),h(t),o?.shouldTouch&&W(t,r),o?.shouldValidate&&t.validators.get(r.key)?.(),e.emit(i,"change",r)}function K(e,t,r){const{values:n,deleted:o}=e;n.set(t.key,r),Y(n,t),Z(o,t),k(e,t),V(e),h(e)}function Q({emitter:t},r){e.emit(t,"change",r)}function X(t,r,n){const{key:o,value:i}=r,{emitter:s,values:u,touched:a,errors:c,validating:l,deleted:d}=t;n?.keepValue||n?.keepDirty||(u.delete(o),x(t,o),function(e,t){for(let r=1;r<t.length;r++)if(e.has(JSON.stringify(t.slice(0,r))))return!0;const r=`${JSON.stringify(t).slice(0,-1)},`;for(const t of e.keys())if(t.startsWith(r))return!0;return!1}(u,i)||d.add(o)),n?.keepTouched||a.delete(o),n?.keepError||c.delete(o),l.delete(o),V(t),h(t),e.emit(s,"change",r),e.emit(s,"touched",r),e.emit(s,"errors",r),e.emit(s,"validating",r)}function Y(e,{key:t}){if(!e.size)return;const r=`${t.slice(0,-1)},`;for(const t of e.keys())t.startsWith(r)&&e.delete(t)}function Z(e,{key:t}){if(e.size)for(const r of e)(r===t||r.startsWith(`${t.slice(0,-1)},`)||t.startsWith(`${r.slice(0,-1)},`))&&e.delete(r)}function ee(t,r){t.initialValues===r||f(t.initialValues,r)||(t.initialValues=r,t.parsedValues=void 0,t.values.clear(),t.deleted.clear(),x(t),V(t),h(t),e.emit(t.emitter,"change"))}function te(e,t,r){if(null!==e&&"object"==typeof e){if(Array.isArray(e)){for(let n=0;n<e.length;n++)te(e[n],[...t,n],r);return}const n=Object.keys(e);if(n.length>0){for(const o of n)te(e[o],[...t,o],r);return}}r.push({segments:t,value:e})}function re({emitter:t,validating:r},n){r.delete(n.key),e.emit(t,"validating",n)}function ne({emitter:t,validating:r},n){r.add(n.key),e.emit(t,"validating",n)}function oe(e,t,r){let n=null,o=null,i=!1,s=null,u=null;const a=e=>void 0!==e&&!(Array.isArray(e)&&0===e.length),c=()=>{i||(i=!0,ne(e,t))},l=()=>{i&&(i=!1,re(e,t))},f=()=>{const n=r.sync();if(!n)return!1;const o=n(G(e,t),{form:e,path:t});return a(o)?(j(e,t,o),u="sync",!0):(r.validate()&&"sync"!==u||(j(e,t,void 0),u=null),!1)},m=n=>{if(r.asyncAlways?.()){const o=(()=>{const n=r.sync();if(!n)return null;const o=n(G(e,t),{form:e,path:t});if(void 0===o)return null;const i=Array.isArray(o)?o:[o];return i.length?i:null})(),i=void 0===n?[]:Array.isArray(n)?n:[n];j(e,t,[...o??[],...i]),u=a(n)?"validator":o?"sync":null}else j(e,t,n),u=a(n)?"validator":null},y=()=>{null!==n&&(clearTimeout(n),n=null),o?.abort(),s={}},p=()=>{const n=r.validate();if(!n)return void l();o?.abort(),o=new AbortController;const i=s={};let u;try{u=n(G(e,t),{form:e,path:t,signal:o.signal})}catch(e){throw l(),e}if(!d(u))return m(u),void l();c(),u.then(e=>{s===i&&m(e)}).catch(()=>{}).finally(()=>{s===i&&(l(),s=null)})},h=()=>{if(n=null,f()&&!r.asyncAlways?.())return y(),void l();p()};return e.validators.set(t.key,()=>{if(f()&&!r.asyncAlways?.())return y(),void l();if(!r.validate())return;const e=r.debounce();if(e>0)return null!==n?clearTimeout(n):c(),void(n=setTimeout(h,e));p()}),()=>{e.validators.delete(t.key),null!==n&&(clearTimeout(n),n=null),l(),o?.abort()}}function ie(e,t){t.forEach(t=>W(e,y(JSON.parse(t))))}function se(e,t,r=[],n){Object.entries(t).forEach(([t,o])=>{const u=[...r,...s(t)?[t]:i(t)];"string"==typeof o?o&&(P(e,u,o),ue(e,u,n)):Array.isArray(o)||E(o)?(P(e,u,o),ue(e,u,n)):o&&"object"==typeof o&&se(e,o,u,n)})}function ue(e,t,r){if(!r)return;const n=y(t),o=e.errors.get(n.key);o&&r.set(n.key,o)}function ae(t,r){const n=t.validateDeps?function(e){let t=ce.get(e);t||(t=new Map,ce.set(e,t));return t}(t):void 0;if(n&&(!function(t,r){for(const[n,o]of r){t.errors.get(n)===o&&(t.errors.delete(n),e.emit(t.emitter,"errors",y(JSON.parse(n))))}}(t,n),n.clear()),r){if("object"==typeof r&&A in r){const o=r;return o.errors&&se(t,o.errors,[],n),void function(t,r){void 0!==r&&r!==t.parsedValues&&(t.parsedValues=r,h(t),e.emit(t.emitter,"change"))}(t,o.values)}se(t,r,[],n)}}const ce=new WeakMap;const le="__form_validate__";function de(e){for(const t of e.validating)if(t!==le)return!1;return!0}const fe=Symbol("form-validate-settled"),me=new WeakMap;function ye(t){const r=t.validate;if(!r)return Promise.resolve();const n=t.validateDebounce??0;if(n<=0){const e=new AbortController;return Promise.resolve(r(z(t),{form:t,signal:e.signal})).then(e=>{ae(t,e)})}const o=function(e){let t=me.get(e);return t||(t={timer:null,controller:null,round:null,marked:!1,waiters:[]},me.set(e,t)),t}(t);return null!==o.timer?clearTimeout(o.timer):(o.marked=!0,t.validating.add(le),e.emit(t.emitter,"validating")),o.timer=setTimeout(()=>{o.timer=null;const e=o.round={};(function(e,t,r){const n=e.validate;if(!n)return Promise.resolve();t.controller?.abort();const o=t.controller=new AbortController;let i;try{i=Promise.resolve(n(z(e),{form:e,signal:o.signal}))}catch(e){i=Promise.reject(e)}return i.then(n=>{t.round===r&&ae(e,n)},e=>{if(t.round===r)throw e})})(t,o,e).then(()=>pe(t,o,e,fe),r=>pe(t,o,e,r))},n),new Promise((e,t)=>{o.waiters.push({resolve:e,reject:t})})}function pe(t,r,n,o){if(r.round!==n)return;if(r.round=null,null!==r.timer)return;r.marked&&(r.marked=!1,t.validating.delete(le),e.emit(t.emitter,"validating"));const i=r.waiters;r.waiters=[];for(const e of i)o===fe?e.resolve():e.reject(o)}function he(e,t,r){e.validateDeps?.has(t.key)&&e.validate&&("onChange"===r||"all"===r||"onTouched"===r&&U(e,t)||"onChange"===e.reValidateMode&&function(e){const t=ce.get(e);if(!t)return!1;for(const[r,n]of t)if(e.errors.get(r)===n)return!0;return!1}(e))&&ye(e).catch(()=>{})}const ge=new WeakMap;function ve(e,t,r){let n=ge.get(e);n||(n=new Map,ge.set(e,n));for(const e of r){let r=n.get(e);r||(r=new Set,n.set(e,r)),r.add(t)}}function be(e,t,r){const n=ge.get(e);if(n)for(const e of r){const r=n.get(e);r?.delete(t)&&(r.size||n.delete(e))}}function ke(e,t,r){const n=ge.get(e)?.get(t.key);if(n?.size)for(const o of n)o!==t.key&&("onChange"===r||"all"===r||"onTouched"===r&&U(e,t)||"onChange"===e.reValidateMode&&e.errors.has(o))&&e.validators.get(o)?.()}function xe(e){const t=new Error(T(e));return t.errors=D(e),t}async function Se(e){if(e.validators.forEach(e=>e()),await m(e.emitter,"validating",()=>de(e),()=>B(e)).catch(()=>{throw xe(e)}),e.validate&&(await ye(e),B(e)))throw xe(e)}async function Ve(e){return Se(e).catch(e=>e.message)}const we=new WeakMap;function Ee(e,t,r,n){!1===n?.shouldDirty&&b(e,t,r),we.get(e)?.get(t.key)?Fe(e,t,r):H(e,t,r,n)}function Ce(e,t,r){let n=we.get(e);n||(n=new Map,we.set(e,n));const o=n.has(t.key),i={};return n.set(t.key,{mode:r,token:i}),{token:i,displaced:o}}function Ae(e,t,r){const n=we.get(e),o=n?.get(t.key);n&&o&&o.token===r&&n.delete(t.key)}function Fe(e,t,r){H(e,t,r);const n=we.get(e)?.get(t.key);n&&function(e,t,r){("onChange"===r||"all"===r||"onTouched"===r&&U(e,t)||M(e,t).length>0&&"onChange"===e.reValidateMode)&&e.validators.get(t.key)?.(),he(e,t,r),ke(e,t,r)}(e,t,n.mode??e.mode)}function Oe(e,t){W(e,t);const r=we.get(e)?.get(t.key);if(!r)return;const n=r.mode??e.mode;("onBlur"===n||"onTouched"===n||"all"===n||M(e,t).length>0&&"onBlur"===e.reValidateMode)&&e.validators.get(t.key)?.()}function Me(t,r){t.isSubmitting=r,e.emit(t.emitter,"submitting")}function De(t){t.submitCount++,e.emit(t.emitter,"submitCount")}function Te(t,r){t.isSubmitSuccessful=r,e.emit(t.emitter,"submitSuccessful")}function Pe(t,r){t.disabled=r,e.emit(t.emitter,"disabled")}function je(e){if(e.startsWith("["))try{const t=JSON.parse(e);if(Array.isArray(t))return t.join(".")}catch{}return e}function Le(t,r){const{onSubmit:n,onValidSubmit:o,onInvalidSubmit:i,onAction:s,shouldFocusError:u=!0}=r??{};return async r=>{r&&"function"==typeof r.preventDefault&&r.preventDefault();const a=r?.currentTarget;t.isSubmitted=!0,Me(t,!0),De(t);const c=z(t);if(a&&"function"==typeof a.checkValidity&&!1===a.checkValidity()){if(a.reportValidity(),u&&"function"==typeof a.querySelector){const e=a.querySelector(":invalid");e&&"function"==typeof e.focus&&e.focus()}return Me(t,!1),Te(t,!1),void(i&&i(function(e){const t=[],{elements:r}=e;for(let e=0;e<r.length;e++){const n=r[e];n.name&&"function"==typeof n.checkValidity&&!n.checkValidity()&&t.push({path:je(n.name),type:"native",message:n.validationMessage})}return t}(a),c))}if(await Ve(t)){if(Me(t,!1),Te(t,!1),u){const r=t.errors.keys().next().value;void 0!==r&&e.emit(t.emitter,"focusError",r)}i&&i(D(t),c)}else try{const e=z(t);n&&await n(e,r),o&&await o(e,r),s&&await s(e,r),Te(t,!0)}catch{Te(t,!1)}finally{Me(t,!1)}}}function Be(t){const r=e.create();e.setMaxListeners(r,0);let n=t?.initialValues??{};"function"==typeof n&&(n=n());const o={emitter:r,...t,mode:t?.mode??"onSubmit",reValidateMode:t?.reValidateMode??"onChange",disabled:t?.disabled??!1,validateOnMount:t?.validateOnMount??!1,asyncAlways:t?.asyncAlways??!1,validateDeps:t?.validateDeps?new Set(t.validateDeps.map(e=>y(e).key)):void 0,initialValues:{},values:new Map,deleted:new Set,errors:new Map,touched:new Set,validators:new Map,validating:new Set,parsedValues:void 0,isSubmitting:!1,isSubmitted:!1,submitCount:0,isSubmitSuccessful:void 0,isLoading:!1,status:void 0};return d(n)?(o.isLoading=!0,e.emit(r,"loading"),Promise.resolve(n).then(t=>{ee(o,t??{}),o.isLoading=!1,e.emit(r,"loading")},t=>{o.isLoading=!1,e.emit(r,"loading")})):o.initialValues=n,o}function Re(e,t){switch(e){case"required":return"This field is required";case"min":return`Must be at least ${t}`;case"max":return`Must be at most ${t}`;case"minLength":return`Must be at least ${t} characters`;case"maxLength":return`Must be at most ${t} characters`;case"pattern":return"Invalid format";default:return"Invalid value"}}function Ne(e){return(t,r)=>{if(e.required&&(""===t||null==t||Array.isArray(t)&&0===t.length))return[{type:"required",message:"string"==typeof e.required?e.required:Re("required")}];const n=[],o=(t,r)=>e.messages?.[t]??Re(t,r);if(void 0!==e.min){const r=Number(t);!Number.isNaN(r)&&r<e.min&&n.push({type:"min",message:o("min",e.min)})}if(void 0!==e.max){const r=Number(t);!Number.isNaN(r)&&r>e.max&&n.push({type:"max",message:o("max",e.max)})}const i="string"==typeof t||Array.isArray(t);if(void 0!==e.minLength&&i&&t.length<e.minLength&&n.push({type:"minLength",message:o("minLength",e.minLength)}),void 0!==e.maxLength&&i&&t.length>e.maxLength&&n.push({type:"maxLength",message:o("maxLength",e.maxLength)}),e.pattern&&!e.pattern.value.test(t)&&n.push({type:"pattern",message:e.messages?.pattern??e.pattern.message??Re("pattern")}),void 0!==e.validate){const o="function"==typeof e.validate?{validate:e.validate}:e.validate;for(const[e,i]of Object.entries(o)){const o=i(t,r);if(void 0!==o)for(const t of Array.isArray(o)?o:[o])n.push("string"==typeof t?{type:e,message:t}:{...t,type:e})}}return n.length?n:void 0}}function Ie(e){const t={};return e.required&&(t.required=!0),void 0!==e.min&&(t.min=e.min),void 0!==e.max&&(t.max=e.max),void 0!==e.minLength&&(t.minLength=e.minLength),void 0!==e.maxLength&&(t.maxLength=e.maxLength),e.pattern&&(t.pattern=e.pattern.value.source),t}function qe(e,t){return e.startsWith(`${t.slice(0,-1)},`)}function $e(t,r,n,o,i){const{key:s}=n;return e.on(t,r,e=>{(void 0===e||e.key===s||qe(s,e.key)||"branch"===o&&qe(e.key,s))&&i()})}function We(t,r,n,o){return e.on(t,r,e=>{void 0!==e&&e.key!==n||o()})}function Ue(r){const[n]=t.useState(()=>{const e=Be(r);return r&&void 0!==r.values&&ee(e,r.values),e}),o=r&&r.initialValues,i=r&&r.values,s=t.useRef(null);null===s.current&&(s.current={done:!1,source:void 0}),t.useEffect(()=>{if(void 0===o)return;if("function"==typeof o||d(o))return;const e=s.current;e.done&&(e.source===o||f(e.source,o))||(e.done=!0,e.source=o,ee(n,o))},[n,o]);const u=t.useRef(null);return null===u.current&&(u.current={done:!1,source:void 0}),t.useEffect(()=>{if(void 0===i)return;const e=u.current;e.done&&(e.source===i||f(e.source,i))||(e.done=!0,e.source=i,ee(n,i))},[n,i]),t.useEffect(()=>{if(!n.validateOnMount||!n.validate)return;const t=()=>{ye(n).catch(()=>{})};if(n.isLoading)return e.on(n.emitter,"loading",()=>{t()});t()},[n]),n}function Je(e,r,n){const o=t.useRef(null);null===o.current&&(o.current={hasValue:!1});const i=o.current,s=t.useRef(r);s.current=r;const u=t.useRef(n);u.current=n;const a=t.useCallback(()=>(i.hasValue||(i.value=s.current(),i.hasValue=!0),i.value),[i]),c=t.useCallback(t=>{i.hasValue=!1;return e(()=>{const e=u.current;if(e&&i.hasValue){const r=s.current();if(e(i.value,r))return;return i.value=r,void t()}i.hasValue=!1,t()})},[e,i]);return t.useSyncExternalStore(c,a,a)}function ze(r,n,o,i){const s="emitter"in r?r.emitter:r;return Je(t.useCallback(t=>e.on(s,n,t),[s,n]),o,i)}function _e(e,r,n){const{emitter:o}=e,{key:i}=r,s=!1===n?.exact?"branch":"leaf";return Je(t.useCallback(e=>$e(o,"change",r,s,e),[o,i,s]),()=>{if(!1===n?.exact)return u(z(e),r.value);const t=G(e,r);return void 0===t?n?.defaultValue:t})}function Ge(e,r){const{emitter:n}=e,{key:o}=r;return Je(t.useCallback(e=>We(n,"touched",o,e),[n,o]),U.bind(null,e,r))}function He(e,r){const{emitter:n}=e,{key:o}=r;return Je(t.useCallback(e=>We(n,"errors",o,e),[n,o]),F.bind(null,e,r))}function Ke(e,r){const{emitter:n}=e,{key:o}=r;return Je(t.useCallback(e=>We(n,"errors",o,e),[n,o]),M.bind(null,e,r))}function Qe(e,r){const{emitter:n}=e,{key:o}=r;return Je(t.useCallback(e=>$e(n,"change",r,"leaf",e),[n,o]),()=>R(e,r))}const Xe=["change","errors","touched","validating","submitting","submitCount","submitSuccessful","disabled","loading"];function Ye(e,t){const r=e.touchedFields.length===t.touchedFields.length&&e.touchedFields.every((e,r)=>e===t.touchedFields[r]);return e.isDirty===t.isDirty&&e.dirtyFields===t.dirtyFields&&e.isTouched===t.isTouched&&r&&e.hasErrors===t.hasErrors&&e.isValid===t.isValid&&e.isSubmitting===t.isSubmitting&&e.isSubmitted===t.isSubmitted&&e.isValidating===t.isValidating&&e.isSubmitSuccessful===t.isSubmitSuccessful&&e.submitCount===t.submitCount&&e.isLoading===t.isLoading&&e.disabled===t.disabled}function Ze(e){const r=t.useMemo(()=>y(i(e)),[e]);return t.useMemo(()=>r,[r.key])}function et(e){const r=t.useRef(e);return r.current=e,r}function tt(e){const r=et(e);return t.useCallback((...e)=>r.current(...e),[r])}function rt(e,r){const n=t.useRef(!1);t.useEffect(()=>(n.current&&(n.current=!1,r()),()=>{n.current=!0,e()}),[])}function nt(r,n,o,i){const s=t.useContext(ht),u=o||s;if(!u)throw new Error("no form provided");const a=t.useRef(r);a.current=r;const c=t.useRef(i?.debounce??0);c.current=i?.debounce??0;const l=t.useRef(i?.sync);l.current=i?.sync;const d=t.useRef(i?.asyncAlways??!1);return d.current=i?.asyncAlways??!1,t.useEffect(()=>{const t=oe(u,n,{validate:()=>a.current,debounce:()=>c.current,sync:()=>l.current,asyncAlways:()=>d.current});if(!(i?.validateOnMount??u.validateOnMount)||!a.current&&!l.current)return t;let r=!1;const o=()=>{r||u.validators.get(n.key)?.()};if(u.isLoading){const t=e.on(u.emitter,"loading",()=>{t(),o()})}else o();return()=>{r=!0,t()}},[u,n.key]),tt(()=>u.validators.get(n.key)?.())}function ot(e,t){const{key:r}=t,n={present:e.values.has(r),value:e.values.get(r),touched:e.touched.has(r),errors:e.errors.get(r)};return X(e,t),n}function it(t,r,n){const{key:o}=r;n.present?H(t,r,n.value,{shouldDirty:!1}):(t.deleted.delete(o),h(t),e.emit(t.emitter,"change",r)),n.touched&&W(t,r),n.errors&&j(t,r,n.errors)}const st=new WeakMap;function ut({form:r,name:n,initialValue:o,shouldUnregister:i,validate:s,rules:u,validateDebounce:a,validateDeps:c,validateOnMount:l,delayError:f,disabled:m,uncontrolled:p,asyncAlways:h,mode:g},v){const b=t.useContext(v),k=r||b;if(!k)throw new Error("no form provided");const x=Ze(n),S=t.useRef(!1);void 0!==o&&void 0===G(k,x)&&(K(k,x,o),S.current=!0),t.useEffect(()=>{S.current&&(S.current=!1,Q(k,x))});nt(function(e,t){if(!e||!function(e){return void 0!==e.required||void 0!==e.min||void 0!==e.max||void 0!==e.minLength||void 0!==e.maxLength||void 0!==e.pattern||void 0!==e.validate}(e))return t;const r=Ne(e);return t?(e,n)=>{const o=r(e,n),i=e=>{const t=[...o??[]];return Array.isArray(e)?t.push(...e):e&&t.push(e),t.length?t:void 0},s=t(e,n);return d(s)?s.then(i):i(s)}:r}(u?{...u,required:void 0}:void 0,s),x,k,{debounce:a,validateOnMount:l,asyncAlways:h??k.asyncAlways,sync:u&&void 0!==u.required?Ne({required:u.required}):void 0});const V=function(e,r){const[n,o]=t.useState(e);return t.useEffect(()=>{if(void 0===r)return;if(0===e.length)return void o(e);if(n.length>0)return void o(e);const t=setTimeout(()=>o(e),r);return()=>clearTimeout(t)},[e,r,n]),void 0===r?e:n}(Ke(k,x),f),w=V[0],E=w?.message,C=function(e,r,n){const o=t.useRef({has:!1,value:void 0}),i=t.useCallback(()=>n?(o.current.has||(o.current={has:!0,value:G(e,r)}),o.current.value):G(e,r),[n,e,r]);return Je(t.useCallback(t=>n?()=>{}:$e(e.emitter,"change",r,"leaf",t),[n,e.emitter,r]),i)}(k,x,!!p),A=Je(t.useCallback(e=>p?()=>{}:$e(k.emitter,"change",x,"leaf",e),[k.emitter,x.key,p]),()=>R(k,x)),F=Je(t.useCallback(e=>We(k.emitter,"validating",x.key,e),[k.emitter,x.key]),()=>k.validating.has(x.key)),O=ze(k,"disabled",()=>k.disabled),M=tt(e=>Fe(k,x,e)),D=tt(()=>Oe(k,x));t.useEffect(()=>{const{token:e,displaced:t}=Ce(k,x,g);return()=>Ae(k,x,e)},[k,x.key,g]);const T=c?.length?c.join("\n"):void 0;t.useEffect(()=>{if(!T)return;const e=c.map(e=>y(e).key);return ve(k,x.key,e),()=>be(k,x.key,e)},[k,x.key,T]);const P=t.useRef(null),j=t.useCallback(e=>{P.current=e},[]);t.useEffect(()=>e.on(k.emitter,"focusError",(e,t)=>{if(e!==x.key)return;const r=P.current;r&&"function"==typeof r.focus&&(r.focus(),t?.shouldSelect&&"function"==typeof r.select&&r.select())}),[k,x.key]),t.useEffect(()=>{if(!p)return;let t=st.get(k);if(!t){const r=new Map,n=e.on(k.emitter,"change",e=>{if(!e)for(const e of r.values()){const{el:t,path:r}=e();if(!t||"file"===t.type)continue;const n=G(k,r),o=null==n?"":String(n);t.value!==o&&(t.value=o)}});t={cells:r,off:n},st.set(k,t)}return t.cells.set(x.key,()=>({el:P.current,path:x})),()=>{t.cells.delete(x.key),0===t.cells.size&&(t.off(),st.delete(k))}},[k,x.key,p]);const L=t.useRef(null);return rt(tt(()=>{!1!==(i??k.shouldUnregister)&&(L.current=ot(k,x))}),tt(()=>{const e=L.current;L.current=null,e&&it(k,x,e)})),{form:k,value:C,error:E,errorObject:w,errors:V,isDirty:A,validating:F,onChange:M,onBlur:D,name:x.key,disabled:O||!!m,focusRef:j}}function at(e){return ut(e,ht)}const ct=new WeakMap;function lt(e){const t=(ct.get(e)??0)+1;return ct.set(e,t),`_${t}`}const dt=new WeakMap;function ft(e,t,r){let n=dt.get(e);n||(n=new Map,dt.set(e,n)),n.set(t,r)}function mt(e){return e+1}function yt(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const i=e.keyName??"id",{rules:s,shouldUnregister:u}=e,a=Ze(e.name),c=t.useRef([]),l=t.useCallback(()=>G(o,a)||[],[o,a]),d=t.useCallback(e=>{H(o,a,e)},[o,a]),f=t.useCallback(()=>{const e=l();for(;c.current.length<e.length;)c.current.push(lt(o));for(;c.current.length>e.length;)c.current.pop();return c.current.map((e,t)=>({id:e,index:t,[i]:e}))},[l,o,i]),[m,y]=t.useReducer(f,void 0,f);t.useEffect(()=>$e(o.emitter,"change",a,"branch",y),[o.emitter,a]),ft(o,a.key,c.current),t.useEffect(()=>(ft(o,a.key,c.current),()=>{const e=dt.get(o);e?.get(a.key)===c.current&&e.delete(a.key)}),[o,a.key]);const p=t.useRef(null);rt(tt(()=>{!1!==(u??o.shouldUnregister)&&(p.current=ot(o,a))}),tt(()=>{const e=p.current;p.current=null,e&&it(o,a,e)})),nt(s?Ne({...s,required:void 0}):void 0,a,o,{sync:s&&void 0!==s.required?Ne({required:s.required}):void 0});return{fields:m,append:tt(e=>{const t=l();c.current.push(lt(o)),d([...t,e])}),prepend:tt(e=>{const t=l();c.current.unshift(lt(o)),d([e,...t])}),insert:tt((e,t)=>{const r=l();c.current.splice(e,0,lt(o));const n=[...r.slice(0,e),t,...r.slice(e)];d(n)}),remove:tt(e=>{const t=l();c.current.splice(e,1);const r=t.filter((t,r)=>r!==e);d(r)}),swap:tt((e,t)=>{const r=l();[c.current[e],c.current[t]]=[c.current[t],c.current[e]];const n=[...r];[n[e],n[t]]=[n[t],n[e]],d(n)}),move:tt((e,t)=>{const r=l(),[n]=c.current.splice(e,1);c.current.splice(t,0,n);const o=[...r],[i]=o.splice(e,1);o.splice(t,0,i),d(o)}),replace:tt(e=>{c.current=e.map(()=>lt(o)),d([...e])}),update:tt((e,t)=>{const r=l();if(e<0||e>=r.length)return;const n=[...r];n[e]=t,d(n)})}}function pt(e,r){const n=t.useContext(r),o=e.form||n;if(!o)throw new Error("no form provided");const{id:i}=e,s=Ze(e.name),u=t.useCallback(()=>function(e,t){return dt.get(e)?.get(t)}(o,s.key)?.indexOf(i)??-1,[o,s.key,i]),a=t.useCallback(e=>{const t=G(o,s);return Array.isArray(t)?t[e]:void 0},[o,s]),c=u(),l=a(c),d=t.useRef({index:c,value:l});d.current={index:c,value:l};const f=et({computeIndex:u,computeValue:a}),[,m]=t.useReducer(mt,0);t.useEffect(()=>$e(o.emitter,"change",s,"leaf",()=>{const{computeIndex:e,computeValue:t}=f.current,r=e();r===d.current.index&&Object.is(t(r),d.current.value)||m()}),[o.emitter,s,f]);const y=Ze([...s.value,c]),p=Ke(o,y);return{value:l,setValue:tt(e=>{if(c<0)return;const t=[...G(o,s)??[]];c>=t.length||(t[c]=e,H(o,s,t))}),errors:p,error:p[0]?.message,name:y.key,index:c,form:o}}const ht=t.createContext(null),gt=ht.Provider;const vt=t.createContext(null),bt=vt.Provider;function kt(e,t,r){if(null!=r)if(Array.isArray(r))for(const n of r)kt(e,t,n);else if("undefined"!=typeof FileList&&r instanceof FileList)for(let n=0;n<r.length;n++)e.append(t,r.item(n));else"undefined"!=typeof File&&r instanceof File?e.append(t,r,r.name):"undefined"!=typeof Blob&&r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,"object"==typeof r?JSON.stringify(r):String(r))}function xt(e){return e.replace(/["'[\],\s]+/g,"-").replace(/^-+|-+$/g,"")||"field"}function St(e,t,r){return{"aria-invalid":!!e||r["aria-invalid"],"aria-describedby":e?[r["aria-describedby"],xt(t)].filter(Boolean).join(" "):r["aria-describedby"]}}const Vt=n.forwardRef(({validate:e,eventToValue:t,initialValue:r,name:o,asProps:i,renderError:s,as:u,valueToProps:a,form:c,shouldUnregister:l,rules:d,validateDebounce:f,validateOnMount:m,valueAsNumber:y,valueAsDate:p,asyncAlways:h,disabled:g,delayError:v,mode:b,uncontrolled:k,...x},S)=>{const V=n.useRef(null),[w,E]=n.useState(0),{value:C,onChange:A,onBlur:F,error:O,name:M,disabled:D,focusRef:T}=at({name:o,form:c,initialValue:r,shouldUnregister:l,rules:d,validateDebounce:f,validateOnMount:m,delayError:v,disabled:g,asyncAlways:h,mode:b,uncontrolled:k||"file"===x.type,validate:(...t)=>{const r=V.current;if(!r||"function"!=typeof r.checkValidity||(r.setCustomValidity(""),!1!==r.checkValidity()))return e?e(...t):void 0;E(e=>e+1)}}),P=n.useCallback(e=>{V.current=e,T(e),function(e,t){"function"==typeof e?e(t):e&&(e.current=t)}(S,e)},[S,T]),j=u||"input";n.useEffect(()=>{const e=V.current;e&&"function"==typeof e.setCustomValidity&&("string"==typeof O?(e.setCustomValidity(O),e.reportValidity()):e.setCustomValidity(""))},[O]),n.useEffect(()=>{w>0&&V.current?.reportValidity()},[w]);const L="file"===x.type,B=t??(L?e=>e.target.files:y?e=>e.target.valueAsNumber:p?e=>e.target.valueAsDate:e=>e.target.value),R=a?a(C):L?{}:k?{defaultValue:C}:{value:C},N=xt(M),I=d?Ie(d):void 0;return n.createElement(n.Fragment,null,n.createElement(j,{...I,...x,name:M,onBlur:F,...i,...R,...St(O,M,x),disabled:D,onChange:e=>A(B(e)),ref:P}),O&&s?n.createElement("span",{id:N,role:"alert"},s(O,N)):null)}),wt=n.forwardRef(({name:e,form:t,initialValue:r,shouldUnregister:o,validate:i,rules:s,validateDebounce:u,validateOnMount:a,asyncAlways:c,disabled:l,delayError:d,mode:f,...m},y)=>{const{value:p,onChange:h,onBlur:g,error:v,name:b,disabled:k}=at({name:e,form:t,initialValue:r,shouldUnregister:o,validate:i,rules:s,validateDebounce:u,validateOnMount:a,asyncAlways:c,delayError:d,disabled:l,mode:f}),x=s?Ie(s):void 0;return n.createElement("input",{...x,...m,name:b,onBlur:g,type:"checkbox",checked:!!p,...St(v,b,m),disabled:k,onChange:e=>h(e.target.checked),ref:y})});function Et(e,t){return e?Array.isArray(t)?t:[]:t??""}const Ct=n.forwardRef(({name:e,multiple:t,children:r,form:o,initialValue:i,shouldUnregister:s,validate:u,rules:a,validateDebounce:c,validateOnMount:l,asyncAlways:d,disabled:f,delayError:m,mode:y,...p},h)=>{const{value:g,onChange:v,onBlur:b,error:k,name:x,disabled:S}=at({name:e,form:o,initialValue:i,shouldUnregister:s,validate:u,rules:a,validateDebounce:c,validateOnMount:l,asyncAlways:d,delayError:m,disabled:f,mode:y}),V=a?Ie(a):void 0;return n.createElement("select",{...V,...p,name:x,onBlur:b,multiple:t,value:Et(t,g),...St(k,x,p),disabled:S,onChange:e=>v(t?Array.from(e.target.selectedOptions,e=>e.value):e.target.value),ref:h},r)});exports.Checkbox=wt,exports.CheckboxGroupContext=vt,exports.CheckboxGroupProvider=bt,exports.FORM_ERROR=C,exports.Field=Vt,exports.Form=function({form:e,context:t,initialValues:r,values:o,shouldUnregister:i,validateOnMount:s,disabled:u,asyncAlways:a,onSubmit:c,onValidSubmit:l,onInvalidSubmit:d,action:f,shouldFocusError:m,...y}){const p=Ue({initialValues:r,values:o,shouldUnregister:i,validateOnMount:s,disabled:u,asyncAlways:a}),h=e||p;n.useEffect(()=>{void 0!==u&&Pe(h,u)},[h,u]);const g=Le(h,{onSubmit:c,onValidSubmit:l,onInvalidSubmit:d,shouldFocusError:m,onAction:f?e=>f(function(e){const t=new FormData;for(const r of Object.keys(e))kt(t,r,e[r]);return t}(e)):void 0}),{Provider:v}=t??ht;return n.createElement(v,{value:h},n.createElement("form",{...y,noValidate:!0,onSubmit:g}))},exports.FormContext=ht,exports.FormField=function({children:e,...t}){return e(at(t))},exports.FormProvider=gt,exports.Select=Ct,exports.VALIDATION_OUTCOME=A,exports.changeValue=function(e,t,r,n){Ee(e,y(t),r,n)},exports.changeValueByPath=Ee,exports.clearErrors=L,exports.createForm=Be,exports.createFormContext=function(){const e=t.createContext(null);return{context:e,FormProvider:function({form:r,children:n}){return t.createElement(e.Provider,{value:r},n)},useFormContext:function(){const r=t.useContext(e);if(!r)throw new Error("no form provided");return r},useField:function(t){return ut(t,e)},useFieldArray:function(t){return yt(t,e)},useFieldArrayItem:function(t){return pt(t,e)}}},exports.emitChangeByPath=Q,exports.ensureValidate=Se,exports.fieldErrorId=function(e){return xt(y(e).key)},exports.getDirtyFields=$,exports.getError=function(e,t){return F(e,y(t))},exports.getErrorByPath=F,exports.getErrors=D,exports.getFieldErrors=function(e,t){return M(e,y(t))},exports.getFieldErrorsByPath=M,exports.getFieldState=function(e,t){const r=y(t),{touched:n,validating:o}=e;return{value:G(e,r),error:F(e,r),errors:M(e,r),isDirty:R(e,r),isTouched:n.has(r.key),isValidating:o.has(r.key)}},exports.getFirstError=T,exports.getTouchedFields=J,exports.getValue=function(e,t){return G(e,y(t))},exports.getValueByPath=G,exports.getValues=z,exports.handleSubmit=Le,exports.hasErrors=B,exports.hasTouched=function(e,t){return U(e,y(t))},exports.hasTouchedByPath=U,exports.incrementSubmitCount=De,exports.isDirty=N,exports.isFieldDirtyByPath=R,exports.isTouched=function({touched:e}){return e.size>0},exports.registerFieldMode=Ce,exports.registerFieldValidateDeps=ve,exports.registerValidatorByPath=oe,exports.removeField=function(e,t,r){X(e,y(t),r)},exports.removeFieldByPath=X,exports.reset=function(t,r,n){const o=[];if(n?.keepValues)te(z(t),[],o);else if(n?.keepDirtyValues)for(const[e,r]of t.values){const n=JSON.parse(e);v(t,e,n)!==r&&o.push({segments:n,value:r})}t.initialValues=n?.keepDefaultValues?t.initialValues:r??t.initialValues,t.parsedValues=void 0,n?.keepErrors||L(t);const{emitter:i,touched:s,values:u,deleted:a,validating:c}=t;u.clear(),a.clear(),x(t),n?.keepTouched||s.clear(),c.clear(),n?.keepIsSubmitting||(t.isSubmitting=!1),n?.keepSubmitCount||(t.submitCount=0),n?.keepIsSubmitted||(t.isSubmitted=!1),n?.keepIsSubmitSuccessful||(t.isSubmitSuccessful=void 0),V(t),h(t);for(const{segments:e,value:r}of o)H(t,y(e),r);e.emit(i,"change"),e.emit(i,"touched"),e.emit(i,"validating"),e.emit(i,"submitting"),e.emit(i,"submitCount"),e.emit(i,"submitSuccessful"),e.emit(i,"reset")},exports.resetField=function(t,r,n){const o=y(r),{emitter:i,values:s,touched:c,errors:l,deleted:d}=t;if(s.delete(o.key),x(t,o.key),void 0!==t.parsedValues){t.parsedValues=a(t.parsedValues,o.value);const e=u(t.initialValues,o.value);void 0!==e&&s.set(o.key,e)}n&&"value"in n&&s.set(o.key,n.value),Z(d,o),e.emit(i,"change"),!n?.keepTouched&&c.delete(o.key)&&e.emit(i,"touched",o),!n?.keepErrors&&l.delete(o.key)&&e.emit(i,"errors",o),V(t),h(t)},exports.revalidateDependentsOnChange=ke,exports.revalidateFormOnChange=he,exports.runFormValidate=ye,exports.seedValueByPath=K,exports.setDisabled=Pe,exports.setError=P,exports.setErrorByPath=j,exports.setFocus=function(t,r,n){const{key:o}=y(r);n?e.emit(t.emitter,"focusError",o,n):e.emit(t.emitter,"focusError",o)},exports.setInitialValues=ee,exports.setIsSubmitting=Me,exports.setServerErrors=function(e,t,r){r?.keepExisting||L(e);for(const[r,n]of Object.entries(t))P(e,r,(Array.isArray(n)?n:[n]).map(e=>({type:"server",message:e})))},exports.setStatus=function(t,r){t.status=r,e.emit(t.emitter,"status")},exports.setSubmitSuccessful=Te,exports.setTouched=function(e,t){W(e,y(t))},exports.setTouchedByPath=W,exports.setValidatingByPath=ne,exports.setValue=function(e,t,r,n){H(e,y(t),r,n)},exports.setValueByPath=H,exports.subscribe=function(t,r){const{name:n,event:o="change",scope:i="branch",callback:s}=r;if(void 0===n)return e.on(t.emitter,o,s);const u=(function(e){return Array.isArray(e)&&e.every(e=>"number"!=typeof e)}(n)?n:[n]).map(e=>{const r=y(e);return"errors"===o||"touched"===o?We(t.emitter,o,r.key,s):$e(t.emitter,o,r,i,s)});return 1===u.length?u[0]:()=>u.forEach(e=>e())},exports.trigger=async function(t,r,n){const o=e=>m(t.emitter,"validating",()=>void 0===e?de(t):e.every(e=>!t.validating.has(e)),()=>!1);if(void 0===r){if(t.validators.forEach(e=>e()),await o(),t.validate&&await ye(t),n?.shouldTouch&&ie(t,[...t.validators.keys()]),n?.shouldFocus){const r=t.errors.keys().next().value;void 0!==r&&e.emit(t.emitter,"focusError",r)}return!B(t)}const i="string"==typeof r||w(r)?[y(r).key]:r.map(e=>y(e).key);if(i.forEach(e=>t.validators.get(e)?.()),await o(i),n?.shouldTouch&&ie(t,i),n?.shouldFocus){const r=i.find(e=>t.errors.has(e));void 0!==r&&e.emit(t.emitter,"focusError",r)}return i.every(e=>!t.errors.has(e))},exports.unregisterFieldMode=Ae,exports.unregisterFieldValidateDeps=be,exports.unsetValidatingByPath=re,exports.useCanSubmit=function(r){const{emitter:n}=r;return Je(t.useCallback(t=>{const r=e.on(n,"errors",t),o=e.on(n,"submitting",t);return()=>{r(),o()}},[n]),()=>!r.isSubmitting&&!B(r))},exports.useCheckboxGroupContext=function(){const e=t.useContext(vt);if(!e)throw new Error("no group provided");return e},exports.useDirtyFields=function(e){return ze(e,"change",$.bind(null,e))},exports.useError=function(e,t){return He(e,y(t))?.message},exports.useErrorByPath=He,exports.useField=at,exports.useFieldArray=function(e){return yt(e,ht)},exports.useFieldArrayItem=function(e){return pt(e,ht)},exports.useFieldErrors=function(e,t){return Ke(e,y(t))},exports.useFieldErrorsByPath=Ke,exports.useForm=Ue,exports.useFormContext=function(){const e=t.useContext(ht);if(!e)throw new Error("no form provided");return e},exports.useFormError=function(e){return He(e,y(C))?.message},exports.useFormErrors=function(e){return Ke(e,y(C))},exports.useFormState=function(r){const n=t.useCallback(()=>function(e){return{isDirty:N(e),dirtyFields:$(e),isTouched:e.touched.size>0,touchedFields:J(e),hasErrors:B(e),isValid:!B(e),isSubmitting:e.isSubmitting,isSubmitted:e.isSubmitted,isValidating:e.validating.size>0,isSubmitSuccessful:e.isSubmitSuccessful,submitCount:e.submitCount,isLoading:e.isLoading,disabled:e.disabled}}(r),[r]);return Je(t.useCallback(t=>{const n=Xe.map(n=>e.on(r.emitter,n,t));return()=>{for(const e of n)e()}},[r.emitter]),n,Ye)},exports.useHasErrors=function(e){return ze(e,"errors",B.bind(null,e))},exports.useIsDirty=function(e){return ze(e,"change",N.bind(null,e))},exports.useIsFieldDirty=function(e,t){return Qe(e,y(t))},exports.useIsFieldDirtyByPath=Qe,exports.useIsLoading=function(e){return ze(e,"loading",()=>e.isLoading)},exports.useIsSubmitSuccessful=function(e){return ze(e.emitter,"submitSuccessful",()=>!!e.isSubmitSuccessful)},exports.useIsSubmitting=function(e){return ze(e,"submitting",()=>e.isSubmitting)},exports.useIsValid=function(e){return ze(e,"errors",()=>!B(e))},exports.useIsValidating=function(e){return ze(e,"validating",()=>e.validating.size>0)},exports.useStatus=function(e){return ze(e,"status",()=>e.status)},exports.useSubmitCount=function(e){return ze(e,"submitCount",()=>e.submitCount)},exports.useTouched=function(e,t){return Ge(e,y(t))},exports.useTouchedByPath=Ge,exports.useTouchedFields=function(e){return ze(e,"touched",J.bind(null,e))},exports.useTransform=function(e,r,n={}){const o=Ze(r),{toDisplay:i,fromDisplay:s}=n,u=Je(t.useCallback(t=>$e(e.emitter,"change",o,"leaf",t),[e.emitter,o.key]),()=>G(e,o));return{value:i?i(u):u,onChange:t.useCallback(t=>{Fe(e,o,s?s(t):t)},[e,o,s])}},exports.useValue=function(e,t,r){return _e(e,y(t),r)},exports.useValueByPath=_e,exports.useWatch=ze,exports.useWatchCore=Je,exports.userBlur=Oe,exports.userChangeByPath=Fe,exports.validate=Ve;
2
2
  //# sourceMappingURL=index.cjs.js.map