@lehnihon/bit-form 2.2.6 → 2.2.8

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 (177) hide show
  1. package/README.md +80 -24
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +20 -20
  5. package/dist/angular/index.d.ts +20 -20
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/array-controller-B5bfXV1W.d.cts +23 -0
  9. package/dist/array-controller-Cx-DMH7Y.d.ts +23 -0
  10. package/dist/bus-B2VEKrPI.d.ts +19 -0
  11. package/dist/bus-ZLQeq4Vr.d.cts +19 -0
  12. package/dist/chunk-5NA2TFPG.js +1 -0
  13. package/dist/chunk-5NA2TFPG.js.map +1 -0
  14. package/dist/chunk-63OJBMKK.js +2 -0
  15. package/dist/chunk-63OJBMKK.js.map +1 -0
  16. package/dist/chunk-BSGJ3T5S.cjs +2 -0
  17. package/dist/chunk-BSGJ3T5S.cjs.map +1 -0
  18. package/dist/chunk-CPP7ELA5.js +2 -0
  19. package/dist/chunk-CPP7ELA5.js.map +1 -0
  20. package/dist/chunk-D7JQWF6V.cjs +2 -0
  21. package/dist/chunk-D7JQWF6V.cjs.map +1 -0
  22. package/dist/chunk-E2NZR44P.js +2 -0
  23. package/dist/chunk-E2NZR44P.js.map +1 -0
  24. package/dist/chunk-EQ55DKX2.js +2 -0
  25. package/dist/chunk-EQ55DKX2.js.map +1 -0
  26. package/dist/chunk-IV32WXCF.cjs +2 -0
  27. package/dist/chunk-IV32WXCF.cjs.map +1 -0
  28. package/dist/chunk-JC4R5WCC.js +2 -0
  29. package/dist/chunk-JC4R5WCC.js.map +1 -0
  30. package/dist/chunk-K5X37E3U.js +2 -0
  31. package/dist/chunk-K5X37E3U.js.map +1 -0
  32. package/dist/chunk-M6WBNHIT.cjs +2 -0
  33. package/dist/chunk-M6WBNHIT.cjs.map +1 -0
  34. package/dist/chunk-MFSQATNZ.cjs +2 -0
  35. package/dist/chunk-MFSQATNZ.cjs.map +1 -0
  36. package/dist/chunk-MFTWAFMG.cjs +2 -0
  37. package/dist/chunk-MFTWAFMG.cjs.map +1 -0
  38. package/dist/chunk-O5UPA33R.js +2 -0
  39. package/dist/chunk-O5UPA33R.js.map +1 -0
  40. package/dist/chunk-P2YWYBWG.cjs +2 -0
  41. package/dist/chunk-P2YWYBWG.cjs.map +1 -0
  42. package/dist/chunk-QKGTVKBU.cjs +2 -0
  43. package/dist/chunk-QKGTVKBU.cjs.map +1 -0
  44. package/dist/chunk-RD73EBSN.js +2 -0
  45. package/dist/chunk-RD73EBSN.js.map +1 -0
  46. package/dist/chunk-T2JRSWQU.cjs +2 -0
  47. package/dist/chunk-T2JRSWQU.cjs.map +1 -0
  48. package/dist/chunk-UQ3DSUWC.js +2 -0
  49. package/dist/chunk-UQ3DSUWC.js.map +1 -0
  50. package/dist/chunk-VZHG372Q.cjs +2 -0
  51. package/dist/chunk-VZHG372Q.cjs.map +1 -0
  52. package/dist/chunk-W2E5UIXT.js +2 -0
  53. package/dist/chunk-W2E5UIXT.js.map +1 -0
  54. package/dist/chunk-W5CLDRRE.cjs +1 -0
  55. package/dist/chunk-W5CLDRRE.cjs.map +1 -0
  56. package/dist/cli/index.cjs +22 -22
  57. package/dist/core/bindings.cjs +2 -0
  58. package/dist/core/bindings.cjs.map +1 -0
  59. package/dist/core/bindings.d.cts +81 -0
  60. package/dist/core/bindings.d.ts +81 -0
  61. package/dist/core/bindings.js +2 -0
  62. package/dist/core/bindings.js.map +1 -0
  63. package/dist/core/status.cjs +2 -0
  64. package/dist/core/status.cjs.map +1 -0
  65. package/dist/core/status.d.cts +44 -0
  66. package/dist/core/status.d.ts +44 -0
  67. package/dist/core/status.js +2 -0
  68. package/dist/core/status.js.map +1 -0
  69. package/dist/core/store.cjs +2 -0
  70. package/dist/core/store.cjs.map +1 -0
  71. package/dist/core/store.d.cts +84 -0
  72. package/dist/core/store.d.ts +84 -0
  73. package/dist/core/store.js +2 -0
  74. package/dist/core/store.js.map +1 -0
  75. package/dist/core/utils.cjs +2 -0
  76. package/dist/core/utils.cjs.map +1 -0
  77. package/dist/core/utils.d.cts +81 -0
  78. package/dist/core/utils.d.ts +81 -0
  79. package/dist/core/utils.js +2 -0
  80. package/dist/core/utils.js.map +1 -0
  81. package/dist/core.cjs +2 -0
  82. package/dist/core.cjs.map +1 -0
  83. package/dist/core.d.cts +14 -0
  84. package/dist/core.d.ts +14 -0
  85. package/dist/core.js +2 -0
  86. package/dist/core.js.map +1 -0
  87. package/dist/devtools/bridge.cjs +1 -1
  88. package/dist/devtools/bridge.cjs.map +1 -1
  89. package/dist/devtools/bridge.d.cts +5 -1
  90. package/dist/devtools/bridge.d.ts +5 -1
  91. package/dist/devtools/bridge.js +1 -1
  92. package/dist/devtools/bridge.js.map +1 -1
  93. package/dist/devtools/index.cjs +18 -18
  94. package/dist/devtools/index.cjs.map +1 -1
  95. package/dist/devtools/index.d.cts +27 -2
  96. package/dist/devtools/index.d.ts +27 -2
  97. package/dist/devtools/index.js +18 -18
  98. package/dist/devtools/index.js.map +1 -1
  99. package/dist/devtools/protocol.cjs +2 -0
  100. package/dist/devtools/protocol.cjs.map +1 -0
  101. package/dist/devtools/protocol.d.cts +54 -0
  102. package/dist/devtools/protocol.d.ts +54 -0
  103. package/dist/devtools/protocol.js +2 -0
  104. package/dist/devtools/protocol.js.map +1 -0
  105. package/dist/field-binding-B_OX3bjp.d.cts +25 -0
  106. package/dist/field-binding-MX6jVQbT.d.ts +25 -0
  107. package/dist/index.cjs +1 -1
  108. package/dist/index.cjs.map +1 -1
  109. package/dist/index.d.cts +9 -193
  110. package/dist/index.d.ts +9 -193
  111. package/dist/index.js +1 -1
  112. package/dist/meta-types-Bzmm21TP.d.cts +18 -0
  113. package/dist/meta-types-Bzmm21TP.d.ts +18 -0
  114. package/dist/react/index.cjs +1 -1
  115. package/dist/react/index.cjs.map +1 -1
  116. package/dist/react/index.d.cts +10 -7
  117. package/dist/react/index.d.ts +10 -7
  118. package/dist/react/index.js +1 -1
  119. package/dist/react/index.js.map +1 -1
  120. package/dist/react-native/index.cjs +1 -1
  121. package/dist/react-native/index.cjs.map +1 -1
  122. package/dist/react-native/index.d.cts +8 -5
  123. package/dist/react-native/index.d.ts +8 -5
  124. package/dist/react-native/index.js +1 -1
  125. package/dist/react-native/index.js.map +1 -1
  126. package/dist/resolvers/index.cjs +1 -1
  127. package/dist/resolvers/index.cjs.map +1 -1
  128. package/dist/resolvers/index.d.cts +2 -1
  129. package/dist/resolvers/index.d.ts +2 -1
  130. package/dist/resolvers/index.js +1 -1
  131. package/dist/resolvers/joi.d.cts +2 -1
  132. package/dist/resolvers/joi.d.ts +2 -1
  133. package/dist/resolvers/yup.d.cts +2 -1
  134. package/dist/resolvers/yup.d.ts +2 -1
  135. package/dist/resolvers/zod.d.cts +2 -1
  136. package/dist/resolvers/zod.d.ts +2 -1
  137. package/dist/store-api-types-D-ZHxzRy.d.cts +161 -0
  138. package/dist/store-api-types-DPi30jQF.d.ts +161 -0
  139. package/dist/{bus-B4zZmB9C.d.ts → types-CG5nYeRk.d.ts} +140 -41
  140. package/dist/{bus-BeAeZwWu.d.cts → types-D6LhF5GC.d.cts} +140 -41
  141. package/dist/{upload-EXnJLq8k.d.cts → upload-C2mpfhp1.d.cts} +1 -1
  142. package/dist/{upload-EXnJLq8k.d.ts → upload-C2mpfhp1.d.ts} +1 -1
  143. package/dist/{use-bit-persist-Dk3fUrds.d.ts → use-bit-persist-BTwy8kvA.d.ts} +14 -14
  144. package/dist/{use-bit-persist-D_gimC9A.d.cts → use-bit-persist-C2LHNTVv.d.cts} +14 -14
  145. package/dist/utils.cjs +2 -0
  146. package/dist/utils.cjs.map +1 -0
  147. package/dist/utils.d.cts +6 -0
  148. package/dist/utils.d.ts +6 -0
  149. package/dist/utils.js +2 -0
  150. package/dist/utils.js.map +1 -0
  151. package/dist/vue/index.cjs +1 -1
  152. package/dist/vue/index.cjs.map +1 -1
  153. package/dist/vue/index.d.cts +17 -18
  154. package/dist/vue/index.d.ts +17 -18
  155. package/dist/vue/index.js +1 -1
  156. package/dist/vue/index.js.map +1 -1
  157. package/package.json +48 -17
  158. package/dist/chunk-2CVKNPWX.js +0 -2
  159. package/dist/chunk-2CVKNPWX.js.map +0 -1
  160. package/dist/chunk-3EDD3V43.cjs +0 -2
  161. package/dist/chunk-3EDD3V43.cjs.map +0 -1
  162. package/dist/chunk-PX6WKENM.js +0 -2
  163. package/dist/chunk-PX6WKENM.js.map +0 -1
  164. package/dist/chunk-QWH2NBVB.js +0 -2
  165. package/dist/chunk-QWH2NBVB.js.map +0 -1
  166. package/dist/chunk-T3FR7D5V.js +0 -2
  167. package/dist/chunk-T3FR7D5V.js.map +0 -1
  168. package/dist/chunk-VQ7MK5VB.cjs +0 -2
  169. package/dist/chunk-VQ7MK5VB.cjs.map +0 -1
  170. package/dist/chunk-Y2ONHDRE.cjs +0 -2
  171. package/dist/chunk-Y2ONHDRE.cjs.map +0 -1
  172. package/dist/chunk-YCSWULEN.cjs +0 -2
  173. package/dist/chunk-YCSWULEN.cjs.map +0 -1
  174. package/dist/field-binding-BXw0Ku2c.d.cts +0 -12
  175. package/dist/field-binding-BXw0Ku2c.d.ts +0 -12
  176. package/dist/public-types-Cd9ai20P.d.cts +0 -97
  177. package/dist/public-types-DdZxD6Op.d.ts +0 -97
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"names":["useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","masksVersion","useSyncExternalStore","cb","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","isHistoryMetaEqual","stableMeta","subscribe","meta","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","isUploading","setIsUploading","useState","kernelCallbacks","msg","key","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback, useSyncExternalStore } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n // Track mask registrations reactively. getMasksVersion() returns a counter\n // that increments on every registerMask() call. useSyncExternalStore fires\n // the snapshot on every store notification; the integer comparison is O(1)\n // so this only triggers a re-render when a mask is actually added.\n const masksVersion = useSyncExternalStore(\n // store.subscribe fires on every state change (global listener)\n (cb) => store.subscribe(cb),\n () => store.getMasksVersion(),\n () => store.getMasksVersion(),\n );\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [masksVersion, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { isHistoryMetaEqual, type HistoryMeta } from \"../core/history-status\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (lastMeta.current && isHistoryMetaEqual(lastMeta.current, nextMeta)) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"]}
1
+ {"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","onChange","e","isBitFieldInputEventObject","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","isUploading","setIsUploading","useState","kernelCallbacks","msg","key","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { 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\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isDirty: metaState.isDirty,\n isValidating: metaState.isValidating,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n };\n}\n","import { useCallback, 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 {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"]}
@@ -1,13 +1,16 @@
1
- import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-D_gimC9A.cjs';
2
- export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-D_gimC9A.cjs';
3
- import { f as BitPath } from '../bus-BeAeZwWu.cjs';
4
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BeAeZwWu.cjs';
5
- import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.cjs';
1
+ import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-C2LHNTVv.cjs';
2
+ export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-C2LHNTVv.cjs';
3
+ import { u as BitPath } from '../types-D6LhF5GC.cjs';
4
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../types-D6LhF5GC.cjs';
5
+ import '../bus-ZLQeq4Vr.cjs';
6
+ import { a as BitUploadFn, B as BitDeleteUploadFn } from '../upload-C2mpfhp1.cjs';
6
7
  import 'react/jsx-runtime';
