@lehnihon/bit-form 2.2.7 → 2.2.9

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 (167) hide show
  1. package/README.md +6 -6
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +18 -15
  5. package/dist/angular/index.d.ts +18 -15
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/{array-controller-DtkmcnUr.d.ts → array-controller-C61ByyG6.d.ts} +5 -5
  9. package/dist/{array-controller-C1A5VKYd.d.cts → array-controller-CtlqjA0e.d.cts} +5 -5
  10. package/dist/bus-BKuMV3E7.d.ts +19 -0
  11. package/dist/bus-WOHGxuVy.d.cts +19 -0
  12. package/dist/chunk-2QLQPMCZ.js +2 -0
  13. package/dist/chunk-2QLQPMCZ.js.map +1 -0
  14. package/dist/chunk-3KI3GEU3.cjs +2 -0
  15. package/dist/chunk-3KI3GEU3.cjs.map +1 -0
  16. package/dist/chunk-5NA2TFPG.js +1 -0
  17. package/dist/chunk-5NA2TFPG.js.map +1 -0
  18. package/dist/chunk-6LNXTSZ6.cjs +2 -0
  19. package/dist/chunk-6LNXTSZ6.cjs.map +1 -0
  20. package/dist/chunk-BSGJ3T5S.cjs +2 -0
  21. package/dist/chunk-BSGJ3T5S.cjs.map +1 -0
  22. package/dist/chunk-GGZPA7AO.cjs +2 -0
  23. package/dist/chunk-GGZPA7AO.cjs.map +1 -0
  24. package/dist/chunk-ICYXODTQ.js +2 -0
  25. package/dist/chunk-ICYXODTQ.js.map +1 -0
  26. package/dist/chunk-J5ALITQW.cjs +2 -0
  27. package/dist/chunk-J5ALITQW.cjs.map +1 -0
  28. package/dist/chunk-J5GQLEVA.js +2 -0
  29. package/dist/chunk-J5GQLEVA.js.map +1 -0
  30. package/dist/chunk-KDHPLXZF.cjs +2 -0
  31. package/dist/chunk-KDHPLXZF.cjs.map +1 -0
  32. package/dist/chunk-N4HCGMMM.js +2 -0
  33. package/dist/chunk-N4HCGMMM.js.map +1 -0
  34. package/dist/chunk-OLQVH24Z.cjs +2 -0
  35. package/dist/chunk-OLQVH24Z.cjs.map +1 -0
  36. package/dist/chunk-QX2IVNMK.js +2 -0
  37. package/dist/chunk-QX2IVNMK.js.map +1 -0
  38. package/dist/chunk-RHMJPKNV.cjs +2 -0
  39. package/dist/chunk-RHMJPKNV.cjs.map +1 -0
  40. package/dist/chunk-UARLAXZX.js +2 -0
  41. package/dist/chunk-UARLAXZX.js.map +1 -0
  42. package/dist/chunk-UIKO6GGW.js +2 -0
  43. package/dist/chunk-UIKO6GGW.js.map +1 -0
  44. package/dist/chunk-W2E5UIXT.js +2 -0
  45. package/dist/chunk-W2E5UIXT.js.map +1 -0
  46. package/dist/chunk-W5CLDRRE.cjs +1 -0
  47. package/dist/chunk-W5CLDRRE.cjs.map +1 -0
  48. package/dist/chunk-X5UCRGYJ.cjs +2 -0
  49. package/dist/chunk-X5UCRGYJ.cjs.map +1 -0
  50. package/dist/chunk-Y3XVQGCU.js +2 -0
  51. package/dist/chunk-Y3XVQGCU.js.map +1 -0
  52. package/dist/cli/index.cjs +2 -2
  53. package/dist/core/bindings.cjs +2 -0
  54. package/dist/core/bindings.cjs.map +1 -0
  55. package/dist/core/bindings.d.cts +89 -0
  56. package/dist/core/bindings.d.ts +89 -0
  57. package/dist/core/bindings.js +2 -0
  58. package/dist/core/bindings.js.map +1 -0
  59. package/dist/core/status.cjs +2 -0
  60. package/dist/core/status.cjs.map +1 -0
  61. package/dist/core/status.d.cts +44 -0
  62. package/dist/core/status.d.ts +44 -0
  63. package/dist/core/status.js +2 -0
  64. package/dist/core/status.js.map +1 -0
  65. package/dist/core/store.cjs +2 -0
  66. package/dist/core/store.cjs.map +1 -0
  67. package/dist/core/store.d.cts +84 -0
  68. package/dist/core/store.d.ts +84 -0
  69. package/dist/core/store.js +2 -0
  70. package/dist/core/store.js.map +1 -0
  71. package/dist/core/utils.cjs +2 -0
  72. package/dist/core/utils.cjs.map +1 -0
  73. package/dist/core/utils.d.cts +74 -0
  74. package/dist/core/utils.d.ts +74 -0
  75. package/dist/core/utils.js +2 -0
  76. package/dist/core/utils.js.map +1 -0
  77. package/dist/core.cjs +1 -1
  78. package/dist/core.cjs.map +1 -1
  79. package/dist/core.d.cts +14 -122
  80. package/dist/core.d.ts +14 -122
  81. package/dist/core.js +1 -1
  82. package/dist/devtools/bridge.cjs +1 -1
  83. package/dist/devtools/bridge.cjs.map +1 -1
  84. package/dist/devtools/bridge.d.cts +3 -2
  85. package/dist/devtools/bridge.d.ts +3 -2
  86. package/dist/devtools/bridge.js +1 -1
  87. package/dist/devtools/index.cjs +2 -2
  88. package/dist/devtools/index.cjs.map +1 -1
  89. package/dist/devtools/index.d.cts +3 -2
  90. package/dist/devtools/index.d.ts +3 -2
  91. package/dist/devtools/index.js +1 -1
  92. package/dist/devtools/index.js.map +1 -1
  93. package/dist/{field-binding-X5TkvfUt.d.cts → field-binding-B_OX3bjp.d.cts} +1 -1
  94. package/dist/{field-binding-Bi1g-D8X.d.ts → field-binding-MX6jVQbT.d.ts} +1 -1
  95. package/dist/index.cjs +1 -1
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.d.cts +8 -85
  98. package/dist/index.d.ts +8 -85
  99. package/dist/index.js +1 -1
  100. package/dist/mask.cjs +1 -1
  101. package/dist/mask.cjs.map +1 -1
  102. package/dist/mask.d.cts +2 -2
  103. package/dist/mask.d.ts +2 -2
  104. package/dist/mask.js +1 -1
  105. package/dist/mask.js.map +1 -1
  106. package/dist/meta-types-Bzmm21TP.d.cts +18 -0
  107. package/dist/meta-types-Bzmm21TP.d.ts +18 -0
  108. package/dist/react/index.cjs +1 -1
  109. package/dist/react/index.cjs.map +1 -1
  110. package/dist/react/index.d.cts +11 -9
  111. package/dist/react/index.d.ts +11 -9
  112. package/dist/react/index.js +1 -1
  113. package/dist/react/index.js.map +1 -1
  114. package/dist/react-native/index.cjs +1 -1
  115. package/dist/react-native/index.cjs.map +1 -1
  116. package/dist/react-native/index.d.cts +9 -7
  117. package/dist/react-native/index.d.ts +9 -7
  118. package/dist/react-native/index.js +1 -1
  119. package/dist/react-native/index.js.map +1 -1
  120. package/dist/resolvers/index.cjs +1 -1
  121. package/dist/resolvers/index.cjs.map +1 -1
  122. package/dist/resolvers/index.d.cts +3 -2
  123. package/dist/resolvers/index.d.ts +3 -2
  124. package/dist/resolvers/index.js +1 -1
  125. package/dist/resolvers/joi.d.cts +3 -2
  126. package/dist/resolvers/joi.d.ts +3 -2
  127. package/dist/resolvers/yup.d.cts +3 -2
  128. package/dist/resolvers/yup.d.ts +3 -2
  129. package/dist/resolvers/zod.d.cts +3 -2
  130. package/dist/resolvers/zod.d.ts +3 -2
  131. package/dist/store-api-types-Bm3EAqR_.d.cts +161 -0
  132. package/dist/store-api-types-DfTFy2h4.d.ts +161 -0
  133. package/dist/{bus-DgilLszS.d.ts → types-CRCP4Pgq.d.ts} +82 -45
  134. package/dist/{types-CUXh7PqD.d.cts → types-D8DgIUhJ.d.cts} +1 -1
  135. package/dist/{types-CUXh7PqD.d.ts → types-D8DgIUhJ.d.ts} +1 -1
  136. package/dist/{bus-rcUiufS7.d.cts → types-SOg9xEce.d.cts} +82 -45
  137. package/dist/{upload-EXnJLq8k.d.cts → upload-C2mpfhp1.d.cts} +1 -1
  138. package/dist/{upload-EXnJLq8k.d.ts → upload-C2mpfhp1.d.ts} +1 -1
  139. package/dist/{use-bit-persist-CIKFwtdM.d.cts → use-bit-persist-BDMZmxBh.d.ts} +8 -6
  140. package/dist/{use-bit-persist-Bc06fmqZ.d.ts → use-bit-persist-CBTZIMc5.d.cts} +8 -6
  141. package/dist/utils.cjs +2 -0
  142. package/dist/utils.cjs.map +1 -0
  143. package/dist/utils.d.cts +6 -0
  144. package/dist/utils.d.ts +6 -0
  145. package/dist/utils.js +2 -0
  146. package/dist/utils.js.map +1 -0
  147. package/dist/vue/index.cjs +1 -1
  148. package/dist/vue/index.cjs.map +1 -1
  149. package/dist/vue/index.d.cts +9 -7
  150. package/dist/vue/index.d.ts +9 -7
  151. package/dist/vue/index.js +1 -1
  152. package/dist/vue/index.js.map +1 -1
  153. package/package.json +39 -14
  154. package/dist/chunk-DIEE6LUO.js +0 -2
  155. package/dist/chunk-DIEE6LUO.js.map +0 -1
  156. package/dist/chunk-FUUQB4DV.cjs +0 -2
  157. package/dist/chunk-FUUQB4DV.cjs.map +0 -1
  158. package/dist/chunk-KWLLYQOL.cjs +0 -2
  159. package/dist/chunk-KWLLYQOL.cjs.map +0 -1
  160. package/dist/chunk-LIYZPSWM.js +0 -2
  161. package/dist/chunk-LIYZPSWM.js.map +0 -1
  162. package/dist/chunk-QAL6J5GQ.cjs +0 -2
  163. package/dist/chunk-QAL6J5GQ.cjs.map +0 -1
  164. package/dist/chunk-SA47B5OP.js +0 -2
  165. package/dist/chunk-SA47B5OP.js.map +0 -1
  166. package/dist/store-api-types-9ipdute1.d.ts +0 -187
  167. package/dist/store-api-types-B6_bPoVI.d.cts +0 -187
