@lehnihon/bit-form 2.0.0 → 2.1.0

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 (58) hide show
  1. package/README.md +1 -0
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +14 -3
  5. package/dist/angular/index.d.ts +14 -3
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/{bus-CnqfsZpc.d.cts → bus-uG4EmM-Z.d.cts} +9 -0
  9. package/dist/{bus-CnqfsZpc.d.ts → bus-uG4EmM-Z.d.ts} +9 -0
  10. package/dist/chunk-ET36BANJ.js +2 -0
  11. package/dist/chunk-ET36BANJ.js.map +1 -0
  12. package/dist/{chunk-4KRTZKIQ.js → chunk-NDFMZWBP.js} +5 -5
  13. package/dist/chunk-NDFMZWBP.js.map +1 -0
  14. package/dist/chunk-PCVPCFPX.cjs +2 -0
  15. package/dist/{chunk-P3XTUPHK.cjs.map → chunk-PCVPCFPX.cjs.map} +1 -1
  16. package/dist/{chunk-K3DCDRWB.cjs → chunk-VFLQH47Q.cjs} +5 -5
  17. package/dist/{chunk-K3DCDRWB.cjs.map → chunk-VFLQH47Q.cjs.map} +1 -1
  18. package/dist/devtools/bridge.cjs +1 -1
  19. package/dist/devtools/bridge.js +1 -1
  20. package/dist/devtools/index.cjs +1 -1
  21. package/dist/devtools/index.js +1 -1
  22. package/dist/{index-BAOM6INR.d.ts → index-1fP1eJH8.d.ts} +6 -1
  23. package/dist/{index-BdLuC0wS.d.cts → index-9vxGUNPP.d.cts} +6 -1
  24. package/dist/index.cjs +1 -1
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +4 -5
  27. package/dist/index.d.ts +4 -5
  28. package/dist/index.js +1 -1
  29. package/dist/react/index.cjs +1 -1
  30. package/dist/react/index.cjs.map +1 -1
  31. package/dist/react/index.d.cts +38 -5
  32. package/dist/react/index.d.ts +38 -5
  33. package/dist/react/index.js +1 -1
  34. package/dist/react/index.js.map +1 -1
  35. package/dist/react-native/index.cjs +1 -1
  36. package/dist/react-native/index.d.cts +4 -4
  37. package/dist/react-native/index.d.ts +4 -4
  38. package/dist/react-native/index.js +1 -1
  39. package/dist/resolvers/joi.d.cts +1 -1
  40. package/dist/resolvers/joi.d.ts +1 -1
  41. package/dist/resolvers/yup.d.cts +1 -1
  42. package/dist/resolvers/yup.d.ts +1 -1
  43. package/dist/resolvers/zod.d.cts +1 -1
  44. package/dist/resolvers/zod.d.ts +1 -1
  45. package/dist/types-C2mpfhp1.d.cts +17 -0
  46. package/dist/types-C2mpfhp1.d.ts +17 -0
  47. package/dist/{use-bit-watch-CtdglHvd.d.cts → use-bit-watch-BLCTa7d4.d.cts} +2 -2
  48. package/dist/{use-bit-watch-B_ket_j5.d.ts → use-bit-watch-iCGj-kYp.d.ts} +2 -2
  49. package/dist/vue/index.cjs +1 -1
  50. package/dist/vue/index.d.cts +21 -3
  51. package/dist/vue/index.d.ts +21 -3
  52. package/dist/vue/index.js +1 -1
  53. package/dist/vue/index.js.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/chunk-4KRTZKIQ.js.map +0 -1
  56. package/dist/chunk-JEVGTLOM.js +0 -2
  57. package/dist/chunk-JEVGTLOM.js.map +0 -1
  58. package/dist/chunk-P3XTUPHK.cjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts"],"names":["isMaskOnlyOptions","value","keys","useBitField","path","configOrOptions","maybeOptions","config","options","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","setValue","useCallback","isHidden","isRequired","error","touched","isDirty","isValidating","invalid","visibleError","onChange","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface UseBitFieldMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport interface UseBitFieldBindProps {\n value: string;\n onChange: (e: any) => void;\n onBlur: () => void;\n}\n\nexport interface UseBitFieldResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n // Main handlers and values (flat)\n value: BitPathValue<TForm, P>;\n displayValue: string;\n setValue: (val: any) => void;\n setBlur: () => void;\n onChange: (e: any) => void;\n onBlur: () => void;\n // Props helper for native inputs\n props: UseBitFieldBindProps;\n // Readonly metadata (grouped)\n meta: UseBitFieldMeta;\n}\n\nfunction isMaskOnlyOptions(\n value: BitFieldDefinition<any> | BitFieldOptions | undefined,\n): value is BitFieldOptions {\n if (!value || typeof value !== \"object\") return false;\n const keys = Object.keys(value);\n return keys.length === 1 && keys[0] === \"mask\";\n}\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions,\n maybeOptions?: BitFieldOptions,\n): UseBitFieldResult<TForm, P> {\n const config =\n maybeOptions !== undefined\n ? (configOrOptions as BitFieldDefinition<TForm> | undefined)\n : isMaskOnlyOptions(configOrOptions)\n ? undefined\n : (configOrOptions as BitFieldDefinition<TForm> | undefined);\n\n const options =\n maybeOptions !== undefined\n ? maybeOptions\n : isMaskOnlyOptions(configOrOptions)\n ? configOrOptions\n : undefined;\n\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path, config);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const setValue = useCallback(\n (val: any) => {\n if (!resolvedMask) {\n rawSetValue(val);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(val ?? \"\")) as any);\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: 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\";\n\nexport interface UseBitHistoryResult {\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n undo: () => void;\n redo: () => void;\n}\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"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"names":["isMaskOnlyOptions","value","keys","useBitField","path","configOrOptions","maybeOptions","config","options","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","setValue","useCallback","isHidden","isRequired","error","touched","isDirty","isValidating","invalid","visibleError","onChange","e","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","upload","file","result","message","remove","uploadKey"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface UseBitFieldMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport interface UseBitFieldBindProps {\n value: string;\n onChange: (e: any) => void;\n onBlur: () => void;\n}\n\nexport interface UseBitFieldResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n // Main handlers and values (flat)\n value: BitPathValue<TForm, P>;\n displayValue: string;\n setValue: (val: any) => void;\n setBlur: () => void;\n onChange: (e: any) => void;\n onBlur: () => void;\n // Props helper for native inputs\n props: UseBitFieldBindProps;\n // Readonly metadata (grouped)\n meta: UseBitFieldMeta;\n}\n\nfunction isMaskOnlyOptions(\n value: BitFieldDefinition<any> | BitFieldOptions | undefined,\n): value is BitFieldOptions {\n if (!value || typeof value !== \"object\") return false;\n const keys = Object.keys(value);\n return keys.length === 1 && keys[0] === \"mask\";\n}\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions,\n maybeOptions?: BitFieldOptions,\n): UseBitFieldResult<TForm, P> {\n const config =\n maybeOptions !== undefined\n ? (configOrOptions as BitFieldDefinition<TForm> | undefined)\n : isMaskOnlyOptions(configOrOptions)\n ? undefined\n : (configOrOptions as BitFieldDefinition<TForm> | undefined);\n\n const options =\n maybeOptions !== undefined\n ? maybeOptions\n : isMaskOnlyOptions(configOrOptions)\n ? configOrOptions\n : undefined;\n\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path, config);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const setValue = useCallback(\n (val: any) => {\n if (!resolvedMask) {\n rawSetValue(val);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(val ?? \"\")) as any);\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: 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\";\n\nexport interface UseBitHistoryResult {\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n undo: () => void;\n redo: () => void;\n}\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 } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core/upload/types\";\n\nexport interface UseBitUploadResult {\n value: string | File | null;\n setValue: (value: string | File | null) => void;\n error?: string;\n isValidating: boolean;\n upload: (file: File | null | undefined) => Promise<void>;\n remove: () => Promise<void>;\n}\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\n const upload = useCallback(\n async (file: File | null | undefined) => {\n if (!file) return;\n\n store.beginFieldValidation(fieldPath);\n await store.clearFieldAsyncError(fieldPath);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKeyRef.current = result.key;\n await store.clearFieldAsyncError(fieldPath);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Upload failed\";\n await store.setFieldAsyncError(fieldPath, message);\n } finally {\n store.endFieldValidation(fieldPath);\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 await store.setFieldAsyncError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKeyRef.current = null;\n await store.clearFieldAsyncError(fieldPath);\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 || false,\n upload,\n remove,\n };\n}\n"]}
@@ -1,9 +1,10 @@
1
- export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-CtdglHvd.cjs';
2
- import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-CnqfsZpc.cjs';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-CnqfsZpc.cjs';
1
+ export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-BLCTa7d4.cjs';
2
+ import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-uG4EmM-Z.cjs';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.cjs';
4
+ import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
4
5
  import 'react/jsx-runtime';
5
6
  import 'react';
6
- import '../index-BdLuC0wS.cjs';
7
+ import '../index-9vxGUNPP.cjs';
7
8
 
