@lehnihon/bit-form 2.2.3 → 2.2.4

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 (127) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.d.cts +6 -5
  4. package/dist/angular/index.d.ts +6 -5
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/{bus-DHQHDwUp.d.ts → bus-BQI1FIOs.d.ts} +20 -10
  8. package/dist/{bus-CILR-ENq.d.cts → bus-a_GA51Qw.d.cts} +20 -10
  9. package/dist/chunk-4XLU5ZCX.js +2 -0
  10. package/dist/chunk-4XLU5ZCX.js.map +1 -0
  11. package/dist/chunk-66DIO2SH.js +2 -0
  12. package/dist/chunk-66DIO2SH.js.map +1 -0
  13. package/dist/chunk-7LMNIQTT.js +2 -0
  14. package/dist/{chunk-VDWCFNA6.js.map → chunk-7LMNIQTT.js.map} +1 -1
  15. package/dist/chunk-AE4G32HS.js +2 -0
  16. package/dist/chunk-AE4G32HS.js.map +1 -0
  17. package/dist/chunk-BMHK77NL.js +2 -0
  18. package/dist/chunk-BMHK77NL.js.map +1 -0
  19. package/dist/chunk-CFFLDMLG.cjs +2 -0
  20. package/dist/chunk-CFFLDMLG.cjs.map +1 -0
  21. package/dist/chunk-EI5L5L3R.cjs +2 -0
  22. package/dist/{chunk-PA6T2CBR.cjs.map → chunk-EI5L5L3R.cjs.map} +1 -1
  23. package/dist/chunk-FQLJOSF7.js +1 -0
  24. package/dist/chunk-FQLJOSF7.js.map +1 -0
  25. package/dist/chunk-IV32WXCF.cjs +2 -0
  26. package/dist/chunk-IV32WXCF.cjs.map +1 -0
  27. package/dist/chunk-K5NZDYAT.js +2 -0
  28. package/dist/chunk-K5NZDYAT.js.map +1 -0
  29. package/dist/chunk-KYM7JG2G.cjs +2 -0
  30. package/dist/chunk-KYM7JG2G.cjs.map +1 -0
  31. package/dist/chunk-LOYB7TTM.cjs +2 -0
  32. package/dist/{chunk-JO37BU2C.cjs.map → chunk-LOYB7TTM.cjs.map} +1 -1
  33. package/dist/chunk-MBTLLIBM.js +2 -0
  34. package/dist/chunk-MBTLLIBM.js.map +1 -0
  35. package/dist/chunk-MFSDDSVG.cjs +1 -0
  36. package/dist/chunk-MFSDDSVG.cjs.map +1 -0
  37. package/dist/chunk-MQX4YS6D.cjs +2 -0
  38. package/dist/chunk-MQX4YS6D.cjs.map +1 -0
  39. package/dist/chunk-O5UPA33R.js +2 -0
  40. package/dist/chunk-O5UPA33R.js.map +1 -0
  41. package/dist/{chunk-NNKZFXEK.cjs → chunk-RFFMBY7M.cjs} +2 -2
  42. package/dist/{chunk-NNKZFXEK.cjs.map → chunk-RFFMBY7M.cjs.map} +1 -1
  43. package/dist/chunk-YEXRRTI3.cjs +2 -0
  44. package/dist/chunk-YEXRRTI3.cjs.map +1 -0
  45. package/dist/{chunk-FEW3ABPD.js → chunk-YGAD4ZZW.js} +2 -2
  46. package/dist/chunk-YGAD4ZZW.js.map +1 -0
  47. package/dist/chunk-ZO3GXKF3.cjs +2 -0
  48. package/dist/chunk-ZO3GXKF3.cjs.map +1 -0
  49. package/dist/devtools/bridge.cjs +1 -1
  50. package/dist/devtools/bridge.js +1 -1
  51. package/dist/devtools/index.cjs +2 -2
  52. package/dist/devtools/index.cjs.map +1 -1
  53. package/dist/devtools/index.js +1 -1
  54. package/dist/devtools/index.js.map +1 -1
  55. package/dist/field-binding-BXw0Ku2c.d.cts +12 -0
  56. package/dist/field-binding-BXw0Ku2c.d.ts +12 -0
  57. package/dist/index.cjs +1 -1
  58. package/dist/index.cjs.map +1 -1
  59. package/dist/index.d.cts +20 -15
  60. package/dist/index.d.ts +20 -15
  61. package/dist/index.js +1 -1
  62. package/dist/mask.cjs +1 -1
  63. package/dist/mask.js +1 -1
  64. package/dist/{public-types-SU17BarA.d.cts → public-types-D14VY_4o.d.cts} +4 -9
  65. package/dist/{public-types-Bgws0aVJ.d.ts → public-types-D3WIiMGu.d.ts} +4 -9
  66. package/dist/react/index.cjs +1 -1
  67. package/dist/react/index.cjs.map +1 -1
  68. package/dist/react/index.d.cts +7 -6
  69. package/dist/react/index.d.ts +7 -6
  70. package/dist/react/index.js +1 -1
  71. package/dist/react/index.js.map +1 -1
  72. package/dist/react-native/index.cjs +1 -1
  73. package/dist/react-native/index.d.cts +5 -4
  74. package/dist/react-native/index.d.ts +5 -4
  75. package/dist/react-native/index.js +1 -1
  76. package/dist/resolvers/index.cjs +2 -0
  77. package/dist/resolvers/index.cjs.map +1 -0
  78. package/dist/resolvers/index.d.cts +9 -0
  79. package/dist/resolvers/index.d.ts +9 -0
  80. package/dist/resolvers/index.js +2 -0
  81. package/dist/resolvers/index.js.map +1 -0
  82. package/dist/resolvers/joi.cjs +1 -1
  83. package/dist/resolvers/joi.cjs.map +1 -1
  84. package/dist/resolvers/joi.d.cts +1 -1
  85. package/dist/resolvers/joi.d.ts +1 -1
  86. package/dist/resolvers/joi.js +1 -1
  87. package/dist/resolvers/joi.js.map +1 -1
  88. package/dist/resolvers/types.cjs +2 -1
  89. package/dist/resolvers/types.cjs.map +1 -1
  90. package/dist/resolvers/types.js +1 -0
  91. package/dist/resolvers/yup.cjs +1 -1
  92. package/dist/resolvers/yup.cjs.map +1 -1
  93. package/dist/resolvers/yup.d.cts +1 -1
  94. package/dist/resolvers/yup.d.ts +1 -1
  95. package/dist/resolvers/yup.js +1 -1
  96. package/dist/resolvers/yup.js.map +1 -1
  97. package/dist/resolvers/zod.cjs +1 -1
  98. package/dist/resolvers/zod.cjs.map +1 -1
  99. package/dist/resolvers/zod.d.cts +1 -1
  100. package/dist/resolvers/zod.d.ts +1 -1
  101. package/dist/resolvers/zod.js +1 -1
  102. package/dist/resolvers/zod.js.map +1 -1
  103. package/dist/{types-C2mpfhp1.d.cts → upload-EXnJLq8k.d.cts} +1 -1
  104. package/dist/{types-C2mpfhp1.d.ts → upload-EXnJLq8k.d.ts} +1 -1
  105. package/dist/{use-bit-persist-DEWMhvit.d.cts → use-bit-persist-CNtQ3Gaq.d.ts} +7 -6
  106. package/dist/{use-bit-persist-BlR-hHk6.d.ts → use-bit-persist-Dt4zIl2u.d.cts} +7 -6
  107. package/dist/vue/index.cjs +1 -1
  108. package/dist/vue/index.cjs.map +1 -1
  109. package/dist/vue/index.d.cts +3 -3
  110. package/dist/vue/index.d.ts +3 -3
  111. package/dist/vue/index.js +1 -1
  112. package/dist/vue/index.js.map +1 -1
  113. package/package.json +6 -1
  114. package/dist/chunk-3MUULXXZ.js +0 -2
  115. package/dist/chunk-3MUULXXZ.js.map +0 -1
  116. package/dist/chunk-7MBRAKBL.js +0 -2
  117. package/dist/chunk-7MBRAKBL.js.map +0 -1
  118. package/dist/chunk-ER2DNS7T.cjs +0 -2
  119. package/dist/chunk-ER2DNS7T.cjs.map +0 -1
  120. package/dist/chunk-FEW3ABPD.js.map +0 -1
  121. package/dist/chunk-JO37BU2C.cjs +0 -2
  122. package/dist/chunk-PA6T2CBR.cjs +0 -2
  123. package/dist/chunk-T3XN5O7V.cjs +0 -2
  124. package/dist/chunk-T3XN5O7V.cjs.map +0 -1
  125. package/dist/chunk-ULC4OPIQ.js +0 -2
  126. package/dist/chunk-ULC4OPIQ.js.map +0 -1
  127. package/dist/chunk-VDWCFNA6.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n} from \"../core/mask/field-binding\";\nimport type {\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: 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\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: any) => {\n const val = e?.target ? e.target.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<{\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n } | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const meta = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport 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 upload = useCallback(\n async (file: File | null | undefined) => {\n if (!file) return;\n\n setIsUploading(true);\n store.setError(fieldPath, undefined);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKeyRef.current = result.key;\n store.setError(fieldPath, undefined);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Upload failed\";\n store.setError(fieldPath, message);\n } finally {\n setIsUploading(false);\n }\n },\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(async () => {\n const uploadKey = uploadKeyRef.current;\n\n if (uploadKey && deleteFile) {\n try {\n await deleteFile(uploadKey);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Delete failed\";\n store.setError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKeyRef.current = null;\n store.setError(fieldPath, undefined);\n }, [deleteFile, field, fieldPath, store]);\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","upload","useCallback","file","result","error","message","remove","uploadKey"]}