7
8
  import 'react';
8
- import '../public-types-Cd9ai20P.cjs';
9
+ import '../store-api-types-D-ZHxzRy.cjs';
9
10
  import '../types-D8DgIUhJ.cjs';
10
- import '../field-binding-BXw0Ku2c.cjs';
11
+ import '../meta-types-Bzmm21TP.cjs';
12
+ import '../array-controller-B5bfXV1W.cjs';
13
+ import '../field-binding-B_OX3bjp.cjs';
11
14
 
12
15
  declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldResult<TForm, P>;
13
16
 
@@ -1,13 +1,16 @@
1
- import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-Dk3fUrds.js';
2
- export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-Dk3fUrds.js';
3
- import { f as BitPath } from '../bus-B4zZmB9C.js';
4
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-B4zZmB9C.js';
5
- import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.js';
1
+ import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-BTwy8kvA.js';
2
+ export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-BTwy8kvA.js';
3
+ import { u as BitPath } from '../types-CG5nYeRk.js';
4
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../types-CG5nYeRk.js';
5
+ import '../bus-B2VEKrPI.js';
6
+ import { a as BitUploadFn, B as BitDeleteUploadFn } from '../upload-C2mpfhp1.js';
6
7
  import 'react/jsx-runtime';
7
8
  import 'react';