@@ -0,0 +1,84 @@
1
+ export { createBitStore, createFrameworkStoreAdapter, resolveBitStoreForHooks } from '../index.js';
2
+ import { e as BitStoreApi, g as BitStoreFeatureApi, h as BitStoreObserveSliceApi, i as BitStoreReadSliceApi, j as BitStoreWriteSliceApi } from '../store-api-types-DfTFy2h4.js';
3
+ export { B as BitEqualityFn, a as BitFrameworkConfig, b as BitFrameworkStoreApi, c as BitSelector, d as BitSelectorSubscriptionOptions } from '../store-api-types-DfTFy2h4.js';
4
+ export { B as BitFormMeta, a as BitHistoryMetadata, b as BitValidationOptions } from '../meta-types-Bzmm21TP.js';
5
+ export { B as BitAfterSubmitEvent, a as BitAfterValidateEvent, b as BitArrayItem, c as BitArrayPath, d as BitBeforeSubmitEvent, e as BitBeforeValidateEvent, f as BitBus, g as BitBusListener, h as BitBusStorePort, i as BitComputedFn, j as BitConfig, k as BitErrors, l as BitFieldChangeEvent, m as BitFieldChangeMeta, n as BitFieldConditional, o as BitFieldDefinition, p as BitFieldState, q as BitFieldValidation, r as BitFormGlobal, s as BitHistoryConfig, t as BitNormalizeFn, u as BitPath, v as BitPathValue, w as BitPersistConfig, x as BitPersistMetadata, y as BitPersistMode, z as BitPersistStorageAdapter, A as BitPlugin, C as BitPluginContext, D as BitPluginErrorEvent, E as BitPluginHooks, F as BitScheduler, G as BitState, H as BitSubmitResult, I as BitTouched, J as BitTransformFn, K as BitValidationConfig, L as DeepPartial, M as DevToolsOptions, S as ScopeStatus, V as ValidateScopeResult, N as ValidatorFn } from '../types-CRCP4Pgq.js';
6
+ export { b as bitBus, c as createBitBus } from '../bus-BKuMV3E7.js';
7
+ import '../types-D8DgIUhJ.js';
8
+
9
+ /**
10
+ * Extracts the `read` slice from a BitStore instance.
11
+ *
12
+ * Use this to pass a read-only API to utility functions and services.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * function useFormValidation(read: BitStoreReadSliceApi<MyForm>) {
17
+ * const isValid = read.getIsValid();
18
+ * // ...
19
+ * }
20
+ *
21
+ * useFormValidation(extractReadSlice(store));
22
+ * ```
23
+ */
24
+ declare function extractReadSlice<T extends object>(store: BitStoreApi<T>): BitStoreReadSliceApi<T>;
25
+ /**
26
+ * Extracts the `observe` slice from a BitStore instance.
27
+ *
28
+ * Use this to pass an observation-only API to framework hooks and subscriptions.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * function useFormSubscribe(observe: BitStoreObserveSliceApi<MyForm>) {
33
+ * useEffect(() => observe.subscribe(handler), [observe]);
34
+ * }
35
+ *
36
+ * useFormSubscribe(extractObserveSlice(store));
37
+ * ```
38
+ */
39
+ declare function extractObserveSlice<T extends object>(store: BitStoreApi<T>): BitStoreObserveSliceApi<T>;
40
+ /**
41
+ * Extracts the `write` slice from a BitStore instance.
42
+ *
43
+ * Use this to pass a write-only API for form mutations.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * function useFormActions(write: BitStoreWriteSliceApi<MyForm>) {
48
+ * const handleChange = (path: string, value: any) => {
49
+ * write.setField(path, value);
50
+ * };
51
+ * }
52
+ *
53
+ * useFormActions(extractWriteSlice(store));
54
+ * ```
55
+ */
56
+ declare function extractWriteSlice<T extends object>(store: BitStoreApi<T>): BitStoreWriteSliceApi<T>;
57
+ /**
58
+ * Extracts the `feature` slice from a BitStore instance.
59
+ *
60
+ * Use this to pass feature-specific APIs (validation, history, persistence, etc.)
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * function useFormValidation(feature: BitStoreFeatureApi<MyForm>) {
65
+ * const isValid = await feature.validate();
66
+ * }
67
+ *
68
+ * useFormValidation(extractFeatureSlice(store));
69
+ * ```
70
+ */
71
+ declare function extractFeatureSlice<T extends object>(store: BitStoreApi<T>): BitStoreFeatureApi<T>;
72
+ /**
73
+ * Extracts multiple slices at once for convenience.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const [readApi, writeApi] = extractSlices(store, ["read", "write"]);
78
+ * ```
79
+ */
80
+ declare function extractSlices<T extends object, K extends (keyof BitStoreApi<T>)[]>(store: BitStoreApi<T>, keys: readonly [...K]): {
81
+ [P in K[number]]: BitStoreApi<T>[P];
82
+ };
83
+
84
+ export { BitStoreApi, extractFeatureSlice, extractObserveSlice, extractReadSlice, extractSlices, extractWriteSlice };
@@ -0,0 +1,2 @@
1
+ import{a,b,c,d,e,f,g,h,i,j}from"../chunk-UARLAXZX.js";import"../chunk-UIKO6GGW.js";import"../chunk-2QLQPMCZ.js";import"../chunk-QX2IVNMK.js";export{a as bitBus,b as createBitBus,e as createBitStore,d as createFrameworkStoreAdapter,i as extractFeatureSlice,g as extractObserveSlice,f as extractReadSlice,j as extractSlices,h as extractWriteSlice,c as resolveBitStoreForHooks};
2
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3KI3GEU3cjs = require('../chunk-3KI3GEU3.cjs');var _chunkOLQVH24Zcjs = require('../chunk-OLQVH24Z.cjs');var _chunk6LNXTSZ6cjs = require('../chunk-6LNXTSZ6.cjs');exports.areFieldSnapshotsEqual = _chunkOLQVH24Zcjs.b; exports.cleanPrefixedKeys = _chunk6LNXTSZ6cjs.j; exports.createFieldStateSnapshot = _chunkOLQVH24Zcjs.a; exports.deepClone = _chunk6LNXTSZ6cjs.a; exports.deepEqual = _chunk6LNXTSZ6cjs.d; exports.deepMerge = _chunk6LNXTSZ6cjs.b; exports.deriveFieldMeta = _chunk3KI3GEU3cjs.a; exports.extractServerErrors = _chunk6LNXTSZ6cjs.m; exports.getDeepValue = _chunk6LNXTSZ6cjs.f; exports.isValidationErrorShape = _chunk6LNXTSZ6cjs.l; exports.setDeepValue = _chunk6LNXTSZ6cjs.g; exports.valueEqual = _chunk6LNXTSZ6cjs.c;
2
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/core/utils.cjs"],"names":[],"mappings":"AAAA,kIAAyC,yDAAiD,yDAA8E,mjBAAoQ","file":"/home/runner/work/bit-form/bit-form/dist/core/utils.cjs"}
@@ -0,0 +1,74 @@
1
+ export { cleanPrefixedKeys, extractServerErrors, isValidationErrorShape } from '../utils.cjs';
2
+ import { p as BitFieldState } from '../types-SOg9xEce.cjs';
3
+ import '../types-D8DgIUhJ.cjs';
4
+
5
+ declare function deepClone<T>(obj: T): T;
6
+ declare function deepMerge<T>(target: T, source: any): T;
7
+ declare function valueEqual(a: any, b: any): boolean;
8
+ declare function deepEqual(a: any, b: any): boolean;
9
+
10
+ declare function getDeepValue(obj: any, path: string): any;
11
+ declare function setDeepValue(obj: any, path: string, value: any): any;
12
+
13
+ /**
14
+ * Field State Snapshot Utilities
15
+ *
16
+ * Shared utilities for creating and managing field state snapshots across frameworks
17
+ * (React, Vue, Angular). Reduces code duplication while maintaining type safety.
18
+ */
19
+
20
+ /**
21
+ * Represents a stable snapshot of field state that can be compared for equality.
22
+ */
23
+ type BitFieldSnapshot<TValue = unknown> = BitFieldState<Record<string, unknown>, TValue>;
24
+ /**
25
+ * Creates or reuses a field state snapshot with shallow equality checking.
26
+ *
27
+ * This function prevents unnecessary re-renders in frameworks like React by
28
+ * returning the same object reference when field state hasn't changed.
29
+ *
30
+ * @param nextState - The new field state from the store
31
+ * @param lastSnapshot - The previous snapshot (can be null on first call)
32
+ * @returns A stable snapshot object that can be used for equality comparison
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const snapshot = createFieldStateSnapshot(store.getFieldState("email"), lastSnapshot);
37
+ * if (snapshot !== lastSnapshot) {
38
+ * // Field state changed, update component
39
+ * render(snapshot);
40
+ * }
41
+ * ```
42
+ */
43
+ declare function createFieldStateSnapshot<TValue = unknown>(nextState: {
44
+ value: TValue;
45
+ error: string | undefined;
46
+ touched: boolean;
47
+ isHidden: boolean;
48
+ isRequired: boolean;
49
+ isDirty: boolean;
50
+ isValidating: boolean;
51
+ }, lastSnapshot: BitFieldSnapshot<TValue> | null): BitFieldSnapshot<TValue>;
52
+ /**
53
+ * Deep comparison utility for field state snapshots.
54
+ * Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).
55
+ *
56
+ * @param snapshotA - First snapshot
57
+ * @param snapshotB - Second snapshot
58
+ * @returns true if snapshots are deeply equal
59
+ */
60
+ declare function areFieldSnapshotsEqual(snapshotA: BitFieldSnapshot | null | undefined, snapshotB: BitFieldSnapshot | null | undefined): boolean;
61
+
62
+ interface BitDerivedFieldMeta {
63
+ error: string | undefined;
64
+ touched: boolean;
65
+ invalid: boolean;
66
+ isValidating: boolean;
67
+ isDirty: boolean;
68
+ isHidden: boolean;
69
+ isRequired: boolean;
70
+ hasError: boolean;
71
+ }
72
+ declare function deriveFieldMeta<T extends object, TValue>(state: Readonly<BitFieldState<T, TValue>>): BitDerivedFieldMeta;
73
+
74
+ export { type BitDerivedFieldMeta, type BitFieldSnapshot, areFieldSnapshotsEqual, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, deriveFieldMeta, getDeepValue, setDeepValue, valueEqual };
@@ -0,0 +1,74 @@
1
+ export { cleanPrefixedKeys, extractServerErrors, isValidationErrorShape } from '../utils.js';
2
+ import { p as BitFieldState } from '../types-CRCP4Pgq.js';
3
+ import '../types-D8DgIUhJ.js';
4
+
5
+ declare function deepClone<T>(obj: T): T;
6
+ declare function deepMerge<T>(target: T, source: any): T;
7
+ declare function valueEqual(a: any, b: any): boolean;
8
+ declare function deepEqual(a: any, b: any): boolean;
9
+
10
+ declare function getDeepValue(obj: any, path: string): any;
11
+ declare function setDeepValue(obj: any, path: string, value: any): any;
12
+
13
+ /**
14
+ * Field State Snapshot Utilities
15
+ *
16
+ * Shared utilities for creating and managing field state snapshots across frameworks
17
+ * (React, Vue, Angular). Reduces code duplication while maintaining type safety.
18
+ */
19
+
20
+ /**
21
+ * Represents a stable snapshot of field state that can be compared for equality.
22
+ */
23
+ type BitFieldSnapshot<TValue = unknown> = BitFieldState<Record<string, unknown>, TValue>;
24
+ /**
25
+ * Creates or reuses a field state snapshot with shallow equality checking.
26
+ *
27
+ * This function prevents unnecessary re-renders in frameworks like React by
28
+ * returning the same object reference when field state hasn't changed.
29
+ *
30
+ * @param nextState - The new field state from the store
31
+ * @param lastSnapshot - The previous snapshot (can be null on first call)
32
+ * @returns A stable snapshot object that can be used for equality comparison
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const snapshot = createFieldStateSnapshot(store.getFieldState("email"), lastSnapshot);
37
+ * if (snapshot !== lastSnapshot) {
38
+ * // Field state changed, update component
39
+ * render(snapshot);
40
+ * }
41
+ * ```
42
+ */
43
+ declare function createFieldStateSnapshot<TValue = unknown>(nextState: {
44
+ value: TValue;
45
+ error: string | undefined;
46
+ touched: boolean;
47
+ isHidden: boolean;
48
+ isRequired: boolean;
49
+ isDirty: boolean;
50
+ isValidating: boolean;
51
+ }, lastSnapshot: BitFieldSnapshot<TValue> | null): BitFieldSnapshot<TValue>;
52
+ /**
53
+ * Deep comparison utility for field state snapshots.
54
+ * Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).
55
+ *
56
+ * @param snapshotA - First snapshot
57
+ * @param snapshotB - Second snapshot
58
+ * @returns true if snapshots are deeply equal
59
+ */
60
+ declare function areFieldSnapshotsEqual(snapshotA: BitFieldSnapshot | null | undefined, snapshotB: BitFieldSnapshot | null | undefined): boolean;
61
+
62
+ interface BitDerivedFieldMeta {
63
+ error: string | undefined;
64
+ touched: boolean;
65
+ invalid: boolean;
66
+ isValidating: boolean;
67
+ isDirty: boolean;
68
+ isHidden: boolean;
69
+ isRequired: boolean;
70
+ hasError: boolean;
71
+ }
72
+ declare function deriveFieldMeta<T extends object, TValue>(state: Readonly<BitFieldState<T, TValue>>): BitDerivedFieldMeta;
73
+
74
+ export { type BitDerivedFieldMeta, type BitFieldSnapshot, areFieldSnapshotsEqual, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, deriveFieldMeta, getDeepValue, setDeepValue, valueEqual };
@@ -0,0 +1,2 @@
1
+ import{a as l}from"../chunk-ICYXODTQ.js";import{a as j,b as k}from"../chunk-2QLQPMCZ.js";import{a,b,c,d,f as e,g as f,j as g,l as h,m as i}from"../chunk-QX2IVNMK.js";export{k as areFieldSnapshotsEqual,g as cleanPrefixedKeys,j as createFieldStateSnapshot,a as deepClone,d as deepEqual,b as deepMerge,l as deriveFieldMeta,i as extractServerErrors,e as getDeepValue,h as isValidationErrorShape,f as setDeepValue,c as valueEqual};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/core.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkFUUQB4DVcjs = require('./chunk-FUUQB4DV.cjs');var _chunkPFPGASVZcjs = require('./chunk-PFPGASVZ.cjs');exports.areFieldSnapshotsEqual = _chunkFUUQB4DVcjs.v; exports.areScopeErrorsEqual = _chunkFUUQB4DVcjs.o; exports.bitBus = _chunkFUUQB4DVcjs.j; exports.cleanPrefixedKeys = _chunkFUUQB4DVcjs.g; exports.cleanupRegisteredField = _chunkFUUQB4DVcjs.G; exports.cleanupRegisteredPrefix = _chunkFUUQB4DVcjs.H; exports.createArrayBindingController = _chunkFUUQB4DVcjs.F; exports.createBitBus = _chunkFUUQB4DVcjs.k; exports.createBitStore = _chunkFUUQB4DVcjs.t; exports.createFieldStateSnapshot = _chunkFUUQB4DVcjs.u; exports.createFrameworkFormBinding = _chunkFUUQB4DVcjs.C; exports.createFrameworkMaskedFieldBinding = _chunkFUUQB4DVcjs.E; exports.deepClone = _chunkFUUQB4DVcjs.a; exports.deepEqual = _chunkFUUQB4DVcjs.d; exports.deepMerge = _chunkFUUQB4DVcjs.b; exports.deriveFieldMeta = _chunkFUUQB4DVcjs.I; exports.extractServerErrors = _chunkFUUQB4DVcjs.i; exports.formatMaskedValue = _chunkPFPGASVZcjs.b; exports.getDeepValue = _chunkFUUQB4DVcjs.e; exports.getScopeSubscriptionPaths = _chunkFUUQB4DVcjs.q; exports.isBitFieldInputEventObject = _chunkPFPGASVZcjs.a; exports.isHistoryMetaEqual = _chunkFUUQB4DVcjs.l; exports.isScopeStatusEqual = _chunkFUUQB4DVcjs.p; exports.isValidationErrorShape = _chunkFUUQB4DVcjs.h; exports.observeFormMetaSnapshot = _chunkFUUQB4DVcjs.y; exports.observeHistoryMetaSnapshot = _chunkFUUQB4DVcjs.n; exports.observePersistMetaSnapshot = _chunkFUUQB4DVcjs.B; exports.observeScopeStatusSnapshot = _chunkFUUQB4DVcjs.r; exports.parseMaskedInput = _chunkPFPGASVZcjs.c; exports.readFormMetaSnapshot = _chunkFUUQB4DVcjs.w; exports.readHistoryMetaSnapshot = _chunkFUUQB4DVcjs.m; exports.readPersistMetaSnapshot = _chunkFUUQB4DVcjs.z; exports.resolveBitStoreForHooks = _chunkFUUQB4DVcjs.s; exports.setDeepValue = _chunkFUUQB4DVcjs.f; exports.subscribeFieldState = _chunkFUUQB4DVcjs.D; exports.subscribeFormMetaSnapshot = _chunkFUUQB4DVcjs.x; exports.subscribePersistMetaSnapshot = _chunkFUUQB4DVcjs.A; exports.valueEqual = _chunkFUUQB4DVcjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-W5CLDRRE.cjs');var _chunkJ5ALITQWcjs = require('./chunk-J5ALITQW.cjs');var _chunkKDHPLXZFcjs = require('./chunk-KDHPLXZF.cjs');var _chunkBSGJ3T5Scjs = require('./chunk-BSGJ3T5S.cjs');var _chunkRHMJPKNVcjs = require('./chunk-RHMJPKNV.cjs');var _chunk3KI3GEU3cjs = require('./chunk-3KI3GEU3.cjs');var _chunkOLQVH24Zcjs = require('./chunk-OLQVH24Z.cjs');var _chunk6LNXTSZ6cjs = require('./chunk-6LNXTSZ6.cjs');var _chunkPFPGASVZcjs = require('./chunk-PFPGASVZ.cjs');exports.areFieldSnapshotsEqual = _chunkOLQVH24Zcjs.b; exports.areScopeErrorsEqual = _chunkRHMJPKNVcjs.a; exports.bitBus = _chunkJ5ALITQWcjs.a; exports.cleanPrefixedKeys = _chunk6LNXTSZ6cjs.j; exports.cleanupRegisteredField = _chunkKDHPLXZFcjs.j; exports.cleanupRegisteredPrefix = _chunkKDHPLXZFcjs.k; exports.createArrayBinding = _chunkKDHPLXZFcjs.g; exports.createBitBus = _chunkJ5ALITQWcjs.b; exports.createBitStore = _chunkJ5ALITQWcjs.e; exports.createFieldStateSnapshot = _chunkOLQVH24Zcjs.a; exports.createFrameworkFormBinding = _chunkKDHPLXZFcjs.i; exports.createFrameworkMaskedFieldBinding = _chunkKDHPLXZFcjs.h; exports.createFrameworkStoreAdapter = _chunkJ5ALITQWcjs.d; exports.deepClone = _chunk6LNXTSZ6cjs.a; exports.deepEqual = _chunk6LNXTSZ6cjs.d; exports.deepMerge = _chunk6LNXTSZ6cjs.b; exports.deriveFieldMeta = _chunk3KI3GEU3cjs.a; exports.extractFeatureSlice = _chunkJ5ALITQWcjs.i; exports.extractObserveSlice = _chunkJ5ALITQWcjs.g; exports.extractReadSlice = _chunkJ5ALITQWcjs.f; exports.extractServerErrors = _chunk6LNXTSZ6cjs.m; exports.extractSlices = _chunkJ5ALITQWcjs.j; exports.extractWriteSlice = _chunkJ5ALITQWcjs.h; exports.formatMaskedValue = _chunkPFPGASVZcjs.b; exports.getDeepValue = _chunk6LNXTSZ6cjs.f; exports.getScopeSubscriptionPaths = _chunkRHMJPKNVcjs.c; exports.isBitFieldInputEventObject = _chunkPFPGASVZcjs.a; exports.isHistoryMetaEqual = _chunkRHMJPKNVcjs.e; exports.isScopeStatusEqual = _chunkRHMJPKNVcjs.b; exports.isValidationErrorShape = _chunk6LNXTSZ6cjs.l; exports.observeFormMetaSnapshot = _chunkKDHPLXZFcjs.c; exports.observeHistoryMetaSnapshot = _chunkRHMJPKNVcjs.g; exports.observePersistMetaSnapshot = _chunkKDHPLXZFcjs.f; exports.observeScopeStatusSnapshot = _chunkBSGJ3T5Scjs.a; exports.parseMaskedInput = _chunkPFPGASVZcjs.c; exports.readFormMetaSnapshot = _chunkKDHPLXZFcjs.a; exports.readHistoryMetaSnapshot = _chunkRHMJPKNVcjs.f; exports.readPersistMetaSnapshot = _chunkKDHPLXZFcjs.d; exports.resolveBitStoreForHooks = _chunkJ5ALITQWcjs.c; exports.setDeepValue = _chunk6LNXTSZ6cjs.g; exports.subscribeFormMetaSnapshot = _chunkKDHPLXZFcjs.b; exports.subscribePersistMetaSnapshot = _chunkKDHPLXZFcjs.e; exports.valueEqual = _chunk6LNXTSZ6cjs.c;
2
2
  //# sourceMappingURL=core.cjs.map
