@lehnihon/bit-form 2.2.6 → 2.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +80 -24
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +20 -20
  5. package/dist/angular/index.d.ts +20 -20
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/array-controller-B5bfXV1W.d.cts +23 -0
  9. package/dist/array-controller-Cx-DMH7Y.d.ts +23 -0
  10. package/dist/bus-B2VEKrPI.d.ts +19 -0
  11. package/dist/bus-ZLQeq4Vr.d.cts +19 -0
  12. package/dist/chunk-5NA2TFPG.js +1 -0
  13. package/dist/chunk-5NA2TFPG.js.map +1 -0
  14. package/dist/chunk-63OJBMKK.js +2 -0
  15. package/dist/chunk-63OJBMKK.js.map +1 -0
  16. package/dist/chunk-BSGJ3T5S.cjs +2 -0
  17. package/dist/chunk-BSGJ3T5S.cjs.map +1 -0
  18. package/dist/chunk-CPP7ELA5.js +2 -0
  19. package/dist/chunk-CPP7ELA5.js.map +1 -0
  20. package/dist/chunk-D7JQWF6V.cjs +2 -0
  21. package/dist/chunk-D7JQWF6V.cjs.map +1 -0
  22. package/dist/chunk-E2NZR44P.js +2 -0
  23. package/dist/chunk-E2NZR44P.js.map +1 -0
  24. package/dist/chunk-EQ55DKX2.js +2 -0
  25. package/dist/chunk-EQ55DKX2.js.map +1 -0
  26. package/dist/chunk-IV32WXCF.cjs +2 -0
  27. package/dist/chunk-IV32WXCF.cjs.map +1 -0
  28. package/dist/chunk-JC4R5WCC.js +2 -0
  29. package/dist/chunk-JC4R5WCC.js.map +1 -0
  30. package/dist/chunk-K5X37E3U.js +2 -0
  31. package/dist/chunk-K5X37E3U.js.map +1 -0
  32. package/dist/chunk-M6WBNHIT.cjs +2 -0
  33. package/dist/chunk-M6WBNHIT.cjs.map +1 -0
  34. package/dist/chunk-MFSQATNZ.cjs +2 -0
  35. package/dist/chunk-MFSQATNZ.cjs.map +1 -0
  36. package/dist/chunk-MFTWAFMG.cjs +2 -0
  37. package/dist/chunk-MFTWAFMG.cjs.map +1 -0
  38. package/dist/chunk-O5UPA33R.js +2 -0
  39. package/dist/chunk-O5UPA33R.js.map +1 -0
  40. package/dist/chunk-P2YWYBWG.cjs +2 -0
  41. package/dist/chunk-P2YWYBWG.cjs.map +1 -0
  42. package/dist/chunk-QKGTVKBU.cjs +2 -0
  43. package/dist/chunk-QKGTVKBU.cjs.map +1 -0
  44. package/dist/chunk-RD73EBSN.js +2 -0
  45. package/dist/chunk-RD73EBSN.js.map +1 -0
  46. package/dist/chunk-T2JRSWQU.cjs +2 -0
  47. package/dist/chunk-T2JRSWQU.cjs.map +1 -0
  48. package/dist/chunk-UQ3DSUWC.js +2 -0
  49. package/dist/chunk-UQ3DSUWC.js.map +1 -0
  50. package/dist/chunk-VZHG372Q.cjs +2 -0
  51. package/dist/chunk-VZHG372Q.cjs.map +1 -0
  52. package/dist/chunk-W2E5UIXT.js +2 -0
  53. package/dist/chunk-W2E5UIXT.js.map +1 -0
  54. package/dist/chunk-W5CLDRRE.cjs +1 -0
  55. package/dist/chunk-W5CLDRRE.cjs.map +1 -0
  56. package/dist/cli/index.cjs +22 -22
  57. package/dist/core/bindings.cjs +2 -0
  58. package/dist/core/bindings.cjs.map +1 -0
  59. package/dist/core/bindings.d.cts +81 -0
  60. package/dist/core/bindings.d.ts +81 -0
  61. package/dist/core/bindings.js +2 -0
  62. package/dist/core/bindings.js.map +1 -0
  63. package/dist/core/status.cjs +2 -0
  64. package/dist/core/status.cjs.map +1 -0
  65. package/dist/core/status.d.cts +44 -0
  66. package/dist/core/status.d.ts +44 -0
  67. package/dist/core/status.js +2 -0
  68. package/dist/core/status.js.map +1 -0
  69. package/dist/core/store.cjs +2 -0
  70. package/dist/core/store.cjs.map +1 -0
  71. package/dist/core/store.d.cts +84 -0
  72. package/dist/core/store.d.ts +84 -0
  73. package/dist/core/store.js +2 -0
  74. package/dist/core/store.js.map +1 -0
  75. package/dist/core/utils.cjs +2 -0
  76. package/dist/core/utils.cjs.map +1 -0
  77. package/dist/core/utils.d.cts +81 -0
  78. package/dist/core/utils.d.ts +81 -0
  79. package/dist/core/utils.js +2 -0
  80. package/dist/core/utils.js.map +1 -0
  81. package/dist/core.cjs +2 -0
  82. package/dist/core.cjs.map +1 -0
  83. package/dist/core.d.cts +14 -0
  84. package/dist/core.d.ts +14 -0
  85. package/dist/core.js +2 -0
  86. package/dist/core.js.map +1 -0
  87. package/dist/devtools/bridge.cjs +1 -1
  88. package/dist/devtools/bridge.cjs.map +1 -1
  89. package/dist/devtools/bridge.d.cts +5 -1
  90. package/dist/devtools/bridge.d.ts +5 -1
  91. package/dist/devtools/bridge.js +1 -1
  92. package/dist/devtools/bridge.js.map +1 -1
  93. package/dist/devtools/index.cjs +18 -18
  94. package/dist/devtools/index.cjs.map +1 -1
  95. package/dist/devtools/index.d.cts +27 -2
  96. package/dist/devtools/index.d.ts +27 -2
  97. package/dist/devtools/index.js +18 -18
  98. package/dist/devtools/index.js.map +1 -1
  99. package/dist/devtools/protocol.cjs +2 -0
  100. package/dist/devtools/protocol.cjs.map +1 -0
  101. package/dist/devtools/protocol.d.cts +54 -0
  102. package/dist/devtools/protocol.d.ts +54 -0
  103. package/dist/devtools/protocol.js +2 -0
  104. package/dist/devtools/protocol.js.map +1 -0
  105. package/dist/field-binding-B_OX3bjp.d.cts +25 -0
  106. package/dist/field-binding-MX6jVQbT.d.ts +25 -0
  107. package/dist/index.cjs +1 -1
  108. package/dist/index.cjs.map +1 -1
  109. package/dist/index.d.cts +9 -193
  110. package/dist/index.d.ts +9 -193
  111. package/dist/index.js +1 -1
  112. package/dist/meta-types-Bzmm21TP.d.cts +18 -0
  113. package/dist/meta-types-Bzmm21TP.d.ts +18 -0
  114. package/dist/react/index.cjs +1 -1
  115. package/dist/react/index.cjs.map +1 -1
  116. package/dist/react/index.d.cts +10 -7
  117. package/dist/react/index.d.ts +10 -7
  118. package/dist/react/index.js +1 -1
  119. package/dist/react/index.js.map +1 -1
  120. package/dist/react-native/index.cjs +1 -1
  121. package/dist/react-native/index.cjs.map +1 -1
  122. package/dist/react-native/index.d.cts +8 -5
  123. package/dist/react-native/index.d.ts +8 -5
  124. package/dist/react-native/index.js +1 -1
  125. package/dist/react-native/index.js.map +1 -1
  126. package/dist/resolvers/index.cjs +1 -1
  127. package/dist/resolvers/index.cjs.map +1 -1
  128. package/dist/resolvers/index.d.cts +2 -1
  129. package/dist/resolvers/index.d.ts +2 -1
  130. package/dist/resolvers/index.js +1 -1
  131. package/dist/resolvers/joi.d.cts +2 -1
  132. package/dist/resolvers/joi.d.ts +2 -1
  133. package/dist/resolvers/yup.d.cts +2 -1
  134. package/dist/resolvers/yup.d.ts +2 -1
  135. package/dist/resolvers/zod.d.cts +2 -1
  136. package/dist/resolvers/zod.d.ts +2 -1
  137. package/dist/store-api-types-D-ZHxzRy.d.cts +161 -0
  138. package/dist/store-api-types-DPi30jQF.d.ts +161 -0
  139. package/dist/{bus-B4zZmB9C.d.ts → types-CG5nYeRk.d.ts} +140 -41
  140. package/dist/{bus-BeAeZwWu.d.cts → types-D6LhF5GC.d.cts} +140 -41
  141. package/dist/{upload-EXnJLq8k.d.cts → upload-C2mpfhp1.d.cts} +1 -1
  142. package/dist/{upload-EXnJLq8k.d.ts → upload-C2mpfhp1.d.ts} +1 -1
  143. package/dist/{use-bit-persist-Dk3fUrds.d.ts → use-bit-persist-BTwy8kvA.d.ts} +14 -14
  144. package/dist/{use-bit-persist-D_gimC9A.d.cts → use-bit-persist-C2LHNTVv.d.cts} +14 -14
  145. package/dist/utils.cjs +2 -0
  146. package/dist/utils.cjs.map +1 -0
  147. package/dist/utils.d.cts +6 -0
  148. package/dist/utils.d.ts +6 -0
  149. package/dist/utils.js +2 -0
  150. package/dist/utils.js.map +1 -0
  151. package/dist/vue/index.cjs +1 -1
  152. package/dist/vue/index.cjs.map +1 -1
  153. package/dist/vue/index.d.cts +17 -18
  154. package/dist/vue/index.d.ts +17 -18
  155. package/dist/vue/index.js +1 -1
  156. package/dist/vue/index.js.map +1 -1
  157. package/package.json +48 -17
  158. package/dist/chunk-2CVKNPWX.js +0 -2
  159. package/dist/chunk-2CVKNPWX.js.map +0 -1
  160. package/dist/chunk-3EDD3V43.cjs +0 -2
  161. package/dist/chunk-3EDD3V43.cjs.map +0 -1
  162. package/dist/chunk-PX6WKENM.js +0 -2
  163. package/dist/chunk-PX6WKENM.js.map +0 -1
  164. package/dist/chunk-QWH2NBVB.js +0 -2
  165. package/dist/chunk-QWH2NBVB.js.map +0 -1
  166. package/dist/chunk-T3FR7D5V.js +0 -2
  167. package/dist/chunk-T3FR7D5V.js.map +0 -1
  168. package/dist/chunk-VQ7MK5VB.cjs +0 -2
  169. package/dist/chunk-VQ7MK5VB.cjs.map +0 -1
  170. package/dist/chunk-Y2ONHDRE.cjs +0 -2
  171. package/dist/chunk-Y2ONHDRE.cjs.map +0 -1
  172. package/dist/chunk-YCSWULEN.cjs +0 -2
  173. package/dist/chunk-YCSWULEN.cjs.map +0 -1
  174. package/dist/field-binding-BXw0Ku2c.d.cts +0 -12
  175. package/dist/field-binding-BXw0Ku2c.d.ts +0 -12
  176. package/dist/public-types-Cd9ai20P.d.cts +0 -97
  177. package/dist/public-types-DdZxD6Op.d.ts +0 -97
