@lehnihon/bit-form 2.2.18 → 2.2.19

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 (136) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.js +1 -1
  3. package/dist/angular/index.js.map +1 -1
  4. package/dist/chunk-23DHXQOC.js +2 -0
  5. package/dist/chunk-23DHXQOC.js.map +1 -0
  6. package/dist/{chunk-DD6XWUMR.cjs → chunk-27LJCW56.cjs} +2 -2
  7. package/dist/chunk-27LJCW56.cjs.map +1 -0
  8. package/dist/chunk-32RH5MSM.js +2 -0
  9. package/dist/chunk-32RH5MSM.js.map +1 -0
  10. package/dist/{chunk-P5YQ62YN.cjs → chunk-33TGLA5D.cjs} +2 -2
  11. package/dist/{chunk-P5YQ62YN.cjs.map → chunk-33TGLA5D.cjs.map} +1 -1
  12. package/dist/chunk-3CPIJF3Z.cjs +2 -0
  13. package/dist/chunk-3CPIJF3Z.cjs.map +1 -0
  14. package/dist/{chunk-SYEUXL2E.js → chunk-3WNZPBME.js} +2 -2
  15. package/dist/chunk-4WPLTOBT.cjs +2 -0
  16. package/dist/chunk-4WPLTOBT.cjs.map +1 -0
  17. package/dist/chunk-5ILGCBKG.cjs +2 -0
  18. package/dist/chunk-5ILGCBKG.cjs.map +1 -0
  19. package/dist/chunk-725CMNAV.cjs +2 -0
  20. package/dist/chunk-725CMNAV.cjs.map +1 -0
  21. package/dist/{chunk-GKNGJOB3.cjs → chunk-7IO2KLSJ.cjs} +2 -2
  22. package/dist/{chunk-GKNGJOB3.cjs.map → chunk-7IO2KLSJ.cjs.map} +1 -1
  23. package/dist/{chunk-HE6EQZTH.js → chunk-AJUX7LYB.js} +2 -2
  24. package/dist/chunk-B45EMB4Q.js +2 -0
  25. package/dist/chunk-B45EMB4Q.js.map +1 -0
  26. package/dist/chunk-CIS3YZSK.cjs +2 -0
  27. package/dist/chunk-CIS3YZSK.cjs.map +1 -0
  28. package/dist/chunk-DGEGYNQL.js +2 -0
  29. package/dist/{chunk-3NUJVIAM.js.map → chunk-DGEGYNQL.js.map} +1 -1
  30. package/dist/{chunk-AVUK52JW.cjs → chunk-EPBSLPRL.cjs} +2 -2
  31. package/dist/{chunk-AVUK52JW.cjs.map → chunk-EPBSLPRL.cjs.map} +1 -1
  32. package/dist/chunk-HTMNDK6W.js +2 -0
  33. package/dist/chunk-HTMNDK6W.js.map +1 -0
  34. package/dist/chunk-JUDBIEZK.js +2 -0
  35. package/dist/chunk-JUDBIEZK.js.map +1 -0
  36. package/dist/{chunk-77PK7U73.cjs → chunk-K2JSAJAF.cjs} +2 -2
  37. package/dist/chunk-K2JSAJAF.cjs.map +1 -0
  38. package/dist/chunk-K2KCQEER.js +2 -0
  39. package/dist/chunk-K2KCQEER.js.map +1 -0
  40. package/dist/chunk-K65TKDQ2.cjs +2 -0
  41. package/dist/chunk-K65TKDQ2.cjs.map +1 -0
  42. package/dist/chunk-S5A65JVL.cjs +2 -0
  43. package/dist/chunk-S5A65JVL.cjs.map +1 -0
  44. package/dist/chunk-SFVGMVIE.js +2 -0
  45. package/dist/chunk-SFVGMVIE.js.map +1 -0
  46. package/dist/chunk-T7TOEIOH.js +2 -0
  47. package/dist/chunk-T7TOEIOH.js.map +1 -0
  48. package/dist/chunk-TLUCO2ZN.cjs +2 -0
  49. package/dist/chunk-TLUCO2ZN.cjs.map +1 -0
  50. package/dist/chunk-WEZ5Q6YO.js +2 -0
  51. package/dist/chunk-WEZ5Q6YO.js.map +1 -0
  52. package/dist/{chunk-YO4TZ6N6.js → chunk-Y34N5TWV.js} +2 -2
  53. package/dist/cli/index.cjs +5 -5
  54. package/dist/core/bindings.cjs +1 -1
  55. package/dist/core/bindings.js +1 -1
  56. package/dist/core/store.cjs +1 -1
  57. package/dist/core/store.js +1 -1
  58. package/dist/core/utils.cjs +1 -1
  59. package/dist/core/utils.js +1 -1
  60. package/dist/core.cjs +1 -1
  61. package/dist/core.js +1 -1
  62. package/dist/devtools/bridge.cjs +1 -1
  63. package/dist/devtools/bridge.js +1 -1
  64. package/dist/devtools/index.cjs +10 -10
  65. package/dist/devtools/index.cjs.map +1 -1
  66. package/dist/devtools/index.js +10 -10
  67. package/dist/devtools/index.js.map +1 -1
  68. package/dist/index.cjs +1 -1
  69. package/dist/index.js +1 -1
  70. package/dist/mask.cjs +1 -1
  71. package/dist/mask.js +1 -1
  72. package/dist/react/index.cjs +1 -1
  73. package/dist/react/index.cjs.map +1 -1
  74. package/dist/react/index.js +1 -1
  75. package/dist/react/index.js.map +1 -1
  76. package/dist/react-native/index.cjs +1 -1
  77. package/dist/react-native/index.cjs.map +1 -1
  78. package/dist/react-native/index.js +1 -1
  79. package/dist/react-native/index.js.map +1 -1
  80. package/dist/resolvers/index.cjs +1 -1
  81. package/dist/resolvers/index.js +1 -1
  82. package/dist/resolvers/joi.cjs +1 -1
  83. package/dist/resolvers/joi.js +1 -1
  84. package/dist/resolvers/yup.cjs +1 -1
  85. package/dist/resolvers/yup.js +1 -1
  86. package/dist/resolvers/zod.cjs +1 -1
  87. package/dist/resolvers/zod.js +1 -1
  88. package/dist/utils.cjs +1 -1
  89. package/dist/utils.js +1 -1
  90. package/dist/vue/index.cjs +1 -1
  91. package/dist/vue/index.cjs.map +1 -1
  92. package/dist/vue/index.d.cts +18 -17
  93. package/dist/vue/index.d.ts +18 -17
  94. package/dist/vue/index.js +1 -1
  95. package/dist/vue/index.js.map +1 -1
  96. package/package.json +7 -6
  97. package/dist/chunk-3774TIGK.js +0 -2
  98. package/dist/chunk-3774TIGK.js.map +0 -1
  99. package/dist/chunk-3NUJVIAM.js +0 -2
  100. package/dist/chunk-77PK7U73.cjs.map +0 -1
  101. package/dist/chunk-CTURHI75.cjs +0 -2
  102. package/dist/chunk-CTURHI75.cjs.map +0 -1
  103. package/dist/chunk-DD6XWUMR.cjs.map +0 -1
  104. package/dist/chunk-FGJB4DHQ.js +0 -2
  105. package/dist/chunk-FGJB4DHQ.js.map +0 -1
  106. package/dist/chunk-FTXV2NZO.cjs +0 -2
  107. package/dist/chunk-FTXV2NZO.cjs.map +0 -1
  108. package/dist/chunk-G3EHXKOS.js +0 -2
  109. package/dist/chunk-G3EHXKOS.js.map +0 -1
  110. package/dist/chunk-GDRNKTHO.js +0 -2
  111. package/dist/chunk-GDRNKTHO.js.map +0 -1
  112. package/dist/chunk-GSZTHF7Z.js +0 -2
  113. package/dist/chunk-GSZTHF7Z.js.map +0 -1
  114. package/dist/chunk-GUU6EXFN.js +0 -2
  115. package/dist/chunk-GUU6EXFN.js.map +0 -1
  116. package/dist/chunk-L7EAZ6K6.cjs +0 -2
  117. package/dist/chunk-L7EAZ6K6.cjs.map +0 -1
  118. package/dist/chunk-LIHWJJIM.js +0 -2
  119. package/dist/chunk-LIHWJJIM.js.map +0 -1
  120. package/dist/chunk-M2XR4C7T.js +0 -2
  121. package/dist/chunk-M2XR4C7T.js.map +0 -1
  122. package/dist/chunk-PFPGASVZ.cjs +0 -2
  123. package/dist/chunk-PFPGASVZ.cjs.map +0 -1
  124. package/dist/chunk-QCKCONCU.js +0 -2
  125. package/dist/chunk-QCKCONCU.js.map +0 -1
  126. package/dist/chunk-RSH6LQVC.cjs +0 -2
  127. package/dist/chunk-RSH6LQVC.cjs.map +0 -1
  128. package/dist/chunk-U5TBWV74.cjs +0 -2
  129. package/dist/chunk-U5TBWV74.cjs.map +0 -1
  130. package/dist/chunk-UT63HKR6.cjs +0 -2
  131. package/dist/chunk-UT63HKR6.cjs.map +0 -1
  132. package/dist/chunk-WRNR6SXK.cjs +0 -2
  133. package/dist/chunk-WRNR6SXK.cjs.map +0 -1
  134. /package/dist/{chunk-SYEUXL2E.js.map → chunk-3WNZPBME.js.map} +0 -0
  135. /package/dist/{chunk-HE6EQZTH.js.map → chunk-AJUX7LYB.js.map} +0 -0
  136. /package/dist/{chunk-YO4TZ6N6.js.map → chunk-Y34N5TWV.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as g,b as c,c as v}from"../chunk-YO4TZ6N6.js";import{a as p,d as u}from"../chunk-K5X37E3U.js";import"../chunk-5NA2TFPG.js";import{a as f}from"../chunk-LIHWJJIM.js";import"../chunk-SYEUXL2E.js";import"../chunk-W2E5UIXT.js";import"../chunk-UIKO6GGW.js";import"../chunk-ICYXODTQ.js";import"../chunk-HE6EQZTH.js";import"../chunk-G3EHXKOS.js";import"../chunk-QCKCONCU.js";import"../chunk-3NUJVIAM.js";function x(){return`
1
+ import{a as g,b as c,c as x}from"../chunk-Y34N5TWV.js";import{a as p,d as v}from"../chunk-K5X37E3U.js";import"../chunk-5NA2TFPG.js";import{a as u}from"../chunk-B45EMB4Q.js";import"../chunk-3WNZPBME.js";import"../chunk-W2E5UIXT.js";import"../chunk-UIKO6GGW.js";import"../chunk-ICYXODTQ.js";import"../chunk-AJUX7LYB.js";import"../chunk-T7TOEIOH.js";import"../chunk-32RH5MSM.js";import"../chunk-DGEGYNQL.js";function y(){return`
2
2
  .bit-devtools-container {
3
3
  position: fixed;
4
4
  bottom: 20px;
@@ -86,16 +86,16 @@ import{a as g,b as c,c as v}from"../chunk-YO4TZ6N6.js";import{a as p,d as u}from
86
86
 
87
87
  pre.bit-pre { background: #020617; padding: 10px; border-radius: 4px; font-size: 11px; overflow-x: auto; border: 1px solid #1e293b; margin: 0; color: #e2e8f0; }
88
88
  pre.bit-error-box { background: rgba(239, 68, 68, 0.05); padding: 10px; border-radius: 4px; font-size: 11px; border: 1px dashed #ef4444; color: #fca5a5; margin: 0; overflow-x: auto; }
89
- `}var d=class{container;actions;rootElement;currentStoresState={};isOpen=!1;constructor(r,i){if(this.container=r,this.actions=i,!document.getElementById("bit-devtools-styles")){let t=document.createElement("style");t.id="bit-devtools-styles",t.textContent=x(),document.head.appendChild(t)}this.rootElement=document.createElement("div"),this.rootElement.className="bit-devtools-container",this.container.appendChild(this.rootElement),this.rootElement.addEventListener("click",t=>{let e=t.target;if(e.closest(".bit-devtools-trigger")){this.isOpen=!this.isOpen,this.render();return}let o=e.closest(".bit-action-btn");if(o&&!o.hasAttribute("disabled")){let a=o.getAttribute("data-action"),s=o.getAttribute("data-store");a&&s&&(a==="undo"&&this.actions.onUndo(s),a==="redo"&&this.actions.onRedo(s),a==="reset"&&this.actions.onReset(s))}})}updateState(r){this.currentStoresState=r,this.render()}render(){let r=Object.entries(this.currentStoresState);if(r.length===0){this.rootElement.innerHTML="";return}let i="";if(this.isOpen){i=`
89
+ `}function b(r){return r.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function T(r){try{return JSON.stringify(r,null,2)}catch{return"[Unserializable]"}}var d=class{container;actions;rootElement;currentStoresState={};isOpen=!1;constructor(n,i){if(this.container=n,this.actions=i,!document.getElementById("bit-devtools-styles")){let t=document.createElement("style");t.id="bit-devtools-styles",t.textContent=y(),document.head.appendChild(t)}this.rootElement=document.createElement("div"),this.rootElement.className="bit-devtools-container",this.container.appendChild(this.rootElement),this.rootElement.addEventListener("click",t=>{let e=t.target;if(e.closest(".bit-devtools-trigger")){this.isOpen=!this.isOpen,this.render();return}let o=e.closest(".bit-action-btn");if(o&&!o.hasAttribute("disabled")){let a=o.getAttribute("data-action"),s=o.getAttribute("data-store");a&&s&&(a==="undo"&&this.actions.onUndo(s),a==="redo"&&this.actions.onRedo(s),a==="reset"&&this.actions.onReset(s))}})}updateState(n){this.currentStoresState=n,this.render()}render(){let n=Object.entries(this.currentStoresState);if(n.length===0){this.rootElement.innerHTML="";return}let i="";if(this.isOpen){i=`
90
90
  <div class="bit-devtools-panel">
91
91
  <div class="bit-devtools-header">
92
92
  <h2><span style="font-size: 20px;">\u{1F6E0}</span> Bit-Form DevTools</h2>
93
93
  <span style="font-size: 11px; color: #64748b;">v1.0.0</span>
94
94
  </div>
95
- `;for(let[e,o]of r){let a=Object.keys(o.errors||{}).length>0,s=o._meta||{totalSteps:0,currentIndex:-1,canUndo:!1,canRedo:!1},l=s.currentIndex+1,m=s.totalSteps;i+=`
95
+ `;for(let[e,o]of n){let a=Object.keys(o.errors||{}).length>0,s=o._meta||{totalSteps:0,currentIndex:-1,canUndo:!1,canRedo:!1},l=s.currentIndex+1,m=s.totalSteps;i+=`
96
96
  <div class="bit-store-block">
97
97
  <div class="bit-store-header">
98
- <h3 class="bit-store-title">${e}</h3>
98
+ <h3 class="bit-store-title">${b(e)}</h3>
99
99
  <div class="bit-badge-group">
100
100
  <span class="bit-badge ${o.isValid?"badge-success":"badge-error"}">
101
101
  ${o.isValid?"\u2713 Valid":"\u2715 Invalid"}
@@ -108,26 +108,26 @@ import{a as g,b as c,c as v}from"../chunk-YO4TZ6N6.js";import{a as p,d as u}from
108
108
  <span class="bit-section-title">Time Travel (${l}/${m})</span>
109
109
 
110
110
  <div class="bit-controls">
111
- <button class="bit-action-btn" data-action="undo" data-store="${e}" ${s.canUndo?"":"disabled"}>
111
+ <button class="bit-action-btn" data-action="undo" data-store="${b(e)}" ${s.canUndo?"":"disabled"}>
112
112
  <span>\u21BA</span> Undo
113
113
  </button>
114
- <button class="bit-action-btn" data-action="redo" data-store="${e}" ${s.canRedo?"":"disabled"}>
114
+ <button class="bit-action-btn" data-action="redo" data-store="${b(e)}" ${s.canRedo?"":"disabled"}>
115
115
  <span>\u21BB</span> Redo
116
116
  </button>
117
- <button class="bit-action-btn bit-btn-reset" data-action="reset" data-store="${e}">
117
+ <button class="bit-action-btn bit-btn-reset" data-action="reset" data-store="${b(e)}">
118
118
  <span>\u{1F5D1}</span> Reset
119
119
  </button>
120
120
  </div>
121
121
  `,a&&(i+=`
122
122
  <span class="bit-section-title" style="color: #f87171;">\u26A0\uFE0F Validations Failing</span>
123
- <pre class="bit-error-box">${JSON.stringify(o.errors,null,2)}</pre>
123
+ <pre class="bit-error-box">${T(o.errors)}</pre>
124
124
  `),i+=`
125
125
  <span class="bit-section-title">Values</span>
126
- <pre class="bit-pre">${JSON.stringify(o.values,null,2)}</pre>
126
+ <pre class="bit-pre">${T(o.values)}</pre>
127
127
  </div>
128
128
  `}i+="</div>"}let t=`
129
129
  <button class="bit-devtools-trigger" style="transform: ${this.isOpen?"scale(0.9)":"scale(1)"};" title="Abrir DevTools">
130
130
  ${this.isOpen?"\u2716":"Bit"}
131
131
  </button>
132
- `;this.rootElement.innerHTML=i+t}};function y(n,r=f){let i=new d(n,{onUndo:o=>c(r.stores,o)?.undo(),onRedo:o=>c(r.stores,o)?.redo(),onReset:o=>c(r.stores,o)?.reset()}),t=()=>g(r.stores);i.updateState(t());let e=r.subscribe(()=>{i.updateState(t())});return{ui:i,destroy:()=>{e(),n.innerHTML=""}}}function T(n,r="ws://localhost:3000",i){let t=new WebSocket(r),e=s=>{t.readyState===WebSocket.OPEN?t.send(JSON.stringify(s)):console.warn("[bit-form] Tentativa de envio falhou. WebSocket n\xE3o est\xE1 aberto.")},o=(s,l)=>{e({type:"ACTION",protocolVersion:1,payload:{storeId:s,action:l}})},a=new d(n,{onUndo:s=>o(s,"undo"),onRedo:s=>o(s,"redo"),onReset:s=>o(s,"reset")});return t.addEventListener("open",()=>{e({type:"HELLO",protocolVersion:1,payload:{role:"client",protocolVersion:1}}),console.log(`[bit-form] Conectado ao DevTools remoto em ${r}`)}),t.addEventListener("message",s=>{try{let l=JSON.parse(s.data);u(l)&&a.updateState(l.payload)}catch(l){console.error("[bit-form] Erro ao processar mensagem do WebSocket:",l)}}),t.addEventListener("error",s=>{console.error("[bit-form] Erro na conex\xE3o do DevTools remoto:",s)}),{ui:a,destroy:()=>{(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),n.innerHTML=""}}}function b(n={}){let{mode:r="local",url:i,bus:t}=n,e,o=!1;if(typeof n.container=="string"){let s=document.querySelector(n.container);if(!s)throw new Error(`[bit-form] Container '${n.container}' n\xE3o encontrado na p\xE1gina.`);e=s}else n.container instanceof HTMLElement?e=n.container:(e=document.createElement("div"),e.id="bit-form-devtools-root",e.style.position="fixed",e.style.bottom="20px",e.style.right="20px",e.style.zIndex="9999",e.style.maxHeight="80vh",e.style.overflowY="auto",e.style.boxShadow="0 10px 25px rgba(0,0,0,0.1)",document.body.appendChild(e),o=!0);let a;if(r==="local")console.log("[bit-form] DevTools iniciado em modo Local."),a=y(e,t);else if(r==="remote")console.log("[bit-form] DevTools iniciado em modo Remote."),a=T(e,i,t);else throw new Error(`[bit-form] Modo DevTools inv\xE1lido: ${r}`);return{...a,destroy:()=>{a&&typeof a.destroy=="function"&&a.destroy(),o&&e.parentNode?e.parentNode.removeChild(e):e.innerHTML=""}}}function h(n){return typeof n=="boolean"?{enabled:n,mode:"local"}:{enabled:!!n,mode:n?.mode??"local",url:n?.url}}function D(n){return{name:"bit-devtools",setup:r=>{let i=h(n??r.getConfig().devTools);if(!i.enabled)return;let t=null,e=r.getConfig().bus;try{if(i.mode==="remote")t=v(i.url||"ws://localhost:3000",e);else{let o=b({bus:e});t=o&&typeof o.destroy=="function"?o.destroy:null}}catch{}return()=>{t&&(t(),t=null)}}}}export{p as DEVTOOLS_PROTOCOL_VERSION,D as createDevToolsPlugin,b as initDevTools};
132
+ `;this.rootElement.innerHTML=i+t}};function h(r,n=u){let i=new d(r,{onUndo:o=>c(n.stores,o)?.undo(),onRedo:o=>c(n.stores,o)?.redo(),onReset:o=>c(n.stores,o)?.reset()}),t=()=>g(n.stores);i.updateState(t());let e=n.subscribe(()=>{i.updateState(t())});return{ui:i,destroy:()=>{e(),r.innerHTML=""}}}function D(r,n="ws://localhost:3000",i){let t=new WebSocket(n),e=s=>{t.readyState===WebSocket.OPEN?t.send(JSON.stringify(s)):console.warn("[bit-form] Tentativa de envio falhou. WebSocket n\xE3o est\xE1 aberto.")},o=(s,l)=>{e({type:"ACTION",protocolVersion:1,payload:{storeId:s,action:l}})},a=new d(r,{onUndo:s=>o(s,"undo"),onRedo:s=>o(s,"redo"),onReset:s=>o(s,"reset")});return t.addEventListener("open",()=>{e({type:"HELLO",protocolVersion:1,payload:{role:"client",protocolVersion:1}}),console.log(`[bit-form] Conectado ao DevTools remoto em ${n}`)}),t.addEventListener("message",s=>{try{let l=JSON.parse(s.data);v(l)&&a.updateState(l.payload)}catch(l){console.error("[bit-form] Erro ao processar mensagem do WebSocket:",l)}}),t.addEventListener("error",s=>{console.error("[bit-form] Erro na conex\xE3o do DevTools remoto:",s)}),{ui:a,destroy:()=>{(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),r.innerHTML=""}}}function f(r={}){let{mode:n="local",url:i,bus:t}=r,e,o=!1;if(typeof r.container=="string"){let s=document.querySelector(r.container);if(!s)throw new Error(`[bit-form] Container '${r.container}' n\xE3o encontrado na p\xE1gina.`);e=s}else r.container instanceof HTMLElement?e=r.container:(e=document.createElement("div"),e.id="bit-form-devtools-root",e.style.position="fixed",e.style.bottom="20px",e.style.right="20px",e.style.zIndex="9999",e.style.maxHeight="80vh",e.style.overflowY="auto",e.style.boxShadow="0 10px 25px rgba(0,0,0,0.1)",document.body.appendChild(e),o=!0);let a;if(n==="local")console.log("[bit-form] DevTools iniciado em modo Local."),a=h(e,t);else if(n==="remote")console.log("[bit-form] DevTools iniciado em modo Remote."),a=D(e,i,t);else throw new Error(`[bit-form] Modo DevTools inv\xE1lido: ${n}`);return{...a,destroy:()=>{a&&typeof a.destroy=="function"&&a.destroy(),o&&e.parentNode?e.parentNode.removeChild(e):e.innerHTML=""}}}function S(r){return typeof r=="boolean"?{enabled:r,mode:"local"}:{enabled:!!r,mode:r?.mode??"local",url:r?.url}}function E(){return typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV==="production"?!0:(typeof process<"u"&&typeof process.env<"u"&&process.env.VITEST==="true",!1)}function O(r){return{name:"bit-devtools",setup:n=>{let i=S(r??n.getConfig().devTools);if(!i.enabled||E()&&r!==!0)return;let t=null,e=n.getConfig().bus;try{if(i.mode==="remote")t=x(i.url||"ws://localhost:3000",e);else{let o=f({bus:e});t=o&&typeof o.destroy=="function"?o.destroy:null}}catch{}return()=>{t&&(t(),t=null)}}}}export{p as DEVTOOLS_PROTOCOL_VERSION,O as createDevToolsPlugin,f as initDevTools};
133
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/devtools/ui/styles.ts","../../src/devtools/ui/index.ts","../../src/devtools/adapters/local.ts","../../src/devtools/adapters/remote.ts","../../src/devtools/init-dev-tools.ts","../../src/devtools/create-plugin.ts"],"sourcesContent":["export function getDevToolsCSS(): string {\n return `\n .bit-devtools-container {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 9999;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n }\n\n .bit-devtools-trigger {\n background: #10b981;\n color: #fff;\n border: none;\n border-radius: 50%;\n width: 48px;\n height: 48px;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s;\n font-size: 16px;\n margin-top: 16px;\n }\n .bit-devtools-trigger:hover { transform: scale(1.05); }\n\n .bit-devtools-panel {\n width: 450px;\n max-height: 80vh;\n background: #0f172a;\n color: #f8fafc;\n border-radius: 8px;\n padding: 16px;\n overflow-y: auto;\n box-shadow: 0 20px 25px -5px rgba(0,0,0,0.5), 0 8px 10px -6px rgba(0,0,0,0.5);\n border: 1px solid #334155;\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .bit-devtools-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 12px;\n border-bottom: 1px solid #1e293b;\n }\n .bit-devtools-header h2 { margin: 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }\n\n .bit-store-block {\n background: #1e293b;\n border-radius: 6px;\n padding: 12px;\n border: 1px solid #334155;\n }\n\n .bit-store-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n }\n .bit-store-title { margin: 0; color: #38bdf8; font-size: 14px; font-weight: bold; }\n\n .bit-badge-group { display: flex; gap: 6px; flex-wrap: wrap; }\n .bit-badge { font-size: 10px; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; font-weight: bold; }\n .badge-success { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.2); }\n .badge-error { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.2); }\n .badge-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.2); }\n .badge-info { background: rgba(56, 189, 248, 0.2); color: #7dd3fc; border: 1px solid rgba(56, 189, 248, 0.2); }\n\n .bit-section-title { font-size: 11px; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; margin: 12px 0 4px 0; display: block; }\n\n .bit-controls { display: flex; gap: 6px; margin-bottom: 12px; background: #0f172a; padding: 8px; border-radius: 6px; }\n .bit-action-btn { flex: 1; background: #334155; color: #e2e8f0; border: 1px solid #475569; padding: 6px 0; border-radius: 4px; cursor: pointer; font-size: 11px; display: flex; align-items: center; justify-content: center; gap: 4px; transition: all 0.2s; }\n .bit-action-btn:hover:not(:disabled) { background: #475569; }\n .bit-action-btn:disabled { opacity: 0.5; cursor: not-allowed; }\n .bit-btn-reset { color: #fca5a5; border-color: rgba(239,68,68,0.3); }\n .bit-btn-reset:hover { background: rgba(239,68,68,0.1) !important; }\n\n pre.bit-pre { background: #020617; padding: 10px; border-radius: 4px; font-size: 11px; overflow-x: auto; border: 1px solid #1e293b; margin: 0; color: #e2e8f0; }\n pre.bit-error-box { background: rgba(239, 68, 68, 0.05); padding: 10px; border-radius: 4px; font-size: 11px; border: 1px dashed #ef4444; color: #fca5a5; margin: 0; overflow-x: auto; }\n `;\n}\n","import { getDevToolsCSS } from \"./styles\";\nimport type { DevToolsActions } from \"../types\";\nimport type { DevToolsStoreSnapshots } from \"../protocol\";\n\nexport type { DevToolsActions };\n\nexport class BitFormDevToolsUI {\n private container: HTMLElement;\n private actions: DevToolsActions;\n private rootElement: HTMLDivElement;\n private currentStoresState: DevToolsStoreSnapshots = {};\n private isOpen = false;\n\n constructor(container: HTMLElement, actions: DevToolsActions) {\n this.container = container;\n this.actions = actions;\n\n if (!document.getElementById(\"bit-devtools-styles\")) {\n const style = document.createElement(\"style\");\n style.id = \"bit-devtools-styles\";\n style.textContent = getDevToolsCSS();\n document.head.appendChild(style);\n }\n\n this.rootElement = document.createElement(\"div\");\n this.rootElement.className = \"bit-devtools-container\";\n this.container.appendChild(this.rootElement);\n\n this.rootElement.addEventListener(\"click\", (e) => {\n const target = e.target as HTMLElement;\n\n // Evento do botão flutuante\n if (target.closest(\".bit-devtools-trigger\")) {\n this.isOpen = !this.isOpen;\n this.render();\n return;\n }\n\n // Eventos dos botões de ação\n const btn = target.closest(\".bit-action-btn\");\n if (btn && !btn.hasAttribute(\"disabled\")) {\n const action = btn.getAttribute(\"data-action\");\n const storeId = btn.getAttribute(\"data-store\");\n\n if (action && storeId) {\n if (action === \"undo\") this.actions.onUndo(storeId);\n if (action === \"redo\") this.actions.onRedo(storeId);\n if (action === \"reset\") this.actions.onReset(storeId);\n }\n }\n });\n }\n\n public updateState(storesState: DevToolsStoreSnapshots) {\n this.currentStoresState = storesState;\n this.render();\n }\n\n private render() {\n const storeEntries = Object.entries(this.currentStoresState);\n if (storeEntries.length === 0) {\n this.rootElement.innerHTML = \"\";\n return;\n }\n\n let panelHtml = \"\";\n\n if (this.isOpen) {\n panelHtml = `\n <div class=\"bit-devtools-panel\">\n <div class=\"bit-devtools-header\">\n <h2><span style=\"font-size: 20px;\">🛠</span> Bit-Form DevTools</h2>\n <span style=\"font-size: 11px; color: #64748b;\">v1.0.0</span>\n </div>\n `;\n\n for (const [id, state] of storeEntries) {\n const hasErrors = Object.keys(state.errors || {}).length > 0;\n\n // Lemos os metadados do histórico que o adaptador injetou\n const meta = state._meta || {\n totalSteps: 0,\n currentIndex: -1,\n canUndo: false,\n canRedo: false,\n };\n const currentStep = meta.currentIndex + 1;\n const totalSteps = meta.totalSteps;\n\n panelHtml += `\n <div class=\"bit-store-block\">\n <div class=\"bit-store-header\">\n <h3 class=\"bit-store-title\">${id}</h3>\n <div class=\"bit-badge-group\">\n <span class=\"bit-badge ${state.isValid ? \"badge-success\" : \"badge-error\"}\">\n ${state.isValid ? \"✓ Valid\" : \"✕ Invalid\"}\n </span>\n ${state.isDirty ? `<span class=\"bit-badge badge-warn\">Dirty</span>` : \"\"}\n ${state.isSubmitting ? `<span class=\"bit-badge badge-info\">⏳ Submitting</span>` : \"\"}\n </div>\n </div>\n\n <span class=\"bit-section-title\">Time Travel (${currentStep}/${totalSteps})</span>\n \n <div class=\"bit-controls\">\n <button class=\"bit-action-btn\" data-action=\"undo\" data-store=\"${id}\" ${meta.canUndo ? \"\" : \"disabled\"}>\n <span>↺</span> Undo\n </button>\n <button class=\"bit-action-btn\" data-action=\"redo\" data-store=\"${id}\" ${meta.canRedo ? \"\" : \"disabled\"}>\n <span>↻</span> Redo\n </button>\n <button class=\"bit-action-btn bit-btn-reset\" data-action=\"reset\" data-store=\"${id}\">\n <span>🗑</span> Reset\n </button>\n </div>\n `;\n\n if (hasErrors) {\n panelHtml += `\n <span class=\"bit-section-title\" style=\"color: #f87171;\">⚠️ Validations Failing</span>\n <pre class=\"bit-error-box\">${JSON.stringify(state.errors, null, 2)}</pre>\n `;\n }\n\n panelHtml += `\n <span class=\"bit-section-title\">Values</span>\n <pre class=\"bit-pre\">${JSON.stringify(state.values, null, 2)}</pre>\n </div>\n `;\n }\n\n panelHtml += `</div>`;\n }\n\n // Botão Flutuante (sempre renderizado)\n const triggerHtml = `\n <button class=\"bit-devtools-trigger\" style=\"transform: ${this.isOpen ? \"scale(0.9)\" : \"scale(1)\"};\" title=\"Abrir DevTools\">\n ${this.isOpen ? \"✖\" : \"Bit\"}\n </button>\n `;\n\n this.rootElement.innerHTML = panelHtml + triggerHtml;\n }\n}\n","import { bitBus } from \"../../core\";\nimport type { BitBus } from \"../../core\";\nimport { BitFormDevToolsUI } from \"../ui\";\nimport { createDevToolsSnapshotMap } from \"../store-snapshot\";\nimport { getDevToolsActionableStore } from \"../store-port\";\n\nexport function setupLocalDevTools(\n container: HTMLElement,\n bus: BitBus = bitBus,\n) {\n const ui = new BitFormDevToolsUI(container, {\n onUndo: (id) => getDevToolsActionableStore(bus.stores, id)?.undo(),\n onRedo: (id) => getDevToolsActionableStore(bus.stores, id)?.redo(),\n onReset: (id) => getDevToolsActionableStore(bus.stores, id)?.reset(),\n });\n\n const getFullSnapshot = () => createDevToolsSnapshotMap(bus.stores);\n\n ui.updateState(getFullSnapshot());\n\n const unsubscribe = bus.subscribe(() => {\n ui.updateState(getFullSnapshot());\n });\n\n return {\n ui,\n destroy: () => {\n unsubscribe();\n container.innerHTML = \"\";\n },\n };\n}\n","import { BitFormDevToolsUI } from \"../ui\";\nimport type { BitBus } from \"../../core\";\nimport type {\n DevToolsHelloMessage,\n DevToolsActionMessage,\n DevToolsActionName,\n DevToolsRemoteMessage,\n} from \"../types\";\nimport {\n DEVTOOLS_PROTOCOL_VERSION,\n isDevToolsStateUpdateMessage,\n} from \"../protocol\";\n\nexport function setupRemoteDevTools(\n container: HTMLElement,\n url: string = \"ws://localhost:3000\",\n _bus?: BitBus,\n) {\n const socket = new WebSocket(url);\n\n const sendMessage = (message: DevToolsRemoteMessage) => {\n if (socket.readyState === WebSocket.OPEN) {\n socket.send(JSON.stringify(message));\n } else {\n console.warn(\n \"[bit-form] Tentativa de envio falhou. WebSocket não está aberto.\",\n );\n }\n };\n\n const sendAction = (storeId: string, action: DevToolsActionName) => {\n const message: DevToolsActionMessage = {\n type: \"ACTION\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { storeId, action },\n };\n sendMessage(message);\n };\n\n const ui = new BitFormDevToolsUI(container, {\n onUndo: (id) => sendAction(id, \"undo\"),\n onRedo: (id) => sendAction(id, \"redo\"),\n onReset: (id) => sendAction(id, \"reset\"),\n });\n\n socket.addEventListener(\"open\", () => {\n const helloMessage: DevToolsHelloMessage = {\n type: \"HELLO\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { role: \"client\", protocolVersion: DEVTOOLS_PROTOCOL_VERSION },\n };\n\n sendMessage(helloMessage);\n console.log(`[bit-form] Conectado ao DevTools remoto em ${url}`);\n });\n\n socket.addEventListener(\"message\", (msg: MessageEvent) => {\n try {\n const data = JSON.parse(msg.data) as DevToolsRemoteMessage;\n if (isDevToolsStateUpdateMessage(data)) {\n ui.updateState(data.payload);\n }\n } catch (e) {\n console.error(\"[bit-form] Erro ao processar mensagem do WebSocket:\", e);\n }\n });\n\n socket.addEventListener(\"error\", (err) => {\n console.error(\"[bit-form] Erro na conexão do DevTools remoto:\", err);\n });\n\n return {\n ui,\n destroy: () => {\n if (\n socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING\n ) {\n socket.close();\n }\n container.innerHTML = \"\";\n },\n };\n}\n","import { setupLocalDevTools } from \"./adapters/local\";\nimport { setupRemoteDevTools } from \"./adapters/remote\";\nimport type { BitDevToolsOptions } from \"./types\";\nimport type { BitDevToolsAdapter } from \"./adapters/types\";\n\nexport type { BitDevToolsOptions };\n\nexport function initDevTools(options: BitDevToolsOptions = {}) {\n const { mode = \"local\", url, bus } = options;\n let containerEl: HTMLElement;\n\n let isAutoCreated = false;\n\n if (typeof options.container === \"string\") {\n const el = document.querySelector<HTMLElement>(options.container);\n if (!el)\n throw new Error(\n `[bit-form] Container '${options.container}' não encontrado na página.`,\n );\n containerEl = el;\n } else if (options.container instanceof HTMLElement) {\n containerEl = options.container;\n } else {\n containerEl = document.createElement(\"div\");\n containerEl.id = \"bit-form-devtools-root\";\n containerEl.style.position = \"fixed\";\n containerEl.style.bottom = \"20px\";\n containerEl.style.right = \"20px\";\n containerEl.style.zIndex = \"9999\";\n containerEl.style.maxHeight = \"80vh\";\n containerEl.style.overflowY = \"auto\";\n containerEl.style.boxShadow = \"0 10px 25px rgba(0,0,0,0.1)\";\n document.body.appendChild(containerEl);\n isAutoCreated = true;\n }\n\n let adapterInstance: BitDevToolsAdapter;\n\n if (mode === \"local\") {\n console.log(\"[bit-form] DevTools iniciado em modo Local.\");\n adapterInstance = setupLocalDevTools(containerEl, bus);\n } else if (mode === \"remote\") {\n console.log(\"[bit-form] DevTools iniciado em modo Remote.\");\n adapterInstance = setupRemoteDevTools(containerEl, url, bus);\n } else {\n throw new Error(`[bit-form] Modo DevTools inválido: ${mode}`);\n }\n\n return {\n ...adapterInstance,\n destroy: () => {\n if (adapterInstance && typeof adapterInstance.destroy === \"function\") {\n adapterInstance.destroy();\n }\n\n if (isAutoCreated && containerEl.parentNode) {\n containerEl.parentNode.removeChild(containerEl);\n } else {\n containerEl.innerHTML = \"\";\n }\n },\n };\n}\n","import type { BitPlugin, DevToolsOptions } from \"../core\";\nimport { setupRemoteBridge } from \"./bridge\";\nimport { initDevTools } from \"./init-dev-tools\";\n\nfunction resolveDevToolsOptions(\n devTools: boolean | DevToolsOptions | undefined,\n): Required<Pick<DevToolsOptions, \"enabled\" | \"mode\">> &\n Pick<DevToolsOptions, \"url\"> {\n if (typeof devTools === \"boolean\") {\n return { enabled: devTools, mode: \"local\" };\n }\n\n return {\n enabled: !!devTools,\n mode: devTools?.mode ?? \"local\",\n url: devTools?.url,\n };\n}\n\nexport function createDevToolsPlugin<T extends object = any>(\n override?: boolean | DevToolsOptions,\n): BitPlugin<T> {\n return {\n name: \"bit-devtools\",\n setup: (context) => {\n const options = resolveDevToolsOptions(\n override ?? context.getConfig().devTools,\n );\n\n if (!options.enabled) {\n return;\n }\n\n let cleanup: (() => void) | null = null;\n const bus = context.getConfig().bus;\n\n try {\n if (options.mode === \"remote\") {\n cleanup = setupRemoteBridge(\n options.url || \"ws://localhost:3000\",\n bus,\n );\n } else {\n const instance = initDevTools({ bus });\n cleanup =\n instance && typeof instance.destroy === \"function\"\n ? instance.destroy\n : null;\n }\n } catch {\n // fail-open: devtools não deve impactar runtime principal\n }\n\n return () => {\n if (cleanup) {\n cleanup();\n cleanup = null;\n }\n };\n },\n };\n}\n"],"mappings":"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","names":["getDevToolsCSS","BitFormDevToolsUI","container","actions","style","getDevToolsCSS","e","target","btn","action","storeId","storesState","storeEntries","panelHtml","id","state","hasErrors","meta","currentStep","totalSteps","triggerHtml","setupLocalDevTools","container","bus","bitBus","ui","BitFormDevToolsUI","id","getDevToolsActionableStore","getFullSnapshot","createDevToolsSnapshotMap","unsubscribe","setupRemoteDevTools","container","url","_bus","socket","sendMessage","message","sendAction","storeId","action","ui","BitFormDevToolsUI","id","msg","data","isDevToolsStateUpdateMessage","e","err","initDevTools","options","mode","url","bus","containerEl","isAutoCreated","el","adapterInstance","setupLocalDevTools","setupRemoteDevTools","resolveDevToolsOptions","devTools","createDevToolsPlugin","override","context","options","cleanup","bus","setupRemoteBridge","instance","initDevTools"]}
1
+ {"version":3,"sources":["../../src/devtools/ui/styles.ts","../../src/devtools/ui/index.ts","../../src/devtools/adapters/local.ts","../../src/devtools/adapters/remote.ts","../../src/devtools/init-dev-tools.ts","../../src/devtools/create-plugin.ts"],"sourcesContent":["export function getDevToolsCSS(): string {\n return `\n .bit-devtools-container {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 9999;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n }\n\n .bit-devtools-trigger {\n background: #10b981;\n color: #fff;\n border: none;\n border-radius: 50%;\n width: 48px;\n height: 48px;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s;\n font-size: 16px;\n margin-top: 16px;\n }\n .bit-devtools-trigger:hover { transform: scale(1.05); }\n\n .bit-devtools-panel {\n width: 450px;\n max-height: 80vh;\n background: #0f172a;\n color: #f8fafc;\n border-radius: 8px;\n padding: 16px;\n overflow-y: auto;\n box-shadow: 0 20px 25px -5px rgba(0,0,0,0.5), 0 8px 10px -6px rgba(0,0,0,0.5);\n border: 1px solid #334155;\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .bit-devtools-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 12px;\n border-bottom: 1px solid #1e293b;\n }\n .bit-devtools-header h2 { margin: 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }\n\n .bit-store-block {\n background: #1e293b;\n border-radius: 6px;\n padding: 12px;\n border: 1px solid #334155;\n }\n\n .bit-store-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n }\n .bit-store-title { margin: 0; color: #38bdf8; font-size: 14px; font-weight: bold; }\n\n .bit-badge-group { display: flex; gap: 6px; flex-wrap: wrap; }\n .bit-badge { font-size: 10px; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; font-weight: bold; }\n .badge-success { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.2); }\n .badge-error { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.2); }\n .badge-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.2); }\n .badge-info { background: rgba(56, 189, 248, 0.2); color: #7dd3fc; border: 1px solid rgba(56, 189, 248, 0.2); }\n\n .bit-section-title { font-size: 11px; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; margin: 12px 0 4px 0; display: block; }\n\n .bit-controls { display: flex; gap: 6px; margin-bottom: 12px; background: #0f172a; padding: 8px; border-radius: 6px; }\n .bit-action-btn { flex: 1; background: #334155; color: #e2e8f0; border: 1px solid #475569; padding: 6px 0; border-radius: 4px; cursor: pointer; font-size: 11px; display: flex; align-items: center; justify-content: center; gap: 4px; transition: all 0.2s; }\n .bit-action-btn:hover:not(:disabled) { background: #475569; }\n .bit-action-btn:disabled { opacity: 0.5; cursor: not-allowed; }\n .bit-btn-reset { color: #fca5a5; border-color: rgba(239,68,68,0.3); }\n .bit-btn-reset:hover { background: rgba(239,68,68,0.1) !important; }\n\n pre.bit-pre { background: #020617; padding: 10px; border-radius: 4px; font-size: 11px; overflow-x: auto; border: 1px solid #1e293b; margin: 0; color: #e2e8f0; }\n pre.bit-error-box { background: rgba(239, 68, 68, 0.05); padding: 10px; border-radius: 4px; font-size: 11px; border: 1px dashed #ef4444; color: #fca5a5; margin: 0; overflow-x: auto; }\n `;\n}\n","import { getDevToolsCSS } from \"./styles\";\nimport type { DevToolsActions } from \"../types\";\nimport type { DevToolsStoreSnapshots } from \"../protocol\";\n\nexport type { DevToolsActions };\n\nfunction escapeHtml(str: string): string {\n return str\n .replace(/&/g, \"&amp;\")\n .replace(/\"/g, \"&quot;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\");\n}\n\nfunction safeJsonStringify(value: unknown): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return \"[Unserializable]\";\n }\n}\n\nexport class BitFormDevToolsUI {\n private container: HTMLElement;\n private actions: DevToolsActions;\n private rootElement: HTMLDivElement;\n private currentStoresState: DevToolsStoreSnapshots = {};\n private isOpen = false;\n\n constructor(container: HTMLElement, actions: DevToolsActions) {\n this.container = container;\n this.actions = actions;\n\n if (!document.getElementById(\"bit-devtools-styles\")) {\n const style = document.createElement(\"style\");\n style.id = \"bit-devtools-styles\";\n style.textContent = getDevToolsCSS();\n document.head.appendChild(style);\n }\n\n this.rootElement = document.createElement(\"div\");\n this.rootElement.className = \"bit-devtools-container\";\n this.container.appendChild(this.rootElement);\n\n this.rootElement.addEventListener(\"click\", (e) => {\n const target = e.target as HTMLElement;\n\n // Evento do botão flutuante\n if (target.closest(\".bit-devtools-trigger\")) {\n this.isOpen = !this.isOpen;\n this.render();\n return;\n }\n\n // Eventos dos botões de ação\n const btn = target.closest(\".bit-action-btn\");\n if (btn && !btn.hasAttribute(\"disabled\")) {\n const action = btn.getAttribute(\"data-action\");\n const storeId = btn.getAttribute(\"data-store\");\n\n if (action && storeId) {\n if (action === \"undo\") this.actions.onUndo(storeId);\n if (action === \"redo\") this.actions.onRedo(storeId);\n if (action === \"reset\") this.actions.onReset(storeId);\n }\n }\n });\n }\n\n public updateState(storesState: DevToolsStoreSnapshots) {\n this.currentStoresState = storesState;\n this.render();\n }\n\n private render() {\n const storeEntries = Object.entries(this.currentStoresState);\n if (storeEntries.length === 0) {\n this.rootElement.innerHTML = \"\";\n return;\n }\n\n let panelHtml = \"\";\n\n if (this.isOpen) {\n panelHtml = `\n <div class=\"bit-devtools-panel\">\n <div class=\"bit-devtools-header\">\n <h2><span style=\"font-size: 20px;\">🛠</span> Bit-Form DevTools</h2>\n <span style=\"font-size: 11px; color: #64748b;\">v1.0.0</span>\n </div>\n `;\n\n for (const [id, state] of storeEntries) {\n const hasErrors = Object.keys(state.errors || {}).length > 0;\n\n // Lemos os metadados do histórico que o adaptador injetou\n const meta = state._meta || {\n totalSteps: 0,\n currentIndex: -1,\n canUndo: false,\n canRedo: false,\n };\n const currentStep = meta.currentIndex + 1;\n const totalSteps = meta.totalSteps;\n\n panelHtml += `\n <div class=\"bit-store-block\">\n <div class=\"bit-store-header\">\n <h3 class=\"bit-store-title\">${escapeHtml(id)}</h3>\n <div class=\"bit-badge-group\">\n <span class=\"bit-badge ${state.isValid ? \"badge-success\" : \"badge-error\"}\">\n ${state.isValid ? \"✓ Valid\" : \"✕ Invalid\"}\n </span>\n ${state.isDirty ? `<span class=\"bit-badge badge-warn\">Dirty</span>` : \"\"}\n ${state.isSubmitting ? `<span class=\"bit-badge badge-info\">⏳ Submitting</span>` : \"\"}\n </div>\n </div>\n\n <span class=\"bit-section-title\">Time Travel (${currentStep}/${totalSteps})</span>\n \n <div class=\"bit-controls\">\n <button class=\"bit-action-btn\" data-action=\"undo\" data-store=\"${escapeHtml(id)}\" ${meta.canUndo ? \"\" : \"disabled\"}>\n <span>↺</span> Undo\n </button>\n <button class=\"bit-action-btn\" data-action=\"redo\" data-store=\"${escapeHtml(id)}\" ${meta.canRedo ? \"\" : \"disabled\"}>\n <span>↻</span> Redo\n </button>\n <button class=\"bit-action-btn bit-btn-reset\" data-action=\"reset\" data-store=\"${escapeHtml(id)}\">\n <span>🗑</span> Reset\n </button>\n </div>\n `;\n\n if (hasErrors) {\n panelHtml += `\n <span class=\"bit-section-title\" style=\"color: #f87171;\">⚠️ Validations Failing</span>\n <pre class=\"bit-error-box\">${safeJsonStringify(state.errors)}</pre>\n `;\n }\n\n panelHtml += `\n <span class=\"bit-section-title\">Values</span>\n <pre class=\"bit-pre\">${safeJsonStringify(state.values)}</pre>\n </div>\n `;\n }\n\n panelHtml += `</div>`;\n }\n\n // Botão Flutuante (sempre renderizado)\n const triggerHtml = `\n <button class=\"bit-devtools-trigger\" style=\"transform: ${this.isOpen ? \"scale(0.9)\" : \"scale(1)\"};\" title=\"Abrir DevTools\">\n ${this.isOpen ? \"✖\" : \"Bit\"}\n </button>\n `;\n\n this.rootElement.innerHTML = panelHtml + triggerHtml;\n }\n}\n","import { bitBus } from \"../../core\";\nimport type { BitBus } from \"../../core\";\nimport { BitFormDevToolsUI } from \"../ui\";\nimport { createDevToolsSnapshotMap } from \"../store-snapshot\";\nimport { getDevToolsActionableStore } from \"../store-port\";\n\nexport function setupLocalDevTools(\n container: HTMLElement,\n bus: BitBus = bitBus,\n) {\n const ui = new BitFormDevToolsUI(container, {\n onUndo: (id) => getDevToolsActionableStore(bus.stores, id)?.undo(),\n onRedo: (id) => getDevToolsActionableStore(bus.stores, id)?.redo(),\n onReset: (id) => getDevToolsActionableStore(bus.stores, id)?.reset(),\n });\n\n const getFullSnapshot = () => createDevToolsSnapshotMap(bus.stores);\n\n ui.updateState(getFullSnapshot());\n\n const unsubscribe = bus.subscribe(() => {\n ui.updateState(getFullSnapshot());\n });\n\n return {\n ui,\n destroy: () => {\n unsubscribe();\n container.innerHTML = \"\";\n },\n };\n}\n","import { BitFormDevToolsUI } from \"../ui\";\nimport type { BitBus } from \"../../core\";\nimport type {\n DevToolsHelloMessage,\n DevToolsActionMessage,\n DevToolsActionName,\n DevToolsRemoteMessage,\n} from \"../types\";\nimport {\n DEVTOOLS_PROTOCOL_VERSION,\n isDevToolsStateUpdateMessage,\n} from \"../protocol\";\n\nexport function setupRemoteDevTools(\n container: HTMLElement,\n url: string = \"ws://localhost:3000\",\n _bus?: BitBus,\n) {\n const socket = new WebSocket(url);\n\n const sendMessage = (message: DevToolsRemoteMessage) => {\n if (socket.readyState === WebSocket.OPEN) {\n socket.send(JSON.stringify(message));\n } else {\n console.warn(\n \"[bit-form] Tentativa de envio falhou. WebSocket não está aberto.\",\n );\n }\n };\n\n const sendAction = (storeId: string, action: DevToolsActionName) => {\n const message: DevToolsActionMessage = {\n type: \"ACTION\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { storeId, action },\n };\n sendMessage(message);\n };\n\n const ui = new BitFormDevToolsUI(container, {\n onUndo: (id) => sendAction(id, \"undo\"),\n onRedo: (id) => sendAction(id, \"redo\"),\n onReset: (id) => sendAction(id, \"reset\"),\n });\n\n socket.addEventListener(\"open\", () => {\n const helloMessage: DevToolsHelloMessage = {\n type: \"HELLO\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { role: \"client\", protocolVersion: DEVTOOLS_PROTOCOL_VERSION },\n };\n\n sendMessage(helloMessage);\n console.log(`[bit-form] Conectado ao DevTools remoto em ${url}`);\n });\n\n socket.addEventListener(\"message\", (msg: MessageEvent) => {\n try {\n const data = JSON.parse(msg.data) as DevToolsRemoteMessage;\n if (isDevToolsStateUpdateMessage(data)) {\n ui.updateState(data.payload);\n }\n } catch (e) {\n console.error(\"[bit-form] Erro ao processar mensagem do WebSocket:\", e);\n }\n });\n\n socket.addEventListener(\"error\", (err) => {\n console.error(\"[bit-form] Erro na conexão do DevTools remoto:\", err);\n });\n\n return {\n ui,\n destroy: () => {\n if (\n socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING\n ) {\n socket.close();\n }\n container.innerHTML = \"\";\n },\n };\n}\n","import { setupLocalDevTools } from \"./adapters/local\";\nimport { setupRemoteDevTools } from \"./adapters/remote\";\nimport type { BitDevToolsOptions } from \"./types\";\nimport type { BitDevToolsAdapter } from \"./adapters/types\";\n\nexport type { BitDevToolsOptions };\n\nexport function initDevTools(options: BitDevToolsOptions = {}) {\n const { mode = \"local\", url, bus } = options;\n let containerEl: HTMLElement;\n\n let isAutoCreated = false;\n\n if (typeof options.container === \"string\") {\n const el = document.querySelector<HTMLElement>(options.container);\n if (!el)\n throw new Error(\n `[bit-form] Container '${options.container}' não encontrado na página.`,\n );\n containerEl = el;\n } else if (options.container instanceof HTMLElement) {\n containerEl = options.container;\n } else {\n containerEl = document.createElement(\"div\");\n containerEl.id = \"bit-form-devtools-root\";\n containerEl.style.position = \"fixed\";\n containerEl.style.bottom = \"20px\";\n containerEl.style.right = \"20px\";\n containerEl.style.zIndex = \"9999\";\n containerEl.style.maxHeight = \"80vh\";\n containerEl.style.overflowY = \"auto\";\n containerEl.style.boxShadow = \"0 10px 25px rgba(0,0,0,0.1)\";\n document.body.appendChild(containerEl);\n isAutoCreated = true;\n }\n\n let adapterInstance: BitDevToolsAdapter;\n\n if (mode === \"local\") {\n console.log(\"[bit-form] DevTools iniciado em modo Local.\");\n adapterInstance = setupLocalDevTools(containerEl, bus);\n } else if (mode === \"remote\") {\n console.log(\"[bit-form] DevTools iniciado em modo Remote.\");\n adapterInstance = setupRemoteDevTools(containerEl, url, bus);\n } else {\n throw new Error(`[bit-form] Modo DevTools inválido: ${mode}`);\n }\n\n return {\n ...adapterInstance,\n destroy: () => {\n if (adapterInstance && typeof adapterInstance.destroy === \"function\") {\n adapterInstance.destroy();\n }\n\n if (isAutoCreated && containerEl.parentNode) {\n containerEl.parentNode.removeChild(containerEl);\n } else {\n containerEl.innerHTML = \"\";\n }\n },\n };\n}\n","import type { BitPlugin, DevToolsOptions } from \"../core\";\nimport { setupRemoteBridge } from \"./bridge\";\nimport { initDevTools } from \"./init-dev-tools\";\n\nfunction resolveDevToolsOptions(\n devTools: boolean | DevToolsOptions | undefined,\n): Required<Pick<DevToolsOptions, \"enabled\" | \"mode\">> &\n Pick<DevToolsOptions, \"url\"> {\n if (typeof devTools === \"boolean\") {\n return { enabled: devTools, mode: \"local\" };\n }\n\n return {\n enabled: !!devTools,\n mode: devTools?.mode ?? \"local\",\n url: devTools?.url,\n };\n}\n\nfunction isProductionEnv(): boolean {\n if (\n typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\" &&\n process.env.NODE_ENV === \"production\"\n ) {\n return true;\n }\n\n if (\n typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\" &&\n process.env.VITEST === \"true\"\n ) {\n return false;\n }\n\n return false;\n}\n\nexport function createDevToolsPlugin<T extends object = any>(\n override?: boolean | DevToolsOptions,\n): BitPlugin<T> {\n return {\n name: \"bit-devtools\",\n setup: (context) => {\n const options = resolveDevToolsOptions(\n override ?? context.getConfig().devTools,\n );\n\n if (!options.enabled) {\n return;\n }\n\n if (isProductionEnv() && override !== true) {\n return;\n }\n\n let cleanup: (() => void) | null = null;\n const bus = context.getConfig().bus;\n\n try {\n if (options.mode === \"remote\") {\n cleanup = setupRemoteBridge(\n options.url || \"ws://localhost:3000\",\n bus,\n );\n } else {\n const instance = initDevTools({ bus });\n cleanup =\n instance && typeof instance.destroy === \"function\"\n ? instance.destroy\n : null;\n }\n } catch {\n // fail-open: devtools não deve impactar runtime principal\n }\n\n return () => {\n if (cleanup) {\n cleanup();\n cleanup = null;\n }\n };\n },\n };\n}\n"],"mappings":"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","names":["getDevToolsCSS","escapeHtml","str","safeJsonStringify","value","BitFormDevToolsUI","container","actions","style","getDevToolsCSS","e","target","btn","action","storeId","storesState","storeEntries","panelHtml","id","state","hasErrors","meta","currentStep","totalSteps","triggerHtml","setupLocalDevTools","container","bus","bitBus","ui","BitFormDevToolsUI","id","getDevToolsActionableStore","getFullSnapshot","createDevToolsSnapshotMap","unsubscribe","setupRemoteDevTools","container","url","_bus","socket","sendMessage","message","sendAction","storeId","action","ui","BitFormDevToolsUI","id","msg","data","isDevToolsStateUpdateMessage","e","err","initDevTools","options","mode","url","bus","containerEl","isAutoCreated","el","adapterInstance","setupLocalDevTools","setupRemoteDevTools","resolveDevToolsOptions","devTools","isProductionEnv","createDevToolsPlugin","override","context","options","cleanup","bus","setupRemoteBridge","instance","initDevTools"]}
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-W5CLDRRE.cjs');var _chunkL7EAZ6K6cjs = require('./chunk-L7EAZ6K6.cjs');require('./chunk-AVUK52JW.cjs');require('./chunk-BSGJ3T5S.cjs');require('./chunk-RHMJPKNV.cjs');require('./chunk-3KI3GEU3.cjs');require('./chunk-GKNGJOB3.cjs');require('./chunk-FTXV2NZO.cjs');require('./chunk-WRNR6SXK.cjs');require('./chunk-PFPGASVZ.cjs');exports.createBitStore = _chunkL7EAZ6K6cjs.e; exports.createFrameworkStoreAdapter = _chunkL7EAZ6K6cjs.d; exports.resolveBitStoreForHooks = _chunkL7EAZ6K6cjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-W5CLDRRE.cjs');var _chunkTLUCO2ZNcjs = require('./chunk-TLUCO2ZN.cjs');require('./chunk-EPBSLPRL.cjs');require('./chunk-BSGJ3T5S.cjs');require('./chunk-RHMJPKNV.cjs');require('./chunk-3KI3GEU3.cjs');require('./chunk-7IO2KLSJ.cjs');require('./chunk-CIS3YZSK.cjs');require('./chunk-3CPIJF3Z.cjs');require('./chunk-725CMNAV.cjs');exports.createBitStore = _chunkTLUCO2ZNcjs.e; exports.createFrameworkStoreAdapter = _chunkTLUCO2ZNcjs.d; exports.resolveBitStoreForHooks = _chunkTLUCO2ZNcjs.c;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import"./chunk-5NA2TFPG.js";import{c as r,d as e,e as o}from"./chunk-LIHWJJIM.js";import"./chunk-SYEUXL2E.js";import"./chunk-W2E5UIXT.js";import"./chunk-UIKO6GGW.js";import"./chunk-ICYXODTQ.js";import"./chunk-HE6EQZTH.js";import"./chunk-G3EHXKOS.js";import"./chunk-QCKCONCU.js";import"./chunk-3NUJVIAM.js";export{o as createBitStore,e as createFrameworkStoreAdapter,r as resolveBitStoreForHooks};
1
+ import"./chunk-5NA2TFPG.js";import{c as r,d as e,e as o}from"./chunk-B45EMB4Q.js";import"./chunk-3WNZPBME.js";import"./chunk-W2E5UIXT.js";import"./chunk-UIKO6GGW.js";import"./chunk-ICYXODTQ.js";import"./chunk-AJUX7LYB.js";import"./chunk-T7TOEIOH.js";import"./chunk-32RH5MSM.js";import"./chunk-DGEGYNQL.js";export{o as createBitStore,e as createFrameworkStoreAdapter,r as resolveBitStoreForHooks};
2
2
  //# sourceMappingURL=index.js.map