1
+ {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n formatMaskedValue,\n parseMaskedInput,\n isBitFieldInputEventObject,\n} from \"../core/mask/field-binding\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path);\n\n const resolvedMask = useMemo(() => {\n return store.resolveMask(path as string);\n }, [store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(\n () => formatMaskedValue(fieldState.value, resolvedMask ?? undefined),\n [fieldState.value, resolvedMask],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) =>\n rawSetValue(\n parseMaskedInput(val, resolvedMask ?? undefined) as BitPathValue<\n TForm,\n P\n >,\n ),\n [resolvedMask, rawSetValue],\n );\n\n const { isHidden, isRequired, value, error, touched, isDirty, isValidating } =\n fieldState;\n\n const invalid = !!(touched && error);\n const visibleError = touched ? error : undefined;\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: visibleError,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError: !!error,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<{\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n } | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = store.getHistoryMetadata();\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n const stableMeta = {\n canUndo: nextMeta.canUndo,\n canRedo: nextMeta.canRedo,\n historyIndex: nextMeta.historyIndex,\n historySize: nextMeta.historySize,\n };\n\n lastMeta.current = stableMeta;\n return stableMeta;\n }, [store]);\n\n const meta = useSyncExternalStore(\n store.subscribe.bind(store),\n getSnapshot,\n getSnapshot,\n );\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","useBitField","path","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","displayValue","formatMaskedValue","setValue","useCallback","val","parseMaskedInput","isHidden","isRequired","value","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","isBitFieldInputEventObject","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","kernelCallbacks","path","msg","val","key","upload","useCallback","createUploadHandler","remove","createRemoveHandler"]}
@@ -1,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 _chunkT3XN5O7Vcjs = require('../chunk-T3XN5O7V.cjs');require('../chunk-NNKZFXEK.cjs');require('../chunk-JO37BU2C.cjs');var _chunkPA6T2CBRcjs = require('../chunk-PA6T2CBR.cjs');var _react = require('react');function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=_chunkT3XN5O7Vcjs.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, ()=>_chunkPA6T2CBRcjs.L.call(void 0, o.value,_nullishCoalesce(e, () => (void 0))),[o.value,e]),p=_react.useCallback.call(void 0, u=>t(_chunkPA6T2CBRcjs.M.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),x=_react.useCallback.call(void 0, u=>t(_chunkPA6T2CBRcjs.M.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 = _chunkT3XN5O7Vcjs.a; exports.useBitArray = _chunkT3XN5O7Vcjs.e; exports.useBitField = E; exports.useBitForm = _chunkT3XN5O7Vcjs.c; exports.useBitPersist = _chunkT3XN5O7Vcjs.i; exports.useBitScope = _chunkT3XN5O7Vcjs.f; exports.useBitSteps = _chunkT3XN5O7Vcjs.g; exports.useBitStore = _chunkT3XN5O7Vcjs.b; exports.useBitWatch = _chunkT3XN5O7Vcjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkZO3GXKF3cjs = require('../chunk-ZO3GXKF3.cjs');require('../chunk-RFFMBY7M.cjs');require('../chunk-LOYB7TTM.cjs');var _chunkEI5L5L3Rcjs = require('../chunk-EI5L5L3R.cjs');var _react = require('react');function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=_chunkZO3GXKF3cjs.d.call(void 0, r),e=_react.useMemo.call(void 0, ()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=_react.useMemo.call(void 0, ()=>_chunkEI5L5L3Rcjs.M.call(void 0, o.value,_nullishCoalesce(e, () => (void 0))),[o.value,e]),p=_react.useCallback.call(void 0, u=>t(_chunkEI5L5L3Rcjs.N.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),x=_react.useCallback.call(void 0, u=>t(_chunkEI5L5L3Rcjs.N.call(void 0, u,_nullishCoalesce(e, () => (void 0)))),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=_react.useCallback.call(void 0, ()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}exports.BitFormProvider = _chunkZO3GXKF3cjs.a; exports.useBitArray = _chunkZO3GXKF3cjs.e; exports.useBitField = E; exports.useBitForm = _chunkZO3GXKF3cjs.c; exports.useBitPersist = _chunkZO3GXKF3cjs.i; exports.useBitScope = _chunkZO3GXKF3cjs.f; exports.useBitSteps = _chunkZO3GXKF3cjs.g; exports.useBitStore = _chunkZO3GXKF3cjs.b; exports.useBitWatch = _chunkZO3GXKF3cjs.h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,11 @@
1
- export { B as BitFormProvider, e as UseBitPersistResult, u as useBitArray, g as useBitForm, h as useBitPersist, i as useBitScope, j as useBitSteps, k as useBitStore, l as useBitWatch } from '../use-bit-persist-DEWMhvit.cjs';
2
- import { k as BitPath, m as BitPathValue } from '../bus-CILR-ENq.cjs';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-CILR-ENq.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-Dt4zIl2u.cjs';
2
+ import { f as BitPath, g as BitPathValue } from '../bus-a_GA51Qw.cjs';
3
+ export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-a_GA51Qw.cjs';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../public-types-SU17BarA.cjs';
6
+ import '../public-types-D14VY_4o.cjs';
7
7
  import '../types-D8DgIUhJ.cjs';
8
+ import '../field-binding-BXw0Ku2c.cjs';
8
9
 
9
10
  /**
10
11
  * Metadata describing the current state of a form field (React Native).
@@ -1,10 +1,11 @@
1
- export { B as BitFormProvider, e as UseBitPersistResult, u as useBitArray, g as useBitForm, h as useBitPersist, i as useBitScope, j as useBitSteps, k as useBitStore, l as useBitWatch } from '../use-bit-persist-BlR-hHk6.js';
2
- import { k as BitPath, m as BitPathValue } from '../bus-DHQHDwUp.js';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-DHQHDwUp.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-CNtQ3Gaq.js';
2
+ import { f as BitPath, g as BitPathValue } from '../bus-BQI1FIOs.js';
3
+ export { S as ScopeStatus, n as ValidateScopeResult } from '../bus-BQI1FIOs.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../public-types-Bgws0aVJ.js';
6
+ import '../public-types-D3WIiMGu.js';
7
7
  import '../types-D8DgIUhJ.js';
8
+ import '../field-binding-BXw0Ku2c.js';
8
9
 
9
10
  /**
10
11
  * 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-3MUULXXZ.js";import"../chunk-FEW3ABPD.js";import"../chunk-ULC4OPIQ.js";import{L as f,M as l}from"../chunk-VDWCFNA6.js";import{useMemo as F,useCallback as d}from"react";function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=c(r),e=F(()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=F(()=>f(o.value,e??void 0),[o.value,e]),p=d(u=>t(l(u,e??void 0)),[e,t]),x=d(u=>t(l(u,e??void 0)),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=d(()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}export{S as BitFormProvider,R as useBitArray,E as useBitField,M as useBitForm,b as useBitPersist,U as useBitScope,N as useBitSteps,k as useBitStore,C as useBitWatch};
1
+ import{a as S,b as k,c as M,d as c,e as R,f as U,g as N,h as C,i as b}from"../chunk-66DIO2SH.js";import"../chunk-YGAD4ZZW.js";import"../chunk-AE4G32HS.js";import{M as f,N as l}from"../chunk-7LMNIQTT.js";import{useMemo as F,useCallback as d}from"react";function E(r){let{fieldState:o,setValue:t,setBlur:s,store:i}=c(r),e=F(()=>i.resolveMask(r),[i.config.masks,i.config.fields,r]),m=F(()=>f(o.value,e??void 0),[o.value,e]),p=d(u=>t(l(u,e??void 0)),[e,t]),x=d(u=>t(l(u,e??void 0)),[e,t]),{isHidden:P,isRequired:v,value:y,error:a,touched:n,isDirty:h,isValidating:V}=o,T=!!(n&&a),g=n?a:void 0,B=d(()=>{s()},[s]);return{value:y,displayValue:m,setValue:x,setBlur:s,onChangeText:p,onBlur:B,meta:{error:g,touched:n,invalid:T,isValidating:V,isDirty:h,isHidden:P,isRequired:v,hasError:!!a},props:{value:m,onChangeText:p,onBlur:B}}}export{S as BitFormProvider,R as useBitArray,E as useBitField,M as useBitForm,b as useBitPersist,U as useBitScope,N as useBitSteps,k as useBitStore,C as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMQX4YS6Dcjs = require('../chunk-MQX4YS6D.cjs');require('../chunk-MFSDDSVG.cjs');var _chunkYEXRRTI3cjs = require('../chunk-YEXRRTI3.cjs');var _chunkKYM7JG2Gcjs = require('../chunk-KYM7JG2G.cjs');require('../chunk-CFFLDMLG.cjs');exports.joiResolver = _chunkMQX4YS6Dcjs.a; exports.yupResolver = _chunkKYM7JG2Gcjs.a; exports.zodResolver = _chunkYEXRRTI3cjs.a;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +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"}
@@ -0,0 +1,9 @@
1
+ export { joiResolver } from './joi.cjs';
2
+ export { zodResolver } from './zod.cjs';
3
+ export { yupResolver } from './yup.cjs';
4
+ export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.cjs';
5
+ import 'joi';
6
+ import '../bus-a_GA51Qw.cjs';
7
+ import '../types-D8DgIUhJ.cjs';
8
+ import 'zod';
9
+ import 'yup';
@@ -0,0 +1,9 @@
1
+ export { joiResolver } from './joi.js';
2
+ export { zodResolver } from './zod.js';
3
+ export { yupResolver } from './yup.js';
4
+ export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.js';
5
+ import 'joi';
6
+ import '../bus-BQI1FIOs.js';
7
+ import '../types-D8DgIUhJ.js';
8
+ import 'zod';
9
+ import 'yup';
@@ -0,0 +1,2 @@
1
+ import{a as e}from"../chunk-BMHK77NL.js";import"../chunk-FQLJOSF7.js";import{a as o}from"../chunk-MBTLLIBM.js";import{a as r}from"../chunk-4XLU5ZCX.js";import"../chunk-K5NZDYAT.js";export{e as joiResolver,r as yupResolver,o as zodResolver};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkER2DNS7Tcjs = require('../chunk-ER2DNS7T.cjs');var m=(n,r)=>async(a,l)=>{let{error:o}=n.validate(a,{abortEarly:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _ => _.abortEarly]), () => (!1)),allowUnknown:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _2 => _2.allowUnknown]), () => (!1)),stripUnknown:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _3 => _3.stripUnknown]), () => (!1))});if(!o)return{};let e={};return o.details.forEach(t=>{let p=t.path.join(".");_chunkER2DNS7Tcjs.b.call(void 0, e,p,t.message)}),_chunkER2DNS7Tcjs.c.call(void 0, e,_optionalChain([l, 'optionalAccess', _4 => _4.scopeFields]))};exports.joiResolver = m;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMQX4YS6Dcjs = require('../chunk-MQX4YS6D.cjs');require('../chunk-CFFLDMLG.cjs');exports.joiResolver = _chunkMQX4YS6Dcjs.a;
2
2
  //# sourceMappingURL=joi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/joi.cjs","../../src/resolvers/joi.ts"],"names":["joiResolver","schema","config","values","options","error","errors","detail","path","setFirstError","filterErrorsByScope"],"mappings":"AAAA,0uBAAgD,ICKnCA,CAAAA,CAAc,CACzBC,CAAAA,CACAC,CAAAA,CAAAA,EAEO,KAAA,CACLC,CAAAA,CACAC,CAAAA,CAAAA,EAC0B,CAC1B,GAAM,CAAE,KAAA,CAAAC,CAAM,CAAA,CAAIJ,CAAAA,CAAO,QAAA,CAASE,CAAAA,CAAQ,CACxC,UAAA,kCAAYD,CAAAA,2BAAQ,YAAA,SAAc,CAAA,GAAA,CAClC,YAAA,kCAAcA,CAAAA,6BAAQ,cAAA,SAAgB,CAAA,GAAA,CACtC,YAAA,kCAAcA,CAAAA,6BAAQ,cAAA,SAAgB,CAAA,GACxC,CAAC,CAAA,CAED,EAAA,CAAI,CAACG,CAAAA,CAAO,MAAO,CAAC,CAAA,CAEpB,IAAMC,CAAAA,CAAuB,CAAC,CAAA,CAE9B,OAAAD,CAAAA,CAAM,OAAA,CAAQ,OAAA,CAASE,CAAAA,EAAW,CAChC,IAAMC,CAAAA,CAAOD,CAAAA,CAAO,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,CAEjCE,iCAAAA,CAAcH,CAAQE,CAAAA,CAAMD,CAAAA,CAAO,OAAO,CAC5C,CAAC,CAAA,CAEMG,iCAAAA,CAAoBJ,iBAAQF,CAAAA,6BAAS,aAAW,CACzD,CAAA,CAAA,wBAAA","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/joi.cjs","sourcesContent":[null,"import { ObjectSchema } from \"joi\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError } from \"./utils\";\nimport { BitJoiResolverConfig, BitResolverScopeOptions } from \"./types\";\n\nexport const joiResolver = <T extends object>(\n schema: ObjectSchema<T>,\n config?: BitJoiResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n const { error } = schema.validate(values, {\n abortEarly: config?.abortEarly ?? false,\n allowUnknown: config?.allowUnknown ?? false,\n stripUnknown: config?.stripUnknown ?? false,\n });\n\n if (!error) return {};\n\n const errors: BitErrors<T> = {};\n\n error.details.forEach((detail) => {\n const path = detail.path.join(\".\");\n\n setFirstError(errors, path, detail.message);\n });\n\n return filterErrorsByScope(errors, options?.scopeFields);\n };\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/joi.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iCAA8B,0CAAyB","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/joi.cjs"}
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { f as BitErrors } from '../bus-CILR-ENq.cjs';
2
+ import { i as BitErrors } from '../bus-a_GA51Qw.cjs';
3
3
  import { BitJoiResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
4
  import '../types-D8DgIUhJ.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { f as BitErrors } from '../bus-DHQHDwUp.js';
2
+ import { i as BitErrors } from '../bus-BQI1FIOs.js';
3
3
  import { BitJoiResolverConfig, BitResolverScopeOptions } from './types.js';
4
4
  import '../types-D8DgIUhJ.js';
5
5
 
@@ -1,2 +1,2 @@
1
- import{b as s,c as i}from"../chunk-7MBRAKBL.js";var m=(n,r)=>async(a,l)=>{let{error:o}=n.validate(a,{abortEarly:r?.abortEarly??!1,allowUnknown:r?.allowUnknown??!1,stripUnknown:r?.stripUnknown??!1});if(!o)return{};let e={};return o.details.forEach(t=>{let p=t.path.join(".");s(e,p,t.message)}),i(e,l?.scopeFields)};export{m as joiResolver};
1
+ import{a}from"../chunk-BMHK77NL.js";import"../chunk-K5NZDYAT.js";export{a as joiResolver};
2
2
  //# sourceMappingURL=joi.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/resolvers/joi.ts"],"sourcesContent":["import { ObjectSchema } from \"joi\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError } from \"./utils\";\nimport { BitJoiResolverConfig, BitResolverScopeOptions } from \"./types\";\n\nexport const joiResolver = <T extends object>(\n schema: ObjectSchema<T>,\n config?: BitJoiResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n const { error } = schema.validate(values, {\n abortEarly: config?.abortEarly ?? false,\n allowUnknown: config?.allowUnknown ?? false,\n stripUnknown: config?.stripUnknown ?? false,\n });\n\n if (!error) return {};\n\n const errors: BitErrors<T> = {};\n\n error.details.forEach((detail) => {\n const path = detail.path.join(\".\");\n\n setFirstError(errors, path, detail.message);\n });\n\n return filterErrorsByScope(errors, options?.scopeFields);\n };\n};\n"],"mappings":"gDAKO,IAAMA,EAAc,CACzBC,EACAC,IAEO,MACLC,EACAC,IAC0B,CAC1B,GAAM,CAAE,MAAAC,CAAM,EAAIJ,EAAO,SAASE,EAAQ,CACxC,WAAYD,GAAQ,YAAc,GAClC,aAAcA,GAAQ,cAAgB,GACtC,aAAcA,GAAQ,cAAgB,EACxC,CAAC,EAED,GAAI,CAACG,EAAO,MAAO,CAAC,EAEpB,IAAMC,EAAuB,CAAC,EAE9B,OAAAD,EAAM,QAAQ,QAASE,GAAW,CAChC,IAAMC,EAAOD,EAAO,KAAK,KAAK,GAAG,EAEjCE,EAAcH,EAAQE,EAAMD,EAAO,OAAO,CAC5C,CAAC,EAEMG,EAAoBJ,EAAQF,GAAS,WAAW,CACzD","names":["joiResolver","schema","config","values","options","error","errors","detail","path","setFirstError","filterErrorsByScope"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +1,2 @@
1
- "use strict";//# sourceMappingURL=types.cjs.map
1
+ "use strict";require('../chunk-MFSDDSVG.cjs');
2
+ //# sourceMappingURL=types.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/types.cjs"],"names":[],"mappings":"AAAA","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/types.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/types.cjs"],"names":[],"mappings":"AAAA,8CAA6B","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/types.cjs"}
@@ -1 +1,2 @@
1
+ import"../chunk-FQLJOSF7.js";
1
2
  //# sourceMappingURL=types.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkER2DNS7Tcjs = require('../chunk-ER2DNS7T.cjs');var _yup = require('yup');var u=(a,n)=>async(p,e)=>{let t={};if(_optionalChain([e, 'optionalAccess', _ => _.scopeFields])&&e.scopeFields.length>0)return await Promise.all(e.scopeFields.map(async o=>{try{await a.validateAt(o,p)}catch(r){r instanceof _yup.ValidationError&&r.path&&_chunkER2DNS7Tcjs.b.call(void 0, t,_chunkER2DNS7Tcjs.a.call(void 0, r.path),r.message)}})),t;try{return await a.validate(p,{abortEarly:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _2 => _2.abortEarly]), () => (!1)),stripUnknown:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _3 => _3.stripUnknown]), () => (!1))}),{}}catch(o){if(o instanceof _yup.ValidationError){for(let r of _nullishCoalesce(o.inner, () => ([])))r.path&&_chunkER2DNS7Tcjs.b.call(void 0, t,_chunkER2DNS7Tcjs.a.call(void 0, r.path),r.message);return _chunkER2DNS7Tcjs.c.call(void 0, t,_optionalChain([e, 'optionalAccess', _4 => _4.scopeFields]))}return{}}};exports.yupResolver = u;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKYM7JG2Gcjs = require('../chunk-KYM7JG2G.cjs');require('../chunk-CFFLDMLG.cjs');exports.yupResolver = _chunkKYM7JG2Gcjs.a;
2
2
  //# sourceMappingURL=yup.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/yup.cjs","../../src/resolvers/yup.ts"],"names":["yupResolver","schema","config","values","options","errors","field","error","ValidationError","setFirstError","normalizeErrorPath","item","filterErrorsByScope"],"mappings":"AAAA,0uBAAuD,0BCAf,IAS3BA,CAAAA,CAAc,CACzBC,CAAAA,CACAC,CAAAA,CAAAA,EAEO,KAAA,CACLC,CAAAA,CACAC,CAAAA,CAAAA,EAC0B,CAC1B,IAAMC,CAAAA,CAAuB,CAAC,CAAA,CAE9B,EAAA,iBAAID,CAAAA,2BAAS,aAAA,EAAeA,CAAAA,CAAQ,WAAA,CAAY,MAAA,CAAS,CAAA,CACvD,OAAA,MAAM,OAAA,CAAQ,GAAA,CACZA,CAAAA,CAAQ,WAAA,CAAY,GAAA,CAAI,MAAOE,CAAAA,EAAU,CACvC,GAAI,CACF,MAAML,CAAAA,CAAO,UAAA,CAAWK,CAAAA,CAAOH,CAAM,CACvC,CAAA,KAAA,CAASI,CAAAA,CAAgB,CACnBA,EAAAA,WAAiBC,oBAAAA,EAAmBD,CAAAA,CAAM,IAAA,EAC5CE,iCAAAA,CACEJ,CACAK,iCAAAA,CAAmBH,CAAM,IAAI,CAAA,CAC7BA,CAAAA,CAAM,OACR,CAEJ,CACF,CAAC,CACH,CAAA,CACOF,CAAAA,CAGT,GAAI,CACF,OAAA,MAAMJ,CAAAA,CAAO,QAAA,CAASE,CAAAA,CAAQ,CAC5B,UAAA,kCAAYD,CAAAA,6BAAQ,YAAA,SAAc,CAAA,GAAA,CAClC,YAAA,kCAAcA,CAAAA,6BAAQ,cAAA,SAAgB,CAAA,GACxC,CAAC,CAAA,CACM,CAAC,CACV,CAAA,KAAA,CAASK,CAAAA,CAAgB,CACvB,EAAA,CAAIA,EAAAA,WAAiBC,oBAAAA,CAAiB,CACpC,GAAA,CAAA,IAAWG,EAAAA,oBAAQJ,CAAAA,CAAM,KAAA,SAAS,CAAC,GAAA,CAC7BI,CAAAA,CAAK,IAAA,EACPF,iCAAAA,CAAcJ,CAAQK,iCAAAA,CAAmBC,CAAK,IAAI,CAAA,CAAGA,CAAAA,CAAK,OAAO,CAAA,CAIrE,OAAOC,iCAAAA,CAAoBP,iBAAQD,CAAAA,6BAAS,aAAW,CACzD,CAEA,MAAO,CAAC,CACV,CACF,CAAA,CAAA,wBAAA","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/yup.cjs","sourcesContent":[null,"import { ValidationError, Schema } from \"yup\";\nimport { BitErrors } from \"../core\";\nimport {\n filterErrorsByScope,\n normalizeErrorPath,\n setFirstError,\n} from \"./utils\";\nimport { BitResolverScopeOptions, BitYupResolverConfig } from \"./types\";\n\nexport const yupResolver = <T extends object>(\n schema: Schema<T>,\n config?: BitYupResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n const errors: BitErrors<T> = {};\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n await Promise.all(\n options.scopeFields.map(async (field) => {\n try {\n await schema.validateAt(field, values);\n } catch (error: unknown) {\n if (error instanceof ValidationError && error.path) {\n setFirstError(\n errors,\n normalizeErrorPath(error.path),\n error.message,\n );\n }\n }\n }),\n );\n return errors;\n }\n\n try {\n await schema.validate(values, {\n abortEarly: config?.abortEarly ?? false,\n stripUnknown: config?.stripUnknown ?? false,\n });\n return {};\n } catch (error: unknown) {\n if (error instanceof ValidationError) {\n for (const item of error.inner ?? []) {\n if (item.path) {\n setFirstError(errors, normalizeErrorPath(item.path), item.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n\n return {};\n }\n };\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/yup.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iCAA8B,0CAAyB","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/yup.cjs"}
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { f as BitErrors } from '../bus-CILR-ENq.cjs';
2
+ import { i as BitErrors } from '../bus-a_GA51Qw.cjs';
3
3
  import { BitYupResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
4
  import '../types-D8DgIUhJ.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { f as BitErrors } from '../bus-DHQHDwUp.js';
2
+ import { i as BitErrors } from '../bus-BQI1FIOs.js';
3
3
  import { BitYupResolverConfig, BitResolverScopeOptions } from './types.js';
4
4
  import '../types-D8DgIUhJ.js';
5
5
 
@@ -1,2 +1,2 @@
1
- import{a as i,b as s,c as l}from"../chunk-7MBRAKBL.js";import{ValidationError as c}from"yup";var u=(a,n)=>async(p,e)=>{let t={};if(e?.scopeFields&&e.scopeFields.length>0)return await Promise.all(e.scopeFields.map(async o=>{try{await a.validateAt(o,p)}catch(r){r instanceof c&&r.path&&s(t,i(r.path),r.message)}})),t;try{return await a.validate(p,{abortEarly:n?.abortEarly??!1,stripUnknown:n?.stripUnknown??!1}),{}}catch(o){if(o instanceof c){for(let r of o.inner??[])r.path&&s(t,i(r.path),r.message);return l(t,e?.scopeFields)}return{}}};export{u as yupResolver};
1
+ import{a}from"../chunk-4XLU5ZCX.js";import"../chunk-K5NZDYAT.js";export{a as yupResolver};
2
2
  //# sourceMappingURL=yup.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/resolvers/yup.ts"],"sourcesContent":["import { ValidationError, Schema } from \"yup\";\nimport { BitErrors } from \"../core\";\nimport {\n filterErrorsByScope,\n normalizeErrorPath,\n setFirstError,\n} from \"./utils\";\nimport { BitResolverScopeOptions, BitYupResolverConfig } from \"./types\";\n\nexport const yupResolver = <T extends object>(\n schema: Schema<T>,\n config?: BitYupResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n const errors: BitErrors<T> = {};\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n await Promise.all(\n options.scopeFields.map(async (field) => {\n try {\n await schema.validateAt(field, values);\n } catch (error: unknown) {\n if (error instanceof ValidationError && error.path) {\n setFirstError(\n errors,\n normalizeErrorPath(error.path),\n error.message,\n );\n }\n }\n }),\n );\n return errors;\n }\n\n try {\n await schema.validate(values, {\n abortEarly: config?.abortEarly ?? false,\n stripUnknown: config?.stripUnknown ?? false,\n });\n return {};\n } catch (error: unknown) {\n if (error instanceof ValidationError) {\n for (const item of error.inner ?? []) {\n if (item.path) {\n setFirstError(errors, normalizeErrorPath(item.path), item.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n\n return {};\n }\n };\n};\n"],"mappings":"uDAAA,OAAS,mBAAAA,MAA+B,MASjC,IAAMC,EAAc,CACzBC,EACAC,IAEO,MACLC,EACAC,IAC0B,CAC1B,IAAMC,EAAuB,CAAC,EAE9B,GAAID,GAAS,aAAeA,EAAQ,YAAY,OAAS,EACvD,aAAM,QAAQ,IACZA,EAAQ,YAAY,IAAI,MAAOE,GAAU,CACvC,GAAI,CACF,MAAML,EAAO,WAAWK,EAAOH,CAAM,CACvC,OAASI,EAAgB,CACnBA,aAAiBC,GAAmBD,EAAM,MAC5CE,EACEJ,EACAK,EAAmBH,EAAM,IAAI,EAC7BA,EAAM,OACR,CAEJ,CACF,CAAC,CACH,EACOF,EAGT,GAAI,CACF,aAAMJ,EAAO,SAASE,EAAQ,CAC5B,WAAYD,GAAQ,YAAc,GAClC,aAAcA,GAAQ,cAAgB,EACxC,CAAC,EACM,CAAC,CACV,OAASK,EAAgB,CACvB,GAAIA,aAAiBC,EAAiB,CACpC,QAAWG,KAAQJ,EAAM,OAAS,CAAC,EAC7BI,EAAK,MACPF,EAAcJ,EAAQK,EAAmBC,EAAK,IAAI,EAAGA,EAAK,OAAO,EAIrE,OAAOC,EAAoBP,EAAQD,GAAS,WAAW,CACzD,CAEA,MAAO,CAAC,CACV,CACF","names":["ValidationError","yupResolver","schema","config","values","options","errors","field","error","ValidationError","setFirstError","normalizeErrorPath","item","filterErrorsByScope"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkER2DNS7Tcjs = require('../chunk-ER2DNS7T.cjs');var _zod = require('zod');var l=(i,m)=>async(n,c)=>{try{return await i.parseAsync(n),{}}catch(r){let o={};if(r instanceof _zod.ZodError)for(let e of r.issues){let p=e.path.join(".");_chunkER2DNS7Tcjs.b.call(void 0, o,p,e.message)}return _chunkER2DNS7Tcjs.c.call(void 0, o,_optionalChain([c, 'optionalAccess', _ => _.scopeFields]))}};exports.zodResolver = l;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYEXRRTI3cjs = require('../chunk-YEXRRTI3.cjs');require('../chunk-CFFLDMLG.cjs');exports.zodResolver = _chunkYEXRRTI3cjs.a;
2
2
  //# sourceMappingURL=zod.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs","../../src/resolvers/zod.ts"],"names":["zodResolver","schema","_config","values","options","error","errors","ZodError","issue","path","setFirstError","filterErrorsByScope"],"mappings":"AAAA,soBAAgD,0BCAZ,IAKvBA,CAAAA,CAAc,CACzBC,CAAAA,CACAC,CAAAA,CAAAA,EAEO,KAAA,CACLC,CAAAA,CACAC,CAAAA,CAAAA,EAC0B,CAC1B,GAAI,CACF,OAAA,MAAMH,CAAAA,CAAO,UAAA,CAAWE,CAAM,CAAA,CACvB,CAAC,CACV,CAAA,KAAA,CAASE,CAAAA,CAAgB,CACvB,IAAMC,CAAAA,CAAuB,CAAC,CAAA,CAE9B,EAAA,CAAID,EAAAA,WAAiBE,aAAAA,CACnB,GAAA,CAAA,IAAWC,EAAAA,GAASH,CAAAA,CAAM,MAAA,CAAQ,CAChC,IAAMI,CAAAA,CAAOD,CAAAA,CAAM,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,CAChCE,iCAAAA,CAAcJ,CAAQG,CAAAA,CAAMD,CAAAA,CAAM,OAAO,CAC3C,CAGF,OAAOG,iCAAAA,CAAoBL,iBAAQF,CAAAA,2BAAS,aAAW,CACzD,CACF,CAAA,CAAA,wBAAA","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs","sourcesContent":[null,"import { ZodError, ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError } from \"./utils\";\nimport { BitResolverScopeOptions, BitZodResolverConfig } from \"./types\";\n\nexport const zodResolver = <T extends object>(\n schema: ZodSchema<T>,\n _config?: BitZodResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (error: unknown) {\n const errors: BitErrors<T> = {};\n\n if (error instanceof ZodError) {\n for (const issue of error.issues) {\n const path = issue.path.join(\".\");\n setFirstError(errors, path, issue.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n };\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iCAA8B,0CAAyB","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs"}
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { f as BitErrors } from '../bus-CILR-ENq.cjs';
2
+ import { i as BitErrors } from '../bus-a_GA51Qw.cjs';
3
3
  import { BitZodResolverConfig, BitResolverScopeOptions } from './types.cjs';
4
4
  import '../types-D8DgIUhJ.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { f as BitErrors } from '../bus-DHQHDwUp.js';
2
+ import { i as BitErrors } from '../bus-BQI1FIOs.js';
3
3
  import { BitZodResolverConfig, BitResolverScopeOptions } from './types.js';
4
4
  import '../types-D8DgIUhJ.js';
5
5
 
@@ -1,2 +1,2 @@
1
- import{b as s,c as t}from"../chunk-7MBRAKBL.js";import{ZodError as f}from"zod";var l=(i,m)=>async(n,c)=>{try{return await i.parseAsync(n),{}}catch(r){let o={};if(r instanceof f)for(let e of r.issues){let p=e.path.join(".");s(o,p,e.message)}return t(o,c?.scopeFields)}};export{l as zodResolver};
1
+ import{a}from"../chunk-MBTLLIBM.js";import"../chunk-K5NZDYAT.js";export{a as zodResolver};
2
2
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/resolvers/zod.ts"],"sourcesContent":["import { ZodError, ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError } from \"./utils\";\nimport { BitResolverScopeOptions, BitZodResolverConfig } from \"./types\";\n\nexport const zodResolver = <T extends object>(\n schema: ZodSchema<T>,\n _config?: BitZodResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (error: unknown) {\n const errors: BitErrors<T> = {};\n\n if (error instanceof ZodError) {\n for (const issue of error.issues) {\n const path = issue.path.join(\".\");\n setFirstError(errors, path, issue.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n };\n};\n"],"mappings":"gDAAA,OAAS,YAAAA,MAA2B,MAK7B,IAAMC,EAAc,CACzBC,EACAC,IAEO,MACLC,EACAC,IAC0B,CAC1B,GAAI,CACF,aAAMH,EAAO,WAAWE,CAAM,EACvB,CAAC,CACV,OAASE,EAAgB,CACvB,IAAMC,EAAuB,CAAC,EAE9B,GAAID,aAAiBE,EACnB,QAAWC,KAASH,EAAM,OAAQ,CAChC,IAAMI,EAAOD,EAAM,KAAK,KAAK,GAAG,EAChCE,EAAcJ,EAAQG,EAAMD,EAAM,OAAO,CAC3C,CAGF,OAAOG,EAAoBL,EAAQF,GAAS,WAAW,CACzD,CACF","names":["ZodError","zodResolver","schema","_config","values","options","error","errors","ZodError","issue","path","setFirstError","filterErrorsByScope"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -14,4 +14,4 @@ type BitUploadFn = (file: File) => Promise<BitUploadResult>;
14
14
  /** Optional delete function contract. */
15
15
  type BitDeleteUploadFn = (key: string) => Promise<void>;
16
16
 
17
- export type { BitDeleteUploadFn as B, BitUploadFn as a, BitUploadResult as b };
17
+ export type { BitUploadFn as B, BitDeleteUploadFn as a, BitUploadResult as b };
@@ -14,4 +14,4 @@ type BitUploadFn = (file: File) => Promise<BitUploadResult>;
14
14
  /** Optional delete function contract. */
15
15
  type BitDeleteUploadFn = (key: string) => Promise<void>;
16
16
 
17
- export type { BitDeleteUploadFn as B, BitUploadFn as a, BitUploadResult as b };
17
+ export type { BitUploadFn as B, BitDeleteUploadFn as a, BitUploadResult as b };
@@ -1,7 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, i as BitPersistMetadata, a as BitValidationOptions } from './public-types-SU17BarA.cjs';
4
- import { k as BitPath, m as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, f as BitErrors, A as BitTouched, D as DeepPartial, o as BitArrayPath, p as BitArrayItem } from './bus-CILR-ENq.cjs';
3
+ import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, a as BitValidationOptions } from './public-types-D3WIiMGu.js';
4
+ import { f as BitPath, g as BitPathValue, j as BitPersistMetadata, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, H as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem } from './bus-BQI1FIOs.js';
5
+ import { B as BitFieldInputEvent } from './field-binding-BXw0Ku2c.js';
5
6
 
6
7
  declare const BitFormProvider: ({ store, children, }: {
7
8
  store: BitStoreApi<any>;
@@ -27,7 +28,7 @@ interface UseBitFieldMeta {
27
28
  */
28
29
  interface UseBitFieldBindProps {
29
30
  value: string;
30
- onChange: (e: any) => void;
31
+ onChange: (e: BitFieldInputEvent) => void;
31
32
  onBlur: () => void;
32
33
  }
33
34
  /**
@@ -37,9 +38,9 @@ interface UseBitFieldBindProps {
37
38
  interface UseBitFieldResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
38
39
  value: BitPathValue<TForm, P>;
39
40
  displayValue: string;
40
- setValue: (val: any) => void;
41
+ setValue: (val: BitPathValue<TForm, P> | string | number | null | undefined) => void;
41
42
  setBlur: () => void;
42
- onChange: (e: any) => void;
43
+ onChange: (e: BitFieldInputEvent) => void;
43
44
  onBlur: () => void;
44
45
  props: UseBitFieldBindProps;
45
46
  meta: UseBitFieldMeta;
@@ -160,4 +161,4 @@ declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm
160
161
 
161
162
  declare function useBitPersist(): UseBitPersistResult;
162
163
 
163
- export { BitFormProvider as B, type UseBitFieldResult as U, type UseBitHistoryResult as a, type UseBitUploadResult as b, type UseBitFieldBindProps as c, type UseBitFieldMeta as d, type UseBitPersistResult as e, type UseBitStepsResult as f, useBitForm as g, useBitPersist as h, useBitScope as i, useBitSteps as j, useBitStore as k, useBitWatch as l, useBitArray as u };
164
+ export { BitFormProvider as B, type UseBitPersistResult as U, useBitForm as a, useBitPersist as b, useBitScope as c, useBitSteps as d, useBitStore as e, useBitWatch as f, type UseBitFieldResult as g, type UseBitHistoryResult as h, type UseBitUploadResult as i, type UseBitFieldBindProps as j, type UseBitFieldMeta as k, type UseBitStepsResult as l, useBitArray as u };
@@ -1,7 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, i as BitPersistMetadata, a as BitValidationOptions } from './public-types-Bgws0aVJ.js';
4
- import { k as BitPath, m as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, f as BitErrors, A as BitTouched, D as DeepPartial, o as BitArrayPath, p as BitArrayItem } from './bus-DHQHDwUp.js';
3
+ import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, a as BitValidationOptions } from './public-types-D14VY_4o.cjs';
4
+ import { f as BitPath, g as BitPathValue, j as BitPersistMetadata, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, H as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem } from './bus-a_GA51Qw.cjs';
5
+ import { B as BitFieldInputEvent } from './field-binding-BXw0Ku2c.cjs';
5
6
 
6
7
  declare const BitFormProvider: ({ store, children, }: {
7
8
  store: BitStoreApi<any>;
@@ -27,7 +28,7 @@ interface UseBitFieldMeta {
27
28
  */
28
29
  interface UseBitFieldBindProps {
29
30
  value: string;
30
- onChange: (e: any) => void;
31
+ onChange: (e: BitFieldInputEvent) => void;
31
32
  onBlur: () => void;
32
33
  }
33
34
  /**
@@ -37,9 +38,9 @@ interface UseBitFieldBindProps {
37
38
  interface UseBitFieldResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
38
39
  value: BitPathValue<TForm, P>;
39
40
  displayValue: string;
40
- setValue: (val: any) => void;
41
+ setValue: (val: BitPathValue<TForm, P> | string | number | null | undefined) => void;
41
42
  setBlur: () => void;
42
- onChange: (e: any) => void;
43
+ onChange: (e: BitFieldInputEvent) => void;
43
44
  onBlur: () => void;
44
45
  props: UseBitFieldBindProps;
45
46
  meta: UseBitFieldMeta;
@@ -160,4 +161,4 @@ declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm
160
161
 
161
162
  declare function useBitPersist(): UseBitPersistResult;
162
163
 
163
- export { BitFormProvider as B, type UseBitFieldResult as U, type UseBitHistoryResult as a, type UseBitUploadResult as b, type UseBitFieldBindProps as c, type UseBitFieldMeta as d, type UseBitPersistResult as e, type UseBitStepsResult as f, useBitForm as g, useBitPersist as h, useBitScope as i, useBitSteps as j, useBitStore as k, useBitWatch as l, useBitArray as u };
164
+ export { BitFormProvider as B, type UseBitPersistResult as U, useBitForm as a, useBitPersist as b, useBitScope as c, useBitSteps as d, useBitStore as e, useBitWatch as f, type UseBitFieldResult as g, type UseBitHistoryResult as h, type UseBitUploadResult as i, type UseBitFieldBindProps as j, type UseBitFieldMeta as k, type UseBitStepsResult as l, useBitArray as u };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkNNKZFXEKcjs = require('../chunk-NNKZFXEK.cjs');var _chunkJO37BU2Ccjs = require('../chunk-JO37BU2C.cjs');require('../chunk-PA6T2CBR.cjs');var _vue = require('vue');var q=Symbol("BIT_STORE");function Y(e){_vue.provide.call(void 0, q,_chunkJO37BU2Ccjs.l.call(void 0, e))}function c(){let e=_vue.inject.call(void 0, q);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function Q(){let e=c(),t=_vue.shallowRef.call(void 0, {isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),i=_vue.ref.call(void 0, null),r=_vue.ref.call(void 0, null),s=e.subscribeSelector(m=>({isValid:m.isValid,isSubmitting:m.isSubmitting,isDirty:m.isDirty}),m=>{t.value=m});_vue.onUnmounted.call(void 0, s);let n=_chunkNNKZFXEKcjs.a.call(void 0, e,{clearSubmissionState:()=>{i.value=null,r.value=null},setSubmissionResult:m=>{r.value=m},setSubmissionError:m=>{i.value=m}}),d=_vue.computed.call(void 0, ()=>t.value.isValid),u=_vue.computed.call(void 0, ()=>t.value.isSubmitting),f=_vue.computed.call(void 0, ()=>t.value.isDirty),o=n.onSubmit,a=n.reset;return{meta:{isValid:d,isDirty:f,isSubmitting:u,submitError:i,lastResponse:r},getValues:n.getValues,getErrors:n.getErrors,getTouched:n.getTouched,getDirtyValues:n.getDirtyValues,submit:n.submit,onSubmit:o,reset:a,replaceValues:e.replaceValues.bind(e),hydrate:e.hydrate.bind(e),rebase:e.rebase.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),validate:e.validate.bind(e)}}function U(e){let t=c(),i=t.resolveMask(e),r=_chunkNNKZFXEKcjs.c.call(void 0, t,e,i),s=_vue.shallowRef.call(void 0, t.getFieldState(e)),n=_chunkNNKZFXEKcjs.b.call(void 0, t,e,g=>{s.value=g});_vue.onUnmounted.call(void 0, ()=>{n(),t.unregisterField&&t.unregisterField(e)});let d=_vue.computed.call(void 0, ()=>s.value.value),u=_vue.computed.call(void 0, ()=>r.displayValue(d.value)),f=_vue.computed.call(void 0, {get:()=>u.value,set:g=>{r.setValue(g)}}),o=_vue.computed.call(void 0, ()=>s.value.error),a=_vue.computed.call(void 0, ()=>s.value.touched?s.value.error:void 0),l=_vue.computed.call(void 0, ()=>s.value.touched),m=_vue.computed.call(void 0, ()=>!!(l.value&&a.value)),b=_vue.computed.call(void 0, ()=>s.value.isValidating),P=_vue.computed.call(void 0, ()=>s.value.isDirty),E=_vue.computed.call(void 0, ()=>s.value.isHidden),T=_vue.computed.call(void 0, ()=>s.value.isRequired),x=_vue.computed.call(void 0, ()=>!!o.value),p=g=>{r.setValue(g)},y=()=>r.setBlur();return{value:d,displayValue:u,modelValue:f,setValue:p,setBlur:y,onInput:g=>{p(g)},onBlur:()=>{y()},meta:{error:a,touched:l,invalid:m,isValidating:b,isDirty:P,isHidden:E,isRequired:T,hasError:x}}}var S=()=>Math.random().toString(36).substring(2,9);function ee(e){let t=c(),r=(()=>{let o=_chunkJO37BU2Ccjs.e.call(void 0, t.getState().values,e);return Array.isArray(o)?o:[]})(),s=_vue.ref.call(void 0, r),n=_vue.ref.call(void 0, r.map(S)),d=t.subscribePath(e,o=>{let a=Array.isArray(o)?o:[];if(s.value=[...a],a.length!==n.value.length){let l=[...n.value];if(a.length>l.length){let m=a.length-l.length,b=Array.from({length:m},S);n.value=[...l,...b]}else n.value=l.slice(0,a.length)}});_vue.onUnmounted.call(void 0, ()=>{d(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=_vue.computed.call(void 0, ()=>s.value.map((o,a)=>({key:n.value[a]||`temp-${a}`,value:o,index:a}))),f=_vue.computed.call(void 0, ()=>s.value.length);return{fields:u,length:f,append:o=>{n.value.push(S()),t.pushItem(e,o)},prepend:o=>{n.value.unshift(S()),t.prependItem(e,o)},insert:(o,a)=>{n.value.splice(o,0,S()),t.insertItem(e,o,a)},remove:o=>{n.value.splice(o,1),t.removeItem(e,o)},move:(o,a)=>{let l=[...n.value],[m]=l.splice(o,1);l.splice(a,0,m),n.value=l,t.moveItem(e,o,a)},swap:(o,a)=>{let l=[...n.value];[l[o],l[a]]=[l[a],l[o]],n.value=l,t.swapItems(e,o,a)},replace:o=>{n.value=o.map(S),t.setField(e,o)},clear:()=>{n.value=[],t.setField(e,[])}}}function se(){let e=c(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),i=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, i);let r=()=>e.undo(),s=()=>e.redo();return{canUndo:_vue.computed.call(void 0, ()=>t.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>t.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>t.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>t.value.historySize),undo:r,redo:s}}function ae(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length!==r.length?!1:i.every(s=>e[s]===t[s])}function ue(e){let t=c(),i=_vue.ref.call(void 0, t.getStepStatus(e)),r;_vue.onMounted.call(void 0, ()=>{r=t.subscribe(()=>{let o=t.getStepStatus(e);(o.hasErrors!==i.value.hasErrors||o.isDirty!==i.value.isDirty||!ae(o.errors,i.value.errors))&&(i.value=o)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([r, 'optionalCall', _2 => _2()])});let s=async()=>{let o=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:o,errors:a}},n=()=>t.getStepErrors(e),d=_vue.computed.call(void 0, ()=>!i.value.hasErrors),u=_vue.computed.call(void 0, ()=>i.value.isDirty),f=_vue.computed.call(void 0, ()=>i.value.errors);return{scopeName:e,status:i,errors:f,validate:s,getErrors:n,isValid:d,isDirty:u}}function de(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length!==r.length?!1:i.every(s=>e[s]===t[s])}function pe(e){let t=c(),i=_vue.ref.call(void 0, 0),r=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[i.value], () => (""))),s=_vue.ref.call(void 0, t.getStepStatus(r.value)),n;_vue.watch.call(void 0, r,p=>{s.value=t.getStepStatus(p)});let d=()=>{let p=r.value,y=t.getStepStatus(p);(y.hasErrors!==s.value.hasErrors||y.isDirty!==s.value.isDirty||!de(y.errors,s.value.errors))&&(s.value=y)};_vue.onMounted.call(void 0, ()=>{n=t.subscribe(d)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([n, 'optionalCall', _3 => _3()])});let u=async()=>{let p=r.value,y=await t.validate({scope:p}),h=t.getStepErrors(p);return{valid:y,errors:h}},f=()=>t.getStepErrors(r.value),o=async()=>{let p=r.value,y=t.getScopeFields(p);if(t.hasValidationsInProgress(y))return!1;let h=await t.validate({scope:p});if(h)i.value=Math.min(i.value+1,e.length-1);else{let D=t.getStepErrors(p),g=Object.keys(D);g.length>0&&t.markFieldsTouched(g)}return h},a=()=>{i.value=Math.max(i.value-1,0)},l=p=>{i.value=Math.max(0,Math.min(p-1,e.length-1))},m=_vue.computed.call(void 0, ()=>i.value+1),b=_vue.computed.call(void 0, ()=>i.value===0),P=_vue.computed.call(void 0, ()=>i.value>=e.length-1),E=_vue.computed.call(void 0, ()=>!s.value.hasErrors),T=_vue.computed.call(void 0, ()=>s.value.isDirty),x=_vue.computed.call(void 0, ()=>s.value.errors);return{step:m,stepIndex:i,scope:r,next:o,prev:a,goTo:l,isFirst:b,isLast:P,status:s,errors:x,isValid:E,isDirty:T,validate:u,getErrors:f}}function ge(e){let t=c(),i=_chunkJO37BU2Ccjs.e.call(void 0, t.getState().values,e),r=_vue.ref.call(void 0, i),s=t.watch(e,n=>{_chunkJO37BU2Ccjs.d.call(void 0, r.value,n)||(r.value=n)});return _vue.onUnmounted.call(void 0, s),_vue.readonly.call(void 0, r)}function Se(e,t,i){let r=c(),s=U(e),n=null,d=_vue.ref.call(void 0, !1),u=async o=>{if(o){d.value=!0,r.setError(e,void 0);try{let a=await t(o);s.setValue(a.url),n=a.key,r.setError(e,void 0)}catch(a){let l=a instanceof Error?a.message:"Upload failed";r.setError(e,l)}finally{d.value=!1}}},f=async()=>{if(n&&i)try{await i(n)}catch(o){let a=o instanceof Error?o.message:"Delete failed";r.setError(e,a);return}s.setValue(null),n=null,r.setError(e,void 0)};return{value:s.value,setValue:s.setValue,error:_vue.computed.call(void 0, ()=>s.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>!!s.meta.isValidating.value||d.value),upload:u,remove:f}}function be(){let e=c(),t=_vue.ref.call(void 0, !1),i=_vue.ref.call(void 0, !1),r=_vue.ref.call(void 0, null);return{restore:async()=>{i.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{i.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:_vue.readonly.call(void 0, t),isRestoring:_vue.readonly.call(void 0, i),error:_vue.readonly.call(void 0, r)}}}exports.provideBitStore = Y; exports.useBitArray = ee; exports.useBitField = U; exports.useBitForm = Q; exports.useBitHistory = se; exports.useBitPersist = be; exports.useBitScope = ue; exports.useBitSteps = pe; exports.useBitStore = c; exports.useBitUpload = Se; exports.useBitWatch = ge;
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 _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');var _chunkRFFMBY7Mcjs = require('../chunk-RFFMBY7M.cjs');var _chunkLOYB7TTMcjs = require('../chunk-LOYB7TTM.cjs');require('../chunk-EI5L5L3R.cjs');var _vue = require('vue');var C=Symbol("BIT_STORE");function Y(e){_vue.provide.call(void 0, C,_chunkLOYB7TTMcjs.k.call(void 0, e))}function m(){let e=_vue.inject.call(void 0, C);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function Q(){let e=m(),t=_vue.shallowRef.call(void 0, {isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),s=_vue.ref.call(void 0, null),i=_vue.ref.call(void 0, null),o=e.subscribeSelector(a=>({isValid:a.isValid,isSubmitting:a.isSubmitting,isDirty:a.isDirty}),a=>{t.value=a});_vue.onUnmounted.call(void 0, o);let l=_chunkRFFMBY7Mcjs.a.call(void 0, e,{clearSubmissionState:()=>{s.value=null,i.value=null},setSubmissionResult:a=>{i.value=a},setSubmissionError:a=>{s.value=a}}),n=_vue.computed.call(void 0, ()=>t.value.isValid),p=_vue.computed.call(void 0, ()=>t.value.isSubmitting),f=_vue.computed.call(void 0, ()=>t.value.isDirty),c=l.onSubmit,r=l.reset;return{meta:{isValid:n,isDirty:f,isSubmitting:p,submitError:s,lastResponse:i},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:c,reset:r,replaceValues:e.replaceValues.bind(e),hydrate:e.hydrate.bind(e),rebase:e.rebase.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),validate:e.validate.bind(e)}}function U(e){let t=m(),s=t.resolveMask(e),i=_chunkRFFMBY7Mcjs.c.call(void 0, t,e,s),o=_vue.shallowRef.call(void 0, t.getFieldState(e)),l=_chunkRFFMBY7Mcjs.b.call(void 0, t,e,y=>{o.value=y});_vue.onUnmounted.call(void 0, ()=>{l(),t.unregisterField&&t.unregisterField(e)});let n=_vue.computed.call(void 0, ()=>o.value.value),p=_vue.computed.call(void 0, ()=>i.displayValue(n.value)),f=_vue.computed.call(void 0, {get:()=>p.value,set:y=>{i.setValue(y)}}),c=_vue.computed.call(void 0, ()=>o.value.error),r=_vue.computed.call(void 0, ()=>o.value.touched?o.value.error:void 0),u=_vue.computed.call(void 0, ()=>o.value.touched),a=_vue.computed.call(void 0, ()=>!!(u.value&&r.value)),B=_vue.computed.call(void 0, ()=>o.value.isValidating),b=_vue.computed.call(void 0, ()=>o.value.isDirty),P=_vue.computed.call(void 0, ()=>o.value.isHidden),h=_vue.computed.call(void 0, ()=>o.value.isRequired),x=_vue.computed.call(void 0, ()=>!!c.value),d=y=>{i.setValue(y)},g=()=>i.setBlur();return{value:n,displayValue:p,modelValue:f,setValue:d,setBlur:g,onInput:y=>{d(y)},onBlur:()=>{g()},meta:{error:r,touched:u,invalid:a,isValidating:B,isDirty:b,isHidden:P,isRequired:h,hasError:x}}}function ee(e){let t=m(),s=r=>t.config.idFactory({scope:"array",path:e,index:r}),o=(()=>{let r=_chunkLOYB7TTMcjs.e.call(void 0, t.getState().values,e);return Array.isArray(r)?r:[]})(),l=_vue.ref.call(void 0, o),n=_vue.ref.call(void 0, o.map((r,u)=>s(u))),p=t.subscribePath(e,r=>{let u=Array.isArray(r)?r:[];if(l.value=[...u],u.length!==n.value.length){let a=[...n.value];if(u.length>a.length){let B=u.length-a.length,b=Array.from({length:B},(P,h)=>s(a.length+h));n.value=[...a,...b]}else n.value=a.slice(0,u.length)}});_vue.onUnmounted.call(void 0, ()=>{p(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=_vue.computed.call(void 0, ()=>l.value.map((r,u)=>({key:n.value[u]||`temp-${u}`,value:r,index:u}))),c=_vue.computed.call(void 0, ()=>l.value.length);return{fields:f,length:c,append:r=>{n.value.push(s(n.value.length)),t.pushItem(e,r)},prepend:r=>{n.value.unshift(s(0)),t.prependItem(e,r)},insert:(r,u)=>{n.value.splice(r,0,s(r)),t.insertItem(e,r,u)},remove:r=>{n.value.splice(r,1),t.removeItem(e,r)},move:(r,u)=>{let a=[...n.value],[B]=a.splice(r,1);a.splice(u,0,B),n.value=a,t.moveItem(e,r,u)},swap:(r,u)=>{let a=[...n.value];[a[r],a[u]]=[a[u],a[r]],n.value=a,t.swapItems(e,r,u)},replace:r=>{n.value=r.map((u,a)=>s(a)),t.setField(e,r)},clear:()=>{n.value=[],t.setField(e,[])}}}function se(){let e=m(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, s);let i=()=>e.undo(),o=()=>e.redo();return{canUndo:_vue.computed.call(void 0, ()=>t.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>t.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>t.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>t.value.historySize),undo:i,redo:o}}function ae(e,t){let s=Object.keys(e),i=Object.keys(t);return s.length!==i.length?!1:s.every(o=>e[o]===t[o])}function ue(e){let t=m(),s=_vue.ref.call(void 0, t.getStepStatus(e)),i;_vue.onMounted.call(void 0, ()=>{i=t.subscribeSelector(c=>({errors:c.errors,isDirty:c.isDirty}),()=>{let c=t.getStepStatus(e);(c.hasErrors!==s.value.hasErrors||c.isDirty!==s.value.isDirty||!ae(c.errors,s.value.errors))&&(s.value=c)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _2 => _2()])});let o=async()=>{let c=await t.validate({scope:e}),r=t.getStepErrors(e);return{valid:c,errors:r}},l=()=>t.getStepErrors(e),n=_vue.computed.call(void 0, ()=>!s.value.hasErrors),p=_vue.computed.call(void 0, ()=>s.value.isDirty),f=_vue.computed.call(void 0, ()=>s.value.errors);return{scopeName:e,status:s,errors:f,validate:o,getErrors:l,isValid:n,isDirty:p}}function de(e,t){let s=Object.keys(e),i=Object.keys(t);return s.length!==i.length?!1:s.every(o=>e[o]===t[o])}function pe(e){let t=m(),s=_vue.ref.call(void 0, 0),i=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[s.value], () => (""))),o=_vue.ref.call(void 0, t.getStepStatus(i.value)),l;_vue.watch.call(void 0, i,d=>{o.value=t.getStepStatus(d)});let n=()=>{let d=i.value,g=t.getStepStatus(d);(g.hasErrors!==o.value.hasErrors||g.isDirty!==o.value.isDirty||!de(g.errors,o.value.errors))&&(o.value=g)};_vue.onMounted.call(void 0, ()=>{l=t.subscribeSelector(d=>({errors:d.errors,isDirty:d.isDirty}),n)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([l, 'optionalCall', _3 => _3()])});let p=async()=>{let d=i.value,g=await t.validate({scope:d}),F=t.getStepErrors(d);return{valid:g,errors:F}},f=()=>t.getStepErrors(i.value),c=async()=>{let d=i.value,g=t.getScopeFields(d);if(t.hasValidationsInProgress(g))return!1;let F=await t.validate({scope:d});if(F)s.value=Math.min(s.value+1,e.length-1);else{let D=t.getStepErrors(d),y=Object.keys(D);y.length>0&&t.markFieldsTouched(y)}return F},r=()=>{s.value=Math.max(s.value-1,0)},u=d=>{s.value=Math.max(0,Math.min(d-1,e.length-1))},a=_vue.computed.call(void 0, ()=>s.value+1),B=_vue.computed.call(void 0, ()=>s.value===0),b=_vue.computed.call(void 0, ()=>s.value>=e.length-1),P=_vue.computed.call(void 0, ()=>!o.value.hasErrors),h=_vue.computed.call(void 0, ()=>o.value.isDirty),x=_vue.computed.call(void 0, ()=>o.value.errors);return{step:a,stepIndex:s,scope:i,next:c,prev:r,goTo:u,isFirst:B,isLast:b,status:o,errors:x,isValid:P,isDirty:h,validate:p,getErrors:f}}function ye(e){let t=m(),s=_chunkLOYB7TTMcjs.e.call(void 0, t.getState().values,e),i=_vue.ref.call(void 0, s),o=t.watch(e,l=>{_chunkLOYB7TTMcjs.d.call(void 0, i.value,l)||(i.value=l)});return _vue.onUnmounted.call(void 0, o),_vue.readonly.call(void 0, i)}function Se(e,t,s){let i=m(),o=U(e),l=null,n=_vue.ref.call(void 0, !1),p={setLoading:r=>{n.value=r},setError:(r,u)=>i.setError(r,u),setValue:r=>o.setValue(r),getUploadKey:()=>l,setUploadKey:r=>{l=r}},f=_chunkIV32WXCFcjs.a.call(void 0, e,t,p),c=_chunkIV32WXCFcjs.b.call(void 0, e,s,p);return{value:o.value,setValue:o.setValue,error:_vue.computed.call(void 0, ()=>o.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>!!o.meta.isValidating.value||n.value),upload:f,remove:c}}function Fe(){let e=m(),t=_vue.ref.call(void 0, e.getPersistMetadata()),s=e.subscribeSelector(n=>n.persist,n=>{t.value=n});return _vue.onUnmounted.call(void 0, ()=>s()),{restore:async()=>e.restorePersisted(),save:async()=>{await e.forceSave()},clear:async()=>{await e.clearPersisted()},meta:{isSaving:_vue.computed.call(void 0, ()=>t.value.isSaving),isRestoring:_vue.computed.call(void 0, ()=>t.value.isRestoring),error:_vue.computed.call(void 0, ()=>t.value.error)}}}exports.provideBitStore = Y; exports.useBitArray = ee; exports.useBitField = U; exports.useBitForm = Q; exports.useBitHistory = se; exports.useBitPersist = Fe; exports.useBitScope = ue; exports.useBitSteps = pe; exports.useBitStore = m; exports.useBitUpload = Se; exports.useBitWatch = ye;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","useBitField","path","resolvedMask","fieldController","createMaskedFieldController","subscribeFieldState","rawValue","displayValue","modelValue","val","rawError","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","generateId","useBitArray","initialValues","getDeepValue","values","ids","newValues","nextValues","currentIds","diff","newIds"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStoreHooksApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStoreHooksApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribeSelector(\n (snapshot) => ({\n isValid: snapshot.isValid,\n isSubmitting: snapshot.isSubmitting,\n isDirty: snapshot.isDirty,\n }),\n (nextState) => {\n state.value = nextState;\n },\n );\n\n onUnmounted(unsubscribe);\n\n const controller = createFormController(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit,\n reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const resolvedMask = store.resolveMask(path);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const rawError = computed(() => state.value.error);\n const error = computed(() =>\n state.value.touched ? state.value.error : undefined,\n );\n const touched = computed(() => state.value.touched);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => state.value.isValidating);\n\n const isDirty = computed(() => state.value.isDirty);\n\n const isHidden = computed(() => state.value.isHidden);\n\n const isRequired = computed(() => state.value.isRequired);\n\n const hasError = computed(() => !!rawError.value);\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\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\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(store.getState().values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map(generateId));\n\n const unsubscribe = store.subscribePath(path, (newValues) => {\n const nextValues = (Array.isArray(newValues) ? newValues : []) as Item[];\n\n values.value = [...nextValues];\n\n if (nextValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (nextValues.length > currentIds.length) {\n const diff = nextValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, generateId);\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, nextValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map(generateId);\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n ids.value = [];\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","useBitField","path","resolvedMask","fieldController","createMaskedFieldController","subscribeFieldState","rawValue","displayValue","modelValue","val","rawError","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","useBitArray","createId","index","initialValues","getDeepValue","values","ids","_","newValues","nextValues","currentIds","diff","newIds","i"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStoreHooksApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStoreHooksApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribeSelector(\n (snapshot) => ({\n isValid: snapshot.isValid,\n isSubmitting: snapshot.isSubmitting,\n isDirty: snapshot.isDirty,\n }),\n (nextState) => {\n state.value = nextState;\n },\n );\n\n onUnmounted(unsubscribe);\n\n const controller = createFormController(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit,\n reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const resolvedMask = store.resolveMask(path);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const rawError = computed(() => state.value.error);\n const error = computed(() =>\n state.value.touched ? state.value.error : undefined,\n );\n const touched = computed(() => state.value.touched);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => state.value.isValidating);\n\n const isDirty = computed(() => state.value.isDirty);\n\n const isHidden = computed(() => state.value.isHidden);\n\n const isRequired = computed(() => state.value.isRequired);\n\n const hasError = computed(() => !!rawError.value);\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\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\n const createId = (index?: number) =>\n store.config.idFactory({\n scope: \"array\",\n path: path as string,\n index,\n });\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(store.getState().values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map((_, index) => createId(index)));\n\n const unsubscribe = store.subscribePath(path, (newValues) => {\n const nextValues = (Array.isArray(newValues) ? newValues : []) as Item[];\n\n values.value = [...nextValues];\n\n if (nextValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (nextValues.length > currentIds.length) {\n const diff = nextValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, (_, i) =>\n createId(currentIds.length + i),\n );\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, nextValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(createId(ids.value.length));\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(createId(0));\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, createId(index));\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map((_, index) => createId(index));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n ids.value = [];\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}