@lehnihon/bit-form 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.d.cts +31 -38
  4. package/dist/angular/index.d.ts +31 -38
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/bus-B1my-s_o.d.ts +16 -0
  8. package/dist/bus-BI29cKpD.d.cts +16 -0
  9. package/dist/chunk-2UVV7SU4.js +2 -0
  10. package/dist/chunk-2UVV7SU4.js.map +1 -0
  11. package/dist/chunk-676WXU4S.cjs +2 -0
  12. package/dist/chunk-676WXU4S.cjs.map +1 -0
  13. package/dist/chunk-7MBRAKBL.js +2 -0
  14. package/dist/chunk-7MBRAKBL.js.map +1 -0
  15. package/dist/chunk-AD7T42HJ.js +1 -0
  16. package/dist/chunk-AD7T42HJ.js.map +1 -0
  17. package/dist/chunk-C4BYXZGB.cjs +1 -0
  18. package/dist/chunk-C4BYXZGB.cjs.map +1 -0
  19. package/dist/chunk-ER2DNS7T.cjs +2 -0
  20. package/dist/chunk-ER2DNS7T.cjs.map +1 -0
  21. package/dist/chunk-NWPA4F3B.cjs +2 -0
  22. package/dist/chunk-NWPA4F3B.cjs.map +1 -0
  23. package/dist/chunk-O5RRLZR7.js +2 -0
  24. package/dist/chunk-O5RRLZR7.js.map +1 -0
  25. package/dist/chunk-TRPMTJ35.js +2 -0
  26. package/dist/chunk-TRPMTJ35.js.map +1 -0
  27. package/dist/chunk-VSWCUQAF.cjs +2 -0
  28. package/dist/chunk-VSWCUQAF.cjs.map +1 -0
  29. package/dist/cli/index.cjs +3 -3
  30. package/dist/core/light.cjs +2 -0
  31. package/dist/core/light.cjs.map +1 -0
  32. package/dist/core/light.d.cts +29 -0
  33. package/dist/core/light.d.ts +29 -0
  34. package/dist/core/light.js +2 -0
  35. package/dist/core/light.js.map +1 -0
  36. package/dist/devtools/bridge.cjs +1 -1
  37. package/dist/devtools/bridge.cjs.map +1 -1
  38. package/dist/devtools/bridge.js +1 -1
  39. package/dist/devtools/bridge.js.map +1 -1
  40. package/dist/devtools/index.cjs +132 -1
  41. package/dist/devtools/index.cjs.map +1 -1
  42. package/dist/devtools/index.js +132 -1
  43. package/dist/devtools/index.js.map +1 -1
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +19 -53
  47. package/dist/index.d.ts +19 -53
  48. package/dist/index.js +1 -1
  49. package/dist/{public-types-Lq3eLstW.d.ts → public-types-Bl94ECPb.d.ts} +11 -19
  50. package/dist/{public-types-CtYuIAMP.d.cts → public-types-CLIDR8aC.d.cts} +11 -19
  51. package/dist/react/index.cjs +1 -1
  52. package/dist/react/index.cjs.map +1 -1
  53. package/dist/react/index.d.cts +6 -5
  54. package/dist/react/index.d.ts +6 -5
  55. package/dist/react/index.js +1 -1
  56. package/dist/react/index.js.map +1 -1
  57. package/dist/react-native/index.cjs +1 -1
  58. package/dist/react-native/index.cjs.map +1 -1
  59. package/dist/react-native/index.d.cts +5 -4
  60. package/dist/react-native/index.d.ts +5 -4
  61. package/dist/react-native/index.js +1 -1
  62. package/dist/react-native/index.js.map +1 -1
  63. package/dist/resolvers/joi.cjs +1 -1
  64. package/dist/resolvers/joi.cjs.map +1 -1
  65. package/dist/resolvers/joi.d.cts +4 -4
  66. package/dist/resolvers/joi.d.ts +4 -4
  67. package/dist/resolvers/joi.js +1 -1
  68. package/dist/resolvers/joi.js.map +1 -1
  69. package/dist/resolvers/types.cjs +1 -0
  70. package/dist/resolvers/types.cjs.map +1 -0
  71. package/dist/resolvers/types.d.cts +16 -0
  72. package/dist/resolvers/types.d.ts +16 -0
  73. package/dist/resolvers/types.js +1 -0
  74. package/dist/resolvers/types.js.map +1 -0
  75. package/dist/resolvers/yup.cjs +1 -1
  76. package/dist/resolvers/yup.cjs.map +1 -1
  77. package/dist/resolvers/yup.d.cts +4 -4
  78. package/dist/resolvers/yup.d.ts +4 -4
  79. package/dist/resolvers/yup.js +1 -1
  80. package/dist/resolvers/yup.js.map +1 -1
  81. package/dist/resolvers/zod.cjs +1 -1
  82. package/dist/resolvers/zod.cjs.map +1 -1
  83. package/dist/resolvers/zod.d.cts +4 -4
  84. package/dist/resolvers/zod.d.ts +4 -4
  85. package/dist/resolvers/zod.js +1 -1
  86. package/dist/resolvers/zod.js.map +1 -1
  87. package/dist/{bus-B3pGaiFZ.d.cts → types-DqeN9Kq_.d.cts} +6 -16
  88. package/dist/{bus-B3pGaiFZ.d.ts → types-DqeN9Kq_.d.ts} +6 -16
  89. package/dist/{use-bit-persist-hxJaKG2S.d.ts → use-bit-persist-BgFBg8lQ.d.cts} +37 -43
  90. package/dist/{use-bit-persist-CWzGfovL.d.cts → use-bit-persist-JtinX6Vy.d.ts} +37 -43
  91. package/dist/vue/index.cjs +1 -1
  92. package/dist/vue/index.cjs.map +1 -1
  93. package/dist/vue/index.d.cts +31 -38
  94. package/dist/vue/index.d.ts +31 -38
  95. package/dist/vue/index.js +1 -1
  96. package/dist/vue/index.js.map +1 -1
  97. package/package.json +7 -1
  98. package/dist/chunk-442A4FTZ.cjs +0 -2
  99. package/dist/chunk-442A4FTZ.cjs.map +0 -1
  100. package/dist/chunk-6FJEE6O3.js +0 -133
  101. package/dist/chunk-6FJEE6O3.js.map +0 -1
  102. package/dist/chunk-FOV24ACZ.js +0 -2
  103. package/dist/chunk-FOV24ACZ.js.map +0 -1
  104. package/dist/chunk-YWXX6XRV.cjs +0 -133
  105. package/dist/chunk-YWXX6XRV.cjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7;var _=typeof globalThis<"u"?globalThis:typeof global<"u"?global:window;_.__BIT_FORM__||(_.__BIT_FORM__={stores:{},listeners:new Set,dispatch(n,e){this.listeners.forEach(t=>t(n,e))},subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}});var F=_.__BIT_FORM__;function h(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n.source,n.flags);if(Array.isArray(n))return n.map(t=>h(t));let e={};for(let t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=h(n[t]));return e}function X(n,e){if(e===void 0)return h(n);if(e===null||typeof e!="object"||e instanceof Date||e instanceof RegExp||Array.isArray(e))return h(e);let t=n&&typeof n=="object"&&!Array.isArray(n)?h(n):{};for(let s of Object.keys(e)){let r=e[s],i=t[s];if(r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp)){t[s]=X(i,r);continue}t[s]=h(r)}return t}function S(n,e){return n===e?!0:n===null||typeof n!="object"||e===null||typeof e!="object"?!1:b(n,e)}function b(n,e){if(n===e)return!0;if(n===null||typeof n!="object"||e===null||typeof e!="object")return!1;if(n instanceof Date&&e instanceof Date)return n.getTime()===e.getTime();if(n instanceof RegExp&&e instanceof RegExp)return n.toString()===e.toString();let t=Object.keys(n),s=Object.keys(e);if(t.length!==s.length)return!1;for(let r of t)if(!Object.prototype.hasOwnProperty.call(e,r)||!b(n[r],e[r]))return!1;return!0}function z(n,e,t="",s=new Set){if(S(n,e))return s;if(n===null||typeof n!="object"||e===null||typeof e!="object")return t&&s.add(t),s;if(Array.isArray(n)||Array.isArray(e))return!S(n,e)&&t&&s.add(t),s;let r=new Set([...Object.keys(n||{}),...Object.keys(e||{})]);for(let i of r){let a=t?`${t}.${i}`:i;z(_optionalChain([n, 'optionalAccess', _2 => _2[i]]),_optionalChain([e, 'optionalAccess', _3 => _3[i]]),a,s)}return s}var J=1e3,y=new Map;function c(n,e){if(!e)return n;let t=y.get(e);t||(t=e.split("."),y.size>=J&&y.delete(y.keys().next().value),y.set(e,t));let s=n;for(let r of t){if(s==null)return;s=s[r]}return s}function f(n,e,t){if(!e)return t;let s=y.get(e);s||(s=e.split("."),y.size>=J&&y.delete(y.keys().next().value),y.set(e,s));let r=Array.isArray(n)?[...n]:{...n},i=r;for(let a=0;a<s.length-1;a++){let o=s[a],l=s[a+1],d=/^\d+$/.test(l),u=i[o];u==null?i[o]=d?[]:{}:i[o]=Array.isArray(u)?[...u]:{...u},i=i[o]}return i[s[s.length-1]]=t,r}function qe(n,e){let t={},s=`${e}.`;for(let r in n)r!==e&&!r.startsWith(s)&&(t[r]=n[r]);return t}var L=(n,e,t)=>{let s={},r=`${e}.`;return Object.keys(n).forEach(i=>{if(!i.startsWith(r)){s[i]=n[i];return}let o=i.substring(r.length).split("."),l=parseInt(o[0],10),d=o.slice(1).join(".");if(l!==t)if(l>t){let u=l-1,p=d?`${r}${u}.${d}`:`${r}${u}`;s[p]=n[i]}else s[i]=n[i]}),s},Y=(n,e,t,s)=>{let r={},i=`${e}.`;return Object.keys(n).forEach(a=>{if(!a.startsWith(i)){r[a]=n[a];return}let l=a.substring(i.length).split("."),d=parseInt(l[0],10),u=l.slice(1).join(".");if(d===t){let p=u?`${i}${s}.${u}`:`${i}${s}`;r[p]=n[a]}else if(d===s){let p=u?`${i}${t}.${u}`:`${i}${t}`;r[p]=n[a]}else r[a]=n[a]}),r},W=(n,e,t,s)=>{let r={},i=`${e}.`;return Object.keys(n).forEach(a=>{if(!a.startsWith(i)){r[a]=n[a];return}let l=a.substring(i.length).split("."),d=parseInt(l[0],10),u=l.slice(1).join("."),p=d;d===t?p=s:t<s&&d>t&&d<=s?p=d-1:t>s&&d>=s&&d<t&&(p=d+1);let m=u?`${i}${p}.${u}`:`${i}${p}`;r[m]=n[a]}),r};function Ie(n){if(typeof n!="object"||n===null||Array.isArray(n))return!1;let e=_nullishCoalesce(n.errors, () => (n));return typeof e!="object"||e===null||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string"||Array.isArray(t)&&t.every(s=>typeof s=="string"))}function je(n){return Ie(n)?_nullishCoalesce(n.errors, () => (n)):{}}var Q={"#":/\d/,A:/[a-zA-Z]/,X:/[a-zA-Z0-9]/,H:/[0-9a-fA-F]/,U:/[A-Z]/,L:/[a-z]/,"*":/./},M= exports.k =(n,e)=>{if(n==null||n==="")return"";let t=String(n),s=t.startsWith("-"),r=e?e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"",i=new RegExp(`[^a-zA-Z0-9${r}]`,"g"),a=t.replace(i,"");return s&&a&&!a.startsWith("-")?`-${a}`:a},Re= exports.l =(n,e=2)=>{if(typeof n=="number")return n;if(!n)return 0;let t=String(n),s=t.includes("-"),r=t.replace(/\D/g,"");if(!r)return 0;let i=parseInt(r,10)/Math.pow(10,e);return s?-i:i},g= exports.m =(n,e)=>{let t=o=>o.split("").filter(l=>Q[l]).length,r=[...Array.isArray(n)?n:[n]].sort((o,l)=>t(o)-t(l)),i=o=>{let l=r[r.length-1];for(let d of r)if(o<=t(d)){l=d;break}return l},a=o=>{let l=M(o,_optionalChain([e, 'optionalAccess', _4 => _4.allowChars]));if(!l&&!_optionalChain([e, 'optionalAccess', _5 => _5.guide]))return"";let d=i(l.length),u=_optionalChain([e, 'optionalAccess', _6 => _6.guide])||!1,p=_optionalChain([e, 'optionalAccess', _7 => _7.placeholderChar])||"_",m="",E=0;for(let B=0;B<d.length;B++){let V=d[B],N=Q[V];if(E<l.length){let T=l[E];if(N)if(V==="U"&&(T=T.toUpperCase()),V==="L"&&(T=T.toLowerCase()),N.test(T))m+=T,E++;else if(u)m+=p;else break;else m+=V,T===V&&E++}else if(u)m+=N?p:V;else break}return m};return{format:a,parse:o=>{if(_optionalChain([e, 'optionalAccess', _8 => _8.customParse]))return e.customParse(o);let l=a(o);if(_optionalChain([e, 'optionalAccess', _9 => _9.saveRaw])){if(_optionalChain([e, 'optionalAccess', _10 => _10.guide])){let u=(e.placeholderChar||"_").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),p=new RegExp(u,"g");return l.replace(p,"")}return l}return M(l,_optionalChain([e, 'optionalAccess', _11 => _11.allowChars]))}}},v= exports.n =({prefix:n="",suffix:e="",thousand:t,decimal:s,precision:r=2,allowNegative:i=!0,saveRaw:a=!1})=>{let o=l=>{if(l==null||l==="")return"";let d="";if(typeof l=="number"?d=Math.abs(l).toFixed(r).replace(/\D/g,""):d=String(l).replace(/\D/g,""),!d&&String(l).includes("-")&&i)return"-";if(!d)return"";d=d.padStart(r+1,"0");let u=r>0?d.slice(0,-r).replace(/^0+(?=\d)/,"")||"0":d.replace(/^0+(?=\d)/,"")||"0",p=r>0?d.slice(-r):"",m=u.replace(/\B(?=(\d{3})+(?!\d))/g,t),B=(typeof l=="number"?l<0:String(l).includes("-"))&&i?"-":"";return r===0?`${B}${n}${m}${e}`:`${B}${n}${m}${s}${p}${e}`};return{format:o,parse:l=>{let d=Re(l,r),u=i?d:Math.abs(d);return a?o(u):u}}},ee= exports.o =n=>{let e=t=>/^3[47]/.test(t)?"#### ###### #####":/^3(?:0[0-5]|[68])/.test(t)?"#### ###### ####":"#### #### #### ####";return{format:t=>{let s=M(t,_optionalChain([n, 'optionalAccess', _12 => _12.allowChars])),r=e(s);return g(r,n).format(t)},parse:t=>{let s=M(t,_optionalChain([n, 'optionalAccess', _13 => _13.allowChars])),r=e(s);return g(r,n).parse(t)}}},K= exports.p =n=>{let t=(_optionalChain([n, 'optionalAccess', _14 => _14.format])||"DD/MM/YYYY")==="YYYY-MM-DD",s=g(t?"####-##-##":"##/##/####",n);return{format:r=>{let i=M(r);if(!i)return"";let a="",o="",l="";if(t?(l=i.substring(0,4),o=i.substring(4,6),a=i.substring(6,8)):(a=i.substring(0,2),o=i.substring(2,4),l=i.substring(4,8)),a.length===2){let u=parseInt(a,10);u>31&&(a="31"),u===0&&(a="01")}if(o.length===2){let u=parseInt(o,10);u>12&&(o="12"),u===0&&(o="01")}let d=t?`${l}${o}${a}`:`${a}${o}${l}`;return s.format(d)},parse:r=>s.parse(r)}};var te=v({prefix:"R$ ",thousand:".",decimal:",",precision:2}),re= exports.r =v({prefix:"$",thousand:",",decimal:".",precision:2}),se= exports.s =v({suffix:" \u20AC",thousand:".",decimal:",",precision:2}),ie= exports.t =v({prefix:"\xA3",thousand:",",decimal:".",precision:2}),ne= exports.u =v({prefix:"\xA5",thousand:",",decimal:".",precision:0}),ae= exports.v =v({suffix:"%",thousand:".",decimal:",",precision:1}),oe= exports.w =v({thousand:".",decimal:",",precision:2}),G= exports.x =v({thousand:".",decimal:",",precision:0}),le= exports.y =g("###.###.###-##"),de= exports.z =g("##.###.###/####-##"),ue= exports.A =g(["(##) ####-####","(##) #####-####"]),ce= exports.B =g("(##) ####-####"),he= exports.C =g("#####-###"),ge= exports.D =K({format:"DD/MM/YYYY",guide:!0,customParse:n=>{let e=n.replace(/_/g,""),t=e.split("/");return t.length===3&&t[2].length===4?`${t[2]}-${t[1]}-${t[0]}`:e.replace(/\D/g,"")}}),pe= exports.E =g("##:##"),fe= exports.F =g("###########"),me= exports.G =g("##.###.###-X"),ye= exports.H =g(["###.###.###-##","##.###.###/####-##"]),Se= exports.I ={format(n){let e=String(_nullishCoalesce(n, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7);if(e.length===0)return"";let t=e.slice(0,3),s=e.slice(3);return s.length===0?t:s.length>=2&&/[A-Z]/.test(s[1])?`${t}${s}`:`${t}-${s}`},parse(n){return String(_nullishCoalesce(n, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7)}},ve= exports.J =g("(###) ###-####"),be= exports.K =g("#####-####"),Te= exports.L =g("##/##/####"),Be= exports.M =g("###-##-####"),Ve= exports.N =ee(),Pe= exports.O =g("####"),Ee= exports.P =K({format:"YYYY-MM-DD",saveRaw:!0,guide:!0}),Me= exports.Q =g("HH:HH:HH:HH:HH:HH"),ke= exports.R =g("#HHHHHH"),Fe= exports.S =g("###.###.###.###"),Ce= exports.T =g("HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH"),we= exports.U =g("UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX",{allowChars:" "});var ze=(n,e)=>n==null||n===""?"":e?e.format(n):String(n),Le= exports.W =(n,e)=>e?e.parse(String(_nullishCoalesce(n, () => ("")))):n;var xe={brl:te,usd:re,eur:se,gbp:ie,jpy:ne,percent:ae,decimal:oe,int:G,integer:G,cpf:le,cnpj:de,cpfCnpj:ye,rg:me,cep:he,cnh:fe,plate:Se,phone:ue,landline:ce,date:ge,time:pe,usPhone:ve,zipCode:be,dateUS:Te,ssn:Be,cc:Ve,cvv:Pe,dateISO:Ee,ip:Fe,ipv6:Ce,mac:Me,color:ke,iban:we};function De(n={}){let e=_nullishCoalesce(n.initialValues, () => ({})),t=n.validation,s=n.history,r=n.name?`bit-form:${n.name}:draft`:"bit-form:draft",i={enabled:_nullishCoalesce(_optionalChain([n, 'access', _15 => _15.persist, 'optionalAccess', _16 => _16.enabled]), () => (!1)),key:_nullishCoalesce(_optionalChain([n, 'access', _17 => _17.persist, 'optionalAccess', _18 => _18.key]), () => (r)),storage:_optionalChain([n, 'access', _19 => _19.persist, 'optionalAccess', _20 => _20.storage]),autoSave:_nullishCoalesce(_optionalChain([n, 'access', _21 => _21.persist, 'optionalAccess', _22 => _22.autoSave]), () => (!0)),debounceMs:_nullishCoalesce(_optionalChain([n, 'access', _23 => _23.persist, 'optionalAccess', _24 => _24.debounceMs]), () => (300)),mode:_nullishCoalesce(_optionalChain([n, 'access', _25 => _25.persist, 'optionalAccess', _26 => _26.mode]), () => ("values")),serialize:_nullishCoalesce(_optionalChain([n, 'access', _27 => _27.persist, 'optionalAccess', _28 => _28.serialize]), () => (JSON.stringify)),deserialize:_nullishCoalesce(_optionalChain([n, 'access', _29 => _29.persist, 'optionalAccess', _30 => _30.deserialize]), () => ((a=>JSON.parse(a)))),onError:_optionalChain([n, 'access', _31 => _31.persist, 'optionalAccess', _32 => _32.onError])};return{name:n.name,initialValues:h(e),resolver:_optionalChain([t, 'optionalAccess', _33 => _33.resolver]),validationDelay:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _34 => _34.delay]), () => (300)),enableHistory:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _35 => _35.enabled]), () => (!1)),historyLimit:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _36 => _36.limit]), () => (15)),masks:{...xe},fields:n.fields,devTools:n.devTools,persist:i,plugins:_nullishCoalesce(n.plugins, () => ([]))}}var C= (_class =class{constructor() { _class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this); }__init() {this.fieldConfigs=new Map}__init2() {this.dependencies=new Map}__init3() {this.hiddenFields=new Set}register(e,t,s){this.fieldConfigs.set(e,t);let r=_optionalChain([t, 'access', _37 => _37.conditional, 'optionalAccess', _38 => _38.dependsOn]);r&&r.forEach(i=>{this.dependencies.has(i)||this.dependencies.set(i,new Set),this.dependencies.get(i).add(e)}),this.evaluateFieldCondition(e,s)}isHidden(e){return this.hiddenFields.has(e)}isRequired(e,t){let s=this.fieldConfigs.get(e);return!s||this.isHidden(e)?!1:!!_optionalChain([s, 'access', _39 => _39.conditional, 'optionalAccess', _40 => _40.requiredIf, 'optionalCall', _41 => _41(t)])}getRequiredErrors(e){let t={};return this.fieldConfigs.forEach((s,r)=>{if(this.isRequired(r,e)){let i=c(e,r);this.isEmpty(i)&&(t[r]=_nullishCoalesce(_optionalChain([s, 'access', _42 => _42.conditional, 'optionalAccess', _43 => _43.requiredMessage]), () => ("required field")))}}),t}evaluateAll(e){this.fieldConfigs.forEach((t,s)=>{this.evaluateFieldCondition(s,e)})}updateDependencies(e,t){let s=[],r=[e],i=new Set;for(;r.length>0;){let a=r.shift();if(i.has(a))continue;i.add(a);let o=this.dependencies.get(a);o&&o.forEach(l=>{let d=this.isHidden(l);this.evaluateFieldCondition(l,t);let u=this.isHidden(l);d!==u&&s.push(l),r.push(l)})}return s}unregister(e){this.fieldConfigs.delete(e),this.hiddenFields.delete(e),this.dependencies.delete(e),this.dependencies.forEach(t=>{t.delete(e)})}unregisterPrefix(e){let t=[];this.fieldConfigs.forEach((s,r)=>{r.startsWith(e)&&t.push(r)}),t.forEach(s=>this.unregister(s))}evaluateFieldCondition(e,t){let r=_optionalChain([this, 'access', _44 => _44.fieldConfigs, 'access', _45 => _45.get, 'call', _46 => _46(e), 'optionalAccess', _47 => _47.conditional, 'optionalAccess', _48 => _48.showIf]);r&&(r(t)?this.hiddenFields.delete(e):this.hiddenFields.add(e))}isEmpty(e){return e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0}}, _class);var w= (_class2 =class{constructor(e,t=15){;_class2.prototype.__init4.call(this);_class2.prototype.__init5.call(this);this.enableHistory=e;this.maxHistory=t}__init4() {this.history=[]}__init5() {this.historyIndex=-1}saveSnapshot(e){if(!this.enableHistory)return;let t=this.history[this.historyIndex];t&&b(t,e)||(this.historyIndex<this.history.length-1&&(this.history=this.history.slice(0,this.historyIndex+1)),this.history.push(h(e)),this.history.length>this.maxHistory?this.history.shift():this.historyIndex++)}get canUndo(){return this.enableHistory?this.historyIndex>0:!1}get canRedo(){return this.enableHistory?this.historyIndex<this.history.length-1:!1}undo(){return this.canUndo?(this.historyIndex--,h(this.history[this.historyIndex])):null}redo(){return this.canRedo?(this.historyIndex++,h(this.history[this.historyIndex])):null}reset(e){this.history=[],this.historyIndex=-1,this.saveSnapshot(e)}getMetadata(){return{enabled:this.enableHistory,canUndo:this.canUndo,canRedo:this.canRedo,historyIndex:this.historyIndex,historySize:this.history.length}}}, _class2);var x=class{constructor(e){this.store=e}pushItem(e,t){let s=c(this.store.getState().values,e)||[];this.store.setFieldWithMeta(e,[...s,t],{origin:"array",operation:"push"}),this.store.internalSaveSnapshot()}prependItem(e,t){let s=c(this.store.getState().values,e)||[];this.store.setFieldWithMeta(e,[t,...s],{origin:"array",operation:"prepend"}),this.store.internalSaveSnapshot()}insertItem(e,t,s){let r=[...c(this.store.getState().values,e)||[]];r.splice(t,0,s),this.store.setFieldWithMeta(e,r,{origin:"array",operation:"insert",index:t}),this.store.internalSaveSnapshot()}removeItem(e,t){let s=this.store.getState(),r=c(s.values,e);if(!Array.isArray(r))return;let i=[...r];this.store.unregisterPrefix&&this.store.unregisterPrefix(`${e}.${t}.`);let a=r.filter((d,u)=>u!==t),o=f(s.values,e,a),l=this.store.updateDirtyForPath(e,o,this.store.getConfig().initialValues);this.store.internalUpdateState({values:o,errors:L(s.errors,e,t),touched:L(s.touched,e,t),isDirty:l}),this.store.emitFieldChange({path:e,previousValue:i,nextValue:a,values:this.store.getState().values,state:this.store.getState(),meta:{origin:"array",operation:"remove",index:t}}),this.store.internalSaveSnapshot(),this.revalidate(e)}swapItems(e,t,s){let r=this.store.getState(),i=[...c(r.values,e)||[]],a=[...i];[i[t],i[s]]=[i[s],i[t]];let o=f(r.values,e,i),l=this.store.updateDirtyForPath(e,o,this.store.getConfig().initialValues);this.store.internalUpdateState({values:o,errors:Y(r.errors,e,t,s),touched:Y(r.touched,e,t,s),isDirty:l}),this.store.emitFieldChange({path:e,previousValue:a,nextValue:i,values:this.store.getState().values,state:this.store.getState(),meta:{origin:"array",operation:"swap",from:t,to:s}}),this.store.internalSaveSnapshot(),this.revalidate(e)}moveItem(e,t,s){let r=this.store.getState(),i=[...c(r.values,e)||[]],a=[...i],[o]=i.splice(t,1);i.splice(s,0,o);let l=f(r.values,e,i),d=this.store.updateDirtyForPath(e,l,this.store.getConfig().initialValues);this.store.internalUpdateState({values:l,errors:W(r.errors,e,t,s),touched:W(r.touched,e,t,s),isDirty:d}),this.store.emitFieldChange({path:e,previousValue:a,nextValue:i,values:this.store.getState().values,state:this.store.getState(),meta:{origin:"array",operation:"move",from:t,to:s}}),this.store.internalSaveSnapshot(),this.revalidate(e)}revalidate(e){this.store.triggerValidation([e])}};var D= (_class3 =class n{constructor(e){this.getComputedEntries=e}static __initStatic() {this.MIN_PASSES=4}apply(e){let t=this.getComputedEntries();if(t.length===0)return e;let s=e,r=Math.max(n.MIN_PASSES,t.length*2);for(let i=0;i<r;i++){let a=!1;for(let[o,l]of t){let d=l(s),u=c(s,o);b(u,d)||(s=f(s,o,d),a=!0)}if(!a)break;if(i===r-1)throw new Error("BitStore: computed fields did not stabilize. Check for cyclic computed definitions.")}return s}}, _class3.__initStatic(), _class3);var P=class{constructor(e){this.steps=e}async run(e){for(let t of this.steps){if(e.halted)break;await t.run(e)}}},A=class{constructor(e){this.steps=e}run(e){for(let t of this.steps){if(e.halted)break;t.run(e)}}};var I= (_class4 =class{constructor(e){;_class4.prototype.__init6.call(this);_class4.prototype.__init7.call(this);_class4.prototype.__init8.call(this);_class4.prototype.__init9.call(this);this.store=e}__init6() {this.currentValidationId=0}__init7() {this.asyncTimers={}}__init8() {this.asyncRequests={}}__init9() {this.asyncErrors={}}updateFieldValidating(e,t){this.store.internalUpdateState({isValidating:{...this.store.getState().isValidating,[e]:t}})}cancelFieldAsync(e){this.asyncTimers[e]&&(clearTimeout(this.asyncTimers[e]),delete this.asyncTimers[e]),this.asyncRequests[e]=(this.asyncRequests[e]||0)+1}beginExternalValidation(e){this.cancelFieldAsync(e),this.updateFieldValidating(e,!0)}endExternalValidation(e){this.updateFieldValidating(e,!1)}async setExternalError(e,t){if(t){this.asyncErrors[e]=t,this.store.setError(e,t);return}if(delete this.asyncErrors[e],this.store.validate){await this.store.validate({scopeFields:[e]});return}let s={...this.store.getState().errors};delete s[e],this.store.internalUpdateState({errors:s,isValid:Object.keys(s).length===0})}handleAsync(e,t){let s=this.store.getFieldConfig(e),r=_optionalChain([s, 'optionalAccess', _49 => _49.validation, 'optionalAccess', _50 => _50.asyncValidate]);if(!r){this.updateFieldValidating(e,!1);return}this.asyncTimers[e]&&clearTimeout(this.asyncTimers[e]);let i=_nullishCoalesce(_optionalChain([s, 'access', _51 => _51.validation, 'optionalAccess', _52 => _52.asyncValidateDelay]), () => (500));this.updateFieldValidating(e,!0),this.asyncTimers[e]=setTimeout(async()=>{delete this.asyncTimers[e];let a=(this.asyncRequests[e]||0)+1;this.asyncRequests[e]=a;try{let o=await r(t,this.store.getState().values);if(this.asyncRequests[e]!==a)return;if(o)this.asyncErrors[e]=o,this.store.setError(e,o);else if(delete this.asyncErrors[e],this.store.validate)await this.store.validate({scopeFields:[e]});else{let l={...this.store.getState().errors};delete l[e],this.store.internalUpdateState({errors:l,isValid:Object.keys(l).length===0})}}finally{this.asyncRequests[e]===a&&this.updateFieldValidating(e,!1)}},i)}hasValidationsInProgress(e){let t=this.store.getState();return e&&e.length>0?e.some(s=>!!t.isValidating[s]):Object.values(t.isValidating).some(Boolean)}trigger(e){this.validationTimeout&&clearTimeout(this.validationTimeout);let t=_nullishCoalesce(this.store.config.validationDelay, () => (300));t>0?this.validationTimeout=setTimeout(()=>{this.validate({scopeFields:e})},t):this.validate({scopeFields:e})}async validate(e){let t={options:e,validationId:++this.currentValidationId,currentState:this.store.getState(),targetFields:_optionalChain([e, 'optionalAccess', _53 => _53.scopeFields]),allErrors:{},isValid:!0,result:!0,aborted:!1};return await new P([{name:"validate:resolve-target-fields",run:r=>{if(_optionalChain([r, 'access', _54 => _54.options, 'optionalAccess', _55 => _55.scope])){let i=this.store.getScopeFields(r.options.scope);i.length>0&&(r.targetFields=i)}}},{name:"validate:before-hooks",run:async r=>{await this.store.emitBeforeValidate({values:r.currentState.values,state:r.currentState,scope:_optionalChain([r, 'access', _56 => _56.options, 'optionalAccess', _57 => _57.scope]),scopeFields:r.targetFields})}},{name:"validate:resolver",run:async r=>{r.allErrors=this.store.config.resolver?await this.store.config.resolver(r.currentState.values,{scopeFields:r.targetFields}):{}}},{name:"validate:required-and-hidden",run:r=>{let i=this.store.getRequiredErrors(r.currentState.values);r.allErrors={...r.allErrors,...i},this.store.getHiddenFields().forEach(a=>{delete r.allErrors[a],delete this.asyncErrors[a]})}},{name:"validate:abort-check",run:async r=>{r.validationId!==this.currentValidationId&&(r.aborted=!0,r.result=r.currentState.isValid,await this.store.emitAfterValidate({values:this.store.getState().values,state:this.store.getState(),scope:_optionalChain([r, 'access', _58 => _58.options, 'optionalAccess', _59 => _59.scope]),scopeFields:r.targetFields,errors:this.store.getState().errors,result:r.currentState.isValid,aborted:!0}),r.halted=!0)}},{name:"validate:commit-scoped",run:async r=>{if(!r.targetFields)return;let i={...r.currentState.errors};r.targetFields.forEach(a=>{r.allErrors[a]?i[a]=r.allErrors[a]:this.asyncErrors[a]?i[a]=this.asyncErrors[a]:delete i[a]}),r.isValid=Object.keys(i).length===0,r.result=r.targetFields.every(a=>!r.allErrors[a]&&!this.asyncErrors[a]),this.store.internalUpdateState({errors:i,isValid:r.isValid}),await this.store.emitAfterValidate({values:this.store.getState().values,state:this.store.getState(),scope:_optionalChain([r, 'access', _60 => _60.options, 'optionalAccess', _61 => _61.scope]),scopeFields:r.targetFields,errors:i,result:r.result}),r.halted=!0}},{name:"validate:commit-global",run:async r=>{r.allErrors={...this.asyncErrors,...r.allErrors},r.isValid=Object.keys(r.allErrors).length===0,r.result=r.isValid,this.store.internalUpdateState({errors:r.allErrors,isValid:r.isValid}),await this.store.emitAfterValidate({values:this.store.getState().values,state:this.store.getState(),scope:_optionalChain([r, 'access', _62 => _62.options, 'optionalAccess', _63 => _63.scope]),scopeFields:r.targetFields,errors:r.allErrors,result:r.isValid})}}]).run(t),t.result}clear(e){this.asyncTimers[e]&&clearTimeout(this.asyncTimers[e]),delete this.asyncTimers[e],this.updateFieldValidating(e,!1),delete this.asyncErrors[e]}cancelAll(){this.validationTimeout&&clearTimeout(this.validationTimeout),Object.values(this.asyncTimers).forEach(e=>clearTimeout(e)),this.asyncTimers={},this.store.internalUpdateState({isValidating:{}})}}, _class4);var R=class{constructor(e){this.store=e}updateField(e,t,s={origin:"setField"}){let r=this.store.getState(),i={path:e,value:t,meta:s,previousValue:c(r.values,e),nextValues:f(r.values,e,t),nextErrors:{...r.errors},toggledFields:[],isDirty:!1};new A([{name:"field:clear-current-error",run:o=>{delete o.nextErrors[o.path],this.store.clearFieldValidation(o.path)}},{name:"field:update-dependencies",run:o=>{o.toggledFields=this.store.updateDependencies(o.path,o.nextValues),o.toggledFields.forEach(l=>{this.store.isFieldHidden(l)&&(delete o.nextErrors[l],this.store.clearFieldValidation(l))})}},{name:"field:update-dirty",run:o=>{o.isDirty=this.store.updateDirtyForPath(o.path,o.nextValues,this.store.config.initialValues)}},{name:"field:commit-state",run:o=>{this.store.internalUpdateState({values:o.nextValues,errors:o.nextErrors,isValid:Object.keys(o.nextErrors).length===0,isDirty:o.isDirty},[o.path,...o.toggledFields])}},{name:"field:emit-change",run:o=>{this.store.emitFieldChange({path:o.path,previousValue:o.previousValue,nextValue:o.value,values:this.store.getState().values,state:this.store.getState(),meta:o.meta})}},{name:"field:trigger-validate",run:o=>{this.store.config.resolver&&this.store.triggerValidation([o.path])}},{name:"field:trigger-async-validate",run:o=>{this.store.handleFieldAsyncValidation(o.path,o.value)}}]).run(i)}replaceValues(e,t="replaceValues"){let s=this.store.getState().values,r=h(e);this.store.cancelAllValidations(),this.store.evaluateAllDependencies(r);let i=this.store.rebuildDirtyState(r,this.store.config.initialValues);this.store.internalUpdateState({values:r,errors:{},isValidating:{},isValid:!0,isDirty:i,isSubmitting:!1},["*"]),this.store.internalSaveSnapshot(),this.store.validateNow(),this.store.emitFieldChange({path:"*",previousValue:s,nextValue:r,values:this.store.getState().values,state:this.store.getState(),meta:{origin:t}})}hydrateValues(e){let t=X(this.store.getState().values,e);this.replaceValues(t,"hydrate")}rebaseValues(e){let t=this.store.getState().values,s=h(e);this.store.config.initialValues=h(s),this.store.cancelAllValidations(),this.store.evaluateAllDependencies(s),this.store.clearDirtyState(),this.store.internalUpdateState({values:s,errors:{},touched:{},isValidating:{},isValid:!0,isDirty:!1,isSubmitting:!1},["*"]),this.store.internalSaveSnapshot(),this.store.validateNow(),this.store.emitFieldChange({path:"*",previousValue:t,nextValue:s,values:this.store.getState().values,state:this.store.getState(),meta:{origin:"rebase"}})}async submit(e){if(this.store.getState().isSubmitting||this.store.hasValidationsInProgress())return;this.store.cancelAllValidations();let s={onSuccess:e,isValid:!1,valuesToSubmit:h(this.store.getState().values),dirtyValues:{}},r=new P([{name:"submit:start",run:async i=>{this.store.internalUpdateState({isSubmitting:!0}),i.isValid=await this.store.validateNow()}},{name:"submit:invalid",run:async i=>{if(i.isValid)return;let a=this.store.getState().errors,o={...this.store.getState().touched};Object.keys(a).forEach(l=>{o[l]=!0}),this.store.internalUpdateState({touched:o}),i.dirtyValues=this.store.buildDirtyValues(this.store.getState().values),i.invalid=!0,await this.store.emitAfterSubmit({values:this.store.getState().values,dirtyValues:i.dirtyValues,state:this.store.getState(),success:!1,invalid:!0}),i.halted=!0}},{name:"submit:prepare",run:i=>{this.store.getHiddenFields().forEach(a=>{i.valuesToSubmit=f(i.valuesToSubmit,a,void 0)});for(let[a,o]of this.store.getTransformEntries()){let l=c(i.valuesToSubmit,a);i.valuesToSubmit=f(i.valuesToSubmit,a,o(l,this.store.getState().values))}i.dirtyValues=this.store.buildDirtyValues(i.valuesToSubmit)}},{name:"submit:before-hooks",run:async i=>{await this.store.emitBeforeSubmit({values:i.valuesToSubmit,dirtyValues:i.dirtyValues,state:this.store.getState()})}},{name:"submit:user-handler",run:async i=>{await i.onSuccess(i.valuesToSubmit,i.dirtyValues)}},{name:"submit:after-hooks",run:async i=>{await this.store.emitAfterSubmit({values:i.valuesToSubmit,dirtyValues:i.dirtyValues,state:this.store.getState(),success:!0})}}]);try{await r.run(s)}catch(i){s.error=i,await this.store.emitOperationalError({source:"submit",error:i}),await this.store.emitAfterSubmit({values:this.store.getState().values,dirtyValues:this.store.buildDirtyValues(this.store.getState().values),state:this.store.getState(),success:!1,error:i}),console.error(i)}finally{this.store.internalUpdateState({isSubmitting:!1})}}reset(){this.store.cancelAllValidations();let e=h(this.store.config.initialValues);this.store.evaluateAllDependencies(e),this.store.clearDirtyState(),this.store.internalUpdateState({values:e,errors:{},touched:{},isValidating:{},isValid:!0,isDirty:!1,isSubmitting:!1},["*"]),this.store.resetHistory(e)}};var H= (_class5 =class{constructor() { _class5.prototype.__init10.call(this); }__init10() {this.dirtyPaths=new Set}updateForPath(e,t,s){for(let a of this.dirtyPaths)a.startsWith(e+".")&&this.dirtyPaths.delete(a);let r=c(t,e),i=c(s,e);return S(r,i)?this.dirtyPaths.delete(e):this.dirtyPaths.add(e),this.dirtyPaths.size>0}rebuild(e,t){return this.dirtyPaths=z(e,t),this.dirtyPaths.size>0}clear(){this.dirtyPaths.clear()}get isDirty(){return this.dirtyPaths.size>0}getDirtyPaths(){return this.dirtyPaths}buildDirtyValues(e){if(this.dirtyPaths.size===0)return{};let t={},s=new Set;for(let r of this.dirtyPaths){let i=r.match(/^(.+)\.\d+/);if(i){let a=i[1];if(s.has(a))continue;s.add(a);let o=c(e,a);t=f(t,a,o)}else{let a=c(e,r);t=f(t,r,a)}}return t}}, _class5);var $=class{constructor(e,t,s){this.getState=e;this.getInitialValues=t;this.getScopeFields=s}getStepStatus(e){let t=this.getScopeFields(e),s=this.getState(),r=t.some(o=>!!s.errors[o]),i=t.some(o=>{let l=c(s.values,o),d=c(this.getInitialValues(),o);return!S(l,d)}),a=this.getStepErrors(e);return{hasErrors:r,isDirty:i,errors:a}}getStepErrors(e){let t=this.getScopeFields(e),s=this.getState(),r={};for(let i of t){let a=s.errors[i];a&&(r[i]=a)}return r}};var O=class{constructor(e,t,s){this.depsMg=e;this.getState=t;this.getConfig=s}isHidden(e){return this.depsMg.isHidden(e)}isRequired(e){return this.depsMg.isRequired(e,this.getState().values)}isFieldDirty(e){let t=c(this.getState().values,e),s=c(this.getConfig().initialValues,e);return!S(t,s)}isFieldValidating(e){return!!this.getState().isValidating[e]}};var U=class{constructor(e,t){this.getState=e;this.internalUpdateState=t}setError(e,t){let s={...this.getState().errors,[e]:t};t||delete s[e],this.internalUpdateState({errors:s})}setErrors(e){this.internalUpdateState({errors:{...this.getState().errors,...e}})}setServerErrors(e){let t={};for(let[s,r]of Object.entries(e))t[s]=Array.isArray(r)?r[0]:r;this.setErrors(t)}};function $e(){if(typeof globalThis>"u")return;let n=globalThis.localStorage;if(n)return{getItem:e=>n.getItem(e),setItem:(e,t)=>n.setItem(e,t),removeItem:e=>n.removeItem(e)}}var q=class{constructor(e,t,s,r){this.config=e;this.getValues=t;this.getDirtyValues=s;this.applyRestoredValues=r}getStorage(){return this.config.storage||$e()}canPersist(){return!!(this.config.enabled&&this.config.key&&this.getStorage())}handleError(e){_optionalChain([this, 'access', _64 => _64.config, 'access', _65 => _65.onError, 'optionalCall', _66 => _66(e)])}async saveNow(){if(!this.canPersist())return;let e=this.getStorage();if(e)try{let t=this.config.mode==="dirtyValues"?this.getDirtyValues():this.getValues(),s=this.config.serialize(h(t));await e.setItem(this.config.key,s)}catch(t){this.handleError(t)}}queueSave(){!this.canPersist()||!this.config.autoSave||(this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>{this.saveNow()},this.config.debounceMs))}async restore(){if(!this.canPersist())return!1;let e=this.getStorage();if(!e)return!1;try{let t=await e.getItem(this.config.key);if(!t)return!1;let s=this.config.deserialize(t);return!s||typeof s!="object"?!1:(this.applyRestoredValues(s),!0)}catch(t){return this.handleError(t),!1}}async clear(){if(!this.canPersist())return;let e=this.getStorage();if(e)try{await e.removeItem(this.config.key)}catch(t){this.handleError(t)}}destroy(){this.timer&&(clearTimeout(this.timer),this.timer=void 0)}};var j= (_class6 =class{constructor(e,t){;_class6.prototype.__init11.call(this);_class6.prototype.__init12.call(this);this.plugins=e;this.contextFactory=t}__init11() {this.teardownFns=[]}__init12() {this.notifyingError=!1}setupAll(){this.plugins.forEach(e=>{if(e.setup)try{let t=e.setup(this.contextFactory());typeof t=="function"&&this.teardownFns.push(t)}catch(t){this.reportError("setup",t,void 0,e.name)}})}async beforeValidate(e){await this.emitHook("beforeValidate",e)}async afterValidate(e){await this.emitHook("afterValidate",e)}async beforeSubmit(e){await this.emitHook("beforeSubmit",e)}async afterSubmit(e){await this.emitHook("afterSubmit",e)}onFieldChange(e){this.plugins.forEach(t=>{let s=_optionalChain([t, 'access', _67 => _67.hooks, 'optionalAccess', _68 => _68.onFieldChange]);if(s)try{let r=s(e,this.contextFactory());Promise.resolve(r).catch(i=>{this.reportError("onFieldChange",i,e,t.name)})}catch(r){this.reportError("onFieldChange",r,e,t.name)}})}async reportError(e,t,s,r){if(this.notifyingError)return;this.notifyingError=!0;let i=this.contextFactory(),a={source:e,pluginName:r,error:t,event:s,values:i.getState().values,state:i.getState()};for(let o of this.plugins){let l=_optionalChain([o, 'access', _69 => _69.hooks, 'optionalAccess', _70 => _70.onError]);if(l)try{await l(a,i)}catch (e2){}}this.notifyingError=!1}destroy(){for(let e=this.teardownFns.length-1;e>=0;e-=1){let t=this.teardownFns[e];try{t()}catch(s){this.reportError("teardown",s)}}this.teardownFns=[]}async emitHook(e,t){let s=this.contextFactory();for(let r of this.plugins){let i=_optionalChain([r, 'access', _71 => _71.hooks, 'optionalAccess', _72 => _72[e]]);if(i)try{await i(t,s)}catch(a){await this.reportError(e,a,t,r.name)}}}}, _class6);function Oe(n){return typeof n=="boolean"?{enabled:n,mode:"local"}:{enabled:!!n,mode:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _73 => _73.mode]), () => ("local")),url:_optionalChain([n, 'optionalAccess', _74 => _74.url])}}function Ae(n){let e=Oe(n);return e.enabled?{name:"bit-devtools",setup:()=>{let t=null,s=!1;return(async()=>{try{if(e.mode==="remote"){let{setupRemoteBridge:r}=await Promise.resolve().then(() => _interopRequireWildcard(require("./devtools/bridge.cjs")));t=r(e.url||"ws://localhost:3000")}else{let{initDevTools:r}=await Promise.resolve().then(() => _interopRequireWildcard(require("./devtools/index.cjs"))),i=r();t=i&&typeof i.destroy=="function"?i.destroy:null}s&&t&&(t(),t=null)}catch (e3){}})(),()=>{s=!0,t&&(t(),t=null)}}}:null}var k= (_class7 =class{__init13() {this.listeners=new Set}__init14() {this.selectorListeners=new Set}__init15() {this.pathScopedSubscriptions=new Map}__init16() {this.pathSelectorIndex=new Map}constructor(e={}){;_class7.prototype.__init13.call(this);_class7.prototype.__init14.call(this);_class7.prototype.__init15.call(this);_class7.prototype.__init16.call(this);this.config=De(e),this.depsMg=new C,this.computedMg=new D(()=>this.getComputedEntries()),this.validatorMg=new I(this),this.dirtyMg=new H,this.lifecycleMg=new R(this),this.historyMg=new w(!!this.config.enableHistory,_nullishCoalesce(this.config.historyLimit, () => (15))),this.arraysMg=new x(this),this.scopeMg=new $(()=>this.state,()=>this.config.initialValues,a=>this.getScopeFields(a)),this.queryMg=new O(this.depsMg,()=>this.state,()=>this.config),this.errorMg=new U(()=>this.state,a=>this.internalUpdateState(a)),this.persistMg=new q(this.config.persist,()=>this.state.values,()=>this.getDirtyValues(),a=>this.applyPersistedValues(a));let t=h(this.config.initialValues);this.config.fields&&Object.entries(this.config.fields).forEach(([a,o])=>{this.depsMg.register(a,o,t)});let s=this.computedMg.apply(t);this.state={values:s,errors:{},touched:{},isValidating:{},isValid:!0,isSubmitting:!1,isDirty:!1},this.internalSaveSnapshot(),this.storeId=e.storeId||this.config.name||`bit-form-${Math.random().toString(36).substring(2,9)}`;let r=[...this.config.plugins],i=Ae(this.config.devTools);i&&r.push(i),this.pluginMg=new j(r,()=>({storeId:this.storeId,getState:()=>this.getState(),getConfig:()=>this.getConfig()})),this.pluginMg.setupAll(),F.stores[this.storeId]=this}getConfig(){return this.config}getFieldConfig(e){return this.depsMg.fieldConfigs.get(e)||_optionalChain([this, 'access', _75 => _75.config, 'access', _76 => _76.fields, 'optionalAccess', _77 => _77[e]])}getScopeFields(e){let t=[];return this.depsMg.fieldConfigs.forEach((s,r)=>{s.scope===e&&t.push(r)}),t}getComputedEntries(){let e=[];return this.depsMg.fieldConfigs.forEach((t,s)=>{t.computed&&e.push([s,t.computed])}),e}getTransformEntries(){let e=[];return this.depsMg.fieldConfigs.forEach((t,s)=>{t.transform&&e.push([s,t.transform])}),e}resolveMask(e){let t=_optionalChain([this, 'access', _78 => _78.getFieldConfig, 'call', _79 => _79(e), 'optionalAccess', _80 => _80.mask]);if(t)return typeof t=="string"?_optionalChain([this, 'access', _81 => _81.config, 'access', _82 => _82.masks, 'optionalAccess', _83 => _83[t]]):t}getState(){return this.state}getFieldState(e){return{value:c(this.state.values,e),error:this.state.errors[e],touched:!!this.state.touched[e],isHidden:this.isHidden(e),isRequired:this.isRequired(e),isDirty:this.isFieldDirty(e),isValidating:this.isFieldValidating(e)}}get isValid(){return this.state.isValid}get isSubmitting(){return this.state.isSubmitting}get isDirty(){return this.state.isDirty}registerField(e,t){this.depsMg.register(e,t,this.state.values),this.depsMg.isHidden(e)&&this.notify()}unregisterField(e){if(_optionalChain([this, 'access', _84 => _84.config, 'access', _85 => _85.fields, 'optionalAccess', _86 => _86[e]]))return;this.depsMg.unregister(e);let t={...this.state.errors},s={...this.state.touched},r=!1;t[e]&&(delete t[e],r=!0),s[e]&&(delete s[e],r=!0),r&&this.internalUpdateState({errors:t,touched:s})}unregisterPrefix(e){this.depsMg.unregisterPrefix(e)}isHidden(e){return this.queryMg.isHidden(e)}isRequired(e){return this.queryMg.isRequired(e)}isFieldDirty(e){return this.queryMg.isFieldDirty(e)}isFieldValidating(e){return this.queryMg.isFieldValidating(e)}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}subscribeSelector(e,t,s){let r=_nullishCoalesce(_optionalChain([s, 'optionalAccess', _87 => _87.equalityFn]), () => (S)),i=e(this.state),a={notify:d=>{let u=e(d);r(i,u)||(i=u,t(u))}},o=_optionalChain([s, 'optionalAccess', _88 => _88.autoTrackPaths])===!1?[]:this.collectTrackedSelectorPaths(e),l=this.normalizeSubscriptionPaths([..._nullishCoalesce(_optionalChain([s, 'optionalAccess', _89 => _89.paths]), () => ([])),...o]);return l.length>0?(this.pathScopedSubscriptions.set(a,l),l.forEach(d=>{let u=_nullishCoalesce(this.pathSelectorIndex.get(d), () => (new Set));u.add(a),this.pathSelectorIndex.set(d,u)})):this.selectorListeners.add(a),_optionalChain([s, 'optionalAccess', _90 => _90.emitImmediately])&&t(i),()=>{this.selectorListeners.delete(a);let d=this.pathScopedSubscriptions.get(a);d&&(d.forEach(u=>{let p=this.pathSelectorIndex.get(u);p&&(p.delete(a),p.size===0&&this.pathSelectorIndex.delete(u))}),this.pathScopedSubscriptions.delete(a))}}subscribePath(e,t,s){let r=[..._nullishCoalesce(_optionalChain([s, 'optionalAccess', _91 => _91.paths]), () => ([])),e];return this.subscribeSelector(i=>c(i.values,e),t,{...s,paths:r})}watch(e,t){return this.subscribePath(e,t,{equalityFn:b})}setField(e,t){this.setFieldWithMeta(e,t,{origin:"setField"})}setFieldWithMeta(e,t,s={origin:"setField"}){this.lifecycleMg.updateField(e,t,s)}blurField(e){this.internalSaveSnapshot(),this.state.touched[e]||this.internalUpdateState({touched:{...this.state.touched,[e]:!0}}),this.validatorMg.trigger([e])}markFieldsTouched(e){if(e.length===0)return;let t={...this.state.touched};e.forEach(s=>t[s]=!0),this.internalUpdateState({touched:t})}replaceValues(e){this.lifecycleMg.replaceValues(e)}hydrate(e){this.lifecycleMg.hydrateValues(e)}rebase(e){this.lifecycleMg.rebaseValues(e)}setError(e,t){this.errorMg.setError(e,t)}setErrors(e){this.errorMg.setErrors(e)}setServerErrors(e){this.errorMg.setServerErrors(e)}reset(){this.lifecycleMg.reset()}async submit(e){return this.lifecycleMg.submit(e)}registerMask(e,t){this.config.masks={...this.config.masks||{},[e]:t}}getDirtyValues(){return this.dirtyMg.buildDirtyValues(this.state.values)}async restorePersisted(){return this.persistMg.restore()}async forceSave(){await this.persistMg.saveNow()}async clearPersisted(){await this.persistMg.clear()}pushItem(e,t){this.arraysMg.pushItem(e,t)}prependItem(e,t){this.arraysMg.prependItem(e,t)}insertItem(e,t,s){this.arraysMg.insertItem(e,t,s)}removeItem(e,t){this.arraysMg.removeItem(e,t)}swapItems(e,t,s){this.arraysMg.swapItems(e,t,s)}moveItem(e,t,s){this.arraysMg.moveItem(e,t,s)}get canUndo(){return this.historyMg.canUndo}get canRedo(){return this.historyMg.canRedo}undo(){let e=this.historyMg.undo();if(e){let t=this.dirtyMg.rebuild(e,this.config.initialValues);this.internalUpdateState({values:e,isDirty:t}),this.validatorMg.validate()}}redo(){let e=this.historyMg.redo();if(e){let t=this.dirtyMg.rebuild(e,this.config.initialValues);this.internalUpdateState({values:e,isDirty:t}),this.validatorMg.validate()}}getHistoryMetadata(){return this.historyMg.getMetadata()}validate(e){return this.validatorMg.validate(e)}emitBeforeValidate(e){return this.pluginMg.beforeValidate(e)}emitAfterValidate(e){return this.pluginMg.afterValidate(e)}emitBeforeSubmit(e){return this.pluginMg.beforeSubmit(e)}emitAfterSubmit(e){return this.pluginMg.afterSubmit(e)}emitFieldChange(e){this.pluginMg.onFieldChange(e)}emitOperationalError(e){return this.pluginMg.reportError(e.source,e.error,e.payload)}hasValidationsInProgress(e){return this.validatorMg.hasValidationsInProgress(e)}triggerValidation(e){this.validatorMg.trigger(e)}getStepStatus(e){return this.scopeMg.getStepStatus(e)}getStepErrors(e){return this.scopeMg.getStepErrors(e)}updateDependencies(e,t){return this.depsMg.updateDependencies(e,t)}isFieldHidden(e){return this.depsMg.isHidden(e)}evaluateAllDependencies(e){this.depsMg.evaluateAll(e)}getHiddenFields(){return Array.from(this.depsMg.hiddenFields)}getRequiredErrors(e){return this.depsMg.getRequiredErrors(e)}clearFieldValidation(e){this.validatorMg.clear(e)}handleFieldAsyncValidation(e,t){this.validatorMg.handleAsync(e,t)}cancelAllValidations(){this.validatorMg.cancelAll()}validateNow(e){return this.validatorMg.validate(e)}updateDirtyForPath(e,t,s){return this.dirtyMg.updateForPath(e,t,s)}rebuildDirtyState(e,t){return this.dirtyMg.rebuild(e,t)}clearDirtyState(){this.dirtyMg.clear()}buildDirtyValues(e){return this.dirtyMg.buildDirtyValues(e)}resetHistory(e){this.historyMg.reset(e)}internalUpdateState(e,t){let s=this.state,r={...this.state,...e};e.values&&(r.values=this.computedMg.apply(e.values)),e.errors&&(r.isValid=Object.keys(r.errors).length===0),this.state=r,e.values&&this.persistMg.queueSave();let i=t&&t.length>0?t:e.values?["*"]:void 0;this.notify(s,r,i),F.dispatch(this.storeId,this.state)}internalSaveSnapshot(){this.historyMg.saveSnapshot(this.state.values)}applyPersistedValues(e){let t=h({...this.config.initialValues,...e});this.validatorMg.cancelAll(),this.depsMg.evaluateAll(t);let s=this.dirtyMg.rebuild(t,this.config.initialValues);this.internalUpdateState({values:t,errors:{},touched:{},isValidating:{},isValid:!0,isDirty:s,isSubmitting:!1}),this.internalSaveSnapshot(),this.validatorMg.validate()}cleanup(){this.listeners.clear(),this.selectorListeners.clear(),this.pathScopedSubscriptions.clear(),this.pathSelectorIndex.clear(),this.validatorMg.cancelAll(),this.persistMg.destroy(),this.pluginMg.destroy(),delete F.stores[this.storeId]}notify(e=this.state,t=this.state,s){if(this.listeners.forEach(i=>i()),this.selectorListeners.forEach(i=>{i.notify(t)}),this.pathScopedSubscriptions.size===0)return;if(!s||s.length===0||s.includes("*")){this.pathScopedSubscriptions.forEach((i,a)=>{a.notify(t)});return}this.collectSubscribersForChangedPaths(s).forEach(i=>{i.notify(t)})}normalizeSubscriptionPaths(e){return!e||e.length===0?[]:Array.from(new Set(e.map(t=>t.trim()).filter(t=>t.length>0)))}collectTrackedSelectorPaths(e){let t=new Set,s=(i,a)=>!i||typeof i!="object"?i:new Proxy(i,{get:(o,l)=>{if(typeof l!="string")return Reflect.get(o,l);let d=a?`${a}.${l}`:l;t.add(d);let u=Reflect.get(o,l);return s(u,d)}}),r=new Proxy(this.state,{get:(i,a)=>{if(typeof a!="string")return Reflect.get(i,a);let o=Reflect.get(i,a);return a==="values"?s(o,""):o}});try{return e(r),Array.from(t)}catch (e4){return[]}}collectSubscribersForChangedPaths(e){let t=new Set,s=i=>{let a=this.pathSelectorIndex.get(i);a&&a.forEach(o=>t.add(o))};return this.normalizeSubscriptionPaths(e).forEach(i=>{s(i);let a=i.split(".");for(;a.length>1;)a.pop(),s(a.join("."));this.pathSelectorIndex.forEach((o,l)=>{l.startsWith(`${i}.`)&&o.forEach(d=>t.add(d))})}),t}}, _class7);var Z=Symbol.for("bit-form.store.engine");function Yt(n){if(n instanceof k)return n;let e=n;return e[Z]?e[Z]:n}function Wt(n={}){let e=new k(n),t={get config(){return e.config},getConfig:()=>e.getConfig(),getState:()=>e.getState(),subscribe:e.subscribe.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),replaceValues:e.replaceValues.bind(e),hydrate:e.hydrate.bind(e),rebase:e.rebase.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),validate:e.validate.bind(e),reset:e.reset.bind(e),submit:e.submit.bind(e),registerMask:e.registerMask.bind(e),getDirtyValues:e.getDirtyValues.bind(e),restorePersisted:e.restorePersisted.bind(e),forceSave:e.forceSave.bind(e),clearPersisted:e.clearPersisted.bind(e),registerField:e.registerField.bind(e),unregisterField:e.unregisterField.bind(e),isHidden:e.isHidden.bind(e),isRequired:e.isRequired.bind(e),isFieldDirty:e.isFieldDirty.bind(e),isFieldValidating:e.isFieldValidating.bind(e),watch:e.watch.bind(e),pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),insertItem:e.insertItem.bind(e),removeItem:e.removeItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e),getHistoryMetadata:e.getHistoryMetadata.bind(e),undo:e.undo.bind(e),redo:e.redo.bind(e),getStepStatus:e.getStepStatus.bind(e),getStepErrors:e.getStepErrors.bind(e),cleanup:e.cleanup.bind(e)};return Object.defineProperty(t,Z,{value:e,enumerable:!1,configurable:!1,writable:!1}),t}exports.a = F; exports.b = h; exports.c = X; exports.d = S; exports.e = b; exports.f = c; exports.g = f; exports.h = qe; exports.i = Ie; exports.j = je; exports.k = M; exports.l = Re; exports.m = g; exports.n = v; exports.o = ee; exports.p = K; exports.q = te; exports.r = re; exports.s = se; exports.t = ie; exports.u = ne; exports.v = ae; exports.w = oe; exports.x = G; exports.y = le; exports.z = de; exports.A = ue; exports.B = ce; exports.C = he; exports.D = ge; exports.E = pe; exports.F = fe; exports.G = me; exports.H = ye; exports.I = Se; exports.J = ve; exports.K = be; exports.L = Te; exports.M = Be; exports.N = Ve; exports.O = Pe; exports.P = Ee; exports.Q = Me; exports.R = ke; exports.S = Fe; exports.T = Ce; exports.U = we; exports.V = ze; exports.W = Le; exports.X = xe; exports.Y = Yt; exports.Z = Wt;
2
+ //# sourceMappingURL=chunk-676WXU4S.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/store/bus.ts","../src/core/utils.ts"],"names":["rootGlobal","id","state","fn","bitBus","deepClone","obj","item","clone","key","deepMerge","target","source","base","sourceValue","baseValue","valueEqual","a","b","deepEqual","keysA","keysB","collectDirtyPaths","initial","prefix","result","allKeys","k","p"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-676WXU4S.cjs","sourcesContent":["import { BitBusListener, BitFormGlobal } from \"./bus-types\";\n\ndeclare global {\n var __BIT_FORM__: BitFormGlobal | undefined;\n}\n\nconst rootGlobal =\n typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof global !== \"undefined\"\n ? global\n : window;\n\nif (!rootGlobal.__BIT_FORM__) {\n rootGlobal.__BIT_FORM__ = {\n stores: {},\n listeners: new Set<BitBusListener>(),\n\n dispatch(id: string, state: any) {\n this.listeners.forEach((fn: BitBusListener) => fn(id, state));\n },\n\n subscribe(fn: BitBusListener) {\n this.listeners.add(fn);\n return () => {\n this.listeners.delete(fn);\n };\n },\n };\n}\n\nexport const bitBus = rootGlobal.__BIT_FORM__ as BitFormGlobal;\n","export function deepClone<T>(obj: T): T {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as any as T;\n }\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any as T;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => deepClone(item)) as any as T;\n }\n\n const clone: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n clone[key] = deepClone((obj as any)[key]);\n }\n }\n return clone as T;\n}\n\nexport function deepMerge<T>(target: T, source: any): T {\n if (source === undefined) {\n return deepClone(target);\n }\n\n if (\n source === null ||\n typeof source !== \"object\" ||\n source instanceof Date ||\n source instanceof RegExp ||\n Array.isArray(source)\n ) {\n return deepClone(source as T);\n }\n\n const base =\n target && typeof target === \"object\" && !Array.isArray(target)\n ? deepClone(target as any)\n : ({} as Record<string, unknown>);\n\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const baseValue = (base as Record<string, unknown>)[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === \"object\" &&\n !Array.isArray(sourceValue) &&\n !(sourceValue instanceof Date) &&\n !(sourceValue instanceof RegExp)\n ) {\n (base as Record<string, unknown>)[key] = deepMerge(\n baseValue,\n sourceValue,\n );\n continue;\n }\n\n (base as Record<string, unknown>)[key] = deepClone(sourceValue);\n }\n\n return base as T;\n}\n\n/**\n * Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.\n * Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).\n */\nexport function valueEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n return deepEqual(a, b);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n if (a instanceof RegExp && b instanceof RegExp)\n return a.toString() === b.toString();\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(b, key) ||\n !deepEqual(a[key], b[key])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Collects all paths where obj differs from initial. Used to rebuild dirtyPaths after full state replacement.\n */\nexport function collectDirtyPaths(\n obj: any,\n initial: any,\n prefix = \"\",\n result: Set<string> = new Set(),\n): Set<string> {\n if (valueEqual(obj, initial)) return result;\n if (\n obj === null ||\n typeof obj !== \"object\" ||\n initial === null ||\n typeof initial !== \"object\"\n ) {\n if (prefix) result.add(prefix);\n return result;\n }\n if (Array.isArray(obj) || Array.isArray(initial)) {\n if (!valueEqual(obj, initial) && prefix) result.add(prefix);\n return result;\n }\n const allKeys = new Set([\n ...Object.keys(obj || {}),\n ...Object.keys(initial || {}),\n ]);\n for (const k of allKeys) {\n const p = prefix ? `${prefix}.${k}` : k;\n collectDirtyPaths((obj as any)?.[k], (initial as any)?.[k], p, result);\n }\n return result;\n}\n\nconst PATH_CACHE_MAX = 1000;\nconst pathCache = new Map<string, string[]>();\n\nexport function getDeepValue(obj: any, path: string): any {\n if (!path) return obj;\n\n let keys = pathCache.get(path);\n if (!keys) {\n keys = path.split(\".\");\n if (pathCache.size >= PATH_CACHE_MAX) {\n pathCache.delete(pathCache.keys().next().value!);\n }\n pathCache.set(path, keys);\n }\n\n let current = obj;\n for (const key of keys) {\n if (current === null || current === undefined) return undefined;\n current = current[key];\n }\n return current;\n}\n\nexport function setDeepValue(obj: any, path: string, value: any): any {\n if (!path) return value;\n\n let keys = pathCache.get(path);\n if (!keys) {\n keys = path.split(\".\");\n if (pathCache.size >= PATH_CACHE_MAX) {\n pathCache.delete(pathCache.keys().next().value!);\n }\n pathCache.set(path, keys);\n }\n\n const result = Array.isArray(obj) ? [...obj] : { ...obj };\n let current = result;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n const nextKey = keys[i + 1];\n\n const isNextNumeric = /^\\d+$/.test(nextKey);\n const currentValue = current[key];\n\n if (currentValue === null || currentValue === undefined) {\n current[key] = isNextNumeric ? [] : {};\n } else {\n current[key] = Array.isArray(currentValue)\n ? [...currentValue]\n : { ...currentValue };\n }\n\n current = current[key];\n }\n\n current[keys[keys.length - 1]] = value;\n\n return result;\n}\n\nexport function cleanPrefixedKeys(\n obj: Record<string, any>,\n prefix: string,\n): Record<string, any> {\n const newObj: Record<string, any> = {};\n const prefixWithDot = `${prefix}.`;\n\n for (const key in obj) {\n if (key !== prefix && !key.startsWith(prefixWithDot)) {\n newObj[key] = obj[key];\n }\n }\n return newObj;\n}\n\nexport const shiftKeys = (\n obj: Record<string, any>,\n path: string,\n removedIndex: number,\n) => {\n const newObj: Record<string, any> = {};\n const prefix = `${path}.`;\n\n Object.keys(obj).forEach((key) => {\n if (!key.startsWith(prefix)) {\n newObj[key] = obj[key];\n return;\n }\n const remaining = key.substring(prefix.length);\n const parts = remaining.split(\".\");\n const currentIdx = parseInt(parts[0], 10);\n const rest = parts.slice(1).join(\".\");\n\n if (currentIdx === removedIndex) return;\n\n if (currentIdx > removedIndex) {\n const newIdx = currentIdx - 1;\n const newKey = rest ? `${prefix}${newIdx}.${rest}` : `${prefix}${newIdx}`;\n newObj[newKey] = obj[key];\n } else {\n newObj[key] = obj[key];\n }\n });\n return newObj;\n};\n\nexport const swapKeys = (\n obj: Record<string, any>,\n path: string,\n indexA: number,\n indexB: number,\n) => {\n const newObj: Record<string, any> = {};\n const prefix = `${path}.`;\n\n Object.keys(obj).forEach((key) => {\n if (!key.startsWith(prefix)) {\n newObj[key] = obj[key];\n return;\n }\n const remaining = key.substring(prefix.length);\n const parts = remaining.split(\".\");\n const currentIdx = parseInt(parts[0], 10);\n const rest = parts.slice(1).join(\".\");\n\n if (currentIdx === indexA) {\n const newKey = rest ? `${prefix}${indexB}.${rest}` : `${prefix}${indexB}`;\n newObj[newKey] = obj[key];\n } else if (currentIdx === indexB) {\n const newKey = rest ? `${prefix}${indexA}.${rest}` : `${prefix}${indexA}`;\n newObj[newKey] = obj[key];\n } else {\n newObj[key] = obj[key];\n }\n });\n return newObj;\n};\n\nexport const moveKeys = (\n obj: Record<string, any>,\n path: string,\n from: number,\n to: number,\n) => {\n const newObj: Record<string, any> = {};\n const prefix = `${path}.`;\n\n Object.keys(obj).forEach((key) => {\n if (!key.startsWith(prefix)) {\n newObj[key] = obj[key];\n return;\n }\n const remaining = key.substring(prefix.length);\n const parts = remaining.split(\".\");\n const currentIdx = parseInt(parts[0], 10);\n const rest = parts.slice(1).join(\".\");\n\n let newIdx = currentIdx;\n if (currentIdx === from) {\n newIdx = to;\n } else if (from < to && currentIdx > from && currentIdx <= to) {\n newIdx = currentIdx - 1;\n } else if (from > to && currentIdx >= to && currentIdx < from) {\n newIdx = currentIdx + 1;\n }\n\n const newKey = rest ? `${prefix}${newIdx}.${rest}` : `${prefix}${newIdx}`;\n newObj[newKey] = obj[key];\n });\n return newObj;\n};\n\n/**\n * Checks if a value looks like a server validation error response.\n * Handles shapes like { email: \"Taken\" }, { errors: { email: [\"Taken\"] } }, etc.\n */\nexport function isValidationErrorShape(\n x: unknown,\n): x is Record<string, string | string[]> {\n if (typeof x !== \"object\" || x === null || Array.isArray(x)) return false;\n\n const obj = (x as Record<string, unknown>).errors ?? x;\n if (typeof obj !== \"object\" || obj === null || Array.isArray(obj))\n return false;\n\n return Object.values(obj as Record<string, unknown>).every(\n (v) =>\n typeof v === \"string\" ||\n (Array.isArray(v) && v.every((i) => typeof i === \"string\")),\n );\n}\n\n/**\n * Extracts server errors in the format expected by setServerErrors.\n */\nexport function extractServerErrors(\n x: unknown,\n): Record<string, string | string[]> {\n if (!isValidationErrorShape(x)) return {};\n\n const obj = (x as Record<string, unknown>).errors ?? x;\n return obj as Record<string, string | string[]>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ function s(r){return r.replace(/\[(\d+)\]/g,".$1")}function f(r,t,e){!t||!e||r[t]||(r[t]=e)}function E(r,t){if(!t||t.length===0)return r;let e=new Set(t),o={};for(let[n,i]of Object.entries(r))e.has(n)&&i&&(o[n]=i);return o}export{s as a,f as b,E as c};
2
+ //# sourceMappingURL=chunk-7MBRAKBL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resolvers/utils.ts"],"sourcesContent":["import { BitErrors } from \"../core\";\n\nexport function normalizeErrorPath(path: string): string {\n return path.replace(/\\[(\\d+)\\]/g, \".$1\");\n}\n\nexport function setFirstError<T extends object>(\n errors: BitErrors<T>,\n path: string,\n message: string | undefined,\n) {\n if (!path || !message) {\n return;\n }\n\n if (!errors[path as keyof BitErrors<T>]) {\n errors[path as keyof BitErrors<T>] = message;\n }\n}\n\nexport function filterErrorsByScope<T extends object>(\n errors: BitErrors<T>,\n scopeFields?: string[],\n): BitErrors<T> {\n if (!scopeFields || scopeFields.length === 0) {\n return errors;\n }\n\n const scopeSet = new Set(scopeFields);\n const filtered: BitErrors<T> = {};\n\n for (const [key, message] of Object.entries(errors)) {\n if (scopeSet.has(key) && message) {\n filtered[key as keyof BitErrors<T>] = message;\n }\n }\n\n return filtered;\n}\n"],"mappings":"AAEO,SAASA,EAAmBC,EAAsB,CACvD,OAAOA,EAAK,QAAQ,aAAc,KAAK,CACzC,CAEO,SAASC,EACdC,EACAF,EACAG,EACA,CACI,CAACH,GAAQ,CAACG,GAITD,EAAOF,CAA0B,IACpCE,EAAOF,CAA0B,EAAIG,EAEzC,CAEO,SAASC,EACdF,EACAG,EACc,CACd,GAAI,CAACA,GAAeA,EAAY,SAAW,EACzC,OAAOH,EAGT,IAAMI,EAAW,IAAI,IAAID,CAAW,EAC9BE,EAAyB,CAAC,EAEhC,OAAW,CAACC,EAAKL,CAAO,IAAK,OAAO,QAAQD,CAAM,EAC5CI,EAAS,IAAIE,CAAG,GAAKL,IACvBI,EAASC,CAAyB,EAAIL,GAI1C,OAAOI,CACT","names":["normalizeErrorPath","path","setFirstError","errors","message","filterErrorsByScope","scopeFields","scopeSet","filtered","key"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-AD7T42HJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-C4BYXZGB.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-C4BYXZGB.cjs"],"names":[],"mappings":"AAAA","file":"/home/runner/work/bit-form/bit-form/dist/chunk-C4BYXZGB.cjs"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});function s(r){return r.replace(/\[(\d+)\]/g,".$1")}function f(r,t,e){!t||!e||r[t]||(r[t]=e)}function E(r,t){if(!t||t.length===0)return r;let e=new Set(t),o={};for(let[n,i]of Object.entries(r))e.has(n)&&i&&(o[n]=i);return o}exports.a = s; exports.b = f; exports.c = E;
2
+ //# sourceMappingURL=chunk-ER2DNS7T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resolvers/utils.ts"],"names":["normalizeErrorPath","path","setFirstError","errors","message","filterErrorsByScope","scopeFields","scopeSet","filtered","key"],"mappings":"AAEO,kFAASA,CAAAA,CAAmBC,CAAAA,CAAsB,CACvD,OAAOA,CAAAA,CAAK,OAAA,CAAQ,YAAA,CAAc,KAAK,CACzC,CAEO,SAASC,CAAAA,CACdC,CAAAA,CACAF,CAAAA,CACAG,CAAAA,CACA,CACI,CAACH,CAAAA,EAAQ,CAACG,CAAAA,EAITD,CAAAA,CAAOF,CAA0B,CAAA,EAAA,CACpCE,CAAAA,CAAOF,CAA0B,CAAA,CAAIG,CAAAA,CAEzC,CAEO,SAASC,CAAAA,CACdF,CAAAA,CACAG,CAAAA,CACc,CACd,EAAA,CAAI,CAACA,CAAAA,EAAeA,CAAAA,CAAY,MAAA,GAAW,CAAA,CACzC,OAAOH,CAAAA,CAGT,IAAMI,CAAAA,CAAW,IAAI,GAAA,CAAID,CAAW,CAAA,CAC9BE,CAAAA,CAAyB,CAAC,CAAA,CAEhC,GAAA,CAAA,GAAW,CAACC,CAAAA,CAAKL,CAAO,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQD,CAAM,CAAA,CAC5CI,CAAAA,CAAS,GAAA,CAAIE,CAAG,CAAA,EAAKL,CAAAA,EAAAA,CACvBI,CAAAA,CAASC,CAAyB,CAAA,CAAIL,CAAAA,CAAAA,CAI1C,OAAOI,CACT,CAAA,4CAAA","file":"/home/runner/work/bit-form/bit-form/dist/chunk-ER2DNS7T.cjs","sourcesContent":["import { BitErrors } from \"../core\";\n\nexport function normalizeErrorPath(path: string): string {\n return path.replace(/\\[(\\d+)\\]/g, \".$1\");\n}\n\nexport function setFirstError<T extends object>(\n errors: BitErrors<T>,\n path: string,\n message: string | undefined,\n) {\n if (!path || !message) {\n return;\n }\n\n if (!errors[path as keyof BitErrors<T>]) {\n errors[path as keyof BitErrors<T>] = message;\n }\n}\n\nexport function filterErrorsByScope<T extends object>(\n errors: BitErrors<T>,\n scopeFields?: string[],\n): BitErrors<T> {\n if (!scopeFields || scopeFields.length === 0) {\n return errors;\n }\n\n const scopeSet = new Set(scopeFields);\n const filtered: BitErrors<T> = {};\n\n for (const [key, message] of Object.entries(errors)) {\n if (scopeSet.has(key) && message) {\n filtered[key as keyof BitErrors<T>] = message;\n }\n }\n\n return filtered;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk676WXU4Scjs = require('./chunk-676WXU4S.cjs');async function p(t,r,e,n){try{let o=await t(r,e);n.onSuccess(o)}catch(o){if(_chunk676WXU4Scjs.i.call(void 0, o)){n.onServerErrors(_chunk676WXU4Scjs.j.call(void 0, o));return}n.onUnhandledError(o instanceof Error?o:new Error(String(o)))}}function c(t,r){_optionalChain([t, 'optionalAccess', _ => _.preventDefault, 'optionalCall', _2 => _2()]),_optionalChain([r, 'optionalAccess', _3 => _3.stopPropagation])&&_optionalChain([t, 'optionalAccess', _4 => _4.stopPropagation, 'optionalCall', _5 => _5()])}function E(t,r,e){return{submit:i=>a=>(c(a,e),t.submit(i)),onSubmit:i=>a=>(c(a,e),r.setSubmissionError(null),t.submit(async(b,B)=>{await p(i,b,B,{onSuccess:s=>{r.setSubmissionResult(s),r.setSubmissionError(null)},onServerErrors:s=>{t.setServerErrors(s)},onUnhandledError:s=>{r.setSubmissionError(s)}})})),reset:()=>{t.reset(),r.clearSubmissionState()},getValues:()=>t.getState().values,getErrors:()=>t.getState().errors,getTouched:()=>t.getState().touched,getDirtyValues:()=>t.getDirtyValues()}}function y(t,r,e){return t.subscribeSelector(()=>t.getFieldState(r),e,{paths:[r]})}function x(t,r,e){return{setValue:i=>{t.setField(r,_chunk676WXU4Scjs.W.call(void 0, i,e))},setBlur:()=>t.blurField(r),displayValue:i=>_chunk676WXU4Scjs.V.call(void 0, i,e)}}exports.a = E; exports.b = y; exports.c = x;
2
+ //# sourceMappingURL=chunk-NWPA4F3B.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-NWPA4F3B.cjs","../src/core/submit-handler.ts","../src/core/form-controller.ts","../src/core/field-controller.ts"],"names":["executeSubmitHandler","handler","values","dirtyValues","handlers","result","error","isValidationErrorShape","extractServerErrors","preventFormEvent","event","options","createFormController","store","runtime","onSuccess","serverErrors","subscribeFieldState","path","listener","createMaskedFieldController","mask","value","parseMaskedInput","formatMaskedValue"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-NWPA4F3B.cjs","sourcesContent":[null,"import { extractServerErrors, isValidationErrorShape } from \"./utils\";\n\nexport interface BitSubmitExecutionHandlers {\n onServerErrors: (errors: Record<string, string[] | string>) => void;\n onUnhandledError: (error: Error) => void;\n onSuccess: (result: unknown) => void;\n}\n\nexport async function executeSubmitHandler<T extends object>(\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n values: T,\n dirtyValues: Partial<T> | undefined,\n handlers: BitSubmitExecutionHandlers,\n): Promise<void> {\n try {\n const result = await handler(values, dirtyValues);\n handlers.onSuccess(result);\n } catch (error) {\n if (isValidationErrorShape(error)) {\n handlers.onServerErrors(extractServerErrors(error));\n return;\n }\n\n handlers.onUnhandledError(\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n}\n","import { executeSubmitHandler } from \"./submit-handler\";\nimport type { BitStoreHooksApi } from \"./store/public-types\";\n\nexport type BitFormDomEvent = {\n preventDefault?: () => void;\n stopPropagation?: () => void;\n};\n\nexport interface BitFormControllerRuntime {\n clearSubmissionState: () => void;\n setSubmissionResult: (result: unknown) => void;\n setSubmissionError: (error: Error | null) => void;\n}\n\nexport interface BitFormControllerOptions {\n stopPropagation?: boolean;\n}\n\nexport function preventFormEvent(\n event?: BitFormDomEvent,\n options?: BitFormControllerOptions,\n) {\n event?.preventDefault?.();\n if (options?.stopPropagation) {\n event?.stopPropagation?.();\n }\n}\n\nexport function createFormController<T extends object>(\n store: BitStoreHooksApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const submit = (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (event?: BitFormDomEvent) => {\n preventFormEvent(event, options);\n return store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (event?: BitFormDomEvent) => {\n preventFormEvent(event, options);\n runtime.setSubmissionError(null);\n\n return store.submit(async (values, dirtyValues) => {\n await executeSubmitHandler(handler, values, dirtyValues, {\n onSuccess: (result) => {\n runtime.setSubmissionResult(result);\n runtime.setSubmissionError(null);\n },\n onServerErrors: (serverErrors) => {\n store.setServerErrors(serverErrors);\n },\n onUnhandledError: (error) => {\n runtime.setSubmissionError(error);\n },\n });\n });\n };\n };\n\n const reset = () => {\n store.reset();\n runtime.clearSubmissionState();\n };\n\n return {\n submit,\n onSubmit,\n reset,\n getValues: () => store.getState().values,\n getErrors: () => store.getState().errors,\n getTouched: () => store.getState().touched,\n getDirtyValues: () => store.getDirtyValues(),\n };\n}\n","import { formatMaskedValue, parseMaskedInput } from \"./mask/field-binding\";\nimport type { BitMask } from \"./mask/types\";\nimport type { BitStoreHooksApi } from \"./store/public-types\";\nimport type { BitFieldState, BitPath, BitPathValue } from \"./store/types\";\n\nexport function subscribeFieldState<\n TForm extends object,\n P extends BitPath<TForm>,\n>(\n store: BitStoreHooksApi<TForm>,\n path: P,\n listener: (\n value: Readonly<BitFieldState<TForm, BitPathValue<TForm, P>>>,\n ) => void,\n) {\n return store.subscribeSelector(\n () =>\n store.getFieldState(path) as Readonly<\n BitFieldState<TForm, BitPathValue<TForm, P>>\n >,\n listener,\n { paths: [path as string] },\n );\n}\n\nexport function createMaskedFieldController<\n TForm extends object,\n P extends BitPath<TForm>,\n>(store: BitStoreHooksApi<TForm>, path: P, mask: BitMask | undefined) {\n const setValue = (value: unknown) => {\n store.setField(\n path,\n parseMaskedInput(value, mask) as BitPathValue<TForm, P>,\n );\n };\n\n const setBlur = () => store.blurField(path);\n\n const displayValue = (value: unknown) => formatMaskedValue(value, mask);\n\n return {\n setValue,\n setBlur,\n displayValue,\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import{V as m,W as d,i as u,j as l}from"./chunk-2UVV7SU4.js";async function p(t,r,e,n){try{let o=await t(r,e);n.onSuccess(o)}catch(o){if(u(o)){n.onServerErrors(l(o));return}n.onUnhandledError(o instanceof Error?o:new Error(String(o)))}}function c(t,r){t?.preventDefault?.(),r?.stopPropagation&&t?.stopPropagation?.()}function E(t,r,e){return{submit:i=>a=>(c(a,e),t.submit(i)),onSubmit:i=>a=>(c(a,e),r.setSubmissionError(null),t.submit(async(b,B)=>{await p(i,b,B,{onSuccess:s=>{r.setSubmissionResult(s),r.setSubmissionError(null)},onServerErrors:s=>{t.setServerErrors(s)},onUnhandledError:s=>{r.setSubmissionError(s)}})})),reset:()=>{t.reset(),r.clearSubmissionState()},getValues:()=>t.getState().values,getErrors:()=>t.getState().errors,getTouched:()=>t.getState().touched,getDirtyValues:()=>t.getDirtyValues()}}function y(t,r,e){return t.subscribeSelector(()=>t.getFieldState(r),e,{paths:[r]})}function x(t,r,e){return{setValue:i=>{t.setField(r,d(i,e))},setBlur:()=>t.blurField(r),displayValue:i=>m(i,e)}}export{E as a,y as b,x as c};
2
+ //# sourceMappingURL=chunk-O5RRLZR7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/submit-handler.ts","../src/core/form-controller.ts","../src/core/field-controller.ts"],"sourcesContent":["import { extractServerErrors, isValidationErrorShape } from \"./utils\";\n\nexport interface BitSubmitExecutionHandlers {\n onServerErrors: (errors: Record<string, string[] | string>) => void;\n onUnhandledError: (error: Error) => void;\n onSuccess: (result: unknown) => void;\n}\n\nexport async function executeSubmitHandler<T extends object>(\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n values: T,\n dirtyValues: Partial<T> | undefined,\n handlers: BitSubmitExecutionHandlers,\n): Promise<void> {\n try {\n const result = await handler(values, dirtyValues);\n handlers.onSuccess(result);\n } catch (error) {\n if (isValidationErrorShape(error)) {\n handlers.onServerErrors(extractServerErrors(error));\n return;\n }\n\n handlers.onUnhandledError(\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n}\n","import { executeSubmitHandler } from \"./submit-handler\";\nimport type { BitStoreHooksApi } from \"./store/public-types\";\n\nexport type BitFormDomEvent = {\n preventDefault?: () => void;\n stopPropagation?: () => void;\n};\n\nexport interface BitFormControllerRuntime {\n clearSubmissionState: () => void;\n setSubmissionResult: (result: unknown) => void;\n setSubmissionError: (error: Error | null) => void;\n}\n\nexport interface BitFormControllerOptions {\n stopPropagation?: boolean;\n}\n\nexport function preventFormEvent(\n event?: BitFormDomEvent,\n options?: BitFormControllerOptions,\n) {\n event?.preventDefault?.();\n if (options?.stopPropagation) {\n event?.stopPropagation?.();\n }\n}\n\nexport function createFormController<T extends object>(\n store: BitStoreHooksApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const submit = (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (event?: BitFormDomEvent) => {\n preventFormEvent(event, options);\n return store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (event?: BitFormDomEvent) => {\n preventFormEvent(event, options);\n runtime.setSubmissionError(null);\n\n return store.submit(async (values, dirtyValues) => {\n await executeSubmitHandler(handler, values, dirtyValues, {\n onSuccess: (result) => {\n runtime.setSubmissionResult(result);\n runtime.setSubmissionError(null);\n },\n onServerErrors: (serverErrors) => {\n store.setServerErrors(serverErrors);\n },\n onUnhandledError: (error) => {\n runtime.setSubmissionError(error);\n },\n });\n });\n };\n };\n\n const reset = () => {\n store.reset();\n runtime.clearSubmissionState();\n };\n\n return {\n submit,\n onSubmit,\n reset,\n getValues: () => store.getState().values,\n getErrors: () => store.getState().errors,\n getTouched: () => store.getState().touched,\n getDirtyValues: () => store.getDirtyValues(),\n };\n}\n","import { formatMaskedValue, parseMaskedInput } from \"./mask/field-binding\";\nimport type { BitMask } from \"./mask/types\";\nimport type { BitStoreHooksApi } from \"./store/public-types\";\nimport type { BitFieldState, BitPath, BitPathValue } from \"./store/types\";\n\nexport function subscribeFieldState<\n TForm extends object,\n P extends BitPath<TForm>,\n>(\n store: BitStoreHooksApi<TForm>,\n path: P,\n listener: (\n value: Readonly<BitFieldState<TForm, BitPathValue<TForm, P>>>,\n ) => void,\n) {\n return store.subscribeSelector(\n () =>\n store.getFieldState(path) as Readonly<\n BitFieldState<TForm, BitPathValue<TForm, P>>\n >,\n listener,\n { paths: [path as string] },\n );\n}\n\nexport function createMaskedFieldController<\n TForm extends object,\n P extends BitPath<TForm>,\n>(store: BitStoreHooksApi<TForm>, path: P, mask: BitMask | undefined) {\n const setValue = (value: unknown) => {\n store.setField(\n path,\n parseMaskedInput(value, mask) as BitPathValue<TForm, P>,\n );\n };\n\n const setBlur = () => store.blurField(path);\n\n const displayValue = (value: unknown) => formatMaskedValue(value, mask);\n\n return {\n setValue,\n setBlur,\n displayValue,\n };\n}\n"],"mappings":"6DAQA,eAAsBA,EACpBC,EACAC,EACAC,EACAC,EACe,CACf,GAAI,CACF,IAAMC,EAAS,MAAMJ,EAAQC,EAAQC,CAAW,EAChDC,EAAS,UAAUC,CAAM,CAC3B,OAASC,EAAO,CACd,GAAIC,EAAuBD,CAAK,EAAG,CACjCF,EAAS,eAAeI,EAAoBF,CAAK,CAAC,EAClD,MACF,CAEAF,EAAS,iBACPE,aAAiB,MAAQA,EAAQ,IAAI,MAAM,OAAOA,CAAK,CAAC,CAC1D,CACF,CACF,CCTO,SAASG,EACdC,EACAC,EACA,CACAD,GAAO,iBAAiB,EACpBC,GAAS,iBACXD,GAAO,kBAAkB,CAE7B,CAEO,SAASE,EACdC,EACAC,EACAH,EACA,CAuCA,MAAO,CACL,OAtCAI,GAEQL,IACND,EAAiBC,EAAOC,CAAO,EACxBE,EAAM,OAAOE,CAAS,GAmC/B,SA9BAC,GAEQN,IACND,EAAiBC,EAAOC,CAAO,EAC/BG,EAAQ,mBAAmB,IAAI,EAExBD,EAAM,OAAO,MAAOI,EAAQC,IAAgB,CACjD,MAAMC,EAAqBH,EAASC,EAAQC,EAAa,CACvD,UAAYE,GAAW,CACrBN,EAAQ,oBAAoBM,CAAM,EAClCN,EAAQ,mBAAmB,IAAI,CACjC,EACA,eAAiBO,GAAiB,CAChCR,EAAM,gBAAgBQ,CAAY,CACpC,EACA,iBAAmBC,GAAU,CAC3BR,EAAQ,mBAAmBQ,CAAK,CAClC,CACF,CAAC,CACH,CAAC,GAYH,MARY,IAAM,CAClBT,EAAM,MAAM,EACZC,EAAQ,qBAAqB,CAC/B,EAME,UAAW,IAAMD,EAAM,SAAS,EAAE,OAClC,UAAW,IAAMA,EAAM,SAAS,EAAE,OAClC,WAAY,IAAMA,EAAM,SAAS,EAAE,QACnC,eAAgB,IAAMA,EAAM,eAAe,CAC7C,CACF,CC3EO,SAASU,EAIdC,EACAC,EACAC,EAGA,CACA,OAAOF,EAAM,kBACX,IACEA,EAAM,cAAcC,CAAI,EAG1BC,EACA,CAAE,MAAO,CAACD,CAAc,CAAE,CAC5B,CACF,CAEO,SAASE,EAGdH,EAAgCC,EAASG,EAA2B,CAYpE,MAAO,CACL,SAZgBC,GAAmB,CACnCL,EAAM,SACJC,EACAK,EAAiBD,EAAOD,CAAI,CAC9B,CACF,EAQE,QANc,IAAMJ,EAAM,UAAUC,CAAI,EAOxC,aALoBI,GAAmBE,EAAkBF,EAAOD,CAAI,CAMtE,CACF","names":["executeSubmitHandler","handler","values","dirtyValues","handlers","result","error","isValidationErrorShape","extractServerErrors","preventFormEvent","event","options","createFormController","store","runtime","onSuccess","handler","values","dirtyValues","executeSubmitHandler","result","serverErrors","error","subscribeFieldState","store","path","listener","createMaskedFieldController","mask","value","parseMaskedInput","formatMaskedValue"]}
@@ -0,0 +1,2 @@
1
+ import{a as I,b as w}from"./chunk-O5RRLZR7.js";import{Y as D,e as k,f as E}from"./chunk-2UVV7SU4.js";import{createContext as q,useContext as U}from"react";import{jsx as L}from"react/jsx-runtime";var A=q(null),at=({store:t,children:e})=>L(A.Provider,{value:D(t),children:e}),b=()=>{let t=U(A);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};import{useCallback as y,useSyncExternalStore as W,useMemo as C,useRef as _,useState as M}from"react";function St(){let t=b(),[e,s]=M(null),[m,o]=M(null),n=_(null),u=y(()=>{let g=t.getState(),p={isValid:g.isValid,isDirty:g.isDirty,isSubmitting:g.isSubmitting};return n.current&&n.current.isValid===p.isValid&&n.current.isDirty===p.isDirty&&n.current.isSubmitting===p.isSubmitting?n.current:(n.current=p,p)},[t]),c=y(g=>t.subscribeSelector(p=>({isValid:p.isValid,isDirty:p.isDirty,isSubmitting:p.isSubmitting}),()=>g()),[t]),i=W(c,u,u),r=C(()=>I(t,{clearSubmissionState:()=>{s(null),o(null)},setSubmissionResult:g=>{o(g)},setSubmissionError:g=>{s(g)}}),[t]),a=y(r.submit,[r]),l=y(r.onSubmit,[r]),d=y(r.reset,[r]),F=y(r.getValues,[r]),v=y(r.getErrors,[r]),S=y(r.getTouched,[r]),f=y(r.getDirtyValues,[r]);return{meta:C(()=>({...i,submitError:e,lastResponse:m}),[i,e,m]),getValues:F,getErrors:v,getTouched:S,getDirtyValues:f,submit:a,onSubmit:l,reset:d,setField:t.setField.bind(t),blurField:t.blurField.bind(t),replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),validate:t.validate.bind(t)}}import{useCallback as j,useSyncExternalStore as $,useState as z,useMemo as H,useEffect as G}from"react";var B=()=>Math.random().toString(36).substring(2,9);function Ft(t){let e=b(),s=j(()=>{let r=e.getState(),a=E(r.values,t);return Array.isArray(a)?a:[]},[e,t]),m=j(r=>e.subscribePath(t,()=>r()),[e,t]),o=$(m,s,s),[n,u]=z(()=>o.map(B));G(()=>{o.length!==n.length&&u(r=>{if(o.length>r.length){let a=o.length-r.length;return[...r,...Array(a).fill(null).map(B)]}return r.slice(0,o.length)})},[o.length]);let c=H(()=>({append:r=>{u(a=>[...a,B()]),e.pushItem(t,r)},prepend:r=>{u(a=>[B(),...a]),e.prependItem(t,r)},insert:(r,a)=>{u(l=>{let d=[...l];return d.splice(r,0,B()),d}),e.insertItem(t,r,a)},remove:r=>{u(a=>a.filter((l,d)=>d!==r)),e.removeItem(t,r)},move:(r,a)=>{u(l=>{let d=[...l],[F]=d.splice(r,1);return d.splice(a,0,F),d}),e.moveItem(t,r,a)},swap:(r,a)=>{u(l=>{let d=[...l];return[d[r],d[a]]=[d[a],d[r]],d}),e.swapItems(t,r,a)},replace:r=>{u(r.map(B)),e.setField(t,r)},clear:()=>{u([]),e.setField(t,[])}}),[e,t]);return{fields:H(()=>o.map((r,a)=>({key:n[a]||`temp-${a}`,value:r,index:a})),[o,n]),length:o.length,...c}}import{useCallback as T,useSyncExternalStore as J,useRef as K}from"react";function Tt(t){let e=b(),s=K(null),m=T(()=>{let c=e.getStepStatus(t);return s.current&&s.current.hasErrors===c.hasErrors&&s.current.isDirty===c.isDirty&&Object.keys(s.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([i,r])=>s.current.errors[i]===r)?s.current:(s.current=c,c)},[e,t]),o=J(e.subscribe.bind(e),m,m),n=T(async()=>{let c=await e.validate({scope:t}),i=e.getStepErrors(t);return{valid:c,errors:i}},[e,t]),u=T(()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:n,getErrors:u,isValid:!o.hasErrors,isDirty:o.isDirty}}import{useCallback as P,useSyncExternalStore as Q,useRef as X,useState as Y}from"react";function Dt(t){let e=b(),[s,m]=Y(0),o=t[s]??"",n=X(null),u=P(()=>{let S=e.getStepStatus(o);return n.current&&n.current.hasErrors===S.hasErrors&&n.current.isDirty===S.isDirty&&Object.keys(n.current.errors).length===Object.keys(S.errors).length&&Object.entries(S.errors).every(([f,h])=>n.current.errors[f]===h)?n.current:(n.current=S,S)},[e,o]),c=Q(e.subscribe.bind(e),u,u),i=P(async()=>{let S=await e.validate({scope:o}),f=e.getStepErrors(o);return{valid:S,errors:f}},[e,o]),r=P(()=>e.getStepErrors(o),[e,o]),a=P(async()=>{let S=e.getScopeFields(o);if(e.hasValidationsInProgress(S))return!1;let f=await e.validate({scope:o});if(f)m(h=>Math.min(h+1,t.length-1));else{let h=e.getStepErrors(o),g=Object.keys(h);g.length>0&&e.markFieldsTouched(g)}return f},[e,o,t.length]),l=P(()=>{m(S=>Math.max(S-1,0))},[]),d=P(S=>{m(Math.max(0,Math.min(S-1,t.length-1)))},[t.length]),F=s===0,v=s>=t.length-1;return{step:s+1,stepIndex:s,scope:o,next:a,prev:l,goTo:d,isFirst:F,isLast:v,status:c,errors:c.errors,isValid:!c.hasErrors,isDirty:c.isDirty,validate:i,getErrors:r}}import{useCallback as O,useSyncExternalStore as Z,useRef as N}from"react";function Ht(t){let e=b(),s=N(null),m=O(()=>{let n=E(e.getState().values,t);return s.current!==null&&k(s.current,n)?s.current:(s.current=n,n)},[e,t]),o=O(n=>e.subscribe(n),[e]);return Z(o,m,m)}import{useCallback as R,useMemo as tt,useState as x}from"react";function Lt(){let t=b(),[e,s]=x(!1),[m,o]=x(!1),[n,u]=x(null),c=R(async()=>{o(!0),u(null);try{return await t.restorePersisted()}catch(l){return u(l instanceof Error?l:new Error(String(l))),!1}finally{o(!1)}},[t]),i=R(async()=>{s(!0),u(null);try{await t.forceSave()}catch(l){u(l instanceof Error?l:new Error(String(l)))}finally{s(!1)}},[t]),r=R(async()=>{u(null);try{await t.clearPersisted()}catch(l){u(l instanceof Error?l:new Error(String(l)))}},[t]),a=tt(()=>({isSaving:e,isRestoring:m,error:n}),[e,m,n]);return{restore:c,save:i,clear:r,meta:a}}import{useCallback as V,useSyncExternalStore as et,useRef as rt,useEffect as st}from"react";function Gt(t){let e=b(),s=rt(null);st(()=>()=>{e.unregisterField&&e.unregisterField(t)},[e,t]);let m=V(()=>{let i=e.getFieldState(t);if(s.current&&s.current.value===i.value&&s.current.error===i.error&&s.current.touched===i.touched&&s.current.isHidden===i.isHidden&&s.current.isRequired===i.isRequired&&s.current.isDirty===i.isDirty&&s.current.isValidating===i.isValidating)return s.current;let r={value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating};return s.current=r,r},[e,t]),o=V(i=>w(e,t,()=>i()),[e,t]),n=et(o,m,m),u=V(i=>e.setField(t,i),[e,t]),c=V(()=>e.blurField(t),[e,t]);return{fieldState:n,setValue:u,setBlur:c,store:e}}export{at as a,b,St as c,Gt as d,Ft as e,Tt as f,Dt as g,Ht as h,Lt as i};
2
+ //# sourceMappingURL=chunk-TRPMTJ35.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts","../src/react/use-bit-scope.ts","../src/react/use-bit-steps.ts","../src/react/use-bit-watch.ts","../src/react/use-bit-persist.ts","../src/react/use-bit-field-base.ts"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\nimport type { BitStoreApi } from \"../core\";\nimport type { BitStoreHooksApi } from \"../core/store/public-types\";\nimport { resolveBitStoreForHooks } from \"../core/store/create-store\";\n\nconst BitContext = createContext<BitStoreHooksApi<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitStoreApi<any>;\n children: React.ReactNode;\n}) => (\n <BitContext.Provider value={resolveBitStoreForHooks(store)}>\n {children}\n </BitContext.Provider>\n);\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitStoreHooksApi<T>;\n};\n","import {\n useCallback,\n useSyncExternalStore,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<{\n isValid: boolean;\n isDirty: boolean;\n isSubmitting: boolean;\n } | null>(null);\n\n const getMetaSnapshot = useCallback(() => {\n const state = store.getState();\n const nextMeta = {\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n };\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribeMeta = useCallback(\n (cb: () => void) =>\n store.subscribeSelector(\n (state) => ({\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n }),\n () => cb(),\n ),\n [store],\n );\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const controller = useMemo(\n () =>\n createFormController(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n validate: store.validate.bind(store),\n };\n}\n","import {\n useCallback,\n useSyncExternalStore,\n useState,\n useMemo,\n useEffect,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = useCallback(() => {\n const state = store.getState();\n const value = getDeepValue(state.values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(value) ? (value as Item[]) : [];\n }, [store, path]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const [ids, setIds] = useState<string[]>(() =>\n (data as Item[]).map(generateId),\n );\n\n useEffect(() => {\n if (data.length !== ids.length) {\n setIds((prevIds) => {\n if (data.length > prevIds.length) {\n const diff = data.length - prevIds.length;\n return [...prevIds, ...Array(diff).fill(null).map(generateId)];\n }\n return prevIds.slice(0, data.length);\n });\n }\n }, [data.length]);\n\n const methods = useMemo(\n () => ({\n append: (value: Item) => {\n setIds((prev) => [...prev, generateId()]);\n store.pushItem(path, value);\n },\n prepend: (value: Item) => {\n setIds((prev) => [generateId(), ...prev]);\n store.prependItem(path, value);\n },\n insert: (index: number, value: Item) => {\n setIds((prev) => {\n const newIds = [...prev];\n newIds.splice(index, 0, generateId());\n return newIds;\n });\n store.insertItem(path, index, value);\n },\n remove: (index: number) => {\n setIds((prev) => prev.filter((_, i) => i !== index));\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n const [item] = newIds.splice(from, 1);\n newIds.splice(to, 0, item);\n return newIds;\n });\n store.moveItem(path, from, to);\n },\n swap: (indexA: number, indexB: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n [newIds[indexA], newIds[indexB]] = [newIds[indexB], newIds[indexA]];\n return newIds;\n });\n store.swapItems(path, indexA, indexB);\n },\n replace: (items: Item[]) => {\n setIds(items.map(generateId));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n setIds([]);\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n }),\n [store, path],\n );\n\n const fields = useMemo(\n () =>\n (data as Item[]).map((item: Item, index: number) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n })),\n [data, ids],\n );\n\n return {\n fields,\n length: data.length,\n ...methods,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef } from \"react\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n\n const lastStatus = useRef<ScopeStatus | null>(null);\n\n const getStatusSnapshot = useCallback(() => {\n const nextStatus = store.getStepStatus(scopeName);\n\n if (\n lastStatus.current &&\n lastStatus.current.hasErrors === nextStatus.hasErrors &&\n lastStatus.current.isDirty === nextStatus.isDirty &&\n Object.keys(lastStatus.current.errors).length ===\n Object.keys(nextStatus.errors).length &&\n Object.entries(nextStatus.errors).every(\n ([k, v]) => lastStatus.current!.errors[k] === v,\n )\n ) {\n return lastStatus.current;\n }\n\n lastStatus.current = nextStatus;\n return nextStatus;\n }, [store, scopeName]);\n\n const status = useSyncExternalStore(\n store.subscribe.bind(store),\n getStatusSnapshot,\n getStatusSnapshot,\n );\n\n const validate = useCallback(async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n }, [store, scopeName]);\n\n const getErrors = useCallback(() => {\n return store.getStepErrors(scopeName);\n }, [store, scopeName]);\n\n return {\n scopeName,\n status,\n errors: status.errors,\n validate,\n getErrors,\n isValid: !status.hasErrors,\n isDirty: status.isDirty,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef, useState } from \"react\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const [stepIndex, setStepIndex] = useState(0);\n\n const scope = scopeNames[stepIndex] ?? \"\";\n const lastStatus = useRef<ScopeStatus | null>(null);\n\n const getStatusSnapshot = useCallback(() => {\n const nextStatus = store.getStepStatus(scope);\n\n if (\n lastStatus.current &&\n lastStatus.current.hasErrors === nextStatus.hasErrors &&\n lastStatus.current.isDirty === nextStatus.isDirty &&\n Object.keys(lastStatus.current.errors).length ===\n Object.keys(nextStatus.errors).length &&\n Object.entries(nextStatus.errors).every(\n ([k, v]) => lastStatus.current!.errors[k] === v,\n )\n ) {\n return lastStatus.current;\n }\n\n lastStatus.current = nextStatus;\n return nextStatus;\n }, [store, scope]);\n\n const status = useSyncExternalStore(\n store.subscribe.bind(store),\n getStatusSnapshot,\n getStatusSnapshot,\n );\n\n const validate = useCallback(async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope });\n const errors = store.getStepErrors(scope);\n return { valid, errors };\n }, [store, scope]);\n\n const getErrors = useCallback(() => {\n return store.getStepErrors(scope);\n }, [store, scope]);\n\n const next = useCallback(async (): Promise<boolean> => {\n const scopeFields = store.getScopeFields(scope);\n\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope });\n if (valid) {\n setStepIndex((s) => Math.min(s + 1, scopeNames.length - 1));\n } else {\n const errors = store.getStepErrors(scope);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n }, [store, scope, scopeNames.length]);\n\n const prev = useCallback(() => {\n setStepIndex((s) => Math.max(s - 1, 0));\n }, []);\n\n const goTo = useCallback(\n (targetStep: number) => {\n setStepIndex(\n Math.max(0, Math.min(targetStep - 1, scopeNames.length - 1)),\n );\n },\n [scopeNames.length],\n );\n\n const isFirst = stepIndex === 0;\n const isLast = stepIndex >= scopeNames.length - 1;\n\n return {\n step: stepIndex + 1,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors: status.errors,\n isValid: !status.hasErrors,\n isDirty: status.isDirty,\n validate,\n getErrors,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue, deepEqual, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): BitPathValue<TForm, P> {\n const store = useBitStore<TForm>();\n const lastValue = useRef<BitPathValue<TForm, P> | null>(null);\n\n const getSnapshot = useCallback(() => {\n const value = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n\n if (\n lastValue.current !== null &&\n deepEqual(lastValue.current, value)\n ) {\n return lastValue.current;\n }\n\n lastValue.current = value;\n return value;\n }, [store, path]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n return useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n ) as BitPathValue<TForm, P>;\n}\n","import { useCallback, useMemo, useState } from \"react\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist(): UseBitPersistResult {\n const store = useBitStore<any>();\n const [isSaving, setIsSaving] = useState(false);\n const [isRestoring, setIsRestoring] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const restore = useCallback(async () => {\n setIsRestoring(true);\n setError(null);\n\n try {\n return await store.restorePersisted();\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n return false;\n } finally {\n setIsRestoring(false);\n }\n }, [store]);\n\n const save = useCallback(async () => {\n setIsSaving(true);\n setError(null);\n\n try {\n await store.forceSave();\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n } finally {\n setIsSaving(false);\n }\n }, [store]);\n\n const clear = useCallback(async () => {\n setError(null);\n\n try {\n await store.clearPersisted();\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n }\n }, [store]);\n\n const meta = useMemo(\n () => ({\n isSaving,\n isRestoring,\n error,\n }),\n [isSaving, isRestoring, error],\n );\n\n return {\n restore,\n save,\n clear,\n meta,\n };\n}\n","import { useCallback, useSyncExternalStore, useRef, useEffect } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport { subscribeFieldState } from \"../core/field-controller\";\n\nexport function useBitFieldBase<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const lastState = useRef<{\n value: BitPathValue<TForm, P>;\n error: any;\n touched: boolean;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n } | null>(null);\n\n useEffect(() => {\n return () => {\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n };\n }, [store, path]);\n\n const getSnapshot = useCallback(() => {\n const nextState = store.getFieldState(path);\n\n if (\n lastState.current &&\n lastState.current.value === nextState.value &&\n lastState.current.error === nextState.error &&\n lastState.current.touched === nextState.touched &&\n lastState.current.isHidden === nextState.isHidden &&\n lastState.current.isRequired === nextState.isRequired &&\n lastState.current.isDirty === nextState.isDirty &&\n lastState.current.isValidating === nextState.isValidating\n ) {\n return lastState.current;\n }\n\n const newState = {\n value: nextState.value,\n error: nextState.error,\n touched: nextState.touched,\n isHidden: nextState.isHidden,\n isRequired: nextState.isRequired,\n isDirty: nextState.isDirty,\n isValidating: nextState.isValidating,\n };\n lastState.current = newState;\n return newState;\n }, [store, path]);\n\n const subscribe = useCallback(\n (cb: () => void) => subscribeFieldState(store, path, () => cb()),\n [store, path],\n );\n\n const fieldState = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P>) => store.setField(path, val),\n [store, path],\n );\n\n const setBlur = useCallback(() => store.blurField(path), [store, path]);\n\n return { fieldState, setValue, setBlur, store };\n}\n"],"mappings":"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","names":["createContext","useContext","jsx","BitContext","createContext","BitFormProvider","store","children","resolveBitStoreForHooks","useBitStore","useContext","useCallback","useSyncExternalStore","useMemo","useRef","useState","useBitForm","store","useBitStore","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","getMetaSnapshot","useCallback","state","nextMeta","subscribeMeta","cb","metaState","useSyncExternalStore","controller","useMemo","createFormController","result","error","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","useCallback","useSyncExternalStore","useState","useMemo","useEffect","generateId","useBitArray","path","store","useBitStore","getSnapshot","useCallback","state","value","getDeepValue","subscribeArray","cb","data","useSyncExternalStore","ids","setIds","useState","useEffect","prevIds","diff","methods","useMemo","prev","index","newIds","_","i","from","to","item","indexA","indexB","items","useCallback","useSyncExternalStore","useRef","useBitScope","scopeName","store","useBitStore","lastStatus","useRef","getStatusSnapshot","useCallback","nextStatus","k","v","status","useSyncExternalStore","validate","valid","errors","getErrors","useCallback","useSyncExternalStore","useRef","useState","useBitSteps","scopeNames","store","useBitStore","stepIndex","setStepIndex","useState","scope","lastStatus","useRef","getStatusSnapshot","useCallback","nextStatus","k","v","status","useSyncExternalStore","validate","valid","errors","getErrors","next","scopeFields","s","pathsWithErrors","prev","goTo","targetStep","isFirst","isLast","useCallback","useSyncExternalStore","useRef","useBitWatch","path","store","useBitStore","lastValue","useRef","getSnapshot","useCallback","value","getDeepValue","deepEqual","subscribe","cb","useSyncExternalStore","useCallback","useMemo","useState","useBitPersist","store","useBitStore","isSaving","setIsSaving","useState","isRestoring","setIsRestoring","error","setError","restore","useCallback","err","save","clear","meta","useMemo","useCallback","useSyncExternalStore","useRef","useEffect","useBitFieldBase","path","store","useBitStore","lastState","useRef","useEffect","getSnapshot","useCallback","nextState","newState","subscribe","cb","subscribeFieldState","fieldState","useSyncExternalStore","setValue","val","setBlur"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkNWPA4F3Bcjs = require('./chunk-NWPA4F3B.cjs');var _chunk676WXU4Scjs = require('./chunk-676WXU4S.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var A=_react.createContext.call(void 0, null),at= exports.a =({store:t,children:e})=>_jsxruntime.jsx.call(void 0, A.Provider,{value:_chunk676WXU4Scjs.Y.call(void 0, t),children:e}),b= exports.b =()=>{let t=_react.useContext.call(void 0, A);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function St(){let t=b(),[e,s]=_react.useState.call(void 0, null),[m,o]=_react.useState.call(void 0, null),n=_react.useRef.call(void 0, null),u=_react.useCallback.call(void 0, ()=>{let g=t.getState(),p={isValid:g.isValid,isDirty:g.isDirty,isSubmitting:g.isSubmitting};return n.current&&n.current.isValid===p.isValid&&n.current.isDirty===p.isDirty&&n.current.isSubmitting===p.isSubmitting?n.current:(n.current=p,p)},[t]),c=_react.useCallback.call(void 0, g=>t.subscribeSelector(p=>({isValid:p.isValid,isDirty:p.isDirty,isSubmitting:p.isSubmitting}),()=>g()),[t]),i=_react.useSyncExternalStore.call(void 0, c,u,u),r=_react.useMemo.call(void 0, ()=>_chunkNWPA4F3Bcjs.a.call(void 0, t,{clearSubmissionState:()=>{s(null),o(null)},setSubmissionResult:g=>{o(g)},setSubmissionError:g=>{s(g)}}),[t]),a=_react.useCallback.call(void 0, r.submit,[r]),l=_react.useCallback.call(void 0, r.onSubmit,[r]),d=_react.useCallback.call(void 0, r.reset,[r]),F=_react.useCallback.call(void 0, r.getValues,[r]),v=_react.useCallback.call(void 0, r.getErrors,[r]),S=_react.useCallback.call(void 0, r.getTouched,[r]),f=_react.useCallback.call(void 0, r.getDirtyValues,[r]);return{meta:_react.useMemo.call(void 0, ()=>({...i,submitError:e,lastResponse:m}),[i,e,m]),getValues:F,getErrors:v,getTouched:S,getDirtyValues:f,submit:a,onSubmit:l,reset:d,setField:t.setField.bind(t),blurField:t.blurField.bind(t),replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),validate:t.validate.bind(t)}}var B=()=>Math.random().toString(36).substring(2,9);function Ft(t){let e=b(),s=_react.useCallback.call(void 0, ()=>{let r=e.getState(),a=_chunk676WXU4Scjs.f.call(void 0, r.values,t);return Array.isArray(a)?a:[]},[e,t]),m=_react.useCallback.call(void 0, r=>e.subscribePath(t,()=>r()),[e,t]),o=_react.useSyncExternalStore.call(void 0, m,s,s),[n,u]=_react.useState.call(void 0, ()=>o.map(B));_react.useEffect.call(void 0, ()=>{o.length!==n.length&&u(r=>{if(o.length>r.length){let a=o.length-r.length;return[...r,...Array(a).fill(null).map(B)]}return r.slice(0,o.length)})},[o.length]);let c=_react.useMemo.call(void 0, ()=>({append:r=>{u(a=>[...a,B()]),e.pushItem(t,r)},prepend:r=>{u(a=>[B(),...a]),e.prependItem(t,r)},insert:(r,a)=>{u(l=>{let d=[...l];return d.splice(r,0,B()),d}),e.insertItem(t,r,a)},remove:r=>{u(a=>a.filter((l,d)=>d!==r)),e.removeItem(t,r)},move:(r,a)=>{u(l=>{let d=[...l],[F]=d.splice(r,1);return d.splice(a,0,F),d}),e.moveItem(t,r,a)},swap:(r,a)=>{u(l=>{let d=[...l];return[d[r],d[a]]=[d[a],d[r]],d}),e.swapItems(t,r,a)},replace:r=>{u(r.map(B)),e.setField(t,r)},clear:()=>{u([]),e.setField(t,[])}}),[e,t]);return{fields:_react.useMemo.call(void 0, ()=>o.map((r,a)=>({key:n[a]||`temp-${a}`,value:r,index:a})),[o,n]),length:o.length,...c}}function Tt(t){let e=b(),s=_react.useRef.call(void 0, null),m=_react.useCallback.call(void 0, ()=>{let c=e.getStepStatus(t);return s.current&&s.current.hasErrors===c.hasErrors&&s.current.isDirty===c.isDirty&&Object.keys(s.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([i,r])=>s.current.errors[i]===r)?s.current:(s.current=c,c)},[e,t]),o=_react.useSyncExternalStore.call(void 0, e.subscribe.bind(e),m,m),n=_react.useCallback.call(void 0, async()=>{let c=await e.validate({scope:t}),i=e.getStepErrors(t);return{valid:c,errors:i}},[e,t]),u=_react.useCallback.call(void 0, ()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:n,getErrors:u,isValid:!o.hasErrors,isDirty:o.isDirty}}function Dt(t){let e=b(),[s,m]=_react.useState.call(void 0, 0),o=_nullishCoalesce(t[s], () => ("")),n=_react.useRef.call(void 0, null),u=_react.useCallback.call(void 0, ()=>{let S=e.getStepStatus(o);return n.current&&n.current.hasErrors===S.hasErrors&&n.current.isDirty===S.isDirty&&Object.keys(n.current.errors).length===Object.keys(S.errors).length&&Object.entries(S.errors).every(([f,h])=>n.current.errors[f]===h)?n.current:(n.current=S,S)},[e,o]),c=_react.useSyncExternalStore.call(void 0, e.subscribe.bind(e),u,u),i=_react.useCallback.call(void 0, async()=>{let S=await e.validate({scope:o}),f=e.getStepErrors(o);return{valid:S,errors:f}},[e,o]),r=_react.useCallback.call(void 0, ()=>e.getStepErrors(o),[e,o]),a=_react.useCallback.call(void 0, async()=>{let S=e.getScopeFields(o);if(e.hasValidationsInProgress(S))return!1;let f=await e.validate({scope:o});if(f)m(h=>Math.min(h+1,t.length-1));else{let h=e.getStepErrors(o),g=Object.keys(h);g.length>0&&e.markFieldsTouched(g)}return f},[e,o,t.length]),l=_react.useCallback.call(void 0, ()=>{m(S=>Math.max(S-1,0))},[]),d=_react.useCallback.call(void 0, S=>{m(Math.max(0,Math.min(S-1,t.length-1)))},[t.length]),F=s===0,v=s>=t.length-1;return{step:s+1,stepIndex:s,scope:o,next:a,prev:l,goTo:d,isFirst:F,isLast:v,status:c,errors:c.errors,isValid:!c.hasErrors,isDirty:c.isDirty,validate:i,getErrors:r}}function Ht(t){let e=b(),s=_react.useRef.call(void 0, null),m=_react.useCallback.call(void 0, ()=>{let n=_chunk676WXU4Scjs.f.call(void 0, e.getState().values,t);return s.current!==null&&_chunk676WXU4Scjs.e.call(void 0, s.current,n)?s.current:(s.current=n,n)},[e,t]),o=_react.useCallback.call(void 0, n=>e.subscribe(n),[e]);return _react.useSyncExternalStore.call(void 0, o,m,m)}function Lt(){let t=b(),[e,s]=_react.useState.call(void 0, !1),[m,o]=_react.useState.call(void 0, !1),[n,u]=_react.useState.call(void 0, null),c=_react.useCallback.call(void 0, async()=>{o(!0),u(null);try{return await t.restorePersisted()}catch(l){return u(l instanceof Error?l:new Error(String(l))),!1}finally{o(!1)}},[t]),i=_react.useCallback.call(void 0, async()=>{s(!0),u(null);try{await t.forceSave()}catch(l){u(l instanceof Error?l:new Error(String(l)))}finally{s(!1)}},[t]),r=_react.useCallback.call(void 0, async()=>{u(null);try{await t.clearPersisted()}catch(l){u(l instanceof Error?l:new Error(String(l)))}},[t]),a=_react.useMemo.call(void 0, ()=>({isSaving:e,isRestoring:m,error:n}),[e,m,n]);return{restore:c,save:i,clear:r,meta:a}}function Gt(t){let e=b(),s=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>()=>{e.unregisterField&&e.unregisterField(t)},[e,t]);let m=_react.useCallback.call(void 0, ()=>{let i=e.getFieldState(t);if(s.current&&s.current.value===i.value&&s.current.error===i.error&&s.current.touched===i.touched&&s.current.isHidden===i.isHidden&&s.current.isRequired===i.isRequired&&s.current.isDirty===i.isDirty&&s.current.isValidating===i.isValidating)return s.current;let r={value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating};return s.current=r,r},[e,t]),o=_react.useCallback.call(void 0, i=>_chunkNWPA4F3Bcjs.b.call(void 0, e,t,()=>i()),[e,t]),n=_react.useSyncExternalStore.call(void 0, o,m,m),u=_react.useCallback.call(void 0, i=>e.setField(t,i),[e,t]),c=_react.useCallback.call(void 0, ()=>e.blurField(t),[e,t]);return{fieldState:n,setValue:u,setBlur:c,store:e}}exports.a = at; exports.b = b; exports.c = St; exports.d = Gt; exports.e = Ft; exports.f = Tt; exports.g = Dt; exports.h = Ht; exports.i = Lt;
2
+ //# sourceMappingURL=chunk-VSWCUQAF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-VSWCUQAF.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","jsx","resolveBitStoreForHooks","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","getMetaSnapshot","useCallback","state","nextMeta","subscribeMeta","cb","metaState","useSyncExternalStore","controller","useMemo","createFormController","result","error","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","generateId","useBitArray","path","getSnapshot","value","getDeepValue","subscribeArray","data","ids","setIds","useEffect","prevIds","diff","methods","prev","index","newIds","_","i","from","to","item","indexA","indexB","items"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-VSWCUQAF.cjs","sourcesContent":[null,"import React, { createContext, useContext } from \"react\";\nimport type { BitStoreApi } from \"../core\";\nimport type { BitStoreHooksApi } from \"../core/store/public-types\";\nimport { resolveBitStoreForHooks } from \"../core/store/create-store\";\n\nconst BitContext = createContext<BitStoreHooksApi<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitStoreApi<any>;\n children: React.ReactNode;\n}) => (\n <BitContext.Provider value={resolveBitStoreForHooks(store)}>\n {children}\n </BitContext.Provider>\n);\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitStoreHooksApi<T>;\n};\n","import {\n useCallback,\n useSyncExternalStore,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<{\n isValid: boolean;\n isDirty: boolean;\n isSubmitting: boolean;\n } | null>(null);\n\n const getMetaSnapshot = useCallback(() => {\n const state = store.getState();\n const nextMeta = {\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n };\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribeMeta = useCallback(\n (cb: () => void) =>\n store.subscribeSelector(\n (state) => ({\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n }),\n () => cb(),\n ),\n [store],\n );\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const controller = useMemo(\n () =>\n createFormController(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n validate: store.validate.bind(store),\n };\n}\n","import {\n useCallback,\n useSyncExternalStore,\n useState,\n useMemo,\n useEffect,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = useCallback(() => {\n const state = store.getState();\n const value = getDeepValue(state.values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(value) ? (value as Item[]) : [];\n }, [store, path]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const [ids, setIds] = useState<string[]>(() =>\n (data as Item[]).map(generateId),\n );\n\n useEffect(() => {\n if (data.length !== ids.length) {\n setIds((prevIds) => {\n if (data.length > prevIds.length) {\n const diff = data.length - prevIds.length;\n return [...prevIds, ...Array(diff).fill(null).map(generateId)];\n }\n return prevIds.slice(0, data.length);\n });\n }\n }, [data.length]);\n\n const methods = useMemo(\n () => ({\n append: (value: Item) => {\n setIds((prev) => [...prev, generateId()]);\n store.pushItem(path, value);\n },\n prepend: (value: Item) => {\n setIds((prev) => [generateId(), ...prev]);\n store.prependItem(path, value);\n },\n insert: (index: number, value: Item) => {\n setIds((prev) => {\n const newIds = [...prev];\n newIds.splice(index, 0, generateId());\n return newIds;\n });\n store.insertItem(path, index, value);\n },\n remove: (index: number) => {\n setIds((prev) => prev.filter((_, i) => i !== index));\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n const [item] = newIds.splice(from, 1);\n newIds.splice(to, 0, item);\n return newIds;\n });\n store.moveItem(path, from, to);\n },\n swap: (indexA: number, indexB: number) => {\n setIds((prev) => {\n const newIds = [...prev];\n [newIds[indexA], newIds[indexB]] = [newIds[indexB], newIds[indexA]];\n return newIds;\n });\n store.swapItems(path, indexA, indexB);\n },\n replace: (items: Item[]) => {\n setIds(items.map(generateId));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n setIds([]);\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n }),\n [store, path],\n );\n\n const fields = useMemo(\n () =>\n (data as Item[]).map((item: Item, index: number) => ({\n key: ids[index] || `temp-${index}`,\n value: item,\n index,\n })),\n [data, ids],\n );\n\n return {\n fields,\n length: data.length,\n ...methods,\n };\n}\n"]}