@lehnihon/bit-form 2.2.4 → 2.2.5

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 (121) 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 +3 -2
  4. package/dist/angular/index.d.ts +3 -2
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/{bus-BQI1FIOs.d.ts → bus-B4zZmB9C.d.ts} +4 -1
  8. package/dist/{bus-a_GA51Qw.d.cts → bus-BeAeZwWu.d.cts} +4 -1
  9. package/dist/chunk-2FDEJYA5.js +2 -0
  10. package/dist/chunk-2FDEJYA5.js.map +1 -0
  11. package/dist/chunk-3CARTBEN.cjs +2 -0
  12. package/dist/chunk-3CARTBEN.cjs.map +1 -0
  13. package/dist/chunk-3NUJVIAM.js +2 -0
  14. package/dist/chunk-3NUJVIAM.js.map +1 -0
  15. package/dist/chunk-64KSP4TP.js +2 -0
  16. package/dist/chunk-64KSP4TP.js.map +1 -0
  17. package/dist/{chunk-YEXRRTI3.cjs → chunk-77PK7U73.cjs} +2 -2
  18. package/dist/{chunk-YEXRRTI3.cjs.map → chunk-77PK7U73.cjs.map} +1 -1
  19. package/dist/chunk-CTURHI75.cjs +2 -0
  20. package/dist/{chunk-CFFLDMLG.cjs.map → chunk-CTURHI75.cjs.map} +1 -1
  21. package/dist/{chunk-MQX4YS6D.cjs → chunk-DD6XWUMR.cjs} +2 -2
  22. package/dist/{chunk-MQX4YS6D.cjs.map → chunk-DD6XWUMR.cjs.map} +1 -1
  23. package/dist/{chunk-BMHK77NL.js → chunk-FGJB4DHQ.js} +2 -2
  24. package/dist/{chunk-4XLU5ZCX.js → chunk-GDRNKTHO.js} +2 -2
  25. package/dist/chunk-GUU6EXFN.js +2 -0
  26. package/dist/chunk-GUU6EXFN.js.map +1 -0
  27. package/dist/chunk-JIWR4KSZ.cjs +2 -0
  28. package/dist/chunk-JIWR4KSZ.cjs.map +1 -0
  29. package/dist/{chunk-MBTLLIBM.js → chunk-M2XR4C7T.js} +2 -2
  30. package/dist/chunk-OZKLQRO6.cjs +2 -0
  31. package/dist/chunk-OZKLQRO6.cjs.map +1 -0
  32. package/dist/chunk-PFPGASVZ.cjs +2 -0
  33. package/dist/chunk-PFPGASVZ.cjs.map +1 -0
  34. package/dist/chunk-QWH2NBVB.js +2 -0
  35. package/dist/chunk-QWH2NBVB.js.map +1 -0
  36. package/dist/chunk-UMKOKAPD.js +2 -0
  37. package/dist/chunk-UMKOKAPD.js.map +1 -0
  38. package/dist/{chunk-KYM7JG2G.cjs → chunk-UT63HKR6.cjs} +2 -2
  39. package/dist/{chunk-KYM7JG2G.cjs.map → chunk-UT63HKR6.cjs.map} +1 -1
  40. package/dist/chunk-VQ7MK5VB.cjs +2 -0
  41. package/dist/chunk-VQ7MK5VB.cjs.map +1 -0
  42. package/dist/devtools/bridge.cjs +1 -1
  43. package/dist/devtools/bridge.cjs.map +1 -1
  44. package/dist/devtools/bridge.js +1 -1
  45. package/dist/devtools/bridge.js.map +1 -1
  46. package/dist/devtools/index.cjs +2 -2
  47. package/dist/devtools/index.cjs.map +1 -1
  48. package/dist/devtools/index.js +1 -1
  49. package/dist/devtools/index.js.map +1 -1
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.d.cts +23 -49
  53. package/dist/index.d.ts +23 -49
  54. package/dist/index.js +1 -1
  55. package/dist/mask.cjs +1 -1
  56. package/dist/mask.cjs.map +1 -1
  57. package/dist/mask.js +1 -1
  58. package/dist/mask.js.map +1 -1
  59. package/dist/{public-types-D14VY_4o.d.cts → public-types-BQXaxmAE.d.cts} +7 -2
  60. package/dist/{public-types-D3WIiMGu.d.ts → public-types-CVgFf_qY.d.ts} +7 -2
  61. package/dist/react/index.cjs +1 -1
  62. package/dist/react/index.cjs.map +1 -1
  63. package/dist/react/index.d.cts +5 -5
  64. package/dist/react/index.d.ts +5 -5
  65. package/dist/react/index.js +1 -1
  66. package/dist/react/index.js.map +1 -1
  67. package/dist/react-native/index.cjs +1 -1
  68. package/dist/react-native/index.d.cts +4 -4
  69. package/dist/react-native/index.d.ts +4 -4
  70. package/dist/react-native/index.js +1 -1
  71. package/dist/resolvers/index.cjs +1 -1
  72. package/dist/resolvers/index.d.cts +1 -1
  73. package/dist/resolvers/index.d.ts +1 -1
  74. package/dist/resolvers/index.js +1 -1
  75. package/dist/resolvers/joi.cjs +1 -1
  76. package/dist/resolvers/joi.d.cts +1 -1
  77. package/dist/resolvers/joi.d.ts +1 -1
  78. package/dist/resolvers/joi.js +1 -1
  79. package/dist/resolvers/yup.cjs +1 -1
  80. package/dist/resolvers/yup.d.cts +1 -1
  81. package/dist/resolvers/yup.d.ts +1 -1
  82. package/dist/resolvers/yup.js +1 -1
  83. package/dist/resolvers/zod.cjs +1 -1
  84. package/dist/resolvers/zod.d.cts +1 -1
  85. package/dist/resolvers/zod.d.ts +1 -1
  86. package/dist/resolvers/zod.js +1 -1
  87. package/dist/{use-bit-persist-Dt4zIl2u.d.cts → use-bit-persist-CIVN-oIi.d.cts} +3 -2
  88. package/dist/{use-bit-persist-CNtQ3Gaq.d.ts → use-bit-persist-iPWLbD8l.d.ts} +3 -2
  89. package/dist/vue/index.cjs +1 -1
  90. package/dist/vue/index.cjs.map +1 -1
  91. package/dist/vue/index.d.cts +3 -2
  92. package/dist/vue/index.d.ts +3 -2
  93. package/dist/vue/index.js +1 -1
  94. package/dist/vue/index.js.map +1 -1
  95. package/package.json +20 -1
  96. package/dist/chunk-66DIO2SH.js +0 -2
  97. package/dist/chunk-66DIO2SH.js.map +0 -1
  98. package/dist/chunk-7LMNIQTT.js +0 -2
  99. package/dist/chunk-7LMNIQTT.js.map +0 -1
  100. package/dist/chunk-AE4G32HS.js +0 -2
  101. package/dist/chunk-AE4G32HS.js.map +0 -1
  102. package/dist/chunk-CFFLDMLG.cjs +0 -2
  103. package/dist/chunk-EI5L5L3R.cjs +0 -2
  104. package/dist/chunk-EI5L5L3R.cjs.map +0 -1
  105. package/dist/chunk-IV32WXCF.cjs +0 -2
  106. package/dist/chunk-IV32WXCF.cjs.map +0 -1
  107. package/dist/chunk-K5NZDYAT.js +0 -2
  108. package/dist/chunk-K5NZDYAT.js.map +0 -1
  109. package/dist/chunk-LOYB7TTM.cjs +0 -2
  110. package/dist/chunk-LOYB7TTM.cjs.map +0 -1
  111. package/dist/chunk-O5UPA33R.js +0 -2
  112. package/dist/chunk-O5UPA33R.js.map +0 -1
  113. package/dist/chunk-RFFMBY7M.cjs +0 -2
  114. package/dist/chunk-RFFMBY7M.cjs.map +0 -1
  115. package/dist/chunk-YGAD4ZZW.js +0 -2
  116. package/dist/chunk-YGAD4ZZW.js.map +0 -1
  117. package/dist/chunk-ZO3GXKF3.cjs +0 -2
  118. package/dist/chunk-ZO3GXKF3.cjs.map +0 -1
  119. /package/dist/{chunk-BMHK77NL.js.map → chunk-FGJB4DHQ.js.map} +0 -0
  120. /package/dist/{chunk-4XLU5ZCX.js.map → chunk-GDRNKTHO.js.map} +0 -0
  121. /package/dist/{chunk-MBTLLIBM.js.map → chunk-M2XR4C7T.js.map} +0 -0