package/dist/mask.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWRNR6SXKcjs = require('./chunk-WRNR6SXK.cjs');require('./chunk-PFPGASVZ.cjs');exports.bitMasks = _chunkWRNR6SXKcjs.L; exports.createCreditCardMask = _chunkWRNR6SXKcjs.e; exports.createCurrencyMask = _chunkWRNR6SXKcjs.d; exports.createDateMask = _chunkWRNR6SXKcjs.f; exports.createPatternMask = _chunkWRNR6SXKcjs.c; exports.maskBRL = _chunkWRNR6SXKcjs.g; exports.maskCEP = _chunkWRNR6SXKcjs.s; exports.maskCNH = _chunkWRNR6SXKcjs.v; exports.maskCNPJ = _chunkWRNR6SXKcjs.p; exports.maskCPF = _chunkWRNR6SXKcjs.o; exports.maskCPFCNPJ = _chunkWRNR6SXKcjs.x; exports.maskCVV = _chunkWRNR6SXKcjs.E; exports.maskColorHex = _chunkWRNR6SXKcjs.H; exports.maskCreditCard = _chunkWRNR6SXKcjs.D; exports.maskDate = _chunkWRNR6SXKcjs.t; exports.maskDateISO = _chunkWRNR6SXKcjs.F; exports.maskDateUS = _chunkWRNR6SXKcjs.B; exports.maskDecimal = _chunkWRNR6SXKcjs.m; exports.maskEUR = _chunkWRNR6SXKcjs.i; exports.maskGBP = _chunkWRNR6SXKcjs.j; exports.maskIBAN = _chunkWRNR6SXKcjs.K; exports.maskIPv4 = _chunkWRNR6SXKcjs.I; exports.maskIPv6 = _chunkWRNR6SXKcjs.J; exports.maskInteger = _chunkWRNR6SXKcjs.n; exports.maskJPY = _chunkWRNR6SXKcjs.k; exports.maskLandline = _chunkWRNR6SXKcjs.r; exports.maskMacAddress = _chunkWRNR6SXKcjs.G; exports.maskPercent = _chunkWRNR6SXKcjs.l; exports.maskPhone = _chunkWRNR6SXKcjs.q; exports.maskPlate = _chunkWRNR6SXKcjs.y; exports.maskRG = _chunkWRNR6SXKcjs.w; exports.maskSSN = _chunkWRNR6SXKcjs.C; exports.maskTime = _chunkWRNR6SXKcjs.u; exports.maskUSD = _chunkWRNR6SXKcjs.h; exports.maskUSPhone = _chunkWRNR6SXKcjs.z; exports.maskZipCode = _chunkWRNR6SXKcjs.A; exports.unmask = _chunkWRNR6SXKcjs.a; exports.unmaskCurrency = _chunkWRNR6SXKcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3CPIJF3Zcjs = require('./chunk-3CPIJF3Z.cjs');require('./chunk-725CMNAV.cjs');exports.bitMasks = _chunk3CPIJF3Zcjs.L; exports.createCreditCardMask = _chunk3CPIJF3Zcjs.e; exports.createCurrencyMask = _chunk3CPIJF3Zcjs.d; exports.createDateMask = _chunk3CPIJF3Zcjs.f; exports.createPatternMask = _chunk3CPIJF3Zcjs.c; exports.maskBRL = _chunk3CPIJF3Zcjs.g; exports.maskCEP = _chunk3CPIJF3Zcjs.s; exports.maskCNH = _chunk3CPIJF3Zcjs.v; exports.maskCNPJ = _chunk3CPIJF3Zcjs.p; exports.maskCPF = _chunk3CPIJF3Zcjs.o; exports.maskCPFCNPJ = _chunk3CPIJF3Zcjs.x; exports.maskCVV = _chunk3CPIJF3Zcjs.E; exports.maskColorHex = _chunk3CPIJF3Zcjs.H; exports.maskCreditCard = _chunk3CPIJF3Zcjs.D; exports.maskDate = _chunk3CPIJF3Zcjs.t; exports.maskDateISO = _chunk3CPIJF3Zcjs.F; exports.maskDateUS = _chunk3CPIJF3Zcjs.B; exports.maskDecimal = _chunk3CPIJF3Zcjs.m; exports.maskEUR = _chunk3CPIJF3Zcjs.i; exports.maskGBP = _chunk3CPIJF3Zcjs.j; exports.maskIBAN = _chunk3CPIJF3Zcjs.K; exports.maskIPv4 = _chunk3CPIJF3Zcjs.I; exports.maskIPv6 = _chunk3CPIJF3Zcjs.J; exports.maskInteger = _chunk3CPIJF3Zcjs.n; exports.maskJPY = _chunk3CPIJF3Zcjs.k; exports.maskLandline = _chunk3CPIJF3Zcjs.r; exports.maskMacAddress = _chunk3CPIJF3Zcjs.G; exports.maskPercent = _chunk3CPIJF3Zcjs.l; exports.maskPhone = _chunk3CPIJF3Zcjs.q; exports.maskPlate = _chunk3CPIJF3Zcjs.y; exports.maskRG = _chunk3CPIJF3Zcjs.w; exports.maskSSN = _chunk3CPIJF3Zcjs.C; exports.maskTime = _chunk3CPIJF3Zcjs.u; exports.maskUSD = _chunk3CPIJF3Zcjs.h; exports.maskUSPhone = _chunk3CPIJF3Zcjs.z; exports.maskZipCode = _chunk3CPIJF3Zcjs.A; exports.unmask = _chunk3CPIJF3Zcjs.a; exports.unmaskCurrency = _chunk3CPIJF3Zcjs.b;
2
2
  //# sourceMappingURL=mask.cjs.map
