@lucas-barake/effect-form 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,7 @@ var FormBuilder = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./F
14
14
  var _dirty = /*#__PURE__*/require("./internal/dirty.js");
15
15
  var _path = /*#__PURE__*/require("./internal/path.js");
16
16
  var _weakRegistry = /*#__PURE__*/require("./internal/weak-registry.js");
17
+ var Validation = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Validation.js"));
17
18
  function _interopRequireWildcard(e, t) {
18
19
  if ("function" == typeof WeakMap) var r = new WeakMap(),
19
20
  n = new WeakMap();
@@ -34,15 +35,6 @@ function _interopRequireWildcard(e, t) {
34
35
  return f;
35
36
  })(e, t);
36
37
  }
37
- /**
38
- * Atom infrastructure for form state management.
39
- *
40
- * This module provides the core atom infrastructure that framework adapters
41
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
42
- *
43
- * @since 1.0.0
44
- */
45
-
46
38
  /**
47
39
  * Creates the complete form atoms infrastructure.
48
40
  *
@@ -97,7 +89,6 @@ const make = config => {
97
89
  if (state.values === state.lastSubmittedValues.value) return false;
98
90
  return get(changedSinceSubmitFieldsAtom).size > 0;
99
91
  }).pipe(Atom.setIdleTTL(0));
100
- const onSubmitAtom = Atom.make(null).pipe(Atom.setIdleTTL(0));
101
92
  const validationAtomsRegistry = (0, _weakRegistry.createWeakRegistry)();
102
93
  const fieldAtomsRegistry = (0, _weakRegistry.createWeakRegistry)();
103
94
  const getOrCreateValidationAtom = (fieldPath, schema) => {
@@ -141,20 +132,29 @@ const make = config => {
141
132
  fieldAtomsRegistry.set(fieldPath, atoms);
142
133
  return atoms;
143
134
  };
144
- const resetValidationAtoms = registry => {
135
+ const resetValidationAtoms = ctx => {
145
136
  for (const validationAtom of validationAtomsRegistry.values()) {
146
- registry.set(validationAtom, Atom.Reset);
137
+ ctx.set(validationAtom, Atom.Reset);
147
138
  }
148
139
  validationAtomsRegistry.clear();
149
140
  fieldAtomsRegistry.clear();
150
141
  };
151
- const decodeAndSubmit = runtime.fn()((values, get) => Effect.gen(function* () {
152
- const decoded = yield* Schema.decodeUnknown(combinedSchema)(values);
153
- const onSubmit = get(onSubmitAtom);
154
- get.set(onSubmit, decoded);
155
- return yield* get.result(onSubmit, {
156
- suspendOnWaiting: true
157
- });
142
+ const submitAtom = runtime.fn()((_void, get) => Effect.gen(function* () {
143
+ const state = get(stateAtom);
144
+ if (Option.isNone(state)) return yield* Effect.die("Form not initialized");
145
+ const values = state.value.values;
146
+ get.set(crossFieldErrorsAtom, new Map());
147
+ const decoded = yield* (0, _Function.pipe)(Schema.decodeUnknown(combinedSchema)(values), Effect.tapError(parseError => Effect.sync(() => {
148
+ const routedErrors = Validation.routeErrors(parseError);
149
+ get.set(crossFieldErrorsAtom, routedErrors);
150
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
151
+ })));
152
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
153
+ const result = config.onSubmit(decoded, get);
154
+ if (Effect.isEffect(result)) {
155
+ return yield* result;
156
+ }
157
+ return result;
158
158
  })).pipe(Atom.setIdleTTL(0));
159
159
  const fieldRefs = Object.fromEntries(Object.keys(fields).map(key => [key, FormBuilder.makeFieldRef(key)]));
160
160
  const operations = {
@@ -264,6 +264,58 @@ const make = config => {
264
264
  };
265
265
  }
266
266
  };
267
+ const resetAtom = Atom.fnSync()((_, get) => {
268
+ const state = get(stateAtom);
269
+ if (Option.isNone(state)) return;
270
+ get.set(stateAtom, Option.some(operations.createResetState(state.value)));
271
+ get.set(crossFieldErrorsAtom, new Map());
272
+ resetValidationAtoms(get);
273
+ get.set(submitAtom, Atom.Reset);
274
+ }, {
275
+ initialValue: undefined
276
+ }).pipe(Atom.setIdleTTL(0));
277
+ const revertToLastSubmitAtom = Atom.fnSync()((_, get) => {
278
+ const state = get(stateAtom);
279
+ if (Option.isNone(state)) return;
280
+ get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)));
281
+ get.set(crossFieldErrorsAtom, new Map());
282
+ }, {
283
+ initialValue: undefined
284
+ }).pipe(Atom.setIdleTTL(0));
285
+ const setValuesAtom = Atom.fnSync()((_values, get) => {
286
+ const state = get(stateAtom);
287
+ if (Option.isNone(state)) return;
288
+ get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)));
289
+ get.set(crossFieldErrorsAtom, new Map());
290
+ }, {
291
+ initialValue: undefined
292
+ }).pipe(Atom.setIdleTTL(0));
293
+ const setValueAtomsRegistry = (0, _weakRegistry.createWeakRegistry)();
294
+ const setValue = field => {
295
+ const cached = setValueAtomsRegistry.get(field.key);
296
+ if (cached) return cached;
297
+ const atom = Atom.fnSync()((update, get) => {
298
+ const state = get(stateAtom);
299
+ if (Option.isNone(state)) return;
300
+ const currentValue = (0, _path.getNestedValue)(state.value.values, field.key);
301
+ const newValue = typeof update === "function" ? update(currentValue) : update;
302
+ get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)));
303
+ const currentErrors = get(crossFieldErrorsAtom);
304
+ const nextErrors = new Map();
305
+ for (const [errorPath, message] of currentErrors) {
306
+ if (!(0, _path.isPathUnderRoot)(errorPath, field.key)) {
307
+ nextErrors.set(errorPath, message);
308
+ }
309
+ }
310
+ if (nextErrors.size !== currentErrors.size) {
311
+ get.set(crossFieldErrorsAtom, nextErrors);
312
+ }
313
+ }, {
314
+ initialValue: undefined
315
+ }).pipe(Atom.setIdleTTL(0));
316
+ setValueAtomsRegistry.set(field.key, atom);
317
+ return atom;
318
+ };
267
319
  return {
268
320
  stateAtom,
269
321
  crossFieldErrorsAtom,
@@ -273,8 +325,7 @@ const make = config => {
273
325
  lastSubmittedValuesAtom,
274
326
  changedSinceSubmitFieldsAtom,
275
327
  hasChangedSinceSubmitAtom,
276
- onSubmitAtom,
277
- decodeAndSubmit,
328
+ submitAtom,
278
329
  combinedSchema,
279
330
  fieldRefs,
280
331
  validationAtomsRegistry,
@@ -282,7 +333,11 @@ const make = config => {
282
333
  getOrCreateValidationAtom,
283
334
  getOrCreateFieldAtoms,
284
335
  resetValidationAtoms,
285
- operations
336
+ operations,
337
+ resetAtom,
338
+ revertToLastSubmitAtom,
339
+ setValuesAtom,
340
+ setValue
286
341
  };
287
342
  };
288
343
  exports.make = make;
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.js","names":["Atom","_interopRequireWildcard","require","Effect","_Function","Option","Schema","Field","FormBuilder","_dirty","_path","_weakRegistry","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","pipe","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","recalculateDirtySubtree","values","hasChangedSinceSubmitAtom","isNone","value","onSubmitAtom","validationAtomsRegistry","createWeakRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","getOrCreateFieldAtoms","valueAtom","writable","getNestedValue","ctx","currentState","newValues","setNestedValue","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","registry","Reset","clear","decodeAndSubmit","gen","decoded","onSubmit","result","suspendOnWaiting","fieldRefs","fromEntries","keys","map","key","makeFieldRef","operations","createInitialState","defaultValues","createTouchedRecord","createResetState","createSubmitState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","recalculateDirtyFieldsForArray","removeArrayItem","index","filter","_","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","exports"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormAtoms.js","names":["Atom","_interopRequireWildcard","require","Effect","_Function","Option","Schema","Field","FormBuilder","_dirty","_path","_weakRegistry","Validation","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","pipe","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","recalculateDirtySubtree","values","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","createWeakRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","getOrCreateFieldAtoms","valueAtom","writable","getNestedValue","ctx","currentState","newValues","setNestedValue","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","operations","createSubmitState","result","onSubmit","isEffect","fieldRefs","fromEntries","keys","map","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","recalculateDirtyFieldsForArray","removeArrayItem","index","filter","_","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message","isPathUnderRoot","exports"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,IAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,cAAAC,OAAA;AACA,IAAAE,SAAA,gBAAAF,OAAA;AACA,IAAAG,MAAA,gBAAAJ,uBAAA,cAAAC,OAAA;AAEA,IAAAI,MAAA,gBAAAL,uBAAA,cAAAC,OAAA;AACA,IAAAK,KAAA,gBAAAN,uBAAA,cAAAC,OAAA;AACA,IAAAM,WAAA,gBAAAP,uBAAA,cAAAC,OAAA;AACA,IAAAO,MAAA,gBAAAP,OAAA;AACA,IAAAQ,KAAA,gBAAAR,OAAA;AACA,IAAAS,aAAA,gBAAAT,OAAA;AACA,IAAAU,UAAA,gBAAAX,uBAAA,cAAAC,OAAA;AAA6C,SAAAD,wBAAAY,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAsJ7C;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAMkB,IAAI,GACfC,MAAyC,IACV;EAC/B,MAAM;IAAEC,WAAW;IAAEC;EAAO,CAAE,GAAGF,MAAM;EACvC,MAAM;IAAEG;EAAM,CAAE,GAAGF,WAAW;EAE9B,MAAMG,cAAc,GAAG7B,WAAW,CAAC8B,WAAW,CAACJ,WAAW,CAAC;EAE3D,MAAMK,SAAS,GAAGvC,IAAI,CAACgC,IAAI,CAAC3B,MAAM,CAACmC,IAAI,EAAkC,CAAC,CAACC,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EACnG,MAAMC,oBAAoB,GAAG3C,IAAI,CAACgC,IAAI,CAAsB,IAAIY,GAAG,EAAE,CAAC,CAACH,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAE/F,MAAMG,eAAe,GAAG7C,IAAI,CAAC8C,QAAQ,CAAErB,GAAG,IAAKpB,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACS,WAAW,CAAC,CAACP,IAAI,CAChGzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CACnB;EAED,MAAMO,WAAW,GAAGjD,IAAI,CAAC8C,QAAQ,CAAErB,GAAG,IAAKpB,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACS,WAAW,CAACE,IAAI,GAAG,CAAC,CAAC,CAACT,IAAI,CACrGzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CACnB;EAED,MAAMS,eAAe,GAAGnD,IAAI,CAAC8C,QAAQ,CAAErB,GAAG,IAAKpB,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACa,WAAW,CAAC,CAACX,IAAI,CAChGzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CACnB;EAED,MAAMW,uBAAuB,GAAGrD,IAAI,CAAC8C,QAAQ,CAC1CrB,GAAG,IAAKpB,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACe,mBAAmB,CAC/D,CAACb,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAE1B,MAAMa,4BAA4B,GAAGvD,IAAI,CAAC8C,QAAQ,CAAErB,GAAG,IAAI;IACzD,MAAM+B,KAAK,GAAGnD,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC;IAC/C,OAAOlC,MAAM,CAACoD,KAAK,CAACD,KAAK,CAACF,mBAAmB,EAAE;MAC7CI,MAAM,EAAEA,CAAA,KAAM,IAAIC,GAAG,EAAU;MAC/BC,MAAM,EAAGC,aAAa,IAAK,IAAApD,MAAA,CAAAqD,uBAAuB,EAAC,IAAIH,GAAG,EAAE,EAAEE,aAAa,EAAEL,KAAK,CAACO,MAAM,EAAE,EAAE;KAC9F,CAAC;EACJ,CAAC,CAAC,CAACtB,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAE3B,MAAMsB,yBAAyB,GAAGhE,IAAI,CAAC8C,QAAQ,CAAErB,GAAG,IAAI;IACtD,MAAM+B,KAAK,GAAGnD,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC;IAC/C,IAAIlC,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAACF,mBAAmB,CAAC,EAAE,OAAO,KAAK;IAC1D,IAAIE,KAAK,CAACO,MAAM,KAAKP,KAAK,CAACF,mBAAmB,CAACY,KAAK,EAAE,OAAO,KAAK;IAClE,OAAOzC,GAAG,CAAC8B,4BAA4B,CAAC,CAACL,IAAI,GAAG,CAAC;EACnD,CAAC,CAAC,CAACT,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAE3B,MAAMyB,uBAAuB,GAAG,IAAAxD,aAAA,CAAAyD,kBAAkB,GAA4D;EAC9G,MAAMC,kBAAkB,GAAG,IAAA1D,aAAA,CAAAyD,kBAAkB,GAAc;EAE3D,MAAME,yBAAyB,GAAGA,CAChCC,SAAiB,EACjBC,MAAyB,KACmC;IAC5D,MAAMC,QAAQ,GAAGN,uBAAuB,CAAC1C,GAAG,CAAC8C,SAAS,CAAC;IACvD,IAAIE,QAAQ,EAAE,OAAOA,QAAQ;IAE7B,MAAMC,cAAc,GAAGvC,OAAO,CAACwC,EAAE,EAAW,CAAET,KAAc,IAC1D,IAAA9D,SAAA,CAAAqC,IAAI,EACFnC,MAAM,CAACsE,aAAa,CAACJ,MAAM,CAAC,CAACN,KAAK,CAAsD,EACxF/D,MAAM,CAAC0E,MAAM,CACd,CACF,CAACpC,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAA6D;IAEtFyB,uBAAuB,CAACzC,GAAG,CAAC6C,SAAS,EAAEG,cAAc,CAAC;IACtD,OAAOA,cAAc;EACvB,CAAC;EAED,MAAMI,qBAAqB,GAAIP,SAAiB,IAAgB;IAC9D,MAAME,QAAQ,GAAGJ,kBAAkB,CAAC5C,GAAG,CAAC8C,SAAS,CAAC;IAClD,IAAIE,QAAQ,EAAE,OAAOA,QAAQ;IAE7B,MAAMM,SAAS,GAAG/E,IAAI,CAACgF,QAAQ,CAC5BvD,GAAG,IAAK,IAAAf,KAAA,CAAAuE,cAAc,EAAC5E,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACwB,MAAM,EAAEQ,SAAS,CAAC,EAC5E,CAACW,GAAG,EAAEhB,KAAK,KAAI;MACb,MAAMiB,YAAY,GAAG9E,MAAM,CAAC0C,UAAU,CAACmC,GAAG,CAACzD,GAAG,CAACc,SAAS,CAAC,CAAC;MAC1D,MAAM6C,SAAS,GAAG,IAAA1E,KAAA,CAAA2E,cAAc,EAACF,YAAY,CAACpB,MAAM,EAAEQ,SAAS,EAAEL,KAAK,CAAC;MACvEgB,GAAG,CAACxD,GAAG,CACLa,SAAS,EACTlC,MAAM,CAACiF,IAAI,CAAC;QACV,GAAGH,YAAY;QACfpB,MAAM,EAAEqB,SAAS;QACjBpC,WAAW,EAAE,IAAAvC,MAAA,CAAAqD,uBAAuB,EAClCqB,YAAY,CAACnC,WAAW,EACxBmC,YAAY,CAACI,aAAa,EAC1BH,SAAS,EACTb,SAAS;OAEZ,CAAC,CACH;IACH,CAAC,CACF,CAAC9B,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM8C,gBAAgB,GAAGxF,IAAI,CAAC8C,QAAQ,CACnCrB,GAAG,IAAK,IAAAf,KAAA,CAAAuE,cAAc,EAAC5E,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACgD,aAAa,EAAEhB,SAAS,CAAC,CACpF,CAAC9B,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM+C,WAAW,GAAGzF,IAAI,CAACgF,QAAQ,CAC9BvD,GAAG,IAAM,IAAAf,KAAA,CAAAuE,cAAc,EAAC5E,MAAM,CAAC0C,UAAU,CAACtB,GAAG,CAACc,SAAS,CAAC,CAAC,CAACmD,OAAO,EAAEnB,SAAS,CAAC,IAAI,KAAiB,EACnG,CAACW,GAAG,EAAEhB,KAAK,KAAI;MACb,MAAMiB,YAAY,GAAG9E,MAAM,CAAC0C,UAAU,CAACmC,GAAG,CAACzD,GAAG,CAACc,SAAS,CAAC,CAAC;MAC1D2C,GAAG,CAACxD,GAAG,CACLa,SAAS,EACTlC,MAAM,CAACiF,IAAI,CAAC;QACV,GAAGH,YAAY;QACfO,OAAO,EAAE,IAAAhF,KAAA,CAAA2E,cAAc,EAACF,YAAY,CAACO,OAAO,EAAEnB,SAAS,EAAEL,KAAK;OAC/D,CAAC,CACH;IACH,CAAC,CACF,CAACzB,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAMiD,mBAAmB,GAAG3F,IAAI,CAAC8C,QAAQ,CAAErB,GAAG,IAAI;MAChD,MAAMmE,MAAM,GAAGnE,GAAG,CAACkB,oBAAoB,CAAC;MACxC,MAAMkD,KAAK,GAAGD,MAAM,CAACnE,GAAG,CAAC8C,SAAS,CAAC;MACnC,OAAOsB,KAAK,KAAKC,SAAS,GAAGzF,MAAM,CAACiF,IAAI,CAACO,KAAK,CAAC,GAAGxF,MAAM,CAACmC,IAAI,EAAU;IACzE,CAAC,CAAC,CAACC,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3B,MAAMqD,KAAK,GAAe;MAAEhB,SAAS;MAAES,gBAAgB;MAAEC,WAAW;MAAEE;IAAmB,CAAE;IAC3FtB,kBAAkB,CAAC3C,GAAG,CAAC6C,SAAS,EAAEwB,KAAK,CAAC;IACxC,OAAOA,KAAK;EACd,CAAC;EAED,MAAMC,oBAAoB,GAAId,GAAiE,IAAI;IACjG,KAAK,MAAMR,cAAc,IAAIP,uBAAuB,CAACJ,MAAM,EAAE,EAAE;MAC7DmB,GAAG,CAACxD,GAAG,CAACgD,cAAc,EAAE1E,IAAI,CAACiG,KAAK,CAAC;IACrC;IACA9B,uBAAuB,CAAC+B,KAAK,EAAE;IAC/B7B,kBAAkB,CAAC6B,KAAK,EAAE;EAC5B,CAAC;EAED,MAAMC,UAAU,GAAGhE,OAAO,CAACwC,EAAE,EAAQ,CAAC,CAACyB,KAAK,EAAE3E,GAAG,KAC/CtB,MAAM,CAACkG,GAAG,CAAC,aAAS;IAClB,MAAM7C,KAAK,GAAG/B,GAAG,CAACc,SAAS,CAAC;IAC5B,IAAIlC,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAAC,EAAE,OAAO,OAAOrD,MAAM,CAACmG,GAAG,CAAC,sBAAsB,CAAC;IAC1E,MAAMvC,MAAM,GAAGP,KAAK,CAACU,KAAK,CAACH,MAAM;IACjCtC,GAAG,CAACC,GAAG,CAACiB,oBAAoB,EAAE,IAAIC,GAAG,EAAE,CAAC;IACxC,MAAM2D,OAAO,GAAG,OAAO,IAAAnG,SAAA,CAAAqC,IAAI,EACzBnC,MAAM,CAACsE,aAAa,CAACvC,cAAc,CAAC,CAAC0B,MAAM,CAI1C,EACD5D,MAAM,CAACqG,QAAQ,CAAEC,UAAU,IACzBtG,MAAM,CAACuG,IAAI,CAAC,MAAK;MACf,MAAMC,YAAY,GAAG/F,UAAU,CAACgG,WAAW,CAACH,UAAU,CAAC;MACvDhF,GAAG,CAACC,GAAG,CAACiB,oBAAoB,EAAEgE,YAAY,CAAC;MAC3ClF,GAAG,CAACC,GAAG,CAACa,SAAS,EAAElC,MAAM,CAACiF,IAAI,CAACuB,UAAU,CAACC,iBAAiB,CAACtD,KAAK,CAACU,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CACF;IACDzC,GAAG,CAACC,GAAG,CAACa,SAAS,EAAElC,MAAM,CAACiF,IAAI,CAACuB,UAAU,CAACC,iBAAiB,CAACtD,KAAK,CAACU,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM6C,MAAM,GAAG9E,MAAM,CAAC+E,QAAQ,CAACT,OAAO,EAAE9E,GAAG,CAAC;IAC5C,IAAItB,MAAM,CAAC8G,QAAQ,CAACF,MAAM,CAAC,EAAE;MAC3B,OAAO,OAAQA,MAAiC;IAClD;IACA,OAAOA,MAAW;EACpB,CAAC,CAAC,CACH,CAACtE,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAA2D;EAEpF,MAAMwE,SAAS,GAAGrF,MAAM,CAACsF,WAAW,CAClCtF,MAAM,CAACuF,IAAI,CAAChF,MAAM,CAAC,CAACiF,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,EAAE9G,WAAW,CAAC+G,YAAY,CAACD,GAAG,CAAC,CAAC,CAAC,CACjD;EAEvB,MAAMT,UAAU,GAA4B;IAC1CW,kBAAkB,EAAGC,aAAa,KAAM;MACtC1D,MAAM,EAAE0D,aAAa;MACrBlC,aAAa,EAAEkC,aAAa;MAC5BnE,mBAAmB,EAAEjD,MAAM,CAACmC,IAAI,EAAE;MAClCkD,OAAO,EAAEnF,KAAK,CAACmH,mBAAmB,CAACtF,MAAM,EAAE,KAAK,CAA+C;MAC/FgB,WAAW,EAAE,CAAC;MACdJ,WAAW,EAAE,IAAIW,GAAG;KACrB,CAAC;IAEFgE,gBAAgB,EAAGnE,KAAK,KAAM;MAC5BO,MAAM,EAAEP,KAAK,CAAC+B,aAAa;MAC3BA,aAAa,EAAE/B,KAAK,CAAC+B,aAAa;MAClCjC,mBAAmB,EAAEjD,MAAM,CAACmC,IAAI,EAAE;MAClCkD,OAAO,EAAEnF,KAAK,CAACmH,mBAAmB,CAACtF,MAAM,EAAE,KAAK,CAA+C;MAC/FgB,WAAW,EAAE,CAAC;MACdJ,WAAW,EAAE,IAAIW,GAAG;KACrB,CAAC;IAEFmD,iBAAiB,EAAGtD,KAAK,KAAM;MAC7B,GAAGA,KAAK;MACRF,mBAAmB,EAAEjD,MAAM,CAACiF,IAAI,CAAC9B,KAAK,CAACO,MAAM,CAAC;MAC9C2B,OAAO,EAAEnF,KAAK,CAACmH,mBAAmB,CAACtF,MAAM,EAAE,IAAI,CAA+C;MAC9FgB,WAAW,EAAEI,KAAK,CAACJ,WAAW,GAAG;KAClC,CAAC;IAEFwE,aAAa,EAAEA,CAACpE,KAAK,EAAEe,SAAS,EAAEL,KAAK,KAAI;MACzC,MAAMkB,SAAS,GAAG,IAAA1E,KAAA,CAAA2E,cAAc,EAAC7B,KAAK,CAACO,MAAM,EAAEQ,SAAS,EAAEL,KAAK,CAAC;MAChE,MAAM2D,cAAc,GAAG,IAAApH,MAAA,CAAAqD,uBAAuB,EAC5CN,KAAK,CAACR,WAAW,EACjBQ,KAAK,CAAC+B,aAAa,EACnBH,SAAS,EACTb,SAAS,CACV;MACD,OAAO;QACL,GAAGf,KAAK;QACRO,MAAM,EAAEqB,SAA6C;QACrDpC,WAAW,EAAE6E;OACd;IACH,CAAC;IAEDC,aAAa,EAAEA,CAACtE,KAAK,EAAEO,MAAM,KAAI;MAC/B,MAAM8D,cAAc,GAAG,IAAApH,MAAA,CAAAqD,uBAAuB,EAC5CN,KAAK,CAACR,WAAW,EACjBQ,KAAK,CAAC+B,aAAa,EACnBxB,MAAM,EACN,EAAE,CACH;MACD,OAAO;QACL,GAAGP,KAAK;QACRO,MAAM;QACNf,WAAW,EAAE6E;OACd;IACH,CAAC;IAEDE,eAAe,EAAEA,CAACvE,KAAK,EAAEe,SAAS,EAAEmB,OAAO,MAAM;MAC/C,GAAGlC,KAAK;MACRkC,OAAO,EAAE,IAAAhF,KAAA,CAAA2E,cAAc,EAAC7B,KAAK,CAACkC,OAAO,EAAEnB,SAAS,EAAEmB,OAAO;KAC1D,CAAC;IAEFsC,eAAe,EAAEA,CAACxE,KAAK,EAAEyE,SAAS,EAAEC,UAAU,EAAEhE,KAAK,KAAI;MACvD,MAAMiE,OAAO,GAAGjE,KAAK,IAAI3D,KAAK,CAAC6H,oBAAoB,CAACF,UAAU,CAAC;MAC/D,MAAMG,YAAY,GAAI,IAAA3H,KAAA,CAAAuE,cAAc,EAACzB,KAAK,CAACO,MAAM,EAAEkE,SAAS,CAAC,IAAI,EAA6B;MAC9F,MAAMK,QAAQ,GAAG,CAAC,GAAGD,YAAY,EAAEF,OAAO,CAAC;MAC3C,OAAO;QACL,GAAG3E,KAAK;QACRO,MAAM,EAAE,IAAArD,KAAA,CAAA2E,cAAc,EAAC7B,KAAK,CAACO,MAAM,EAAEkE,SAAS,EAAEK,QAAQ,CAAqC;QAC7FtF,WAAW,EAAE,IAAAvC,MAAA,CAAA8H,8BAA8B,EAAC/E,KAAK,CAACR,WAAW,EAAEQ,KAAK,CAAC+B,aAAa,EAAE0C,SAAS,EAAEK,QAAQ;OACxG;IACH,CAAC;IAEDE,eAAe,EAAEA,CAAChF,KAAK,EAAEyE,SAAS,EAAEQ,KAAK,KAAI;MAC3C,MAAMJ,YAAY,GAAI,IAAA3H,KAAA,CAAAuE,cAAc,EAACzB,KAAK,CAACO,MAAM,EAAEkE,SAAS,CAAC,IAAI,EAA6B;MAC9F,MAAMK,QAAQ,GAAGD,YAAY,CAACK,MAAM,CAAC,CAACC,CAAC,EAAEvH,CAAC,KAAKA,CAAC,KAAKqH,KAAK,CAAC;MAC3D,OAAO;QACL,GAAGjF,KAAK;QACRO,MAAM,EAAE,IAAArD,KAAA,CAAA2E,cAAc,EAAC7B,KAAK,CAACO,MAAM,EAAEkE,SAAS,EAAEK,QAAQ,CAAqC;QAC7FtF,WAAW,EAAE,IAAAvC,MAAA,CAAA8H,8BAA8B,EAAC/E,KAAK,CAACR,WAAW,EAAEQ,KAAK,CAAC+B,aAAa,EAAE0C,SAAS,EAAEK,QAAQ;OACxG;IACH,CAAC;IAEDM,cAAc,EAAEA,CAACpF,KAAK,EAAEyE,SAAS,EAAEY,MAAM,EAAEC,MAAM,KAAI;MACnD,MAAMT,YAAY,GAAI,IAAA3H,KAAA,CAAAuE,cAAc,EAACzB,KAAK,CAACO,MAAM,EAAEkE,SAAS,CAAC,IAAI,EAA6B;MAC9F,IACEY,MAAM,GAAG,CAAC,IAAIA,MAAM,IAAIR,YAAY,CAACU,MAAM,IAC3CD,MAAM,GAAG,CAAC,IAAIA,MAAM,IAAIT,YAAY,CAACU,MAAM,IAC3CF,MAAM,KAAKC,MAAM,EACjB;QACA,OAAOtF,KAAK;MACd;MACA,MAAM8E,QAAQ,GAAG,CAAC,GAAGD,YAAY,CAAC;MAClC,MAAMW,IAAI,GAAGV,QAAQ,CAACO,MAAM,CAAC;MAC7BP,QAAQ,CAACO,MAAM,CAAC,GAAGP,QAAQ,CAACQ,MAAM,CAAC;MACnCR,QAAQ,CAACQ,MAAM,CAAC,GAAGE,IAAI;MACvB,OAAO;QACL,GAAGxF,KAAK;QACRO,MAAM,EAAE,IAAArD,KAAA,CAAA2E,cAAc,EAAC7B,KAAK,CAACO,MAAM,EAAEkE,SAAS,EAAEK,QAAQ,CAAqC;QAC7FtF,WAAW,EAAE,IAAAvC,MAAA,CAAA8H,8BAA8B,EAAC/E,KAAK,CAACR,WAAW,EAAEQ,KAAK,CAAC+B,aAAa,EAAE0C,SAAS,EAAEK,QAAQ;OACxG;IACH,CAAC;IAEDW,aAAa,EAAEA,CAACzF,KAAK,EAAEyE,SAAS,EAAEiB,SAAS,EAAEC,OAAO,KAAI;MACtD,MAAMd,YAAY,GAAI,IAAA3H,KAAA,CAAAuE,cAAc,EAACzB,KAAK,CAACO,MAAM,EAAEkE,SAAS,CAAC,IAAI,EAA6B;MAC9F,IACEiB,SAAS,GAAG,CAAC,IAAIA,SAAS,IAAIb,YAAY,CAACU,MAAM,IACjDI,OAAO,GAAG,CAAC,IAAIA,OAAO,GAAGd,YAAY,CAACU,MAAM,IAC5CG,SAAS,KAAKC,OAAO,EACrB;QACA,OAAO3F,KAAK;MACd;MACA,MAAM8E,QAAQ,GAAG,CAAC,GAAGD,YAAY,CAAC;MAClC,MAAM,CAACe,IAAI,CAAC,GAAGd,QAAQ,CAACe,MAAM,CAACH,SAAS,EAAE,CAAC,CAAC;MAC5CZ,QAAQ,CAACe,MAAM,CAACF,OAAO,EAAE,CAAC,EAAEC,IAAI,CAAC;MACjC,OAAO;QACL,GAAG5F,KAAK;QACRO,MAAM,EAAE,IAAArD,KAAA,CAAA2E,cAAc,EAAC7B,KAAK,CAACO,MAAM,EAAEkE,SAAS,EAAEK,QAAQ,CAAqC;QAC7FtF,WAAW,EAAE,IAAAvC,MAAA,CAAA8H,8BAA8B,EAAC/E,KAAK,CAACR,WAAW,EAAEQ,KAAK,CAAC+B,aAAa,EAAE0C,SAAS,EAAEK,QAAQ;OACxG;IACH,CAAC;IAEDgB,kBAAkB,EAAG9F,KAAK,IAAI;MAC5B,IAAInD,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAACF,mBAAmB,CAAC,EAAE;QAC5C,OAAOE,KAAK;MACd;MAEA,IAAIA,KAAK,CAACO,MAAM,KAAKP,KAAK,CAACF,mBAAmB,CAACY,KAAK,EAAE;QACpD,OAAOV,KAAK;MACd;MAEA,MAAMqE,cAAc,GAAG,IAAApH,MAAA,CAAAqD,uBAAuB,EAC5CN,KAAK,CAACR,WAAW,EACjBQ,KAAK,CAAC+B,aAAa,EACnB/B,KAAK,CAACF,mBAAmB,CAACY,KAAK,EAC/B,EAAE,CACH;MAED,OAAO;QACL,GAAGV,KAAK;QACRO,MAAM,EAAEP,KAAK,CAACF,mBAAmB,CAACY,KAAK;QACvClB,WAAW,EAAE6E;OACd;IACH;GACD;EAED,MAAM0B,SAAS,GAAGvJ,IAAI,CAACwJ,MAAM,EAAQ,CAAC,CAACb,CAAO,EAAElH,GAAG,KAAI;IACrD,MAAM+B,KAAK,GAAG/B,GAAG,CAACc,SAAS,CAAC;IAC5B,IAAIlC,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAAC,EAAE;IAC1B/B,GAAG,CAACC,GAAG,CAACa,SAAS,EAAElC,MAAM,CAACiF,IAAI,CAACuB,UAAU,CAACc,gBAAgB,CAACnE,KAAK,CAACU,KAAK,CAAC,CAAC,CAAC;IACzEzC,GAAG,CAACC,GAAG,CAACiB,oBAAoB,EAAE,IAAIC,GAAG,EAAE,CAAC;IACxCoD,oBAAoB,CAACvE,GAAG,CAAC;IACzBA,GAAG,CAACC,GAAG,CAACyE,UAAU,EAAEnG,IAAI,CAACiG,KAAK,CAAC;EACjC,CAAC,EAAE;IAAEwD,YAAY,EAAE3D;EAAiB,CAAE,CAAC,CAACrD,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAEhE,MAAMgH,sBAAsB,GAAG1J,IAAI,CAACwJ,MAAM,EAAQ,CAAC,CAACb,CAAO,EAAElH,GAAG,KAAI;IAClE,MAAM+B,KAAK,GAAG/B,GAAG,CAACc,SAAS,CAAC;IAC5B,IAAIlC,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAAC,EAAE;IAC1B/B,GAAG,CAACC,GAAG,CAACa,SAAS,EAAElC,MAAM,CAACiF,IAAI,CAACuB,UAAU,CAACyC,kBAAkB,CAAC9F,KAAK,CAACU,KAAK,CAAC,CAAC,CAAC;IAC3EzC,GAAG,CAACC,GAAG,CAACiB,oBAAoB,EAAE,IAAIC,GAAG,EAAE,CAAC;EAC1C,CAAC,EAAE;IAAE6G,YAAY,EAAE3D;EAAiB,CAAE,CAAC,CAACrD,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAEhE,MAAMiH,aAAa,GAAG3J,IAAI,CAACwJ,MAAM,EAAoC,CAAC,CAACI,OAAO,EAAEnI,GAAG,KAAI;IACrF,MAAM+B,KAAK,GAAG/B,GAAG,CAACc,SAAS,CAAC;IAC5B,IAAIlC,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAAC,EAAE;IAC1B/B,GAAG,CAACC,GAAG,CAACa,SAAS,EAAElC,MAAM,CAACiF,IAAI,CAACuB,UAAU,CAACiB,aAAa,CAACtE,KAAK,CAACU,KAAK,EAAE0F,OAAO,CAAC,CAAC,CAAC;IAC/EnI,GAAG,CAACC,GAAG,CAACiB,oBAAoB,EAAE,IAAIC,GAAG,EAAE,CAAC;EAC1C,CAAC,EAAE;IAAE6G,YAAY,EAAE3D;EAAiB,CAAE,CAAC,CAACrD,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;EAEhE,MAAMmH,qBAAqB,GAAG,IAAAlJ,aAAA,CAAAyD,kBAAkB,GAA4B;EAE5E,MAAM0F,QAAQ,GAAOC,KAA8B,IAA+C;IAChG,MAAMC,MAAM,GAAGH,qBAAqB,CAACpI,GAAG,CAACsI,KAAK,CAACzC,GAAG,CAAC;IACnD,IAAI0C,MAAM,EAAE,OAAOA,MAAM;IAEzB,MAAMC,IAAI,GAAGjK,IAAI,CAACwJ,MAAM,EAAwB,CAAC,CAACU,MAAM,EAAEzI,GAAG,KAAI;MAC/D,MAAM+B,KAAK,GAAG/B,GAAG,CAACc,SAAS,CAAC;MAC5B,IAAIlC,MAAM,CAAC4D,MAAM,CAACT,KAAK,CAAC,EAAE;MAE1B,MAAM2G,YAAY,GAAG,IAAAzJ,KAAA,CAAAuE,cAAc,EAACzB,KAAK,CAACU,KAAK,CAACH,MAAM,EAAEgG,KAAK,CAACzC,GAAG,CAAM;MACvE,MAAM8C,QAAQ,GAAG,OAAOF,MAAM,KAAK,UAAU,GACxCA,MAAyB,CAACC,YAAY,CAAC,GACxCD,MAAM;MAEVzI,GAAG,CAACC,GAAG,CAACa,SAAS,EAAElC,MAAM,CAACiF,IAAI,CAACuB,UAAU,CAACe,aAAa,CAACpE,KAAK,CAACU,KAAK,EAAE6F,KAAK,CAACzC,GAAG,EAAE8C,QAAQ,CAAC,CAAC,CAAC;MAE3F,MAAMC,aAAa,GAAG5I,GAAG,CAACkB,oBAAoB,CAAC;MAC/C,MAAM2H,UAAU,GAAG,IAAI1H,GAAG,EAAkB;MAC5C,KAAK,MAAM,CAAC2H,SAAS,EAAEC,OAAO,CAAC,IAAIH,aAAa,EAAE;QAChD,IAAI,CAAC,IAAA3J,KAAA,CAAA+J,eAAe,EAACF,SAAS,EAAER,KAAK,CAACzC,GAAG,CAAC,EAAE;UAC1CgD,UAAU,CAAC5I,GAAG,CAAC6I,SAAS,EAAEC,OAAO,CAAC;QACpC;MACF;MACA,IAAIF,UAAU,CAACpH,IAAI,KAAKmH,aAAa,CAACnH,IAAI,EAAE;QAC1CzB,GAAG,CAACC,GAAG,CAACiB,oBAAoB,EAAE2H,UAAU,CAAC;MAC3C;IACF,CAAC,EAAE;MAAEb,YAAY,EAAE3D;IAAiB,CAAE,CAAC,CAACrD,IAAI,CAACzC,IAAI,CAAC0C,UAAU,CAAC,CAAC,CAAC,CAAC;IAEhEmH,qBAAqB,CAACnI,GAAG,CAACqI,KAAK,CAACzC,GAAG,EAAE2C,IAAI,CAAC;IAC1C,OAAOA,IAAI;EACb,CAAC;EAED,OAAO;IACL1H,SAAS;IACTI,oBAAoB;IACpBE,eAAe;IACfI,WAAW;IACXE,eAAe;IACfE,uBAAuB;IACvBE,4BAA4B;IAC5BS,yBAAyB;IACzBmC,UAAU;IACV9D,cAAc;IACd6E,SAAS;IACT/C,uBAAuB;IACvBE,kBAAkB;IAClBC,yBAAyB;IACzBQ,qBAAqB;IACrBkB,oBAAoB;IACpBa,UAAU;IACV0C,SAAS;IACTG,sBAAsB;IACtBC,aAAa;IACbG;GAC8B;AAClC,CAAC;AAAAY,OAAA,CAAA1I,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -38,7 +38,7 @@ function _interopRequireWildcard(e, t) {
38
38
  * Clears all paths under the array and re-evaluates each item.
39
39
  */