package/dist/mask.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEI5L5L3Rcjs = require('./chunk-EI5L5L3R.cjs');exports.bitMasks = _chunkEI5L5L3Rcjs.O; exports.createCreditCardMask = _chunkEI5L5L3Rcjs.e; exports.createCurrencyMask = _chunkEI5L5L3Rcjs.d; exports.createDateMask = _chunkEI5L5L3Rcjs.f; exports.createPatternMask = _chunkEI5L5L3Rcjs.c; exports.maskBRL = _chunkEI5L5L3Rcjs.g; exports.maskCEP = _chunkEI5L5L3Rcjs.s; exports.maskCNH = _chunkEI5L5L3Rcjs.v; exports.maskCNPJ = _chunkEI5L5L3Rcjs.p; exports.maskCPF = _chunkEI5L5L3Rcjs.o; exports.maskCPFCNPJ = _chunkEI5L5L3Rcjs.x; exports.maskCVV = _chunkEI5L5L3Rcjs.E; exports.maskColorHex = _chunkEI5L5L3Rcjs.H; exports.maskCreditCard = _chunkEI5L5L3Rcjs.D; exports.maskDate = _chunkEI5L5L3Rcjs.t; exports.maskDateISO = _chunkEI5L5L3Rcjs.F; exports.maskDateUS = _chunkEI5L5L3Rcjs.B; exports.maskDecimal = _chunkEI5L5L3Rcjs.m; exports.maskEUR = _chunkEI5L5L3Rcjs.i; exports.maskGBP = _chunkEI5L5L3Rcjs.j; exports.maskIBAN = _chunkEI5L5L3Rcjs.K; exports.maskIPv4 = _chunkEI5L5L3Rcjs.I; exports.maskIPv6 = _chunkEI5L5L3Rcjs.J; exports.maskInteger = _chunkEI5L5L3Rcjs.n; exports.maskJPY = _chunkEI5L5L3Rcjs.k; exports.maskLandline = _chunkEI5L5L3Rcjs.r; exports.maskMacAddress = _chunkEI5L5L3Rcjs.G; exports.maskPercent = _chunkEI5L5L3Rcjs.l; exports.maskPhone = _chunkEI5L5L3Rcjs.q; exports.maskPlate = _chunkEI5L5L3Rcjs.y; exports.maskRG = _chunkEI5L5L3Rcjs.w; exports.maskSSN = _chunkEI5L5L3Rcjs.C; exports.maskTime = _chunkEI5L5L3Rcjs.u; exports.maskUSD = _chunkEI5L5L3Rcjs.h; exports.maskUSPhone = _chunkEI5L5L3Rcjs.z; exports.maskZipCode = _chunkEI5L5L3Rcjs.A; exports.unmask = _chunkEI5L5L3Rcjs.a; exports.unmaskCurrency = _chunkEI5L5L3Rcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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; }require('./chunk-PFPGASVZ.cjs');var ee={"#":/\d/,A:/[a-zA-Z]/,X:/[a-zA-Z0-9]/,H:/[0-9a-fA-F]/,U:/[A-Z]/,L:/[a-z]/,"*":/./},x= exports.unmask =(s,r)=>{if(s==null||s==="")return"";let e=String(s),m=e.startsWith("-"),a=r?r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"",i=new RegExp(`[^a-zA-Z0-9${a}]`,"g"),p=e.replace(i,"");return m&&p&&!p.startsWith("-")?`-${p}`:p},te= exports.unmaskCurrency =(s,r=2)=>{if(typeof s=="number")return s;if(!s)return 0;let e=String(s),m=e.includes("-"),a=e.replace(/\D/g,"");if(!a)return 0;let i=parseInt(a,10)/Math.pow(10,r);return m?-i:i},n= exports.createPatternMask =(s,r)=>{let e=o=>o.split("").filter(t=>ee[t]).length,a=[...Array.isArray(s)?s:[s]].sort((o,t)=>e(o)-e(t)),i=o=>{let t=a[a.length-1];for(let c of a)if(o<=e(c)){t=c;break}return t},p=o=>{let t=x(o,_optionalChain([r, 'optionalAccess', _2 => _2.allowChars]));if(!t&&!_optionalChain([r, 'optionalAccess', _3 => _3.guide]))return"";let c=i(t.length),k=_optionalChain([r, 'optionalAccess', _4 => _4.guide])||!1,f=_optionalChain([r, 'optionalAccess', _5 => _5.placeholderChar])||"_",d="",P=0;for(let g=0;g<c.length;g++){let C=c[g],h=ee[C];if(P<t.length){let u=t[P];if(h)if(C==="U"&&(u=u.toUpperCase()),C==="L"&&(u=u.toLowerCase()),h.test(u))d+=u,P++;else if(k)d+=f;else break;else d+=C,u===C&&P++}else if(k)d+=h?f:C;else break}return d};return{format:p,parse:o=>{if(_optionalChain([r, 'optionalAccess', _6 => _6.customParse]))return r.customParse(o);let t=p(o);if(_optionalChain([r, 'optionalAccess', _7 => _7.saveRaw])){if(_optionalChain([r, 'optionalAccess', _8 => _8.guide])){let k=(r.placeholderChar||"_").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),f=new RegExp(k,"g");return t.replace(f,"")}return t}return x(t,_optionalChain([r, 'optionalAccess', _9 => _9.allowChars]))}}},l= exports.createCurrencyMask =({prefix:s="",suffix:r="",thousand:e,decimal:m,precision:a=2,allowNegative:i=!0,saveRaw:p=!1})=>{let o=t=>{if(t==null||t==="")return"";let c="";if(typeof t=="number"?c=Math.abs(t).toFixed(a).replace(/\D/g,""):c=String(t).replace(/\D/g,""),!c&&String(t).includes("-")&&i)return"-";if(!c)return"";c=c.padStart(a+1,"0");let k=a>0?c.slice(0,-a).replace(/^0+(?=\d)/,"")||"0":c.replace(/^0+(?=\d)/,"")||"0",f=a>0?c.slice(-a):"",d=k.replace(/\B(?=(\d{3})+(?!\d))/g,e),g=(typeof t=="number"?t<0:String(t).includes("-"))&&i?"-":"";return a===0?`${g}${s}${d}${r}`:`${g}${s}${d}${m}${f}${r}`};return{format:o,parse:t=>{let c=te(t,a),k=i?c:Math.abs(c);return p?o(k):k}}},D= exports.createCreditCardMask =s=>{let r=e=>/^3[47]/.test(e)?"#### ###### #####":/^3(?:0[0-5]|[68])/.test(e)?"#### ###### ####":"#### #### #### ####";return{format:e=>{let m=x(e,_optionalChain([s, 'optionalAccess', _10 => _10.allowChars])),a=r(m);return n(a,s).format(e)},parse:e=>{let m=x(e,_optionalChain([s, 'optionalAccess', _11 => _11.allowChars])),a=r(m);return n(a,s).parse(e)}}},H= exports.createDateMask =s=>{let e=(_optionalChain([s, 'optionalAccess', _12 => _12.format])||"DD/MM/YYYY")==="YYYY-MM-DD",m=n(e?"####-##-##":"##/##/####",s);return{format:a=>{let i=x(a);if(!i)return"";let p="",o="",t="";if(e?(t=i.substring(0,4),o=i.substring(4,6),p=i.substring(6,8)):(p=i.substring(0,2),o=i.substring(2,4),t=i.substring(4,8)),p.length===2){let k=parseInt(p,10);k>31&&(p="31"),k===0&&(p="01")}if(o.length===2){let k=parseInt(o,10);k>12&&(o="12"),k===0&&(o="01")}let c=e?`${t}${o}${p}`:`${p}${o}${t}`;return m.format(c)},parse:a=>m.parse(a)}};var X=l({prefix:"R$ ",thousand:".",decimal:",",precision:2}),$= exports.maskUSD =l({prefix:"$",thousand:",",decimal:".",precision:2}),y= exports.maskEUR =l({suffix:" \u20AC",thousand:".",decimal:",",precision:2}),S= exports.maskGBP =l({prefix:"\xA3",thousand:",",decimal:".",precision:2}),B= exports.maskJPY =l({prefix:"\xA5",thousand:",",decimal:".",precision:0}),b= exports.maskPercent =l({suffix:"%",thousand:".",decimal:",",precision:1}),I= exports.maskDecimal =l({thousand:".",decimal:",",precision:2}),M= exports.maskInteger =l({thousand:".",decimal:",",precision:0}),N= exports.maskCPF =n("###.###.###-##"),U= exports.maskCNPJ =n("##.###.###/####-##"),R= exports.maskPhone =n(["(##) ####-####","(##) #####-####"]),Y= exports.maskLandline =n("(##) ####-####"),A= exports.maskCEP =n("#####-###"),V= exports.maskDate =H({format:"DD/MM/YYYY",guide:!0,customParse:s=>{let r=s.replace(/_/g,""),e=r.split("/");return e.length===3&&e[2].length===4?`${e[2]}-${e[1]}-${e[0]}`:r.replace(/\D/g,"")}}),w= exports.maskTime =n("##:##"),L= exports.maskCNH =n("###########"),Z= exports.maskRG =n("##.###.###-X"),E= exports.maskCPFCNPJ =n(["###.###.###-##","##.###.###/####-##"]),F= exports.maskPlate ={format(s){let r=String(_nullishCoalesce(s, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7);if(r.length===0)return"";let e=r.slice(0,3),m=r.slice(3);return m.length===0?e:m.length>=2&&/[A-Z]/.test(m[1])?`${e}${m}`:`${e}-${m}`},parse(s){return String(_nullishCoalesce(s, () => (""))).replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7)}},J= exports.maskUSPhone =n("(###) ###-####"),O= exports.maskZipCode =n("#####-####"),z= exports.maskDateUS =n("##/##/####"),G= exports.maskSSN =n("###-##-####"),T= exports.maskCreditCard =D(),j= exports.maskCVV =n("####"),_= exports.maskDateISO =H({format:"YYYY-MM-DD",saveRaw:!0,guide:!0}),W= exports.maskMacAddress =n("HH:HH:HH:HH:HH:HH"),q= exports.maskColorHex =n("#HHHHHH"),K= exports.maskIPv4 =n("###.###.###.###"),Q= exports.maskIPv6 =n("HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH"),v= exports.maskIBAN =n("UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX",{allowChars:" "});var re={brl:X,usd:$,eur:y,gbp:S,jpy:B,percent:b,decimal:I,int:M,integer:M,cpf:N,cnpj:U,cpfCnpj:E,rg:Z,cep:A,cnh:L,plate:F,phone:R,landline:Y,date:V,time:w,usPhone:J,zipCode:O,dateUS:z,ssn:G,cc:T,cvv:j,dateISO:_,ip:K,ipv6:Q,mac:W,color:q,iban:v};exports.bitMasks = re; exports.createCreditCardMask = D; exports.createCurrencyMask = l; exports.createDateMask = H; exports.createPatternMask = n; exports.maskBRL = X; exports.maskCEP = A; exports.maskCNH = L; exports.maskCNPJ = U; exports.maskCPF = N; exports.maskCPFCNPJ = E; exports.maskCVV = j; exports.maskColorHex = q; exports.maskCreditCard = T; exports.maskDate = V; exports.maskDateISO = _; exports.maskDateUS = z; exports.maskDecimal = I; exports.maskEUR = y; exports.maskGBP = S; exports.maskIBAN = v; exports.maskIPv4 = K; exports.maskIPv6 = Q; exports.maskInteger = M; exports.maskJPY = B; exports.maskLandline = Y; exports.maskMacAddress = W; exports.maskPercent = b; exports.maskPhone = R; exports.maskPlate = F; exports.maskRG = Z; exports.maskSSN = G; exports.maskTime = w; exports.maskUSD = $; exports.maskUSPhone = J; exports.maskZipCode = O; exports.unmask = x; exports.unmaskCurrency = te;
2
2
  //# sourceMappingURL=mask.cjs.map