package/dist/mask.js CHANGED
@@ -1,2 +1,2 @@
1
- import{A as g,B as J,C as R,D as b,E as h,F as v,G as A,H as E,I as F,J as G,K as H,L as a,a as s,b as e,c as m,d as k,e as r,f as t,g as o,h as C,i as n,j as i,k as P,l as p,m as M,n as c,o as f,p as x,q as d,r as B,s as D,t as N,u,v as I,w as S,x as l,y,z as U}from"./chunk-QCKCONCU.js";import"./chunk-3NUJVIAM.js";export{a as bitMasks,r as createCreditCardMask,k as createCurrencyMask,t as createDateMask,m as createPatternMask,o as maskBRL,D as maskCEP,I as maskCNH,x as maskCNPJ,f as maskCPF,l as maskCPFCNPJ,h as maskCVV,E as maskColorHex,b as maskCreditCard,N as maskDate,v as maskDateISO,J as maskDateUS,M as maskDecimal,n as maskEUR,i as maskGBP,H as maskIBAN,F as maskIPv4,G as maskIPv6,c as maskInteger,P as maskJPY,B as maskLandline,A as maskMacAddress,p as maskPercent,d as maskPhone,y as maskPlate,S as maskRG,R as maskSSN,u as maskTime,C as maskUSD,U as maskUSPhone,g as maskZipCode,s as unmask,e as unmaskCurrency};
1
+ import{A as g,B as J,C as R,D as b,E as h,F as v,G as A,H as E,I as F,J as G,K as H,L as a,a as s,b as e,c as m,d as k,e as r,f as t,g as o,h as C,i as n,j as i,k as P,l as p,m as M,n as c,o as f,p as x,q as d,r as B,s as D,t as N,u,v as I,w as S,x as l,y,z as U}from"./chunk-32RH5MSM.js";import"./chunk-DGEGYNQL.js";export{a as bitMasks,r as createCreditCardMask,k as createCurrencyMask,t as createDateMask,m as createPatternMask,o as maskBRL,D as maskCEP,I as maskCNH,x as maskCNPJ,f as maskCPF,l as maskCPFCNPJ,h as maskCVV,E as maskColorHex,b as maskCreditCard,N as maskDate,v as maskDateISO,J as maskDateUS,M as maskDecimal,n as maskEUR,i as maskGBP,H as maskIBAN,F as maskIPv4,G as maskIPv6,c as maskInteger,P as maskJPY,B as maskLandline,A as maskMacAddress,p as maskPercent,d as maskPhone,y as maskPlate,S as maskRG,R as maskSSN,u as maskTime,C as maskUSD,U as maskUSPhone,g as maskZipCode,s as unmask,e as unmaskCurrency};
2
2
  //# sourceMappingURL=mask.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkRSH6LQVCcjs = require('../chunk-RSH6LQVC.cjs');var _chunkU5TBWV74cjs = require('../chunk-U5TBWV74.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-L7EAZ6K6.cjs');var _chunkAVUK52JWcjs = require('../chunk-AVUK52JW.cjs');require('../chunk-BSGJ3T5S.cjs');var _chunkRHMJPKNVcjs = require('../chunk-RHMJPKNV.cjs');var _chunk3KI3GEU3cjs = require('../chunk-3KI3GEU3.cjs');require('../chunk-GKNGJOB3.cjs');require('../chunk-FTXV2NZO.cjs');require('../chunk-WRNR6SXK.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _react = require('react');function V(t){let{fieldState:r,setBlur:i,store:u}=_chunkRSH6LQVCcjs.d.call(void 0, t),{fieldController:d}=_react.useMemo.call(void 0, ()=>_chunkAVUK52JWcjs.h.call(void 0, u,t),[u,t]),a=_react.useMemo.call(void 0, ()=>d.displayValue(r.value),[r.value,d]),n=_react.useCallback.call(void 0, g=>{d.setValue(g)},[d]),{value:o}=r,R=_chunk3KI3GEU3cjs.a.call(void 0, r),{error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}=R,e=_react.useCallback.call(void 0, g=>{let K=_chunkPFPGASVZcjs.a.call(void 0, g)?_optionalChain([g, 'access', _ => _.target, 'optionalAccess', _2 => _2.value]):g;n(K)},[n]),l=_react.useCallback.call(void 0, ()=>{i()},[i]),E=_react.useMemo.call(void 0, ()=>({value:a,onChange:e,onBlur:l}),[a,e,l]),k=_react.useMemo.call(void 0, ()=>({error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}),[p,m,B,f,s,c,y,U]);return _react.useMemo.call(void 0, ()=>({value:o,displayValue:a,setValue:n,setBlur:i,onChange:e,onBlur:l,props:E,meta:k}),[o,a,n,i,e,l,E,k])}function N(){let t=_chunkRSH6LQVCcjs.b.call(void 0, ),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let o=_chunkRHMJPKNVcjs.f.call(void 0, t);return r.current&&r.current.canUndo===o.canUndo&&r.current.canRedo===o.canRedo&&r.current.historyIndex===o.historyIndex&&r.current.historySize===o.historySize?r.current:(r.current=o,o)},[t]),u=_react.useCallback.call(void 0, o=>t.observe.subscribeHistoryMeta(()=>o()),[t]),d=_react.useSyncExternalStore.call(void 0, u,i,i),a=_react.useCallback.call(void 0, ()=>{t.feature.undo()},[t]),n=_react.useCallback.call(void 0, ()=>{t.feature.redo()},[t]);return _react.useMemo.call(void 0, ()=>({...d,undo:a,redo:n}),[d,a,n])}function X(t,r,i){let u=_chunkRSH6LQVCcjs.b.call(void 0, ),d=V(t),{value:a,setValue:n,meta:o}=d,R=_optionalChain([o, 'optionalAccess', _3 => _3.error]),p=!!_optionalChain([o, 'optionalAccess', _4 => _4.isValidating]),m=_react.useRef.call(void 0, null),[B,f]=_react.useState.call(void 0, !1),s=_react.useRef.call(void 0, {setLoading:f,setError:(e,l)=>u.write.setError(e,l),setValue:e=>n(e),getUploadKey:()=>m.current,setUploadKey:e=>{m.current=e},onCallbackError:e=>u.read.config.onUnhandledError(e,"upload")});s.current.setLoading=f,s.current.setError=(e,l)=>u.write.setError(e,l),s.current.setValue=e=>n(e),s.current.onCallbackError=e=>u.read.config.onUnhandledError(e,"upload");let c=_react.useMemo.call(void 0, ()=>({setLoading:e=>s.current.setLoading(e),setError:(e,l)=>s.current.setError(e,l),setValue:e=>s.current.setValue(e),getUploadKey:()=>s.current.getUploadKey(),setUploadKey:e=>s.current.setUploadKey(e),onCallbackError:e=>_optionalChain([s, 'access', _5 => _5.current, 'access', _6 => _6.onCallbackError, 'optionalCall', _7 => _7(e)])}),[]),y=_react.useMemo.call(void 0, ()=>_chunkU5TBWV74cjs.a.call(void 0, t,r,c),[t,r,c]),U=_react.useMemo.call(void 0, ()=>_chunkU5TBWV74cjs.b.call(void 0, t,i,c),[t,i,c]);return _react.useMemo.call(void 0, ()=>({value:a,setValue:n,error:R,isValidating:p||B,upload:y,remove:U}),[a,n,R,p,B,y,U])}exports.BitFormProvider = _chunkRSH6LQVCcjs.a; exports.useBitArray = _chunkRSH6LQVCcjs.e; exports.useBitField = V; exports.useBitForm = _chunkRSH6LQVCcjs.c; exports.useBitHistory = N; exports.useBitPersist = _chunkRSH6LQVCcjs.i; exports.useBitScope = _chunkRSH6LQVCcjs.f; exports.useBitSteps = _chunkRSH6LQVCcjs.g; exports.useBitStore = _chunkRSH6LQVCcjs.b; exports.useBitUpload = X; exports.useBitWatch = _chunkRSH6LQVCcjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkK65TKDQ2cjs = require('../chunk-K65TKDQ2.cjs');var _chunkS5A65JVLcjs = require('../chunk-S5A65JVL.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-TLUCO2ZN.cjs');var _chunkEPBSLPRLcjs = require('../chunk-EPBSLPRL.cjs');require('../chunk-BSGJ3T5S.cjs');var _chunkRHMJPKNVcjs = require('../chunk-RHMJPKNV.cjs');var _chunk3KI3GEU3cjs = require('../chunk-3KI3GEU3.cjs');require('../chunk-7IO2KLSJ.cjs');require('../chunk-CIS3YZSK.cjs');require('../chunk-3CPIJF3Z.cjs');var _chunk725CMNAVcjs = require('../chunk-725CMNAV.cjs');var _react = require('react');function S(t){let{fieldState:r,setBlur:i,store:u}=_chunkK65TKDQ2cjs.d.call(void 0, t),{fieldController:d}=_react.useMemo.call(void 0, ()=>_chunkEPBSLPRLcjs.h.call(void 0, u,t),[u,t]),a=_react.useMemo.call(void 0, ()=>d.displayValue(r.value),[r.value,d]),n=_react.useCallback.call(void 0, g=>{d.setValue(g)},[d]),{value:o}=r,R=_chunk3KI3GEU3cjs.a.call(void 0, r),{error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}=R,e=_react.useCallback.call(void 0, g=>{let K=_chunk725CMNAVcjs.a.call(void 0, g)?_optionalChain([g, 'access', _ => _.target, 'optionalAccess', _2 => _2.value]):g;n(K)},[n]),l=_react.useCallback.call(void 0, ()=>{i()},[i]),V=_react.useMemo.call(void 0, ()=>({value:a,onChange:e,onBlur:l}),[a,e,l]),k=_react.useMemo.call(void 0, ()=>({error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}),[p,m,B,f,s,c,y,U]);return _react.useMemo.call(void 0, ()=>({value:o,displayValue:a,setValue:n,setBlur:i,onChange:e,onBlur:l,props:V,meta:k}),[o,a,n,i,e,l,V,k])}function N(){let t=_chunkK65TKDQ2cjs.b.call(void 0, ),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let o=_chunkRHMJPKNVcjs.f.call(void 0, t);return r.current&&r.current.canUndo===o.canUndo&&r.current.canRedo===o.canRedo&&r.current.historyIndex===o.historyIndex&&r.current.historySize===o.historySize?r.current:(r.current=o,o)},[t]),u=_react.useCallback.call(void 0, o=>t.observe.subscribeHistoryMeta(()=>o()),[t]),d=_react.useSyncExternalStore.call(void 0, u,i,i),a=_react.useCallback.call(void 0, ()=>{t.feature.undo()},[t]),n=_react.useCallback.call(void 0, ()=>{t.feature.redo()},[t]);return _react.useMemo.call(void 0, ()=>({...d,undo:a,redo:n}),[d,a,n])}function Y(t,r,i){let u=_chunkK65TKDQ2cjs.b.call(void 0, ),d=S(t),{value:a,setValue:n,meta:o}=d,R=_optionalChain([o, 'optionalAccess', _3 => _3.error]),p=!!_optionalChain([o, 'optionalAccess', _4 => _4.isValidating]),m=_react.useRef.call(void 0, null),[B,f]=_react.useState.call(void 0, !1),s=_react.useRef.call(void 0, {setLoading:f,setError:(e,l)=>u.write.setError(e,l),setValue:e=>n(e),getUploadKey:()=>m.current,setUploadKey:e=>{m.current=e},onCallbackError:e=>u.read.config.onUnhandledError(e,"upload")});_react.useEffect.call(void 0, ()=>{s.current.setLoading=f,s.current.setError=(e,l)=>u.write.setError(e,l),s.current.setValue=e=>n(e),s.current.onCallbackError=e=>u.read.config.onUnhandledError(e,"upload")});let c=_react.useMemo.call(void 0, ()=>({setLoading:e=>s.current.setLoading(e),setError:(e,l)=>s.current.setError(e,l),setValue:e=>s.current.setValue(e),getUploadKey:()=>s.current.getUploadKey(),setUploadKey:e=>s.current.setUploadKey(e),onCallbackError:e=>_optionalChain([s, 'access', _5 => _5.current, 'access', _6 => _6.onCallbackError, 'optionalCall', _7 => _7(e)])}),[]),y=_react.useMemo.call(void 0, ()=>_chunkS5A65JVLcjs.a.call(void 0, t,r,c),[t,r,c]),U=_react.useMemo.call(void 0, ()=>_chunkS5A65JVLcjs.b.call(void 0, t,i,c),[t,i,c]);return _react.useMemo.call(void 0, ()=>({value:a,setValue:n,error:R,isValidating:p||B,upload:y,remove:U}),[a,n,R,p,B,y,U])}exports.BitFormProvider = _chunkK65TKDQ2cjs.a; exports.useBitArray = _chunkK65TKDQ2cjs.e; exports.useBitField = S; exports.useBitForm = _chunkK65TKDQ2cjs.c; exports.useBitHistory = N; exports.useBitPersist = _chunkK65TKDQ2cjs.i; exports.useBitScope = _chunkK65TKDQ2cjs.f; exports.useBitSteps = _chunkK65TKDQ2cjs.g; exports.useBitStore = _chunkK65TKDQ2cjs.b; exports.useBitUpload = Y; exports.useBitWatch = _chunkK65TKDQ2cjs.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","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","error","touched","invalid","isDirty","isValidating","isHidden","isRequired","hasError","onChange","e","isBitFieldInputEventObject","onBlur","props","meta","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","readHistoryMetaSnapshot","subscribe","cb","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","fieldIsValidating","uploadKeyRef","isUploading","setIsUploading","useState","callbacksRef","msg","key","stableCallbacks","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useCallback, useMemo } from \"react\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type { BitFieldInputEvent, UseBitFieldResult } from \"./types\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n const {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n } = metaState;\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 const props = useMemo(\n () => ({\n value: displayValue,\n onChange,\n onBlur,\n }),\n [displayValue, onChange, onBlur],\n );\n\n const meta = useMemo(\n () => ({\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n }),\n [\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n ],\n );\n\n return useMemo(\n () => ({\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 // Metadata (grouped)\n meta,\n }),\n [value, displayValue, setValue, setBlur, onChange, onBlur, props, meta],\n );\n}\n","import { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\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 = readHistoryMetaSnapshot(store);\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 lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.feature.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.feature.redo();\n }, [store]);\n\n return useMemo(\n () => ({\n ...meta,\n undo,\n redo,\n }),\n [meta, undo, 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 { useMemo, useRef, useState } from \"react\";\nimport type { BitDeleteUploadFn, BitUploadFn } from \"../core\";\nimport { createRemoveHandler, createUploadHandler } from \"../core/adapters\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitUploadResult } from \"./types\";\nimport { useBitField } from \"./use-bit-field\";\n\nexport function useBitUpload<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const { value, setValue, meta } = field;\n const error = meta?.error;\n const fieldIsValidating = !!meta?.isValidating;\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n // Ref que sempre aponta para os valores mais recentes de render,\n // permitindo que o handler factory (e seu `currentGeneration`) seja\n // criado uma única vez por (fieldPath, uploadFn). Sem este padrão,\n // qualquer re-render que gere nova referência de callbacks zeraria\n // `currentGeneration` e perderia silenciosamente a URL de upload.\n const callbacksRef = useRef({\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n onCallbackError: (e: unknown) =>\n store.read.config.onUnhandledError(e, \"upload\"),\n });\n // Mantém os closures da ref atualizados a cada render sem recriar o objeto.\n callbacksRef.current.setLoading = setIsUploading;\n callbacksRef.current.setError = (path, msg) =>\n store.write.setError(path, msg);\n callbacksRef.current.setValue = (val) => setValue(val as any);\n callbacksRef.current.onCallbackError = (e) =>\n store.read.config.onUnhandledError(e, \"upload\");\n\n const stableCallbacks = useMemo(\n () => ({\n setLoading: (val: boolean) => callbacksRef.current.setLoading(val),\n setError: (path: string, msg: string | undefined) =>\n callbacksRef.current.setError(path, msg),\n setValue: (val: string | null) => callbacksRef.current.setValue(val),\n getUploadKey: () => callbacksRef.current.getUploadKey(),\n setUploadKey: (key: string | null) =>\n callbacksRef.current.setUploadKey(key),\n onCallbackError: (e: unknown) =>\n callbacksRef.current.onCallbackError?.(e),\n }),\n [], // estável para todo o lifetime do componente\n );\n\n const upload = useMemo(\n () => createUploadHandler(fieldPath, uploadFn, stableCallbacks),\n [fieldPath, uploadFn, stableCallbacks],\n );\n\n const remove = useMemo(\n () => createRemoveHandler(fieldPath, deleteFile, stableCallbacks),\n [fieldPath, deleteFile, stableCallbacks],\n );\n\n return useMemo(\n () => ({\n value,\n setValue,\n error,\n isValidating: fieldIsValidating || isUploading,\n upload,\n remove,\n }),\n [value, setValue, error, fieldIsValidating, isUploading, upload, 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","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","error","touched","invalid","isDirty","isValidating","isHidden","isRequired","hasError","onChange","e","isBitFieldInputEventObject","onBlur","props","meta","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","readHistoryMetaSnapshot","subscribe","cb","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","fieldIsValidating","uploadKeyRef","isUploading","setIsUploading","useState","callbacksRef","msg","key","useEffect","stableCallbacks","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useCallback, useMemo } from \"react\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type { BitFieldInputEvent, UseBitFieldResult } from \"./types\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n const {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n } = metaState;\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 const props = useMemo(\n () => ({\n value: displayValue,\n onChange,\n onBlur,\n }),\n [displayValue, onChange, onBlur],\n );\n\n const meta = useMemo(\n () => ({\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n }),\n [\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n ],\n );\n\n return useMemo(\n () => ({\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 // Metadata (grouped)\n meta,\n }),\n [value, displayValue, setValue, setBlur, onChange, onBlur, props, meta],\n );\n}\n","import { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\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 = readHistoryMetaSnapshot(store);\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 lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.feature.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.feature.redo();\n }, [store]);\n\n return useMemo(\n () => ({\n ...meta,\n undo,\n redo,\n }),\n [meta, undo, 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 { useMemo, useRef, useState, useEffect } from \"react\";\nimport type { BitDeleteUploadFn, BitUploadFn } from \"../core\";\nimport { createRemoveHandler, createUploadHandler } from \"../core/adapters\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitUploadResult } from \"./types\";\nimport { useBitField } from \"./use-bit-field\";\n\nexport function useBitUpload<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const { value, setValue, meta } = field;\n const error = meta?.error;\n const fieldIsValidating = !!meta?.isValidating;\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n // Ref que sempre aponta para os valores mais recentes de render,\n // permitindo que o handler factory (e seu `currentGeneration`) seja\n // criado uma única vez por (fieldPath, uploadFn). Sem este padrão,\n // qualquer re-render que gere nova referência de callbacks zeraria\n // `currentGeneration` e perderia silenciosamente a URL de upload.\n const callbacksRef = useRef({\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n onCallbackError: (e: unknown) =>\n store.read.config.onUnhandledError(e, \"upload\"),\n });\n // Mantém os closures da ref atualizados sem recriar o objeto.\n // Usamos useEffect para evitar mutações de ref durante o render phase\n // (React concurrent mode pode descartar renders, tornando mutações inseguras).\n useEffect(() => {\n callbacksRef.current.setLoading = setIsUploading;\n callbacksRef.current.setError = (path, msg) =>\n store.write.setError(path, msg);\n callbacksRef.current.setValue = (val) => setValue(val as any);\n callbacksRef.current.onCallbackError = (e) =>\n store.read.config.onUnhandledError(e, \"upload\");\n });\n\n const stableCallbacks = useMemo(\n () => ({\n setLoading: (val: boolean) => callbacksRef.current.setLoading(val),\n setError: (path: string, msg: string | undefined) =>\n callbacksRef.current.setError(path, msg),\n setValue: (val: string | null) => callbacksRef.current.setValue(val),\n getUploadKey: () => callbacksRef.current.getUploadKey(),\n setUploadKey: (key: string | null) =>\n callbacksRef.current.setUploadKey(key),\n onCallbackError: (e: unknown) =>\n callbacksRef.current.onCallbackError?.(e),\n }),\n [], // estável para todo o lifetime do componente\n );\n\n const upload = useMemo(\n () => createUploadHandler(fieldPath, uploadFn, stableCallbacks),\n [fieldPath, uploadFn, stableCallbacks],\n );\n\n const remove = useMemo(\n () => createRemoveHandler(fieldPath, deleteFile, stableCallbacks),\n [fieldPath, deleteFile, stableCallbacks],\n );\n\n return useMemo(\n () => ({\n value,\n setValue,\n error,\n isValidating: fieldIsValidating || isUploading,\n upload,\n remove,\n }),\n [value, setValue, error, fieldIsValidating, isUploading, upload, remove],\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{a as L,b as F,c as j,d as T,e as D,f as z,g as q,h as A,i as O}from"../chunk-GSZTHF7Z.js";import{a as C,b as w}from"../chunk-3774TIGK.js";import"../chunk-5NA2TFPG.js";import"../chunk-LIHWJJIM.js";import{h}from"../chunk-SYEUXL2E.js";import"../chunk-W2E5UIXT.js";import{f as M}from"../chunk-UIKO6GGW.js";import{a as H}from"../chunk-ICYXODTQ.js";import"../chunk-HE6EQZTH.js";import"../chunk-G3EHXKOS.js";import"../chunk-QCKCONCU.js";import{a as P}from"../chunk-3NUJVIAM.js";import{useCallback as S,useMemo as x}from"react";function V(t){let{fieldState:r,setBlur:i,store:u}=T(t),{fieldController:d}=x(()=>h(u,t),[u,t]),a=x(()=>d.displayValue(r.value),[r.value,d]),n=S(g=>{d.setValue(g)},[d]),{value:o}=r,R=H(r),{error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}=R,e=S(g=>{let K=P(g)?g.target?.value:g;n(K)},[n]),l=S(()=>{i()},[i]),E=x(()=>({value:a,onChange:e,onBlur:l}),[a,e,l]),k=x(()=>({error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}),[p,m,B,f,s,c,y,U]);return x(()=>({value:o,displayValue:a,setValue:n,setBlur:i,onChange:e,onBlur:l,props:E,meta:k}),[o,a,n,i,e,l,E,k])}import{useCallback as b,useMemo as W,useRef as G,useSyncExternalStore as J}from"react";function N(){let t=F(),r=G(null),i=b(()=>{let o=M(t);return r.current&&r.current.canUndo===o.canUndo&&r.current.canRedo===o.canRedo&&r.current.historyIndex===o.historyIndex&&r.current.historySize===o.historySize?r.current:(r.current=o,o)},[t]),u=b(o=>t.observe.subscribeHistoryMeta(()=>o()),[t]),d=J(u,i,i),a=b(()=>{t.feature.undo()},[t]),n=b(()=>{t.feature.redo()},[t]);return W(()=>({...d,undo:a,redo:n}),[d,a,n])}import{useMemo as v,useRef as I,useState as Q}from"react";function X(t,r,i){let u=F(),d=V(t),{value:a,setValue:n,meta:o}=d,R=o?.error,p=!!o?.isValidating,m=I(null),[B,f]=Q(!1),s=I({setLoading:f,setError:(e,l)=>u.write.setError(e,l),setValue:e=>n(e),getUploadKey:()=>m.current,setUploadKey:e=>{m.current=e},onCallbackError:e=>u.read.config.onUnhandledError(e,"upload")});s.current.setLoading=f,s.current.setError=(e,l)=>u.write.setError(e,l),s.current.setValue=e=>n(e),s.current.onCallbackError=e=>u.read.config.onUnhandledError(e,"upload");let c=v(()=>({setLoading:e=>s.current.setLoading(e),setError:(e,l)=>s.current.setError(e,l),setValue:e=>s.current.setValue(e),getUploadKey:()=>s.current.getUploadKey(),setUploadKey:e=>s.current.setUploadKey(e),onCallbackError:e=>s.current.onCallbackError?.(e)}),[]),y=v(()=>C(t,r,c),[t,r,c]),U=v(()=>w(t,i,c),[t,i,c]);return v(()=>({value:a,setValue:n,error:R,isValidating:p||B,upload:y,remove:U}),[a,n,R,p,B,y,U])}export{L as BitFormProvider,D as useBitArray,V as useBitField,j as useBitForm,N as useBitHistory,O as useBitPersist,z as useBitScope,q as useBitSteps,F as useBitStore,X as useBitUpload,A as useBitWatch};
