@lehnihon/bit-form 2.2.7 → 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.
- package/README.md +6 -6
- package/dist/angular/index.cjs +1 -1
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.d.cts +10 -8
- package/dist/angular/index.d.ts +10 -8
- package/dist/angular/index.js +1 -1
- package/dist/angular/index.js.map +1 -1
- package/dist/{array-controller-DtkmcnUr.d.ts → array-controller-B5bfXV1W.d.cts} +4 -4
- package/dist/{array-controller-C1A5VKYd.d.cts → array-controller-Cx-DMH7Y.d.ts} +4 -4
- package/dist/bus-B2VEKrPI.d.ts +19 -0
- package/dist/bus-ZLQeq4Vr.d.cts +19 -0
- package/dist/chunk-5NA2TFPG.js +1 -0
- package/dist/chunk-5NA2TFPG.js.map +1 -0
- package/dist/chunk-63OJBMKK.js +2 -0
- package/dist/chunk-63OJBMKK.js.map +1 -0
- package/dist/chunk-BSGJ3T5S.cjs +2 -0
- package/dist/chunk-BSGJ3T5S.cjs.map +1 -0
- package/dist/chunk-CPP7ELA5.js +2 -0
- package/dist/chunk-CPP7ELA5.js.map +1 -0
- package/dist/chunk-D7JQWF6V.cjs +2 -0
- package/dist/chunk-D7JQWF6V.cjs.map +1 -0
- package/dist/chunk-E2NZR44P.js +2 -0
- package/dist/chunk-E2NZR44P.js.map +1 -0
- package/dist/chunk-EQ55DKX2.js +2 -0
- package/dist/chunk-EQ55DKX2.js.map +1 -0
- package/dist/chunk-JC4R5WCC.js +2 -0
- package/dist/chunk-JC4R5WCC.js.map +1 -0
- package/dist/chunk-M6WBNHIT.cjs +2 -0
- package/dist/chunk-M6WBNHIT.cjs.map +1 -0
- package/dist/chunk-MFSQATNZ.cjs +2 -0
- package/dist/chunk-MFSQATNZ.cjs.map +1 -0
- package/dist/chunk-MFTWAFMG.cjs +2 -0
- package/dist/chunk-MFTWAFMG.cjs.map +1 -0
- package/dist/chunk-P2YWYBWG.cjs +2 -0
- package/dist/chunk-P2YWYBWG.cjs.map +1 -0
- package/dist/chunk-RD73EBSN.js +2 -0
- package/dist/chunk-RD73EBSN.js.map +1 -0
- package/dist/chunk-T2JRSWQU.cjs +2 -0
- package/dist/chunk-T2JRSWQU.cjs.map +1 -0
- package/dist/chunk-UQ3DSUWC.js +2 -0
- package/dist/chunk-UQ3DSUWC.js.map +1 -0
- package/dist/chunk-VZHG372Q.cjs +2 -0
- package/dist/chunk-VZHG372Q.cjs.map +1 -0
- package/dist/chunk-W2E5UIXT.js +2 -0
- package/dist/chunk-W2E5UIXT.js.map +1 -0
- package/dist/chunk-W5CLDRRE.cjs +1 -0
- package/dist/chunk-W5CLDRRE.cjs.map +1 -0
- package/dist/core/bindings.cjs +2 -0
- package/dist/core/bindings.cjs.map +1 -0
- package/dist/core/bindings.d.cts +81 -0
- package/dist/core/bindings.d.ts +81 -0
- package/dist/core/bindings.js +2 -0
- package/dist/core/bindings.js.map +1 -0
- package/dist/core/status.cjs +2 -0
- package/dist/core/status.cjs.map +1 -0
- package/dist/core/status.d.cts +44 -0
- package/dist/core/status.d.ts +44 -0
- package/dist/core/status.js +2 -0
- package/dist/core/status.js.map +1 -0
- package/dist/core/store.cjs +2 -0
- package/dist/core/store.cjs.map +1 -0
- package/dist/core/store.d.cts +84 -0
- package/dist/core/store.d.ts +84 -0
- package/dist/core/store.js +2 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/utils.cjs +2 -0
- package/dist/core/utils.cjs.map +1 -0
- package/dist/core/utils.d.cts +81 -0
- package/dist/core/utils.d.ts +81 -0
- package/dist/core/utils.js +2 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +14 -122
- package/dist/core.d.ts +14 -122
- package/dist/core.js +1 -1
- package/dist/devtools/bridge.cjs +1 -1
- package/dist/devtools/bridge.cjs.map +1 -1
- package/dist/devtools/bridge.d.cts +3 -2
- package/dist/devtools/bridge.d.ts +3 -2
- package/dist/devtools/bridge.js +1 -1
- package/dist/devtools/index.cjs +2 -2
- package/dist/devtools/index.cjs.map +1 -1
- package/dist/devtools/index.d.cts +3 -2
- package/dist/devtools/index.d.ts +3 -2
- package/dist/devtools/index.js +1 -1
- package/dist/devtools/index.js.map +1 -1
- package/dist/{field-binding-X5TkvfUt.d.cts → field-binding-B_OX3bjp.d.cts} +1 -1
- package/dist/{field-binding-Bi1g-D8X.d.ts → field-binding-MX6jVQbT.d.ts} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -85
- package/dist/index.d.ts +8 -85
- package/dist/index.js +1 -1
- package/dist/mask.d.cts +2 -2
- package/dist/mask.d.ts +2 -2
- package/dist/meta-types-Bzmm21TP.d.cts +18 -0
- package/dist/meta-types-Bzmm21TP.d.ts +18 -0
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +11 -9
- package/dist/react/index.d.ts +11 -9
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react-native/index.cjs +1 -1
- package/dist/react-native/index.cjs.map +1 -1
- package/dist/react-native/index.d.cts +9 -7
- package/dist/react-native/index.d.ts +9 -7
- package/dist/react-native/index.js +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/resolvers/index.cjs +1 -1
- package/dist/resolvers/index.cjs.map +1 -1
- package/dist/resolvers/index.d.cts +3 -2
- package/dist/resolvers/index.d.ts +3 -2
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/joi.d.cts +3 -2
- package/dist/resolvers/joi.d.ts +3 -2
- package/dist/resolvers/yup.d.cts +3 -2
- package/dist/resolvers/yup.d.ts +3 -2
- package/dist/resolvers/zod.d.cts +3 -2
- package/dist/resolvers/zod.d.ts +3 -2
- package/dist/store-api-types-D-ZHxzRy.d.cts +161 -0
- package/dist/store-api-types-DPi30jQF.d.ts +161 -0
- package/dist/{bus-DgilLszS.d.ts → types-CG5nYeRk.d.ts} +76 -45
- package/dist/{bus-rcUiufS7.d.cts → types-D6LhF5GC.d.cts} +76 -45
- package/dist/{types-CUXh7PqD.d.cts → types-D8DgIUhJ.d.cts} +1 -1
- package/dist/{types-CUXh7PqD.d.ts → types-D8DgIUhJ.d.ts} +1 -1
- package/dist/{upload-EXnJLq8k.d.cts → upload-C2mpfhp1.d.cts} +1 -1
- package/dist/{upload-EXnJLq8k.d.ts → upload-C2mpfhp1.d.ts} +1 -1
- package/dist/{use-bit-persist-CIKFwtdM.d.cts → use-bit-persist-BTwy8kvA.d.ts} +8 -6
- package/dist/{use-bit-persist-Bc06fmqZ.d.ts → use-bit-persist-C2LHNTVv.d.cts} +8 -6
- package/dist/utils.cjs +2 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +6 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.js +2 -0
- package/dist/utils.js.map +1 -0
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.d.cts +9 -7
- package/dist/vue/index.d.ts +9 -7
- package/dist/vue/index.js +1 -1
- package/dist/vue/index.js.map +1 -1
- package/package.json +32 -10
- package/dist/chunk-DIEE6LUO.js +0 -2
- package/dist/chunk-DIEE6LUO.js.map +0 -1
- package/dist/chunk-FUUQB4DV.cjs +0 -2
- package/dist/chunk-FUUQB4DV.cjs.map +0 -1
- package/dist/chunk-KWLLYQOL.cjs +0 -2
- package/dist/chunk-KWLLYQOL.cjs.map +0 -1
- package/dist/chunk-LIYZPSWM.js +0 -2
- package/dist/chunk-LIYZPSWM.js.map +0 -1
- package/dist/chunk-QAL6J5GQ.cjs +0 -2
- package/dist/chunk-QAL6J5GQ.cjs.map +0 -1
- package/dist/chunk-SA47B5OP.js +0 -2
- package/dist/chunk-SA47B5OP.js.map +0 -1
- package/dist/store-api-types-9ipdute1.d.ts +0 -187
- package/dist/store-api-types-B6_bPoVI.d.cts +0 -187
package/dist/index.d.cts
CHANGED
|
@@ -1,88 +1,11 @@
|
|
|
1
|
-
import { j as BitConfig } from './
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import './types-CUXh7PqD.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
7
|
declare function resolveBitStoreForHooks<T extends object>(store: unknown): BitStoreHooksApi<T>;
|
|
9
|
-
declare function
|
|
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>;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
declare function deepMerge<T>(target: T, source: any): T;
|
|
13
|
-
/**
|
|
14
|
-
* Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.
|
|
15
|
-
* Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).
|
|
16
|
-
*/
|
|
17
|
-
declare function valueEqual(a: any, b: any): boolean;
|
|
18
|
-
declare function deepEqual(a: any, b: any): boolean;
|
|
19
|
-
declare function getDeepValue(obj: any, path: string): any;
|
|
20
|
-
declare function setDeepValue(obj: any, path: string, value: any): any;
|
|
21
|
-
declare function cleanPrefixedKeys(obj: Record<string, any>, prefix: string): Record<string, any>;
|
|
22
|
-
/**
|
|
23
|
-
* Checks if a value looks like a server validation error response.
|
|
24
|
-
* Handles shapes like { email: "Taken" }, { errors: { email: ["Taken"] } }, etc.
|
|
25
|
-
*/
|
|
26
|
-
declare function isValidationErrorShape(x: unknown): x is Record<string, string | string[]>;
|
|
27
|
-
/**
|
|
28
|
-
* Extracts server errors in the format expected by setServerErrors.
|
|
29
|
-
*/
|
|
30
|
-
declare function extractServerErrors(x: unknown): Record<string, string | string[]>;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Field State Snapshot Utilities
|
|
34
|
-
*
|
|
35
|
-
* Shared utilities for creating and managing field state snapshots across frameworks
|
|
36
|
-
* (React, Vue, Angular). Reduces code duplication while maintaining type safety.
|
|
37
|
-
*/
|
|
38
|
-
/**
|
|
39
|
-
* Represents a stable snapshot of field state that can be compared for equality.
|
|
40
|
-
*/
|
|
41
|
-
interface BitFieldSnapshot<TValue = any> {
|
|
42
|
-
value: TValue;
|
|
43
|
-
error: string | undefined;
|
|
44
|
-
touched: boolean;
|
|
45
|
-
isHidden: boolean;
|
|
46
|
-
isRequired: boolean;
|
|
47
|
-
isDirty: boolean;
|
|
48
|
-
isValidating: boolean;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Creates or reuses a field state snapshot with shallow equality checking.
|
|
52
|
-
*
|
|
53
|
-
* This function prevents unnecessary re-renders in frameworks like React by
|
|
54
|
-
* returning the same object reference when field state hasn't changed.
|
|
55
|
-
*
|
|
56
|
-
* @param nextState - The new field state from the store
|
|
57
|
-
* @param lastSnapshot - The previous snapshot (can be null on first call)
|
|
58
|
-
* @returns A stable snapshot object that can be used for equality comparison
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* const snapshot = createFieldStateSnapshot(store.getFieldState("email"), lastSnapshot);
|
|
63
|
-
* if (snapshot !== lastSnapshot) {
|
|
64
|
-
* // Field state changed, update component
|
|
65
|
-
* render(snapshot);
|
|
66
|
-
* }
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
declare function createFieldStateSnapshot<TValue = any>(nextState: {
|
|
70
|
-
value: TValue;
|
|
71
|
-
error: string | undefined;
|
|
72
|
-
touched: boolean;
|
|
73
|
-
isHidden: boolean;
|
|
74
|
-
isRequired: boolean;
|
|
75
|
-
isDirty: boolean;
|
|
76
|
-
isValidating: boolean;
|
|
77
|
-
}, lastSnapshot: BitFieldSnapshot<TValue> | null): BitFieldSnapshot<TValue>;
|
|
78
|
-
/**
|
|
79
|
-
* Deep comparison utility for field state snapshots.
|
|
80
|
-
* Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).
|
|
81
|
-
*
|
|
82
|
-
* @param snapshotA - First snapshot
|
|
83
|
-
* @param snapshotB - Second snapshot
|
|
84
|
-
* @returns true if snapshots are deeply equal
|
|
85
|
-
*/
|
|
86
|
-
declare function areFieldSnapshotsEqual(snapshotA: BitFieldSnapshot | null | undefined, snapshotB: BitFieldSnapshot | null | undefined): boolean;
|
|
87
|
-
|
|
88
|
-
export { BitConfig, type BitFieldSnapshot, BitStoreHooksApi, areFieldSnapshotsEqual, cleanPrefixedKeys, createBitStore, createFieldStateSnapshot, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, resolveBitStoreForHooks, setDeepValue, valueEqual };
|
|
11
|
+
export { BitConfig, BitFrameworkStoreApi, BitStoreApi, createBitStore, createFrameworkStoreAdapter, resolveBitStoreForHooks };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,88 +1,11 @@
|
|
|
1
|
-
import { j as BitConfig } from './
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import './types-CUXh7PqD.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
7
|
declare function resolveBitStoreForHooks<T extends object>(store: unknown): BitStoreHooksApi<T>;
|
|
9
|
-
declare function
|
|
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>;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
declare function deepMerge<T>(target: T, source: any): T;
|
|
13
|
-
/**
|
|
14
|
-
* Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.
|
|
15
|
-
* Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).
|
|
16
|
-
*/
|
|
17
|
-
declare function valueEqual(a: any, b: any): boolean;
|
|
18
|
-
declare function deepEqual(a: any, b: any): boolean;
|
|
19
|
-
declare function getDeepValue(obj: any, path: string): any;
|
|
20
|
-
declare function setDeepValue(obj: any, path: string, value: any): any;
|
|
21
|
-
declare function cleanPrefixedKeys(obj: Record<string, any>, prefix: string): Record<string, any>;
|
|
22
|
-
/**
|
|
23
|
-
* Checks if a value looks like a server validation error response.
|
|
24
|
-
* Handles shapes like { email: "Taken" }, { errors: { email: ["Taken"] } }, etc.
|
|
25
|
-
*/
|
|
26
|
-
declare function isValidationErrorShape(x: unknown): x is Record<string, string | string[]>;
|
|
27
|
-
/**
|
|
28
|
-
* Extracts server errors in the format expected by setServerErrors.
|
|
29
|
-
*/
|
|
30
|
-
declare function extractServerErrors(x: unknown): Record<string, string | string[]>;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Field State Snapshot Utilities
|
|
34
|
-
*
|
|
35
|
-
* Shared utilities for creating and managing field state snapshots across frameworks
|
|
36
|
-
* (React, Vue, Angular). Reduces code duplication while maintaining type safety.
|
|
37
|
-
*/
|
|
38
|
-
/**
|
|
39
|
-
* Represents a stable snapshot of field state that can be compared for equality.
|
|
40
|
-
*/
|
|
41
|
-
interface BitFieldSnapshot<TValue = any> {
|
|
42
|
-
value: TValue;
|
|
43
|
-
error: string | undefined;
|
|
44
|
-
touched: boolean;
|
|
45
|
-
isHidden: boolean;
|
|
46
|
-
isRequired: boolean;
|
|
47
|
-
isDirty: boolean;
|
|
48
|
-
isValidating: boolean;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Creates or reuses a field state snapshot with shallow equality checking.
|
|
52
|
-
*
|
|
53
|
-
* This function prevents unnecessary re-renders in frameworks like React by
|
|
54
|
-
* returning the same object reference when field state hasn't changed.
|
|
55
|
-
*
|
|
56
|
-
* @param nextState - The new field state from the store
|
|
57
|
-
* @param lastSnapshot - The previous snapshot (can be null on first call)
|
|
58
|
-
* @returns A stable snapshot object that can be used for equality comparison
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* const snapshot = createFieldStateSnapshot(store.getFieldState("email"), lastSnapshot);
|
|
63
|
-
* if (snapshot !== lastSnapshot) {
|
|
64
|
-
* // Field state changed, update component
|
|
65
|
-
* render(snapshot);
|
|
66
|
-
* }
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
declare function createFieldStateSnapshot<TValue = any>(nextState: {
|
|
70
|
-
value: TValue;
|
|
71
|
-
error: string | undefined;
|
|
72
|
-
touched: boolean;
|
|
73
|
-
isHidden: boolean;
|
|
74
|
-
isRequired: boolean;
|
|
75
|
-
isDirty: boolean;
|
|
76
|
-
isValidating: boolean;
|
|
77
|
-
}, lastSnapshot: BitFieldSnapshot<TValue> | null): BitFieldSnapshot<TValue>;
|
|
78
|
-
/**
|
|
79
|
-
* Deep comparison utility for field state snapshots.
|
|
80
|
-
* Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).
|
|
81
|
-
*
|
|
82
|
-
* @param snapshotA - First snapshot
|
|
83
|
-
* @param snapshotB - Second snapshot
|
|
84
|
-
* @returns true if snapshots are deeply equal
|
|
85
|
-
*/
|
|
86
|
-
declare function areFieldSnapshotsEqual(snapshotA: BitFieldSnapshot | null | undefined, snapshotB: BitFieldSnapshot | null | undefined): boolean;
|
|
87
|
-
|
|
88
|
-
export { BitConfig, type BitFieldSnapshot, BitStoreHooksApi, areFieldSnapshotsEqual, cleanPrefixedKeys, createBitStore, createFieldStateSnapshot, 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{
|
|
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
|
package/dist/mask.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PatternMaskOptions, B as BitMask, C as CurrencyMaskConfig, D as DateMaskConfig,
|
|
2
|
-
export {
|
|
1
|
+
import { P as PatternMaskOptions, B as BitMask, C as CurrencyMaskConfig, D as DateMaskConfig, b as BitBuiltInMaskName } from './types-D8DgIUhJ.cjs';
|
|
2
|
+
export { a as BitMaskName } from './types-D8DgIUhJ.cjs';
|
|
3
3
|
|
|
4
4
|
declare const unmask: (value: string | number | null | undefined, allowChars?: string) => string;
|
|
5
5
|
declare const unmaskCurrency: (value: any, precision?: number) => number;
|
package/dist/mask.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PatternMaskOptions, B as BitMask, C as CurrencyMaskConfig, D as DateMaskConfig,
|
|
2
|
-
export {
|
|
1
|
+
import { P as PatternMaskOptions, B as BitMask, C as CurrencyMaskConfig, D as DateMaskConfig, b as BitBuiltInMaskName } from './types-D8DgIUhJ.js';
|
|
2
|
+
export { a as BitMaskName } from './types-D8DgIUhJ.js';
|
|
3
3
|
|
|
4
4
|
declare const unmask: (value: string | number | null | undefined, allowChars?: string) => string;
|
|
5
5
|
declare const unmaskCurrency: (value: any, precision?: number) => number;
|
|
@@ -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 };
|
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
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
|
package/dist/react/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"names":["useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","onChange","e","isBitFieldInputEventObject","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","isUploading","setIsUploading","useState","kernelCallbacks","msg","key","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldMeta,\n UseBitFieldBindProps,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isDirty: metaState.isDirty,\n isValidating: metaState.isValidating,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = readHistoryMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react/index.cjs","../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"names":["useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","onChange","e","isBitFieldInputEventObject","onBlur","useBitHistory","useBitStore","lastMeta","useRef","getSnapshot","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useBitUpload","fieldPath","uploadFn","deleteFile","field","uploadKeyRef","isUploading","setIsUploading","useState","kernelCallbacks","msg","key","upload","createUploadHandler","remove","createRemoveHandler"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/react/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isDirty: metaState.isDirty,\n isValidating: metaState.isValidating,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = readHistoryMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.feature.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.feature.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"]}
|
package/dist/react/index.d.cts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-
|
|
2
|
-
export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-
|
|
3
|
-
import {
|
|
4
|
-
export { S as ScopeStatus, V as ValidateScopeResult } from '../
|
|
5
|
-
import
|
|
1
|
+
import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-C2LHNTVv.cjs';
|
|
2
|
+
export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-C2LHNTVv.cjs';
|
|
3
|
+
import { u as BitPath } from '../types-D6LhF5GC.cjs';
|
|
4
|
+
export { S as ScopeStatus, V as ValidateScopeResult } from '../types-D6LhF5GC.cjs';
|
|
5
|
+
import '../bus-ZLQeq4Vr.cjs';
|
|
6
|
+
import { a as BitUploadFn, B as BitDeleteUploadFn } from '../upload-C2mpfhp1.cjs';
|
|
6
7
|
import 'react/jsx-runtime';
|
|
7
8
|
import 'react';
|
|
8
|
-
import '../store-api-types-
|
|
9
|
-
import '../types-
|
|
10
|
-
import '../
|
|
11
|
-
import '../
|
|
9
|
+
import '../store-api-types-D-ZHxzRy.cjs';
|
|
10
|
+
import '../types-D8DgIUhJ.cjs';
|
|
11
|
+
import '../meta-types-Bzmm21TP.cjs';
|
|
12
|
+
import '../array-controller-B5bfXV1W.cjs';
|
|
13
|
+
import '../field-binding-B_OX3bjp.cjs';
|
|
12
14
|
|
|
13
15
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldResult<TForm, P>;
|
|
14
16
|
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-
|
|
2
|
-
export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-
|
|
3
|
-
import {
|
|
4
|
-
export { S as ScopeStatus, V as ValidateScopeResult } from '../
|
|
5
|
-
import
|
|
1
|
+
import { g as UseBitFieldResult, h as UseBitHistoryResult, i as UseBitUploadResult } from '../use-bit-persist-BTwy8kvA.js';
|
|
2
|
+
export { B as BitFormProvider, j as UseBitFieldBindProps, k as UseBitFieldMeta, U as UseBitPersistResult, l as UseBitStepsResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-BTwy8kvA.js';
|
|
3
|
+
import { u as BitPath } from '../types-CG5nYeRk.js';
|
|
4
|
+
export { S as ScopeStatus, V as ValidateScopeResult } from '../types-CG5nYeRk.js';
|
|
5
|
+
import '../bus-B2VEKrPI.js';
|
|
6
|
+
import { a as BitUploadFn, B as BitDeleteUploadFn } from '../upload-C2mpfhp1.js';
|
|
6
7
|
import 'react/jsx-runtime';
|
|
7
8
|
import 'react';
|
|
8
|
-
import '../store-api-types-
|
|
9
|
-
import '../types-
|
|
10
|
-
import '../
|
|
11
|
-
import '../
|
|
9
|
+
import '../store-api-types-DPi30jQF.js';
|
|
10
|
+
import '../types-D8DgIUhJ.js';
|
|
11
|
+
import '../meta-types-Bzmm21TP.js';
|
|
12
|
+
import '../array-controller-Cx-DMH7Y.js';
|
|
13
|
+
import '../field-binding-MX6jVQbT.js';
|
|
12
14
|
|
|
13
15
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldResult<TForm, P>;
|
|
14
16
|
|
package/dist/react/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as b,b as d,c as h,d as R,e as H,f as M,g as T,h as E,i as k}from"../chunk-CPP7ELA5.js";import{a as g,b as S}from"../chunk-O5UPA33R.js";import"../chunk-5NA2TFPG.js";import"../chunk-UQ3DSUWC.js";import{h as x}from"../chunk-E2NZR44P.js";import"../chunk-W2E5UIXT.js";import{f as U}from"../chunk-EQ55DKX2.js";import{c as v}from"../chunk-63OJBMKK.js";import"../chunk-RD73EBSN.js";import{a as F}from"../chunk-3NUJVIAM.js";import{useMemo as V,useCallback as f}from"react";function y(e){let{fieldState:t,setBlur:n,store:a}=R(e),{fieldController:r}=V(()=>x(a,e),[a,e]),l=V(()=>r.displayValue(t.value),[t.value,r]),u=f(i=>{r.setValue(i)},[r]),{value:o}=t,s=v(t),p=f(i=>{let B=F(i)?i.target?.value:i;u(B)},[u]),c=f(()=>{n()},[n]);return{value:o,displayValue:l,setValue:u,setBlur:n,onChange:p,onBlur:c,props:{value:l,onChange:p,onBlur:c},meta:{error:s.error,touched:s.touched,invalid:s.invalid,isDirty:s.isDirty,isValidating:s.isValidating,isHidden:s.isHidden,isRequired:s.isRequired,hasError:s.hasError}}}import{useCallback as m,useRef as C,useSyncExternalStore as I}from"react";function D(){let e=d(),t=C(null),n=m(()=>{let o=U(e);return t.current&&t.current.canUndo===o.canUndo&&t.current.canRedo===o.canRedo&&t.current.historyIndex===o.historyIndex&&t.current.historySize===o.historySize?t.current:(t.current=o,o)},[e]),a=m(o=>e.observe.subscribeHistoryMeta(()=>o()),[e]),r=I(a,n,n),l=m(()=>{e.feature.undo()},[e]),u=m(()=>{e.feature.redo()},[e]);return{...r,undo:l,redo:u}}import{useCallback as P,useRef as j,useState as K}from"react";function q(e,t,n){let a=d(),r=y(e),l=j(null),[u,o]=K(!1),s={setLoading:o,setError:(i,B)=>a.write.setError(i,B),setValue:i=>r.setValue(i),getUploadKey:()=>l.current,setUploadKey:i=>{l.current=i}},p=P(g(e,t,s),[t,r,e,a]),c=P(S(e,n,s),[n,r,e,a]);return{value:r.value,setValue:r.setValue,error:r.meta?.error,isValidating:!!r.meta?.isValidating||u,upload:p,remove:c}}export{b as BitFormProvider,H as useBitArray,y as useBitField,h as useBitForm,D as useBitHistory,k as useBitPersist,M as useBitScope,T as useBitSteps,d as useBitStore,q as useBitUpload,E as useBitWatch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n
|
|
1
|
+
{"version":3,"sources":["../../src/react/use-bit-field.ts","../../src/react/use-bit-history.ts","../../src/react/use-bit-upload.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"./use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n UseBitFieldResult,\n} from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const setValue = useCallback(\n (val: BitPathValue<TForm, P> | string | number | null | undefined) => {\n fieldController.setValue(val);\n },\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onChange = useCallback(\n (e: BitFieldInputEvent) => {\n const val = isBitFieldInputEventObject(e) ? e.target?.value : e;\n setValue(val);\n },\n [setValue],\n );\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n // Main handlers and values (flat)\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChange,\n onBlur,\n // Props helper\n props: {\n value: displayValue,\n onChange,\n onBlur,\n },\n // Metadata (grouped)\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isDirty: metaState.isDirty,\n isValidating: metaState.isValidating,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n };\n}\n","import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { readHistoryMetaSnapshot, type HistoryMeta } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n const lastMeta = useRef<HistoryMeta | null>(null);\n\n const getSnapshot = useCallback(() => {\n const nextMeta = readHistoryMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.canUndo === nextMeta.canUndo &&\n lastMeta.current.canRedo === nextMeta.canRedo &&\n lastMeta.current.historyIndex === nextMeta.historyIndex &&\n lastMeta.current.historySize === nextMeta.historySize\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const subscribe = useCallback(\n (cb: () => void) => store.observe.subscribeHistoryMeta(() => cb()),\n [store],\n );\n\n const meta = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n const undo = useCallback(() => {\n store.feature.undo();\n }, [store]);\n\n const redo = useCallback(() => {\n store.feature.redo();\n }, [store]);\n\n return {\n ...meta,\n undo,\n redo,\n };\n}\n","/**\n * React Hook for File Upload Integration\n *\n * Minimal upload API integrated with global field validation lifecycle.\n *\n * @example\n * ```typescript\n * const avatar = useBitUpload(\"avatar\", uploadFn);\n *\n * return (\n * <>\n * <input\n * type=\"file\"\n * onChange={(e) => avatar.upload(e.target.files?.[0])}\n * disabled={avatar.isValidating}\n * />\n * {avatar.error && <Error>{avatar.error}</Error>}\n * </>\n * );\n * ```\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n const uploadKeyRef = useRef<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const kernelCallbacks = {\n setLoading: setIsUploading,\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val as any),\n getUploadKey: () => uploadKeyRef.current,\n setUploadKey: (key: string | null) => {\n uploadKeyRef.current = key;\n },\n };\n\n const upload = useCallback(\n createUploadHandler(fieldPath, uploadFn, kernelCallbacks),\n [uploadFn, field, fieldPath, store],\n );\n\n const remove = useCallback(\n createRemoveHandler(fieldPath, deleteFile, kernelCallbacks),\n [deleteFile, field, fieldPath, store],\n );\n\n return {\n value: field.value,\n setValue: field.setValue,\n error: field.meta?.error,\n isValidating: !!field.meta?.isValidating || isUploading,\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["useMemo","useCallback","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","setValue","useCallback","val","value","metaState","deriveFieldMeta","onChange","e","isBitFieldInputEventObject","onBlur","useCallback","useRef","useSyncExternalStore","useBitHistory","store","useBitStore","lastMeta","useRef","getSnapshot","useCallback","nextMeta","readHistoryMetaSnapshot","subscribe","cb","meta","useSyncExternalStore","undo","redo","useCallback","useRef","useState","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKeyRef","useRef","isUploading","setIsUploading","useState","kernelCallbacks","path","msg","val","key","upload","useCallback","createUploadHandler","remove","createRemoveHandler"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMFSQATNZcjs = require('../chunk-MFSQATNZ.cjs');require('../chunk-W5CLDRRE.cjs');require('../chunk-VZHG372Q.cjs');var _chunkMFTWAFMGcjs = require('../chunk-MFTWAFMG.cjs');require('../chunk-BSGJ3T5S.cjs');require('../chunk-D7JQWF6V.cjs');var _chunkM6WBNHITcjs = require('../chunk-M6WBNHIT.cjs');require('../chunk-T2JRSWQU.cjs');require('../chunk-PFPGASVZ.cjs');var _react = require('react');function g(i){let{fieldState:r,setBlur:o,store:l}=_chunkMFSQATNZcjs.d.call(void 0, i),{fieldController:t}=_react.useMemo.call(void 0, ()=>_chunkMFTWAFMGcjs.h.call(void 0, l,i),[l,i]),u=_react.useMemo.call(void 0, ()=>t.displayValue(r.value),[r.value,t]),d=_react.useCallback.call(void 0, s=>t.setValue(s),[t]),F=_react.useCallback.call(void 0, s=>t.setValue(s),[t]),{value:f}=r,e=_chunkM6WBNHITcjs.c.call(void 0, r),n=_react.useCallback.call(void 0, ()=>{o()},[o]);return{value:f,displayValue:u,setValue:F,setBlur:o,onChangeText:d,onBlur:n,meta:{error:e.error,touched:e.touched,invalid:e.invalid,isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:e.hasError},props:{value:u,onChangeText:d,onBlur:n}}}exports.BitFormProvider = _chunkMFSQATNZcjs.a; exports.useBitArray = _chunkMFSQATNZcjs.e; exports.useBitField = g; exports.useBitForm = _chunkMFSQATNZcjs.c; exports.useBitPersist = _chunkMFSQATNZcjs.i; exports.useBitScope = _chunkMFSQATNZcjs.f; exports.useBitSteps = _chunkMFSQATNZcjs.g; exports.useBitStore = _chunkMFSQATNZcjs.b; exports.useBitWatch = _chunkMFSQATNZcjs.h;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","../../src/react-native/use-bit-field.ts"],"names":["useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur"],"mappings":"AAAA,kIAAiG,
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","../../src/react-native/use-bit-field.ts"],"names":["useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur"],"mappings":"AAAA,kIAAiG,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,yDAA0C,iCAA8B,iCAA8B,8BCApU,SAUrBA,CAAAA,CAGdC,CAAAA,CAA4C,CAC5C,GAAM,CAAE,UAAA,CAAAC,CAAAA,CAAY,OAAA,CAAAC,CAAAA,CAAS,KAAA,CAAAC,CAAM,CAAA,CAAIC,iCAAAA,CAIjC,CAAA,CAEA,CAAE,eAAA,CAAAC,CAAgB,CAAA,CAAIC,4BAAAA,CAAQ,CAAA,EAC3BC,iCAAAA,CAAkCJ,CAAOH,CAAI,CAAA,CACnD,CAACG,CAAAA,CAAOH,CAAI,CAAC,CAAA,CAEVQ,CAAAA,CAAeF,4BAAAA,CACnB,CAAA,EAAMD,CAAAA,CAAgB,YAAA,CAAaJ,CAAAA,CAAW,KAAK,CAAA,CACnD,CAACA,CAAAA,CAAW,KAAA,CAAOI,CAAe,CACpC,CAAA,CAEMI,CAAAA,CAAeC,gCAAAA,CAClBC,EAAiBN,CAAAA,CAAgB,QAAA,CAASM,CAAI,CAAA,CAC/C,CAACN,CAAe,CAClB,CAAA,CAEMO,CAAAA,CAAWF,gCAAAA,CACdG,EAAaR,CAAAA,CAAgB,QAAA,CAASQ,CAAG,CAAA,CAC1C,CAACR,CAAe,CAClB,CAAA,CAEM,CAAE,KAAA,CAAAS,CAAM,CAAA,CAAIb,CAAAA,CACZc,CAAAA,CAAYC,iCAAAA,CAA0B,CAAA,CAEtCC,CAAAA,CAASP,gCAAAA,CAAY,CAAA,EAAM,CAC/BR,CAAAA,CAAQ,CACV,CAAA,CAAG,CAACA,CAAO,CAAC,CAAA,CAEZ,MAAO,CACL,KAAA,CAAOY,CAAAA,CACP,YAAA,CAAAN,CAAAA,CACA,QAAA,CAAAI,CAAAA,CACA,OAAA,CAAAV,CAAAA,CACA,YAAA,CAAcO,CAAAA,CACd,MAAA,CAAAQ,CAAAA,CACA,IAAA,CAAM,CACJ,KAAA,CAAOF,CAAAA,CAAU,KAAA,CACjB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,YAAA,CAAcA,CAAAA,CAAU,YAAA,CACxB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUA,CAAAA,CAAU,QAAA,CACpB,UAAA,CAAYA,CAAAA,CAAU,UAAA,CACtB,QAAA,CAAUA,CAAAA,CAAU,QACtB,CAAA,CACA,KAAA,CAAO,CACL,KAAA,CAAOP,CAAAA,CACP,YAAA,CAAcC,CAAAA,CACd,MAAA,CAAAQ,CACF,CACF,CACF,CAAA,qXAAA","file":"/home/runner/work/bit-form/bit-form/dist/react-native/index.cjs","sourcesContent":[null,"import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: any) => fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"]}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-
|
|
2
|
-
import {
|
|
3
|
-
export { S as ScopeStatus, V as ValidateScopeResult } from '../
|
|
1
|
+
export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-C2LHNTVv.cjs';
|
|
2
|
+
import { u as BitPath, v as BitPathValue } from '../types-D6LhF5GC.cjs';
|
|
3
|
+
export { S as ScopeStatus, V as ValidateScopeResult } from '../types-D6LhF5GC.cjs';
|
|
4
|
+
import '../bus-ZLQeq4Vr.cjs';
|
|
4
5
|
import 'react/jsx-runtime';
|
|
5
6
|
import 'react';
|
|
6
|
-
import '../store-api-types-
|
|
7
|
-
import '../types-
|
|
8
|
-
import '../
|
|
9
|
-
import '../
|
|
7
|
+
import '../store-api-types-D-ZHxzRy.cjs';
|
|
8
|
+
import '../types-D8DgIUhJ.cjs';
|
|
9
|
+
import '../meta-types-Bzmm21TP.cjs';
|
|
10
|
+
import '../array-controller-B5bfXV1W.cjs';
|
|
11
|
+
import '../field-binding-B_OX3bjp.cjs';
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
14
|
* Metadata describing the current state of a form field (React Native).
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-
|
|
2
|
-
import {
|
|
3
|
-
export { S as ScopeStatus, V as ValidateScopeResult } from '../
|
|
1
|
+
export { B as BitFormProvider, U as UseBitPersistResult, u as useBitArray, a as useBitForm, b as useBitPersist, c as useBitScope, d as useBitSteps, e as useBitStore, f as useBitWatch } from '../use-bit-persist-BTwy8kvA.js';
|
|
2
|
+
import { u as BitPath, v as BitPathValue } from '../types-CG5nYeRk.js';
|
|
3
|
+
export { S as ScopeStatus, V as ValidateScopeResult } from '../types-CG5nYeRk.js';
|
|
4
|
+
import '../bus-B2VEKrPI.js';
|
|
4
5
|
import 'react/jsx-runtime';
|
|
5
6
|
import 'react';
|
|
6
|
-
import '../store-api-types-
|
|
7
|
-
import '../types-
|
|
8
|
-
import '../
|
|
9
|
-
import '../
|
|
7
|
+
import '../store-api-types-DPi30jQF.js';
|
|
8
|
+
import '../types-D8DgIUhJ.js';
|
|
9
|
+
import '../meta-types-Bzmm21TP.js';
|
|
10
|
+
import '../array-controller-Cx-DMH7Y.js';
|
|
11
|
+
import '../field-binding-MX6jVQbT.js';
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
14
|
* Metadata describing the current state of a form field (React Native).
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as x,b as P,c as v,d as B,e as y,f as h,g as V,h as T,i as S}from"../chunk-
|
|
1
|
+
import{a as x,b as P,c as v,d as B,e as y,f as h,g as V,h as T,i as S}from"../chunk-CPP7ELA5.js";import"../chunk-5NA2TFPG.js";import"../chunk-UQ3DSUWC.js";import{h as m}from"../chunk-E2NZR44P.js";import"../chunk-W2E5UIXT.js";import"../chunk-EQ55DKX2.js";import{c as p}from"../chunk-63OJBMKK.js";import"../chunk-RD73EBSN.js";import"../chunk-3NUJVIAM.js";import{useMemo as c,useCallback as a}from"react";function g(i){let{fieldState:r,setBlur:o,store:l}=B(i),{fieldController:t}=c(()=>m(l,i),[l,i]),u=c(()=>t.displayValue(r.value),[r.value,t]),d=a(s=>t.setValue(s),[t]),F=a(s=>t.setValue(s),[t]),{value:f}=r,e=p(r),n=a(()=>{o()},[o]);return{value:f,displayValue:u,setValue:F,setBlur:o,onChangeText:d,onBlur:n,meta:{error:e.error,touched:e.touched,invalid:e.invalid,isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:e.hasError},props:{value:u,onChangeText:d,onBlur:n}}}export{x as BitFormProvider,y as useBitArray,g as useBitField,v as useBitForm,S as useBitPersist,h as useBitScope,V as useBitSteps,P as useBitStore,T as useBitWatch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-native/use-bit-field.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: any) => fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/react-native/use-bit-field.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useBitFieldBase } from \"../react/use-bit-field-base\";\nimport {\n BitPath,\n BitPathValue,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n} from \"../core\";\nimport type { UseBitFieldNativeResult } from \"./types\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldNativeResult<TForm, P> {\n const { fieldState, setBlur, store } = useBitFieldBase<\n BitPathValue<TForm, P>,\n TForm,\n P\n >(path);\n\n const { fieldController } = useMemo(() => {\n return createFrameworkMaskedFieldBinding(store, path);\n }, [store, path]);\n\n const displayValue = useMemo(\n () => fieldController.displayValue(fieldState.value),\n [fieldState.value, fieldController],\n );\n\n const handleChange = useCallback(\n (text: string) => fieldController.setValue(text),\n [fieldController],\n );\n\n const setValue = useCallback(\n (val: any) => fieldController.setValue(val),\n [fieldController],\n );\n\n const { value } = fieldState;\n const metaState = deriveFieldMeta(fieldState);\n\n const onBlur = useCallback(() => {\n setBlur();\n }, [setBlur]);\n\n return {\n value: value as BitPathValue<TForm, P>,\n displayValue,\n setValue,\n setBlur,\n onChangeText: handleChange,\n onBlur,\n meta: {\n error: metaState.error,\n touched: metaState.touched,\n invalid: metaState.invalid,\n isValidating: metaState.isValidating,\n isDirty: metaState.isDirty,\n isHidden: metaState.isHidden,\n isRequired: metaState.isRequired,\n hasError: metaState.hasError,\n },\n props: {\n value: displayValue,\n onChangeText: handleChange,\n onBlur,\n },\n };\n}\n"],"mappings":"iWAAA,OAAS,WAAAA,EAAS,eAAAC,MAAmB,QAU9B,SAASC,EAGdC,EAA4C,CAC5C,GAAM,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,CAAM,EAAIC,EAIrCJ,CAAI,EAEA,CAAE,gBAAAK,CAAgB,EAAIC,EAAQ,IAC3BC,EAAkCJ,EAAOH,CAAI,EACnD,CAACG,EAAOH,CAAI,CAAC,EAEVQ,EAAeF,EACnB,IAAMD,EAAgB,aAAaJ,EAAW,KAAK,EACnD,CAACA,EAAW,MAAOI,CAAe,CACpC,EAEMI,EAAeC,EAClBC,GAAiBN,EAAgB,SAASM,CAAI,EAC/C,CAACN,CAAe,CAClB,EAEMO,EAAWF,EACdG,GAAaR,EAAgB,SAASQ,CAAG,EAC1C,CAACR,CAAe,CAClB,EAEM,CAAE,MAAAS,CAAM,EAAIb,EACZc,EAAYC,EAAgBf,CAAU,EAEtCgB,EAASP,EAAY,IAAM,CAC/BR,EAAQ,CACV,EAAG,CAACA,CAAO,CAAC,EAEZ,MAAO,CACL,MAAOY,EACP,aAAAN,EACA,SAAAI,EACA,QAAAV,EACA,aAAcO,EACd,OAAAQ,EACA,KAAM,CACJ,MAAOF,EAAU,MACjB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,aAAcA,EAAU,aACxB,QAASA,EAAU,QACnB,SAAUA,EAAU,SACpB,WAAYA,EAAU,WACtB,SAAUA,EAAU,QACtB,EACA,MAAO,CACL,MAAOP,EACP,aAAcC,EACd,OAAAQ,CACF,CACF,CACF","names":["useMemo","useCallback","useBitField","path","fieldState","setBlur","store","useBitFieldBase","fieldController","useMemo","createFrameworkMaskedFieldBinding","displayValue","handleChange","useCallback","text","setValue","val","value","metaState","deriveFieldMeta","onBlur"]}
|
package/dist/resolvers/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk77PK7U73cjs = require('../chunk-77PK7U73.cjs');var _chunkUT63HKR6cjs = require('../chunk-UT63HKR6.cjs');var _chunkDD6XWUMRcjs = require('../chunk-DD6XWUMR.cjs');require('../chunk-CTURHI75.cjs');require('../chunk-MFSDDSVG.cjs');exports.joiResolver = _chunkDD6XWUMRcjs.a; exports.yupResolver = _chunkUT63HKR6cjs.a; exports.zodResolver = _chunk77PK7U73cjs.a;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"],"names":[],"mappings":"AAAA,kIAAyC,yDAA0C,
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"],"names":[],"mappings":"AAAA,kIAAyC,yDAA0C,yDAA0C,iCAA8B,iCAA8B,gIAA2D","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/index.cjs"}
|
|
@@ -3,7 +3,8 @@ export { zodResolver } from './zod.cjs';
|
|
|
3
3
|
export { yupResolver } from './yup.cjs';
|
|
4
4
|
export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.cjs';
|
|
5
5
|
import 'joi';
|
|
6
|
-
import '../
|
|
7
|
-
import '../types-
|
|
6
|
+
import '../types-D6LhF5GC.cjs';
|
|
7
|
+
import '../types-D8DgIUhJ.cjs';
|
|
8
|
+
import '../bus-ZLQeq4Vr.cjs';
|
|
8
9
|
import 'zod';
|
|
9
10
|
import 'yup';
|
|
@@ -3,7 +3,8 @@ export { zodResolver } from './zod.js';
|
|
|
3
3
|
export { yupResolver } from './yup.js';
|
|
4
4
|
export { BitJoiResolverConfig, BitResolverScopeOptions, BitYupResolverConfig, BitZodResolverConfig } from './types.js';
|
|
5
5
|
import 'joi';
|
|
6
|
-
import '../
|
|
7
|
-
import '../types-
|
|
6
|
+
import '../types-CG5nYeRk.js';
|
|
7
|
+
import '../types-D8DgIUhJ.js';
|
|
8
|
+
import '../bus-B2VEKrPI.js';
|
|
8
9
|
import 'zod';
|
|
9
10
|
import 'yup';
|