package/dist/mask.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/mask.cjs"],"names":[],"mappings":"AAAA,iIAA4R,yjDAAsmB","file":"/home/runner/work/bit-form/bit-form/dist/mask.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/mask.cjs","../src/core/mask/creators.ts"],"names":["tokens","unmask","value","allowChars","stringValue","isNegative","escapedChars","regex","clean"],"mappings":"AAAA,itBAA4B,ICStBA,EAAAA,CAAmB,CACvB,GAAA,CAAK,IAAA,CACL,CAAA,CAAG,UAAA,CACH,CAAA,CAAG,aAAA,CACH,CAAA,CAAG,aAAA,CACH,CAAA,CAAG,OAAA,CACH,CAAA,CAAG,OAAA,CACH,GAAA,CAAK,GACP,CAAA,CAEaC,CAAAA,kBAAS,CACpBC,CAAAA,CACAC,CAAAA,CAAAA,EACW,CACX,EAAA,CAAID,CAAAA,EAAU,IAAA,EAA+BA,CAAAA,GAAU,EAAA,CAAI,MAAO,EAAA,CAClE,IAAME,CAAAA,CAAc,MAAA,CAAOF,CAAK,CAAA,CAC1BG,CAAAA,CAAaD,CAAAA,CAAY,UAAA,CAAW,GAAG,CAAA,CAEvCE,CAAAA,CAAeH,CAAAA,CACjBA,CAAAA,CAAW,OAAA,CAAQ,qBAAA,CAAuB,MAAM,CAAA,CAChD,EAAA,CACEI,CAAAA,CAAQ,IAAI,MAAA,CAAO,CAAA,WAAA,EAAcD,CAAY,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAErDE,CAAAA,CAAQJ,CAAAA,CAAY,OAAA,CAAQG,CAAAA,CAAO,EAAE,CAAA,CAC3C,OAAOF,CAAAA,EAAcG,CAAAA,EAAS,CAACA,CAAAA,CAAM,UAAA,CAAW,GAAG,CAAA,CAAI,CAAA,CAAA,EAAIA,CAAK,CAAA,CAAA","file":"/home/runner/work/bit-form/bit-form/dist/mask.cjs","sourcesContent":[null,"import {\n BitMask,\n CurrencyMaskConfig,\n DateMaskConfig,\n PatternMaskOptions,\n} from \"./types\";\n\ntype TokenMap = Record<string, RegExp>;\n\nconst tokens: TokenMap = {\n \"#\": /\\d/,\n A: /[a-zA-Z]/,\n X: /[a-zA-Z0-9]/,\n H: /[0-9a-fA-F]/,\n U: /[A-Z]/,\n L: /[a-z]/,\n \"*\": /./,\n};\n\nexport const unmask = (\n value: string | number | null | undefined,\n allowChars?: string,\n): string => {\n if (value === null || value === undefined || value === \"\") return \"\";\n const stringValue = String(value);\n const isNegative = stringValue.startsWith(\"-\");\n\n const escapedChars = allowChars\n ? allowChars.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n : \"\";\n const regex = new RegExp(`[^a-zA-Z0-9${escapedChars}]`, \"g\");\n\n const clean = stringValue.replace(regex, \"\");\n return isNegative && clean && !clean.startsWith(\"-\") ? `-${clean}` : clean;\n};\n\nexport const unmaskCurrency = (value: any, precision = 2): number => {\n if (typeof value === \"number\") return value;\n if (!value) return 0;\n\n const stringValue = String(value);\n const isNegative = stringValue.includes(\"-\");\n const digits = stringValue.replace(/\\D/g, \"\");\n\n if (!digits) return 0;\n\n const numberValue = parseInt(digits, 10) / Math.pow(10, precision);\n return isNegative ? -numberValue : numberValue;\n};\n\nexport const createPatternMask = (\n pattern: string | string[],\n options?: PatternMaskOptions,\n): BitMask => {\n const getRawLength = (p: string) =>\n p.split(\"\").filter((c) => tokens[c]).length;\n\n const patterns = Array.isArray(pattern) ? pattern : [pattern];\n const sortedPatterns = [...patterns].sort(\n (a, b) => getRawLength(a) - getRawLength(b),\n );\n\n const getActivePattern = (rawValueLength: number) => {\n let activePattern = sortedPatterns[sortedPatterns.length - 1];\n for (const candidate of sortedPatterns) {\n if (rawValueLength <= getRawLength(candidate)) {\n activePattern = candidate;\n break;\n }\n }\n return activePattern;\n };\n\n const formatValue = (value: string | number | null | undefined): string => {\n const stringVal = unmask(value, options?.allowChars);\n\n if (!stringVal && !options?.guide) {\n return \"\";\n }\n\n const activePattern = getActivePattern(stringVal.length);\n const showGuide = options?.guide || false;\n const placeholder = options?.placeholderChar || \"_\";\n\n let masked = \"\";\n let valueIndex = 0;\n\n for (let i = 0; i < activePattern.length; i++) {\n const patternChar = activePattern[i];\n const token = tokens[patternChar];\n\n if (valueIndex < stringVal.length) {\n let dataChar = stringVal[valueIndex];\n\n if (token) {\n if (patternChar === \"U\") dataChar = dataChar.toUpperCase();\n if (patternChar === \"L\") dataChar = dataChar.toLowerCase();\n\n if (token.test(dataChar)) {\n masked += dataChar;\n valueIndex++;\n } else if (showGuide) {\n masked += placeholder;\n } else {\n break;\n }\n } else {\n masked += patternChar;\n if (dataChar === patternChar) valueIndex++;\n }\n } else if (showGuide) {\n masked += token ? placeholder : patternChar;\n } else {\n break;\n }\n }\n\n return masked;\n };\n\n return {\n format: formatValue,\n parse: (value: string) => {\n if (options?.customParse) return options.customParse(value);\n\n const formatted = formatValue(value);\n\n if (options?.saveRaw) {\n if (options?.guide) {\n const placeholder = options.placeholderChar || \"_\";\n const escapedPlaceholder = placeholder.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n \"\\\\$&\",\n );\n const placeholderRegex = new RegExp(escapedPlaceholder, \"g\");\n\n return formatted.replace(placeholderRegex, \"\");\n }\n\n return formatted;\n }\n\n return unmask(formatted, options?.allowChars);\n },\n };\n};\n\nexport const createCurrencyMask = ({\n prefix = \"\",\n suffix = \"\",\n thousand,\n decimal,\n precision = 2,\n allowNegative = true,\n saveRaw = false,\n}: CurrencyMaskConfig): BitMask => {\n const formatFn = (value: any) => {\n if (value === undefined || value === null || value === \"\") return \"\";\n\n let stringValue = \"\";\n\n if (typeof value === \"number\") {\n stringValue = Math.abs(value).toFixed(precision).replace(/\\D/g, \"\");\n } else {\n stringValue = String(value).replace(/\\D/g, \"\");\n }\n\n if (!stringValue && String(value).includes(\"-\") && allowNegative)\n return \"-\";\n if (!stringValue) return \"\";\n\n stringValue = stringValue.padStart(precision + 1, \"0\");\n\n const integerPart =\n precision > 0\n ? stringValue.slice(0, -precision).replace(/^0+(?=\\d)/, \"\") || \"0\"\n : stringValue.replace(/^0+(?=\\d)/, \"\") || \"0\";\n const decimalPart = precision > 0 ? stringValue.slice(-precision) : \"\";\n\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n thousand,\n );\n\n const isNegative =\n typeof value === \"number\" ? value < 0 : String(value).includes(\"-\");\n const sign = isNegative && allowNegative ? \"-\" : \"\";\n\n if (precision === 0) {\n return `${sign}${prefix}${formattedInteger}${suffix}`;\n }\n\n return `${sign}${prefix}${formattedInteger}${decimal}${decimalPart}${suffix}`;\n };\n\n return {\n format: formatFn,\n parse: (value: string) => {\n const numericValue = unmaskCurrency(value, precision);\n const finalNumber = !allowNegative\n ? Math.abs(numericValue)\n : numericValue;\n if (saveRaw) return formatFn(finalNumber);\n return finalNumber;\n },\n };\n};\n\nexport const createCreditCardMask = (options?: PatternMaskOptions): BitMask => {\n // Função auxiliar para descobrir o padrão dinamicamente\n const getCardPattern = (rawValue: string) => {\n // Amex (American Express) começa com 34 ou 37 -> 15 dígitos\n if (/^3[47]/.test(rawValue)) {\n return \"#### ###### #####\";\n }\n // Diners Club começa com 300-305, 36 ou 38 -> 14 dígitos\n if (/^3(?:0[0-5]|[68])/.test(rawValue)) {\n return \"#### ###### ####\";\n }\n // Default: Visa, Mastercard, Discover, Elo, etc -> 16 dígitos\n return \"#### #### #### ####\";\n };\n\n return {\n format: (value: any) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n const mask = createPatternMask(pattern, options);\n return mask.format(value);\n },\n parse: (value: string) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n\n const mask = createPatternMask(pattern, options);\n return mask.parse(value);\n },\n };\n};\n\nexport const createDateMask = (config?: DateMaskConfig): BitMask => {\n const formatType = config?.format || \"DD/MM/YYYY\";\n const isISO = formatType === \"YYYY-MM-DD\";\n\n // Criamos a máscara base consoante o formato escolhido\n const baseMask = createPatternMask(\n isISO ? \"####-##-##\" : \"##/##/####\",\n config,\n );\n\n return {\n format: (value: any) => {\n let stringVal = unmask(value);\n if (!stringVal) return \"\";\n\n let day = \"\";\n let month = \"\";\n let year = \"\";\n\n // Separamos os componentes consoante o que o utilizador já digitou\n if (isISO) {\n year = stringVal.substring(0, 4);\n month = stringVal.substring(4, 6);\n day = stringVal.substring(6, 8);\n } else {\n day = stringVal.substring(0, 2);\n month = stringVal.substring(2, 4);\n year = stringVal.substring(4, 8);\n }\n\n // Validação do Dia (01 a 31)\n if (day.length === 2) {\n const d = parseInt(day, 10);\n if (d > 31) day = \"31\";\n if (d === 0) day = \"01\";\n }\n\n // Validação do Mês (01 a 12)\n if (month.length === 2) {\n const m = parseInt(month, 10);\n if (m > 12) month = \"12\";\n if (m === 0) month = \"01\";\n }\n\n // Reconstruímos a string limpa e passamos para o pattern normal\n const safeString = isISO\n ? `${year}${month}${day}`\n : `${day}${month}${year}`;\n\n return baseMask.format(safeString);\n },\n parse: (value: string) => {\n // Usamos a funcionalidade completa da máscara base (incluindo o saveRaw e o unmasking)\n return baseMask.parse(value);\n },\n };\n};\n"]}
package/dist/mask.js CHANGED
@@ -1,2 +1,2 @@
1
- import{A as U,B as g,C as J,D as R,E as h,F as v,G as A,H as E,I as F,J as G,K as H,O as L,a,b as s,c as k,d as e,e as m,f as t,g as r,h as C,i as n,j as o,k as P,l as i,m as M,n as c,o as d,p,q as B,r as D,s as N,t as f,u,v as I,w as S,x as l,y as x,z as y}from"./chunk-7LMNIQTT.js";export{L as bitMasks,m as createCreditCardMask,e as createCurrencyMask,t as createDateMask,k as createPatternMask,r as maskBRL,N as maskCEP,I as maskCNH,p as maskCNPJ,d as maskCPF,l as maskCPFCNPJ,h as maskCVV,E as maskColorHex,R as maskCreditCard,f as maskDate,v as maskDateISO,g as maskDateUS,M as maskDecimal,n as maskEUR,o as maskGBP,H as maskIBAN,F as maskIPv4,G as maskIPv6,c as maskInteger,P as maskJPY,D as maskLandline,A as maskMacAddress,i as maskPercent,B as maskPhone,x as maskPlate,S as maskRG,J as maskSSN,u as maskTime,C as maskUSD,y as maskUSPhone,U as maskZipCode,a as unmask,s as unmaskCurrency};
1
+ import"./chunk-3NUJVIAM.js";var ee={"#":/\d/,A:/[a-zA-Z]/,X:/[a-zA-Z0-9]/,H:/[0-9a-fA-F]/,U:/[A-Z]/,L:/[a-z]/,"*":/./},x=(s,r)=>{if(s==null||s==="")return"";let e=String(s),m=e.startsWith("-"),a=r?r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"",i=new RegExp(`[^a-zA-Z0-9${a}]`,"g"),p=e.replace(i,"");return m&&p&&!p.startsWith("-")?`-${p}`:p},te=(s,r=2)=>{if(typeof s=="number")return s;if(!s)return 0;let e=String(s),m=e.includes("-"),a=e.replace(/\D/g,"");if(!a)return 0;let i=parseInt(a,10)/Math.pow(10,r);return m?-i:i},n=(s,r)=>{let e=o=>o.split("").filter(t=>ee[t]).length,a=[...Array.isArray(s)?s:[s]].sort((o,t)=>e(o)-e(t)),i=o=>{let t=a[a.length-1];for(let c of a)if(o<=e(c)){t=c;break}return t},p=o=>{let t=x(o,r?.allowChars);if(!t&&!r?.guide)return"";let c=i(t.length),k=r?.guide||!1,f=r?.placeholderChar||"_",d="",P=0;for(let g=0;g<c.length;g++){let C=c[g],h=ee[C];if(P<t.length){let u=t[P];if(h)if(C==="U"&&(u=u.toUpperCase()),C==="L"&&(u=u.toLowerCase()),h.test(u))d+=u,P++;else if(k)d+=f;else break;else d+=C,u===C&&P++}else if(k)d+=h?f:C;else break}return d};return{format:p,parse:o=>{if(r?.customParse)return r.customParse(o);let t=p(o);if(r?.saveRaw){if(r?.guide){let k=(r.placeholderChar||"_").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),f=new RegExp(k,"g");return t.replace(f,"")}return t}return x(t,r?.allowChars)}}},l=({prefix:s="",suffix:r="",thousand:e,decimal:m,precision:a=2,allowNegative:i=!0,saveRaw:p=!1})=>{let o=t=>{if(t==null||t==="")return"";let c="";if(typeof t=="number"?c=Math.abs(t).toFixed(a).replace(/\D/g,""):c=String(t).replace(/\D/g,""),!c&&String(t).includes("-")&&i)return"-";if(!c)return"";c=c.padStart(a+1,"0");let k=a>0?c.slice(0,-a).replace(/^0+(?=\d)/,"")||"0":c.replace(/^0+(?=\d)/,"")||"0",f=a>0?c.slice(-a):"",d=k.replace(/\B(?=(\d{3})+(?!\d))/g,e),g=(typeof t=="number"?t<0:String(t).includes("-"))&&i?"-":"";return a===0?`${g}${s}${d}${r}`:`${g}${s}${d}${m}${f}${r}`};return{format:o,parse:t=>{let c=te(t,a),k=i?c:Math.abs(c);return p?o(k):k}}},D=s=>{let r=e=>/^3[47]/.test(e)?"#### ###### #####":/^3(?:0[0-5]|[68])/.test(e)?"#### ###### ####":"#### #### #### ####";return{format:e=>{let m=x(e,s?.allowChars),a=r(m);return n(a,s).format(e)},parse:e=>{let m=x(e,s?.allowChars),a=r(m);return n(a,s).parse(e)}}},H=s=>{let e=(s?.format||"DD/MM/YYYY")==="YYYY-MM-DD",m=n(e?"####-##-##":"##/##/####",s);return{format:a=>{let i=x(a);if(!i)return"";let p="",o="",t="";if(e?(t=i.substring(0,4),o=i.substring(4,6),p=i.substring(6,8)):(p=i.substring(0,2),o=i.substring(2,4),t=i.substring(4,8)),p.length===2){let k=parseInt(p,10);k>31&&(p="31"),k===0&&(p="01")}if(o.length===2){let k=parseInt(o,10);k>12&&(o="12"),k===0&&(o="01")}let c=e?`${t}${o}${p}`:`${p}${o}${t}`;return m.format(c)},parse:a=>m.parse(a)}};var X=l({prefix:"R$ ",thousand:".",decimal:",",precision:2}),$=l({prefix:"$",thousand:",",decimal:".",precision:2}),y=l({suffix:" \u20AC",thousand:".",decimal:",",precision:2}),S=l({prefix:"\xA3",thousand:",",decimal:".",precision:2}),B=l({prefix:"\xA5",thousand:",",decimal:".",precision:0}),b=l({suffix:"%",thousand:".",decimal:",",precision:1}),I=l({thousand:".",decimal:",",precision:2}),M=l({thousand:".",decimal:",",precision:0}),N=n("###.###.###-##"),U=n("##.###.###/####-##"),R=n(["(##) ####-####","(##) #####-####"]),Y=n("(##) ####-####"),A=n("#####-###"),V=H({format:"DD/MM/YYYY",guide:!0,customParse:s=>{let r=s.replace(/_/g,""),e=r.split("/");return e.length===3&&e[2].length===4?`${e[2]}-${e[1]}-${e[0]}`:r.replace(/\D/g,"")}}),w=n("##:##"),L=n("###########"),Z=n("##.###.###-X"),E=n(["###.###.###-##","##.###.###/####-##"]),F={format(s){let r=String(s??"").replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7);if(r.length===0)return"";let e=r.slice(0,3),m=r.slice(3);return m.length===0?e:m.length>=2&&/[A-Z]/.test(m[1])?`${e}${m}`:`${e}-${m}`},parse(s){return String(s??"").replace(/[^a-zA-Z0-9]/g,"").toUpperCase().slice(0,7)}},J=n("(###) ###-####"),O=n("#####-####"),z=n("##/##/####"),G=n("###-##-####"),T=D(),j=n("####"),_=H({format:"YYYY-MM-DD",saveRaw:!0,guide:!0}),W=n("HH:HH:HH:HH:HH:HH"),q=n("#HHHHHH"),K=n("###.###.###.###"),Q=n("HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH"),v=n("UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX",{allowChars:" "});var re={brl:X,usd:$,eur:y,gbp:S,jpy:B,percent:b,decimal:I,int:M,integer:M,cpf:N,cnpj:U,cpfCnpj:E,rg:Z,cep:A,cnh:L,plate:F,phone:R,landline:Y,date:V,time:w,usPhone:J,zipCode:O,dateUS:z,ssn:G,cc:T,cvv:j,dateISO:_,ip:K,ipv6:Q,mac:W,color:q,iban:v};export{re as bitMasks,D as createCreditCardMask,l as createCurrencyMask,H as createDateMask,n as createPatternMask,X as maskBRL,A as maskCEP,L as maskCNH,U as maskCNPJ,N as maskCPF,E as maskCPFCNPJ,j as maskCVV,q as maskColorHex,T as maskCreditCard,V as maskDate,_ as maskDateISO,z as maskDateUS,I as maskDecimal,y as maskEUR,S as maskGBP,v as maskIBAN,K as maskIPv4,Q as maskIPv6,M as maskInteger,B as maskJPY,Y as maskLandline,W as maskMacAddress,b as maskPercent,R as maskPhone,F as maskPlate,Z as maskRG,G as maskSSN,w as maskTime,$ as maskUSD,J as maskUSPhone,O as maskZipCode,x as unmask,te as unmaskCurrency};
2
2
  //# sourceMappingURL=mask.js.map