1
+ import{a as L,b as F,c as j,d as T,e as D,f as z,g as q,h as A,i as O}from"../chunk-23DHXQOC.js";import{a as C,b as w}from"../chunk-JUDBIEZK.js";import"../chunk-5NA2TFPG.js";import"../chunk-B45EMB4Q.js";import{h}from"../chunk-3WNZPBME.js";import"../chunk-W2E5UIXT.js";import{f as M}from"../chunk-UIKO6GGW.js";import{a as H}from"../chunk-ICYXODTQ.js";import"../chunk-AJUX7LYB.js";import"../chunk-T7TOEIOH.js";import"../chunk-32RH5MSM.js";import{a as P}from"../chunk-DGEGYNQL.js";import{useCallback as E,useMemo as x}from"react";function S(t){let{fieldState:r,setBlur:i,store:u}=T(t),{fieldController:d}=x(()=>h(u,t),[u,t]),a=x(()=>d.displayValue(r.value),[r.value,d]),n=E(g=>{d.setValue(g)},[d]),{value:o}=r,R=H(r),{error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}=R,e=E(g=>{let K=P(g)?g.target?.value:g;n(K)},[n]),l=E(()=>{i()},[i]),V=x(()=>({value:a,onChange:e,onBlur:l}),[a,e,l]),k=x(()=>({error:p,touched:m,invalid:B,isDirty:f,isValidating:s,isHidden:c,isRequired:y,hasError:U}),[p,m,B,f,s,c,y,U]);return x(()=>({value:o,displayValue:a,setValue:n,setBlur:i,onChange:e,onBlur:l,props:V,meta:k}),[o,a,n,i,e,l,V,k])}import{useCallback as b,useMemo as W,useRef as G,useSyncExternalStore as J}from"react";function N(){let t=F(),r=G(null),i=b(()=>{let o=M(t);return r.current&&r.current.canUndo===o.canUndo&&r.current.canRedo===o.canRedo&&r.current.historyIndex===o.historyIndex&&r.current.historySize===o.historySize?r.current:(r.current=o,o)},[t]),u=b(o=>t.observe.subscribeHistoryMeta(()=>o()),[t]),d=J(u,i,i),a=b(()=>{t.feature.undo()},[t]),n=b(()=>{t.feature.redo()},[t]);return W(()=>({...d,undo:a,redo:n}),[d,a,n])}import{useMemo as v,useRef as I,useState as Q,useEffect as X}from"react";function Y(t,r,i){let u=F(),d=S(t),{value:a,setValue:n,meta:o}=d,R=o?.error,p=!!o?.isValidating,m=I(null),[B,f]=Q(!1),s=I({setLoading:f,setError:(e,l)=>u.write.setError(e,l),setValue:e=>n(e),getUploadKey:()=>m.current,setUploadKey:e=>{m.current=e},onCallbackError:e=>u.read.config.onUnhandledError(e,"upload")});X(()=>{s.current.setLoading=f,s.current.setError=(e,l)=>u.write.setError(e,l),s.current.setValue=e=>n(e),s.current.onCallbackError=e=>u.read.config.onUnhandledError(e,"upload")});let c=v(()=>({setLoading:e=>s.current.setLoading(e),setError:(e,l)=>s.current.setError(e,l),setValue:e=>s.current.setValue(e),getUploadKey:()=>s.current.getUploadKey(),setUploadKey:e=>s.current.setUploadKey(e),onCallbackError:e=>s.current.onCallbackError?.(e)}),[]),y=v(()=>C(t,r,c),[t,r,c]),U=v(()=>w(t,i,c),[t,i,c]);return v(()=>({value:a,setValue:n,error:R,isValidating:p||B,upload:y,remove:U}),[a,n,R,p,B,y,U])}export{L as BitFormProvider,D as useBitArray,S as useBitField,j as useBitForm,N as useBitHistory,O as useBitPersist,z as useBitScope,q as useBitSteps,F as useBitStore,Y as useBitUpload,A 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 { useCallback, useMemo } from \"react\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type { BitFieldInputEvent, UseBitFieldResult } from \"./types\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n const {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n } = metaState;\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 const props = useMemo(\n () => ({\n value: displayValue,\n onChange,\n onBlur,\n }),\n [displayValue, onChange, onBlur],\n );\n\n const meta = useMemo(\n () => ({\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n }),\n [\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n ],\n );\n\n return useMemo(\n () => ({\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 // Metadata (grouped)\n meta,\n }),\n [value, displayValue, setValue, setBlur, onChange, onBlur, props, meta],\n );\n}\n","import { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\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 = readHistoryMetaSnapshot(store);\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 lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.feature.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.feature.redo();\n }, [store]);\n\n return useMemo(\n () => ({\n ...meta,\n undo,\n redo,\n }),\n [meta, undo, 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 { useMemo, useRef, useState } from \"react\";\nimport type { BitDeleteUploadFn, BitUploadFn } from \"../core\";\nimport { createRemoveHandler, createUploadHandler } from \"../core/adapters\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitUploadResult } from \"./types\";\nimport { useBitField } from \"./use-bit-field\";\n\nexport function useBitUpload<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const { value, setValue, meta } = field;\n const error = meta?.error;\n const fieldIsValidating = !!meta?.isValidating;\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n // Ref que sempre aponta para os valores mais recentes de render,\n // permitindo que o handler factory (e seu `currentGeneration`) seja\n // criado uma única vez por (fieldPath, uploadFn). Sem este padrão,\n // qualquer re-render que gere nova referência de callbacks zeraria\n // `currentGeneration` e perderia silenciosamente a URL de upload.\n const callbacksRef = useRef({\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n onCallbackError: (e: unknown) =>\n store.read.config.onUnhandledError(e, \"upload\"),\n });\n // Mantém os closures da ref atualizados a cada render sem recriar o objeto.\n callbacksRef.current.setLoading = setIsUploading;\n callbacksRef.current.setError = (path, msg) =>\n store.write.setError(path, msg);\n callbacksRef.current.setValue = (val) => setValue(val as any);\n callbacksRef.current.onCallbackError = (e) =>\n store.read.config.onUnhandledError(e, \"upload\");\n\n const stableCallbacks = useMemo(\n () => ({\n setLoading: (val: boolean) => callbacksRef.current.setLoading(val),\n setError: (path: string, msg: string | undefined) =>\n callbacksRef.current.setError(path, msg),\n setValue: (val: string | null) => callbacksRef.current.setValue(val),\n getUploadKey: () => callbacksRef.current.getUploadKey(),\n setUploadKey: (key: string | null) =>\n callbacksRef.current.setUploadKey(key),\n onCallbackError: (e: unknown) =>\n callbacksRef.current.onCallbackError?.(e),\n }),\n [], // estável para todo o lifetime do componente\n );\n\n const upload = useMemo(\n () => createUploadHandler(fieldPath, uploadFn, stableCallbacks),\n [fieldPath, uploadFn, stableCallbacks],\n );\n\n const remove = useMemo(\n () => createRemoveHandler(fieldPath, deleteFile, stableCallbacks),\n [fieldPath, deleteFile, stableCallbacks],\n );\n\n return useMemo(\n () => ({\n value,\n setValue,\n error,\n isValidating: fieldIsValidating || isUploading,\n upload,\n remove,\n }),\n [value, setValue, error, fieldIsValidating, isUploading, upload, remove],\n );\n}\n"],"mappings":"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","names":["useCallback","useMemo","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","error","touched","invalid","isDirty","isValidating","isHidden","isRequired","hasError","onChange","e","isBitFieldInputEventObject","onBlur","props","meta","useCallback","useMemo","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useMemo","useMemo","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","value","setValue","meta","error","fieldIsValidating","uploadKeyRef","useRef","isUploading","setIsUploading","useState","callbacksRef","path","msg","val","key","stableCallbacks","useMemo","upload","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 { useCallback, useMemo } from \"react\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type { BitFieldInputEvent, UseBitFieldResult } from \"./types\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n const {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n } = metaState;\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 const props = useMemo(\n () => ({\n value: displayValue,\n onChange,\n onBlur,\n }),\n [displayValue, onChange, onBlur],\n );\n\n const meta = useMemo(\n () => ({\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n }),\n [\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n ],\n );\n\n return useMemo(\n () => ({\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 // Metadata (grouped)\n meta,\n }),\n [value, displayValue, setValue, setBlur, onChange, onBlur, props, meta],\n );\n}\n","import { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\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 = readHistoryMetaSnapshot(store);\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 lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.feature.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.feature.redo();\n }, [store]);\n\n return useMemo(\n () => ({\n ...meta,\n undo,\n redo,\n }),\n [meta, undo, 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 { useMemo, useRef, useState, useEffect } from \"react\";\nimport type { BitDeleteUploadFn, BitUploadFn } from \"../core\";\nimport { createRemoveHandler, createUploadHandler } from \"../core/adapters\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitUploadResult } from \"./types\";\nimport { useBitField } from \"./use-bit-field\";\n\nexport function useBitUpload<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const { value, setValue, meta } = field;\n const error = meta?.error;\n const fieldIsValidating = !!meta?.isValidating;\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n // Ref que sempre aponta para os valores mais recentes de render,\n // permitindo que o handler factory (e seu `currentGeneration`) seja\n // criado uma única vez por (fieldPath, uploadFn). Sem este padrão,\n // qualquer re-render que gere nova referência de callbacks zeraria\n // `currentGeneration` e perderia silenciosamente a URL de upload.\n const callbacksRef = useRef({\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n onCallbackError: (e: unknown) =>\n store.read.config.onUnhandledError(e, \"upload\"),\n });\n // Mantém os closures da ref atualizados sem recriar o objeto.\n // Usamos useEffect para evitar mutações de ref durante o render phase\n // (React concurrent mode pode descartar renders, tornando mutações inseguras).\n useEffect(() => {\n callbacksRef.current.setLoading = setIsUploading;\n callbacksRef.current.setError = (path, msg) =>\n store.write.setError(path, msg);\n callbacksRef.current.setValue = (val) => setValue(val as any);\n callbacksRef.current.onCallbackError = (e) =>\n store.read.config.onUnhandledError(e, \"upload\");\n });\n\n const stableCallbacks = useMemo(\n () => ({\n setLoading: (val: boolean) => callbacksRef.current.setLoading(val),\n setError: (path: string, msg: string | undefined) =>\n callbacksRef.current.setError(path, msg),\n setValue: (val: string | null) => callbacksRef.current.setValue(val),\n getUploadKey: () => callbacksRef.current.getUploadKey(),\n setUploadKey: (key: string | null) =>\n callbacksRef.current.setUploadKey(key),\n onCallbackError: (e: unknown) =>\n callbacksRef.current.onCallbackError?.(e),\n }),\n [], // estável para todo o lifetime do componente\n );\n\n const upload = useMemo(\n () => createUploadHandler(fieldPath, uploadFn, stableCallbacks),\n [fieldPath, uploadFn, stableCallbacks],\n );\n\n const remove = useMemo(\n () => createRemoveHandler(fieldPath, deleteFile, stableCallbacks),\n [fieldPath, deleteFile, stableCallbacks],\n );\n\n return useMemo(\n () => ({\n value,\n setValue,\n error,\n isValidating: fieldIsValidating || isUploading,\n upload,\n remove,\n }),\n [value, setValue, error, fieldIsValidating, isUploading, upload, remove],\n );\n}\n"],"mappings":"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","names":["useCallback","useMemo","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","error","touched","invalid","isDirty","isValidating","isHidden","isRequired","hasError","onChange","e","isBitFieldInputEventObject","onBlur","props","meta","useCallback","useMemo","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useMemo","useMemo","useRef","useState","useEffect","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","value","setValue","meta","error","fieldIsValidating","uploadKeyRef","useRef","isUploading","setIsUploading","useState","callbacksRef","path","msg","val","key","useEffect","stableCallbacks","useMemo","upload","createUploadHandler","remove","createRemoveHandler"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkRSH6LQVCcjs = require('../chunk-RSH6LQVC.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-L7EAZ6K6.cjs');var _chunkAVUK52JWcjs = require('../chunk-AVUK52JW.cjs');require('../chunk-BSGJ3T5S.cjs');require('../chunk-RHMJPKNV.cjs');var _chunk3KI3GEU3cjs = require('../chunk-3KI3GEU3.cjs');require('../chunk-GKNGJOB3.cjs');require('../chunk-FTXV2NZO.cjs');require('../chunk-WRNR6SXK.cjs');require('../chunk-PFPGASVZ.cjs');var _react = require('react');function g(i){let{fieldState:r,setBlur:o,store:l}=_chunkRSH6LQVCcjs.d.call(void 0, i),{fieldController:t}=_react.useMemo.call(void 0, ()=>_chunkAVUK52JWcjs.h.call(void 0, l,i),[l,i]),u=_react.useMemo.call(void 0, ()=>t.displayValue(r.value),[r.value,t]),d=_react.useCallback.call(void 0, s=>t.setValue(s),[t]),F=_react.useCallback.call(void 0, s=>t.setValue(s),[t]),{value:f}=r,e=_chunk3KI3GEU3cjs.a.call(void 0, r),n=_react.useCallback.call(void 0, ()=>{o()},[o]);return{value:f,displayValue:u,setValue:F,setBlur:o,onChangeText:d,onBlur:n,meta:{error:e.error,touched:e.touched,invalid:e.invalid,isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:e.hasError},props:{value:u,onChangeText:d,onBlur:n}}}exports.BitFormProvider = _chunkRSH6LQVCcjs.a; exports.useBitArray = _chunkRSH6LQVCcjs.e; exports.useBitField = g; exports.useBitForm = _chunkRSH6LQVCcjs.c; exports.useBitPersist = _chunkRSH6LQVCcjs.i; exports.useBitScope = _chunkRSH6LQVCcjs.f; exports.useBitSteps = _chunkRSH6LQVCcjs.g; exports.useBitStore = _chunkRSH6LQVCcjs.b; exports.useBitWatch = _chunkRSH6LQVCcjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK65TKDQ2cjs = require('../chunk-K65TKDQ2.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-TLUCO2ZN.cjs');var _chunkEPBSLPRLcjs = require('../chunk-EPBSLPRL.cjs');require('../chunk-BSGJ3T5S.cjs');require('../chunk-RHMJPKNV.cjs');var _chunk3KI3GEU3cjs = require('../chunk-3KI3GEU3.cjs');require('../chunk-7IO2KLSJ.cjs');require('../chunk-CIS3YZSK.cjs');require('../chunk-3CPIJF3Z.cjs');require('../chunk-725CMNAV.cjs');var _react = require('react');function U(u){let{fieldState:r,setBlur:o,store:m}=_chunkK65TKDQ2cjs.d.call(void 0, u),{fieldController:t}=_react.useMemo.call(void 0, ()=>_chunkEPBSLPRLcjs.h.call(void 0, m,u),[m,u]),s=_react.useMemo.call(void 0, ()=>t.displayValue(r.value),[r.value,t]),a=_react.useCallback.call(void 0, d=>t.setValue(d),[t]),p=_react.useCallback.call(void 0, d=>t.setValue(d),[t]),{value:B}=r,e=_chunk3KI3GEU3cjs.a.call(void 0, r),l=_react.useCallback.call(void 0, ()=>{o()},[o]),c=_react.useMemo.call(void 0, ()=>({error:e.error,touched:e.touched,invalid:e.invalid,isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:e.hasError}),[e.error,e.touched,e.invalid,e.isValidating,e.isDirty,e.isHidden,e.isRequired,e.hasError]),F=_react.useMemo.call(void 0, ()=>({value:s,onChangeText:a,onBlur:l}),[s,a,l]);return _react.useMemo.call(void 0, ()=>({value:B,displayValue:s,setValue:p,setBlur:o,onChangeText:a,onBlur:l,meta:c,props:F}),[B,s,p,o,a,l,c,F])}exports.BitFormProvider = _chunkK65TKDQ2cjs.a; exports.useBitArray = _chunkK65TKDQ2cjs.e; exports.useBitField = U; exports.useBitForm = _chunkK65TKDQ2cjs.c; exports.useBitPersist = _chunkK65TKDQ2cjs.i; exports.useBitScope = _chunkK65TKDQ2cjs.f; exports.useBitSteps = _chunkK65TKDQ2cjs.g; exports.useBitStore = _chunkK65TKDQ2cjs.b; exports.useBitWatch = _chunkK65TKDQ2cjs.h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","../../src/react-native/use-bit-field.ts"],"names":["useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur"],"mappings":"AAAA,kIAAiG,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,iCAA8B,iCAA8B,8BCAhY,SAUrBA,CAAAA,CAGdC,CAAAA,CAA4C,CAC5C,GAAM,CAAE,UAAA,CAAAC,CAAAA,CAAY,OAAA,CAAAC,CAAAA,CAAS,KAAA,CAAAC,CAAM,CAAA,CAAIC,iCAAAA,CAIjC,CAAA,CAEA,CAAE,eAAA,CAAAC,CAAgB,CAAA,CAAIC,4BAAAA,CAAQ,CAAA,EAC3BC,iCAAAA,CAAkCJ,CAAOH,CAAI,CAAA,CACnD,CAACG,CAAAA,CAAOH,CAAI,CAAC,CAAA,CAEVQ,CAAAA,CAAeF,4BAAAA,CACnB,CAAA,EAAMD,CAAAA,CAAgB,YAAA,CAAaJ,CAAAA,CAAW,KAAK,CAAA,CACnD,CAACA,CAAAA,CAAW,KAAA,CAAOI,CAAe,CACpC,CAAA,CAEMI,CAAAA,CAAeC,gCAAAA,CAClBC,EAAiBN,CAAAA,CAAgB,QAAA,CAASM,CAAI,CAAA,CAC/C,CAACN,CAAe,CAClB,CAAA,CAEMO,CAAAA,CAAWF,gCAAAA,CACdG,EAAaR,CAAAA,CAAgB,QAAA,CAASQ,CAAG,CAAA,CAC1C,CAACR,CAAe,CAClB,CAAA,CAEM,CAAE,KAAA,CAAAS,CAAM,CAAA,CAAIb,CAAAA,CACZc,CAAAA,CAAYC,iCAAAA,CAA0B,CAAA,CAEtCC,CAAAA,CAASP,gCAAAA,CAAY,CAAA,EAAM,CAC/BR,CAAAA,CAAQ,CACV,CAAA,CAAG,CAACA,CAAO,CAAC,CAAA,CAEZ,MAAO,CACL,KAAA,CAAOY,CAAAA,CACP,YAAA,CAAAN,CAAAA,CACA,QAAA,CAAAI,CAAAA,CACA,OAAA,CAAAV,CAAAA,CACA,YAAA,CAAcO,CAAAA,CACd,MAAA,CAAAQ,CAAAA,CACA,IAAA,CAAM,CACJ,KAAA,CAAOF,CAAAA,CAAU,KAAA,CACjB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,YAAA,CAAcA,CAAAA,CAAU,YAAA,CACxB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUA,CAAAA,CAAU,QAAA,CACpB,UAAA,CAAYA,CAAAA,CAAU,UAAA,CACtB,QAAA,CAAUA,CAAAA,CAAU,QACtB,CAAA,CACA,KAAA,CAAO,CACL,KAAA,CAAOP,CAAAA,CACP,YAAA,CAAcC,CAAAA,CACd,MAAA,CAAAQ,CACF,CACF,CACF,CAAA,qXAAA","file":"/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: any) => fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","../../src/react-native/use-bit-field.ts"],"names":["useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur","meta","props"],"mappings":"AAAA,kIAA4F,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,iCAA8B,iCAA8B,8BCA3X,SAUrBA,CAAAA,CAGdC,CAAAA,CAA4C,CAC5C,GAAM,CAAE,UAAA,CAAAC,CAAAA,CAAY,OAAA,CAAAC,CAAAA,CAAS,KAAA,CAAAC,CAAM,CAAA,CAAIC,iCAAAA,CAIjC,CAAA,CAEA,CAAE,eAAA,CAAAC,CAAgB,CAAA,CAAIC,4BAAAA,CAAQ,CAAA,EAC3BC,iCAAAA,CAAkCJ,CAAOH,CAAI,CAAA,CACnD,CAACG,CAAAA,CAAOH,CAAI,CAAC,CAAA,CAEVQ,CAAAA,CAAeF,4BAAAA,CACnB,CAAA,EAAMD,CAAAA,CAAgB,YAAA,CAAaJ,CAAAA,CAAW,KAAK,CAAA,CACnD,CAACA,CAAAA,CAAW,KAAA,CAAOI,CAAe,CACpC,CAAA,CAEMI,CAAAA,CAAeC,gCAAAA,CAClBC,EAAiBN,CAAAA,CAAgB,QAAA,CAASM,CAAI,CAAA,CAC/C,CAACN,CAAe,CAClB,CAAA,CAEMO,CAAAA,CAAWF,gCAAAA,CACdG,EACCR,CAAAA,CAAgB,QAAA,CAASQ,CAAG,CAAA,CAC9B,CAACR,CAAe,CAClB,CAAA,CAEM,CAAE,KAAA,CAAAS,CAAM,CAAA,CAAIb,CAAAA,CACZc,CAAAA,CAAYC,iCAAAA,CAA0B,CAAA,CAEtCC,CAAAA,CAASP,gCAAAA,CAAY,CAAA,EAAM,CAC/BR,CAAAA,CAAQ,CACV,CAAA,CAAG,CAACA,CAAO,CAAC,CAAA,CAENgB,CAAAA,CAAOZ,4BAAAA,CACX,CAAA,EAAA,CAAO,CACL,KAAA,CAAOS,CAAAA,CAAU,KAAA,CACjB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,YAAA,CAAcA,CAAAA,CAAU,YAAA,CACxB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUA,CAAAA,CAAU,QAAA,CACpB,UAAA,CAAYA,CAAAA,CAAU,UAAA,CACtB,QAAA,CAAUA,CAAAA,CAAU,QACtB,CAAA,CAAA,CACA,CACEA,CAAAA,CAAU,KAAA,CACVA,CAAAA,CAAU,OAAA,CACVA,CAAAA,CAAU,OAAA,CACVA,CAAAA,CAAU,YAAA,CACVA,CAAAA,CAAU,OAAA,CACVA,CAAAA,CAAU,QAAA,CACVA,CAAAA,CAAU,UAAA,CACVA,CAAAA,CAAU,QACZ,CACF,CAAA,CAEMI,CAAAA,CAAQb,4BAAAA,CACZ,CAAA,EAAA,CAAO,CACL,KAAA,CAAOE,CAAAA,CACP,YAAA,CAAcC,CAAAA,CACd,MAAA,CAAAQ,CACF,CAAA,CAAA,CACA,CAACT,CAAAA,CAAcC,CAAAA,CAAcQ,CAAM,CACrC,CAAA,CAEA,OAAOX,4BAAAA,CACL,CAAA,EAAA,CAAO,CACL,KAAA,CAAOQ,CAAAA,CACP,YAAA,CAAAN,CAAAA,CACA,QAAA,CAAAI,CAAAA,CACA,OAAA,CAAAV,CAAAA,CACA,YAAA,CAAcO,CAAAA,CACd,MAAA,CAAAQ,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CAAA,CACA,CAACL,CAAAA,CAAON,CAAAA,CAAcI,CAAAA,CAAUV,CAAAA,CAASO,CAAAA,CAAcQ,CAAAA,CAAQC,CAAAA,CAAMC,CAAK,CAC5E,CACF,CAAA,qXAAA","file":"/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n const meta = useMemo(\n () => ({\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n }),\n [\n metaState.error,\n metaState.touched,\n metaState.invalid,\n metaState.isValidating,\n metaState.isDirty,\n metaState.isHidden,\n metaState.isRequired,\n metaState.hasError,\n ],\n );\n\n const props = useMemo(\n () => ({\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n }),\n [displayValue, handleChange, onBlur],\n );\n\n return useMemo(\n () => ({\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta,\n props,\n }),\n [value, displayValue, setValue, setBlur, handleChange, onBlur, meta, props],\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{a as x,b as P,c as v,d as B,e as y,f as h,g as V,h as T,i as S}from"../chunk-GSZTHF7Z.js";import"../chunk-5NA2TFPG.js";import"../chunk-LIHWJJIM.js";import{h as m}from"../chunk-SYEUXL2E.js";import"../chunk-W2E5UIXT.js";import"../chunk-UIKO6GGW.js";import{a as p}from"../chunk-ICYXODTQ.js";import"../chunk-HE6EQZTH.js";import"../chunk-G3EHXKOS.js";import"../chunk-QCKCONCU.js";import"../chunk-3NUJVIAM.js";import{useMemo as c,useCallback as a}from"react";function g(i){let{fieldState:r,setBlur:o,store:l}=B(i),{fieldController:t}=c(()=>m(l,i),[l,i]),u=c(()=>t.displayValue(r.value),[r.value,t]),d=a(s=>t.setValue(s),[t]),F=a(s=>t.setValue(s),[t]),{value:f}=r,e=p(r),n=a(()=>{o()},[o]);return{value:f,displayValue:u,setValue:F,setBlur:o,onChangeText:d,onBlur:n,meta:{error:e.error,touched:e.touched,invalid:e.invalid,isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:e.hasError},props:{value:u,onChangeText:d,onBlur:n}}}export{x as BitFormProvider,y as useBitArray,g as useBitField,v as useBitForm,S as useBitPersist,h as useBitScope,V as useBitSteps,P as useBitStore,T as useBitWatch};
1
+ import{a as x,b as v,c as y,d as h,e as V,f as T,g,h as R,i as S}from"../chunk-23DHXQOC.js";import"../chunk-5NA2TFPG.js";import"../chunk-B45EMB4Q.js";import{h as f}from"../chunk-3WNZPBME.js";import"../chunk-W2E5UIXT.js";import"../chunk-UIKO6GGW.js";import{a as P}from"../chunk-ICYXODTQ.js";import"../chunk-AJUX7LYB.js";import"../chunk-T7TOEIOH.js";import"../chunk-32RH5MSM.js";import"../chunk-DGEGYNQL.js";import{useMemo as i,useCallback as n}from"react";function U(u){let{fieldState:r,setBlur:o,store:m}=h(u),{fieldController:t}=i(()=>f(m,u),[m,u]),s=i(()=>t.displayValue(r.value),[r.value,t]),a=n(d=>t.setValue(d),[t]),p=n(d=>t.setValue(d),[t]),{value:B}=r,e=P(r),l=n(()=>{o()},[o]),c=i(()=>({error:e.error,touched:e.touched,invalid:e.invalid,isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:e.hasError}),[e.error,e.touched,e.invalid,e.isValidating,e.isDirty,e.isHidden,e.isRequired,e.hasError]),F=i(()=>({value:s,onChangeText:a,onBlur:l}),[s,a,l]);return i(()=>({value:B,displayValue:s,setValue:p,setBlur:o,onChangeText:a,onBlur:l,meta:c,props:F}),[B,s,p,o,a,l,c,F])}export{x as BitFormProvider,V as useBitArray,U as useBitField,y as useBitForm,S as useBitPersist,T as useBitScope,g as useBitSteps,v as useBitStore,R as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react-native/use-bit-field.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: any) => fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"],"mappings":"2ZAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QAU9B,SAASC,EAGdC,EAA4C,CAC5C,GAAM,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,CAAM,EAAIC,EAIrCJ,CAAI,EAEA,CAAE,gBAAAK,CAAgB,EAAIC,EAAQ,IAC3BC,EAAkCJ,EAAOH,CAAI,EACnD,CAACG,EAAOH,CAAI,CAAC,EAEVQ,EAAeF,EACnB,IAAMD,EAAgB,aAAaJ,EAAW,KAAK,EACnD,CAACA,EAAW,MAAOI,CAAe,CACpC,EAEMI,EAAeC,EAClBC,GAAiBN,EAAgB,SAASM,CAAI,EAC/C,CAACN,CAAe,CAClB,EAEMO,EAAWF,EACdG,GAAaR,EAAgB,SAASQ,CAAG,EAC1C,CAACR,CAAe,CAClB,EAEM,CAAE,MAAAS,CAAM,EAAIb,EACZc,EAAYC,EAAgBf,CAAU,EAEtCgB,EAASP,EAAY,IAAM,CAC/BR,EAAQ,CACV,EAAG,CAACA,CAAO,CAAC,EAEZ,MAAO,CACL,MAAOY,EACP,aAAAN,EACA,SAAAI,EACA,QAAAV,EACA,aAAcO,EACd,OAAAQ,EACA,KAAM,CACJ,MAAOF,EAAU,MACjB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,aAAcA,EAAU,aACxB,QAASA,EAAU,QACnB,SAAUA,EAAU,SACpB,WAAYA,EAAU,WACtB,SAAUA,EAAU,QACtB,EACA,MAAO,CACL,MAAOP,EACP,aAAcC,EACd,OAAAQ,CACF,CACF,CACF","names":["useMemo","useCallback","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur"]}
1
+ {"version":3,"sources":["../../src/react-native/use-bit-field.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n const meta = useMemo(\n () => ({\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n }),\n [\n metaState.error,\n metaState.touched,\n metaState.invalid,\n metaState.isValidating,\n metaState.isDirty,\n metaState.isHidden,\n metaState.isRequired,\n metaState.hasError,\n ],\n );\n\n const props = useMemo(\n () => ({\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n }),\n [displayValue, handleChange, onBlur],\n );\n\n return useMemo(\n () => ({\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta,\n props,\n }),\n [value, displayValue, setValue, setBlur, handleChange, onBlur, meta, props],\n );\n}\n"],"mappings":"sZAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QAU9B,SAASC,EAGdC,EAA4C,CAC5C,GAAM,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,CAAM,EAAIC,EAIrCJ,CAAI,EAEA,CAAE,gBAAAK,CAAgB,EAAIC,EAAQ,IAC3BC,EAAkCJ,EAAOH,CAAI,EACnD,CAACG,EAAOH,CAAI,CAAC,EAEVQ,EAAeF,EACnB,IAAMD,EAAgB,aAAaJ,EAAW,KAAK,EACnD,CAACA,EAAW,MAAOI,CAAe,CACpC,EAEMI,EAAeC,EAClBC,GAAiBN,EAAgB,SAASM,CAAI,EAC/C,CAACN,CAAe,CAClB,EAEMO,EAAWF,EACdG,GACCR,EAAgB,SAASQ,CAAG,EAC9B,CAACR,CAAe,CAClB,EAEM,CAAE,MAAAS,CAAM,EAAIb,EACZc,EAAYC,EAAgBf,CAAU,EAEtCgB,EAASP,EAAY,IAAM,CAC/BR,EAAQ,CACV,EAAG,CAACA,CAAO,CAAC,EAENgB,EAAOZ,EACX,KAAO,CACL,MAAOS,EAAU,MACjB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,aAAcA,EAAU,aACxB,QAASA,EAAU,QACnB,SAAUA,EAAU,SACpB,WAAYA,EAAU,WACtB,SAAUA,EAAU,QACtB,GACA,CACEA,EAAU,MACVA,EAAU,QACVA,EAAU,QACVA,EAAU,aACVA,EAAU,QACVA,EAAU,SACVA,EAAU,WACVA,EAAU,QACZ,CACF,EAEMI,EAAQb,EACZ,KAAO,CACL,MAAOE,EACP,aAAcC,EACd,OAAAQ,CACF,GACA,CAACT,EAAcC,EAAcQ,CAAM,CACrC,EAEA,OAAOX,EACL,KAAO,CACL,MAAOQ,EACP,aAAAN,EACA,SAAAI,EACA,QAAAV,EACA,aAAcO,EACd,OAAAQ,EACA,KAAAC,EACA,MAAAC,CACF,GACA,CAACL,EAAON,EAAcI,EAAUV,EAASO,EAAcQ,EAAQC,EAAMC,CAAK,CAC5E,CACF","names":["useMemo","useCallback","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur","meta","props"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk77PK7U73cjs = require('../chunk-77PK7U73.cjs');var _chunkUT63HKR6cjs = require('../chunk-UT63HKR6.cjs');var _chunkDD6XWUMRcjs = require('../chunk-DD6XWUMR.cjs');require('../chunk-CTURHI75.cjs');require('../chunk-MFSDDSVG.cjs');exports.joiResolver = _chunkDD6XWUMRcjs.a; exports.yupResolver = _chunkUT63HKR6cjs.a; exports.zodResolver = _chunk77PK7U73cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK2JSAJAFcjs = require('../chunk-K2JSAJAF.cjs');var _chunk5ILGCBKGcjs = require('../chunk-5ILGCBKG.cjs');var _chunk27LJCW56cjs = require('../chunk-27LJCW56.cjs');require('../chunk-4WPLTOBT.cjs');require('../chunk-MFSDDSVG.cjs');exports.joiResolver = _chunk27LJCW56cjs.a; exports.yupResolver = _chunk5ILGCBKGcjs.a; exports.zodResolver = _chunkK2JSAJAFcjs.a;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import{a as o}from"../chunk-M2XR4C7T.js";import{a as r}from"../chunk-GDRNKTHO.js";import{a as e}from"../chunk-FGJB4DHQ.js";import"../chunk-GUU6EXFN.js";import"../chunk-FQLJOSF7.js";export{e as joiResolver,r as yupResolver,o as zodResolver};
1
+ import{a as o}from"../chunk-K2KCQEER.js";import{a as r}from"../chunk-WEZ5Q6YO.js";import{a as e}from"../chunk-SFVGMVIE.js";import"../chunk-HTMNDK6W.js";import"../chunk-FQLJOSF7.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 _chunkDD6XWUMRcjs = require('../chunk-DD6XWUMR.cjs');require('../chunk-CTURHI75.cjs');exports.joiResolver = _chunkDD6XWUMRcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk27LJCW56cjs = require('../chunk-27LJCW56.cjs');require('../chunk-4WPLTOBT.cjs');exports.joiResolver = _chunk27LJCW56cjs.a;
2
2
  //# sourceMappingURL=joi.cjs.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-FGJB4DHQ.js";import"../chunk-GUU6EXFN.js";export{a as joiResolver};
1
+ import{a}from"../chunk-SFVGMVIE.js";import"../chunk-HTMNDK6W.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 _chunkUT63HKR6cjs = require('../chunk-UT63HKR6.cjs');require('../chunk-CTURHI75.cjs');exports.yupResolver = _chunkUT63HKR6cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5ILGCBKGcjs = require('../chunk-5ILGCBKG.cjs');require('../chunk-4WPLTOBT.cjs');exports.yupResolver = _chunk5ILGCBKGcjs.a;
2
2
  //# sourceMappingURL=yup.cjs.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-GDRNKTHO.js";import"../chunk-GUU6EXFN.js";export{a as yupResolver};
1
+ import{a}from"../chunk-WEZ5Q6YO.js";import"../chunk-HTMNDK6W.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 _chunk77PK7U73cjs = require('../chunk-77PK7U73.cjs');require('../chunk-CTURHI75.cjs');exports.zodResolver = _chunk77PK7U73cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK2JSAJAFcjs = require('../chunk-K2JSAJAF.cjs');require('../chunk-4WPLTOBT.cjs');exports.zodResolver = _chunkK2JSAJAFcjs.a;
2
2
  //# sourceMappingURL=zod.cjs.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-M2XR4C7T.js";import"../chunk-GUU6EXFN.js";export{a as zodResolver};
1
+ import{a}from"../chunk-K2KCQEER.js";import"../chunk-HTMNDK6W.js";export{a as zodResolver};
2
2
  //# sourceMappingURL=zod.js.map
package/dist/utils.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkFTXV2NZOcjs = require('./chunk-FTXV2NZO.cjs');exports.cleanPrefixedKeys = _chunkFTXV2NZOcjs.j; exports.extractServerErrors = _chunkFTXV2NZOcjs.n; exports.isValidationErrorShape = _chunkFTXV2NZOcjs.m;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkCIS3YZSKcjs = require('./chunk-CIS3YZSK.cjs');exports.cleanPrefixedKeys = _chunkCIS3YZSKcjs.j; exports.extractServerErrors = _chunkCIS3YZSKcjs.n; exports.isValidationErrorShape = _chunkCIS3YZSKcjs.m;
2
2
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- import{j as r,m as e,n as a}from"./chunk-G3EHXKOS.js";export{r as cleanPrefixedKeys,a as extractServerErrors,e as isValidationErrorShape};
1
+ import{j as r,m as e,n as a}from"./chunk-T7TOEIOH.js";export{r as cleanPrefixedKeys,a as extractServerErrors,e as isValidationErrorShape};
2
2
  //# sourceMappingURL=utils.js.map