8
9
  interface UseBitFieldMeta {
9
10
  error: string | undefined;
@@ -42,4 +43,36 @@ interface UseBitHistoryResult {
42
43
  }
43
44
  declare function useBitHistory<T extends object = any>(): UseBitHistoryResult;
44
45
 
45
- export { type UseBitFieldBindProps, type UseBitFieldMeta, type UseBitFieldResult, useBitField, useBitHistory };
46
+ /**
47
+ * React Hook for File Upload Integration
48
+ *
49
+ * Minimal upload API integrated with global field validation lifecycle.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const avatar = useBitUpload("avatar", uploadFn);
54
+ *
55
+ * return (
56
+ * <>
57
+ * <input
58
+ * type="file"
59
+ * onChange={(e) => avatar.upload(e.target.files?.[0])}
60
+ * disabled={avatar.isValidating}
61
+ * />
62
+ * {avatar.error && <Error>{avatar.error}</Error>}
63
+ * </>
64
+ * );
65
+ * ```
66
+ */
67
+
68
+ interface UseBitUploadResult {
69
+ value: string | File | null;
70
+ setValue: (value: string | File | null) => void;
71
+ error?: string;
72
+ isValidating: boolean;
73
+ upload: (file: File | null | undefined) => Promise<void>;
74
+ remove: () => Promise<void>;
75
+ }
76
+ declare function useBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): UseBitUploadResult;
77
+
78
+ export { type UseBitFieldBindProps, type UseBitFieldMeta, type UseBitFieldResult, type UseBitUploadResult, useBitField, useBitHistory, useBitUpload };
@@ -1,9 +1,10 @@
1
- export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-B_ket_j5.js';
2
- import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-CnqfsZpc.js';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-CnqfsZpc.js';
1
+ export { B as BitFormProvider, U as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-iCGj-kYp.js';
2
+ import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-uG4EmM-Z.js';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.js';
4
+ import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
4
5
  import 'react/jsx-runtime';
5
6
  import 'react';
6
- import '../index-BAOM6INR.js';
7
+ import '../index-1fP1eJH8.js';
7
8
 
8
9
  interface UseBitFieldMeta {
9
10
  error: string | undefined;
@@ -42,4 +43,36 @@ interface UseBitHistoryResult {
42
43
  }
43
44
  declare function useBitHistory<T extends object = any>(): UseBitHistoryResult;
44
45
 
45
- export { type UseBitFieldBindProps, type UseBitFieldMeta, type UseBitFieldResult, useBitField, useBitHistory };
46
+ /**
47
+ * React Hook for File Upload Integration
48
+ *
49
+ * Minimal upload API integrated with global field validation lifecycle.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const avatar = useBitUpload("avatar", uploadFn);
54
+ *
55
+ * return (
56
+ * <>
57
+ * <input
58
+ * type="file"
59
+ * onChange={(e) => avatar.upload(e.target.files?.[0])}
60
+ * disabled={avatar.isValidating}
61
+ * />
62
+ * {avatar.error && <Error>{avatar.error}</Error>}
63
+ * </>
64
+ * );
65
+ * ```
66
+ */
67
+
68
+ interface UseBitUploadResult {
69
+ value: string | File | null;
70
+ setValue: (value: string | File | null) => void;
71
+ error?: string;
72
+ isValidating: boolean;
73
+ upload: (file: File | null | undefined) => Promise<void>;
74
+ remove: () => Promise<void>;
75
+ }
76
+ declare function useBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): UseBitUploadResult;
77
+
78
+ export { type UseBitFieldBindProps, type UseBitFieldMeta, type UseBitFieldResult, type UseBitUploadResult, useBitField, useBitHistory, useBitUpload };
@@ -1,2 +1,2 @@
1
- import{a as D,b as m,c as H,d as b,e as z,f as I,g as j,h as C}from"../chunk-JEVGTLOM.js";import"../chunk-4KRTZKIQ.js";import{useMemo as v,useCallback as p}from"react";function P(t){if(!t||typeof t!="object")return!1;let o=Object.keys(t);return o.length===1&&o[0]==="mask"}function E(t,o,n){let l=n!==void 0?o:P(o)?void 0:o,d=n!==void 0?n:P(o)?o:void 0,{fieldState:a,setValue:i,setBlur:r,store:u}=b(t,l),s=v(()=>{let e=d?.mask??u.config.fields?.[t]?.mask;if(e)return typeof e=="string"?u.config.masks[e]:e},[d?.mask,u.config.masks,u.config.fields,t]),F=v(()=>{let e=a.value;return e==null||e===""?"":s?s.format(e):String(e)},[a.value,s]),c=p(e=>{if(!s){i(e);return}i(s.parse(String(e??"")))},[s,i]),{isHidden:S,isRequired:g,value:U,error:f,touched:B,isDirty:R,isValidating:T}=a,k=!!(B&&f),V=B?f:void 0,x=p(e=>{let M=e?.target?e.target.value:e;c(M)},[c]),h=p(()=>{r()},[r]);return{value:U,displayValue:F,setValue:c,setBlur:r,onChange:x,onBlur:h,props:{value:F,onChange:x,onBlur:h},meta:{error:V,touched:B,invalid:k,isDirty:R,isValidating:T,isHidden:S,isRequired:g,hasError:!!f}}}import{useCallback as y,useRef as q,useSyncExternalStore as w}from"react";function A(){let t=m(),o=q(null),n=y(()=>{let i=t.getHistoryMetadata();if(o.current&&o.current.canUndo===i.canUndo&&o.current.canRedo===i.canRedo&&o.current.historyIndex===i.historyIndex&&o.current.historySize===i.historySize)return o.current;let r={canUndo:i.canUndo,canRedo:i.canRedo,historyIndex:i.historyIndex,historySize:i.historySize};return o.current=r,r},[t]),l=w(t.subscribe.bind(t),n,n),d=y(()=>{t.undo()},[t]),a=y(()=>{t.redo()},[t]);return{...l,undo:d,redo:a}}export{D as BitFormProvider,z as useBitArray,E as useBitField,H as useBitForm,A as useBitHistory,I as useBitScope,j as useBitSteps,m as useBitStore,C as useBitWatch};
1
+ import{a as w,b as m,c as H,d as v,e as z,f as A,g as C,h as I}from"../chunk-ET36BANJ.js";import"../chunk-NDFMZWBP.js";import{useMemo as U,useCallback as y}from"react";function V(e){if(!e||typeof e!="object")return!1;let t=Object.keys(e);return t.length===1&&t[0]==="mask"}function F(e,t,a){let n=a!==void 0?t:V(t)?void 0:t,s=a!==void 0?a:V(t)?t:void 0,{fieldState:u,setValue:i,setBlur:d,store:l}=v(e,n),r=U(()=>{let o=s?.mask??l.config.fields?.[e]?.mask;if(o)return typeof o=="string"?l.config.masks[o]:o},[s?.mask,l.config.masks,l.config.fields,e]),c=U(()=>{let o=u.value;return o==null||o===""?"":r?r.format(o):String(o)},[u.value,r]),p=y(o=>{if(!r){i(o);return}i(r.parse(String(o??"")))},[r,i]),{isHidden:S,isRequired:R,value:T,error:f,touched:B,isDirty:k,isValidating:P}=u,E=!!(B&&f),D=B?f:void 0,b=y(o=>{let M=o?.target?o.target.value:o;p(M)},[p]),g=y(()=>{d()},[d]);return{value:T,displayValue:c,setValue:p,setBlur:d,onChange:b,onBlur:g,props:{value:c,onChange:b,onBlur:g},meta:{error:D,touched:B,invalid:E,isDirty:k,isValidating:P,isHidden:S,isRequired:R,hasError:!!f}}}import{useCallback as x,useRef as j,useSyncExternalStore as q}from"react";function K(){let e=m(),t=j(null),a=x(()=>{let i=e.getHistoryMetadata();if(t.current&&t.current.canUndo===i.canUndo&&t.current.canRedo===i.canRedo&&t.current.historyIndex===i.historyIndex&&t.current.historySize===i.historySize)return t.current;let d={canUndo:i.canUndo,canRedo:i.canRedo,historyIndex:i.historyIndex,historySize:i.historySize};return t.current=d,d},[e]),n=q(e.subscribe.bind(e),a,a),s=x(()=>{e.undo()},[e]),u=x(()=>{e.redo()},[e]);return{...n,undo:s,redo:u}}import{useCallback as h,useRef as W}from"react";function G(e,t,a){let n=m(),s=F(e),u=W(null),i=h(async l=>{if(l){n.beginFieldValidation(e),await n.clearFieldAsyncError(e);try{let r=await t(l);s.setValue(r.url),u.current=r.key,await n.clearFieldAsyncError(e)}catch(r){let c=r instanceof Error?r.message:"Upload failed";await n.setFieldAsyncError(e,c)}finally{n.endFieldValidation(e)}}},[t,s,e,n]),d=h(async()=>{let l=u.current;if(l&&a)try{await a(l)}catch(r){let c=r instanceof Error?r.message:"Delete failed";await n.setFieldAsyncError(e,c);return}s.setValue(null),u.current=null,await n.clearFieldAsyncError(e)},[a,s,e,n]);return{value:s.value,setValue:s.setValue,error:s.meta?.error,isValidating:s.meta?.isValidating||!1,upload:i,remove:d}}export{w as BitFormProvider,z as useBitArray,F as useBitField,H as useBitForm,K as useBitHistory,A as useBitScope,C as useBitSteps,m as useBitStore,G as useBitUpload,I as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface UseBitFieldMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport interface UseBitFieldBindProps {\n value: string;\n onChange: (e: any) => void;\n onBlur: () => void;\n}\n\nexport interface UseBitFieldResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n // Main handlers and values (flat)\n value: BitPathValue<TForm, P>;\n displayValue: string;\n setValue: (val: any) => void;\n setBlur: () => void;\n onChange: (e: any) => void;\n onBlur: () => void;\n // Props helper for native inputs\n props: UseBitFieldBindProps;\n // Readonly metadata (grouped)\n meta: UseBitFieldMeta;\n}\n\nfunction isMaskOnlyOptions(\n value: BitFieldDefinition<any> | BitFieldOptions | undefined,\n): value is BitFieldOptions {\n if (!value || typeof value !== \"object\") return false;\n const keys = Object.keys(value);\n return keys.length === 1 && keys[0] === \"mask\";\n}\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions,\n maybeOptions?: BitFieldOptions,\n): UseBitFieldResult<TForm, P> {\n const config =\n maybeOptions !== undefined\n ? (configOrOptions as BitFieldDefinition<TForm> | undefined)\n : isMaskOnlyOptions(configOrOptions)\n ? undefined\n : (configOrOptions as BitFieldDefinition<TForm> | undefined);\n\n const options =\n maybeOptions !== undefined\n ? maybeOptions\n : isMaskOnlyOptions(configOrOptions)\n ? configOrOptions\n : undefined;\n\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path, config);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const setValue = useCallback(\n (val: any) => {\n if (!resolvedMask) {\n rawSetValue(val);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(val ?? \"\")) as any);\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: 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\";\n\nexport interface UseBitHistoryResult {\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n undo: () => void;\n redo: () => void;\n}\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"],"mappings":"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","names":["useMemo","useCallback","isMaskOnlyOptions","value","keys","useBitField","path","configOrOptions","maybeOptions","config","options","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","setValue","useCallback","isHidden","isRequired","error","touched","isDirty","isValidating","invalid","visibleError","onChange","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","stableMeta","meta","useSyncExternalStore","undo","redo"]}
1
+ {"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface UseBitFieldMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport interface UseBitFieldBindProps {\n value: string;\n onChange: (e: any) => void;\n onBlur: () => void;\n}\n\nexport interface UseBitFieldResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n // Main handlers and values (flat)\n value: BitPathValue<TForm, P>;\n displayValue: string;\n setValue: (val: any) => void;\n setBlur: () => void;\n onChange: (e: any) => void;\n onBlur: () => void;\n // Props helper for native inputs\n props: UseBitFieldBindProps;\n // Readonly metadata (grouped)\n meta: UseBitFieldMeta;\n}\n\nfunction isMaskOnlyOptions(\n value: BitFieldDefinition<any> | BitFieldOptions | undefined,\n): value is BitFieldOptions {\n if (!value || typeof value !== \"object\") return false;\n const keys = Object.keys(value);\n return keys.length === 1 && keys[0] === \"mask\";\n}\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n configOrOptions?: BitFieldDefinition<TForm> | BitFieldOptions,\n maybeOptions?: BitFieldOptions,\n): UseBitFieldResult<TForm, P> {\n const config =\n maybeOptions !== undefined\n ? (configOrOptions as BitFieldDefinition<TForm> | undefined)\n : isMaskOnlyOptions(configOrOptions)\n ? undefined\n : (configOrOptions as BitFieldDefinition<TForm> | undefined);\n\n const options =\n maybeOptions !== undefined\n ? maybeOptions\n : isMaskOnlyOptions(configOrOptions)\n ? configOrOptions\n : undefined;\n\n const {\n fieldState,\n setValue: rawSetValue,\n setBlur,\n store,\n } = useBitFieldBase<BitPathValue<TForm, P>, TForm, P>(path, config);\n\n const resolvedMask = useMemo(() => {\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n if (!maskOption) return undefined;\n return typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption;\n }, [options?.mask, store.config.masks, store.config.fields, path]);\n\n const displayValue = useMemo(() => {\n const val = fieldState.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n }, [fieldState.value, resolvedMask]);\n\n const setValue = useCallback(\n (val: any) => {\n if (!resolvedMask) {\n rawSetValue(val);\n return;\n }\n\n rawSetValue(resolvedMask.parse(String(val ?? \"\")) as any);\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: 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\";\n\nexport interface UseBitHistoryResult {\n canUndo: boolean;\n canRedo: boolean;\n historyIndex: number;\n historySize: number;\n undo: () => void;\n redo: () => void;\n}\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 } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core/upload/types\";\n\nexport interface UseBitUploadResult {\n value: string | File | null;\n setValue: (value: string | File | null) => void;\n error?: string;\n isValidating: boolean;\n upload: (file: File | null | undefined) => Promise<void>;\n remove: () => Promise<void>;\n}\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\n const upload = useCallback(\n async (file: File | null | undefined) => {\n if (!file) return;\n\n store.beginFieldValidation(fieldPath);\n await store.clearFieldAsyncError(fieldPath);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKeyRef.current = result.key;\n await store.clearFieldAsyncError(fieldPath);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Upload failed\";\n await store.setFieldAsyncError(fieldPath, message);\n } finally {\n store.endFieldValidation(fieldPath);\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 await store.setFieldAsyncError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKeyRef.current = null;\n await store.clearFieldAsyncError(fieldPath);\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 || false,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","isMaskOnlyOptions","value","keys","useBitField","path","configOrOptions","maybeOptions","config","options","fieldState","rawSetValue","setBlur","store","useBitFieldBase","resolvedMask","useMemo","maskOption","displayValue","val","setValue","useCallback","isHidden","isRequired","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","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","upload","useCallback","file","result","error","message","remove","uploadKey"]}
@@ -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 _chunkP3XTUPHKcjs = require('../chunk-P3XTUPHK.cjs');require('../chunk-K3DCDRWB.cjs');var _react = require('react');function x(o){if(!o||typeof o!="object")return!1;let t=Object.keys(o);return t.length===1&&t[0]==="mask"}function E(o,t,s){let P=s!==void 0?t:x(t)?void 0:t,B=s!==void 0?s:x(t)?t:void 0,{fieldState:a,setValue:n,setBlur:d,store:r}=_chunkP3XTUPHKcjs.d.call(void 0, o,P),i=_react.useMemo.call(void 0, ()=>{let e=_nullishCoalesce(_optionalChain([B, 'optionalAccess', _ => _.mask]), () => (_optionalChain([r, 'access', _2 => _2.config, 'access', _3 => _3.fields, 'optionalAccess', _4 => _4[o], 'optionalAccess', _5 => _5.mask])));if(e)return typeof e=="string"?r.config.masks[e]:e},[_optionalChain([B, 'optionalAccess', _6 => _6.mask]),r.config.masks,r.config.fields,o]),m=_react.useMemo.call(void 0, ()=>{let e=a.value;return e==null||e===""?"":i?i.format(e):String(e)},[a.value,i]),F=_react.useCallback.call(void 0, e=>{if(!i){n(e);return}n(i.parse(String(_nullishCoalesce(e, () => ("")))))},[i,n]),g=_react.useCallback.call(void 0, e=>{if(!i){n(e);return}n(i.parse(String(_nullishCoalesce(e, () => ("")))))},[i,n]),{isHidden:h,isRequired:y,value:T,error:l,touched:u,isDirty:V,isValidating:b}=a,k=!!(u&&l),S=u?l:void 0,p=_react.useCallback.call(void 0, ()=>{d()},[d]);return{field:{value:T,displayValue:m,setValue:g,setBlur:d,onChangeText:F,onBlur:p},meta:{error:S,touched:u,invalid:k,isValidating:b,isDirty:V,isHidden:h,isRequired:y,hasError:!!l},props:{value:m,onChangeText:F,onBlur:p}}}exports.BitFormProvider = _chunkP3XTUPHKcjs.a; exports.useBitArray = _chunkP3XTUPHKcjs.e; exports.useBitField = E; exports.useBitForm = _chunkP3XTUPHKcjs.c; exports.useBitScope = _chunkP3XTUPHKcjs.f; exports.useBitSteps = _chunkP3XTUPHKcjs.g; exports.useBitStore = _chunkP3XTUPHKcjs.b; exports.useBitWatch = _chunkP3XTUPHKcjs.h;
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 _chunkPCVPCFPXcjs = require('../chunk-PCVPCFPX.cjs');require('../chunk-VFLQH47Q.cjs');var _react = require('react');function x(o){if(!o||typeof o!="object")return!1;let t=Object.keys(o);return t.length===1&&t[0]==="mask"}function E(o,t,s){let P=s!==void 0?t:x(t)?void 0:t,B=s!==void 0?s:x(t)?t:void 0,{fieldState:a,setValue:n,setBlur:d,store:r}=_chunkPCVPCFPXcjs.d.call(void 0, o,P),i=_react.useMemo.call(void 0, ()=>{let e=_nullishCoalesce(_optionalChain([B, 'optionalAccess', _ => _.mask]), () => (_optionalChain([r, 'access', _2 => _2.config, 'access', _3 => _3.fields, 'optionalAccess', _4 => _4[o], 'optionalAccess', _5 => _5.mask])));if(e)return typeof e=="string"?r.config.masks[e]:e},[_optionalChain([B, 'optionalAccess', _6 => _6.mask]),r.config.masks,r.config.fields,o]),m=_react.useMemo.call(void 0, ()=>{let e=a.value;return e==null||e===""?"":i?i.format(e):String(e)},[a.value,i]),F=_react.useCallback.call(void 0, e=>{if(!i){n(e);return}n(i.parse(String(_nullishCoalesce(e, () => ("")))))},[i,n]),g=_react.useCallback.call(void 0, e=>{if(!i){n(e);return}n(i.parse(String(_nullishCoalesce(e, () => ("")))))},[i,n]),{isHidden:h,isRequired:y,value:T,error:l,touched:u,isDirty:V,isValidating:b}=a,k=!!(u&&l),S=u?l:void 0,p=_react.useCallback.call(void 0, ()=>{d()},[d]);return{field:{value:T,displayValue:m,setValue:g,setBlur:d,onChangeText:F,onBlur:p},meta:{error:S,touched:u,invalid:k,isValidating:b,isDirty:V,isHidden:h,isRequired:y,hasError:!!l},props:{value:m,onChangeText:F,onBlur:p}}}exports.BitFormProvider = _chunkPCVPCFPXcjs.a; exports.useBitArray = _chunkPCVPCFPXcjs.e; exports.useBitField = E; exports.useBitForm = _chunkPCVPCFPXcjs.c; exports.useBitScope = _chunkPCVPCFPXcjs.f; exports.useBitSteps = _chunkPCVPCFPXcjs.g; exports.useBitStore = _chunkPCVPCFPXcjs.b; exports.useBitWatch = _chunkPCVPCFPXcjs.h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,9 +1,9 @@
1
- export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-CtdglHvd.cjs';
2
- import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-CnqfsZpc.cjs';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-CnqfsZpc.cjs';
1
+ export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-BLCTa7d4.cjs';
2
+ import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-uG4EmM-Z.cjs';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.cjs';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../index-BdLuC0wS.cjs';
6
+ import '../index-9vxGUNPP.cjs';
7
7
 
8
8
  interface UseBitFieldNativeMeta {
9
9
  error: string | undefined;
@@ -1,9 +1,9 @@
1
- export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-B_ket_j5.js';
2
- import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-CnqfsZpc.js';
3
- export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-CnqfsZpc.js';
1
+ export { B as BitFormProvider, u as useBitArray, a as useBitForm, b as useBitScope, c as useBitSteps, d as useBitStore, e as useBitWatch } from '../use-bit-watch-iCGj-kYp.js';
2
+ import { b as BitPath, c as BitPathValue, k as BitFieldDefinition, l as BitFieldOptions } from '../bus-uG4EmM-Z.js';
3
+ export { S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react';
6
- import '../index-BAOM6INR.js';
6
+ import '../index-1fP1eJH8.js';
7
7
 
8
8
  interface UseBitFieldNativeMeta {
9
9
  error: string | undefined;
@@ -1,2 +1,2 @@
1
- import{a as N,b as U,c as D,d as c,e as C,f as M,g as R,h as j}from"../chunk-JEVGTLOM.js";import"../chunk-4KRTZKIQ.js";import{useMemo as v,useCallback as f}from"react";function x(o){if(!o||typeof o!="object")return!1;let t=Object.keys(o);return t.length===1&&t[0]==="mask"}function E(o,t,s){let P=s!==void 0?t:x(t)?void 0:t,B=s!==void 0?s:x(t)?t:void 0,{fieldState:a,setValue:n,setBlur:d,store:r}=c(o,P),i=v(()=>{let e=B?.mask??r.config.fields?.[o]?.mask;if(e)return typeof e=="string"?r.config.masks[e]:e},[B?.mask,r.config.masks,r.config.fields,o]),m=v(()=>{let e=a.value;return e==null||e===""?"":i?i.format(e):String(e)},[a.value,i]),F=f(e=>{if(!i){n(e);return}n(i.parse(String(e??"")))},[i,n]),g=f(e=>{if(!i){n(e);return}n(i.parse(String(e??"")))},[i,n]),{isHidden:h,isRequired:y,value:T,error:l,touched:u,isDirty:V,isValidating:b}=a,k=!!(u&&l),S=u?l:void 0,p=f(()=>{d()},[d]);return{field:{value:T,displayValue:m,setValue:g,setBlur:d,onChangeText:F,onBlur:p},meta:{error:S,touched:u,invalid:k,isValidating:b,isDirty:V,isHidden:h,isRequired:y,hasError:!!l},props:{value:m,onChangeText:F,onBlur:p}}}export{N as BitFormProvider,C as useBitArray,E as useBitField,D as useBitForm,M as useBitScope,R as useBitSteps,U as useBitStore,j as useBitWatch};
1
+ import{a as N,b as U,c as D,d as c,e as C,f as M,g as R,h as j}from"../chunk-ET36BANJ.js";import"../chunk-NDFMZWBP.js";import{useMemo as v,useCallback as f}from"react";function x(o){if(!o||typeof o!="object")return!1;let t=Object.keys(o);return t.length===1&&t[0]==="mask"}function E(o,t,s){let P=s!==void 0?t:x(t)?void 0:t,B=s!==void 0?s:x(t)?t:void 0,{fieldState:a,setValue:n,setBlur:d,store:r}=c(o,P),i=v(()=>{let e=B?.mask??r.config.fields?.[o]?.mask;if(e)return typeof e=="string"?r.config.masks[e]:e},[B?.mask,r.config.masks,r.config.fields,o]),m=v(()=>{let e=a.value;return e==null||e===""?"":i?i.format(e):String(e)},[a.value,i]),F=f(e=>{if(!i){n(e);return}n(i.parse(String(e??"")))},[i,n]),g=f(e=>{if(!i){n(e);return}n(i.parse(String(e??"")))},[i,n]),{isHidden:h,isRequired:y,value:T,error:l,touched:u,isDirty:V,isValidating:b}=a,k=!!(u&&l),S=u?l:void 0,p=f(()=>{d()},[d]);return{field:{value:T,displayValue:m,setValue:g,setBlur:d,onChangeText:F,onBlur:p},meta:{error:S,touched:u,invalid:k,isValidating:b,isDirty:V,isHidden:h,isRequired:y,hasError:!!l},props:{value:m,onChangeText:F,onBlur:p}}}export{N as BitFormProvider,C as useBitArray,E as useBitField,D as useBitForm,M as useBitScope,R as useBitSteps,U as useBitStore,j as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { d as BitErrors } from '../bus-CnqfsZpc.cjs';
2
+ import { d as BitErrors } from '../bus-uG4EmM-Z.cjs';
3
3
 
4
4
  declare const joiResolver: <T extends object>(schema: ObjectSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { ObjectSchema } from 'joi';
2
- import { d as BitErrors } from '../bus-CnqfsZpc.js';
2
+ import { d as BitErrors } from '../bus-uG4EmM-Z.js';
3
3
 
4
4
  declare const joiResolver: <T extends object>(schema: ObjectSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { d as BitErrors } from '../bus-CnqfsZpc.cjs';
2
+ import { d as BitErrors } from '../bus-uG4EmM-Z.cjs';
3
3
 
4
4
  declare const yupResolver: <T extends object>(schema: Schema<any>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'yup';
2
- import { d as BitErrors } from '../bus-CnqfsZpc.js';
2
+ import { d as BitErrors } from '../bus-uG4EmM-Z.js';
3
3
 
4
4
  declare const yupResolver: <T extends object>(schema: Schema<any>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { d as BitErrors } from '../bus-CnqfsZpc.cjs';
2
+ import { d as BitErrors } from '../bus-uG4EmM-Z.cjs';
3
3
 
4
4
  declare const zodResolver: <T extends object>(schema: ZodSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -1,5 +1,5 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { d as BitErrors } from '../bus-CnqfsZpc.js';
2
+ import { d as BitErrors } from '../bus-uG4EmM-Z.js';
3
3
 
4
4
  declare const zodResolver: <T extends object>(schema: ZodSchema<T>) => (values: T, options?: {
5
5
  scopeFields?: string[];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Upload Integration Types
3
+ *
4
+ * Core types for backend-first upload integration.
5
+ */
6
+ /** Upload result with URL and key for reference/deletion. */
7
+ interface BitUploadResult {
8
+ url: string;
9
+ key: string;
10
+ metadata?: Record<string, any>;
11
+ }
12
+ /** Upload function contract (backend-first). All context is managed by the caller. */
13
+ type BitUploadFn = (file: File) => Promise<BitUploadResult>;
14
+ /** Optional delete function contract. */
15
+ type BitDeleteUploadFn = (key: string) => Promise<void>;
16
+
17
+ export type { BitDeleteUploadFn as B, BitUploadFn as a, BitUploadResult as b };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Upload Integration Types
3
+ *
4
+ * Core types for backend-first upload integration.
5
+ */
6
+ /** Upload result with URL and key for reference/deletion. */
7
+ interface BitUploadResult {
8
+ url: string;
9
+ key: string;
10
+ metadata?: Record<string, any>;
11
+ }
12
+ /** Upload function contract (backend-first). All context is managed by the caller. */
13
+ type BitUploadFn = (file: File) => Promise<BitUploadResult>;
14
+ /** Optional delete function contract. */
15
+ type BitDeleteUploadFn = (key: string) => Promise<void>;
16
+
17
+ export type { BitDeleteUploadFn as B, BitUploadFn as a, BitUploadResult as b };
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { B as BitStore } from './index-BdLuC0wS.cjs';
4
- import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-CnqfsZpc.cjs';
3
+ import { B as BitStore } from './index-9vxGUNPP.cjs';
4
+ import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-uG4EmM-Z.cjs';
5
5
 
6
6
  declare const BitFormProvider: ({ store, children, }: {
7
7
  store: BitStore<any>;
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { B as BitStore } from './index-BAOM6INR.js';
4
- import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-CnqfsZpc.js';
3
+ import { B as BitStore } from './index-1fP1eJH8.js';
4
+ import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-uG4EmM-Z.js';
5
5
 
6
6
  declare const BitFormProvider: ({ store, children, }: {
7
7
  store: BitStore<any>;
@@ -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 _chunkK3DCDRWBcjs = require('../chunk-K3DCDRWB.cjs');var _vue = require('vue');var j=Symbol("BIT_STORE");function z(e){_vue.provide.call(void 0, j,e)}function m(){let e=_vue.inject.call(void 0, j);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function _(){let e=m(),t=_vue.shallowRef.call(void 0, e.getState()),s=_vue.ref.call(void 0, null),o=_vue.ref.call(void 0, null),n=e.subscribe(()=>{t.value={...e.getState()}});_vue.onUnmounted.call(void 0, n);let i=()=>t.value.values,l=()=>t.value.errors,f=()=>t.value.touched,y=()=>e.getDirtyValues(),r=_vue.computed.call(void 0, ()=>t.value.isValid),a=_vue.computed.call(void 0, ()=>t.value.isSubmitting),c=_vue.computed.call(void 0, ()=>t.value.isDirty);return{meta:{isValid:r,isDirty:c,isSubmitting:a,submitError:s,lastResponse:o},getValues:i,getErrors:l,getTouched:f,getDirtyValues:y,submit:S=>b=>(_optionalChain([b, 'optionalAccess', _2 => _2.preventDefault, 'optionalCall', _3 => _3()]),e.submit(S)),onSubmit:S=>b=>(_optionalChain([b, 'optionalAccess', _4 => _4.preventDefault, 'optionalCall', _5 => _5()]),s.value=null,e.submit(async(I,d)=>{try{let u=await S(I,d);o.value=u,s.value=null}catch(u){_chunkK3DCDRWBcjs.h.call(void 0, u)?e.setServerErrors(_chunkK3DCDRWBcjs.i.call(void 0, u)):s.value=u instanceof Error?u:new Error(String(u))}})),reset:()=>{e.reset(),s.value=null,o.value=null},setValues:e.setValues.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),mutations:{pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e)}}}function Y(e,t,s){let o=m();t&&o.registerField(e,t);let n=_nullishCoalesce(_optionalChain([s, 'optionalAccess', _6 => _6.mask]), () => (_optionalChain([o, 'access', _7 => _7.config, 'access', _8 => _8.fields, 'optionalAccess', _9 => _9[e], 'optionalAccess', _10 => _10.mask]))),i=n?typeof n=="string"?_optionalChain([o, 'access', _11 => _11.config, 'access', _12 => _12.masks, 'optionalAccess', _13 => _13[n]]):n:void 0,l=_vue.shallowRef.call(void 0, o.getState()),f=o.subscribe(()=>{l.value=o.getState()});_vue.onUnmounted.call(void 0, ()=>{f(),o.unregisterField&&o.unregisterField(e)});let y=_vue.computed.call(void 0, ()=>_chunkK3DCDRWBcjs.e.call(void 0, l.value.values,e)),r=_vue.computed.call(void 0, ()=>{let v=y.value;return v==null||v===""?"":i?i.format(v):String(v)}),a=_vue.computed.call(void 0, {get:()=>r.value,set:v=>{if(!i){o.setField(e,v);return}o.setField(e,i.parse(String(_nullishCoalesce(v, () => ("")))))}}),c=_vue.computed.call(void 0, ()=>l.value.errors[e]),g=_vue.computed.call(void 0, ()=>l.value.touched[e]?l.value.errors[e]:void 0),F=_vue.computed.call(void 0, ()=>!!l.value.touched[e]),E=_vue.computed.call(void 0, ()=>!!(F.value&&g.value)),S=_vue.computed.call(void 0, ()=>(l.value,o.isFieldValidating(e))),b=_vue.computed.call(void 0, ()=>(l.value,o.isFieldDirty(e))),I=_vue.computed.call(void 0, ()=>(l.value,o.isHidden(e))),d=_vue.computed.call(void 0, ()=>(l.value,o.isRequired(e))),u=_vue.computed.call(void 0, ()=>!!c.value),h=v=>{a.value=v},x=()=>o.blurField(e);return{value:y,displayValue:r,modelValue:a,setValue:h,setBlur:x,onInput:v=>{h(v)},onBlur:()=>{x()},meta:{error:g,touched:F,invalid:E,isValidating:S,isDirty:b,isHidden:I,isRequired:d,hasError:u}}}var V=()=>Math.random().toString(36).substring(2,9);function J(e){let t=m(),s=()=>{let r=_chunkK3DCDRWBcjs.e.call(void 0, t.getState().values,e);return Array.isArray(r)?r:[]},o=s(),n=_vue.ref.call(void 0, o),i=_vue.ref.call(void 0, o.map(V)),l=t.subscribe(()=>{let r=s();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let c=r.length-a.length,g=Array.from({length:c},V);i.value=[...a,...g]}else i.value=a.slice(0,r.length)}});_vue.onUnmounted.call(void 0, ()=>{l(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=_vue.computed.call(void 0, ()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),y=_vue.computed.call(void 0, ()=>n.value.length);return{fields:f,length:y,append:r=>{i.value.push(V()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(V()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,V()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let c=[...i.value],[g]=c.splice(r,1);c.splice(a,0,g),i.value=c,t.moveItem(e,r,a)},swap:(r,a)=>{let c=[...i.value];[c[r],c[a]]=[c[a],c[r]],i.value=c,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(V),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}function Z(){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 o=()=>e.undo(),n=()=>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:o,redo:n}}function re(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function oe(e){let t=m(),s=_vue.ref.call(void 0, t.getStepStatus(e)),o;_vue.onMounted.call(void 0, ()=>{o=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==s.value.hasErrors||r.isDirty!==s.value.isDirty||!re(r.errors,s.value.errors))&&(s.value=r)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([o, 'optionalCall', _14 => _14()])});let n=async()=>{let r=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),l=_vue.computed.call(void 0, ()=>!s.value.hasErrors),f=_vue.computed.call(void 0, ()=>s.value.isDirty),y=_vue.computed.call(void 0, ()=>s.value.errors);return{scopeName:e,status:s,errors:y,validate:n,getErrors:i,isValid:l,isDirty:f}}function ae(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function ue(e){let t=m(),s=_vue.ref.call(void 0, 0),o=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[s.value], () => (""))),n=_vue.ref.call(void 0, t.getStepStatus(o.value)),i;_vue.watch.call(void 0, o,d=>{n.value=t.getStepStatus(d)});let l=()=>{let d=o.value,u=t.getStepStatus(d);(u.hasErrors!==n.value.hasErrors||u.isDirty!==n.value.isDirty||!ae(u.errors,n.value.errors))&&(n.value=u)};_vue.onMounted.call(void 0, ()=>{i=t.subscribe(l)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _15 => _15()])});let f=async()=>{let d=o.value,u=await t.validate({scope:d}),h=t.getStepErrors(d);return{valid:u,errors:h}},y=()=>t.getStepErrors(o.value),r=async()=>{let d=o.value,u=await t.validate({scope:d});if(u)s.value=Math.min(s.value+1,e.length-1);else{let h=t.getStepErrors(d),x=Object.keys(h);x.length>0&&t.markFieldsTouched(x)}return u},a=()=>{s.value=Math.max(s.value-1,0)},c=d=>{s.value=Math.max(0,Math.min(d-1,e.length-1))},g=_vue.computed.call(void 0, ()=>s.value+1),F=_vue.computed.call(void 0, ()=>s.value===0),E=_vue.computed.call(void 0, ()=>s.value>=e.length-1),S=_vue.computed.call(void 0, ()=>!n.value.hasErrors),b=_vue.computed.call(void 0, ()=>n.value.isDirty),I=_vue.computed.call(void 0, ()=>n.value.errors);return{step:g,stepIndex:s,scope:o,next:r,prev:a,goTo:c,isFirst:F,isLast:E,status:n,errors:I,isValid:S,isDirty:b,validate:f,getErrors:y}}function me(e){let t=m(),s=_chunkK3DCDRWBcjs.e.call(void 0, t.getState().values,e),o=_vue.ref.call(void 0, s),n=t.watch(e,i=>{_chunkK3DCDRWBcjs.d.call(void 0, o.value,i)||(o.value=i)});return _vue.onUnmounted.call(void 0, n),_vue.readonly.call(void 0, o)}exports.provideBitStore = z; exports.useBitArray = J; exports.useBitField = Y; exports.useBitForm = _; exports.useBitHistory = Z; exports.useBitScope = oe; exports.useBitSteps = ue; exports.useBitStore = m; exports.useBitWatch = me;
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 _chunkVFLQH47Qcjs = require('../chunk-VFLQH47Q.cjs');var _vue = require('vue');var j=Symbol("BIT_STORE");function _(e){_vue.provide.call(void 0, j,e)}function c(){let e=_vue.inject.call(void 0, j);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function Y(){let e=c(),t=_vue.shallowRef.call(void 0, e.getState()),s=_vue.ref.call(void 0, null),o=_vue.ref.call(void 0, null),n=e.subscribe(()=>{t.value={...e.getState()}});_vue.onUnmounted.call(void 0, n);let i=()=>t.value.values,u=()=>t.value.errors,y=()=>t.value.touched,m=()=>e.getDirtyValues(),r=_vue.computed.call(void 0, ()=>t.value.isValid),a=_vue.computed.call(void 0, ()=>t.value.isSubmitting),d=_vue.computed.call(void 0, ()=>t.value.isDirty);return{meta:{isValid:r,isDirty:d,isSubmitting:a,submitError:s,lastResponse:o},getValues:i,getErrors:u,getTouched:y,getDirtyValues:m,submit:S=>b=>(_optionalChain([b, 'optionalAccess', _2 => _2.preventDefault, 'optionalCall', _3 => _3()]),e.submit(S)),onSubmit:S=>b=>(_optionalChain([b, 'optionalAccess', _4 => _4.preventDefault, 'optionalCall', _5 => _5()]),s.value=null,e.submit(async(E,p)=>{try{let l=await S(E,p);o.value=l,s.value=null}catch(l){_chunkVFLQH47Qcjs.h.call(void 0, l)?e.setServerErrors(_chunkVFLQH47Qcjs.i.call(void 0, l)):s.value=l instanceof Error?l:new Error(String(l))}})),reset:()=>{e.reset(),s.value=null,o.value=null},setValues:e.setValues.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),mutations:{pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e)}}}function P(e,t,s){let o=c();t&&o.registerField(e,t);let n=_nullishCoalesce(_optionalChain([s, 'optionalAccess', _6 => _6.mask]), () => (_optionalChain([o, 'access', _7 => _7.config, 'access', _8 => _8.fields, 'optionalAccess', _9 => _9[e], 'optionalAccess', _10 => _10.mask]))),i=n?typeof n=="string"?_optionalChain([o, 'access', _11 => _11.config, 'access', _12 => _12.masks, 'optionalAccess', _13 => _13[n]]):n:void 0,u=_vue.shallowRef.call(void 0, o.getState()),y=o.subscribe(()=>{u.value=o.getState()});_vue.onUnmounted.call(void 0, ()=>{y(),o.unregisterField&&o.unregisterField(e)});let m=_vue.computed.call(void 0, ()=>_chunkVFLQH47Qcjs.e.call(void 0, u.value.values,e)),r=_vue.computed.call(void 0, ()=>{let v=m.value;return v==null||v===""?"":i?i.format(v):String(v)}),a=_vue.computed.call(void 0, {get:()=>r.value,set:v=>{if(!i){o.setField(e,v);return}o.setField(e,i.parse(String(_nullishCoalesce(v, () => ("")))))}}),d=_vue.computed.call(void 0, ()=>u.value.errors[e]),g=_vue.computed.call(void 0, ()=>u.value.touched[e]?u.value.errors[e]:void 0),h=_vue.computed.call(void 0, ()=>!!u.value.touched[e]),x=_vue.computed.call(void 0, ()=>!!(h.value&&g.value)),S=_vue.computed.call(void 0, ()=>(u.value,o.isFieldValidating(e))),b=_vue.computed.call(void 0, ()=>(u.value,o.isFieldDirty(e))),E=_vue.computed.call(void 0, ()=>(u.value,o.isHidden(e))),p=_vue.computed.call(void 0, ()=>(u.value,o.isRequired(e))),l=_vue.computed.call(void 0, ()=>!!d.value),B=v=>{a.value=v},I=()=>o.blurField(e);return{value:m,displayValue:r,modelValue:a,setValue:B,setBlur:I,onInput:v=>{B(v)},onBlur:()=>{I()},meta:{error:g,touched:h,invalid:x,isValidating:S,isDirty:b,isHidden:E,isRequired:p,hasError:l}}}var R=()=>Math.random().toString(36).substring(2,9);function X(e){let t=c(),s=()=>{let r=_chunkVFLQH47Qcjs.e.call(void 0, t.getState().values,e);return Array.isArray(r)?r:[]},o=s(),n=_vue.ref.call(void 0, o),i=_vue.ref.call(void 0, o.map(R)),u=t.subscribe(()=>{let r=s();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let d=r.length-a.length,g=Array.from({length:d},R);i.value=[...a,...g]}else i.value=a.slice(0,r.length)}});_vue.onUnmounted.call(void 0, ()=>{u(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let y=_vue.computed.call(void 0, ()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),m=_vue.computed.call(void 0, ()=>n.value.length);return{fields:y,length:m,append:r=>{i.value.push(R()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(R()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,R()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let d=[...i.value],[g]=d.splice(r,1);d.splice(a,0,g),i.value=d,t.moveItem(e,r,a)},swap:(r,a)=>{let d=[...i.value];[d[r],d[a]]=[d[a],d[r]],i.value=d,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(R),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}function ee(){let e=c(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, s);let o=()=>e.undo(),n=()=>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:o,redo:n}}function se(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function ne(e){let t=c(),s=_vue.ref.call(void 0, t.getStepStatus(e)),o;_vue.onMounted.call(void 0, ()=>{o=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==s.value.hasErrors||r.isDirty!==s.value.isDirty||!se(r.errors,s.value.errors))&&(s.value=r)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([o, 'optionalCall', _14 => _14()])});let n=async()=>{let r=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),u=_vue.computed.call(void 0, ()=>!s.value.hasErrors),y=_vue.computed.call(void 0, ()=>s.value.isDirty),m=_vue.computed.call(void 0, ()=>s.value.errors);return{scopeName:e,status:s,errors:m,validate:n,getErrors:i,isValid:u,isDirty:y}}function le(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function de(e){let t=c(),s=_vue.ref.call(void 0, 0),o=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[s.value], () => (""))),n=_vue.ref.call(void 0, t.getStepStatus(o.value)),i;_vue.watch.call(void 0, o,p=>{n.value=t.getStepStatus(p)});let u=()=>{let p=o.value,l=t.getStepStatus(p);(l.hasErrors!==n.value.hasErrors||l.isDirty!==n.value.isDirty||!le(l.errors,n.value.errors))&&(n.value=l)};_vue.onMounted.call(void 0, ()=>{i=t.subscribe(u)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _15 => _15()])});let y=async()=>{let p=o.value,l=await t.validate({scope:p}),B=t.getStepErrors(p);return{valid:l,errors:B}},m=()=>t.getStepErrors(o.value),r=async()=>{let p=o.value,l=_optionalChain([t, 'access', _16 => _16.getConfig, 'call', _17 => _17(), 'access', _18 => _18.scopes, 'optionalAccess', _19 => _19[p]]);if(t.hasValidationsInProgress(l))return!1;let B=await t.validate({scope:p});if(B)s.value=Math.min(s.value+1,e.length-1);else{let I=t.getStepErrors(p),U=Object.keys(I);U.length>0&&t.markFieldsTouched(U)}return B},a=()=>{s.value=Math.max(s.value-1,0)},d=p=>{s.value=Math.max(0,Math.min(p-1,e.length-1))},g=_vue.computed.call(void 0, ()=>s.value+1),h=_vue.computed.call(void 0, ()=>s.value===0),x=_vue.computed.call(void 0, ()=>s.value>=e.length-1),S=_vue.computed.call(void 0, ()=>!n.value.hasErrors),b=_vue.computed.call(void 0, ()=>n.value.isDirty),E=_vue.computed.call(void 0, ()=>n.value.errors);return{step:g,stepIndex:s,scope:o,next:r,prev:a,goTo:d,isFirst:h,isLast:x,status:n,errors:E,isValid:S,isDirty:b,validate:y,getErrors:m}}function ve(e){let t=c(),s=_chunkVFLQH47Qcjs.e.call(void 0, t.getState().values,e),o=_vue.ref.call(void 0, s),n=t.watch(e,i=>{_chunkVFLQH47Qcjs.d.call(void 0, o.value,i)||(o.value=i)});return _vue.onUnmounted.call(void 0, n),_vue.readonly.call(void 0, o)}function fe(e,t,s){let o=c(),n=P(e),i=null,u=async m=>{if(m){o.beginFieldValidation(e),await o.clearFieldAsyncError(e);try{let r=await t(m);n.setValue(r.url),i=r.key,await o.clearFieldAsyncError(e)}catch(r){let a=r instanceof Error?r.message:"Upload failed";await o.setFieldAsyncError(e,a)}finally{o.endFieldValidation(e)}}},y=async()=>{if(i&&s)try{await s(i)}catch(m){let r=m instanceof Error?m.message:"Delete failed";await o.setFieldAsyncError(e,r);return}n.setValue(null),i=null,await o.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:_vue.computed.call(void 0, ()=>n.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>n.meta.isValidating.value||!1),upload:u,remove:y}}exports.provideBitStore = _; exports.useBitArray = X; exports.useBitField = P; exports.useBitForm = Y; exports.useBitHistory = ee; exports.useBitScope = ne; exports.useBitSteps = de; exports.useBitStore = c; exports.useBitUpload = fe; exports.useBitWatch = ve;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,8 +1,10 @@
1
- import { B as BitStore } from '../index-BdLuC0wS.cjs';
2
- import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, k as BitFieldDefinition, l as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-CnqfsZpc.cjs';
1
+ import { B as BitStore } from '../index-9vxGUNPP.cjs';
2
+ import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, k as BitFieldDefinition, l as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.cjs';
3
3
  import * as vue from 'vue';
4
+ import { ComputedRef } from 'vue';
4
5
  import * as _vue_reactivity from '@vue/reactivity';
5
6
  import * as _vue_shared from '@vue/shared';
7
+ import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
6
8
 
7
9
  declare function provideBitStore(store: BitStore<any>): void;
8
10
  declare function useBitStore<T extends object>(): BitStore<T>;
@@ -129,4 +131,20 @@ declare function useBitSteps(scopeNames: string[]): UseBitStepsResult;
129
131
 
130
132
  declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): vue.DeepReadonly<vue.UnwrapNestedRefs<[BitPathValue<TForm, P>] extends [vue.Ref<any, any>] ? _vue_shared.IfAny<vue.Ref<any, any> & BitPathValue<TForm, P>, vue.Ref<vue.Ref<any, any> & BitPathValue<TForm, P>, vue.Ref<any, any> & BitPathValue<TForm, P>>, vue.Ref<any, any> & BitPathValue<TForm, P>> : vue.Ref<vue.UnwrapRef<BitPathValue<TForm, P>>, BitPathValue<TForm, P> | vue.UnwrapRef<BitPathValue<TForm, P>>>>>;
131
133
 
132
- export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitScope, useBitSteps, useBitStore, useBitWatch };
134
+ /**
135
+ * Vue Composition API for File Upload
136
+ *
137
+ * Minimal upload API integrated with global field validation lifecycle.
138
+ */
139
+
140
+ interface UseBitUploadResult {
141
+ value: ComputedRef<string | File | null>;
142
+ setValue: (value: string | File | null) => void;
143
+ error: ComputedRef<string | undefined>;
144
+ isValidating: ComputedRef<boolean>;
145
+ upload: (file: File | null | undefined) => Promise<void>;
146
+ remove: () => Promise<void>;
147
+ }
148
+ declare function useBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): UseBitUploadResult;
149
+
150
+ export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, type UseBitUploadResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitScope, useBitSteps, useBitStore, useBitUpload, useBitWatch };
@@ -1,8 +1,10 @@
1
- import { B as BitStore } from '../index-BAOM6INR.js';
2
- import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, k as BitFieldDefinition, l as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-CnqfsZpc.js';
1
+ import { B as BitStore } from '../index-1fP1eJH8.js';
2
+ import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, k as BitFieldDefinition, l as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.js';
3
3
  import * as vue from 'vue';
4
+ import { ComputedRef } from 'vue';
4
5
  import * as _vue_reactivity from '@vue/reactivity';
5
6
  import * as _vue_shared from '@vue/shared';
7
+ import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
6
8
 
7
9
  declare function provideBitStore(store: BitStore<any>): void;
8
10
  declare function useBitStore<T extends object>(): BitStore<T>;
@@ -129,4 +131,20 @@ declare function useBitSteps(scopeNames: string[]): UseBitStepsResult;
129
131
 
130
132
  declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): vue.DeepReadonly<vue.UnwrapNestedRefs<[BitPathValue<TForm, P>] extends [vue.Ref<any, any>] ? _vue_shared.IfAny<vue.Ref<any, any> & BitPathValue<TForm, P>, vue.Ref<vue.Ref<any, any> & BitPathValue<TForm, P>, vue.Ref<any, any> & BitPathValue<TForm, P>>, vue.Ref<any, any> & BitPathValue<TForm, P>> : vue.Ref<vue.UnwrapRef<BitPathValue<TForm, P>>, BitPathValue<TForm, P> | vue.UnwrapRef<BitPathValue<TForm, P>>>>>;
131
133
 
132
- export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitScope, useBitSteps, useBitStore, useBitWatch };
134
+ /**
135
+ * Vue Composition API for File Upload
136
+ *
137
+ * Minimal upload API integrated with global field validation lifecycle.
138
+ */
139
+
140
+ interface UseBitUploadResult {
141
+ value: ComputedRef<string | File | null>;
142
+ setValue: (value: string | File | null) => void;
143
+ error: ComputedRef<string | undefined>;
144
+ isValidating: ComputedRef<boolean>;
145
+ upload: (file: File | null | undefined) => Promise<void>;
146
+ remove: () => Promise<void>;
147
+ }
148
+ declare function useBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): UseBitUploadResult;
149
+
150
+ export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, type UseBitUploadResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitScope, useBitSteps, useBitStore, useBitUpload, useBitWatch };
package/dist/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{d as D,e as R,h as U,i as k}from"../chunk-4KRTZKIQ.js";import{inject as H,provide as q}from"vue";var j=Symbol("BIT_STORE");function z(e){q(j,e)}function m(){let e=H(j);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as P,onUnmounted as K,shallowRef as W,ref as M}from"vue";function _(){let e=m(),t=W(e.getState()),s=M(null),o=M(null),n=e.subscribe(()=>{t.value={...e.getState()}});K(n);let i=()=>t.value.values,l=()=>t.value.errors,f=()=>t.value.touched,y=()=>e.getDirtyValues(),r=P(()=>t.value.isValid),a=P(()=>t.value.isSubmitting),c=P(()=>t.value.isDirty);return{meta:{isValid:r,isDirty:c,isSubmitting:a,submitError:s,lastResponse:o},getValues:i,getErrors:l,getTouched:f,getDirtyValues:y,submit:S=>b=>(b?.preventDefault?.(),e.submit(S)),onSubmit:S=>b=>(b?.preventDefault?.(),s.value=null,e.submit(async(I,d)=>{try{let u=await S(I,d);o.value=u,s.value=null}catch(u){U(u)?e.setServerErrors(k(u)):s.value=u instanceof Error?u:new Error(String(u))}})),reset:()=>{e.reset(),s.value=null,o.value=null},setValues:e.setValues.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),mutations:{pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e)}}}import{computed as p,onUnmounted as L,shallowRef as $}from"vue";function Y(e,t,s){let o=m();t&&o.registerField(e,t);let n=s?.mask??o.config.fields?.[e]?.mask,i=n?typeof n=="string"?o.config.masks?.[n]:n:void 0,l=$(o.getState()),f=o.subscribe(()=>{l.value=o.getState()});L(()=>{f(),o.unregisterField&&o.unregisterField(e)});let y=p(()=>R(l.value.values,e)),r=p(()=>{let v=y.value;return v==null||v===""?"":i?i.format(v):String(v)}),a=p({get:()=>r.value,set:v=>{if(!i){o.setField(e,v);return}o.setField(e,i.parse(String(v??"")))}}),c=p(()=>l.value.errors[e]),g=p(()=>l.value.touched[e]?l.value.errors[e]:void 0),F=p(()=>!!l.value.touched[e]),E=p(()=>!!(F.value&&g.value)),S=p(()=>(l.value,o.isFieldValidating(e))),b=p(()=>(l.value,o.isFieldDirty(e))),I=p(()=>(l.value,o.isHidden(e))),d=p(()=>(l.value,o.isRequired(e))),u=p(()=>!!c.value),h=v=>{a.value=v},x=()=>o.blurField(e);return{value:y,displayValue:r,modelValue:a,setValue:h,setBlur:x,onInput:v=>{h(v)},onBlur:()=>{x()},meta:{error:g,touched:F,invalid:E,isValidating:S,isDirty:b,isHidden:I,isRequired:d,hasError:u}}}import{ref as A,computed as C,onUnmounted as G}from"vue";var V=()=>Math.random().toString(36).substring(2,9);function J(e){let t=m(),s=()=>{let r=R(t.getState().values,e);return Array.isArray(r)?r:[]},o=s(),n=A(o),i=A(o.map(V)),l=t.subscribe(()=>{let r=s();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let c=r.length-a.length,g=Array.from({length:c},V);i.value=[...a,...g]}else i.value=a.slice(0,r.length)}});G(()=>{l(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=C(()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),y=C(()=>n.value.length);return{fields:f,length:y,append:r=>{i.value.push(V()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(V()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,V()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let c=[...i.value],[g]=c.splice(r,1);c.splice(a,0,g),i.value=c,t.moveItem(e,r,a)},swap:(r,a)=>{let c=[...i.value];[c[r],c[a]]=[c[a],c[r]],i.value=c,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(V),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}import{computed as T,onUnmounted as Q,shallowRef as X}from"vue";function Z(){let e=m(),t=X(e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});Q(s);let o=()=>e.undo(),n=()=>e.redo();return{canUndo:T(()=>t.value.canUndo),canRedo:T(()=>t.value.canRedo),historyIndex:T(()=>t.value.historyIndex),historySize:T(()=>t.value.historySize),undo:o,redo:n}}import{ref as N,computed as w,onMounted as ee,onUnmounted as te}from"vue";function re(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function oe(e){let t=m(),s=N(t.getStepStatus(e)),o;ee(()=>{o=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==s.value.hasErrors||r.isDirty!==s.value.isDirty||!re(r.errors,s.value.errors))&&(s.value=r)})}),te(()=>{o?.()});let n=async()=>{let r=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),l=w(()=>!s.value.hasErrors),f=w(()=>s.value.isDirty),y=w(()=>s.value.errors);return{scopeName:e,status:s,errors:y,validate:n,getErrors:i,isValid:l,isDirty:f}}import{ref as O,computed as B,watch as se,onMounted as ne,onUnmounted as ie}from"vue";function ae(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function ue(e){let t=m(),s=O(0),o=B(()=>e[s.value]??""),n=O(t.getStepStatus(o.value)),i;se(o,d=>{n.value=t.getStepStatus(d)});let l=()=>{let d=o.value,u=t.getStepStatus(d);(u.hasErrors!==n.value.hasErrors||u.isDirty!==n.value.isDirty||!ae(u.errors,n.value.errors))&&(n.value=u)};ne(()=>{i=t.subscribe(l)}),ie(()=>{i?.()});let f=async()=>{let d=o.value,u=await t.validate({scope:d}),h=t.getStepErrors(d);return{valid:u,errors:h}},y=()=>t.getStepErrors(o.value),r=async()=>{let d=o.value,u=await t.validate({scope:d});if(u)s.value=Math.min(s.value+1,e.length-1);else{let h=t.getStepErrors(d),x=Object.keys(h);x.length>0&&t.markFieldsTouched(x)}return u},a=()=>{s.value=Math.max(s.value-1,0)},c=d=>{s.value=Math.max(0,Math.min(d-1,e.length-1))},g=B(()=>s.value+1),F=B(()=>s.value===0),E=B(()=>s.value>=e.length-1),S=B(()=>!n.value.hasErrors),b=B(()=>n.value.isDirty),I=B(()=>n.value.errors);return{step:g,stepIndex:s,scope:o,next:r,prev:a,goTo:c,isFirst:F,isLast:E,status:n,errors:I,isValid:S,isDirty:b,validate:f,getErrors:y}}import{ref as le,onUnmounted as ce,readonly as de}from"vue";function me(e){let t=m(),s=R(t.getState().values,e),o=le(s),n=t.watch(e,i=>{D(o.value,i)||(o.value=i)});return ce(n),de(o)}export{z as provideBitStore,J as useBitArray,Y as useBitField,_ as useBitForm,Z as useBitHistory,oe as useBitScope,ue as useBitSteps,m as useBitStore,me as useBitWatch};
1
+ import{d as k,e as V,h as A,i as C}from"../chunk-NDFMZWBP.js";import{inject as z,provide as W}from"vue";var j=Symbol("BIT_STORE");function _(e){W(j,e)}function c(){let e=z(j);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as w,onUnmounted as L,shallowRef as $,ref as M}from"vue";function Y(){let e=c(),t=$(e.getState()),s=M(null),o=M(null),n=e.subscribe(()=>{t.value={...e.getState()}});L(n);let i=()=>t.value.values,u=()=>t.value.errors,y=()=>t.value.touched,m=()=>e.getDirtyValues(),r=w(()=>t.value.isValid),a=w(()=>t.value.isSubmitting),d=w(()=>t.value.isDirty);return{meta:{isValid:r,isDirty:d,isSubmitting:a,submitError:s,lastResponse:o},getValues:i,getErrors:u,getTouched:y,getDirtyValues:m,submit:S=>b=>(b?.preventDefault?.(),e.submit(S)),onSubmit:S=>b=>(b?.preventDefault?.(),s.value=null,e.submit(async(E,p)=>{try{let l=await S(E,p);o.value=l,s.value=null}catch(l){A(l)?e.setServerErrors(C(l)):s.value=l instanceof Error?l:new Error(String(l))}})),reset:()=>{e.reset(),s.value=null,o.value=null},setValues:e.setValues.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),mutations:{pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e)}}}import{computed as f,onUnmounted as G,shallowRef as J}from"vue";function P(e,t,s){let o=c();t&&o.registerField(e,t);let n=s?.mask??o.config.fields?.[e]?.mask,i=n?typeof n=="string"?o.config.masks?.[n]:n:void 0,u=J(o.getState()),y=o.subscribe(()=>{u.value=o.getState()});G(()=>{y(),o.unregisterField&&o.unregisterField(e)});let m=f(()=>V(u.value.values,e)),r=f(()=>{let v=m.value;return v==null||v===""?"":i?i.format(v):String(v)}),a=f({get:()=>r.value,set:v=>{if(!i){o.setField(e,v);return}o.setField(e,i.parse(String(v??"")))}}),d=f(()=>u.value.errors[e]),g=f(()=>u.value.touched[e]?u.value.errors[e]:void 0),h=f(()=>!!u.value.touched[e]),x=f(()=>!!(h.value&&g.value)),S=f(()=>(u.value,o.isFieldValidating(e))),b=f(()=>(u.value,o.isFieldDirty(e))),E=f(()=>(u.value,o.isHidden(e))),p=f(()=>(u.value,o.isRequired(e))),l=f(()=>!!d.value),B=v=>{a.value=v},I=()=>o.blurField(e);return{value:m,displayValue:r,modelValue:a,setValue:B,setBlur:I,onInput:v=>{B(v)},onBlur:()=>{I()},meta:{error:g,touched:h,invalid:x,isValidating:S,isDirty:b,isHidden:E,isRequired:p,hasError:l}}}import{ref as O,computed as H,onUnmounted as Q}from"vue";var R=()=>Math.random().toString(36).substring(2,9);function X(e){let t=c(),s=()=>{let r=V(t.getState().values,e);return Array.isArray(r)?r:[]},o=s(),n=O(o),i=O(o.map(R)),u=t.subscribe(()=>{let r=s();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let d=r.length-a.length,g=Array.from({length:d},R);i.value=[...a,...g]}else i.value=a.slice(0,r.length)}});Q(()=>{u(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let y=H(()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),m=H(()=>n.value.length);return{fields:y,length:m,append:r=>{i.value.push(R()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(R()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,R()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let d=[...i.value],[g]=d.splice(r,1);d.splice(a,0,g),i.value=d,t.moveItem(e,r,a)},swap:(r,a)=>{let d=[...i.value];[d[r],d[a]]=[d[a],d[r]],i.value=d,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(R),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}import{computed as T,onUnmounted as Z,shallowRef as N}from"vue";function ee(){let e=c(),t=N(e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});Z(s);let o=()=>e.undo(),n=()=>e.redo();return{canUndo:T(()=>t.value.canUndo),canRedo:T(()=>t.value.canRedo),historyIndex:T(()=>t.value.historyIndex),historySize:T(()=>t.value.historySize),undo:o,redo:n}}import{ref as te,computed as D,onMounted as re,onUnmounted as oe}from"vue";function se(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function ne(e){let t=c(),s=te(t.getStepStatus(e)),o;re(()=>{o=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==s.value.hasErrors||r.isDirty!==s.value.isDirty||!se(r.errors,s.value.errors))&&(s.value=r)})}),oe(()=>{o?.()});let n=async()=>{let r=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),u=D(()=>!s.value.hasErrors),y=D(()=>s.value.isDirty),m=D(()=>s.value.errors);return{scopeName:e,status:s,errors:m,validate:n,getErrors:i,isValid:u,isDirty:y}}import{ref as q,computed as F,watch as ie,onMounted as ae,onUnmounted as ue}from"vue";function le(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function de(e){let t=c(),s=q(0),o=F(()=>e[s.value]??""),n=q(t.getStepStatus(o.value)),i;ie(o,p=>{n.value=t.getStepStatus(p)});let u=()=>{let p=o.value,l=t.getStepStatus(p);(l.hasErrors!==n.value.hasErrors||l.isDirty!==n.value.isDirty||!le(l.errors,n.value.errors))&&(n.value=l)};ae(()=>{i=t.subscribe(u)}),ue(()=>{i?.()});let y=async()=>{let p=o.value,l=await t.validate({scope:p}),B=t.getStepErrors(p);return{valid:l,errors:B}},m=()=>t.getStepErrors(o.value),r=async()=>{let p=o.value,l=t.getConfig().scopes?.[p];if(t.hasValidationsInProgress(l))return!1;let B=await t.validate({scope:p});if(B)s.value=Math.min(s.value+1,e.length-1);else{let I=t.getStepErrors(p),U=Object.keys(I);U.length>0&&t.markFieldsTouched(U)}return B},a=()=>{s.value=Math.max(s.value-1,0)},d=p=>{s.value=Math.max(0,Math.min(p-1,e.length-1))},g=F(()=>s.value+1),h=F(()=>s.value===0),x=F(()=>s.value>=e.length-1),S=F(()=>!n.value.hasErrors),b=F(()=>n.value.isDirty),E=F(()=>n.value.errors);return{step:g,stepIndex:s,scope:o,next:r,prev:a,goTo:d,isFirst:h,isLast:x,status:n,errors:E,isValid:S,isDirty:b,validate:y,getErrors:m}}import{ref as ce,onUnmounted as me,readonly as pe}from"vue";function ve(e){let t=c(),s=V(t.getState().values,e),o=ce(s),n=t.watch(e,i=>{k(o.value,i)||(o.value=i)});return me(n),pe(o)}import{computed as K}from"vue";function fe(e,t,s){let o=c(),n=P(e),i=null,u=async m=>{if(m){o.beginFieldValidation(e),await o.clearFieldAsyncError(e);try{let r=await t(m);n.setValue(r.url),i=r.key,await o.clearFieldAsyncError(e)}catch(r){let a=r instanceof Error?r.message:"Upload failed";await o.setFieldAsyncError(e,a)}finally{o.endFieldValidation(e)}}},y=async()=>{if(i&&s)try{await s(i)}catch(m){let r=m instanceof Error?m.message:"Delete failed";await o.setFieldAsyncError(e,r);return}n.setValue(null),i=null,await o.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:K(()=>n.meta.error.value),isValidating:K(()=>n.meta.isValidating.value||!1),upload:u,remove:y}}export{_ as provideBitStore,X as useBitArray,P as useBitField,Y as useBitForm,ee as useBitHistory,ne as useBitScope,de as useBitSteps,c as useBitStore,fe as useBitUpload,ve as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map