@@ -0,0 +1,54 @@
1
+ type DevToolsActionName = "undo" | "redo" | "reset";
2
+ declare const DEVTOOLS_PROTOCOL_VERSION = 1;
3
+ interface DevToolsProtocolMessageBase {
4
+ protocolVersion: number;
5
+ }
6
+ interface DevToolsHistoryMeta {
7
+ canUndo: boolean;
8
+ canRedo: boolean;
9
+ totalSteps: number;
10
+ currentIndex: number;
11
+ }
12
+ interface DevToolsStoreSnapshot {
13
+ values: unknown;
14
+ errors: Record<string, unknown>;
15
+ touched: Record<string, unknown>;
16
+ isValid: boolean;
17
+ isDirty: boolean;
18
+ isSubmitting: boolean;
19
+ isValidating?: Record<string, unknown>;
20
+ persist?: unknown;
21
+ _meta: DevToolsHistoryMeta;
22
+ }
23
+ type DevToolsStoreSnapshots = Record<string, DevToolsStoreSnapshot>;
24
+ interface DevToolsActionPayload {
25
+ storeId: string;
26
+ action: DevToolsActionName;
27
+ }
28
+ interface DevToolsStateUpdateMessage extends DevToolsProtocolMessageBase {
29
+ type: "STATE_UPDATE";
30
+ payload: DevToolsStoreSnapshots;
31
+ }
32
+ interface DevToolsPingMessage extends DevToolsProtocolMessageBase {
33
+ type: "PING";
34
+ }
35
+ interface DevToolsActionMessage extends DevToolsProtocolMessageBase {
36
+ type: "ACTION";
37
+ payload: DevToolsActionPayload;
38
+ }
39
+ interface DevToolsHelloPayload {
40
+ role: "client" | "server";
41
+ protocolVersion: number;
42
+ }
43
+ interface DevToolsHelloMessage extends DevToolsProtocolMessageBase {
44
+ type: "HELLO";
45
+ payload: DevToolsHelloPayload;
46
+ }
47
+ type DevToolsRemoteMessage = DevToolsStateUpdateMessage | DevToolsPingMessage | DevToolsActionMessage | DevToolsHelloMessage;
48
+ declare function isDevToolsActionPayload(payload: unknown): payload is DevToolsActionPayload;
49
+ declare function isDevToolsActionMessage(message: unknown): message is DevToolsActionMessage;
50
+ declare function isDevToolsStateUpdateMessage(message: unknown): message is DevToolsStateUpdateMessage;
51
+ declare function isDevToolsPingMessage(message: unknown): message is DevToolsPingMessage;
52
+ declare function isDevToolsHelloMessage(message: unknown): message is DevToolsHelloMessage;
53
+
54
+ export { DEVTOOLS_PROTOCOL_VERSION, type DevToolsActionMessage, type DevToolsActionName, type DevToolsActionPayload, type DevToolsHelloMessage, type DevToolsHelloPayload, type DevToolsHistoryMeta, type DevToolsPingMessage, type DevToolsProtocolMessageBase, type DevToolsRemoteMessage, type DevToolsStateUpdateMessage, type DevToolsStoreSnapshot, type DevToolsStoreSnapshots, isDevToolsActionMessage, isDevToolsActionPayload, isDevToolsHelloMessage, isDevToolsPingMessage, isDevToolsStateUpdateMessage };
@@ -0,0 +1,2 @@
1
+ import{a,b,c,d,e,f}from"../chunk-K5X37E3U.js";export{a as DEVTOOLS_PROTOCOL_VERSION,c as isDevToolsActionMessage,b as isDevToolsActionPayload,f as isDevToolsHelloMessage,e as isDevToolsPingMessage,d as isDevToolsStateUpdateMessage};
2
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,25 @@
1
+ import { B as BitMask } from './types-D8DgIUhJ.cjs';
2
+
3
+ /**
4
+ * Tipo de entrada aceito pelos handlers de campo.
5
+ * Cobre eventos nativos (`e.target.value`), eventos sintéticos e valores diretos.
6
+ * Definido aqui para ser compartilhado entre todos os frameworks.
7
+ */
8
+ type BitFieldInputEvent = {
9
+ target?: {
10
+ value?: string | number | null;
11
+ };
12
+ } | string | number | null | undefined;
13
+ /**
14
+ * Type guard: verifica se o valor de entrada é um objeto de evento
15
+ * (com propriedade `target`), diferenciando-o de um valor direto.
16
+ */
17
+ declare function isBitFieldInputEventObject(value: BitFieldInputEvent): value is Extract<BitFieldInputEvent, {
18
+ target?: {
19
+ value?: string | number | null;
20
+ };
21
+ }>;
22
+ declare const formatMaskedValue: (value: unknown, mask?: BitMask) => string;
23
+ declare const parseMaskedInput: (value: unknown, mask?: BitMask) => unknown;
24
+
25
+ export { type BitFieldInputEvent as B, formatMaskedValue as f, isBitFieldInputEventObject as i, parseMaskedInput as p };
@@ -0,0 +1,25 @@
1
+ import { B as BitMask } from './types-D8DgIUhJ.js';
2
+
3
+ /**
4
+ * Tipo de entrada aceito pelos handlers de campo.
5
+ * Cobre eventos nativos (`e.target.value`), eventos sintéticos e valores diretos.
6
+ * Definido aqui para ser compartilhado entre todos os frameworks.
7
+ */
8
+ type BitFieldInputEvent = {
9
+ target?: {
10
+ value?: string | number | null;
11
+ };
12
+ } | string | number | null | undefined;
13
+ /**
14
+ * Type guard: verifica se o valor de entrada é um objeto de evento
15
+ * (com propriedade `target`), diferenciando-o de um valor direto.
16
+ */
17
+ declare function isBitFieldInputEventObject(value: BitFieldInputEvent): value is Extract<BitFieldInputEvent, {
18
+ target?: {
19
+ value?: string | number | null;
20
+ };
21
+ }>;
22
+ declare const formatMaskedValue: (value: unknown, mask?: BitMask) => string;
23
+ declare const parseMaskedInput: (value: unknown, mask?: BitMask) => unknown;
24
+
25
+ export { type BitFieldInputEvent as B, formatMaskedValue as f, isBitFieldInputEventObject as i, parseMaskedInput as p };
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYCSWULENcjs = require('./chunk-YCSWULEN.cjs');exports.bitBus = _chunkYCSWULENcjs.j; exports.cleanPrefixedKeys = _chunkYCSWULENcjs.g; exports.createBitStore = _chunkYCSWULENcjs.l; exports.deepClone = _chunkYCSWULENcjs.a; exports.deepEqual = _chunkYCSWULENcjs.d; exports.deepMerge = _chunkYCSWULENcjs.b; exports.extractServerErrors = _chunkYCSWULENcjs.i; exports.getDeepValue = _chunkYCSWULENcjs.e; exports.isValidationErrorShape = _chunkYCSWULENcjs.h; exports.resolveBitStoreForHooks = _chunkYCSWULENcjs.k; exports.setDeepValue = _chunkYCSWULENcjs.f; exports.valueEqual = _chunkYCSWULENcjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-W5CLDRRE.cjs');var _chunkVZHG372Qcjs = require('./chunk-VZHG372Q.cjs');require('./chunk-MFTWAFMG.cjs');require('./chunk-BSGJ3T5S.cjs');require('./chunk-D7JQWF6V.cjs');require('./chunk-M6WBNHIT.cjs');require('./chunk-T2JRSWQU.cjs');require('./chunk-PFPGASVZ.cjs');exports.createBitStore = _chunkVZHG372Qcjs.e; exports.createFrameworkStoreAdapter = _chunkVZHG372Qcjs.d; exports.resolveBitStoreForHooks = _chunkVZHG372Qcjs.c;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/index.cjs"],"names":[],"mappings":"AAAA,iIAAqH,iiBAAkP","file":"/home/runner/work/bit-form/bit-form/dist/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/index.cjs"],"names":[],"mappings":"AAAA,yGAA4B,wDAAuD,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,+JAA0F","file":"/home/runner/work/bit-form/bit-form/dist/index.cjs"}
package/dist/index.d.cts CHANGED
@@ -1,195 +1,11 @@
1
- import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.cjs';
2
- import { o as BitComputedFn, B as BitConfig, a as BitFieldDefinition, p as BitTransformFn, e as BitState, f as BitPath, m as BitFieldState, g as BitPathValue, q as BitFieldChangeMeta, h as DeepPartial, i as BitErrors, j as BitPersistMetadata, k as BitArrayPath, l as BitArrayItem, r as BitBeforeValidateEvent, s as BitAfterValidateEvent, t as BitBeforeSubmitEvent, u as BitAfterSubmitEvent, v as BitFieldChangeEvent } from './bus-BeAeZwWu.cjs';
3
- export { w as BitFieldConditional, x as BitFieldValidation, y as BitHistoryConfig, z as BitPersistConfig, A as BitPersistMode, C as BitPersistStorageAdapter, d as BitPlugin, E as BitPluginContext, F as BitPluginErrorEvent, G as BitPluginHooks, H as BitTouched, I as BitValidationConfig, S as ScopeStatus, n as ValidateScopeResult, V as ValidatorFn, J as bitBus } from './bus-BeAeZwWu.cjs';
4
- import { B as BitFrameworkConfig, a as BitSelector, b as BitSelectorSubscriptionOptions, c as BitHistoryMetadata, d as BitValidationOptions, e as BitStoreApi, f as BitStoreHooksApi } from './public-types-Cd9ai20P.cjs';
5
- export { g as BitEqualityFn } from './public-types-Cd9ai20P.cjs';
6
- export { a as BitDeleteUploadFn, B as BitUploadFn, b as BitUploadResult } from './upload-EXnJLq8k.cjs';
1
+ import { j as BitConfig } from './types-D6LhF5GC.cjs';
2
+ import { e as BitStoreApi, b as BitFrameworkStoreApi, f as BitStoreHooksApi } from './store-api-types-D-ZHxzRy.cjs';
3
+ import './bus-ZLQeq4Vr.cjs';
4
+ import './types-D8DgIUhJ.cjs';
5
+ import './meta-types-Bzmm21TP.cjs';
7
6
 