8
- import '../public-types-DdZxD6Op.js';
9
+ import '../store-api-types-DPi30jQF.js';
9
10
  import '../types-D8DgIUhJ.js';
10
- import '../field-binding-BXw0Ku2c.js';
11
+ import '../meta-types-Bzmm21TP.js';
12
+ import '../array-controller-Cx-DMH7Y.js';
13
+ import '../field-binding-MX6jVQbT.js';
11
14
 
12
15
  declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldResult<TForm, P>;
13
16
 
@@ -1,2 +1,2 @@
1
- import{a as j,b as m,c as D,d as S,e as K,f as q,g as z,h as w,i as A}from"../chunk-T3FR7D5V.js";import{a as P,b,c as M}from"../chunk-QWH2NBVB.js";import"../chunk-2CVKNPWX.js";import"../chunk-PX6WKENM.js";import{a as V,b as v,c as R}from"../chunk-3NUJVIAM.js";import{useMemo as k,useCallback as U,useSyncExternalStore as L}from"react";function F(e){let{fieldState:s,setValue:n,setBlur:o,store:t}=S(e),d=L(u=>t.subscribe(u),()=>t.getMasksVersion(),()=>t.getMasksVersion()),a=k(()=>t.resolveMask(e),[d,t.config.fields,e]),r=k(()=>v(s.value,a??void 0),[s.value,a]),i=U(u=>n(R(u,a??void 0)),[a,n]),{isHidden:B,isRequired:f,value:l,error:p,touched:y,isDirty:h,isValidating:T}=s,E=!!(y&&p),I=y?p:void 0,x=U(u=>{let C=V(u)?u.target?.value:u;i(C)},[i]),g=U(()=>{o()},[o]);return{value:l,displayValue:r,setValue:i,setBlur:o,onChange:x,onBlur:g,props:{value:r,onChange:x,onBlur:g},meta:{error:I,touched:y,invalid:E,isDirty:h,isValidating:T,isHidden:B,isRequired:f,hasError:!!p}}}import{useCallback as c,useRef as O,useSyncExternalStore as W}from"react";function G(){let e=m(),s=O(null),n=c(()=>{let r=e.getHistoryMetadata();if(s.current&&P(s.current,r))return s.current;let i={canUndo:r.canUndo,canRedo:r.canRedo,historyIndex:r.historyIndex,historySize:r.historySize};return s.current=i,i},[e]),o=c(r=>e.subscribe(r),[e]),t=W(o,n,n),d=c(()=>{e.undo()},[e]),a=c(()=>{e.redo()},[e]);return{...t,undo:d,redo:a}}import{useCallback as H,useRef as J,useState as N}from"react";function Q(e,s,n){let o=m(),t=F(e),d=J(null),[a,r]=N(!1),i={setLoading:r,setError:(l,p)=>o.setError(l,p),setValue:l=>t.setValue(l),getUploadKey:()=>d.current,setUploadKey:l=>{d.current=l}},B=H(b(e,s,i),[s,t,e,o]),f=H(M(e,n,i),[n,t,e,o]);return{value:t.value,setValue:t.setValue,error:t.meta?.error,isValidating:!!t.meta?.isValidating||a,upload:B,remove:f}}export{j as BitFormProvider,K as useBitArray,F as useBitField,D as useBitForm,G as useBitHistory,A as useBitPersist,q as useBitScope,z as useBitSteps,m as useBitStore,Q as useBitUpload,w as useBitWatch};
1
+ import{a as b,b as d,c as h,d as R,e as H,f as M,g as T,h as E,i as k}from"../chunk-CPP7ELA5.js";import{a as g,b as S}from"../chunk-O5UPA33R.js";import"../chunk-5NA2TFPG.js";import"../chunk-UQ3DSUWC.js";import{h as x}from"../chunk-E2NZR44P.js";import"../chunk-W2E5UIXT.js";import{f as U}from"../chunk-EQ55DKX2.js";import{c as v}from"../chunk-63OJBMKK.js";import"../chunk-RD73EBSN.js";import{a as F}from"../chunk-3NUJVIAM.js";import{useMemo as V,useCallback as f}from"react";function y(e){let{fieldState:t,setBlur:n,store:a}=R(e),{fieldController:r}=V(()=>x(a,e),[a,e]),l=V(()=>r.displayValue(t.value),[t.value,r]),u=f(i=>{r.setValue(i)},[r]),{value:o}=t,s=v(t),p=f(i=>{let B=F(i)?i.target?.value:i;u(B)},[u]),c=f(()=>{n()},[n]);return{value:o,displayValue:l,setValue:u,setBlur:n,onChange:p,onBlur:c,props:{value:l,onChange:p,onBlur:c},meta:{error:s.error,touched:s.touched,invalid:s.invalid,isDirty:s.isDirty,isValidating:s.isValidating,isHidden:s.isHidden,isRequired:s.isRequired,hasError:s.hasError}}}import{useCallback as m,useRef as C,useSyncExternalStore as I}from"react";function D(){let e=d(),t=C(null),n=m(()=>{let o=U(e);return t.current&&t.current.canUndo===o.canUndo&&t.current.canRedo===o.canRedo&&t.current.historyIndex===o.historyIndex&&t.current.historySize===o.historySize?t.current:(t.current=o,o)},[e]),a=m(o=>e.observe.subscribeHistoryMeta(()=>o()),[e]),r=I(a,n,n),l=m(()=>{e.feature.undo()},[e]),u=m(()=>{e.feature.redo()},[e]);return{...r,undo:l,redo:u}}import{useCallback as P,useRef as j,useState as K}from"react";function q(e,t,n){let a=d(),r=y(e),l=j(null),[u,o]=K(!1),s={setLoading:o,setError:(i,B)=>a.write.setError(i,B),setValue:i=>r.setValue(i),getUploadKey:()=>l.current,setUploadKey:i=>{l.current=i}},p=P(g(e,t,s),[t,r,e,a]),c=P(S(e,n,s),[n,r,e,a]);return{value:r.value,setValue:r.setValue,error:r.meta?.error,isValidating:!!r.meta?.isValidating||u,upload:p,remove:c}}export{b as BitFormProvider,H as useBitArray,y as useBitField,h as useBitForm,D as useBitHistory,k as useBitPersist,M as useBitScope,T as useBitSteps,d as useBitStore,q as useBitUpload,E as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback, useSyncExternalStore } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n // Track mask registrations reactively. getMasksVersion() returns a counter\n // that increments on every registerMask() call. useSyncExternalStore fires\n // the snapshot on every store notification; the integer comparison is O(1)\n // so this only triggers a re-render when a mask is actually added.\n const masksVersion = useSyncExternalStore(\n // store.subscribe fires on every state change (global listener)\n (cb) => store.subscribe(cb),\n () => store.getMasksVersion(),\n () => store.getMasksVersion(),\n );\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [masksVersion, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { isHistoryMetaEqual, type HistoryMeta } from \"../core/history-status\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (lastMeta.current && isHistoryMetaEqual(lastMeta.current, nextMeta)) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribe(cb),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","useSyncExternalStore","useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","masksVersion","useSyncExternalStore","cb","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","isHistoryMetaEqual","stableMeta","subscribe","cb","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","kernelCallbacks","path","msg","val","key","upload","useCallback","createUploadHandler","remove","createRemoveHandler"]}
1
+ {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { 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\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isDirty: metaState.isDirty,\n isValidating: metaState.isValidating,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n };\n}\n","import { useCallback, 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 {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"yaAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QAc9B,SAASC,EAGdC,EAAsC,CACtC,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,EAAWC,EACdC,GAAqE,CACpEN,EAAgB,SAASM,CAAG,CAC9B,EACA,CAACN,CAAe,CAClB,EAEM,CAAE,MAAAO,CAAM,EAAIX,EACZY,EAAYC,EAAgBb,CAAU,EAEtCc,EAAWL,EACdM,GAA0B,CACzB,IAAML,EAAMM,EAA2BD,CAAC,EAAIA,EAAE,QAAQ,MAAQA,EAC9DP,EAASE,CAAG,CACd,EACA,CAACF,CAAQ,CACX,EAEMS,EAASR,EAAY,IAAM,CAC/BR,EAAQ,CACV,EAAG,CAACA,CAAO,CAAC,EAEZ,MAAO,CAEL,MAAOU,EACP,aAAAJ,EACA,SAAAC,EACA,QAAAP,EACA,SAAAa,EACA,OAAAG,EAEA,MAAO,CACL,MAAOV,EACP,SAAAO,EACA,OAAAG,CACF,EAEA,KAAM,CACJ,MAAOL,EAAU,MACjB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,aAAcA,EAAU,aACxB,SAAUA,EAAU,SACpB,WAAYA,EAAU,WACtB,SAAUA,EAAU,QACtB,CACF,CACF,CCjFA,OAAS,eAAAM,EAAa,UAAAC,EAAQ,wBAAAC,MAA4B,QAKnD,SAASC,GAA6D,CAC3E,IAAMC,EAAQC,EAAe,EACvBC,EAAWC,EAA2B,IAAI,EAE1CC,EAAcC,EAAY,IAAM,CACpC,IAAMC,EAAWC,EAAwBP,CAAK,EAE9C,OACEE,EAAS,SACTA,EAAS,QAAQ,UAAYI,EAAS,SACtCJ,EAAS,QAAQ,UAAYI,EAAS,SACtCJ,EAAS,QAAQ,eAAiBI,EAAS,cAC3CJ,EAAS,QAAQ,cAAgBI,EAAS,YAEnCJ,EAAS,SAGlBA,EAAS,QAAUI,EACZA,EACT,EAAG,CAACN,CAAK,CAAC,EAEJQ,EAAYH,EACfI,GAAmBT,EAAM,QAAQ,qBAAqB,IAAMS,EAAG,CAAC,EACjE,CAACT,CAAK,CACR,EAEMU,EAAOC,EAAqBH,EAAWJ,EAAaA,CAAW,EAE/DQ,EAAOP,EAAY,IAAM,CAC7BL,EAAM,QAAQ,KAAK,CACrB,EAAG,CAACA,CAAK,CAAC,EAEJa,EAAOR,EAAY,IAAM,CAC7BL,EAAM,QAAQ,KAAK,CACrB,EAAG,CAACA,CAAK,CAAC,EAEV,MAAO,CACL,GAAGU,EACH,KAAAE,EACA,KAAAC,CACF,CACF,CCxBA,OAAS,eAAAC,EAAa,UAAAC,EAAQ,YAAAC,MAAgB,QAOvC,SAASC,EACdC,EACAC,EACAC,EACoB,CACpB,IAAMC,EAAQC,EAAiB,EACzBC,EAAQC,EAAYN,CAAS,EAC7BO,EAAeC,EAAsB,IAAI,EACzC,CAACC,EAAaC,CAAc,EAAIC,EAAS,EAAK,EAE9CC,EAAkB,CACtB,WAAYF,EACZ,SAAU,CAACG,EAAcC,IACvBX,EAAM,MAAM,SAASU,EAAMC,CAAG,EAChC,SAAWC,GAAuBV,EAAM,SAASU,CAAU,EAC3D,aAAc,IAAMR,EAAa,QACjC,aAAeS,GAAuB,CACpCT,EAAa,QAAUS,CACzB,CACF,EAEMC,EAASC,EACbC,EAAoBnB,EAAWC,EAAUW,CAAe,EACxD,CAACX,EAAUI,EAAOL,EAAWG,CAAK,CACpC,EAEMiB,EAASF,EACbG,EAAoBrB,EAAWE,EAAYU,CAAe,EAC1D,CAACV,EAAYG,EAAOL,EAAWG,CAAK,CACtC,EAEA,MAAO,CACL,MAAOE,EAAM,MACb,SAAUA,EAAM,SAChB,MAAOA,EAAM,MAAM,MACnB,aAAc,CAAC,CAACA,EAAM,MAAM,cAAgBI,EAC5C,OAAAQ,EACA,OAAAG,CACF,CACF","names":["useMemo","useCallback","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","onChange","e","isBitFieldInputEventObject","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","kernelCallbacks","path","msg","val","key","upload","useCallback","createUploadHandler","remove","createRemoveHandler"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunk3EDD3V43cjs = require('../chunk-3EDD3V43.cjs');require('../chunk-Y2ONHDRE.cjs');require('../chunk-YCSWULEN.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _react = require('react');function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=_chunk3EDD3V43cjs.d.call(void 0, r),e=_react.useMemo.call(void 0, ()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=_react.useMemo.call(void 0, ()=>_chunkPFPGASVZcjs.b.call(void 0, o.value,_nullishCoalesce(e, () => (void 0))),[o.value,e]),p=_react.useCallback.call(void 0, u=>t(_chunkPFPGASVZcjs.c.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),x=_react.useCallback.call(void 0, u=>t(_chunkPFPGASVZcjs.c.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=_react.useCallback.call(void 0, ()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}exports.BitFormProvider = _chunk3EDD3V43cjs.a; exports.useBitArray = _chunk3EDD3V43cjs.e; exports.useBitField = E; exports.useBitForm = _chunk3EDD3V43cjs.c; exports.useBitPersist = _chunk3EDD3V43cjs.i; exports.useBitScope = _chunk3EDD3V43cjs.f; exports.useBitSteps = _chunk3EDD3V43cjs.g; exports.useBitStore = _chunk3EDD3V43cjs.b; exports.useBitWatch = _chunk3EDD3V43cjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMFSQATNZcjs = require('../chunk-MFSQATNZ.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-VZHG372Q.cjs');var _chunkMFTWAFMGcjs = require('../chunk-MFTWAFMG.cjs');require('../chunk-BSGJ3T5S.cjs');require('../chunk-D7JQWF6V.cjs');var _chunkM6WBNHITcjs = require('../chunk-M6WBNHIT.cjs');require('../chunk-T2JRSWQU.cjs');require('../chunk-PFPGASVZ.cjs');var _react = require('react');function g(i){let{fieldState:r,setBlur:o,store:l}=_chunkMFSQATNZcjs.d.call(void 0, i),{fieldController:t}=_react.useMemo.call(void 0, ()=>_chunkMFTWAFMGcjs.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=_chunkM6WBNHITcjs.c.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 = _chunkMFSQATNZcjs.a; exports.useBitArray = _chunkMFSQATNZcjs.e; exports.useBitField = g; exports.useBitForm = _chunkMFSQATNZcjs.c; exports.useBitPersist = _chunkMFSQATNZcjs.i; exports.useBitScope = _chunkMFSQATNZcjs.f; exports.useBitSteps = _chunkMFSQATNZcjs.g; exports.useBitStore = _chunkMFSQATNZcjs.b; exports.useBitWatch = _chunkMFSQATNZcjs.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","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","handleChange","useCallback","text","parseMaskedInput","setValue","val","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onBlur"],"mappings":"AAAA,sOAAiG,iCAA8B,iCAA8B,yDAAiD,8BCAzK,SASrBA,CAAAA,CAGdC,CAAAA,CAA4C,CAC5C,GAAM,CACJ,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAUC,CAAAA,CACV,OAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CAAIC,iCAAAA,CAAsD,CAAA,CAEpDC,CAAAA,CAAeC,4BAAAA,CAAQ,CAAA,EACpBH,CAAAA,CAAM,WAAA,CAAYJ,CAAc,CAAA,CACtC,CAACI,CAAAA,CAAM,MAAA,CAAO,KAAA,CAAOA,CAAAA,CAAM,MAAA,CAAO,MAAA,CAAQJ,CAAI,CAAC,CAAA,CAE5CQ,CAAAA,CAAeD,4BAAAA,CACnB,CAAA,EAAME,iCAAAA,CAAkBR,CAAW,KAAA,kBAAOK,CAAAA,SAAgB,KAAA,GAAS,CAAA,CACnE,CAACL,CAAAA,CAAW,KAAA,CAAOK,CAAY,CACjC,CAAA,CAEMI,CAAAA,CAAeC,gCAAAA,CAClBC,EACCV,CAAAA,CAAYW,iCAAAA,CAAiBD,kBAAMN,CAAAA,SAAgB,KAAA,GAAS,CAAQ,CAAA,CACtE,CAACA,CAAAA,CAAcJ,CAAW,CAC5B,CAAA,CAEMY,CAAAA,CAAWH,gCAAAA,CACdI,EACCb,CAAAA,CAAYW,iCAAAA,CAAiBE,kBAAKT,CAAAA,SAAgB,KAAA,GAAS,CAAQ,CAAA,CACrE,CAACA,CAAAA,CAAcJ,CAAW,CAC5B,CAAA,CAEM,CAAE,QAAA,CAAAc,CAAAA,CAAU,UAAA,CAAAC,CAAAA,CAAY,KAAA,CAAAC,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAAA,CAAS,OAAA,CAAAC,CAAAA,CAAS,YAAA,CAAAC,CAAa,CAAA,CACzErB,CAAAA,CACIsB,CAAAA,CAAU,CAAC,CAAA,CAAEH,CAAAA,EAAWD,CAAAA,CAAAA,CACxBK,CAAAA,CAAeJ,CAAAA,CAAUD,CAAAA,CAAQ,KAAA,CAAA,CAEjCM,CAAAA,CAASd,gCAAAA,CAAY,CAAA,EAAM,CAC/BR,CAAAA,CAAQ,CACV,CAAA,CAAG,CAACA,CAAO,CAAC,CAAA,CAEZ,MAAO,CACL,KAAA,CAAOe,CAAAA,CACP,YAAA,CAAAV,CAAAA,CACA,QAAA,CAAAM,CAAAA,CACA,OAAA,CAAAX,CAAAA,CACA,YAAA,CAAcO,CAAAA,CACd,MAAA,CAAAe,CAAAA,CACA,IAAA,CAAM,CACJ,KAAA,CAAOD,CAAAA,CACP,OAAA,CAAAJ,CAAAA,CACA,OAAA,CAAAG,CAAAA,CACA,YAAA,CAAAD,CAAAA,CACA,OAAA,CAAAD,CAAAA,CACA,QAAA,CAAAL,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAU,CAAC,CAACE,CACd,CAAA,CACA,KAAA,CAAO,CACL,KAAA,CAAOX,CAAAA,CACP,YAAA,CAAcE,CAAAA,CACd,MAAA,CAAAe,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 { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n} from \"../core/mask/field-binding\";\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 {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const handleChange = useCallback(\n (text: string) =>\n rawSetValue(parseMaskedInput(text, resolvedMask ?? undefined) as any),\n [resolvedMask, rawSetValue],\n );\n\n const setValue = useCallback(\n (val: any) =>\n rawSetValue(parseMaskedInput(val, resolvedMask ?? undefined) as any),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\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: visibleError,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError: !!error,\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"],"mappings":"AAAA,kIAAiG,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,8BCApU,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,11 +1,14 @@
1
- export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-D_gimC9A.cjs';
2
- import { f as BitPath, g as BitPathValue } from '../bus-BeAeZwWu.cjs';
3
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BeAeZwWu.cjs';
1
+ export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-C2LHNTVv.cjs';
2
+ import { u as BitPath, v as BitPathValue } from '../types-D6LhF5GC.cjs';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../types-D6LhF5GC.cjs';
4
+ import '../bus-ZLQeq4Vr.cjs';
4
5
  import 'react/jsx-runtime';
5
6
  import 'react';
6
- import '../public-types-Cd9ai20P.cjs';
7
+ import '../store-api-types-D-ZHxzRy.cjs';
7
8
  import '../types-D8DgIUhJ.cjs';
8
- import '../field-binding-BXw0Ku2c.cjs';
9
+ import '../meta-types-Bzmm21TP.cjs';
10
+ import '../array-controller-B5bfXV1W.cjs';
11
+ import '../field-binding-B_OX3bjp.cjs';
9
12
 
10
13
  /**
11
14
  * Metadata describing the current state of a form field (React Native).
@@ -1,11 +1,14 @@
1
- export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-Dk3fUrds.js';
2
- import { f as BitPath, g as BitPathValue } from '../bus-B4zZmB9C.js';
3
- export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-B4zZmB9C.js';
1
+ export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-BTwy8kvA.js';
2
+ import { u as BitPath, v as BitPathValue } from '../types-CG5nYeRk.js';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../types-CG5nYeRk.js';
4
+ import '../bus-B2VEKrPI.js';
4
5
  import 'react/jsx-runtime';
5
6
  import 'react';
6
- import '../public-types-DdZxD6Op.js';
7
+ import '../store-api-types-DPi30jQF.js';
7
8
  import '../types-D8DgIUhJ.js';
8
- import '../field-binding-BXw0Ku2c.js';
9
+ import '../meta-types-Bzmm21TP.js';
10
+ import '../array-controller-Cx-DMH7Y.js';
11
+ import '../field-binding-MX6jVQbT.js';
9
12
 
10
13
  /**
11
14
  * Metadata describing the current state of a form field (React Native).
@@ -1,2 +1,2 @@
1
- import{a as S,b as k,c as M,d as c,e as R,f as U,g as N,h as C,i as b}from"../chunk-T3FR7D5V.js";import"../chunk-2CVKNPWX.js";import"../chunk-PX6WKENM.js";import{b as f,c as l}from"../chunk-3NUJVIAM.js";import{useMemo as F,useCallback as d}from"react";function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=c(r),e=F(()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=F(()=>f(o.value,e??void 0),[o.value,e]),p=d(u=>t(l(u,e??void 0)),[e,t]),x=d(u=>t(l(u,e??void 0)),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=d(()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}export{S as BitFormProvider,R as useBitArray,E as useBitField,M as useBitForm,b as useBitPersist,U as useBitScope,N as useBitSteps,k as useBitStore,C as useBitWatch};
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-CPP7ELA5.js";import"../chunk-5NA2TFPG.js";import"../chunk-UQ3DSUWC.js";import{h as m}from"../chunk-E2NZR44P.js";import"../chunk-W2E5UIXT.js";import"../chunk-EQ55DKX2.js";import{c as p}from"../chunk-63OJBMKK.js";import"../chunk-RD73EBSN.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};
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 { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n} from \"../core/mask/field-binding\";\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 {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const handleChange = useCallback(\n (text: string) =>\n rawSetValue(parseMaskedInput(text, resolvedMask ?? undefined) as any),\n [resolvedMask, rawSetValue],\n );\n\n const setValue = useCallback(\n (val: any) =>\n rawSetValue(parseMaskedInput(val, resolvedMask ?? undefined) as any),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\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: visibleError,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"],"mappings":"2MAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QAS9B,SAASC,EAGdC,EAA4C,CAC5C,GAAM,CACJ,WAAAC,EACA,SAAUC,EACV,QAAAC,EACA,MAAAC,CACF,EAAIC,EAAkDL,CAAI,EAEpDM,EAAeC,EAAQ,IACpBH,EAAM,YAAYJ,CAAc,EACtC,CAACI,EAAM,OAAO,MAAOA,EAAM,OAAO,OAAQJ,CAAI,CAAC,EAE5CQ,EAAeD,EACnB,IAAME,EAAkBR,EAAW,MAAOK,GAAgB,MAAS,EACnE,CAACL,EAAW,MAAOK,CAAY,CACjC,EAEMI,EAAeC,EAClBC,GACCV,EAAYW,EAAiBD,EAAMN,GAAgB,MAAS,CAAQ,EACtE,CAACA,EAAcJ,CAAW,CAC5B,EAEMY,EAAWH,EACdI,GACCb,EAAYW,EAAiBE,EAAKT,GAAgB,MAAS,CAAQ,EACrE,CAACA,EAAcJ,CAAW,CAC5B,EAEM,CAAE,SAAAc,EAAU,WAAAC,EAAY,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,QAAAC,EAAS,aAAAC,CAAa,EACzErB,EACIsB,EAAU,CAAC,EAAEH,GAAWD,GACxBK,EAAeJ,EAAUD,EAAQ,OAEjCM,EAASd,EAAY,IAAM,CAC/BR,EAAQ,CACV,EAAG,CAACA,CAAO,CAAC,EAEZ,MAAO,CACL,MAAOe,EACP,aAAAV,EACA,SAAAM,EACA,QAAAX,EACA,aAAcO,EACd,OAAAe,EACA,KAAM,CACJ,MAAOD,EACP,QAAAJ,EACA,QAAAG,EACA,aAAAD,EACA,QAAAD,EACA,SAAAL,EACA,WAAAC,EACA,SAAU,CAAC,CAACE,CACd,EACA,MAAO,CACL,MAAOX,EACP,aAAcE,EACd,OAAAe,CACF,CACF,CACF","names":["useMemo","useCallback","useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","handleChange","useCallback","text","parseMaskedInput","setValue","val","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","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: 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":"iWAAA,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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkDD6XWUMRcjs = require('../chunk-DD6XWUMR.cjs');require('../chunk-MFSDDSVG.cjs');var _chunk77PK7U73cjs = require('../chunk-77PK7U73.cjs');var _chunkUT63HKR6cjs = require('../chunk-UT63HKR6.cjs');require('../chunk-CTURHI75.cjs');exports.joiResolver = _chunkDD6XWUMRcjs.a; exports.yupResolver = _chunkUT63HKR6cjs.a; exports.zodResolver = _chunk77PK7U73cjs.a;
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;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"],"names":[],"mappings":"AAAA,kIAAyC,iCAA8B,yDAA0C,yDAA0C,iCAA8B,gIAA2D","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"],"names":[],"mappings":"AAAA,kIAAyC,yDAA0C,yDAA0C,iCAA8B,iCAA8B,gIAA2D","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"}
@@ -3,7 +3,8 @@ export { zodResolver } from './zod.cjs';
3
3
  export { yupResolver } from './yup.cjs';
4
4
  export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.cjs';
5
5
  import 'joi';
6
- import '../bus-BeAeZwWu.cjs';
6
+ import '../types-D6LhF5GC.cjs';
7
7
  import '../types-D8DgIUhJ.cjs';
8
+ import '../bus-ZLQeq4Vr.cjs';
8
9
  import 'zod';
9
10
  import 'yup';
@@ -3,7 +3,8 @@ export { zodResolver } from './zod.js';
3
3
  export { yupResolver } from './yup.js';
4
4
  export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.js';
5
5
  import 'joi';
6
- import '../bus-B4zZmB9C.js';
6
+ import '../types-CG5nYeRk.js';
7
7
  import '../types-D8DgIUhJ.js';
8
+ import '../bus-B2VEKrPI.js';
8
9
  import 'zod';
9
10
  import 'yup';
@@ -1,2 +1,2 @@
1
- import{a as e}from"../chunk-FGJB4DHQ.js";import"../chunk-FQLJOSF7.js";import{a as o}from"../chunk-M2XR4C7T.js";import{a as r}from"../chunk-GDRNKTHO.js";import"../chunk-GUU6EXFN.js";export{e as joiResolver,r as yupResolver,o as zodResolver};
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};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,6 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { i as BitErrors } from '../bus-BeAeZwWu.cjs';
2
+ import { k as BitErrors } from '../types-D6LhF5GC.cjs';
3
+ import '../bus-ZLQeq4Vr.cjs';
3
4
  import { BitJoiResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
5
  import '../types-D8DgIUhJ.cjs';
5
6
 
@@ -1,5 +1,6 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { i as BitErrors } from '../bus-B4zZmB9C.js';
2
+ import { k as BitErrors } from '../types-CG5nYeRk.js';
3
+ import '../bus-B2VEKrPI.js';
3
4
  import { BitJoiResolverConfig, BitResolverScopeOptions } from './types.js';
4
5
  import '../types-D8DgIUhJ.js';
5
6
 
@@ -1,5 +1,6 @@
1
1
  import { Schema } from 'yup';
2
- import { i as BitErrors } from '../bus-BeAeZwWu.cjs';
2
+ import { k as BitErrors } from '../types-D6LhF5GC.cjs';
3
+ import '../bus-ZLQeq4Vr.cjs';
3
4
  import { BitYupResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
5
  import '../types-D8DgIUhJ.cjs';
5
6
 
@@ -1,5 +1,6 @@
1
1
  import { Schema } from 'yup';
2
- import { i as BitErrors } from '../bus-B4zZmB9C.js';
2
+ import { k as BitErrors } from '../types-CG5nYeRk.js';
3
+ import '../bus-B2VEKrPI.js';
3
4
  import { BitYupResolverConfig, BitResolverScopeOptions } from './types.js';
4
5
  import '../types-D8DgIUhJ.js';
5
6
 
@@ -1,5 +1,6 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { i as BitErrors } from '../bus-BeAeZwWu.cjs';
2
+ import { k as BitErrors } from '../types-D6LhF5GC.cjs';
3
+ import '../bus-ZLQeq4Vr.cjs';
3
4
  import { BitZodResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
5
  import '../types-D8DgIUhJ.cjs';
5
6
 
@@ -1,5 +1,6 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { i as BitErrors } from '../bus-B4zZmB9C.js';
2
+ import { k as BitErrors } from '../types-CG5nYeRk.js';
3
+ import '../bus-B2VEKrPI.js';
3
4
  import { BitZodResolverConfig, BitResolverScopeOptions } from './types.js';
4
5
  import '../types-D8DgIUhJ.js';
5
6
 
@@ -0,0 +1,161 @@
1
+ import { G as BitState, j as BitConfig, N as ValidatorFn, o as BitFieldDefinition, M as DevToolsOptions, O as BitPersistResolvedConfig, P as BitIdFactory, A as BitPlugin, F as BitScheduler, r as BitFormGlobal, u as BitPath, p as BitFieldState, v as BitPathValue, x as BitPersistMetadata, S as ScopeStatus, L as DeepPartial, k as BitErrors, H as BitSubmitResult, c as BitArrayPath, b as BitArrayItem } from './types-D6LhF5GC.cjs';
2
+ import { B as BitMask } from './types-D8DgIUhJ.cjs';
3
+ import { a as BitHistoryMetadata, B as BitFormMeta, b as BitValidationOptions } from './meta-types-Bzmm21TP.cjs';
4
+
5
+ type BitSelector<T extends object, TSlice> = (state: Readonly<BitState<T>>) => TSlice;
6
+ type BitEqualityFn<TValue> = (previous: TValue, next: TValue) => boolean;
7
+ interface BitScopedSelectorSubscriptionOptions<TValue> {
8
+ mode?: "scoped";
9
+ paths: string[];
10
+ equalityFn?: BitEqualityFn<TValue>;
11
+ emitImmediately?: boolean;
12
+ }
13
+ interface BitTrackedSelectorSubscriptionOptions<TValue> {
14
+ mode: "tracked";
15
+ equalityFn?: BitEqualityFn<TValue>;
16
+ emitImmediately?: boolean;
17
+ }
18
+ type BitSelectorSubscriptionOptions<TValue> = BitScopedSelectorSubscriptionOptions<TValue> | BitTrackedSelectorSubscriptionOptions<TValue>;
19
+
20
+ interface BitValidationTriggerOptions {
21
+ forceDebounce?: boolean;
22
+ }
23
+
24
+ interface BitStoreIdentityApi<T extends object = Record<string, unknown>> {
25
+ readonly storeId: string;
26
+ readonly config: Readonly<BitFrameworkConfig<T>>;
27
+ }
28
+ interface BitFrameworkConfig<T extends object = Record<string, unknown>> extends BitConfig<T> {
29
+ initialValues: T;
30
+ resolver?: ValidatorFn<T>;
31
+ validationDelay: number;
32
+ history: {
33
+ enabled: boolean;
34
+ limit: number;
35
+ };
36
+ masks?: Record<string, BitMask>;
37
+ fields?: Record<string, BitFieldDefinition<T>>;
38
+ devTools?: boolean | DevToolsOptions;
39
+ persist: BitPersistResolvedConfig<T>;
40
+ idFactory: BitIdFactory;
41
+ plugins: BitPlugin<T>[];
42
+ scheduler?: BitScheduler;
43
+ subscriptionCacheSize?: number;
44
+ bus?: BitFormGlobal;
45
+ onUnhandledError: (error: unknown, source: "submit" | "validation" | "persist") => void;
46
+ }
47
+ interface BitFormReadApi<T extends object = Record<string, unknown>> {
48
+ getState(): Readonly<BitState<T>>;
49
+ getFieldConfig(path: string): BitFieldDefinition<T> | undefined;
50
+ getFieldState<P extends BitPath<T>>(path: P): Readonly<BitFieldState<T, BitPathValue<T, P>>>;
51
+ isHidden<P extends BitPath<T>>(path: P): boolean;
52
+ isRequired<P extends BitPath<T>>(path: P): boolean;
53
+ isFieldDirty(path: string): boolean;
54
+ isFieldValidating(path: string): boolean;
55
+ getDirtyValues(): Partial<T>;
56
+ getPersistMetadata(): BitPersistMetadata;
57
+ getHistoryMetadata(): BitHistoryMetadata;
58
+ getScopeStatus(scopeName: string): ScopeStatus;
59
+ getScopeErrors(scopeName: string): Record<string, string>;
60
+ getScopeFields(scopeName: string): string[];
61
+ }
62
+ interface BitFormObserveApi<T extends object = Record<string, unknown>> {
63
+ subscribe(listener: () => void): () => void;
64
+ subscribePersistMeta(listener: (meta: BitPersistMetadata) => void): () => void;
65
+ subscribeHistoryMeta(listener: (meta: BitHistoryMetadata) => void): () => void;
66
+ subscribeScopeStatus(scopeName: string, listener: (status: ScopeStatus) => void): () => void;
67
+ }
68
+ interface BitFormWriteApi<T extends object = Record<string, unknown>> {
69
+ setField<P extends BitPath<T>>(path: P, value: BitPathValue<T, P>): void;
70
+ blurField<P extends BitPath<T>>(path: P): void;
71
+ markFieldsTouched(paths: string[]): void;
72
+ setValues(values: T | DeepPartial<T>, options?: {
73
+ partial?: boolean;
74
+ rebase?: boolean;
75
+ }): void;
76
+ setError(path: string, message: string | undefined): void;
77
+ setErrors(errors: BitErrors<T>): void;
78
+ setServerErrors(serverErrors: Record<string, string[] | string>): void;
79
+ validate(options?: BitValidationOptions): Promise<boolean>;
80
+ triggerValidation(scopeFields?: string[], options?: BitValidationTriggerOptions): void;
81
+ reset(): void;
82
+ transaction<TResult>(callback: () => TResult): TResult;
83
+ submit(onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>): Promise<BitSubmitResult>;
84
+ }
85
+ interface BitStoreLifecycleApi {
86
+ cleanup(): void;
87
+ }
88
+ interface BitStorePersistFeatureApi {
89
+ getPersistMetadata(): BitPersistMetadata;
90
+ restorePersisted(): Promise<boolean>;
91
+ forceSave(): Promise<void>;
92
+ clearPersisted(): Promise<void>;
93
+ }
94
+ interface BitStoreRegistrationFeatureApi<T extends object = Record<string, unknown>> {
95
+ registerField(path: string, config: BitFieldDefinition<T>): void;
96
+ unregisterField(path: string): void;
97
+ unregisterPrefix(prefix: string): void;
98
+ }
99
+ interface BitStoreArrayFeatureApi<T extends object = Record<string, unknown>> {
100
+ pushItem<P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>): void;
101
+ prependItem<P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>): void;
102
+ insertItem<P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>): void;
103
+ removeItem<P extends BitArrayPath<T>>(path: P, index: number): void;
104
+ moveItem<P extends BitArrayPath<T>>(path: P, from: number, to: number): void;
105
+ swapItems<P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number): void;
106
+ replaceItems<P extends BitArrayPath<T>>(path: P, items: BitArrayItem<BitPathValue<T, P>>[]): void;
107
+ clearItems<P extends BitArrayPath<T>>(path: P): void;
108
+ }
109
+ interface BitStoreHistoryFeatureApi {
110
+ readonly canUndo: boolean;
111
+ readonly canRedo: boolean;
112
+ undo(): void;
113
+ redo(): void;
114
+ }
115
+ interface BitStoreStateFlagsApi {
116
+ readonly isValid: boolean;
117
+ readonly isSubmitting: boolean;
118
+ readonly isDirty: boolean;
119
+ }
120
+ interface BitFormMetaBindingApi<T extends object = Record<string, unknown>> {
121
+ getState(): Readonly<BitState<T>>;
122
+ subscribeFormMeta(listener: (meta: BitFormMeta) => void): () => void;
123
+ }
124
+ interface BitStoreSelectorBindingApi<T extends object = Record<string, unknown>> {
125
+ subscribe(listener: () => void): () => void;
126
+ subscribePath<P extends BitPath<T>>(path: P, listener: (value: BitPathValue<T, P>) => void, options?: BitScopedSelectorSubscriptionOptions<BitPathValue<T, P>>): () => void;
127
+ subscribeSelector<TSlice>(selector: BitSelector<T, TSlice>, listener: (slice: TSlice) => void, options: BitSelectorSubscriptionOptions<TSlice>): () => void;
128
+ }
129
+ interface BitFieldBindingApi<T extends object = Record<string, unknown>> {
130
+ getFieldState<P extends BitPath<T>>(path: P): Readonly<BitFieldState<T, BitPathValue<T, P>>>;
131
+ subscribeFieldState<P extends BitPath<T>>(path: P, listener: (state: Readonly<BitFieldState<T, BitPathValue<T, P>>>) => void): () => void;
132
+ setField<P extends BitPath<T>>(path: P, value: BitPathValue<T, P>): void;
133
+ blurField<P extends BitPath<T>>(path: P): void;
134
+ resolveMask(path: string): BitMask | undefined;
135
+ unregisterField(path: string): void;
136
+ }
137
+ interface BitStoreFeatureApi<T extends object = Record<string, unknown>> extends BitStoreLifecycleApi, BitStorePersistFeatureApi, BitStoreRegistrationFeatureApi<T>, BitStoreArrayFeatureApi<T>, BitStoreHistoryFeatureApi {
138
+ hasValidationsInProgress(scopeFields?: string[]): boolean;
139
+ resolveMask(path: string): BitMask | undefined;
140
+ createArrayItemId(path: string, index?: number): string;
141
+ }
142
+ interface BitStoreReadSliceApi<T extends object = Record<string, unknown>> extends BitStoreIdentityApi<T>, BitStoreStateFlagsApi, BitFormReadApi<T> {
143
+ }
144
+ interface BitStoreObserveSliceApi<T extends object = Record<string, unknown>> extends BitFormObserveApi<T>, BitFormMetaBindingApi<T>, BitStoreSelectorBindingApi<T>, Pick<BitFieldBindingApi<T>, "subscribeFieldState"> {
145
+ }
146
+ interface BitStoreWriteSliceApi<T extends object = Record<string, unknown>> extends BitFormWriteApi<T> {
147
+ }
148
+ interface BitStoreNamespacesApi<T extends object = Record<string, unknown>> {
149
+ readonly read: BitStoreReadSliceApi<T>;
150
+ readonly observe: BitStoreObserveSliceApi<T>;
151
+ readonly write: BitStoreWriteSliceApi<T>;
152
+ readonly feature: BitStoreFeatureApi<T>;
153
+ }
154
+ interface BitStoreApi<T extends object = Record<string, unknown>> extends BitStoreNamespacesApi<T> {
155
+ }
156
+ interface BitStoreHooksApi<T extends object = Record<string, unknown>> extends BitStoreApi<T> {
157
+ }
158
+ interface BitFrameworkStoreApi<T extends object = Record<string, unknown>> extends BitStoreApi<T> {
159
+ }
160
+
161
+ export type { BitEqualityFn as B, BitFrameworkConfig as a, BitFrameworkStoreApi as b, BitSelector as c, BitSelectorSubscriptionOptions as d, BitStoreApi as e, BitStoreHooksApi as f, BitStoreFeatureApi as g, BitStoreObserveSliceApi as h, BitStoreReadSliceApi as i, BitStoreWriteSliceApi as j };