@lehnihon/bit-form 2.2.28 → 2.2.29

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 (40) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.js +1 -1
  4. package/dist/angular/index.js.map +1 -1
  5. package/dist/{chunk-3MWOSR4W.js → chunk-4U32VQD5.js} +2 -2
  6. package/dist/{chunk-77RIH3KJ.js → chunk-FF6WALLN.js} +2 -2
  7. package/dist/chunk-FF6WALLN.js.map +1 -0
  8. package/dist/{chunk-CTQXXT26.cjs → chunk-K3QLAMDG.cjs} +2 -2
  9. package/dist/{chunk-CTQXXT26.cjs.map → chunk-K3QLAMDG.cjs.map} +1 -1
  10. package/dist/chunk-KEINCG6A.js +2 -0
  11. package/dist/chunk-KEINCG6A.js.map +1 -0
  12. package/dist/{chunk-G6EG5AWJ.cjs → chunk-LBWJK3IC.cjs} +2 -2
  13. package/dist/{chunk-G6EG5AWJ.cjs.map → chunk-LBWJK3IC.cjs.map} +1 -1
  14. package/dist/chunk-UNBTMNY3.cjs +2 -0
  15. package/dist/chunk-UNBTMNY3.cjs.map +1 -0
  16. package/dist/core/store.cjs +1 -1
  17. package/dist/core/store.js +1 -1
  18. package/dist/core.cjs +1 -1
  19. package/dist/core.js +1 -1
  20. package/dist/devtools/bridge.cjs +1 -1
  21. package/dist/devtools/bridge.js +1 -1
  22. package/dist/devtools/index.cjs +2 -2
  23. package/dist/devtools/index.js +1 -1
  24. package/dist/index.cjs +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/react/index.cjs +1 -1
  27. package/dist/react/index.js +1 -1
  28. package/dist/react-native/index.cjs +1 -1
  29. package/dist/react-native/index.js +1 -1
  30. package/dist/vue/index.cjs +1 -1
  31. package/dist/vue/index.cjs.map +1 -1
  32. package/dist/vue/index.js +1 -1
  33. package/dist/vue/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/chunk-77RIH3KJ.js.map +0 -1
  36. package/dist/chunk-KDNY7F5Q.cjs +0 -2
  37. package/dist/chunk-KDNY7F5Q.cjs.map +0 -1
  38. package/dist/chunk-V22XASFK.js +0 -2
  39. package/dist/chunk-V22XASFK.js.map +0 -1
  40. /package/dist/{chunk-3MWOSR4W.js.map → chunk-4U32VQD5.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkCTQXXT26cjs = require('./chunk-CTQXXT26.cjs');var _chunkH27ROY4Fcjs = require('./chunk-H27ROY4F.cjs');var _chunkRHMJPKNVcjs = require('./chunk-RHMJPKNV.cjs');var _chunkAV7YYSFIcjs = require('./chunk-AV7YYSFI.cjs');var _chunkOWDDAM6Ccjs = require('./chunk-OWDDAM6C.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var G=_react.createContext.call(void 0, null),vt= exports.a =({store:t,children:e})=>{let r=_react.useMemo.call(void 0, ()=>_chunkCTQXXT26cjs.d.call(void 0, t),[t]),n=_react.useRef.call(void 0, !1);return _react.useEffect.call(void 0, ()=>(n.current=!1,()=>{n.current=!0,queueMicrotask(()=>{n.current&&(n.current=!1,_optionalChain([r, 'access', _2 => _2.feature, 'optionalAccess', _3 => _3.cleanup, 'optionalCall', _4 => _4()]))})}),[r]),_jsxruntime.jsx.call(void 0, G.Provider,{value:r,children:e})},S= exports.b =()=>{let t=_react.useContext.call(void 0, G);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function Mt(){let t=S(),[e,r]=_react.useState.call(void 0, null),[n,s]=_react.useState.call(void 0, null),o=_react.useRef.call(void 0, null),c=_react.useCallback.call(void 0, p=>_chunkH27ROY4Fcjs.b.call(void 0, t,p),[t]),l=_react.useCallback.call(void 0, ()=>{let p=_chunkH27ROY4Fcjs.a.call(void 0, t);return o.current&&o.current.isValid===p.isValid&&o.current.isDirty===p.isDirty&&o.current.isSubmitting===p.isSubmitting?o.current:(o.current=p,p)},[t]),i=_react.useSyncExternalStore.call(void 0, c,l,l),a=_react.useMemo.call(void 0, ()=>_chunkH27ROY4Fcjs.i.call(void 0, t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:p=>{s(p)},setSubmissionError:p=>{r(p)}}),[t]),{controller:m,actions:P}=a,b=_react.useCallback.call(void 0, m.submit,[m]),g=_react.useCallback.call(void 0, m.onSubmit,[m]),y=_react.useCallback.call(void 0, m.reset,[m]),F=_react.useCallback.call(void 0, m.getValues,[m]),h=_react.useCallback.call(void 0, m.getErrors,[m]),u=_react.useCallback.call(void 0, m.getTouched,[m]),B=_react.useCallback.call(void 0, m.getDirtyValues,[m]),R=_react.useMemo.call(void 0, ()=>({...i,submitError:e,lastResponse:n}),[i,e,n]);return _react.useMemo.call(void 0, ()=>({meta:R,getValues:F,getErrors:h,getTouched:u,getDirtyValues:B,submit:b,onSubmit:g,reset:y,...P}),[R,F,h,u,B,b,g,y,P])}function jt(t){let e=S(),r=_react.useMemo.call(void 0, ()=>_chunkH27ROY4Fcjs.g.call(void 0, e,t),[e,t]),n=_react.useRef.call(void 0, null),s=_react.useCallback.call(void 0, ()=>{let i=r.readItems();return n.current&&_chunkOWDDAM6Ccjs.c.call(void 0, n.current,i)?n.current:(n.current=i,i)},[r]),o=_react.useCallback.call(void 0, i=>e.observe.subscribePath(t,()=>i()),[e,t]),c=_react.useSyncExternalStore.call(void 0, o,s,s),l=_react.useMemo.call(void 0, ()=>r.getFields(c),[r,c]);return _react.useEffect.call(void 0, ()=>()=>{_chunkH27ROY4Fcjs.k.call(void 0, e,`${t}.`)},[e,t]),_react.useMemo.call(void 0, ()=>({fields:l,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}),[l,c.length,r])}function Wt(t){let e=S(),r=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let i=e.read.getScopeStatus(t);return r.current&&_chunkRHMJPKNVcjs.b.call(void 0, r.current,i)?r.current:(r.current=i,i)},[e,t]),s=_react.useCallback.call(void 0, i=>e.observe.subscribeScopeStatus(t,()=>i()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,n,n),c=_react.useCallback.call(void 0, async()=>{let i=await e.feature.validate({scope:t}),a=e.read.getScopeErrors(t);return{valid:i,errors:a}},[e,t]),l=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(t),[e,t]);return _react.useMemo.call(void 0, ()=>({scopeName:t,status:o,errors:o.errors,validate:c,getErrors:l,isValid:!o.hasErrors,isDirty:o.isDirty}),[t,o,c,l])}function Gt(t){if(t.length===0)throw new Error("useBitSteps: scopeNames must not be empty");let e=S(),[r,n]=_react.useState.call(void 0, 0),s=_nullishCoalesce(t[r], () => ("")),o=_react.useRef.call(void 0, null),c=_react.useRef.call(void 0, s);c.current=s;let l=_react.useRef.call(void 0, r);l.current=r;let i=_react.useCallback.call(void 0, ()=>{let u=e.read.getScopeStatus(s);return o.current&&_chunkRHMJPKNVcjs.b.call(void 0, o.current,u)?o.current:(o.current=u,u)},[e,s]),a=_react.useSyncExternalStore.call(void 0, _react.useCallback.call(void 0, u=>e.observe.subscribeScopeStatus(s,()=>u()),[e,s]),i,i),m=_react.useCallback.call(void 0, async()=>{let u=await e.feature.validate({scope:s}),B=e.read.getScopeErrors(s);return{valid:u,errors:B}},[e,s]),P=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(s),[e,s]),b=_react.useCallback.call(void 0, async()=>{let u=c.current,B=l.current,R=e.read.getScopeFields(u);if(e.feature.hasValidationsInProgress(R))return!1;let p=await e.feature.validate({scope:u});if(B!==l.current)return!1;if(p)n(M=>Math.min(M+1,t.length-1));else{let M=e.read.getScopeErrors(u),C=Object.keys(M);C.length>0&&e.write.markFieldsTouched(C)}return p},[e,t.length]),g=_react.useCallback.call(void 0, ()=>{n(u=>Math.max(u-1,0))},[]),y=_react.useCallback.call(void 0, u=>{n(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),F=r===0,h=r>=t.length-1;return _react.useMemo.call(void 0, ()=>({step:r+1,stepIndex:r,scope:s,next:b,prev:g,goTo:y,isFirst:F,isLast:h,status:a,errors:a.errors,isValid:!a.hasErrors,isDirty:a.isDirty,validate:m,getErrors:P}),[r,s,b,g,y,F,h,a,m,P])}function Zt(t){let e=S(),r=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let o=_chunkOWDDAM6Ccjs.f.call(void 0, e.read.getState().values,t);return r.current!==null&&_chunkOWDDAM6Ccjs.c.call(void 0, r.current,o)?r.current:(r.current=o,o)},[e,t]),s=_react.useCallback.call(void 0, o=>e.observe.subscribePath(t,()=>o()),[e,t]);return _react.useSyncExternalStore.call(void 0, s,n,n)}function se(){let t=S(),e=_react.useCallback.call(void 0, a=>_chunkH27ROY4Fcjs.e.call(void 0, t,a),[t]),r=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let a=_chunkH27ROY4Fcjs.d.call(void 0, t);return r.current&&r.current.isSaving===a.isSaving&&r.current.isRestoring===a.isRestoring&&r.current.error===a.error?r.current:(r.current=a,a)},[t]),s=_react.useSyncExternalStore.call(void 0, e,n,n),o=_react.useCallback.call(void 0, async()=>t.feature.restorePersisted(),[t]),c=_react.useCallback.call(void 0, async()=>{await t.feature.forceSave()},[t]),l=_react.useCallback.call(void 0, async()=>{await t.feature.clearPersisted()},[t]),i=_react.useMemo.call(void 0, ()=>({isSaving:s.isSaving,isRestoring:s.isRestoring,error:s.error}),[s]);return _react.useMemo.call(void 0, ()=>({restore:o,save:c,clear:l,meta:i}),[o,c,l,i])}function me(t){let e=S(),r=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>()=>_chunkH27ROY4Fcjs.j.call(void 0, e,t),[e,t]);let n=_react.useCallback.call(void 0, ()=>{let i=e.read.getFieldState(t),a=_chunkAV7YYSFIcjs.a.call(void 0, i,r.current);return r.current=a,a},[e,t]),s=_react.useCallback.call(void 0, i=>e.observe.subscribeFieldState(t,()=>i()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,n,n),c=_react.useCallback.call(void 0, i=>e.write.setField(t,i),[e,t]),l=_react.useCallback.call(void 0, ()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:c,setBlur:l,store:e}}exports.a = vt; exports.b = S; exports.c = Mt; exports.d = me; exports.e = jt; exports.f = Wt; exports.g = Gt; exports.h = Zt; exports.i = se;
2
- //# sourceMappingURL=chunk-KDNY7F5Q.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/builds/kenji.ccp-group/bit-form/dist/chunk-KDNY7F5Q.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","adapted","useMemo","createFrameworkStoreAdapter","cleanupPendingRef","useRef","useEffect","jsx","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","subscribeMeta","useCallback","cb","subscribeFormMetaSnapshot","getMetaSnapshot","nextMeta","readFormMetaSnapshot","metaState","useSyncExternalStore","binding","createFrameworkFormBinding","result","error","controller","actions","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","meta","useBitArray","path","createArrayBinding","lastSnapshotRef","getSnapshot","next","valueEqual","subscribeArray","data","fields","cleanupRegisteredPrefix"],"mappings":"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","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-KDNY7F5Q.cjs","sourcesContent":[null,"import React, { createContext, useContext, useEffect, useMemo, useRef } from \"react\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nconst BitContext = createContext<BitFrameworkStoreApi<any> | null>(null);\n\ninterface BitFormProviderProps<T extends object> {\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>;\n children: React.ReactNode;\n}\n\ninterface BitFormProviderRuntimeProps {\n store: unknown;\n children: React.ReactNode;\n}\n\ntype BitFormProviderComponent = {\n <T extends object>(props: BitFormProviderProps<T>): React.ReactElement;\n (props: BitFormProviderRuntimeProps): React.ReactElement;\n};\n\nexport const BitFormProvider: BitFormProviderComponent = ({\n store,\n children,\n}: BitFormProviderRuntimeProps) => {\n const adapted = useMemo(() => createFrameworkStoreAdapter(store), [store]);\n const cleanupPendingRef = useRef(false);\n\n useEffect(() => {\n // On mount (including Strict Mode remount), cancel any pending cleanup.\n cleanupPendingRef.current = false;\n\n return () => {\n // On unmount, flag that cleanup is pending and defer to microtask.\n // React Strict Mode double-mounts (mount → unmount → mount)\n // synchronously. The remount resets cleanupPendingRef before the\n // microtask fires, so Strict Mode cycles are safely ignored.\n cleanupPendingRef.current = true;\n queueMicrotask(() => {\n if (cleanupPendingRef.current) {\n cleanupPendingRef.current = false;\n (adapted as any).feature?.cleanup?.();\n }\n });\n };\n }, [adapted]);\n\n return (\n <BitContext.Provider value={adapted}>\n {children}\n </BitContext.Provider>\n );\n};\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitFrameworkStoreApi<T>;\n};\n","import {\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport {\n createFrameworkFormBinding,\n readFormMetaSnapshot,\n subscribeFormMetaSnapshot,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<ReturnType<typeof readFormMetaSnapshot<T>> | null>(\n null,\n );\n\n const subscribeMeta = useCallback(\n (cb: () => void) => subscribeFormMetaSnapshot(store, cb),\n [store],\n );\n const getMetaSnapshot = useCallback(() => {\n const nextMeta = readFormMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const binding = useMemo(\n () =>\n createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const { controller, actions } = binding;\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return useMemo(\n () => ({\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n ...actions,\n }),\n [\n meta,\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n submit,\n onSubmit,\n reset,\n actions,\n ],\n );\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport {\n BitArrayPath,\n cleanupRegisteredPrefix,\n createArrayBinding,\n valueEqual,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = useMemo(\n () => createArrayBinding<TForm, P>(store, path),\n [store, path],\n );\n type ArraySnapshot = ReturnType<typeof controller.readItems>;\n const lastSnapshotRef = useRef<ArraySnapshot | null>(null);\n\n const getSnapshot = useCallback(() => {\n const next = controller.readItems();\n\n if (lastSnapshotRef.current && valueEqual(lastSnapshotRef.current, next)) {\n return lastSnapshotRef.current;\n }\n\n lastSnapshotRef.current = next;\n return next;\n }, [controller]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const fields = useMemo(() => controller.getFields(data), [controller, data]);\n\n useEffect(() => {\n return () => {\n cleanupRegisteredPrefix(store, `${path as string}.`);\n };\n }, [store, path]);\n\n return useMemo(\n () => ({\n fields,\n length: data.length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n }),\n [fields, data.length, controller],\n );\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{d as I}from"./chunk-77RIH3KJ.js";import{a as U,b as q,d as L,e as W,g as O,i as _,j as $,k as z}from"./chunk-L42NQRVD.js";import{b as T}from"./chunk-UIKO6GGW.js";import{a as j}from"./chunk-Y7TQTZY7.js";import{c as x,f as D}from"./chunk-UBVVBVLS.js";import{createContext as X,useContext as Y,useEffect as Z,useMemo as N,useRef as tt}from"react";import{jsx as et}from"react/jsx-runtime";var G=X(null),vt=({store:t,children:e})=>{let r=N(()=>I(t),[t]),n=tt(!1);return Z(()=>(n.current=!1,()=>{n.current=!0,queueMicrotask(()=>{n.current&&(n.current=!1,r.feature?.cleanup?.())})}),[r]),et(G.Provider,{value:r,children:e})},S=()=>{let t=Y(G);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};import{useCallback as d,useMemo as w,useRef as rt,useState as H,useSyncExternalStore as st}from"react";function Mt(){let t=S(),[e,r]=H(null),[n,s]=H(null),o=rt(null),c=d(p=>q(t,p),[t]),l=d(()=>{let p=U(t);return o.current&&o.current.isValid===p.isValid&&o.current.isDirty===p.isDirty&&o.current.isSubmitting===p.isSubmitting?o.current:(o.current=p,p)},[t]),i=st(c,l,l),a=w(()=>_(t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:p=>{s(p)},setSubmissionError:p=>{r(p)}}),[t]),{controller:m,actions:P}=a,b=d(m.submit,[m]),g=d(m.onSubmit,[m]),y=d(m.reset,[m]),F=d(m.getValues,[m]),h=d(m.getErrors,[m]),u=d(m.getTouched,[m]),B=d(m.getDirtyValues,[m]),R=w(()=>({...i,submitError:e,lastResponse:n}),[i,e,n]);return w(()=>({meta:R,getValues:F,getErrors:h,getTouched:u,getDirtyValues:B,submit:b,onSubmit:g,reset:y,...P}),[R,F,h,u,B,b,g,y,P])}import{useCallback as J,useEffect as ot,useMemo as k,useRef as nt,useSyncExternalStore as it}from"react";function jt(t){let e=S(),r=k(()=>O(e,t),[e,t]),n=nt(null),s=J(()=>{let i=r.readItems();return n.current&&x(n.current,i)?n.current:(n.current=i,i)},[r]),o=J(i=>e.observe.subscribePath(t,()=>i()),[e,t]),c=it(o,s,s),l=k(()=>r.getFields(c),[r,c]);return ot(()=>()=>{z(e,`${t}.`)},[e,t]),k(()=>({fields:l,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}),[l,c.length,r])}import{useCallback as E,useMemo as at,useRef as ut,useSyncExternalStore as ct}from"react";function Wt(t){let e=S(),r=ut(null),n=E(()=>{let i=e.read.getScopeStatus(t);return r.current&&T(r.current,i)?r.current:(r.current=i,i)},[e,t]),s=E(i=>e.observe.subscribeScopeStatus(t,()=>i()),[e,t]),o=ct(s,n,n),c=E(async()=>{let i=await e.feature.validate({scope:t}),a=e.read.getScopeErrors(t);return{valid:i,errors:a}},[e,t]),l=E(()=>e.read.getScopeErrors(t),[e,t]);return at(()=>({scopeName:t,status:o,errors:o.errors,validate:c,getErrors:l,isValid:!o.hasErrors,isDirty:o.isDirty}),[t,o,c,l])}import{useCallback as f,useMemo as lt,useRef as A,useState as mt,useSyncExternalStore as pt}from"react";function Gt(t){if(t.length===0)throw new Error("useBitSteps: scopeNames must not be empty");let e=S(),[r,n]=mt(0),s=t[r]??"",o=A(null),c=A(s);c.current=s;let l=A(r);l.current=r;let i=f(()=>{let u=e.read.getScopeStatus(s);return o.current&&T(o.current,u)?o.current:(o.current=u,u)},[e,s]),a=pt(f(u=>e.observe.subscribeScopeStatus(s,()=>u()),[e,s]),i,i),m=f(async()=>{let u=await e.feature.validate({scope:s}),B=e.read.getScopeErrors(s);return{valid:u,errors:B}},[e,s]),P=f(()=>e.read.getScopeErrors(s),[e,s]),b=f(async()=>{let u=c.current,B=l.current,R=e.read.getScopeFields(u);if(e.feature.hasValidationsInProgress(R))return!1;let p=await e.feature.validate({scope:u});if(B!==l.current)return!1;if(p)n(M=>Math.min(M+1,t.length-1));else{let M=e.read.getScopeErrors(u),C=Object.keys(M);C.length>0&&e.write.markFieldsTouched(C)}return p},[e,t.length]),g=f(()=>{n(u=>Math.max(u-1,0))},[]),y=f(u=>{n(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),F=r===0,h=r>=t.length-1;return lt(()=>({step:r+1,stepIndex:r,scope:s,next:b,prev:g,goTo:y,isFirst:F,isLast:h,status:a,errors:a.errors,isValid:!a.hasErrors,isDirty:a.isDirty,validate:m,getErrors:P}),[r,s,b,g,y,F,h,a,m,P])}import{useCallback as K,useSyncExternalStore as St,useRef as dt}from"react";function Zt(t){let e=S(),r=dt(null),n=K(()=>{let o=D(e.read.getState().values,t);return r.current!==null&&x(r.current,o)?r.current:(r.current=o,o)},[e,t]),s=K(o=>e.observe.subscribePath(t,()=>o()),[e,t]);return St(s,n,n)}import{useCallback as v,useMemo as Q,useSyncExternalStore as ft,useRef as Bt}from"react";function se(){let t=S(),e=v(a=>W(t,a),[t]),r=Bt(null),n=v(()=>{let a=L(t);return r.current&&r.current.isSaving===a.isSaving&&r.current.isRestoring===a.isRestoring&&r.current.error===a.error?r.current:(r.current=a,a)},[t]),s=ft(e,n,n),o=v(async()=>t.feature.restorePersisted(),[t]),c=v(async()=>{await t.feature.forceSave()},[t]),l=v(async()=>{await t.feature.clearPersisted()},[t]),i=Q(()=>({isSaving:s.isSaving,isRestoring:s.isRestoring,error:s.error}),[s]);return Q(()=>({restore:o,save:c,clear:l,meta:i}),[o,c,l,i])}import{useCallback as V,useEffect as Pt,useRef as bt,useSyncExternalStore as gt}from"react";function me(t){let e=S(),r=bt(null);Pt(()=>()=>$(e,t),[e,t]);let n=V(()=>{let i=e.read.getFieldState(t),a=j(i,r.current);return r.current=a,a},[e,t]),s=V(i=>e.observe.subscribeFieldState(t,()=>i()),[e,t]),o=gt(s,n,n),c=V(i=>e.write.setField(t,i),[e,t]),l=V(()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:c,setBlur:l,store:e}}export{vt as a,S as b,Mt as c,me as d,jt as e,Wt as f,Gt as g,Zt as h,se as i};
2
- //# sourceMappingURL=chunk-V22XASFK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts","../src/react/use-bit-scope.ts","../src/react/use-bit-steps.ts","../src/react/use-bit-watch.ts","../src/react/use-bit-persist.ts","../src/react/use-bit-field-base.ts"],"sourcesContent":["import React, { createContext, useContext, useEffect, useMemo, useRef } from \"react\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nconst BitContext = createContext<BitFrameworkStoreApi<any> | null>(null);\n\ninterface BitFormProviderProps<T extends object> {\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>;\n children: React.ReactNode;\n}\n\ninterface BitFormProviderRuntimeProps {\n store: unknown;\n children: React.ReactNode;\n}\n\ntype BitFormProviderComponent = {\n <T extends object>(props: BitFormProviderProps<T>): React.ReactElement;\n (props: BitFormProviderRuntimeProps): React.ReactElement;\n};\n\nexport const BitFormProvider: BitFormProviderComponent = ({\n store,\n children,\n}: BitFormProviderRuntimeProps) => {\n const adapted = useMemo(() => createFrameworkStoreAdapter(store), [store]);\n const cleanupPendingRef = useRef(false);\n\n useEffect(() => {\n // On mount (including Strict Mode remount), cancel any pending cleanup.\n cleanupPendingRef.current = false;\n\n return () => {\n // On unmount, flag that cleanup is pending and defer to microtask.\n // React Strict Mode double-mounts (mount → unmount → mount)\n // synchronously. The remount resets cleanupPendingRef before the\n // microtask fires, so Strict Mode cycles are safely ignored.\n cleanupPendingRef.current = true;\n queueMicrotask(() => {\n if (cleanupPendingRef.current) {\n cleanupPendingRef.current = false;\n (adapted as any).feature?.cleanup?.();\n }\n });\n };\n }, [adapted]);\n\n return (\n <BitContext.Provider value={adapted}>\n {children}\n </BitContext.Provider>\n );\n};\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitFrameworkStoreApi<T>;\n};\n","import {\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport {\n createFrameworkFormBinding,\n readFormMetaSnapshot,\n subscribeFormMetaSnapshot,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<ReturnType<typeof readFormMetaSnapshot<T>> | null>(\n null,\n );\n\n const subscribeMeta = useCallback(\n (cb: () => void) => subscribeFormMetaSnapshot(store, cb),\n [store],\n );\n const getMetaSnapshot = useCallback(() => {\n const nextMeta = readFormMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const binding = useMemo(\n () =>\n createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const { controller, actions } = binding;\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return useMemo(\n () => ({\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n ...actions,\n }),\n [\n meta,\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n submit,\n onSubmit,\n reset,\n actions,\n ],\n );\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport {\n BitArrayPath,\n cleanupRegisteredPrefix,\n createArrayBinding,\n valueEqual,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = useMemo(\n () => createArrayBinding<TForm, P>(store, path),\n [store, path],\n );\n type ArraySnapshot = ReturnType<typeof controller.readItems>;\n const lastSnapshotRef = useRef<ArraySnapshot | null>(null);\n\n const getSnapshot = useCallback(() => {\n const next = controller.readItems();\n\n if (lastSnapshotRef.current && valueEqual(lastSnapshotRef.current, next)) {\n return lastSnapshotRef.current;\n }\n\n lastSnapshotRef.current = next;\n return next;\n }, [controller]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const fields = useMemo(() => controller.getFields(data), [controller, data]);\n\n useEffect(() => {\n return () => {\n cleanupRegisteredPrefix(store, `${path as string}.`);\n };\n }, [store, path]);\n\n return useMemo(\n () => ({\n fields,\n length: data.length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n }),\n [fields, data.length, controller],\n );\n}\n","import { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { isScopeStatusEqual } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n\n const lastStatus = useRef<ScopeStatus | null>(null);\n\n const getStatusSnapshot = useCallback(() => {\n const nextStatus = store.read.getScopeStatus(scopeName);\n\n if (\n lastStatus.current &&\n isScopeStatusEqual(lastStatus.current, nextStatus)\n ) {\n return lastStatus.current;\n }\n\n lastStatus.current = nextStatus;\n return nextStatus;\n }, [store, scopeName]);\n\n // Assina apenas os slices de estado relevantes para o escopo (errors e\n // isDirty), evitando execuções desnecessárias do getStatusSnapshot em\n // mudanças não relacionadas (isSubmitting, isValidating de outros campos…)\n const subscribe = useCallback(\n (cb: () => void) =>\n store.observe.subscribeScopeStatus(scopeName, () => cb()),\n [store, scopeName],\n );\n\n const status = useSyncExternalStore(\n subscribe,\n getStatusSnapshot,\n getStatusSnapshot,\n );\n\n const validate = useCallback(async (): Promise<ValidateScopeResult> => {\n const valid = await store.feature.validate({ scope: scopeName });\n const errors = store.read.getScopeErrors(scopeName);\n return { valid, errors };\n }, [store, scopeName]);\n\n const getErrors = useCallback(() => {\n return store.read.getScopeErrors(scopeName);\n }, [store, scopeName]);\n\n return useMemo(\n () => ({\n scopeName,\n status,\n errors: status.errors,\n validate,\n getErrors,\n isValid: !status.hasErrors,\n isDirty: status.isDirty,\n }),\n [scopeName, status, validate, getErrors],\n );\n}\n","import {\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { isScopeStatusEqual } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n if (scopeNames.length === 0) {\n throw new Error(\"useBitSteps: scopeNames must not be empty\");\n }\n const store = useBitStore();\n const [stepIndex, setStepIndex] = useState(0);\n\n const scope = scopeNames[stepIndex] ?? \"\";\n const lastStatus = useRef<ScopeStatus | null>(null);\n const scopeRef = useRef(scope);\n scopeRef.current = scope;\n const stepIndexRef = useRef(stepIndex);\n stepIndexRef.current = stepIndex;\n\n const getStatusSnapshot = useCallback(() => {\n const nextStatus = store.read.getScopeStatus(scope);\n\n if (\n lastStatus.current &&\n isScopeStatusEqual(lastStatus.current, nextStatus)\n ) {\n return lastStatus.current;\n }\n\n lastStatus.current = nextStatus;\n return nextStatus;\n }, [store, scope]);\n\n const status = useSyncExternalStore(\n useCallback(\n (cb: () => void) => store.observe.subscribeScopeStatus(scope, () => cb()),\n [store, scope],\n ),\n getStatusSnapshot,\n getStatusSnapshot,\n );\n\n const validate = useCallback(async (): Promise<ValidateScopeResult> => {\n const valid = await store.feature.validate({ scope });\n const errors = store.read.getScopeErrors(scope);\n return { valid, errors };\n }, [store, scope]);\n\n const getErrors = useCallback(() => {\n return store.read.getScopeErrors(scope);\n }, [store, scope]);\n\n const next = useCallback(async (): Promise<boolean> => {\n const capturedScope = scopeRef.current;\n const capturedStepIndex = stepIndexRef.current;\n const scopeFields = store.read.getScopeFields(capturedScope);\n\n if (store.feature.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.feature.validate({ scope: capturedScope });\n\n if (capturedStepIndex !== stepIndexRef.current) return false;\n\n if (valid) {\n setStepIndex((s) => Math.min(s + 1, scopeNames.length - 1));\n } else {\n const errors = store.read.getScopeErrors(capturedScope);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.write.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n }, [store, scopeNames.length]);\n\n const prev = useCallback(() => {\n setStepIndex((s) => Math.max(s - 1, 0));\n }, []);\n\n const goTo = useCallback(\n (stepNumber: number) => {\n setStepIndex(\n Math.max(0, Math.min(stepNumber - 1, scopeNames.length - 1)),\n );\n },\n [scopeNames.length],\n );\n\n const isFirst = stepIndex === 0;\n const isLast = stepIndex >= scopeNames.length - 1;\n\n return useMemo(\n () => ({\n step: stepIndex + 1,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors: status.errors,\n isValid: !status.hasErrors,\n isDirty: status.isDirty,\n validate,\n getErrors,\n }),\n [\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n validate,\n getErrors,\n ],\n );\n}\n","import { useCallback, useSyncExternalStore, useRef } from \"react\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue, valueEqual, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): BitPathValue<TForm, P> {\n const store = useBitStore<TForm>();\n const lastValue = useRef<BitPathValue<TForm, P> | null>(null);\n\n const getSnapshot = useCallback(() => {\n const value = getDeepValue(\n store.read.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n\n if (lastValue.current !== null && valueEqual(lastValue.current, value)) {\n return lastValue.current;\n }\n\n lastValue.current = value;\n return value;\n }, [store, path]);\n\n // Assina apenas o path monitorado → evita executar getSnapshot em toda\n // mudança de estado do store (blur, validation, outros campos, etc.)\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n return useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n ) as BitPathValue<TForm, P>;\n}\n","import { useCallback, useMemo, useSyncExternalStore, useRef } from \"react\";\nimport { readPersistMetaSnapshot, subscribePersistMetaSnapshot } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist(): UseBitPersistResult {\n const store = useBitStore<any>();\n\n const subscribePersistMeta = useCallback(\n (cb: () => void) => subscribePersistMetaSnapshot(store, cb),\n [store],\n );\n\n const lastMeta = useRef<ReturnType<typeof readPersistMetaSnapshot> | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = readPersistMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isSaving === nextMeta.isSaving &&\n lastMeta.current.isRestoring === nextMeta.isRestoring &&\n lastMeta.current.error === nextMeta.error\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const persistMeta = useSyncExternalStore(\n subscribePersistMeta,\n getSnapshot,\n getSnapshot,\n );\n\n const restore = useCallback(async () => {\n return store.feature.restorePersisted();\n }, [store]);\n\n const save = useCallback(async () => {\n await store.feature.forceSave();\n }, [store]);\n\n const clear = useCallback(async () => {\n await store.feature.clearPersisted();\n }, [store]);\n\n const meta = useMemo(\n () => ({\n isSaving: persistMeta.isSaving,\n isRestoring: persistMeta.isRestoring,\n error: persistMeta.error,\n }),\n [persistMeta],\n );\n\n return useMemo(\n () => ({\n restore,\n save,\n clear,\n meta,\n }),\n [restore, save, clear, meta],\n );\n}\n","import { useCallback, useEffect, useRef, useSyncExternalStore } from \"react\";\nimport {\n BitFieldSnapshot,\n BitPath,\n BitPathValue,\n cleanupRegisteredField,\n createFieldStateSnapshot,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitFieldBase<\n _TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const lastSnapshot = useRef<BitFieldSnapshot<BitPathValue<TForm, P>> | null>(\n null,\n );\n\n useEffect(() => {\n return () => cleanupRegisteredField(store, path as string);\n }, [store, path]);\n\n const getSnapshot = useCallback(() => {\n const nextState = store.read.getFieldState(path);\n const snapshot = createFieldStateSnapshot(nextState, lastSnapshot.current);\n lastSnapshot.current = snapshot;\n return snapshot;\n }, [store, path]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeFieldState(path, () => cb()),\n [store, path],\n );\n\n const fieldState = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P>) => store.write.setField(path, val),\n [store, path],\n );\n\n const setBlur = useCallback(() => store.write.blurField(path), [store, path]);\n\n return { fieldState, setValue, setBlur, store };\n}\n"],"mappings":"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","names":["createContext","useContext","useEffect","useMemo","useRef","jsx","BitContext","createContext","BitFormProvider","store","children","adapted","useMemo","createFrameworkStoreAdapter","cleanupPendingRef","useRef","useEffect","useBitStore","useContext","useCallback","useMemo","useRef","useState","useSyncExternalStore","useBitForm","store","useBitStore","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","subscribeMeta","useCallback","cb","subscribeFormMetaSnapshot","getMetaSnapshot","nextMeta","readFormMetaSnapshot","metaState","useSyncExternalStore","binding","useMemo","createFrameworkFormBinding","result","error","controller","actions","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","meta","useCallback","useEffect","useMemo","useRef","useSyncExternalStore","useBitArray","path","store","useBitStore","controller","useMemo","createArrayBinding","lastSnapshotRef","useRef","getSnapshot","useCallback","next","valueEqual","subscribeArray","cb","data","useSyncExternalStore","fields","useEffect","cleanupRegisteredPrefix","useCallback","useMemo","useRef","useSyncExternalStore","useBitScope","scopeName","store","useBitStore","lastStatus","useRef","getStatusSnapshot","useCallback","nextStatus","isScopeStatusEqual","subscribe","cb","status","useSyncExternalStore","validate","valid","errors","getErrors","useMemo","useCallback","useMemo","useRef","useState","useSyncExternalStore","useBitSteps","scopeNames","store","useBitStore","stepIndex","setStepIndex","useState","scope","lastStatus","useRef","scopeRef","stepIndexRef","getStatusSnapshot","useCallback","nextStatus","isScopeStatusEqual","status","useSyncExternalStore","cb","validate","valid","errors","getErrors","next","capturedScope","capturedStepIndex","scopeFields","s","pathsWithErrors","prev","goTo","stepNumber","isFirst","isLast","useMemo","useCallback","useSyncExternalStore","useRef","useBitWatch","path","store","useBitStore","lastValue","useRef","getSnapshot","useCallback","value","getDeepValue","valueEqual","subscribe","cb","useSyncExternalStore","useCallback","useMemo","useSyncExternalStore","useRef","useBitPersist","store","useBitStore","subscribePersistMeta","useCallback","cb","subscribePersistMetaSnapshot","lastMeta","useRef","getSnapshot","nextMeta","readPersistMetaSnapshot","persistMeta","useSyncExternalStore","restore","save","clear","meta","useMemo","useCallback","useEffect","useRef","useSyncExternalStore","useBitFieldBase","path","store","useBitStore","lastSnapshot","useRef","useEffect","cleanupRegisteredField","getSnapshot","useCallback","nextState","snapshot","createFieldStateSnapshot","subscribe","cb","fieldState","useSyncExternalStore","setValue","val","setBlur"]}