package/dist/mask.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../src/core/mask/creators.ts","../src/core/mask/presets.ts","../src/core/mask/index.ts"],"sourcesContent":["import {\n BitMask,\n CurrencyMaskConfig,\n DateMaskConfig,\n PatternMaskOptions,\n} from \"./types\";\n\ntype TokenMap = Record<string, RegExp>;\n\nconst tokens: TokenMap = {\n \"#\": /\\d/,\n A: /[a-zA-Z]/,\n X: /[a-zA-Z0-9]/,\n H: /[0-9a-fA-F]/,\n U: /[A-Z]/,\n L: /[a-z]/,\n \"*\": /./,\n};\n\nexport const unmask = (\n value: string | number | null | undefined,\n allowChars?: string,\n): string => {\n if (value === null || value === undefined || value === \"\") return \"\";\n const stringValue = String(value);\n const isNegative = stringValue.startsWith(\"-\");\n\n const escapedChars = allowChars\n ? allowChars.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n : \"\";\n const regex = new RegExp(`[^a-zA-Z0-9${escapedChars}]`, \"g\");\n\n const clean = stringValue.replace(regex, \"\");\n return isNegative && clean && !clean.startsWith(\"-\") ? `-${clean}` : clean;\n};\n\nexport const unmaskCurrency = (value: any, precision = 2): number => {\n if (typeof value === \"number\") return value;\n if (!value) return 0;\n\n const stringValue = String(value);\n const isNegative = stringValue.includes(\"-\");\n const digits = stringValue.replace(/\\D/g, \"\");\n\n if (!digits) return 0;\n\n const numberValue = parseInt(digits, 10) / Math.pow(10, precision);\n return isNegative ? -numberValue : numberValue;\n};\n\nexport const createPatternMask = (\n pattern: string | string[],\n options?: PatternMaskOptions,\n): BitMask => {\n const getRawLength = (p: string) =>\n p.split(\"\").filter((c) => tokens[c]).length;\n\n const patterns = Array.isArray(pattern) ? pattern : [pattern];\n const sortedPatterns = [...patterns].sort(\n (a, b) => getRawLength(a) - getRawLength(b),\n );\n\n const getActivePattern = (rawValueLength: number) => {\n let activePattern = sortedPatterns[sortedPatterns.length - 1];\n for (const candidate of sortedPatterns) {\n if (rawValueLength <= getRawLength(candidate)) {\n activePattern = candidate;\n break;\n }\n }\n return activePattern;\n };\n\n const formatValue = (value: string | number | null | undefined): string => {\n const stringVal = unmask(value, options?.allowChars);\n\n if (!stringVal && !options?.guide) {\n return \"\";\n }\n\n const activePattern = getActivePattern(stringVal.length);\n const showGuide = options?.guide || false;\n const placeholder = options?.placeholderChar || \"_\";\n\n let masked = \"\";\n let valueIndex = 0;\n\n for (let i = 0; i < activePattern.length; i++) {\n const patternChar = activePattern[i];\n const token = tokens[patternChar];\n\n if (valueIndex < stringVal.length) {\n let dataChar = stringVal[valueIndex];\n\n if (token) {\n if (patternChar === \"U\") dataChar = dataChar.toUpperCase();\n if (patternChar === \"L\") dataChar = dataChar.toLowerCase();\n\n if (token.test(dataChar)) {\n masked += dataChar;\n valueIndex++;\n } else if (showGuide) {\n masked += placeholder;\n } else {\n break;\n }\n } else {\n masked += patternChar;\n if (dataChar === patternChar) valueIndex++;\n }\n } else if (showGuide) {\n masked += token ? placeholder : patternChar;\n } else {\n break;\n }\n }\n\n return masked;\n };\n\n return {\n format: formatValue,\n parse: (value: string) => {\n if (options?.customParse) return options.customParse(value);\n\n const formatted = formatValue(value);\n\n if (options?.saveRaw) {\n if (options?.guide) {\n const placeholder = options.placeholderChar || \"_\";\n const escapedPlaceholder = placeholder.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n \"\\\\$&\",\n );\n const placeholderRegex = new RegExp(escapedPlaceholder, \"g\");\n\n return formatted.replace(placeholderRegex, \"\");\n }\n\n return formatted;\n }\n\n return unmask(formatted, options?.allowChars);\n },\n };\n};\n\nexport const createCurrencyMask = ({\n prefix = \"\",\n suffix = \"\",\n thousand,\n decimal,\n precision = 2,\n allowNegative = true,\n saveRaw = false,\n}: CurrencyMaskConfig): BitMask => {\n const formatFn = (value: any) => {\n if (value === undefined || value === null || value === \"\") return \"\";\n\n let stringValue = \"\";\n\n if (typeof value === \"number\") {\n stringValue = Math.abs(value).toFixed(precision).replace(/\\D/g, \"\");\n } else {\n stringValue = String(value).replace(/\\D/g, \"\");\n }\n\n if (!stringValue && String(value).includes(\"-\") && allowNegative)\n return \"-\";\n if (!stringValue) return \"\";\n\n stringValue = stringValue.padStart(precision + 1, \"0\");\n\n const integerPart =\n precision > 0\n ? stringValue.slice(0, -precision).replace(/^0+(?=\\d)/, \"\") || \"0\"\n : stringValue.replace(/^0+(?=\\d)/, \"\") || \"0\";\n const decimalPart = precision > 0 ? stringValue.slice(-precision) : \"\";\n\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n thousand,\n );\n\n const isNegative =\n typeof value === \"number\" ? value < 0 : String(value).includes(\"-\");\n const sign = isNegative && allowNegative ? \"-\" : \"\";\n\n if (precision === 0) {\n return `${sign}${prefix}${formattedInteger}${suffix}`;\n }\n\n return `${sign}${prefix}${formattedInteger}${decimal}${decimalPart}${suffix}`;\n };\n\n return {\n format: formatFn,\n parse: (value: string) => {\n const numericValue = unmaskCurrency(value, precision);\n const finalNumber = !allowNegative\n ? Math.abs(numericValue)\n : numericValue;\n if (saveRaw) return formatFn(finalNumber);\n return finalNumber;\n },\n };\n};\n\nexport const createCreditCardMask = (options?: PatternMaskOptions): BitMask => {\n // Função auxiliar para descobrir o padrão dinamicamente\n const getCardPattern = (rawValue: string) => {\n // Amex (American Express) começa com 34 ou 37 -> 15 dígitos\n if (/^3[47]/.test(rawValue)) {\n return \"#### ###### #####\";\n }\n // Diners Club começa com 300-305, 36 ou 38 -> 14 dígitos\n if (/^3(?:0[0-5]|[68])/.test(rawValue)) {\n return \"#### ###### ####\";\n }\n // Default: Visa, Mastercard, Discover, Elo, etc -> 16 dígitos\n return \"#### #### #### ####\";\n };\n\n return {\n format: (value: any) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n const mask = createPatternMask(pattern, options);\n return mask.format(value);\n },\n parse: (value: string) => {\n const stringVal = unmask(value, options?.allowChars);\n const pattern = getCardPattern(stringVal);\n\n const mask = createPatternMask(pattern, options);\n return mask.parse(value);\n },\n };\n};\n\nexport const createDateMask = (config?: DateMaskConfig): BitMask => {\n const formatType = config?.format || \"DD/MM/YYYY\";\n const isISO = formatType === \"YYYY-MM-DD\";\n\n // Criamos a máscara base consoante o formato escolhido\n const baseMask = createPatternMask(\n isISO ? \"####-##-##\" : \"##/##/####\",\n config,\n );\n\n return {\n format: (value: any) => {\n let stringVal = unmask(value);\n if (!stringVal) return \"\";\n\n let day = \"\";\n let month = \"\";\n let year = \"\";\n\n // Separamos os componentes consoante o que o utilizador já digitou\n if (isISO) {\n year = stringVal.substring(0, 4);\n month = stringVal.substring(4, 6);\n day = stringVal.substring(6, 8);\n } else {\n day = stringVal.substring(0, 2);\n month = stringVal.substring(2, 4);\n year = stringVal.substring(4, 8);\n }\n\n // Validação do Dia (01 a 31)\n if (day.length === 2) {\n const d = parseInt(day, 10);\n if (d > 31) day = \"31\";\n if (d === 0) day = \"01\";\n }\n\n // Validação do Mês (01 a 12)\n if (month.length === 2) {\n const m = parseInt(month, 10);\n if (m > 12) month = \"12\";\n if (m === 0) month = \"01\";\n }\n\n // Reconstruímos a string limpa e passamos para o pattern normal\n const safeString = isISO\n ? `${year}${month}${day}`\n : `${day}${month}${year}`;\n\n return baseMask.format(safeString);\n },\n parse: (value: string) => {\n // Usamos a funcionalidade completa da máscara base (incluindo o saveRaw e o unmasking)\n return baseMask.parse(value);\n },\n };\n};\n","import type { BitMask } from \"./types\";\nimport {\n createCreditCardMask,\n createCurrencyMask,\n createDateMask,\n createPatternMask,\n} from \"./creators\";\n\n// ==========================================\n// 💲 MOEDAS (Currencies)\n// ==========================================\n\n/** BRL - Real Brasileiro (R$ 1.000,00) */\nexport const maskBRL = createCurrencyMask({\n prefix: \"R$ \",\n thousand: \".\",\n decimal: \",\",\n precision: 2,\n});\n\n/** USD - Dólar Americano ($1,000.00) */\nexport const maskUSD = createCurrencyMask({\n prefix: \"$\",\n thousand: \",\",\n decimal: \".\",\n precision: 2,\n});\n\n/** EUR - Euro Padrão (€ 1.000,00) - Sufixo comum na Europa */\nexport const maskEUR = createCurrencyMask({\n suffix: \" €\",\n thousand: \".\",\n decimal: \",\",\n precision: 2,\n});\n\n/** GBP - Libra Esterlina (£1,000.00) */\nexport const maskGBP = createCurrencyMask({\n prefix: \"£\",\n thousand: \",\",\n decimal: \".\",\n precision: 2,\n});\n\n/** JPY - Iene Japonês (¥1,000) - Geralmente sem decimais */\nexport const maskJPY = createCurrencyMask({\n prefix: \"¥\",\n thousand: \",\",\n decimal: \".\",\n precision: 0,\n});\n\n// ==========================================\n// 🔢 NÚMEROS E PERCENTUAIS\n// ==========================================\n\n/** Porcentagem PT-BR (10,5%) */\nexport const maskPercent = createCurrencyMask({\n suffix: \"%\",\n thousand: \".\",\n decimal: \",\",\n precision: 1, // Ex: 99,9%\n});\n\n/** Decimal Genérico PT-BR (1.000,00) - Sem símbolo */\nexport const maskDecimal = createCurrencyMask({\n thousand: \".\",\n decimal: \",\",\n precision: 2,\n});\n\n/** Inteiro (1.000) - Apenas separador de milhar */\nexport const maskInteger = createCurrencyMask({\n thousand: \".\",\n decimal: \",\",\n precision: 0,\n});\n\n// ==========================================\n// 🇧🇷 PADRÕES BRASILEIROS (Brazil)\n// ==========================================\n\n/** CPF (000.000.000-00) */\nexport const maskCPF = createPatternMask(\"###.###.###-##\");\n\n/** CNPJ (00.000.000/0000-00) */\nexport const maskCNPJ = createPatternMask(\"##.###.###/####-##\");\n\nexport const maskPhone = createPatternMask([\n \"(##) ####-####\", // Fixo (10 dígitos)\n \"(##) #####-####\", // Celular (11 dígitos)\n]);\n\n/** Telefone Fixo BR (11) 0000-0000 */\nexport const maskLandline = createPatternMask(\"(##) ####-####\");\n\n/** CEP (00000-000) */\nexport const maskCEP = createPatternMask(\"#####-###\");\n\n/** Data PT/BR com correção automática de dia/mês */\nexport const maskDate = createDateMask({\n format: \"DD/MM/YYYY\",\n guide: true,\n customParse: (val) => {\n const cleanVal = val.replace(/_/g, \"\");\n const parts = cleanVal.split(\"/\");\n if (parts.length === 3 && parts[2].length === 4) {\n return `${parts[2]}-${parts[1]}-${parts[0]}`;\n }\n return cleanVal.replace(/\\D/g, \"\");\n },\n});\n\n/** Hora Curta (HH:MM) */\nexport const maskTime = createPatternMask(\"##:##\");\n\n/** CNH (Carteira de Motorista - 11 dígitos) */\nexport const maskCNH = createPatternMask(\"###########\");\n\n/** RG (00.000.000-X) - Suporta o 'X' como dígito verificador */\nexport const maskRG = createPatternMask(\"##.###.###-X\");\n\n/**\n * CPF + CNPJ combinado — alterna automaticamente pelo número de dígitos:\n * - Até 11 dígitos → CPF (000.000.000-00)\n * - Mais de 11 → CNPJ (00.000.000/0000-00)\n */\nexport const maskCPFCNPJ = createPatternMask([\n \"###.###.###-##\",\n \"##.###.###/####-##\",\n]);\n\n/**\n * Placa de veículo BR — detecta o formato pelo 5.º caractere:\n * - Antigo → ABC-1234 (posição 5 é dígito)\n * - Mercosul → ABC1D23 (posição 5 é letra)\n */\nexport const maskPlate: BitMask = {\n format(value: any): string {\n const raw = String(value ?? \"\")\n .replace(/[^a-zA-Z0-9]/g, \"\")\n .toUpperCase()\n .slice(0, 7);\n\n if (raw.length === 0) return \"\";\n\n const prefix = raw.slice(0, 3);\n const rest = raw.slice(3);\n\n if (rest.length === 0) return prefix;\n\n // Posição 5 (rest[1]): letra → Mercosul; dígito → formato antigo\n const isMercosul = rest.length >= 2 && /[A-Z]/.test(rest[1]);\n\n return isMercosul ? `${prefix}${rest}` : `${prefix}-${rest}`;\n },\n parse(value: string): string {\n return String(value ?? \"\")\n .replace(/[^a-zA-Z0-9]/g, \"\")\n .toUpperCase()\n .slice(0, 7);\n },\n};\n\n// ==========================================\n// 🇺🇸 PADRÕES AMERICANOS (USA)\n// ==========================================\n\n/** US Phone ((000) 000-0000) */\nexport const maskUSPhone = createPatternMask(\"(###) ###-####\");\n\n/** ZIP Code (00000 or 00000-0000) */\nexport const maskZipCode = createPatternMask(\"#####-####\");\n\n/** Date US (MM/DD/YYYY) - Igual ao BR, mas semântica diferente */\nexport const maskDateUS = createPatternMask(\"##/##/####\");\n\n/** SSN (Social Security Number) */\nexport const maskSSN = createPatternMask(\"###-##-####\");\n\n// ==========================================\n// 🌐 PADRÕES GLOBAIS / TÉCNICOS\n// ==========================================\n\n/** Cartão de Crédito Inteligente (Detecta Visa/Master, Amex e Diners) */\nexport const maskCreditCard = createCreditCardMask();\n\n/** CVV (3 ou 4 dígitos) */\nexport const maskCVV = createPatternMask(\"####\");\n\n/** Data ISO (Ideal para base de dados: YYYY-MM-DD) */\nexport const maskDateISO = createDateMask({\n format: \"YYYY-MM-DD\",\n saveRaw: true,\n guide: true,\n});\n\n/** Endereço MAC (HH:HH:HH:HH:HH:HH) - Usa o token Hexadecimal */\nexport const maskMacAddress = createPatternMask(\"HH:HH:HH:HH:HH:HH\");\n\n/** Cor Hexadecimal (#HHHHHH) */\nexport const maskColorHex = createPatternMask(\"#HHHHHH\");\n\n/** IPv4 (000.000.000.000) - Formato de blocos fixos */\nexport const maskIPv4 = createPatternMask(\"###.###.###.###\");\n\n/** IPv6 (HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH) */\nexport const maskIPv6 = createPatternMask(\n \"HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH\",\n);\n\n/** * IBAN Internacional\n * Força as duas primeiras letras para maiúsculas e agrupa de 4 em 4.\n * O tamanho máximo cobre os 34 caracteres do padrão IBAN.\n */\nexport const maskIBAN = createPatternMask(\n \"UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX\",\n { allowChars: \" \" },\n);\n","export * from \"./types\";\nexport * from \"./creators\";\nexport * from \"./presets\";\nexport * from \"./field-binding\";\n\nimport * as presets from \"./presets\";\nimport type { BitMask, BitBuiltInMaskName } from \"./types\";\n\nexport const bitMasks: Record<BitBuiltInMaskName, BitMask> = {\n // Moedas\n brl: presets.maskBRL,\n usd: presets.maskUSD,\n eur: presets.maskEUR,\n gbp: presets.maskGBP,\n jpy: presets.maskJPY,\n // Números\n percent: presets.maskPercent,\n decimal: presets.maskDecimal,\n int: presets.maskInteger,\n integer: presets.maskInteger,\n // Documentos BR\n cpf: presets.maskCPF,\n cnpj: presets.maskCNPJ,\n cpfCnpj: presets.maskCPFCNPJ,\n rg: presets.maskRG,\n cep: presets.maskCEP,\n cnh: presets.maskCNH,\n plate: presets.maskPlate,\n // Comunicação/Data\n phone: presets.maskPhone,\n landline: presets.maskLandline,\n date: presets.maskDate,\n time: presets.maskTime,\n // USA\n usPhone: presets.maskUSPhone,\n zipCode: presets.maskZipCode,\n dateUS: presets.maskDateUS,\n ssn: presets.maskSSN,\n // Tech/Global\n cc: presets.maskCreditCard,\n cvv: presets.maskCVV,\n dateISO: presets.maskDateISO,\n ip: presets.maskIPv4,\n ipv6: presets.maskIPv6,\n mac: presets.maskMacAddress,\n color: presets.maskColorHex,\n iban: presets.maskIBAN,\n};\n"],"mappings":"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","names":["tokens","unmask","value","allowChars","stringValue","isNegative","escapedChars","regex","clean","unmaskCurrency","precision","digits","numberValue","createPatternMask","pattern","options","getRawLength","p","c","sortedPatterns","a","b","getActivePattern","rawValueLength","activePattern","candidate","formatValue","stringVal","showGuide","placeholder","masked","valueIndex","i","patternChar","token","dataChar","formatted","escapedPlaceholder","placeholderRegex","createCurrencyMask","prefix","suffix","thousand","decimal","allowNegative","saveRaw","formatFn","integerPart","decimalPart","formattedInteger","sign","numericValue","finalNumber","createCreditCardMask","getCardPattern","rawValue","createDateMask","config","isISO","baseMask","day","month","year","d","m","safeString","maskBRL","createCurrencyMask","maskUSD","maskEUR","maskGBP","maskJPY","maskPercent","maskDecimal","maskInteger","maskCPF","createPatternMask","maskCNPJ","maskPhone","maskLandline","maskCEP","maskDate","createDateMask","val","cleanVal","parts","maskTime","maskCNH","maskRG","maskCPFCNPJ","maskPlate","value","raw","prefix","rest","maskUSPhone","maskZipCode","maskDateUS","maskSSN","maskCreditCard","createCreditCardMask","maskCVV","maskDateISO","maskMacAddress","maskColorHex","maskIPv4","maskIPv6","maskIBAN","bitMasks","maskBRL","maskUSD","maskEUR","maskGBP","maskJPY","maskPercent","maskDecimal","maskInteger","maskCPF","maskCNPJ","maskCPFCNPJ","maskRG","maskCEP","maskCNH","maskPlate","maskPhone","maskLandline","maskDate","maskTime","maskUSPhone","maskZipCode","maskDateUS","maskSSN","maskCreditCard","maskCVV","maskDateISO","maskIPv4","maskIPv6","maskMacAddress","maskColorHex","maskIBAN"]}
@@ -1,4 +1,4 @@
1
- import { B as BitConfig, V as ValidatorFn, a as BitFieldDefinition, D as DevToolsOptions, b as BitPersistResolvedConfig, c as BitIdFactory, d as BitPlugin, e as BitState, f as BitPath, g as BitPathValue, h as DeepPartial, i as BitErrors, j as BitPersistMetadata, k as BitArrayPath, l as BitArrayItem, S as ScopeStatus, m as BitFieldState } from './bus-a_GA51Qw.cjs';
1
+ import { B as BitConfig, V as ValidatorFn, a as BitFieldDefinition, D as DevToolsOptions, b as BitPersistResolvedConfig, c as BitIdFactory, d as BitPlugin, e as BitState, f as BitPath, g as BitPathValue, h as DeepPartial, i as BitErrors, j as BitPersistMetadata, k as BitArrayPath, l as BitArrayItem, S as ScopeStatus, m as BitFieldState } from './bus-BeAeZwWu.cjs';
2
2
  import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.cjs';
