@lehnihon/bit-form 2.2.13 → 2.2.15
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.
- package/README.md +2 -1
- package/dist/angular/index.cjs +1 -1
- package/dist/angular/index.js +1 -1
- package/dist/chunk-4EMYM7JF.cjs +2 -0
- package/dist/chunk-4EMYM7JF.cjs.map +1 -0
- package/dist/{chunk-ALIYU2RT.cjs → chunk-AVUK52JW.cjs} +2 -2
- package/dist/{chunk-ALIYU2RT.cjs.map → chunk-AVUK52JW.cjs.map} +1 -1
- package/dist/chunk-CIZ6UW2J.cjs +2 -0
- package/dist/{chunk-MAKFWOL5.cjs.map → chunk-CIZ6UW2J.cjs.map} +1 -1
- package/dist/chunk-FTXV2NZO.cjs +2 -0
- package/dist/{chunk-VOA3SKFY.cjs.map → chunk-FTXV2NZO.cjs.map} +1 -1
- package/dist/chunk-G3EHXKOS.js +2 -0
- package/dist/chunk-G3EHXKOS.js.map +1 -0
- package/dist/{chunk-OSQWKXFI.cjs → chunk-GKNGJOB3.cjs} +2 -2
- package/dist/{chunk-OSQWKXFI.cjs.map → chunk-GKNGJOB3.cjs.map} +1 -1
- package/dist/{chunk-JKYECJH5.js → chunk-HE6EQZTH.js} +2 -2
- package/dist/{chunk-IXZ52RPZ.cjs → chunk-IB2BMG4F.cjs} +2 -2
- package/dist/{chunk-IXZ52RPZ.cjs.map → chunk-IB2BMG4F.cjs.map} +1 -1
- package/dist/{chunk-LM34BK4Q.cjs → chunk-KGI5PU2P.cjs} +2 -2
- package/dist/{chunk-LM34BK4Q.cjs.map → chunk-KGI5PU2P.cjs.map} +1 -1
- package/dist/chunk-KMOB6DB6.js +2 -0
- package/dist/chunk-KMOB6DB6.js.map +1 -0
- package/dist/{chunk-7OZR7KWL.js → chunk-LBISXDNW.js} +2 -2
- package/dist/chunk-NFKYWPEV.js +2 -0
- package/dist/chunk-NFKYWPEV.js.map +1 -0
- package/dist/{chunk-EY44ZBGC.js → chunk-SYEUXL2E.js} +2 -2
- package/dist/{chunk-4NQOD2BA.js → chunk-VSNLUHZQ.js} +2 -2
- package/dist/cli/index.cjs +378 -84
- package/dist/core/bindings.cjs +1 -1
- package/dist/core/bindings.js +1 -1
- package/dist/core/store.cjs +1 -1
- package/dist/core/store.js +1 -1
- package/dist/core/utils.cjs +1 -1
- package/dist/core/utils.js +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/devtools/bridge.cjs +1 -1
- package/dist/devtools/bridge.js +1 -1
- package/dist/devtools/index.cjs +2 -2
- package/dist/devtools/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react-native/index.cjs +1 -1
- package/dist/react-native/index.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-G4HK5QTU.js +0 -2
- package/dist/chunk-G4HK5QTU.js.map +0 -1
- package/dist/chunk-IMMFFTXE.js +0 -2
- package/dist/chunk-IMMFFTXE.js.map +0 -1
- package/dist/chunk-MAKFWOL5.cjs +0 -2
- package/dist/chunk-MJ4AOJRT.cjs +0 -2
- package/dist/chunk-MJ4AOJRT.cjs.map +0 -1
- package/dist/chunk-VOA3SKFY.cjs +0 -2
- package/dist/chunk-W2FPKUNM.js +0 -2
- package/dist/chunk-W2FPKUNM.js.map +0 -1
- /package/dist/{chunk-JKYECJH5.js.map → chunk-HE6EQZTH.js.map} +0 -0
- /package/dist/{chunk-7OZR7KWL.js.map → chunk-LBISXDNW.js.map} +0 -0
- /package/dist/{chunk-EY44ZBGC.js.map → chunk-SYEUXL2E.js.map} +0 -0
- /package/dist/{chunk-4NQOD2BA.js.map → chunk-VSNLUHZQ.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as c,c as v}from"./chunk-K5X37E3U.js";import{a as g}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as c,c as v}from"./chunk-K5X37E3U.js";import{a as g}from"./chunk-KMOB6DB6.js";function R(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function k(e){let o=e.getHistoryMetadata();return{...R(e.getState()),_meta:{canUndo:o.canUndo,canRedo:o.canRedo,totalSteps:o.historySize,currentIndex:o.historyIndex}}}function b(e){let o={};for(let[t,i]of Object.entries(e))o[t]=k(i);return o}function w(e){if(!e||typeof e!="object")return!1;let o=e;return typeof o.getState=="function"&&typeof o.getHistoryMetadata=="function"}function I(e){if(!w(e))return!1;let o=e;return typeof o.undo=="function"&&typeof o.redo=="function"&&typeof o.reset=="function"}function B(e,o){let t=e[o];return I(t)?t:null}var S=null,O=50;function N(e,o=g){S&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),S());let t=null,i=null,f,n=null,a=new Set,T=!1,u=r=>{t?.readyState===WebSocket.OPEN&&t.send(JSON.stringify(r))},h=()=>{if(a.size===0)return;let r=b(Array.from(a).reduce((s,l)=>{let d=o.stores[l];return d&&(s[l]=d),s},{}));a.clear(),n=null,Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r})},D=()=>{n||(n=setTimeout(()=>{h()},O))},y=()=>{T=!1,t=new WebSocket(e),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),u({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let r=b(o.stores);Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r}),i=o.subscribe((s,l)=>{a.add(s),D()}),f=setInterval(()=>{u({type:"PING",protocolVersion:1})},3e4)},t.onmessage=r=>{try{let s=JSON.parse(r.data);if(v(s)){let{storeId:l,action:d}=s.payload,p=B(o.stores,l);if(!p)return;switch(d){case"undo":p.undo();break;case"redo":p.redo();break;case"reset":p.reset();break}}}catch(s){console.warn("[bit-form] Erro ao processar comando do CLI:",s)}},t.onclose=()=>{i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),T?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(y,3e3))}};y();let m=()=>{T=!0,i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),S=null};return S=m,m}export{b as a,B as b,N as c};
|
|
2
|
+
//# sourceMappingURL=chunk-LBISXDNW.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function t(r){try{r()}catch{}}function l(r,o,e){let n=0;return async a=>{if(!a)return;let d=++n;t(()=>e.setLoading(!0)),t(()=>e.setError(r,void 0));try{let i=await o(a);if(d!==n)return;t(()=>e.setValue(i.url)),t(()=>e.setUploadKey(i.key)),t(()=>e.setError(r,void 0))}catch(i){if(d!==n)return;let s=i instanceof Error?i.message:"Upload failed";t(()=>e.setError(r,s))}finally{d===n&&t(()=>e.setLoading(!1))}}}function u(r,o,e){return async()=>{let n=e.getUploadKey();if(n&&o)try{await o(n)}catch(a){let d=a instanceof Error?a.message:"Delete failed";e.setError(r,d);return}e.setValue(null),e.setUploadKey(null),e.setError(r,void 0)}}export{l as a,u as b};
|
|
2
|
+
//# sourceMappingURL=chunk-NFKYWPEV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/adapters/upload-kernel.ts"],"sourcesContent":["/**\n * Framework-agnostic upload kernel.\n *\n * Encapsulates the side-effect logic for uploading/removing files so that\n * React, Vue, and Angular adapters share a single implementation and only\n * differ in how they wire reactive state.\n */\n\nimport type { BitDeleteUploadFn, BitUploadFn } from \"../types/upload\";\n\nexport interface UploadKernelCallbacks {\n /** Called with `true` when upload starts and `false` when it finishes. */\n setLoading: (loading: boolean) => void;\n /** Set or clear a field-level error message. */\n setError: (path: string, message: string | undefined) => void;\n /** Set the stored file URL after a successful upload (or `null` on remove). */\n setValue: (value: string | null) => void;\n /** Return the key of the last uploaded file (used when deleting). */\n getUploadKey: () => string | null;\n /** Persist the upload key returned by the upload function. */\n setUploadKey: (key: string | null) => void;\n}\n\n/**\n * Creates a type-safe `upload` handler for a field.\n *\n * @example\n * ```ts\n * const upload = createUploadHandler(\"avatar\", myUploadFn, {\n * setLoading: (v) => (isUploading.value = v),\n * setError: (p, m) => store.setError(p, m),\n * setValue: (v) => field.setValue(v),\n * getUploadKey: () => uploadKey,\n * setUploadKey: (k) => (uploadKey = k),\n * });\n * ```\n */\nfunction safeCallbackExecution(fn: () => void): void {\n try {\n fn();\n } catch (error) {\n // Silently swallow callback errors to maintain upload state consistency\n }\n}\n\nexport function createUploadHandler<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\n callbacks: UploadKernelCallbacks,\n): (file: File | null | undefined) => Promise<void> {\n let currentGeneration = 0;\n return async (file) => {\n if (!file) return;\n\n const myGeneration = ++currentGeneration;\n safeCallbackExecution(() => callbacks.setLoading(true));\n safeCallbackExecution(() => callbacks.setError(fieldPath, undefined));\n\n try {\n const result = await uploadFn(file);\n\n if (myGeneration !== currentGeneration) return;\n safeCallbackExecution(() => callbacks.setValue(result.url));\n safeCallbackExecution(() => callbacks.setUploadKey(result.key));\n safeCallbackExecution(() => callbacks.setError(fieldPath, undefined));\n } catch (error) {\n if (myGeneration !== currentGeneration) return;\n const message = error instanceof Error ? error.message : \"Upload failed\";\n safeCallbackExecution(() => callbacks.setError(fieldPath, message));\n } finally {\n if (myGeneration === currentGeneration) {\n safeCallbackExecution(() => callbacks.setLoading(false));\n }\n }\n };\n}\n\n/**\n * Creates a type-safe `remove` handler for a field.\n */\nexport function createRemoveHandler(\n fieldPath: string,\n deleteFile: BitDeleteUploadFn | undefined,\n callbacks: UploadKernelCallbacks,\n): () => Promise<void> {\n return async () => {\n const uploadKey = callbacks.getUploadKey();\n\n if (uploadKey && deleteFile) {\n try {\n await deleteFile(uploadKey);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Delete failed\";\n callbacks.setError(fieldPath, message);\n return;\n }\n }\n\n callbacks.setValue(null);\n callbacks.setUploadKey(null);\n callbacks.setError(fieldPath, undefined);\n };\n}\n"],"mappings":"AAqCA,SAASA,EAAsBC,EAAsB,CACnD,GAAI,CACFA,EAAG,CACL,MAAgB,CAEhB,CACF,CAEO,SAASC,EAGdC,EACAC,EACAC,EACkD,CAClD,IAAIC,EAAoB,EACxB,MAAO,OAAOC,GAAS,CACrB,GAAI,CAACA,EAAM,OAEX,IAAMC,EAAe,EAAEF,EACvBN,EAAsB,IAAMK,EAAU,WAAW,EAAI,CAAC,EACtDL,EAAsB,IAAMK,EAAU,SAASF,EAAW,MAAS,CAAC,EAEpE,GAAI,CACF,IAAMM,EAAS,MAAML,EAASG,CAAI,EAElC,GAAIC,IAAiBF,EAAmB,OACxCN,EAAsB,IAAMK,EAAU,SAASI,EAAO,GAAG,CAAC,EAC1DT,EAAsB,IAAMK,EAAU,aAAaI,EAAO,GAAG,CAAC,EAC9DT,EAAsB,IAAMK,EAAU,SAASF,EAAW,MAAS,CAAC,CACtE,OAASO,EAAO,CACd,GAAIF,IAAiBF,EAAmB,OACxC,IAAMK,EAAUD,aAAiB,MAAQA,EAAM,QAAU,gBACzDV,EAAsB,IAAMK,EAAU,SAASF,EAAWQ,CAAO,CAAC,CACpE,QAAE,CACIH,IAAiBF,GACnBN,EAAsB,IAAMK,EAAU,WAAW,EAAK,CAAC,CAE3D,CACF,CACF,CAKO,SAASO,EACdT,EACAU,EACAR,EACqB,CACrB,MAAO,UAAY,CACjB,IAAMS,EAAYT,EAAU,aAAa,EAEzC,GAAIS,GAAaD,EACf,GAAI,CACF,MAAMA,EAAWC,CAAS,CAC5B,OAASJ,EAAO,CACd,IAAMC,EACJD,aAAiB,MAAQA,EAAM,QAAU,gBAC3CL,EAAU,SAASF,EAAWQ,CAAO,EACrC,MACF,CAGFN,EAAU,SAAS,IAAI,EACvBA,EAAU,aAAa,IAAI,EAC3BA,EAAU,SAASF,EAAW,MAAS,CACzC,CACF","names":["safeCallbackExecution","fn","createUploadHandler","fieldPath","uploadFn","callbacks","currentGeneration","file","myGeneration","result","error","message","createRemoveHandler","deleteFile","uploadKey"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{f as c}from"./chunk-G3EHXKOS.js";import{b as u,c as d}from"./chunk-3NUJVIAM.js";function m(e){let t=e.read.getState();return{isValid:t.isValid,isDirty:t.isDirty,isSubmitting:t.isSubmitting}}function f(e,t){return e.observe.subscribeFormMeta(()=>t())}function g(e,t){return t(m(e)),f(e,()=>{t(m(e))})}function B(e){return e.read.getPersistMetadata()}function v(e,t){return e.observe.subscribePersistMeta(()=>t())}function x(e,t){return t(B(e)),e.observe.subscribePersistMeta(o=>{t(o)})}function M(e,t){let o=!1,a=r=>Array.isArray(r)?r:r==null?[]:((!(typeof process<"u")||process.env.NODE_ENV!=="production")&&!o&&(o=!0,console.warn(`[bit-form] createArrayBinding expected an array at path "${String(t)}" but received ${typeof r}. Returning an empty array.`)),[]),p=r=>e.feature.getArrayItemIds(t,r);return{readItems(){let r=c(e.read.getState().values,t);return a(r)},getFields(r){let i=p(r.length);return r.map((s,n)=>({key:i[n]||`temp-${n}`,value:s,index:n}))},append(r){e.feature.pushItem(t,r)},prepend(r){e.feature.prependItem(t,r)},insert(r,i){e.feature.insertItem(t,r,i)},remove(r){e.feature.removeItem(t,r)},move(r,i){e.feature.moveItem(t,r,i)},swap(r,i){e.feature.swapItems(t,r,i)},replace(r){e.feature.replaceItems(t,r)},clear(){e.feature.clearItems(t)}}}function b(e,t,o){return{setValue:i=>{let s=o();e.setField(t,d(i,s))},setBlur:()=>e.blurField(t),displayValue:i=>u(i,o())}}function w(e,t){return{fieldController:b({setField(a,p){e.write.setField(a,p)},blurField(a){e.write.blurField(a)}},t,()=>e.feature.resolveMask(t))}}function F(e,t){e?.preventDefault?.(),t?.stopPropagation&&e?.stopPropagation?.()}function y(e,t,o){return{submit:i=>async s=>{F(s,o),await e.submit(i)},onSubmit:i=>async s=>{F(s,o),t.setSubmissionError(null);let n,l=await e.submit(async(P,S)=>{n=await i(P,S)});if(l.status==="submitted"){t.setSubmissionResult(n),t.setSubmissionError(null);return}l.status==="failed"&&t.setSubmissionError(l.error instanceof Error?l.error:new Error(String(l.error)))},reset:()=>{e.reset(),t.clearSubmissionState()},getValues:()=>e.getState().values,getErrors:()=>e.getState().errors,getTouched:()=>e.getState().touched,getDirtyValues:()=>e.getDirtyValues()}}function T(e,t,o){let a={getState:e.read.getState,getDirtyValues:e.read.getDirtyValues,submit:e.write.submit,reset:e.write.reset,setServerErrors:e.write.setServerErrors};return{controller:y(a,t,o),actions:{setField:e.write.setField.bind(e.write),blurField:e.write.blurField.bind(e.write),setValues:e.write.setValues.bind(e.write),setError:e.write.setError.bind(e.write),setErrors:e.write.setErrors.bind(e.write),setServerErrors:e.write.setServerErrors.bind(e.write),validate:e.feature.validate.bind(e.feature),transaction:e.write.transaction.bind(e.write)}}}function A(e,t){e.feature?.unregisterField?.(t)}function k(e,t){e.feature?.unregisterPrefix?.(t)}export{m as a,f as b,g as c,B as d,v as e,x as f,M as g,w as h,T as i,A as j,k};
|
|
2
|
+
//# sourceMappingURL=chunk-SYEUXL2E.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as M}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{d as M}from"./chunk-KMOB6DB6.js";import{a as A,b as C,d as R,e as D,g as U,i as j,j as I,k as q}from"./chunk-SYEUXL2E.js";import{b as F}from"./chunk-UIKO6GGW.js";import{a as k}from"./chunk-HE6EQZTH.js";import{c as y,f as w}from"./chunk-G3EHXKOS.js";import{createContext as G,useContext as H}from"react";import{jsx as J}from"react/jsx-runtime";var L=G(null),ft=({store:t,children:e})=>J(L.Provider,{value:M(t),children:e}),l=()=>{let t=H(L);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};import{useCallback as p,useSyncExternalStore as K,useMemo as W,useRef as Q,useState as O}from"react";function Pt(){let t=l(),[e,r]=O(null),[i,s]=O(null),o=Q(null),c=p(S=>C(t,S),[t]),m=p(()=>{let S=A(t);return o.current&&o.current.isValid===S.isValid&&o.current.isDirty===S.isDirty&&o.current.isSubmitting===S.isSubmitting?o.current:(o.current=S,S)},[t]),n=K(c,m,m),d=W(()=>j(t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:S=>{s(S)},setSubmissionError:S=>{r(S)}}),[t]),{controller:a,actions:x}=d,v=p(a.submit,[a]),T=p(a.onSubmit,[a]),E=p(a.reset,[a]),u=p(a.getValues,[a]),b=p(a.getErrors,[a]),B=p(a.getTouched,[a]),g=p(a.getDirtyValues,[a]);return{meta:W(()=>({...n,submitError:e,lastResponse:i}),[n,e,i]),getValues:u,getErrors:b,getTouched:B,getDirtyValues:g,submit:v,onSubmit:T,reset:E,...x}}import{useCallback as _,useEffect as X,useMemo as $,useRef as Y,useSyncExternalStore as Z}from"react";function Rt(t){let e=l(),r=$(()=>U(e,t),[e,t]),i=Y(null),s=_(()=>{let n=r.readItems();return i.current&&y(i.current,n)?i.current:(i.current=n,n)},[r]),o=_(n=>e.observe.subscribePath(t,()=>n()),[e,t]),c=Z(o,s,s),m=$(()=>r.getFields(c),[r,c]);return X(()=>()=>{q(e,`${t}.`)},[e,t]),{fields:m,length:c.length,append:r.append,prepend:r.prepend,insert:r.insert,remove:r.remove,move:r.move,swap:r.swap,replace:r.replace,clear:r.clear}}import{useCallback as P,useRef as N,useSyncExternalStore as tt}from"react";function At(t){let e=l(),r=N(null),i=P(()=>{let n=e.read.getScopeStatus(t);return r.current&&F(r.current,n)?r.current:(r.current=n,n)},[e,t]),s=P(n=>e.observe.subscribeScopeStatus(t,()=>n()),[e,t]),o=tt(s,i,i),c=P(async()=>{let n=await e.feature.validate({scope:t}),d=e.read.getScopeErrors(t);return{valid:n,errors:d}},[e,t]),m=P(()=>e.read.getScopeErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:c,getErrors:m,isValid:!o.hasErrors,isDirty:o.isDirty}}import{useCallback as f,useRef as et,useState as rt,useSyncExternalStore as st}from"react";function It(t){let e=l(),[r,i]=rt(0),s=t[r]??"",o=et(null),c=f(()=>{let u=e.read.getScopeStatus(s);return o.current&&F(o.current,u)?o.current:(o.current=u,u)},[e,s]),m=st(f(u=>e.observe.subscribeScopeStatus(s,()=>u()),[e,s]),c,c),n=f(async()=>{let u=await e.feature.validate({scope:s}),b=e.read.getScopeErrors(s);return{valid:u,errors:b}},[e,s]),d=f(()=>e.read.getScopeErrors(s),[e,s]),a=f(async()=>{let u=e.read.getScopeFields(s);if(e.feature.hasValidationsInProgress(u))return!1;let b=await e.feature.validate({scope:s});if(b)i(B=>Math.min(B+1,t.length-1));else{let B=e.read.getScopeErrors(s),g=Object.keys(B);g.length>0&&e.write.markFieldsTouched(g)}return b},[e,s,t.length]),x=f(()=>{i(u=>Math.max(u-1,0))},[]),v=f(u=>{i(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),T=r===0,E=r>=t.length-1;return{step:r+1,stepIndex:r,scope:s,next:a,prev:x,goTo:v,isFirst:T,isLast:E,status:m,errors:m.errors,isValid:!m.hasErrors,isDirty:m.isDirty,validate:n,getErrors:d}}import{useCallback as z,useSyncExternalStore as ot,useRef as nt}from"react";function zt(t){let e=l(),r=nt(null),i=z(()=>{let o=w(e.read.getState().values,t);return r.current!==null&&y(r.current,o)?r.current:(r.current=o,o)},[e,t]),s=z(o=>e.observe.subscribePath(t,()=>o()),[e,t]);return ot(s,i,i)}import{useCallback as V,useMemo as it,useSyncExternalStore as at}from"react";function Qt(){let t=l(),e=at(c=>D(t,c),()=>R(t),()=>R(t)),r=V(async()=>t.feature.restorePersisted(),[t]),i=V(async()=>{await t.feature.forceSave()},[t]),s=V(async()=>{await t.feature.clearPersisted()},[t]),o=it(()=>({isSaving:e.isSaving,isRestoring:e.isRestoring,error:e.error}),[e]);return{restore:r,save:i,clear:s,meta:o}}import{useCallback as h,useEffect as ut,useRef as ct,useSyncExternalStore as lt}from"react";function se(t){let e=l(),r=ct(null);ut(()=>()=>I(e,t),[e,t]);let i=h(()=>{let n=e.read.getFieldState(t),d=k(n,r.current);return r.current=d,d},[e,t]),s=h(n=>e.observe.subscribeFieldState(t,()=>n()),[e,t]),o=lt(s,i,i),c=h(n=>e.write.setField(t,n),[e,t]),m=h(()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:c,setBlur:m,store:e}}export{ft as a,l as b,Pt as c,se as d,Rt as e,At as f,It as g,zt as h,Qt as i};
|
|
2
|
+
//# sourceMappingURL=chunk-VSNLUHZQ.js.map
|