8
- interface BitComputedEntry<T extends object> {
9
- path: string;
10
- compute: BitComputedFn<T>;
11
- dependsOn?: readonly string[];
12
- }
7
+ declare function resolveBitStoreForHooks<T extends object>(store: unknown): BitStoreHooksApi<T>;
8
+ declare function createFrameworkStoreAdapter<T extends object>(store: unknown): BitFrameworkStoreApi<T>;
9
+ declare function createBitStore<T extends object = Record<string, unknown>>(config?: BitConfig<T>): BitStoreApi<T>;
13
10
 
14
- interface BitValidationTriggerOptions {
15
- forceDebounce?: boolean;
16
- }
17
-
18
- /**
19
- * BitStore
20
- *
21
- * The core orchestrator of form state management.
22
- *
23
- * This store coordinates multiple managers to provide comprehensive form handling:
24
- * - Core managers handle essential state and validation
25
- * - Feature managers provide optional enhancements (history, arrays, scopes)
26
- * - Query/mutation managers organize domain-specific operations
27
- */
28
- declare class BitStore<T extends object = any> {
29
- private state;
30
- private readonly subscriptions;
31
- private readonly effects;
32
- private readonly capabilities;
33
- /** Baseline for dirty tracking. Decoupled from config so that rebaseValues
34
- * can update it without mutating the user-provided config object. */
35
- private _initialValues;
36
- /** Incremented on every registerMask() call so React hooks can track mask
37
- * configuration changes via useSyncExternalStore without putting masks in
38
- * BitState and triggering a full re-render of all fields. */
39
- private _masksVersion;
40
- config: BitFrameworkConfig<T>;
41
- readonly storeId: string;
42
- private readonly dependencyManager;
43
- private readonly computedManager;
44
- private readonly dirtyManager;
45
- private scopeFieldsIndex;
46
- private computedEntriesCache;
47
- private transformEntriesCache;
48
- private batchDepth;
49
- private batchedState;
50
- private batchedChangedPaths;
51
- private batchedValuesChanged;
52
- private invalidateFieldIndexes;
53
- private registerCachedFieldIndexes;
54
- private unregisterCachedFieldIndexes;
55
- private getCapability;
56
- private get validation();
57
- private get lifecycle();
58
- private get history();
59
- private get arrays();
60
- private get scope();
61
- private get query();
62
- private get error();
63
- constructor(config?: BitConfig<T>);
64
- getConfig(): BitFrameworkConfig<T>;
65
- getFieldConfig(path: string): BitFieldDefinition<T> | undefined;
66
- getScopeFields(scopeName: string): string[];
67
- getComputedEntries(): BitComputedEntry<T>[];
68
- getTransformEntries(): [string, BitTransformFn<T>][];
69
- resolveMask(path: string): BitMask | undefined;
70
- getState(): BitState<T>;
71
- getFieldState<P extends BitPath<T>>(path: P): BitFieldState<T, BitPathValue<T, P>>;
72
- get isValid(): boolean;
73
- get isSubmitting(): boolean;
74
- get isDirty(): boolean;
75
- registerField(path: string, config: BitFieldDefinition<T>): void;
76
- unregisterField(path: string): void;
77
- unregisterPrefix(prefix: string): void;
78
- isHidden<P extends BitPath<T>>(path: P): boolean;
79
- isRequired<P extends BitPath<T>>(path: P): boolean;
80
- isFieldDirty(path: string): boolean;
81
- isFieldValidating(path: string): boolean;
82
- subscribe(listener: () => void): () => void;
83
- subscribeSelector<TSlice>(selector: BitSelector<T, TSlice>, listener: (slice: TSlice) => void, options?: BitSelectorSubscriptionOptions<TSlice>): () => void;
84
- subscribePath<P extends BitPath<T>>(path: P, listener: (value: BitPathValue<T, P>) => void, options?: BitSelectorSubscriptionOptions<BitPathValue<T, P>>): () => void;
85
- watch<P extends BitPath<T>>(path: P, callback: (value: BitPathValue<T, P>) => void): () => void;
86
- setField<P extends BitPath<T>>(path: P, value: BitPathValue<T, P>): void;
87
- setFieldWithMeta(path: string, value: any, meta?: BitFieldChangeMeta): void;
88
- blurField<P extends BitPath<T>>(path: P): void;
89
- markFieldsTouched(paths: string[]): void;
90
- replaceValues(newValues: T): void;
91
- hydrate(values: DeepPartial<T>): void;
92
- rebase(newValues: T): void;
93
- setError(path: string, message: string | undefined): void;
94
- setErrors(errors: BitErrors<T>): void;
95
- setServerErrors(serverErrors: Record<string, string[] | string>): void;
96
- reset(): void;
97
- transaction<TResult>(callback: () => TResult): TResult;
98
- submit(onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>): Promise<void>;
99
- registerMask(name: BitMaskName, mask: BitMask): void;
100
- getDirtyValues(): Partial<T>;
101
- getPersistMetadata(): BitPersistMetadata;
102
- restorePersisted(): Promise<boolean>;
103
- forceSave(): Promise<void>;
104
- clearPersisted(): Promise<void>;
105
- pushItem<P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>): void;
106
- prependItem<P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>): void;
107
- insertItem<P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>): void;
108
- removeItem<P extends BitArrayPath<T>>(path: P, index: number): void;
109
- swapItems<P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number): void;
110
- moveItem<P extends BitArrayPath<T>>(path: P, from: number, to: number): void;
111
- get canUndo(): boolean;
112
- get canRedo(): boolean;
113
- undo(): void;
114
- redo(): void;
115
- getHistoryMetadata(): BitHistoryMetadata;
116
- validate(options?: BitValidationOptions): Promise<boolean>;
117
- emitBeforeValidate(event: BitBeforeValidateEvent<T>): Promise<void>;
118
- emitAfterValidate(event: BitAfterValidateEvent<T>): Promise<void>;
119
- emitBeforeSubmit(event: BitBeforeSubmitEvent<T>): Promise<void>;
120
- emitAfterSubmit(event: BitAfterSubmitEvent<T>): Promise<void>;
121
- emitFieldChange(event: BitFieldChangeEvent<T>): void;
122
- emitOperationalError(event: {
123
- source: "submit";
124
- error: unknown;
125
- payload?: unknown;
126
- }): Promise<void>;
127
- hasValidationsInProgress(scopeFields?: string[]): boolean;
128
- triggerValidation(scopeFields?: string[], options?: BitValidationTriggerOptions): void;
129
- getStepStatus(scopeName: string): {
130
- hasErrors: boolean;
131
- isDirty: boolean;
132
- errors: Record<string, string>;
133
- };
134
- getStepErrors(scopeName: string): Record<string, string>;
135
- updateDependencies(changedPath: string, newValues: T): string[];
136
- isFieldHidden(path: string): boolean;
137
- evaluateAllDependencies(values: T): void;
138
- getHiddenFields(): ReadonlySet<string>;
139
- getRequiredErrors(values: T): BitErrors<T>;
140
- clearFieldValidation(path: string): void;
141
- handleFieldAsyncValidation(path: string, value: any): void;
142
- cancelAllValidations(): void;
143
- validateNow(options?: BitValidationOptions): Promise<boolean>;
144
- updateDirtyForPath(path: string, nextValues: T, baselineValues: T): boolean;
145
- rebuildDirtyState(nextValues: T, baselineValues: T): boolean;
146
- clearDirtyState(): void;
147
- buildDirtyValues(values: T): Partial<T>;
148
- batchStateUpdates<TResult>(callback: () => TResult): TResult;
149
- resetHistory(initialValues: T): void;
150
- /** Current baseline used for dirty-state comparisons. */
151
- get initialValues(): T;
152
- /** Returns the current baseline (usable as a port method). */
153
- getInitialValues(): T;
154
- /**
155
- * Updates the baseline used for dirty comparisons.
156
- * Called by rebaseValues so that config is never mutated directly by managers.
157
- * Also syncs config.initialValues so getConfig() reflects the new baseline.
158
- */
159
- setInitialValues(values: T): void;
160
- /** Returns a monotonically increasing counter that increments every time a
161
- * mask is registered via registerMask(). Used by React components to track
162
- * mask configuration changes reactively without storing masks in BitState. */
163
- getMasksVersion(): number;
164
- internalUpdateState(partialState: Partial<BitState<T>>, changedPaths?: string[]): void;
165
- internalSaveSnapshot(): void;
166
- private applyPersistedValues;
167
- cleanup(): void;
168
- private flushBatchedStateUpdates;
169
- }
170
-
171
- declare function resolveBitStoreForHooks<T extends object>(store: BitStoreApi<T> | BitStore<T>): BitStoreHooksApi<T>;
172
- declare function createBitStore<T extends object = any>(config?: BitConfig<T>): BitStoreApi<T>;
173
-
174
- declare function deepClone<T>(obj: T): T;
175
- declare function deepMerge<T>(target: T, source: any): T;
176
- /**
177
- * Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.
178
- * Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).
179
- */
180
- declare function valueEqual(a: any, b: any): boolean;
181
- declare function deepEqual(a: any, b: any): boolean;
182
- declare function getDeepValue(obj: any, path: string): any;
183
- declare function setDeepValue(obj: any, path: string, value: any): any;
184
- declare function cleanPrefixedKeys(obj: Record<string, any>, prefix: string): Record<string, any>;
185
- /**
186
- * Checks if a value looks like a server validation error response.
187
- * Handles shapes like { email: "Taken" }, { errors: { email: ["Taken"] } }, etc.
188
- */
189
- declare function isValidationErrorShape(x: unknown): x is Record<string, string | string[]>;
190
- /**
191
- * Extracts server errors in the format expected by setServerErrors.
192
- */
193
- declare function extractServerErrors(x: unknown): Record<string, string | string[]>;
194
-
195
- export { BitAfterSubmitEvent, BitAfterValidateEvent, BitArrayItem, BitArrayPath, BitBeforeSubmitEvent, BitBeforeValidateEvent, BitComputedFn, BitConfig, BitErrors, BitFieldChangeEvent, BitFieldChangeMeta, BitFieldDefinition, BitFieldState, BitFrameworkConfig, BitHistoryMetadata, BitPath, BitPathValue, BitPersistMetadata, BitSelector, BitSelectorSubscriptionOptions, BitState, BitStoreApi, BitStoreHooksApi, BitTransformFn, BitValidationOptions, DeepPartial, cleanPrefixedKeys, createBitStore, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, resolveBitStoreForHooks, setDeepValue, valueEqual };
11
+ export { BitConfig, BitFrameworkStoreApi, BitStoreApi, createBitStore, createFrameworkStoreAdapter, resolveBitStoreForHooks };
package/dist/index.d.ts CHANGED
@@ -1,195 +1,11 @@
1
- import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.js';
2
- import { o as BitComputedFn, B as BitConfig, a as BitFieldDefinition, p as BitTransformFn, e as BitState, f as BitPath, m as BitFieldState, g as BitPathValue, q as BitFieldChangeMeta, h as DeepPartial, i as BitErrors, j as BitPersistMetadata, k as BitArrayPath, l as BitArrayItem, r as BitBeforeValidateEvent, s as BitAfterValidateEvent, t as BitBeforeSubmitEvent, u as BitAfterSubmitEvent, v as BitFieldChangeEvent } from './bus-B4zZmB9C.js';
3
- export { w as BitFieldConditional, x as BitFieldValidation, y as BitHistoryConfig, z as BitPersistConfig, A as BitPersistMode, C as BitPersistStorageAdapter, d as BitPlugin, E as BitPluginContext, F as BitPluginErrorEvent, G as BitPluginHooks, H as BitTouched, I as BitValidationConfig, S as ScopeStatus, n as ValidateScopeResult, V as ValidatorFn, J as bitBus } from './bus-B4zZmB9C.js';
4
- import { B as BitFrameworkConfig, a as BitSelector, b as BitSelectorSubscriptionOptions, c as BitHistoryMetadata, d as BitValidationOptions, e as BitStoreApi, f as BitStoreHooksApi } from './public-types-DdZxD6Op.js';
5
- export { g as BitEqualityFn } from './public-types-DdZxD6Op.js';
6
- export { a as BitDeleteUploadFn, B as BitUploadFn, b as BitUploadResult } from './upload-EXnJLq8k.js';
1
+ import { j as BitConfig } from './types-CG5nYeRk.js';
2
+ import { e as BitStoreApi, b as BitFrameworkStoreApi, f as BitStoreHooksApi } from './store-api-types-DPi30jQF.js';
3
+ import './bus-B2VEKrPI.js';
4
+ import './types-D8DgIUhJ.js';
5
+ import './meta-types-Bzmm21TP.js';
7
6
 