package/dist/core.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/core.cjs"],"names":[],"mappings":"AAAA,iIAAqI,wDAAuD,w6DAAq9B","file":"/home/runner/work/bit-form/bit-form/dist/core.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/core.cjs"],"names":[],"mappings":"AAAA,yGAA4B,wDAAwG,wDAA+G,wDAAyC,wDAA4E,wDAAyC,wDAAgD,wDAA6E,wDAAuD,0pEAAqkC","file":"/home/runner/work/bit-form/bit-form/dist/core.cjs"}
package/dist/core.d.cts CHANGED
@@ -1,122 +1,14 @@
1
- export { BitFieldSnapshot, areFieldSnapshotsEqual, cleanPrefixedKeys, createBitStore, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, resolveBitStoreForHooks, setDeepValue, valueEqual } from './index.cjs';
2
- import { i as BitPersistMetadata, e as BitPath, b as BitPathValue, D as DeepPartial, g as BitFieldState, S as ScopeStatus } from './bus-rcUiufS7.cjs';
3
- export { s as BitAfterSubmitEvent, t as BitAfterValidateEvent, a as BitArrayItem, B as BitArrayPath, u as BitBeforeSubmitEvent, v as BitBeforeValidateEvent, d as BitBus, w as BitBusListener, x as BitComputedFn, j as BitConfig, c as BitErrors, y as BitFieldChangeEvent, z as BitFieldChangeMeta, A as BitFieldConditional, h as BitFieldDefinition, C as BitFieldValidation, q as BitFormGlobal, E as BitHistoryConfig, F as BitPersistConfig, G as BitPersistMode, H as BitPersistStorageAdapter, o as BitPlugin, I as BitPluginContext, J as BitPluginErrorEvent, K as BitPluginHooks, p as BitScheduler, f as BitState, r as BitTouched, L as BitTransformFn, M as BitValidationConfig, l as DevToolsOptions, V as ValidateScopeResult, k as ValidatorFn, N as bitBus, O as createBitBus } from './bus-rcUiufS7.cjs';
4
- import { e as BitFormMetaBindingApi, f as BitFormMeta, b as BitFormBindingApi, d as BitValidationOptions, g as BitFieldBindingApi, c as BitHistoryMetadata } from './store-api-types-B6_bPoVI.cjs';
5
- export { B as BitArrayBindingApi, h as BitEqualityFn, i as BitFrameworkConfig, j as BitSelector, k as BitSelectorSubscriptionOptions, l as BitStoreApi, m as BitStoreArrayFeatureApi, n as BitStoreFeatureApi, o as BitStoreHistoryFeatureApi, a as BitStoreHooksApi, p as BitStoreObserveApi, q as BitStorePersistFeatureApi, r as BitStoreQueryApi, s as BitStoreRegistrationFeatureApi, t as BitStoreWriteApi } from './store-api-types-B6_bPoVI.cjs';
6
- export { a as BitDeleteUploadFn, B as BitUploadFn, b as BitUploadResult } from './upload-EXnJLq8k.cjs';
7
- export { a as BitArrayBindingController, B as BitArrayBindingField, c as createArrayBindingController } from './array-controller-C1A5VKYd.cjs';
8
- export { B as BitFieldInputEvent, f as formatMaskedValue, i as isBitFieldInputEventObject, p as parseMaskedInput } from './field-binding-X5TkvfUt.cjs';
9
- import './types-CUXh7PqD.cjs';
10
-
11
- declare function readFormMetaSnapshot<T extends object>(store: BitFormMetaBindingApi<T>): BitFormMeta;
12
- declare function subscribeFormMetaSnapshot<T extends object>(store: BitFormMetaBindingApi<T>, listener: () => void): () => void;
13
- declare function observeFormMetaSnapshot<T extends object>(store: BitFormMetaBindingApi<T>, listener: (meta: BitFormMeta) => void): () => void;
14
-
15
- declare function readPersistMetaSnapshot(store: {
16
- getPersistMetadata(): BitPersistMetadata;
17
- }): BitPersistMetadata;
18
- declare function subscribePersistMetaSnapshot(store: {
19
- subscribePersistMeta(listener: (meta: BitPersistMetadata) => void): () => void;
20
- }, listener: () => void): () => void;
21
- declare function observePersistMetaSnapshot(store: {
22
- getPersistMetadata(): BitPersistMetadata;
23
- subscribePersistMeta(listener: (meta: BitPersistMetadata) => void): () => void;
24
- }, listener: (meta: BitPersistMetadata) => void): () => void;
25
-
26
- type BitFormDomEvent = {
27
- preventDefault?: () => void;
28
- stopPropagation?: () => void;
29
- };
30
- interface BitFormControllerRuntime {
31
- clearSubmissionState: () => void;
32
- setSubmissionResult: (result: unknown) => void;
33
- setSubmissionError: (error: Error | null) => void;
34
- }
35
- interface BitFormControllerOptions {
36
- stopPropagation?: boolean;
37
- }
38
-
39
- declare function createFrameworkFormBinding<T extends object>(store: BitFormBindingApi<T>, runtime: BitFormControllerRuntime, options?: BitFormControllerOptions): {
40
- controller: {
41
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T> | undefined) => void | Promise<void>) => (event?: BitFormDomEvent) => Promise<void>;
42
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T> | undefined) => Promise<unknown>) => (event?: BitFormDomEvent) => Promise<void>;
43
- reset: () => void;
44
- getValues: () => T;
45
- getErrors: () => Partial<Record<BitPath<T, "">, string | undefined>>;
46
- getTouched: () => Partial<Record<BitPath<T, "">, boolean | undefined>>;
47
- getDirtyValues: () => Partial<T>;
48
- };
49
- actions: {
50
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, BitPath<T, "">>) => void;
51
- blurField: <P extends BitPath<T, "">>(path: P) => void;
52
- setValues: (values: T | DeepPartial<T>, options?: {
53
- partial?: boolean;
54
- rebase?: boolean;
55
- } | undefined) => void;
56
- setError: (path: string, message: string | undefined) => void;
57
- setErrors: (errors: Partial<Record<BitPath<T, "">, string | undefined>>) => void;
58
- setServerErrors: (serverErrors: Parameters<(serverErrors: Record<string, string[] | string>) => void>[0]) => void;
59
- validate: (options?: Parameters<(options?: BitValidationOptions) => Promise<boolean>>[0]) => Promise<boolean>;
60
- transaction: <TResult>(callback: () => TResult) => TResult;
61
- };
62
- };
63
-
64
- declare function createFrameworkMaskedFieldBinding<TForm extends object, P extends BitPath<TForm>>(store: BitFieldBindingApi<TForm>, path: P): {
65
- fieldController: {
66
- setValue: (value: unknown) => void;
67
- setBlur: () => void;
68
- displayValue: (value: unknown) => string;
69
- };
70
- };
71
-
72
- type FieldCleanupStore = {
73
- unregisterField?: (path: string) => void;
74
- };
75
- type PrefixCleanupStore = {
76
- unregisterPrefix?: (prefix: string) => void;
77
- };
78
- declare function cleanupRegisteredField(store: FieldCleanupStore, path: string): void;
79
- declare function cleanupRegisteredPrefix(store: PrefixCleanupStore, prefix: string): void;
80
-
81
- declare function subscribeFieldState<TForm extends object, P extends BitPath<TForm>>(store: BitFormBindingApi<TForm>, path: P, listener: (value: Readonly<BitFieldState<TForm, BitPathValue<TForm, P>>>) => void): () => void;
82
-
83
- /**
84
- * Subconjunto relevante de BitHistoryMetadata para comparação de igualdade.
85
- * Evita re-renders/updates desnecessários quando o estado de histórico não muda.
86
- */
87
- type HistoryMeta = Pick<BitHistoryMetadata, "canUndo" | "canRedo" | "historyIndex" | "historySize">;
88
- /**
89
- * Compara dois snapshots de metadata de histórico por valor.
90
- * Retorna `true` quando todos os campos relevantes são idênticos,
91
- * permitindo que os bindings de framework ignorem atualizações não relacionadas.
92
- */
93
- declare function isHistoryMetaEqual(a: HistoryMeta, b: HistoryMeta): boolean;
94
- declare function readHistoryMetaSnapshot<T extends object>(store: {
95
- getHistoryMetadata(): BitHistoryMetadata;
96
- }): HistoryMeta;
97
- declare function observeHistoryMetaSnapshot<T extends object>(store: {
98
- getHistoryMetadata(): BitHistoryMetadata;
99
- subscribeHistoryMeta(listener: (meta: BitHistoryMetadata) => void): () => void;
100
- }, listener: (meta: HistoryMeta) => void): () => void;
101
-
102
- declare function areScopeErrorsEqual(currentErrors: Record<string, string>, nextErrors: Record<string, string>): boolean;
103
- declare function isScopeStatusEqual(currentStatus: ScopeStatus, nextStatus: ScopeStatus): boolean;
104
- declare function getScopeSubscriptionPaths(scopeFields: readonly string[]): string[];
105
- declare function observeScopeStatusSnapshot(store: {
106
- getStepStatus(scopeName: string): ScopeStatus;
107
- subscribeScopeStatus(scopeName: string, listener: (status: ScopeStatus) => void): () => void;
108
- }, scopeName: string, listener: (status: ScopeStatus) => void): () => void;
109
-
110
- interface BitDerivedFieldMeta {
111
- error: string | undefined;
112
- touched: boolean;
113
- invalid: boolean;
114
- isValidating: boolean;
115
- isDirty: boolean;
116
- isHidden: boolean;
117
- isRequired: boolean;
118
- hasError: boolean;
119
- }
120
- declare function deriveFieldMeta<T extends object, TValue>(state: Readonly<BitFieldState<T, TValue>>): BitDerivedFieldMeta;
121
-
122
- export { type BitDerivedFieldMeta, BitFieldBindingApi, BitFieldState, BitFormBindingApi, BitFormMeta, BitFormMetaBindingApi, BitHistoryMetadata, BitPath, BitPathValue, BitPersistMetadata, BitValidationOptions, DeepPartial, type HistoryMeta, ScopeStatus, areScopeErrorsEqual, cleanupRegisteredField, cleanupRegisteredPrefix, createFrameworkFormBinding, createFrameworkMaskedFieldBinding, deriveFieldMeta, getScopeSubscriptionPaths, isHistoryMetaEqual, isScopeStatusEqual, observeFormMetaSnapshot, observeHistoryMetaSnapshot, observePersistMetaSnapshot, observeScopeStatusSnapshot, readFormMetaSnapshot, readHistoryMetaSnapshot, readPersistMetaSnapshot, subscribeFieldState, subscribeFormMetaSnapshot, subscribePersistMetaSnapshot };
1
+ export { createBitStore, createFrameworkStoreAdapter, resolveBitStoreForHooks } from './index.cjs';
2
+ export { extractFeatureSlice, extractObserveSlice, extractReadSlice, extractSlices, extractWriteSlice } from './core/store.cjs';
3
+ export { B as BitEqualityFn, a as BitFrameworkConfig, b as BitFrameworkStoreApi, c as BitSelector, d as BitSelectorSubscriptionOptions, e as BitStoreApi } from './store-api-types-Bm3EAqR_.cjs';
4
+ export { B as BitFormMeta, a as BitHistoryMetadata, b as BitValidationOptions } from './meta-types-Bzmm21TP.cjs';
5
+ export { B as BitAfterSubmitEvent, a as BitAfterValidateEvent, b as BitArrayItem, c as BitArrayPath, d as BitBeforeSubmitEvent, e as BitBeforeValidateEvent, f as BitBus, g as BitBusListener, h as BitBusStorePort, i as BitComputedFn, j as BitConfig, k as BitErrors, l as BitFieldChangeEvent, m as BitFieldChangeMeta, n as BitFieldConditional, o as BitFieldDefinition, p as BitFieldState, q as BitFieldValidation, r as BitFormGlobal, s as BitHistoryConfig, t as BitNormalizeFn, u as BitPath, v as BitPathValue, w as BitPersistConfig, x as BitPersistMetadata, y as BitPersistMode, z as BitPersistStorageAdapter, A as BitPlugin, C as BitPluginContext, D as BitPluginErrorEvent, E as BitPluginHooks, F as BitScheduler, G as BitState, H as BitSubmitResult, I as BitTouched, J as BitTransformFn, K as BitValidationConfig, L as DeepPartial, M as DevToolsOptions, S as ScopeStatus, V as ValidateScopeResult, N as ValidatorFn } from './types-SOg9xEce.cjs';
6
+ export { b as bitBus, c as createBitBus } from './bus-WOHGxuVy.cjs';
7
+ export { cleanupRegisteredField, cleanupRegisteredPrefix, createFrameworkFormBinding, createFrameworkMaskedFieldBinding, observeFormMetaSnapshot, observePersistMetaSnapshot, readFormMetaSnapshot, readPersistMetaSnapshot, subscribeFormMetaSnapshot, subscribePersistMetaSnapshot } from './core/bindings.cjs';
8
+ export { B as BitArrayBinding, a as BitArrayBindingField, c as createArrayBinding } from './array-controller-CtlqjA0e.cjs';
9
+ export { B as BitFieldInputEvent, f as formatMaskedValue, i as isBitFieldInputEventObject, p as parseMaskedInput } from './field-binding-B_OX3bjp.cjs';
10
+ export { B as BitDeleteUploadFn, a as BitUploadFn, b as BitUploadResult } from './upload-C2mpfhp1.cjs';
11
+ export { HistoryMeta, areScopeErrorsEqual, getScopeSubscriptionPaths, isHistoryMetaEqual, isScopeStatusEqual, observeHistoryMetaSnapshot, observeScopeStatusSnapshot, readHistoryMetaSnapshot } from './core/status.cjs';
12
+ export { BitDerivedFieldMeta, BitFieldSnapshot, areFieldSnapshotsEqual, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, deriveFieldMeta, getDeepValue, setDeepValue, valueEqual } from './core/utils.cjs';
13
+ export { cleanPrefixedKeys, extractServerErrors, isValidationErrorShape } from './utils.cjs';
14
+ import './types-D8DgIUhJ.cjs';
package/dist/core.d.ts CHANGED
@@ -1,122 +1,14 @@
1
- export { BitFieldSnapshot, areFieldSnapshotsEqual, cleanPrefixedKeys, createBitStore, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, resolveBitStoreForHooks, setDeepValue, valueEqual } from './index.js';
2
- import { i as BitPersistMetadata, e as BitPath, b as BitPathValue, D as DeepPartial, g as BitFieldState, S as ScopeStatus } from './bus-DgilLszS.js';
3
- export { s as BitAfterSubmitEvent, t as BitAfterValidateEvent, a as BitArrayItem, B as BitArrayPath, u as BitBeforeSubmitEvent, v as BitBeforeValidateEvent, d as BitBus, w as BitBusListener, x as BitComputedFn, j as BitConfig, c as BitErrors, y as BitFieldChangeEvent, z as BitFieldChangeMeta, A as BitFieldConditional, h as BitFieldDefinition, C as BitFieldValidation, q as BitFormGlobal, E as BitHistoryConfig, F as BitPersistConfig, G as BitPersistMode, H as BitPersistStorageAdapter, o as BitPlugin, I as BitPluginContext, J as BitPluginErrorEvent, K as BitPluginHooks, p as BitScheduler, f as BitState, r as BitTouched, L as BitTransformFn, M as BitValidationConfig, l as DevToolsOptions, V as ValidateScopeResult, k as ValidatorFn, N as bitBus, O as createBitBus } from './bus-DgilLszS.js';
4
- import { e as BitFormMetaBindingApi, f as BitFormMeta, b as BitFormBindingApi, d as BitValidationOptions, g as BitFieldBindingApi, c as BitHistoryMetadata } from './store-api-types-9ipdute1.js';
5
- export { B as BitArrayBindingApi, h as BitEqualityFn, i as BitFrameworkConfig, j as BitSelector, k as BitSelectorSubscriptionOptions, l as BitStoreApi, m as BitStoreArrayFeatureApi, n as BitStoreFeatureApi, o as BitStoreHistoryFeatureApi, a as BitStoreHooksApi, p as BitStoreObserveApi, q as BitStorePersistFeatureApi, r as BitStoreQueryApi, s as BitStoreRegistrationFeatureApi, t as BitStoreWriteApi } from './store-api-types-9ipdute1.js';
6
- export { a as BitDeleteUploadFn, B as BitUploadFn, b as BitUploadResult } from './upload-EXnJLq8k.js';
7
- export { a as BitArrayBindingController, B as BitArrayBindingField, c as createArrayBindingController } from './array-controller-DtkmcnUr.js';
8
- export { B as BitFieldInputEvent, f as formatMaskedValue, i as isBitFieldInputEventObject, p as parseMaskedInput } from './field-binding-Bi1g-D8X.js';
9
- import './types-CUXh7PqD.js';
10
-
11
- declare function readFormMetaSnapshot<T extends object>(store: BitFormMetaBindingApi<T>): BitFormMeta;
12
- declare function subscribeFormMetaSnapshot<T extends object>(store: BitFormMetaBindingApi<T>, listener: () => void): () => void;
13
- declare function observeFormMetaSnapshot<T extends object>(store: BitFormMetaBindingApi<T>, listener: (meta: BitFormMeta) => void): () => void;
14
-
15
- declare function readPersistMetaSnapshot(store: {
16
- getPersistMetadata(): BitPersistMetadata;
17
- }): BitPersistMetadata;
18
- declare function subscribePersistMetaSnapshot(store: {
19
- subscribePersistMeta(listener: (meta: BitPersistMetadata) => void): () => void;
20
- }, listener: () => void): () => void;
21
- declare function observePersistMetaSnapshot(store: {
22
- getPersistMetadata(): BitPersistMetadata;
23
- subscribePersistMeta(listener: (meta: BitPersistMetadata) => void): () => void;
24
- }, listener: (meta: BitPersistMetadata) => void): () => void;
25
-
26
- type BitFormDomEvent = {
27
- preventDefault?: () => void;
28
- stopPropagation?: () => void;
29
- };
30
- interface BitFormControllerRuntime {
31
- clearSubmissionState: () => void;
32
- setSubmissionResult: (result: unknown) => void;
33
- setSubmissionError: (error: Error | null) => void;
34
- }
35
- interface BitFormControllerOptions {
36
- stopPropagation?: boolean;
37
- }
38
-
39
- declare function createFrameworkFormBinding<T extends object>(store: BitFormBindingApi<T>, runtime: BitFormControllerRuntime, options?: BitFormControllerOptions): {
40
- controller: {
41
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T> | undefined) => void | Promise<void>) => (event?: BitFormDomEvent) => Promise<void>;
42
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T> | undefined) => Promise<unknown>) => (event?: BitFormDomEvent) => Promise<void>;
43
- reset: () => void;
44
- getValues: () => T;
45
- getErrors: () => Partial<Record<BitPath<T, "">, string | undefined>>;
46
- getTouched: () => Partial<Record<BitPath<T, "">, boolean | undefined>>;
47
- getDirtyValues: () => Partial<T>;
48
- };
49
- actions: {
50
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, BitPath<T, "">>) => void;
51
- blurField: <P extends BitPath<T, "">>(path: P) => void;
52
- setValues: (values: T | DeepPartial<T>, options?: {
53
- partial?: boolean;
54
- rebase?: boolean;
55
- } | undefined) => void;
56
- setError: (path: string, message: string | undefined) => void;
57
- setErrors: (errors: Partial<Record<BitPath<T, "">, string | undefined>>) => void;
58
- setServerErrors: (serverErrors: Parameters<(serverErrors: Record<string, string[] | string>) => void>[0]) => void;
59
- validate: (options?: Parameters<(options?: BitValidationOptions) => Promise<boolean>>[0]) => Promise<boolean>;
60
- transaction: <TResult>(callback: () => TResult) => TResult;
61
- };
62
- };
63
-
64
- declare function createFrameworkMaskedFieldBinding<TForm extends object, P extends BitPath<TForm>>(store: BitFieldBindingApi<TForm>, path: P): {
65
- fieldController: {
66
- setValue: (value: unknown) => void;
67
- setBlur: () => void;
68
- displayValue: (value: unknown) => string;
69
- };
70
- };
71
-
72
- type FieldCleanupStore = {
73
- unregisterField?: (path: string) => void;
74
- };
75
- type PrefixCleanupStore = {
76
- unregisterPrefix?: (prefix: string) => void;
77
- };
78
- declare function cleanupRegisteredField(store: FieldCleanupStore, path: string): void;
79
- declare function cleanupRegisteredPrefix(store: PrefixCleanupStore, prefix: string): void;
80
-
81
- declare function subscribeFieldState<TForm extends object, P extends BitPath<TForm>>(store: BitFormBindingApi<TForm>, path: P, listener: (value: Readonly<BitFieldState<TForm, BitPathValue<TForm, P>>>) => void): () => void;
82
-
83
- /**
84
- * Subconjunto relevante de BitHistoryMetadata para comparação de igualdade.
85
- * Evita re-renders/updates desnecessários quando o estado de histórico não muda.
86
- */
87
- type HistoryMeta = Pick<BitHistoryMetadata, "canUndo" | "canRedo" | "historyIndex" | "historySize">;
88
- /**
89
- * Compara dois snapshots de metadata de histórico por valor.
90
- * Retorna `true` quando todos os campos relevantes são idênticos,
91
- * permitindo que os bindings de framework ignorem atualizações não relacionadas.
92
- */
93
- declare function isHistoryMetaEqual(a: HistoryMeta, b: HistoryMeta): boolean;
94
- declare function readHistoryMetaSnapshot<T extends object>(store: {
95
- getHistoryMetadata(): BitHistoryMetadata;
96
- }): HistoryMeta;
97
- declare function observeHistoryMetaSnapshot<T extends object>(store: {
98
- getHistoryMetadata(): BitHistoryMetadata;
99
- subscribeHistoryMeta(listener: (meta: BitHistoryMetadata) => void): () => void;
100
- }, listener: (meta: HistoryMeta) => void): () => void;
101
-
102
- declare function areScopeErrorsEqual(currentErrors: Record<string, string>, nextErrors: Record<string, string>): boolean;
103
- declare function isScopeStatusEqual(currentStatus: ScopeStatus, nextStatus: ScopeStatus): boolean;
104
- declare function getScopeSubscriptionPaths(scopeFields: readonly string[]): string[];
105
- declare function observeScopeStatusSnapshot(store: {
106
- getStepStatus(scopeName: string): ScopeStatus;
107
- subscribeScopeStatus(scopeName: string, listener: (status: ScopeStatus) => void): () => void;
108
- }, scopeName: string, listener: (status: ScopeStatus) => void): () => void;
109
-
110
- interface BitDerivedFieldMeta {
111
- error: string | undefined;
112
- touched: boolean;
113
- invalid: boolean;
114
- isValidating: boolean;
115
- isDirty: boolean;
116
- isHidden: boolean;
117
- isRequired: boolean;
118
- hasError: boolean;
119
- }
120
- declare function deriveFieldMeta<T extends object, TValue>(state: Readonly<BitFieldState<T, TValue>>): BitDerivedFieldMeta;
121
-
122
- export { type BitDerivedFieldMeta, BitFieldBindingApi, BitFieldState, BitFormBindingApi, BitFormMeta, BitFormMetaBindingApi, BitHistoryMetadata, BitPath, BitPathValue, BitPersistMetadata, BitValidationOptions, DeepPartial, type HistoryMeta, ScopeStatus, areScopeErrorsEqual, cleanupRegisteredField, cleanupRegisteredPrefix, createFrameworkFormBinding, createFrameworkMaskedFieldBinding, deriveFieldMeta, getScopeSubscriptionPaths, isHistoryMetaEqual, isScopeStatusEqual, observeFormMetaSnapshot, observeHistoryMetaSnapshot, observePersistMetaSnapshot, observeScopeStatusSnapshot, readFormMetaSnapshot, readHistoryMetaSnapshot, readPersistMetaSnapshot, subscribeFieldState, subscribeFormMetaSnapshot, subscribePersistMetaSnapshot };
1
+ export { createBitStore, createFrameworkStoreAdapter, resolveBitStoreForHooks } from './index.js';
2
+ export { extractFeatureSlice, extractObserveSlice, extractReadSlice, extractSlices, extractWriteSlice } from './core/store.js';
3
+ export { B as BitEqualityFn, a as BitFrameworkConfig, b as BitFrameworkStoreApi, c as BitSelector, d as BitSelectorSubscriptionOptions, e as BitStoreApi } from './store-api-types-DfTFy2h4.js';
4
+ export { B as BitFormMeta, a as BitHistoryMetadata, b as BitValidationOptions } from './meta-types-Bzmm21TP.js';
5
+ export { B as BitAfterSubmitEvent, a as BitAfterValidateEvent, b as BitArrayItem, c as BitArrayPath, d as BitBeforeSubmitEvent, e as BitBeforeValidateEvent, f as BitBus, g as BitBusListener, h as BitBusStorePort, i as BitComputedFn, j as BitConfig, k as BitErrors, l as BitFieldChangeEvent, m as BitFieldChangeMeta, n as BitFieldConditional, o as BitFieldDefinition, p as BitFieldState, q as BitFieldValidation, r as BitFormGlobal, s as BitHistoryConfig, t as BitNormalizeFn, u as BitPath, v as BitPathValue, w as BitPersistConfig, x as BitPersistMetadata, y as BitPersistMode, z as BitPersistStorageAdapter, A as BitPlugin, C as BitPluginContext, D as BitPluginErrorEvent, E as BitPluginHooks, F as BitScheduler, G as BitState, H as BitSubmitResult, I as BitTouched, J as BitTransformFn, K as BitValidationConfig, L as DeepPartial, M as DevToolsOptions, S as ScopeStatus, V as ValidateScopeResult, N as ValidatorFn } from './types-CRCP4Pgq.js';
6
+ export { b as bitBus, c as createBitBus } from './bus-BKuMV3E7.js';
7
+ export { cleanupRegisteredField, cleanupRegisteredPrefix, createFrameworkFormBinding, createFrameworkMaskedFieldBinding, observeFormMetaSnapshot, observePersistMetaSnapshot, readFormMetaSnapshot, readPersistMetaSnapshot, subscribeFormMetaSnapshot, subscribePersistMetaSnapshot } from './core/bindings.js';
8
+ export { B as BitArrayBinding, a as BitArrayBindingField, c as createArrayBinding } from './array-controller-C61ByyG6.js';
9
+ export { B as BitFieldInputEvent, f as formatMaskedValue, i as isBitFieldInputEventObject, p as parseMaskedInput } from './field-binding-MX6jVQbT.js';
10
+ export { B as BitDeleteUploadFn, a as BitUploadFn, b as BitUploadResult } from './upload-C2mpfhp1.js';
11
+ export { HistoryMeta, areScopeErrorsEqual, getScopeSubscriptionPaths, isHistoryMetaEqual, isScopeStatusEqual, observeHistoryMetaSnapshot, observeScopeStatusSnapshot, readHistoryMetaSnapshot } from './core/status.js';
12
+ export { BitDerivedFieldMeta, BitFieldSnapshot, areFieldSnapshotsEqual, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, deriveFieldMeta, getDeepValue, setDeepValue, valueEqual } from './core/utils.js';
13
+ export { cleanPrefixedKeys, extractServerErrors, isValidationErrorShape } from './utils.js';
14
+ import './types-D8DgIUhJ.js';
package/dist/core.js CHANGED
@@ -1,2 +1,2 @@
1
- import{A,B,C,D as G,E as H,F as I,G as J,H as K,I as L,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-SA47B5OP.js";import{a as D,b as E,c as F}from"./chunk-3NUJVIAM.js";export{v as areFieldSnapshotsEqual,o as areScopeErrorsEqual,j as bitBus,g as cleanPrefixedKeys,J as cleanupRegisteredField,K as cleanupRegisteredPrefix,I as createArrayBindingController,k as createBitBus,t as createBitStore,u as createFieldStateSnapshot,C as createFrameworkFormBinding,H as createFrameworkMaskedFieldBinding,a as deepClone,d as deepEqual,b as deepMerge,L as deriveFieldMeta,i as extractServerErrors,E as formatMaskedValue,e as getDeepValue,q as getScopeSubscriptionPaths,D as isBitFieldInputEventObject,l as isHistoryMetaEqual,p as isScopeStatusEqual,h as isValidationErrorShape,y as observeFormMetaSnapshot,n as observeHistoryMetaSnapshot,B as observePersistMetaSnapshot,r as observeScopeStatusSnapshot,F as parseMaskedInput,w as readFormMetaSnapshot,m as readHistoryMetaSnapshot,z as readPersistMetaSnapshot,s as resolveBitStoreForHooks,f as setDeepValue,G as subscribeFieldState,x as subscribeFormMetaSnapshot,A as subscribePersistMetaSnapshot,c as valueEqual};
1
+ import"./chunk-5NA2TFPG.js";import{a as j,b as k,c as t,d as u,e as v,f as w,g as x,h as y,i as z,j as A}from"./chunk-UARLAXZX.js";import{a as B,b as C,c as D,d as E,e as F,f as G,g as H,h as L,i as M,j as N,k as O}from"./chunk-Y3XVQGCU.js";import{a as P}from"./chunk-W2E5UIXT.js";import{a as l,b as m,c as n,e as o,f as p,g as q}from"./chunk-UIKO6GGW.js";import{a as Q}from"./chunk-ICYXODTQ.js";import{a as r,b as s}from"./chunk-2QLQPMCZ.js";import{a,b,c,d,f as e,g as f,j as g,l as h,m as i}from"./chunk-QX2IVNMK.js";import{a as I,b as J,c as K}from"./chunk-3NUJVIAM.js";export{s as areFieldSnapshotsEqual,l as areScopeErrorsEqual,j as bitBus,g as cleanPrefixedKeys,N as cleanupRegisteredField,O as cleanupRegisteredPrefix,H as createArrayBinding,k as createBitBus,v as createBitStore,r as createFieldStateSnapshot,M as createFrameworkFormBinding,L as createFrameworkMaskedFieldBinding,u as createFrameworkStoreAdapter,a as deepClone,d as deepEqual,b as deepMerge,Q as deriveFieldMeta,z as extractFeatureSlice,x as extractObserveSlice,w as extractReadSlice,i as extractServerErrors,A as extractSlices,y as extractWriteSlice,J as formatMaskedValue,e as getDeepValue,n as getScopeSubscriptionPaths,I as isBitFieldInputEventObject,o as isHistoryMetaEqual,m as isScopeStatusEqual,h as isValidationErrorShape,D as observeFormMetaSnapshot,q as observeHistoryMetaSnapshot,G as observePersistMetaSnapshot,P as observeScopeStatusSnapshot,K as parseMaskedInput,B as readFormMetaSnapshot,p as readHistoryMetaSnapshot,E as readPersistMetaSnapshot,t as resolveBitStoreForHooks,f as setDeepValue,C as subscribeFormMetaSnapshot,F as subscribePersistMetaSnapshot,c as valueEqual};
2
2
  //# sourceMappingURL=core.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkQAL6J5GQcjs = require('../chunk-QAL6J5GQ.cjs');require('../chunk-QKGTVKBU.cjs');require('../chunk-FUUQB4DV.cjs');require('../chunk-PFPGASVZ.cjs');exports.setupRemoteBridge = _chunkQAL6J5GQcjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkGGZPA7AOcjs = require('../chunk-GGZPA7AO.cjs');require('../chunk-QKGTVKBU.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-J5ALITQW.cjs');require('../chunk-KDHPLXZF.cjs');require('../chunk-BSGJ3T5S.cjs');require('../chunk-RHMJPKNV.cjs');require('../chunk-3KI3GEU3.cjs');require('../chunk-OLQVH24Z.cjs');require('../chunk-6LNXTSZ6.cjs');require('../chunk-PFPGASVZ.cjs');exports.setupRemoteBridge = _chunkGGZPA7AOcjs.c;
2
2
  //# sourceMappingURL=bridge.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs"],"names":[],"mappings":"AAAA,kIAAyC,iCAA8B,iCAA8B,iCAA8B,gDAA+B","file":"/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs"],"names":[],"mappings":"AAAA,kIAAyC,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,gDAA+B","file":"/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs"}
@@ -1,5 +1,6 @@
1
- import { d as BitBus } from '../bus-rcUiufS7.cjs';
2
- import '../types-CUXh7PqD.cjs';
1
+ import { f as BitBus } from '../types-SOg9xEce.cjs';
2
+ import '../bus-WOHGxuVy.cjs';
3
+ import '../types-D8DgIUhJ.cjs';
3
4
 
4
5
  declare function setupRemoteBridge(url: string, bus?: BitBus): () => void;
5
6
 
@@ -1,5 +1,6 @@
1
- import { d as BitBus } from '../bus-DgilLszS.js';
2
- import '../types-CUXh7PqD.js';
1
+ import { f as BitBus } from '../types-CRCP4Pgq.js';
2
+ import '../bus-BKuMV3E7.js';
3
+ import '../types-D8DgIUhJ.js';
3
4
 
4
5
  declare function setupRemoteBridge(url: string, bus?: BitBus): () => void;
5
6
 
@@ -1,2 +1,2 @@
1
- import{c as a}from"../chunk-DIEE6LUO.js";import"../chunk-K5X37E3U.js";import"../chunk-SA47B5OP.js";import"../chunk-3NUJVIAM.js";export{a as setupRemoteBridge};
1
+ import{c as a}from"../chunk-N4HCGMMM.js";import"../chunk-K5X37E3U.js";import"../chunk-5NA2TFPG.js";import"../chunk-UARLAXZX.js";import"../chunk-Y3XVQGCU.js";import"../chunk-W2E5UIXT.js";import"../chunk-UIKO6GGW.js";import"../chunk-ICYXODTQ.js";import"../chunk-2QLQPMCZ.js";import"../chunk-QX2IVNMK.js";import"../chunk-3NUJVIAM.js";export{a as setupRemoteBridge};
2
2
  //# sourceMappingURL=bridge.js.map