40
40
  const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, arrayPath, newItems) => {
41
- const nextDirty = new Set(Array.from(dirtyFields).filter(path => path !== arrayPath && !path.startsWith(arrayPath + ".") && !path.startsWith(arrayPath + "[")));
41
+ const nextDirty = new Set(Array.from(dirtyFields).filter(path => !(0, _path.isPathUnderRoot)(path, arrayPath)));
42
42
  const initialItems = (0, _path.getNestedValue)(initialValues, arrayPath) ?? [];
43
43
  const loopLength = Math.max(newItems.length, initialItems.length);
44
44
  for (let i = 0; i < loopLength; i++) {
@@ -70,7 +70,7 @@ const recalculateDirtySubtree = (currentDirty, allInitial, allValues, rootPath =
70
70
  nextDirty.clear();
71
71
  } else {
72
72
  for (const path of nextDirty) {
73
- if (path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[")) {
73
+ if ((0, _path.isPathUnderRoot)(path, rootPath)) {
74
74
  nextDirty.delete(path);
75
75
  }
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dirty.js","names":["Equal","_interopRequireWildcard","require","Utils","_path","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","startsWith","initialItems","getNestedValue","loopLength","Math","max","length","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","exports","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","clear","targetValue","targetInitial","recurse","current","initial","isArray","initialArr","initialObj","allKeys","keys","key"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dirty.js","names":["Equal","_interopRequireWildcard","require","Utils","_path","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","isPathUnderRoot","initialItems","getNestedValue","loopLength","Math","max","length","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","exports","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","clear","targetValue","targetInitial","recurse","current","initial","isArray","initialArr","initialObj","allKeys","keys","key"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setNestedValue = exports.schemaPathToFieldPath = exports.isPathOrParentDirty = exports.getNestedValue = void 0;
6
+ exports.setNestedValue = exports.schemaPathToFieldPath = exports.isPathUnderRoot = exports.isPathOrParentDirty = exports.getNestedValue = void 0;
7
7
  /**
8
8
  * Internal path utilities for form field operations.
9
9
  *
@@ -30,9 +30,20 @@ const schemaPathToFieldPath = path => {
30
30
  return result;
31
31
  };
32
32
  /**
33
- * Checks if a field path or any of its parent paths are in the dirty set.
33
+ * Checks if a path matches a root path or is a descendant of it.
34
+ * Handles both dot notation (root.child) and bracket notation (root[0]).
35
+ *
36
+ * @example
37
+ * isPathUnderRoot("items[0].name", "items[0]") // true
38
+ * isPathUnderRoot("items[0].name", "items") // true
39
+ * isPathUnderRoot("other", "items") // false
34
40
  */
35
41
  exports.schemaPathToFieldPath = schemaPathToFieldPath;
42
+ const isPathUnderRoot = (path, rootPath) => path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[");
43
+ /**
44
+ * Checks if a field path or any of its parent paths are in the dirty set.
45
+ */
46
+ exports.isPathUnderRoot = isPathUnderRoot;
36
47
  const isPathOrParentDirty = (dirtyFields, path) => {
37
48
  if (dirtyFields.has(path)) return true;
38
49
  let parent = path;
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","names":["BRACKET_NOTATION_REGEX","schemaPathToFieldPath","path","length","result","String","i","segment","exports","isPathOrParentDirty","dirtyFields","has","parent","lastDot","lastIndexOf","lastBracket","splitIndex","Math","max","substring","getNestedValue","obj","parts","replace","split","current","part","undefined","setNestedValue","value","Array","isArray"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"path.js","names":["BRACKET_NOTATION_REGEX","schemaPathToFieldPath","path","length","result","String","i","segment","exports","isPathUnderRoot","rootPath","startsWith","isPathOrParentDirty","dirtyFields","has","parent","lastDot","lastIndexOf","lastBracket","splitIndex","Math","max","substring","getNestedValue","obj","parts","replace","split","current","part","undefined","setNestedValue","value","Array","isArray"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,5 @@
1
- /**
2
- * Atom infrastructure for form state management.
3
- *
4
- * This module provides the core atom infrastructure that framework adapters
5
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
6
- *
7
- * @since 1.0.0
8
- */
9
1
  import * as Atom from "@effect-atom/atom/Atom";
10
- import type * as Registry from "@effect-atom/atom/Registry";
2
+ import * as Effect from "effect/Effect";
11
3
  import * as Option from "effect/Option";
12
4
  import type * as ParseResult from "effect/ParseResult";
13
5
  import * as Schema from "effect/Schema";
@@ -32,9 +24,10 @@ export interface FieldAtoms {
32
24
  * @since 1.0.0
33
25
  * @category Models
34
26
  */
35
- export interface FormAtomsConfig<TFields extends Field.FieldsRecord, R> {
27
+ export interface FormAtomsConfig<TFields extends Field.FieldsRecord, R, A, E> {
36
28
  readonly runtime: Atom.AtomRuntime<R, any>;
37
29
  readonly formBuilder: FormBuilder.FormBuilder<TFields, R>;
30
+ readonly onSubmit: (decoded: Field.DecodedFromFields<TFields>, get: Atom.FnContext) => A | Effect.Effect<A, E, R>;
38
31
  }
39
32
  /**
40
33
  * Maps field names to their type-safe Field references for setValue operations.
@@ -51,7 +44,7 @@ export type FieldRefs<TFields extends Field.FieldsRecord> = {
51
44
  * @since 1.0.0
52
45
  * @category Models
53
46
  */
54
- export interface FormAtoms<TFields extends Field.FieldsRecord, R> {
47
+ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E = never> {
55
48
  readonly stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<TFields>>, Option.Option<FormBuilder.FormState<TFields>>>;
56
49
  readonly crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>;
57
50
  readonly dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>;
@@ -60,16 +53,21 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R> {
60
53
  readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
61
54
  readonly changedSinceSubmitFieldsAtom: Atom.Atom<ReadonlySet<string>>;
62
55
  readonly hasChangedSinceSubmitAtom: Atom.Atom<boolean>;
63
- readonly onSubmitAtom: Atom.Writable<Atom.AtomResultFn<Field.DecodedFromFields<TFields>, unknown, unknown> | null, Atom.AtomResultFn<Field.DecodedFromFields<TFields>, unknown, unknown> | null>;
64
- readonly decodeAndSubmit: Atom.AtomResultFn<Field.EncodedFromFields<TFields>, unknown, unknown>;
56
+ readonly submitAtom: Atom.AtomResultFn<void, A, E | ParseResult.ParseError>;
65
57
  readonly combinedSchema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>;
66
58
  readonly fieldRefs: FieldRefs<TFields>;
67
59
  readonly validationAtomsRegistry: WeakRegistry<Atom.AtomResultFn<unknown, void, ParseResult.ParseError>>;
68
60
  readonly fieldAtomsRegistry: WeakRegistry<FieldAtoms>;
69
61
  readonly getOrCreateValidationAtom: (fieldPath: string, schema: Schema.Schema.Any) => Atom.AtomResultFn<unknown, void, ParseResult.ParseError>;
70
62
  readonly getOrCreateFieldAtoms: (fieldPath: string) => FieldAtoms;
71
- readonly resetValidationAtoms: (registry: Registry.Registry) => void;
63
+ readonly resetValidationAtoms: (ctx: {
64
+ set: <R, W>(atom: Atom.Writable<R, W>, value: W) => void;
65
+ }) => void;
72
66
  readonly operations: FormOperations<TFields>;
67
+ readonly resetAtom: Atom.Writable<void, void>;
68
+ readonly revertToLastSubmitAtom: Atom.Writable<void, void>;
69
+ readonly setValuesAtom: Atom.Writable<void, Field.EncodedFromFields<TFields>>;
70
+ readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)>;
73
71
  }
74
72
  /**
75
73
  * Pure state operations for form manipulation.
@@ -120,5 +118,5 @@ export interface FormOperations<TFields extends Field.FieldsRecord> {
120
118
  * @since 1.0.0
121
119
  * @category Constructors
122
120
  */
123
- export declare const make: <TFields extends Field.FieldsRecord, R>(config: FormAtomsConfig<TFields, R>) => FormAtoms<TFields, R>;
121
+ export declare const make: <TFields extends Field.FieldsRecord, R, A, E>(config: FormAtomsConfig<TFields, R, A, E>) => FormAtoms<TFields, R, A, E>;
124
122
  //# sourceMappingURL=FormAtoms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,10 @@
5
5
  */
6
6
  export * as Field from "./Field.js";
7
7
  /**
8
- * Atom infrastructure for form state management.
9
- *
10
- * This module provides the core atom infrastructure that framework adapters
11
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
8
+ * Atoms for a single field.
12
9
  *
13
10
  * @since 1.0.0
11
+ * @category Models
14
12
  */
15
13
  export * as FormAtoms from "./FormAtoms.js";
16
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;;;GAOG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;GAKG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internal/dirty.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,OAAO,EACtB,WAAW,MAAM,EACjB,UAAU,aAAa,CAAC,OAAO,CAAC,KAC/B,WAAW,CAAC,MAAM,CA4BpB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,YAAY,OAAO,EACnB,WAAW,OAAO,EAClB,WAAU,MAAW,KACpB,WAAW,CAAC,MAAM,CAoCpB,CAAA"}
1
+ {"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internal/dirty.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,OAAO,EACtB,WAAW,MAAM,EACjB,UAAU,aAAa,CAAC,OAAO,CAAC,KAC/B,WAAW,CAAC,MAAM,CA0BpB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,YAAY,OAAO,EACnB,WAAW,OAAO,EAClB,WAAU,MAAW,KACpB,WAAW,CAAC,MAAM,CAoCpB,CAAA"}
@@ -10,6 +10,16 @@
10
10
  * schemaPathToFieldPath(["items", 0, "name"]) // "items[0].name"
11
11
  */
12
12
  export declare const schemaPathToFieldPath: (path: ReadonlyArray<PropertyKey>) => string;
13
+ /**
14
+ * Checks if a path matches a root path or is a descendant of it.
15
+ * Handles both dot notation (root.child) and bracket notation (root[0]).
16
+ *
17
+ * @example
18
+ * isPathUnderRoot("items[0].name", "items[0]") // true
19
+ * isPathUnderRoot("items[0].name", "items") // true
20
+ * isPathUnderRoot("other", "items") // false
21
+ */
22
+ export declare const isPathUnderRoot: (path: string, rootPath: string) => boolean;
13
23
  /**
14
24
  * Checks if a field path or any of its parent paths are in the dirty set.
15
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/internal/path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,aAAa,CAAC,WAAW,CAAC,KAAG,MAaxE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,aAAa,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,OAgBpF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,EAAE,MAAM,MAAM,KAAG,OAS3D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,CAkBxE,CAAA"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/internal/path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,aAAa,CAAC,WAAW,CAAC,KAAG,MAaxE,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,OACwB,CAAA;AAEzF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,aAAa,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,OAgBpF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,EAAE,MAAM,MAAM,KAAG,OAS3D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,CAkBxE,CAAA"}
@@ -1,11 +1,3 @@
1
- /**
2
- * Atom infrastructure for form state management.
3
- *
4
- * This module provides the core atom infrastructure that framework adapters
5
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
6
- *
7
- * @since 1.0.0
8
- */
9
1
  import * as Atom from "@effect-atom/atom/Atom";
10
2
  import * as Effect from "effect/Effect";
11
3
  import { pipe } from "effect/Function";
@@ -14,8 +6,9 @@ import * as Schema from "effect/Schema";
14
6
  import * as Field from "./Field.js";
15
7
  import * as FormBuilder from "./FormBuilder.js";
16
8
  import { recalculateDirtyFieldsForArray, recalculateDirtySubtree } from "./internal/dirty.js";
17
- import { getNestedValue, setNestedValue } from "./internal/path.js";
9
+ import { getNestedValue, isPathUnderRoot, setNestedValue } from "./internal/path.js";
18
10
  import { createWeakRegistry } from "./internal/weak-registry.js";
11
+ import * as Validation from "./Validation.js";
19
12
  /**
20
13
  * Creates the complete form atoms infrastructure.
21
14
  *
@@ -70,7 +63,6 @@ export const make = config => {
70
63
  if (state.values === state.lastSubmittedValues.value) return false;
71
64
  return get(changedSinceSubmitFieldsAtom).size > 0;
72
65
  }).pipe(Atom.setIdleTTL(0));
73
- const onSubmitAtom = Atom.make(null).pipe(Atom.setIdleTTL(0));
74
66
  const validationAtomsRegistry = createWeakRegistry();
75
67
  const fieldAtomsRegistry = createWeakRegistry();
76
68
  const getOrCreateValidationAtom = (fieldPath, schema) => {
@@ -114,20 +106,29 @@ export const make = config => {
114
106
  fieldAtomsRegistry.set(fieldPath, atoms);
115
107
  return atoms;
116
108
  };
117
- const resetValidationAtoms = registry => {
109
+ const resetValidationAtoms = ctx => {
118
110
  for (const validationAtom of validationAtomsRegistry.values()) {
119
- registry.set(validationAtom, Atom.Reset);
111
+ ctx.set(validationAtom, Atom.Reset);
120
112
  }
121
113
  validationAtomsRegistry.clear();
122
114
  fieldAtomsRegistry.clear();
123
115
  };
124
- const decodeAndSubmit = runtime.fn()((values, get) => Effect.gen(function* () {
125
- const decoded = yield* Schema.decodeUnknown(combinedSchema)(values);
126
- const onSubmit = get(onSubmitAtom);
127
- get.set(onSubmit, decoded);
128
- return yield* get.result(onSubmit, {
129
- suspendOnWaiting: true
130
- });
116
+ const submitAtom = runtime.fn()((_void, get) => Effect.gen(function* () {
117
+ const state = get(stateAtom);
118
+ if (Option.isNone(state)) return yield* Effect.die("Form not initialized");
119
+ const values = state.value.values;
120
+ get.set(crossFieldErrorsAtom, new Map());
121
+ const decoded = yield* pipe(Schema.decodeUnknown(combinedSchema)(values), Effect.tapError(parseError => Effect.sync(() => {
122
+ const routedErrors = Validation.routeErrors(parseError);
123
+ get.set(crossFieldErrorsAtom, routedErrors);
124
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
125
+ })));
126
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
127
+ const result = config.onSubmit(decoded, get);
128
+ if (Effect.isEffect(result)) {
129
+ return yield* result;
130
+ }
131
+ return result;
131
132
  })).pipe(Atom.setIdleTTL(0));
132
133
  const fieldRefs = Object.fromEntries(Object.keys(fields).map(key => [key, FormBuilder.makeFieldRef(key)]));
133
134
  const operations = {
@@ -237,6 +238,58 @@ export const make = config => {
237
238
  };
238
239
  }
239
240
  };
241
+ const resetAtom = Atom.fnSync()((_, get) => {
242
+ const state = get(stateAtom);
243
+ if (Option.isNone(state)) return;
244
+ get.set(stateAtom, Option.some(operations.createResetState(state.value)));
245
+ get.set(crossFieldErrorsAtom, new Map());
246
+ resetValidationAtoms(get);
247
+ get.set(submitAtom, Atom.Reset);
248
+ }, {
249
+ initialValue: undefined
250
+ }).pipe(Atom.setIdleTTL(0));
251
+ const revertToLastSubmitAtom = Atom.fnSync()((_, get) => {
252
+ const state = get(stateAtom);
253
+ if (Option.isNone(state)) return;
254
+ get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)));
255
+ get.set(crossFieldErrorsAtom, new Map());
256
+ }, {
257
+ initialValue: undefined
258
+ }).pipe(Atom.setIdleTTL(0));
259
+ const setValuesAtom = Atom.fnSync()((_values, get) => {
260
+ const state = get(stateAtom);
261
+ if (Option.isNone(state)) return;
262
+ get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)));
263
+ get.set(crossFieldErrorsAtom, new Map());
264
+ }, {
265
+ initialValue: undefined
266
+ }).pipe(Atom.setIdleTTL(0));
267
+ const setValueAtomsRegistry = createWeakRegistry();
268
+ const setValue = field => {
269
+ const cached = setValueAtomsRegistry.get(field.key);
270
+ if (cached) return cached;
271
+ const atom = Atom.fnSync()((update, get) => {
272
+ const state = get(stateAtom);
273
+ if (Option.isNone(state)) return;
274
+ const currentValue = getNestedValue(state.value.values, field.key);
275
+ const newValue = typeof update === "function" ? update(currentValue) : update;
276
+ get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)));
277
+ const currentErrors = get(crossFieldErrorsAtom);
278
+ const nextErrors = new Map();
279
+ for (const [errorPath, message] of currentErrors) {
280
+ if (!isPathUnderRoot(errorPath, field.key)) {
281
+ nextErrors.set(errorPath, message);
282
+ }
283
+ }
284
+ if (nextErrors.size !== currentErrors.size) {
285
+ get.set(crossFieldErrorsAtom, nextErrors);
286
+ }
287
+ }, {
288
+ initialValue: undefined
289
+ }).pipe(Atom.setIdleTTL(0));
290
+ setValueAtomsRegistry.set(field.key, atom);
291
+ return atom;
292
+ };
240
293
  return {
241
294
  stateAtom,
242
295
  crossFieldErrorsAtom,
@@ -246,8 +299,7 @@ export const make = config => {
246
299
  lastSubmittedValuesAtom,
247
300
  changedSinceSubmitFieldsAtom,
248
301
  hasChangedSinceSubmitAtom,
249
- onSubmitAtom,
250
- decodeAndSubmit,
302
+ submitAtom,
251
303
  combinedSchema,
252
304
  fieldRefs,
253
305
  validationAtomsRegistry,
@@ -255,7 +307,11 @@ export const make = config => {
255
307
  getOrCreateValidationAtom,
256
308
  getOrCreateFieldAtoms,
257
309
  resetValidationAtoms,
258
- operations
310
+ operations,
311
+ resetAtom,
312
+ revertToLastSubmitAtom,
313
+ setValuesAtom,
314
+ setValue
259
315
  };
260
316
  };
261
317
  //# sourceMappingURL=FormAtoms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","getNestedValue","setNestedValue","createWeakRegistry","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","get","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","values","hasChangedSinceSubmitAtom","isNone","value","onSubmitAtom","validationAtomsRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","ctx","currentState","newValues","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","registry","Reset","clear","decodeAndSubmit","gen","decoded","onSubmit","result","suspendOnWaiting","fieldRefs","Object","fromEntries","keys","map","key","makeFieldRef","operations","createInitialState","defaultValues","createTouchedRecord","createResetState","createSubmitState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","removeArrayItem","index","filter","_","i","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","getNestedValue","isPathUnderRoot","setNestedValue","createWeakRegistry","Validation","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","get","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","values","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","ctx","currentState","newValues","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","operations","createSubmitState","result","onSubmit","isEffect","fieldRefs","Object","fromEntries","keys","map","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","removeArrayItem","index","filter","_","i","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -5,12 +5,10 @@
5
5
  */
6
6
  export * as Field from "./Field.js";
7
7
  /**
8
- * Atom infrastructure for form state management.
9
- *
10
- * This module provides the core atom infrastructure that framework adapters
11
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
8
+ * Atoms for a single field.
12
9
  *
13
10
  * @since 1.0.0
11
+ * @category Models
14
12
  */
15
13
  export * as FormAtoms from "./FormAtoms.js";
16
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Field","FormAtoms","FormBuilder","Mode","Validation"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnC;;;;;;;;AAQA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;;AAKA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;;;AAKA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Field","FormAtoms","FormBuilder","Mode","Validation"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnC;;;;;;AAMA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;;AAKA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;;;AAKA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
@@ -5,13 +5,13 @@
5
5
  */
6
6
  import * as Equal from "effect/Equal";
7
7
  import * as Utils from "effect/Utils";
8
- import { getNestedValue } from "./path.js";
8
+ import { getNestedValue, isPathUnderRoot } from "./path.js";
9
9
  /**
10
10
  * Recalculates dirty fields for an array after mutation.
11
11
  * Clears all paths under the array and re-evaluates each item.
12
12
  */
13
13
  export const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, arrayPath, newItems) => {
14
- const nextDirty = new Set(Array.from(dirtyFields).filter(path => path !== arrayPath && !path.startsWith(arrayPath + ".") && !path.startsWith(arrayPath + "[")));
14
+ const nextDirty = new Set(Array.from(dirtyFields).filter(path => !isPathUnderRoot(path, arrayPath)));
15
15
  const initialItems = getNestedValue(initialValues, arrayPath) ?? [];
16
16
  const loopLength = Math.max(newItems.length, initialItems.length);
17
17
  for (let i = 0; i < loopLength; i++) {
@@ -42,7 +42,7 @@ export const recalculateDirtySubtree = (currentDirty, allInitial, allValues, roo
42
42
  nextDirty.clear();
43
43
  } else {
44
44
  for (const path of nextDirty) {
45
- if (path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[")) {
45
+ if (isPathUnderRoot(path, rootPath)) {
46
46
  nextDirty.delete(path);
47
47
  }
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dirty.js","names":["Equal","Utils","getNestedValue","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","startsWith","initialItems","loopLength","Math","max","length","i","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","clear","targetValue","targetInitial","recurse","current","initial","isArray","initialArr","initialObj","allKeys","Object","keys","key"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dirty.js","names":["Equal","Utils","getNestedValue","isPathUnderRoot","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","initialItems","loopLength","Math","max","length","i","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","clear","targetValue","targetInitial","recurse","current","initial","isArray","initialArr","initialObj","allKeys","Object","keys","key"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -23,6 +23,16 @@ export const schemaPathToFieldPath = path => {
23
23
  }
24
24
  return result;
25
25
  };
26
+ /**
27
+ * Checks if a path matches a root path or is a descendant of it.
28
+ * Handles both dot notation (root.child) and bracket notation (root[0]).
29
+ *
30
+ * @example
31
+ * isPathUnderRoot("items[0].name", "items[0]") // true
32
+ * isPathUnderRoot("items[0].name", "items") // true
33
+ * isPathUnderRoot("other", "items") // false
34
+ */
35
+ export const isPathUnderRoot = (path, rootPath) => path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[");
26
36
  /**
27
37
  * Checks if a field path or any of its parent paths are in the dirty set.
28
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","names":["BRACKET_NOTATION_REGEX","schemaPathToFieldPath","path","length","result","String","i","segment","isPathOrParentDirty","dirtyFields","has","parent","lastDot","lastIndexOf","lastBracket","splitIndex","Math","max","substring","getNestedValue","obj","parts","replace","split","current","part","undefined","setNestedValue","value","Array","isArray"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"path.js","names":["BRACKET_NOTATION_REGEX","schemaPathToFieldPath","path","length","result","String","i","segment","isPathUnderRoot","rootPath","startsWith","isPathOrParentDirty","dirtyFields","has","parent","lastDot","lastIndexOf","lastBracket","splitIndex","Math","max","substring","getNestedValue","obj","parts","replace","split","current","part","undefined","setNestedValue","value","Array","isArray"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucas-barake/effect-form",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Type-safe form builder powered by Effect Schema",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/FormAtoms.ts CHANGED
@@ -1,13 +1,4 @@
1
- /**
2
- * Atom infrastructure for form state management.
3
- *
4
- * This module provides the core atom infrastructure that framework adapters
5
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
6
- *
7
- * @since 1.0.0
8
- */
9
1
  import * as Atom from "@effect-atom/atom/Atom"
10
- import type * as Registry from "@effect-atom/atom/Registry"
11
2
  import * as Effect from "effect/Effect"
12
3
  import { pipe } from "effect/Function"
13
4
  import * as Option from "effect/Option"
@@ -16,8 +7,9 @@ import * as Schema from "effect/Schema"
16
7
  import * as Field from "./Field.js"
17
8
  import * as FormBuilder from "./FormBuilder.js"
18
9
  import { recalculateDirtyFieldsForArray, recalculateDirtySubtree } from "./internal/dirty.js"
19
- import { getNestedValue, setNestedValue } from "./internal/path.js"
10
+ import { getNestedValue, isPathUnderRoot, setNestedValue } from "./internal/path.js"
20
11
  import { createWeakRegistry, type WeakRegistry } from "./internal/weak-registry.js"
12
+ import * as Validation from "./Validation.js"
21
13
 
22
14
  /**
23
15
  * Atoms for a single field.
@@ -38,9 +30,10 @@ export interface FieldAtoms {
38
30
  * @since 1.0.0
39
31
  * @category Models
40
32
  */
41
- export interface FormAtomsConfig<TFields extends Field.FieldsRecord, R> {
33
+ export interface FormAtomsConfig<TFields extends Field.FieldsRecord, R, A, E> {
42
34
  readonly runtime: Atom.AtomRuntime<R, any>
43
35
  readonly formBuilder: FormBuilder.FormBuilder<TFields, R>
36
+ readonly onSubmit: (decoded: Field.DecodedFromFields<TFields>, get: Atom.FnContext) => A | Effect.Effect<A, E, R>
44
37
  }
45
38
 
46
39
  /**
@@ -63,7 +56,7 @@ export type FieldRefs<TFields extends Field.FieldsRecord> = {
63
56
  * @since 1.0.0
64
57
  * @category Models
65
58
  */
66
- export interface FormAtoms<TFields extends Field.FieldsRecord, R> {
59
+ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E = never> {
67
60
  readonly stateAtom: Atom.Writable<
68
61
  Option.Option<FormBuilder.FormState<TFields>>,
69
62
  Option.Option<FormBuilder.FormState<TFields>>
@@ -75,12 +68,8 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R> {
75
68
  readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>
76
69
  readonly changedSinceSubmitFieldsAtom: Atom.Atom<ReadonlySet<string>>
77
70
  readonly hasChangedSinceSubmitAtom: Atom.Atom<boolean>
78
- readonly onSubmitAtom: Atom.Writable<
79
- Atom.AtomResultFn<Field.DecodedFromFields<TFields>, unknown, unknown> | null,
80
- Atom.AtomResultFn<Field.DecodedFromFields<TFields>, unknown, unknown> | null
81
- >
82
71
 
83
- readonly decodeAndSubmit: Atom.AtomResultFn<Field.EncodedFromFields<TFields>, unknown, unknown>
72
+ readonly submitAtom: Atom.AtomResultFn<void, A, E | ParseResult.ParseError>
84
73
 
85
74
  readonly combinedSchema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>
86
75
 
@@ -96,9 +85,14 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R> {
96
85
 
97
86
  readonly getOrCreateFieldAtoms: (fieldPath: string) => FieldAtoms
98
87
 
99
- readonly resetValidationAtoms: (registry: Registry.Registry) => void
88
+ readonly resetValidationAtoms: (ctx: { set: <R, W>(atom: Atom.Writable<R, W>, value: W) => void }) => void
100
89
 
101
90
  readonly operations: FormOperations<TFields>
91
+
92
+ readonly resetAtom: Atom.Writable<void, void>
93
+ readonly revertToLastSubmitAtom: Atom.Writable<void, void>
94
+ readonly setValuesAtom: Atom.Writable<void, Field.EncodedFromFields<TFields>>
95
+ readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)>
102
96
  }
103
97
 
104
98
  /**
@@ -191,9 +185,9 @@ export interface FormOperations<TFields extends Field.FieldsRecord> {
191
185
  * @since 1.0.0
192
186
  * @category Constructors
193
187
  */
194
- export const make = <TFields extends Field.FieldsRecord, R>(
195
- config: FormAtomsConfig<TFields, R>,
196
- ): FormAtoms<TFields, R> => {
188
+ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
189
+ config: FormAtomsConfig<TFields, R, A, E>,
190
+ ): FormAtoms<TFields, R, A, E> => {
197
191
  const { formBuilder, runtime } = config
198
192
  const { fields } = formBuilder
199
193
 
@@ -233,10 +227,6 @@ export const make = <TFields extends Field.FieldsRecord, R>(
233
227
  return get(changedSinceSubmitFieldsAtom).size > 0
234
228
  }).pipe(Atom.setIdleTTL(0))
235
229
 
236
- const onSubmitAtom = Atom.make<Atom.AtomResultFn<Field.DecodedFromFields<TFields>, unknown, unknown> | null>(
237
- null,
238
- ).pipe(Atom.setIdleTTL(0))
239
-
240
230
  const validationAtomsRegistry = createWeakRegistry<Atom.AtomResultFn<unknown, void, ParseResult.ParseError>>()
241
231
  const fieldAtomsRegistry = createWeakRegistry<FieldAtoms>()
242
232
 
@@ -312,26 +302,42 @@ export const make = <TFields extends Field.FieldsRecord, R>(
312
302
  return atoms
313
303
  }
314
304
 
315
- const resetValidationAtoms = (registry: Registry.Registry) => {
305
+ const resetValidationAtoms = (ctx: { set: <R, W>(atom: Atom.Writable<R, W>, value: W) => void }) => {
316
306
  for (const validationAtom of validationAtomsRegistry.values()) {
317
- registry.set(validationAtom, Atom.Reset)
307
+ ctx.set(validationAtom, Atom.Reset)
318
308
  }
319
309
  validationAtomsRegistry.clear()
320
310
  fieldAtomsRegistry.clear()
321
311
  }
322
312
 
323
- const decodeAndSubmit = runtime.fn<Field.EncodedFromFields<TFields>>()((values, get) =>
313
+ const submitAtom = runtime.fn<void>()((_void, get) =>
324
314
  Effect.gen(function*() {
325
- const decoded = yield* Schema.decodeUnknown(combinedSchema)(values) as Effect.Effect<
326
- Field.DecodedFromFields<TFields>,
327
- ParseResult.ParseError,
328
- R
329
- >
330
- const onSubmit = get(onSubmitAtom)!
331
- get.set(onSubmit, decoded)
332
- return yield* get.result(onSubmit, { suspendOnWaiting: true })
315
+ const state = get(stateAtom)
316
+ if (Option.isNone(state)) return yield* Effect.die("Form not initialized")
317
+ const values = state.value.values
318
+ get.set(crossFieldErrorsAtom, new Map())
319
+ const decoded = yield* pipe(
320
+ Schema.decodeUnknown(combinedSchema)(values) as Effect.Effect<
321
+ Field.DecodedFromFields<TFields>,
322
+ ParseResult.ParseError,
323
+ R
324
+ >,
325
+ Effect.tapError((parseError) =>
326
+ Effect.sync(() => {
327
+ const routedErrors = Validation.routeErrors(parseError)
328
+ get.set(crossFieldErrorsAtom, routedErrors)
329
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)))
330
+ })
331
+ ),
332
+ )
333
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)))
334
+ const result = config.onSubmit(decoded, get)
335
+ if (Effect.isEffect(result)) {
336
+ return yield* (result as Effect.Effect<A, E, R>)
337
+ }
338
+ return result as A
333
339
  })
334
- ).pipe(Atom.setIdleTTL(0)) as Atom.AtomResultFn<Field.EncodedFromFields<TFields>, unknown, unknown>
340
+ ).pipe(Atom.setIdleTTL(0)) as Atom.AtomResultFn<void, A, E | ParseResult.ParseError>
335
341
 
336
342
  const fieldRefs = Object.fromEntries(
337
343
  Object.keys(fields).map((key) => [key, FormBuilder.makeFieldRef(key)]),
@@ -481,6 +487,62 @@ export const make = <TFields extends Field.FieldsRecord, R>(
481
487
  },
482
488
  }
483
489
 
490
+ const resetAtom = Atom.fnSync<void>()((_: void, get) => {
491
+ const state = get(stateAtom)
492
+ if (Option.isNone(state)) return
493
+ get.set(stateAtom, Option.some(operations.createResetState(state.value)))
494
+ get.set(crossFieldErrorsAtom, new Map())
495
+ resetValidationAtoms(get)
496
+ get.set(submitAtom, Atom.Reset)
497
+ }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
498
+
499
+ const revertToLastSubmitAtom = Atom.fnSync<void>()((_: void, get) => {
500
+ const state = get(stateAtom)
501
+ if (Option.isNone(state)) return
502
+ get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)))
503
+ get.set(crossFieldErrorsAtom, new Map())
504
+ }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
505
+
506
+ const setValuesAtom = Atom.fnSync<Field.EncodedFromFields<TFields>>()((_values, get) => {
507
+ const state = get(stateAtom)
508
+ if (Option.isNone(state)) return
509
+ get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)))
510
+ get.set(crossFieldErrorsAtom, new Map())
511
+ }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
512
+
513
+ const setValueAtomsRegistry = createWeakRegistry<Atom.Writable<void, any>>()
514
+
515
+ const setValue = <S>(field: FormBuilder.FieldRef<S>): Atom.Writable<void, S | ((prev: S) => S)> => {
516
+ const cached = setValueAtomsRegistry.get(field.key)
517
+ if (cached) return cached
518
+
519
+ const atom = Atom.fnSync<S | ((prev: S) => S)>()((update, get) => {
520
+ const state = get(stateAtom)
521
+ if (Option.isNone(state)) return
522
+
523
+ const currentValue = getNestedValue(state.value.values, field.key) as S
524
+ const newValue = typeof update === "function"
525
+ ? (update as (prev: S) => S)(currentValue)
526
+ : update
527
+
528
+ get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)))
529
+
530
+ const currentErrors = get(crossFieldErrorsAtom)
531
+ const nextErrors = new Map<string, string>()
532
+ for (const [errorPath, message] of currentErrors) {
533
+ if (!isPathUnderRoot(errorPath, field.key)) {
534
+ nextErrors.set(errorPath, message)
535
+ }
536
+ }
537
+ if (nextErrors.size !== currentErrors.size) {
538
+ get.set(crossFieldErrorsAtom, nextErrors)
539
+ }
540
+ }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
541
+
542
+ setValueAtomsRegistry.set(field.key, atom)
543
+ return atom
544
+ }
545
+
484
546
  return {
485
547
  stateAtom,
486
548
  crossFieldErrorsAtom,
@@ -490,8 +552,7 @@ export const make = <TFields extends Field.FieldsRecord, R>(
490
552
  lastSubmittedValuesAtom,
491
553
  changedSinceSubmitFieldsAtom,
492
554
  hasChangedSinceSubmitAtom,
493
- onSubmitAtom,
494
- decodeAndSubmit,
555
+ submitAtom,
495
556
  combinedSchema,
496
557
  fieldRefs,
497
558
  validationAtomsRegistry,
@@ -500,5 +561,9 @@ export const make = <TFields extends Field.FieldsRecord, R>(
500
561
  getOrCreateFieldAtoms,
501
562
  resetValidationAtoms,
502
563
  operations,
503
- } as FormAtoms<TFields, R>
564
+ resetAtom,
565
+ revertToLastSubmitAtom,
566
+ setValuesAtom,
567
+ setValue,
568
+ } as FormAtoms<TFields, R, A, E>
504
569
  }
package/src/index.ts CHANGED
@@ -6,12 +6,10 @@
6
6
  export * as Field from "./Field.js"
7
7
 
8
8
  /**
9
- * Atom infrastructure for form state management.
10
- *
11
- * This module provides the core atom infrastructure that framework adapters
12
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
9
+ * Atoms for a single field.
13
10
  *
14
11
  * @since 1.0.0
12
+ * @category Models
15
13
  */
16
14
  export * as FormAtoms from "./FormAtoms.js"
17
15
 
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as Equal from "effect/Equal"
7
7
  import * as Utils from "effect/Utils"
8
- import { getNestedValue } from "./path.js"
8
+ import { getNestedValue, isPathUnderRoot } from "./path.js"
9
9
 
10
10
  /**
11
11
  * Recalculates dirty fields for an array after mutation.
@@ -18,9 +18,7 @@ export const recalculateDirtyFieldsForArray = (
18
18
  newItems: ReadonlyArray<unknown>,
19
19
  ): ReadonlySet<string> => {
20
20
  const nextDirty = new Set(
21
- Array.from(dirtyFields).filter(
22
- (path) => path !== arrayPath && !path.startsWith(arrayPath + ".") && !path.startsWith(arrayPath + "["),
23
- ),
21
+ Array.from(dirtyFields).filter((path) => !isPathUnderRoot(path, arrayPath)),
24
22
  )
25
23
 
26
24
  const initialItems = (getNestedValue(initialValues, arrayPath) ?? []) as ReadonlyArray<unknown>
@@ -64,7 +62,7 @@ export const recalculateDirtySubtree = (
64
62
  nextDirty.clear()
65
63
  } else {
66
64
  for (const path of nextDirty) {
67
- if (path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[")) {
65
+ if (isPathUnderRoot(path, rootPath)) {
68
66
  nextDirty.delete(path)
69
67
  }
70
68
  }
@@ -27,6 +27,18 @@ export const schemaPathToFieldPath = (path: ReadonlyArray<PropertyKey>): string
27
27
  return result
28
28
  }
29
29
 
30
+ /**
31
+ * Checks if a path matches a root path or is a descendant of it.
32
+ * Handles both dot notation (root.child) and bracket notation (root[0]).
33
+ *
34
+ * @example
35
+ * isPathUnderRoot("items[0].name", "items[0]") // true
36
+ * isPathUnderRoot("items[0].name", "items") // true
37
+ * isPathUnderRoot("other", "items") // false
38
+ */
39
+ export const isPathUnderRoot = (path: string, rootPath: string): boolean =>
40
+ path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[")
41
+
30
42
  /**
31
43
  * Checks if a field path or any of its parent paths are in the dirty set.
32
44
  */