8
- interface BitComputedEntry<T extends object> {
9
- path: string;
10
- compute: BitComputedFn<T>;
11
- dependsOn?: readonly string[];
12
- }
7
+ declare function resolveBitStoreForHooks<T extends object>(store: unknown): BitStoreHooksApi<T>;
8
+ declare function createFrameworkStoreAdapter<T extends object>(store: unknown): BitFrameworkStoreApi<T>;
9
+ declare function createBitStore<T extends object = Record<string, unknown>>(config?: BitConfig<T>): BitStoreApi<T>;
13
10
 
14
- interface BitValidationTriggerOptions {
15
- forceDebounce?: boolean;
16
- }
17
-
18
- /**
19
- * BitStore
20
- *
21
- * The core orchestrator of form state management.
22
- *
23
- * This store coordinates multiple managers to provide comprehensive form handling:
24
- * - Core managers handle essential state and validation
25
- * - Feature managers provide optional enhancements (history, arrays, scopes)
26
- * - Query/mutation managers organize domain-specific operations
27
- */
28
- declare class BitStore<T extends object = any> {
29
- private state;
30
- private readonly subscriptions;
31
- private readonly effects;
32
- private readonly capabilities;
33
- /** Baseline for dirty tracking. Decoupled from config so that rebaseValues
34
- * can update it without mutating the user-provided config object. */
35
- private _initialValues;
36
- /** Incremented on every registerMask() call so React hooks can track mask
37
- * configuration changes via useSyncExternalStore without putting masks in
38
- * BitState and triggering a full re-render of all fields. */
39
- private _masksVersion;
40
- config: BitFrameworkConfig<T>;
41
- readonly storeId: string;
42
- private readonly dependencyManager;
43
- private readonly computedManager;
44
- private readonly dirtyManager;
45
- private scopeFieldsIndex;
46
- private computedEntriesCache;
47
- private transformEntriesCache;
48
- private batchDepth;
49
- private batchedState;
50
- private batchedChangedPaths;
51
- private batchedValuesChanged;
52
- private invalidateFieldIndexes;
53
- private registerCachedFieldIndexes;
54
- private unregisterCachedFieldIndexes;
55
- private getCapability;
56
- private get validation();
57
- private get lifecycle();
58
- private get history();
59
- private get arrays();
60
- private get scope();
61
- private get query();
62
- private get error();
63
- constructor(config?: BitConfig<T>);
64
- getConfig(): BitFrameworkConfig<T>;
65
- getFieldConfig(path: string): BitFieldDefinition<T> | undefined;
66
- getScopeFields(scopeName: string): string[];
67
- getComputedEntries(): BitComputedEntry<T>[];
68
- getTransformEntries(): [string, BitTransformFn<T>][];
69
- resolveMask(path: string): BitMask | undefined;
70
- getState(): BitState<T>;
71
- getFieldState<P extends BitPath<T>>(path: P): BitFieldState<T, BitPathValue<T, P>>;
72
- get isValid(): boolean;
73
- get isSubmitting(): boolean;
74
- get isDirty(): boolean;
75
- registerField(path: string, config: BitFieldDefinition<T>): void;
76
- unregisterField(path: string): void;
77
- unregisterPrefix(prefix: string): void;
78
- isHidden<P extends BitPath<T>>(path: P): boolean;
79
- isRequired<P extends BitPath<T>>(path: P): boolean;
80
- isFieldDirty(path: string): boolean;
81
- isFieldValidating(path: string): boolean;
82
- subscribe(listener: () => void): () => void;
83
- subscribeSelector<TSlice>(selector: BitSelector<T, TSlice>, listener: (slice: TSlice) => void, options?: BitSelectorSubscriptionOptions<TSlice>): () => void;
84
- subscribePath<P extends BitPath<T>>(path: P, listener: (value: BitPathValue<T, P>) => void, options?: BitSelectorSubscriptionOptions<BitPathValue<T, P>>): () => void;
85
- watch<P extends BitPath<T>>(path: P, callback: (value: BitPathValue<T, P>) => void): () => void;
86
- setField<P extends BitPath<T>>(path: P, value: BitPathValue<T, P>): void;
87
- setFieldWithMeta(path: string, value: any, meta?: BitFieldChangeMeta): void;
88
- blurField<P extends BitPath<T>>(path: P): void;
89
- markFieldsTouched(paths: string[]): void;
90
- replaceValues(newValues: T): void;
91
- hydrate(values: DeepPartial<T>): void;
92
- rebase(newValues: T): void;
93
- setError(path: string, message: string | undefined): void;
94
- setErrors(errors: BitErrors<T>): void;
95
- setServerErrors(serverErrors: Record<string, string[] | string>): void;
96
- reset(): void;
97
- transaction<TResult>(callback: () => TResult): TResult;
98
- submit(onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>): Promise<void>;
99
- registerMask(name: BitMaskName, mask: BitMask): void;
100
- getDirtyValues(): Partial<T>;
101
- getPersistMetadata(): BitPersistMetadata;
102
- restorePersisted(): Promise<boolean>;
103
- forceSave(): Promise<void>;
104
- clearPersisted(): Promise<void>;
105
- pushItem<P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>): void;
106
- prependItem<P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>): void;
107
- insertItem<P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>): void;
108
- removeItem<P extends BitArrayPath<T>>(path: P, index: number): void;
109
- swapItems<P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number): void;
110
- moveItem<P extends BitArrayPath<T>>(path: P, from: number, to: number): void;
111
- get canUndo(): boolean;
112
- get canRedo(): boolean;
113
- undo(): void;
114
- redo(): void;
115
- getHistoryMetadata(): BitHistoryMetadata;
116
- validate(options?: BitValidationOptions): Promise<boolean>;
117
- emitBeforeValidate(event: BitBeforeValidateEvent<T>): Promise<void>;
118
- emitAfterValidate(event: BitAfterValidateEvent<T>): Promise<void>;
119
- emitBeforeSubmit(event: BitBeforeSubmitEvent<T>): Promise<void>;
120
- emitAfterSubmit(event: BitAfterSubmitEvent<T>): Promise<void>;
121
- emitFieldChange(event: BitFieldChangeEvent<T>): void;
122
- emitOperationalError(event: {
123
- source: "submit";
124
- error: unknown;
125
- payload?: unknown;
126
- }): Promise<void>;
127
- hasValidationsInProgress(scopeFields?: string[]): boolean;
128
- triggerValidation(scopeFields?: string[], options?: BitValidationTriggerOptions): void;
129
- getStepStatus(scopeName: string): {
130
- hasErrors: boolean;
131
- isDirty: boolean;
132
- errors: Record<string, string>;
133
- };
134
- getStepErrors(scopeName: string): Record<string, string>;
135
- updateDependencies(changedPath: string, newValues: T): string[];
136
- isFieldHidden(path: string): boolean;
137
- evaluateAllDependencies(values: T): void;
138
- getHiddenFields(): ReadonlySet<string>;
139
- getRequiredErrors(values: T): BitErrors<T>;
140
- clearFieldValidation(path: string): void;
141
- handleFieldAsyncValidation(path: string, value: any): void;
142
- cancelAllValidations(): void;
143
- validateNow(options?: BitValidationOptions): Promise<boolean>;
144
- updateDirtyForPath(path: string, nextValues: T, baselineValues: T): boolean;
145
- rebuildDirtyState(nextValues: T, baselineValues: T): boolean;
146
- clearDirtyState(): void;
147
- buildDirtyValues(values: T): Partial<T>;
148
- batchStateUpdates<TResult>(callback: () => TResult): TResult;
149
- resetHistory(initialValues: T): void;
150
- /** Current baseline used for dirty-state comparisons. */
151
- get initialValues(): T;
152
- /** Returns the current baseline (usable as a port method). */
153
- getInitialValues(): T;
154
- /**
155
- * Updates the baseline used for dirty comparisons.
156
- * Called by rebaseValues so that config is never mutated directly by managers.
157
- * Also syncs config.initialValues so getConfig() reflects the new baseline.
158
- */
159
- setInitialValues(values: T): void;
160
- /** Returns a monotonically increasing counter that increments every time a
161
- * mask is registered via registerMask(). Used by React components to track
162
- * mask configuration changes reactively without storing masks in BitState. */
163
- getMasksVersion(): number;
164
- internalUpdateState(partialState: Partial<BitState<T>>, changedPaths?: string[]): void;
165
- internalSaveSnapshot(): void;
166
- private applyPersistedValues;
167
- cleanup(): void;
168
- private flushBatchedStateUpdates;
169
- }
170
-
171
- declare function resolveBitStoreForHooks<T extends object>(store: BitStoreApi<T> | BitStore<T>): BitStoreHooksApi<T>;
172
- declare function createBitStore<T extends object = any>(config?: BitConfig<T>): BitStoreApi<T>;
173
-
174
- declare function deepClone<T>(obj: T): T;
175
- declare function deepMerge<T>(target: T, source: any): T;
176
- /**
177
- * Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.
178
- * Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).
179
- */
180
- declare function valueEqual(a: any, b: any): boolean;
181
- declare function deepEqual(a: any, b: any): boolean;
182
- declare function getDeepValue(obj: any, path: string): any;
183
- declare function setDeepValue(obj: any, path: string, value: any): any;
184
- declare function cleanPrefixedKeys(obj: Record<string, any>, prefix: string): Record<string, any>;
185
- /**
186
- * Checks if a value looks like a server validation error response.
187
- * Handles shapes like { email: "Taken" }, { errors: { email: ["Taken"] } }, etc.
188
- */
189
- declare function isValidationErrorShape(x: unknown): x is Record<string, string | string[]>;
190
- /**
191
- * Extracts server errors in the format expected by setServerErrors.
192
- */
193
- declare function extractServerErrors(x: unknown): Record<string, string | string[]>;
194
-
195
- export { BitAfterSubmitEvent, BitAfterValidateEvent, BitArrayItem, BitArrayPath, BitBeforeSubmitEvent, BitBeforeValidateEvent, BitComputedFn, BitConfig, BitErrors, BitFieldChangeEvent, BitFieldChangeMeta, BitFieldDefinition, BitFieldState, BitFrameworkConfig, BitHistoryMetadata, BitPath, BitPathValue, BitPersistMetadata, BitSelector, BitSelectorSubscriptionOptions, BitState, BitStoreApi, BitStoreHooksApi, BitTransformFn, BitValidationOptions, DeepPartial, cleanPrefixedKeys, createBitStore, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, resolveBitStoreForHooks, setDeepValue, valueEqual };
11
+ export { BitConfig, BitFrameworkStoreApi, BitStoreApi, createBitStore, createFrameworkStoreAdapter, resolveBitStoreForHooks };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d}from"./chunk-PX6WKENM.js";export{b as bitBus,t as cleanPrefixedKeys,d as createBitStore,o as deepClone,f as deepEqual,r as deepMerge,a as extractServerErrors,m as getDeepValue,x as isValidationErrorShape,c as resolveBitStoreForHooks,p as setDeepValue,e as valueEqual};
1
+ import"./chunk-5NA2TFPG.js";import{c as r,d as e,e as o}from"./chunk-UQ3DSUWC.js";import"./chunk-E2NZR44P.js";import"./chunk-W2E5UIXT.js";import"./chunk-EQ55DKX2.js";import"./chunk-63OJBMKK.js";import"./chunk-RD73EBSN.js";import"./chunk-3NUJVIAM.js";export{o as createBitStore,e as createFrameworkStoreAdapter,r as resolveBitStoreForHooks};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,18 @@
1
+ interface BitValidationOptions {
2
+ scope?: string;
3
+ scopeFields?: string[];
4
+ }
5
+ interface BitHistoryMetadata {
6
+ enabled: boolean;
7
+ canUndo: boolean;
8
+ canRedo: boolean;
9
+ historyIndex: number;
10
+ historySize: number;
11
+ }
12
+ interface BitFormMeta {
13
+ isValid: boolean;
14
+ isDirty: boolean;
15
+ isSubmitting: boolean;
16
+ }
17
+
18
+ export type { BitFormMeta as B, BitHistoryMetadata as a, BitValidationOptions as b };
@@ -0,0 +1,18 @@
1
+ interface BitValidationOptions {
2
+ scope?: string;
3
+ scopeFields?: string[];
4
+ }
5
+ interface BitHistoryMetadata {
6
+ enabled: boolean;
7
+ canUndo: boolean;
8
+ canRedo: boolean;
9
+ historyIndex: number;
10
+ historySize: number;
11
+ }
12
+ interface BitFormMeta {
13
+ isValid: boolean;
14
+ isDirty: boolean;
15
+ isSubmitting: boolean;
16
+ }
17
+
18
+ export type { BitFormMeta as B, BitHistoryMetadata as a, BitValidationOptions as b };
@@ -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 _chunk3EDD3V43cjs = require('../chunk-3EDD3V43.cjs');var _chunkVQ7MK5VBcjs = require('../chunk-VQ7MK5VB.cjs');require('../chunk-Y2ONHDRE.cjs');require('../chunk-YCSWULEN.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _react = require('react');function F(e){let{fieldState:s,setValue:n,setBlur:o,store:t}=_chunk3EDD3V43cjs.d.call(void 0, e),d=_react.useSyncExternalStore.call(void 0, u=>t.subscribe(u),()=>t.getMasksVersion(),()=>t.getMasksVersion()),a=_react.useMemo.call(void 0, ()=>t.resolveMask(e),[d,t.config.fields,e]),r=_react.useMemo.call(void 0, ()=>_chunkPFPGASVZcjs.b.call(void 0, s.value,_nullishCoalesce(a, () => (void 0))),[s.value,a]),i=_react.useCallback.call(void 0, u=>n(_chunkPFPGASVZcjs.c.call(void 0, u,_nullishCoalesce(a, () => (void 0)))),[a,n]),{isHidden:B,isRequired:f,value:l,error:p,touched:y,isDirty:h,isValidating:T}=s,E=!!(y&&p),I=y?p:void 0,x=_react.useCallback.call(void 0, u=>{let C=_chunkPFPGASVZcjs.a.call(void 0, u)?_optionalChain([u, 'access', _ => _.target, 'optionalAccess', _2 => _2.value]):u;i(C)},[i]),g=_react.useCallback.call(void 0, ()=>{o()},[o]);return{value:l,displayValue:r,setValue:i,setBlur:o,onChange:x,onBlur:g,props:{value:r,onChange:x,onBlur:g},meta:{error:I,touched:y,invalid:E,isDirty:h,isValidating:T,isHidden:B,isRequired:f,hasError:!!p}}}function G(){let e=_chunk3EDD3V43cjs.b.call(void 0, ),s=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let r=e.getHistoryMetadata();if(s.current&&_chunkVQ7MK5VBcjs.a.call(void 0, s.current,r))return s.current;let i={canUndo:r.canUndo,canRedo:r.canRedo,historyIndex:r.historyIndex,historySize:r.historySize};return s.current=i,i},[e]),o=_react.useCallback.call(void 0, r=>e.subscribe(r),[e]),t=_react.useSyncExternalStore.call(void 0, o,n,n),d=_react.useCallback.call(void 0, ()=>{e.undo()},[e]),a=_react.useCallback.call(void 0, ()=>{e.redo()},[e]);return{...t,undo:d,redo:a}}function Q(e,s,n){let o=_chunk3EDD3V43cjs.b.call(void 0, ),t=F(e),d=_react.useRef.call(void 0, null),[a,r]=_react.useState.call(void 0, !1),i={setLoading:r,setError:(l,p)=>o.setError(l,p),setValue:l=>t.setValue(l),getUploadKey:()=>d.current,setUploadKey:l=>{d.current=l}},B=_react.useCallback.call(void 0, _chunkVQ7MK5VBcjs.b.call(void 0, e,s,i),[s,t,e,o]),f=_react.useCallback.call(void 0, _chunkVQ7MK5VBcjs.c.call(void 0, e,n,i),[n,t,e,o]);return{value:t.value,setValue:t.setValue,error:_optionalChain([t, 'access', _3 => _3.meta, 'optionalAccess', _4 => _4.error]),isValidating:!!_optionalChain([t, 'access', _5 => _5.meta, 'optionalAccess', _6 => _6.isValidating])||a,upload:B,remove:f}}exports.BitFormProvider = _chunk3EDD3V43cjs.a; exports.useBitArray = _chunk3EDD3V43cjs.e; exports.useBitField = F; exports.useBitForm = _chunk3EDD3V43cjs.c; exports.useBitHistory = G; exports.useBitPersist = _chunk3EDD3V43cjs.i; exports.useBitScope = _chunk3EDD3V43cjs.f; exports.useBitSteps = _chunk3EDD3V43cjs.g; exports.useBitStore = _chunk3EDD3V43cjs.b; exports.useBitUpload = Q; exports.useBitWatch = _chunk3EDD3V43cjs.h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkMFSQATNZcjs = require('../chunk-MFSQATNZ.cjs');var _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-VZHG372Q.cjs');var _chunkMFTWAFMGcjs = require('../chunk-MFTWAFMG.cjs');require('../chunk-BSGJ3T5S.cjs');var _chunkD7JQWF6Vcjs = require('../chunk-D7JQWF6V.cjs');var _chunkM6WBNHITcjs = require('../chunk-M6WBNHIT.cjs');require('../chunk-T2JRSWQU.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _react = require('react');function y(e){let{fieldState:t,setBlur:n,store:a}=_chunkMFSQATNZcjs.d.call(void 0, e),{fieldController:r}=_react.useMemo.call(void 0, ()=>_chunkMFTWAFMGcjs.h.call(void 0, a,e),[a,e]),l=_react.useMemo.call(void 0, ()=>r.displayValue(t.value),[t.value,r]),u=_react.useCallback.call(void 0, i=>{r.setValue(i)},[r]),{value:o}=t,s=_chunkM6WBNHITcjs.c.call(void 0, t),p=_react.useCallback.call(void 0, i=>{let B=_chunkPFPGASVZcjs.a.call(void 0, i)?_optionalChain([i, 'access', _ => _.target, 'optionalAccess', _2 => _2.value]):i;u(B)},[u]),c=_react.useCallback.call(void 0, ()=>{n()},[n]);return{value:o,displayValue:l,setValue:u,setBlur:n,onChange:p,onBlur:c,props:{value:l,onChange:p,onBlur:c},meta:{error:s.error,touched:s.touched,invalid:s.invalid,isDirty:s.isDirty,isValidating:s.isValidating,isHidden:s.isHidden,isRequired:s.isRequired,hasError:s.hasError}}}function D(){let e=_chunkMFSQATNZcjs.b.call(void 0, ),t=_react.useRef.call(void 0, null),n=_react.useCallback.call(void 0, ()=>{let o=_chunkD7JQWF6Vcjs.f.call(void 0, e);return t.current&&t.current.canUndo===o.canUndo&&t.current.canRedo===o.canRedo&&t.current.historyIndex===o.historyIndex&&t.current.historySize===o.historySize?t.current:(t.current=o,o)},[e]),a=_react.useCallback.call(void 0, o=>e.observe.subscribeHistoryMeta(()=>o()),[e]),r=_react.useSyncExternalStore.call(void 0, a,n,n),l=_react.useCallback.call(void 0, ()=>{e.feature.undo()},[e]),u=_react.useCallback.call(void 0, ()=>{e.feature.redo()},[e]);return{...r,undo:l,redo:u}}function q(e,t,n){let a=_chunkMFSQATNZcjs.b.call(void 0, ),r=y(e),l=_react.useRef.call(void 0, null),[u,o]=_react.useState.call(void 0, !1),s={setLoading:o,setError:(i,B)=>a.write.setError(i,B),setValue:i=>r.setValue(i),getUploadKey:()=>l.current,setUploadKey:i=>{l.current=i}},p=_react.useCallback.call(void 0, _chunkIV32WXCFcjs.a.call(void 0, e,t,s),[t,r,e,a]),c=_react.useCallback.call(void 0, _chunkIV32WXCFcjs.b.call(void 0, e,n,s),[n,r,e,a]);return{value:r.value,setValue:r.setValue,error:_optionalChain([r, 'access', _3 => _3.meta, 'optionalAccess', _4 => _4.error]),isValidating:!!_optionalChain([r, 'access', _5 => _5.meta, 'optionalAccess', _6 => _6.isValidating])||u,upload:p,remove:c}}exports.BitFormProvider = _chunkMFSQATNZcjs.a; exports.useBitArray = _chunkMFSQATNZcjs.e; exports.useBitField = y; exports.useBitForm = _chunkMFSQATNZcjs.c; exports.useBitHistory = D; exports.useBitPersist = _chunkMFSQATNZcjs.i; exports.useBitScope = _chunkMFSQATNZcjs.f; exports.useBitSteps = _chunkMFSQATNZcjs.g; exports.useBitStore = _chunkMFSQATNZcjs.b; exports.useBitUpload = q; exports.useBitWatch = _chunkMFSQATNZcjs.h;
2
2
  //# sourceMappingURL=index.cjs.map