3
3
 
4
4
  type BitSelector<T extends object, TSlice> = (state: Readonly<BitState<T>>) => TSlice;
@@ -7,6 +7,10 @@ interface BitSelectorSubscriptionOptions<TValue> {
7
7
  equalityFn?: BitEqualityFn<TValue>;
8
8
  emitImmediately?: boolean;
9
9
  paths?: string[];
10
+ /**
11
+ * Quando `true`, o store tenta inferir paths acessados pelo selector via Proxy.
12
+ * Mantido como opt-in para reduzir custo de inscrição e complexidade implícita.
13
+ */
10
14
  autoTrackPaths?: boolean;
11
15
  }
12
16
  interface BitValidationOptions {
@@ -48,6 +52,7 @@ interface BitStoreApi<T extends object = any> {
48
52
  setServerErrors(serverErrors: Record<string, string[] | string>): void;
49
53
  validate(options?: BitValidationOptions): Promise<boolean>;
50
54
  reset(): void;
55
+ transaction<TResult>(callback: () => TResult): TResult;
51
56
  submit(onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>): Promise<void>;
52
57
  registerMask(name: BitMaskName, mask: BitMask): void;
53
58
  getDirtyValues(): Partial<T>;
@@ -86,4 +91,4 @@ interface BitStoreHooksApi<T extends object = any> extends BitStoreApi<T> {
86
91
  getScopeFields(scopeName: string): string[];
87
92
  }
88
93
 
89
- export type { BitFrameworkConfig as B, BitValidationOptions as a, BitSelector as b, BitSelectorSubscriptionOptions as c, BitHistoryMetadata as d, BitStoreApi as e, BitStoreHooksApi as f, BitEqualityFn as g };
94
+ export type { BitFrameworkConfig as B, BitSelector as a, BitSelectorSubscriptionOptions as b, BitHistoryMetadata as c, BitValidationOptions as d, BitStoreApi as e, BitStoreHooksApi as f, BitEqualityFn as g };
@@ -1,4 +1,4 @@
1
- import { B as BitConfig, V as ValidatorFn, a as BitFieldDefinition, D as DevToolsOptions, b as BitPersistResolvedConfig, c as BitIdFactory, d as BitPlugin, e as BitState, f as BitPath, g as BitPathValue, h as DeepPartial, i as BitErrors, j as BitPersistMetadata, k as BitArrayPath, l as BitArrayItem, S as ScopeStatus, m as BitFieldState } from './bus-BQI1FIOs.js';
1
+ import { B as BitConfig, V as ValidatorFn, a as BitFieldDefinition, D as DevToolsOptions, b as BitPersistResolvedConfig, c as BitIdFactory, d as BitPlugin, e as BitState, f as BitPath, g as BitPathValue, h as DeepPartial, i as BitErrors, j as BitPersistMetadata, k as BitArrayPath, l as BitArrayItem, S as ScopeStatus, m as BitFieldState } from './bus-B4zZmB9C.js';
2
2
  import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.js';
3
3
 
4
4
  type BitSelector<T extends object, TSlice> = (state: Readonly<BitState<T>>) => TSlice;
@@ -7,6 +7,10 @@ interface BitSelectorSubscriptionOptions<TValue> {
7
7
  equalityFn?: BitEqualityFn<TValue>;
8
8
  emitImmediately?: boolean;
9
9
  paths?: string[];
10
+ /**
11
+ * Quando `true`, o store tenta inferir paths acessados pelo selector via Proxy.
12
+ * Mantido como opt-in para reduzir custo de inscrição e complexidade implícita.
13
+ */
10
14
  autoTrackPaths?: boolean;
11
15
  }
12
16
  interface BitValidationOptions {
@@ -48,6 +52,7 @@ interface BitStoreApi<T extends object = any> {
48
52
  setServerErrors(serverErrors: Record<string, string[] | string>): void;
49
53
  validate(options?: BitValidationOptions): Promise<boolean>;
50
54
  reset(): void;
55
+ transaction<TResult>(callback: () => TResult): TResult;
51
56
  submit(onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>): Promise<void>;
52
57
  registerMask(name: BitMaskName, mask: BitMask): void;
53
58
  getDirtyValues(): Partial<T>;
@@ -86,4 +91,4 @@ interface BitStoreHooksApi<T extends object = any> extends BitStoreApi<T> {
86
91
  getScopeFields(scopeName: string): string[];
87
92
  }
88
93
 
89
- export type { BitFrameworkConfig as B, BitValidationOptions as a, BitSelector as b, BitSelectorSubscriptionOptions as c, BitHistoryMetadata as d, BitStoreApi as e, BitStoreHooksApi as f, BitEqualityFn as g };
94
+ export type { BitFrameworkConfig as B, BitSelector as a, BitSelectorSubscriptionOptions as b, BitHistoryMetadata as c, BitValidationOptions as d, BitStoreApi as e, BitStoreHooksApi as f, BitEqualityFn as g };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunkZO3GXKF3cjs = require('../chunk-ZO3GXKF3.cjs');var _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');require('../chunk-RFFMBY7M.cjs');require('../chunk-LOYB7TTM.cjs');var _chunkEI5L5L3Rcjs = require('../chunk-EI5L5L3R.cjs');var _react = require('react');function y(e){let{fieldState:t,setValue:a,setBlur:s,store:r}=_chunkZO3GXKF3cjs.d.call(void 0, e),i=_react.useMemo.call(void 0, ()=>r.resolveMask(e),[r.config.masks,r.config.fields,e]),o=_react.useMemo.call(void 0, ()=>_chunkEI5L5L3Rcjs.M.call(void 0, t.value,_nullishCoalesce(i, () => (void 0))),[t.value,i]),l=_react.useCallback.call(void 0, d=>a(_chunkEI5L5L3Rcjs.N.call(void 0, d,_nullishCoalesce(i, () => (void 0)))),[i,a]),{isHidden:c,isRequired:m,value:B,error:n,touched:u,isDirty:M,isValidating:T}=t,k=!!(u&&n),I=u?n:void 0,F=_react.useCallback.call(void 0, d=>{let H=_chunkEI5L5L3Rcjs.L.call(void 0, d)?_optionalChain([d, 'access', _ => _.target, 'optionalAccess', _2 => _2.value]):d;l(H)},[l]),x=_react.useCallback.call(void 0, ()=>{s()},[s]);return{value:B,displayValue:o,setValue:l,setBlur:s,onChange:F,onBlur:x,props:{value:o,onChange:F,onBlur:x},meta:{error:I,touched:u,invalid:k,isDirty:M,isValidating:T,isHidden:c,isRequired:m,hasError:!!n}}}function L(){let e=_chunkZO3GXKF3cjs.b.call(void 0, ),t=_react.useRef.call(void 0, null),a=_react.useCallback.call(void 0, ()=>{let o=e.getHistoryMetadata();if(t.current&&t.current.canUndo===o.canUndo&&t.current.canRedo===o.canRedo&&t.current.historyIndex===o.historyIndex&&t.current.historySize===o.historySize)return t.current;let l={canUndo:o.canUndo,canRedo:o.canRedo,historyIndex:o.historyIndex,historySize:o.historySize};return t.current=l,l},[e]),s=_react.useSyncExternalStore.call(void 0, e.subscribe.bind(e),a,a),r=_react.useCallback.call(void 0, ()=>{e.undo()},[e]),i=_react.useCallback.call(void 0, ()=>{e.redo()},[e]);return{...s,undo:r,redo:i}}function G(e,t,a){let s=_chunkZO3GXKF3cjs.b.call(void 0, ),r=y(e),i=_react.useRef.call(void 0, null),[o,l]=_react.useState.call(void 0, !1),c={setLoading:l,setError:(n,u)=>s.setError(n,u),setValue:n=>r.setValue(n),getUploadKey:()=>i.current,setUploadKey:n=>{i.current=n}},m=_react.useCallback.call(void 0, _chunkIV32WXCFcjs.a.call(void 0, e,t,c),[t,r,e,s]),B=_react.useCallback.call(void 0, _chunkIV32WXCFcjs.b.call(void 0, e,a,c),[a,r,e,s]);return{value:r.value,setValue:r.setValue,error:_optionalChain([r, 'access', _3 => _3.meta, 'optionalAccess', _4 => _4.error]),isValidating:!!_optionalChain([r, 'access', _5 => _5.meta, 'optionalAccess', _6 => _6.isValidating])||o,upload:m,remove:B}}exports.BitFormProvider = _chunkZO3GXKF3cjs.a; exports.useBitArray = _chunkZO3GXKF3cjs.e; exports.useBitField = y; exports.useBitForm = _chunkZO3GXKF3cjs.c; exports.useBitHistory = L; exports.useBitPersist = _chunkZO3GXKF3cjs.i; exports.useBitScope = _chunkZO3GXKF3cjs.f; exports.useBitSteps = _chunkZO3GXKF3cjs.g; exports.useBitStore = _chunkZO3GXKF3cjs.b; exports.useBitUpload = G; exports.useBitWatch = _chunkZO3GXKF3cjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunk3CARTBENcjs = require('../chunk-3CARTBEN.cjs');var _chunkVQ7MK5VBcjs = require('../chunk-VQ7MK5VB.cjs');require('../chunk-JIWR4KSZ.cjs');require('../chunk-OZKLQRO6.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _react = require('react');function U(e){let{fieldState:o,setValue:a,setBlur:s,store:t}=_chunk3CARTBENcjs.d.call(void 0, e),i=_react.useMemo.call(void 0, ()=>t.resolveMask(e),[t.config.masks,t.config.fields,e]),u=_react.useMemo.call(void 0, ()=>_chunkPFPGASVZcjs.b.call(void 0, o.value,_nullishCoalesce(i, () => (void 0))),[o.value,i]),r=_react.useCallback.call(void 0, p=>a(_chunkPFPGASVZcjs.c.call(void 0, p,_nullishCoalesce(i, () => (void 0)))),[i,a]),{isHidden:l,isRequired:B,value:f,error:n,touched:d,isDirty:h,isValidating:T}=o,k=!!(d&&n),E=d?n:void 0,F=_react.useCallback.call(void 0, p=>{let I=_chunkPFPGASVZcjs.a.call(void 0, p)?_optionalChain([p, 'access', _ => _.target, 'optionalAccess', _2 => _2.value]):p;r(I)},[r]),x=_react.useCallback.call(void 0, ()=>{s()},[s]);return{value:f,displayValue:u,setValue:r,setBlur:s,onChange:F,onBlur:x,props:{value:u,onChange:F,onBlur:x},meta:{error:E,touched:d,invalid:k,isDirty:h,isValidating:T,isHidden:l,isRequired:B,hasError:!!n}}}function O(){let e=_chunk3CARTBENcjs.b.call(void 0, ),o=_react.useRef.call(void 0, null),a=_react.useCallback.call(void 0, ()=>{let r=e.getHistoryMetadata();if(o.current&&_chunkVQ7MK5VBcjs.a.call(void 0, o.current,r))return o.current;let l={canUndo:r.canUndo,canRedo:r.canRedo,historyIndex:r.historyIndex,historySize:r.historySize};return o.current=l,l},[e]),s=_react.useCallback.call(void 0, r=>e.subscribe(r),[e]),t=_react.useSyncExternalStore.call(void 0, s,a,a),i=_react.useCallback.call(void 0, ()=>{e.undo()},[e]),u=_react.useCallback.call(void 0, ()=>{e.redo()},[e]);return{...t,undo:i,redo:u}}function J(e,o,a){let s=_chunk3CARTBENcjs.b.call(void 0, ),t=U(e),i=_react.useRef.call(void 0, null),[u,r]=_react.useState.call(void 0, !1),l={setLoading:r,setError:(n,d)=>s.setError(n,d),setValue:n=>t.setValue(n),getUploadKey:()=>i.current,setUploadKey:n=>{i.current=n}},B=_react.useCallback.call(void 0, _chunkVQ7MK5VBcjs.b.call(void 0, e,o,l),[o,t,e,s]),f=_react.useCallback.call(void 0, _chunkVQ7MK5VBcjs.c.call(void 0, e,a,l),[a,t,e,s]);return{value:t.value,setValue:t.setValue,error:_optionalChain([t, 'access', _3 => _3.meta, 'optionalAccess', _4 => _4.error]),isValidating:!!_optionalChain([t, 'access', _5 => _5.meta, 'optionalAccess', _6 => _6.isValidating])||u,upload:B,remove:f}}exports.BitFormProvider = _chunk3CARTBENcjs.a; exports.useBitArray = _chunk3CARTBENcjs.e; exports.useBitField = U; exports.useBitForm = _chunk3CARTBENcjs.c; exports.useBitHistory = O; exports.useBitPersist = _chunk3CARTBENcjs.i; exports.useBitScope = _chunk3CARTBENcjs.f; exports.useBitSteps = _chunk3CARTBENcjs.g; exports.useBitStore = _chunk3CARTBENcjs.b; exports.useBitUpload = J; exports.useBitWatch = _chunk3CARTBENcjs.h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"names":["useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","isUploading","setIsUploading","useState","kernelCallbacks","msg","key","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<{\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n } | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const meta = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"names":["useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","isHistoryMetaEqual","stableMeta","subscribe","cb","meta","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","isUploading","setIsUploading","useState","kernelCallbacks","msg","key","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { isHistoryMetaEqual, type HistoryMeta } from \"../core/history-status\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (lastMeta.current && isHistoryMetaEqual(lastMeta.current, nextMeta)) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"]}
@@ -1,11 +1,11 @@
1
- import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-Dt4zIl2u.cjs';
2
- export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-Dt4zIl2u.cjs';
3
- import { f as BitPath } from '../bus-a_GA51Qw.cjs';
4
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-a_GA51Qw.cjs';
1
+ import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-CIVN-oIi.cjs';
2
+ export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-CIVN-oIi.cjs';
3
+ import { f as BitPath } from '../bus-BeAeZwWu.cjs';
4
+ export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BeAeZwWu.cjs';
5
5
  import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.cjs';
6
6
  import 'react/jsx-runtime';
7
7
  import 'react';
8
- import '../public-types-D14VY_4o.cjs';
8
+ import '../public-types-BQXaxmAE.cjs';
9
9
  import '../types-D8DgIUhJ.cjs';
10
10
  import '../field-binding-BXw0Ku2c.cjs';
11
11
 
@@ -1,11 +1,11 @@
1
- import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-CNtQ3Gaq.js';
2
- export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-CNtQ3Gaq.js';
3
- import { f as BitPath } from '../bus-BQI1FIOs.js';
4
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BQI1FIOs.js';
1
+ import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-iPWLbD8l.js';
2
+ export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-iPWLbD8l.js';
3
+ import { f as BitPath } from '../bus-B4zZmB9C.js';
4
+ export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-B4zZmB9C.js';
5
5
  import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.js';
6
6
  import 'react/jsx-runtime';
7
7
  import 'react';
8
- import '../public-types-D3WIiMGu.js';
8
+ import '../public-types-CVgFf_qY.js';
9
9
  import '../types-D8DgIUhJ.js';
10
10
  import '../field-binding-BXw0Ku2c.js';
11
11
 
@@ -1,2 +1,2 @@
1
- import{a as E,b as p,c as z,d as v,e as C,f as j,g as D,h as K,i as q}from"../chunk-66DIO2SH.js";import{a as V,b}from"../chunk-O5UPA33R.js";import"../chunk-YGAD4ZZW.js";import"../chunk-AE4G32HS.js";import{L as R,M as g,N as S}from"../chunk-7LMNIQTT.js";import{useMemo as h,useCallback as f}from"react";function y(e){let{fieldState:t,setValue:a,setBlur:s,store:r}=v(e),i=h(()=>r.resolveMask(e),[r.config.masks,r.config.fields,e]),o=h(()=>g(t.value,i??void 0),[t.value,i]),l=f(d=>a(S(d,i??void 0)),[i,a]),{isHidden:c,isRequired:m,value:B,error:n,touched:u,isDirty:M,isValidating:T}=t,k=!!(u&&n),I=u?n:void 0,F=f(d=>{let H=R(d)?d.target?.value:d;l(H)},[l]),x=f(()=>{s()},[s]);return{value:B,displayValue:o,setValue:l,setBlur:s,onChange:F,onBlur:x,props:{value:o,onChange:F,onBlur:x},meta:{error:I,touched:u,invalid:k,isDirty:M,isValidating:T,isHidden:c,isRequired:m,hasError:!!n}}}import{useCallback as U,useRef as w,useSyncExternalStore as A}from"react";function L(){let e=p(),t=w(null),a=U(()=>{let o=e.getHistoryMetadata();if(t.current&&t.current.canUndo===o.canUndo&&t.current.canRedo===o.canRedo&&t.current.historyIndex===o.historyIndex&&t.current.historySize===o.historySize)return t.current;let l={canUndo:o.canUndo,canRedo:o.canRedo,historyIndex:o.historyIndex,historySize:o.historySize};return t.current=l,l},[e]),s=A(e.subscribe.bind(e),a,a),r=U(()=>{e.undo()},[e]),i=U(()=>{e.redo()},[e]);return{...s,undo:r,redo:i}}import{useCallback as P,useRef as O,useState as W}from"react";function G(e,t,a){let s=p(),r=y(e),i=O(null),[o,l]=W(!1),c={setLoading:l,setError:(n,u)=>s.setError(n,u),setValue:n=>r.setValue(n),getUploadKey:()=>i.current,setUploadKey:n=>{i.current=n}},m=P(V(e,t,c),[t,r,e,s]),B=P(b(e,a,c),[a,r,e,s]);return{value:r.value,setValue:r.setValue,error:r.meta?.error,isValidating:!!r.meta?.isValidating||o,upload:m,remove:B}}export{E as BitFormProvider,C as useBitArray,y as useBitField,z as useBitForm,L as useBitHistory,q as useBitPersist,j as useBitScope,D as useBitSteps,p as useBitStore,G as useBitUpload,K as useBitWatch};
1
+ import{a as C,b as m,c as j,d as V,e as D,f as K,g as q,h as z,i as w}from"../chunk-UMKOKAPD.js";import{a as P,b as S,c as b}from"../chunk-QWH2NBVB.js";import"../chunk-2FDEJYA5.js";import"../chunk-64KSP4TP.js";import{a as g,b as v,c as R}from"../chunk-3NUJVIAM.js";import{useMemo as M,useCallback as y}from"react";function U(e){let{fieldState:o,setValue:a,setBlur:s,store:t}=V(e),i=M(()=>t.resolveMask(e),[t.config.masks,t.config.fields,e]),u=M(()=>v(o.value,i??void 0),[o.value,i]),r=y(p=>a(R(p,i??void 0)),[i,a]),{isHidden:l,isRequired:B,value:f,error:n,touched:d,isDirty:h,isValidating:T}=o,k=!!(d&&n),E=d?n:void 0,F=y(p=>{let I=g(p)?p.target?.value:p;r(I)},[r]),x=y(()=>{s()},[s]);return{value:f,displayValue:u,setValue:r,setBlur:s,onChange:F,onBlur:x,props:{value:u,onChange:F,onBlur:x},meta:{error:E,touched:d,invalid:k,isDirty:h,isValidating:T,isHidden:l,isRequired:B,hasError:!!n}}}import{useCallback as c,useRef as A,useSyncExternalStore as L}from"react";function O(){let e=m(),o=A(null),a=c(()=>{let r=e.getHistoryMetadata();if(o.current&&P(o.current,r))return o.current;let l={canUndo:r.canUndo,canRedo:r.canRedo,historyIndex:r.historyIndex,historySize:r.historySize};return o.current=l,l},[e]),s=c(r=>e.subscribe(r),[e]),t=L(s,a,a),i=c(()=>{e.undo()},[e]),u=c(()=>{e.redo()},[e]);return{...t,undo:i,redo:u}}import{useCallback as H,useRef as W,useState as G}from"react";function J(e,o,a){let s=m(),t=U(e),i=W(null),[u,r]=G(!1),l={setLoading:r,setError:(n,d)=>s.setError(n,d),setValue:n=>t.setValue(n),getUploadKey:()=>i.current,setUploadKey:n=>{i.current=n}},B=H(S(e,o,l),[o,t,e,s]),f=H(b(e,a,l),[a,t,e,s]);return{value:t.value,setValue:t.setValue,error:t.meta?.error,isValidating:!!t.meta?.isValidating||u,upload:B,remove:f}}export{C as BitFormProvider,D as useBitArray,U as useBitField,j as useBitForm,O as useBitHistory,w as useBitPersist,K as useBitScope,q as useBitSteps,m as useBitStore,J as useBitUpload,z as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<{\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n } | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const meta = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","kernelCallbacks","path","msg","val","key","upload","useCallback","createUploadHandler","remove","createRemoveHandler"]}
1
+ {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { isHistoryMetaEqual, type HistoryMeta } from \"../core/history-status\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (lastMeta.current && isHistoryMetaEqual(lastMeta.current, nextMeta)) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","isHistoryMetaEqual","stableMeta","subscribe","cb","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","kernelCallbacks","path","msg","val","key","upload","useCallback","createUploadHandler","remove","createRemoveHandler"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkZO3GXKF3cjs = require('../chunk-ZO3GXKF3.cjs');require('../chunk-RFFMBY7M.cjs');require('../chunk-LOYB7TTM.cjs');var _chunkEI5L5L3Rcjs = require('../chunk-EI5L5L3R.cjs');var _react = require('react');function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=_chunkZO3GXKF3cjs.d.call(void 0, r),e=_react.useMemo.call(void 0, ()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=_react.useMemo.call(void 0, ()=>_chunkEI5L5L3Rcjs.M.call(void 0, o.value,_nullishCoalesce(e, () => (void 0))),[o.value,e]),p=_react.useCallback.call(void 0, u=>t(_chunkEI5L5L3Rcjs.N.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),x=_react.useCallback.call(void 0, u=>t(_chunkEI5L5L3Rcjs.N.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=_react.useCallback.call(void 0, ()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}exports.BitFormProvider = _chunkZO3GXKF3cjs.a; exports.useBitArray = _chunkZO3GXKF3cjs.e; exports.useBitField = E; exports.useBitForm = _chunkZO3GXKF3cjs.c; exports.useBitPersist = _chunkZO3GXKF3cjs.i; exports.useBitScope = _chunkZO3GXKF3cjs.f; exports.useBitSteps = _chunkZO3GXKF3cjs.g; exports.useBitStore = _chunkZO3GXKF3cjs.b; exports.useBitWatch = _chunkZO3GXKF3cjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunk3CARTBENcjs = require('../chunk-3CARTBEN.cjs');require('../chunk-JIWR4KSZ.cjs');require('../chunk-OZKLQRO6.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _react = require('react');function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=_chunk3CARTBENcjs.d.call(void 0, r),e=_react.useMemo.call(void 0, ()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=_react.useMemo.call(void 0, ()=>_chunkPFPGASVZcjs.b.call(void 0, o.value,_nullishCoalesce(e, () => (void 0))),[o.value,e]),p=_react.useCallback.call(void 0, u=>t(_chunkPFPGASVZcjs.c.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),x=_react.useCallback.call(void 0, u=>t(_chunkPFPGASVZcjs.c.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=_react.useCallback.call(void 0, ()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}exports.BitFormProvider = _chunk3CARTBENcjs.a; exports.useBitArray = _chunk3CARTBENcjs.e; exports.useBitField = E; exports.useBitForm = _chunk3CARTBENcjs.c; exports.useBitPersist = _chunk3CARTBENcjs.i; exports.useBitScope = _chunk3CARTBENcjs.f; exports.useBitSteps = _chunk3CARTBENcjs.g; exports.useBitStore = _chunk3CARTBENcjs.b; exports.useBitWatch = _chunk3CARTBENcjs.h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,9 +1,9 @@
1
- export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-Dt4zIl2u.cjs';
2
- import { f as BitPath, g as BitPathValue } from '../bus-a_GA51Qw.cjs';
3
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-a_GA51Qw.cjs';
1
+ export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-CIVN-oIi.cjs';
2
+ import { f as BitPath, g as BitPathValue } from '../bus-BeAeZwWu.cjs';
3
+ export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BeAeZwWu.cjs';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../public-types-D14VY_4o.cjs';
6
+ import '../public-types-BQXaxmAE.cjs';
7
7
  import '../types-D8DgIUhJ.cjs';
8
8
  import '../field-binding-BXw0Ku2c.cjs';
9
9
 
@@ -1,9 +1,9 @@
1
- export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-CNtQ3Gaq.js';
2
- import { f as BitPath, g as BitPathValue } from '../bus-BQI1FIOs.js';
3
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BQI1FIOs.js';
1
+ export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-iPWLbD8l.js';
2
+ import { f as BitPath, g as BitPathValue } from '../bus-B4zZmB9C.js';
3
+ export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-B4zZmB9C.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../public-types-D3WIiMGu.js';
6
+ import '../public-types-CVgFf_qY.js';
7
7
  import '../types-D8DgIUhJ.js';
8
8
  import '../field-binding-BXw0Ku2c.js';
9
9
 
@@ -1,2 +1,2 @@
1
- import{a as S,b as k,c as M,d as c,e as R,f as U,g as N,h as C,i as b}from"../chunk-66DIO2SH.js";import"../chunk-YGAD4ZZW.js";import"../chunk-AE4G32HS.js";import{M as f,N as l}from"../chunk-7LMNIQTT.js";import{useMemo as F,useCallback as d}from"react";function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=c(r),e=F(()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=F(()=>f(o.value,e??void 0),[o.value,e]),p=d(u=>t(l(u,e??void 0)),[e,t]),x=d(u=>t(l(u,e??void 0)),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=d(()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}export{S as BitFormProvider,R as useBitArray,E as useBitField,M as useBitForm,b as useBitPersist,U as useBitScope,N as useBitSteps,k as useBitStore,C as useBitWatch};
1
+ import{a as S,b as k,c as M,d as c,e as R,f as U,g as N,h as C,i as b}from"../chunk-UMKOKAPD.js";import"../chunk-2FDEJYA5.js";import"../chunk-64KSP4TP.js";import{b as f,c as l}from"../chunk-3NUJVIAM.js";import{useMemo as F,useCallback as d}from"react";function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=c(r),e=F(()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=F(()=>f(o.value,e??void 0),[o.value,e]),p=d(u=>t(l(u,e??void 0)),[e,t]),x=d(u=>t(l(u,e??void 0)),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=d(()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}export{S as BitFormProvider,R as useBitArray,E as useBitField,M as useBitForm,b as useBitPersist,U as useBitScope,N as useBitSteps,k as useBitStore,C as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMQX4YS6Dcjs = require('../chunk-MQX4YS6D.cjs');require('../chunk-MFSDDSVG.cjs');var _chunkYEXRRTI3cjs = require('../chunk-YEXRRTI3.cjs');var _chunkKYM7JG2Gcjs = require('../chunk-KYM7JG2G.cjs');require('../chunk-CFFLDMLG.cjs');exports.joiResolver = _chunkMQX4YS6Dcjs.a; exports.yupResolver = _chunkKYM7JG2Gcjs.a; exports.zodResolver = _chunkYEXRRTI3cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkDD6XWUMRcjs = require('../chunk-DD6XWUMR.cjs');require('../chunk-MFSDDSVG.cjs');var _chunk77PK7U73cjs = require('../chunk-77PK7U73.cjs');var _chunkUT63HKR6cjs = require('../chunk-UT63HKR6.cjs');require('../chunk-CTURHI75.cjs');exports.joiResolver = _chunkDD6XWUMRcjs.a; exports.yupResolver = _chunkUT63HKR6cjs.a; exports.zodResolver = _chunk77PK7U73cjs.a;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -3,7 +3,7 @@ export { zodResolver } from './zod.cjs';
3
3
  export { yupResolver } from './yup.cjs';
4
4
  export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.cjs';
5
5
  import 'joi';
6
- import '../bus-a_GA51Qw.cjs';
6
+ import '../bus-BeAeZwWu.cjs';
7
7
  import '../types-D8DgIUhJ.cjs';
8
8
  import 'zod';
9
9
  import 'yup';
@@ -3,7 +3,7 @@ export { zodResolver } from './zod.js';
3
3
  export { yupResolver } from './yup.js';
4
4
  export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.js';
5
5
  import 'joi';
6
- import '../bus-BQI1FIOs.js';
6
+ import '../bus-B4zZmB9C.js';
7
7
  import '../types-D8DgIUhJ.js';
8
8
  import 'zod';
9
9
  import 'yup';
@@ -1,2 +1,2 @@
1
- import{a as e}from"../chunk-BMHK77NL.js";import"../chunk-FQLJOSF7.js";import{a as o}from"../chunk-MBTLLIBM.js";import{a as r}from"../chunk-4XLU5ZCX.js";import"../chunk-K5NZDYAT.js";export{e as joiResolver,r as yupResolver,o as zodResolver};
1
+ import{a as e}from"../chunk-FGJB4DHQ.js";import"../chunk-FQLJOSF7.js";import{a as o}from"../chunk-M2XR4C7T.js";import{a as r}from"../chunk-GDRNKTHO.js";import"../chunk-GUU6EXFN.js";export{e as joiResolver,r as yupResolver,o as zodResolver};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMQX4YS6Dcjs = require('../chunk-MQX4YS6D.cjs');require('../chunk-CFFLDMLG.cjs');exports.joiResolver = _chunkMQX4YS6Dcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkDD6XWUMRcjs = require('../chunk-DD6XWUMR.cjs');require('../chunk-CTURHI75.cjs');exports.joiResolver = _chunkDD6XWUMRcjs.a;
2
2
  //# sourceMappingURL=joi.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { i as BitErrors } from '../bus-a_GA51Qw.cjs';
2
+ import { i as BitErrors } from '../bus-BeAeZwWu.cjs';
3
3
  import { BitJoiResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
4
  import '../types-D8DgIUhJ.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { i as BitErrors } from '../bus-BQI1FIOs.js';
2
+ import { i as BitErrors } from '../bus-B4zZmB9C.js';
3
3
  import { BitJoiResolverConfig, BitResolverScopeOptions } from './types.js';
4
4
  import '../types-D8DgIUhJ.js';
5
5
 
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-BMHK77NL.js";import"../chunk-K5NZDYAT.js";export{a as joiResolver};
1
+ import{a}from"../chunk-FGJB4DHQ.js";import"../chunk-GUU6EXFN.js";export{a as joiResolver};
2
2
  //# sourceMappingURL=joi.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKYM7JG2Gcjs = require('../chunk-KYM7JG2G.cjs');require('../chunk-CFFLDMLG.cjs');exports.yupResolver = _chunkKYM7JG2Gcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUT63HKR6cjs = require('../chunk-UT63HKR6.cjs');require('../chunk-CTURHI75.cjs');exports.yupResolver = _chunkUT63HKR6cjs.a;
2
2
  //# sourceMappingURL=yup.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { i as BitErrors } from '../bus-a_GA51Qw.cjs';
2
+ import { i as BitErrors } from '../bus-BeAeZwWu.cjs';
3
3
  import { BitYupResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
4
  import '../types-D8DgIUhJ.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { i as BitErrors } from '../bus-BQI1FIOs.js';
2
+ import { i as BitErrors } from '../bus-B4zZmB9C.js';
3
3
  import { BitYupResolverConfig, BitResolverScopeOptions } from './types.js';
4
4
  import '../types-D8DgIUhJ.js';
5
5
 
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-4XLU5ZCX.js";import"../chunk-K5NZDYAT.js";export{a as yupResolver};
1
+ import{a}from"../chunk-GDRNKTHO.js";import"../chunk-GUU6EXFN.js";export{a as yupResolver};
2
2
  //# sourceMappingURL=yup.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYEXRRTI3cjs = require('../chunk-YEXRRTI3.cjs');require('../chunk-CFFLDMLG.cjs');exports.zodResolver = _chunkYEXRRTI3cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk77PK7U73cjs = require('../chunk-77PK7U73.cjs');require('../chunk-CTURHI75.cjs');exports.zodResolver = _chunk77PK7U73cjs.a;
2
2
  //# sourceMappingURL=zod.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { i as BitErrors } from '../bus-a_GA51Qw.cjs';
2
+ import { i as BitErrors } from '../bus-BeAeZwWu.cjs';
3
3
  import { BitZodResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
4
  import '../types-D8DgIUhJ.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { i as BitErrors } from '../bus-BQI1FIOs.js';
2
+ import { i as BitErrors } from '../bus-B4zZmB9C.js';
3
3
  import { BitZodResolverConfig, BitResolverScopeOptions } from './types.js';
4
4
  import '../types-D8DgIUhJ.js';
5
5