@lucas-barake/effect-form 0.11.0 → 0.13.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.
@@ -70,7 +70,12 @@ const make = config => {
70
70
  } = formBuilder;
71
71
  const combinedSchema = FormBuilder.buildSchema(formBuilder);
72
72
  const stateAtom = Atom.make(Option.none()).pipe(Atom.setIdleTTL(0));
73
- const crossFieldErrorsAtom = Atom.make(new Map()).pipe(Atom.setIdleTTL(0));
73
+ const errorsAtom = Atom.make(new Map()).pipe(Atom.setIdleTTL(0));
74
+ const rootErrorAtom = Atom.readable(get => {
75
+ const errors = get(errorsAtom);
76
+ const entry = errors.get("");
77
+ return entry ? Option.some(entry.message) : Option.none();
78
+ }).pipe(Atom.setIdleTTL(0));
74
79
  const valuesAtom = Atom.readable(get => Option.map(get(stateAtom), state => state.values)).pipe(Atom.setIdleTTL(0));
75
80
  const dirtyFieldsAtom = Atom.readable(get => Option.match(get(stateAtom), {
76
81
  onNone: () => new Set(),
@@ -125,16 +130,16 @@ const make = config => {
125
130
  touched: (0, _Path.setNestedValue)(currentState.touched, fieldPath, value)
126
131
  }));
127
132
  }).pipe(Atom.setIdleTTL(0));
128
- const crossFieldErrorAtom = Atom.readable(get => {
129
- const errors = get(crossFieldErrorsAtom);
130
- const error = errors.get(fieldPath);
131
- return error !== undefined ? Option.some(error) : Option.none();
133
+ const errorAtom = Atom.readable(get => {
134
+ const errors = get(errorsAtom);
135
+ const entry = errors.get(fieldPath);
136
+ return entry ? Option.some(entry) : Option.none();
132
137
  }).pipe(Atom.setIdleTTL(0));
133
138
  const atoms = {
134
139
  valueAtom,
135
140
  initialValueAtom,
136
141
  touchedAtom,
137
- crossFieldErrorAtom
142
+ errorAtom
138
143
  };
139
144
  fieldAtomsRegistry.set(fieldPath, atoms);
140
145
  return atoms;
@@ -150,10 +155,12 @@ const make = config => {
150
155
  const state = get(stateAtom);
151
156
  if (Option.isNone(state)) return yield* Effect.die("Form not initialized");
152
157
  const values = state.value.values;
153
- get.set(crossFieldErrorsAtom, new Map());
154
- const decoded = yield* (0, _Function.pipe)(Schema.decodeUnknown(combinedSchema)(values), Effect.tapError(parseError => Effect.sync(() => {
155
- const routedErrors = Validation.routeErrors(parseError);
156
- get.set(crossFieldErrorsAtom, routedErrors);
158
+ get.set(errorsAtom, new Map());
159
+ const decoded = yield* (0, _Function.pipe)(Schema.decodeUnknown(combinedSchema, {
160
+ errors: "all"
161
+ })(values), Effect.tapError(parseError => Effect.sync(() => {
162
+ const routedErrors = Validation.routeErrorsWithSource(parseError);
163
+ get.set(errorsAtom, routedErrors);
157
164
  get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
158
165
  })));
159
166
  const submitState = operations.createSubmitState(state.value);
@@ -286,7 +293,7 @@ const make = config => {
286
293
  const state = get(stateAtom);
287
294
  if (Option.isNone(state)) return;
288
295
  get.set(stateAtom, Option.some(operations.createResetState(state.value)));
289
- get.set(crossFieldErrorsAtom, new Map());
296
+ get.set(errorsAtom, new Map());
290
297
  resetValidationAtoms(get);
291
298
  get.set(submitAtom, Atom.Reset);
292
299
  }, {
@@ -296,7 +303,7 @@ const make = config => {
296
303
  const state = get(stateAtom);
297
304
  if (Option.isNone(state)) return;
298
305
  get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)));
299
- get.set(crossFieldErrorsAtom, new Map());
306
+ get.set(errorsAtom, new Map());
300
307
  }, {
301
308
  initialValue: undefined
302
309
  }).pipe(Atom.setIdleTTL(0));
@@ -304,7 +311,7 @@ const make = config => {
304
311
  const state = get(stateAtom);
305
312
  if (Option.isNone(state)) return;
306
313
  get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)));
307
- get.set(crossFieldErrorsAtom, new Map());
314
+ get.set(errorsAtom, new Map());
308
315
  }, {
309
316
  initialValue: undefined
310
317
  }).pipe(Atom.setIdleTTL(0));
@@ -318,16 +325,7 @@ const make = config => {
318
325
  const currentValue = (0, _Path.getNestedValue)(state.value.values, field.key);
319
326
  const newValue = typeof update === "function" ? update(currentValue) : update;
320
327
  get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)));
321
- const currentErrors = get(crossFieldErrorsAtom);
322
- const nextErrors = new Map();
323
- for (const [errorPath, message] of currentErrors) {
324
- if (!(0, _Path.isPathUnderRoot)(errorPath, field.key)) {
325
- nextErrors.set(errorPath, message);
326
- }
327
- }
328
- if (nextErrors.size !== currentErrors.size) {
329
- get.set(crossFieldErrorsAtom, nextErrors);
330
- }
328
+ // Don't clear errors - display logic handles showing/hiding based on source + validation state
331
329
  }, {
332
330
  initialValue: undefined
333
331
  }).pipe(Atom.setIdleTTL(0));
@@ -341,9 +339,16 @@ const make = config => {
341
339
  publicFieldAtomRegistry.set(field.key, safeAtom);
342
340
  return safeAtom;
343
341
  };
342
+ const mountAtom = Atom.readable(get => {
343
+ get(stateAtom);
344
+ get(errorsAtom);
345
+ get(submitAtom);
346
+ }).pipe(Atom.setIdleTTL(0));
347
+ const keepAliveActiveAtom = Atom.make(false).pipe(Atom.setIdleTTL(0));
344
348
  return {
345
349
  stateAtom,
346
- crossFieldErrorsAtom,
350
+ errorsAtom,
351
+ rootErrorAtom,
347
352
  valuesAtom,
348
353
  dirtyFieldsAtom,
349
354
  isDirtyAtom,
@@ -364,7 +369,9 @@ const make = config => {
364
369
  revertToLastSubmitAtom,
365
370
  setValuesAtom,
366
371
  setValue,
367
- getFieldAtom
372
+ getFieldAtom,
373
+ mountAtom,
374
+ keepAliveActiveAtom
368
375
  };
369
376
  };
370
377
  exports.make = make;
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.js","names":["Atom","_interopRequireWildcard","require","Effect","_Function","Option","Schema","Field","FormBuilder","_dirty","_weakRegistry","_Path","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","valuesAtom","readable","map","state","values","dirtyFieldsAtom","match","onNone","Set","onSome","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","flatMap","lastSubmittedValues","changedSinceSubmitFieldsAtom","lastSubmitted","recalculateDirtySubtree","encoded","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","createWeakRegistry","fieldAtomsRegistry","publicFieldAtomRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","getOrCreateFieldAtoms","valueAtom","writable","getNestedValue","getOrThrow","ctx","currentState","some","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","setNestedValue","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","args","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","fromEntries","keys","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","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","lastEncoded","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message","isPathUnderRoot","getFieldAtom","safeAtom","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","_weakRegistry","_Path","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","errorsAtom","Map","rootErrorAtom","readable","errors","entry","some","message","valuesAtom","map","state","values","dirtyFieldsAtom","match","onNone","Set","onSome","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","flatMap","lastSubmittedValues","changedSinceSubmitFieldsAtom","lastSubmitted","recalculateDirtySubtree","encoded","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","createWeakRegistry","fieldAtomsRegistry","publicFieldAtomRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","getOrCreateFieldAtoms","valueAtom","writable","getNestedValue","getOrThrow","ctx","currentState","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","setNestedValue","errorAtom","atoms","resetValidationAtoms","Reset","clear","submitAtom","args","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrorsWithSource","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","fromEntries","keys","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","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","lastEncoded","resetAtom","fnSync","initialValue","undefined","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","getFieldAtom","safeAtom","mountAtom","keepAliveActiveAtom","exports"],"sources":["../../src/FormAtoms.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.routeErrors = exports.extractFirstError = void 0;
6
+ exports.routeErrorsWithSource = exports.routeErrors = exports.extractFirstError = void 0;
7
7
  var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
8
8
  var ParseResult = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ParseResult"));
9
9
  var _Path = /*#__PURE__*/require("./Path.js");
@@ -31,6 +31,33 @@ function _interopRequireWildcard(e, t) {
31
31
  * Validation utilities for form error handling.
32
32
  */
33
33
 
34
+ const getBaseAST = ast => {
35
+ switch (ast._tag) {
36
+ case "Refinement":
37
+ case "Transformation":
38
+ return getBaseAST(ast.from);
39
+ default:
40
+ return ast;
41
+ }
42
+ };
43
+ /**
44
+ * Returns true if the AST represents a composite type where refinements indicate cross-field validation.
45
+ * Covers: Schema.Struct, Class, Tuple, Union, Suspend.
46
+ */
47
+ const isCompositeType = ast => {
48
+ const base = getBaseAST(ast);
49
+ switch (base._tag) {
50
+ case "TypeLiteral": // Schema.Struct
51
+ case "TupleType": // Schema.Tuple
52
+ case "Declaration": // Schema.Class, Schema.TaggedClass
53
+ case "Union": // Schema.Union
54
+ case "Suspend":
55
+ // Recursive schemas
56
+ return true;
57
+ default:
58
+ return false;
59
+ }
60
+ };
34
61
  /**
35
62
  * Extracts the first error message from a ParseError.
36
63
  *
@@ -62,4 +89,82 @@ const routeErrors = error => {
62
89
  return result;
63
90
  };
64
91
  exports.routeErrors = routeErrors;
92
+ const determineErrorSources = error => {
93
+ const sources = new Map();
94
+ const walk = (issue, path, source) => {
95
+ switch (issue._tag) {
96
+ case "Refinement":
97
+ if (issue.kind === "Predicate" && isCompositeType(issue.ast.from) && path.length === 0) {
98
+ walk(issue.issue, path, "refinement");
99
+ } else {
100
+ walk(issue.issue, path, source);
101
+ }
102
+ break;
103
+ case "Pointer":
104
+ {
105
+ const pointerPath = Array.isArray(issue.path) ? issue.path : [issue.path];
106
+ walk(issue.issue, [...path, ...pointerPath], source);
107
+ break;
108
+ }
109
+ case "Composite":
110
+ {
111
+ const issues = Array.isArray(issue.issues) ? issue.issues : [issue.issues];
112
+ for (const sub of issues) {
113
+ walk(sub, path, source);
114
+ }
115
+ break;
116
+ }
117
+ case "Type":
118
+ case "Missing":
119
+ case "Unexpected":
120
+ case "Forbidden":
121
+ {
122
+ const fieldPath = (0, _Path.schemaPathToFieldPath)(path);
123
+ const key = fieldPath ?? "";
124
+ if (!sources.has(key)) {
125
+ sources.set(key, source);
126
+ }
127
+ break;
128
+ }
129
+ case "Transformation":
130
+ if (issue.kind === "Transformation" && issue.ast.transformation._tag === "FinalTransformation" && isCompositeType(issue.ast.from) && path.length === 0) {
131
+ walk(issue.issue, path, "refinement");
132
+ } else {
133
+ walk(issue.issue, path, source);
134
+ }
135
+ break;
136
+ }
137
+ };
138
+ walk(error.issue, [], "field");
139
+ return sources;
140
+ };
141
+ /**
142
+ * Routes validation errors with source tracking.
143
+ *
144
+ * Source determination:
145
+ * - `kind: "Predicate"` on composite types → "refinement" (cross-field validation)
146
+ * - All other errors → "field" (per-field schema validation)
147
+ *
148
+ * Empty string key ("") stores root-level errors (refinements without specific paths).
149
+ *
150
+ * @category Error Handling
151
+ */
152
+ const routeErrorsWithSource = error => {
153
+ const result = new Map();
154
+ const formattedIssues = ParseResult.ArrayFormatter.formatErrorSync(error);
155
+ const sources = determineErrorSources(error);
156
+ for (const issue of formattedIssues) {
157
+ const fieldPath = (0, _Path.schemaPathToFieldPath)(issue.path);
158
+ const key = fieldPath ?? "";
159
+ if (!result.has(key)) {
160
+ const source = sources.get(key) ?? "field";
161
+ result.set(key, {
162
+ message: issue.message,
163
+ source
164
+ });
165
+ }
166
+ }
167
+ return result;
168
+ };
169
+ exports.routeErrorsWithSource = routeErrorsWithSource;
65
170
  //# sourceMappingURL=Validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validation.js","names":["Option","_interopRequireWildcard","require","ParseResult","_Path","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","extractFirstError","error","issues","ArrayFormatter","formatErrorSync","length","none","some","message","exports","routeErrors","result","Map","issue","fieldPath","schemaPathToFieldPath","path"],"sources":["../../src/Validation.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,WAAA,gBAAAF,uBAAA,cAAAC,OAAA;AACA,IAAAE,KAAA,gBAAAF,OAAA;AAAiD,SAAAD,wBAAAI,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAN,uBAAA,YAAAA,CAAAI,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;AALjD;;;;AAOA;;;;;AAKO,MAAMkB,iBAAiB,GAAIC,KAA6B,IAA2B;EACxF,MAAMC,MAAM,GAAGvB,WAAW,CAACwB,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EAChE,IAAIC,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;IACvB,OAAO7B,MAAM,CAAC8B,IAAI,EAAE;EACtB;EACA,OAAO9B,MAAM,CAAC+B,IAAI,CAACL,MAAM,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC;AACvC,CAAC;AAED;;;;;;AAAAC,OAAA,CAAAT,iBAAA,GAAAA,iBAAA;AAMO,MAAMU,WAAW,GAAIT,KAA6B,IAAyB;EAChF,MAAMU,MAAM,GAAG,IAAIC,GAAG,EAAkB;EACxC,MAAMV,MAAM,GAAGvB,WAAW,CAACwB,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EAEhE,KAAK,MAAMY,KAAK,IAAIX,MAAM,EAAE;IAC1B,MAAMY,SAAS,GAAG,IAAAlC,KAAA,CAAAmC,qBAAqB,EAACF,KAAK,CAACG,IAAI,CAAC;IACnD,IAAIF,SAAS,IAAI,CAACH,MAAM,CAACnB,GAAG,CAACsB,SAAS,CAAC,EAAE;MACvCH,MAAM,CAACjB,GAAG,CAACoB,SAAS,EAAED,KAAK,CAACL,OAAO,CAAC;IACtC;EACF;EAEA,OAAOG,MAAM;AACf,CAAC;AAAAF,OAAA,CAAAC,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"file":"Validation.js","names":["Option","_interopRequireWildcard","require","ParseResult","_Path","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getBaseAST","ast","_tag","from","isCompositeType","base","extractFirstError","error","issues","ArrayFormatter","formatErrorSync","length","none","some","message","exports","routeErrors","result","Map","issue","fieldPath","schemaPathToFieldPath","path","determineErrorSources","sources","walk","source","kind","pointerPath","Array","isArray","sub","key","transformation","routeErrorsWithSource","formattedIssues"],"sources":["../../src/Validation.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,WAAA,gBAAAF,uBAAA,cAAAC,OAAA;AAEA,IAAAE,KAAA,gBAAAF,OAAA;AAAiD,SAAAD,wBAAAI,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAN,uBAAA,YAAAA,CAAAI,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;AANjD;;;;AA2BA,MAAMkB,UAAU,GAAIC,GAAY,IAAa;EAC3C,QAAQA,GAAG,CAACC,IAAI;IACd,KAAK,YAAY;IACjB,KAAK,gBAAgB;MACnB,OAAOF,UAAU,CAACC,GAAG,CAACE,IAAI,CAAC;IAC7B;MACE,OAAOF,GAAG;EACd;AACF,CAAC;AAED;;;;AAIA,MAAMG,eAAe,GAAIH,GAAY,IAAa;EAChD,MAAMI,IAAI,GAAGL,UAAU,CAACC,GAAG,CAAC;EAC5B,QAAQI,IAAI,CAACH,IAAI;IACf,KAAK,aAAa,CAAC,CAAC;IACpB,KAAK,WAAW,CAAC,CAAC;IAClB,KAAK,aAAa,CAAC,CAAC;IACpB,KAAK,OAAO,CAAC,CAAC;IACd,KAAK,SAAS;MAAE;MACd,OAAO,IAAI;IACb;MACE,OAAO,KAAK;EAChB;AACF,CAAC;AAED;;;;;AAKO,MAAMI,iBAAiB,GAAIC,KAA6B,IAA2B;EACxF,MAAMC,MAAM,GAAG7B,WAAW,CAAC8B,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EAChE,IAAIC,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;IACvB,OAAOnC,MAAM,CAACoC,IAAI,EAAE;EACtB;EACA,OAAOpC,MAAM,CAACqC,IAAI,CAACL,MAAM,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC;AACvC,CAAC;AAED;;;;;;AAAAC,OAAA,CAAAT,iBAAA,GAAAA,iBAAA;AAMO,MAAMU,WAAW,GAAIT,KAA6B,IAAyB;EAChF,MAAMU,MAAM,GAAG,IAAIC,GAAG,EAAkB;EACxC,MAAMV,MAAM,GAAG7B,WAAW,CAAC8B,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EAEhE,KAAK,MAAMY,KAAK,IAAIX,MAAM,EAAE;IAC1B,MAAMY,SAAS,GAAG,IAAAxC,KAAA,CAAAyC,qBAAqB,EAACF,KAAK,CAACG,IAAI,CAAC;IACnD,IAAIF,SAAS,IAAI,CAACH,MAAM,CAACzB,GAAG,CAAC4B,SAAS,CAAC,EAAE;MACvCH,MAAM,CAACvB,GAAG,CAAC0B,SAAS,EAAED,KAAK,CAACL,OAAO,CAAC;IACtC;EACF;EAEA,OAAOG,MAAM;AACf,CAAC;AAAAF,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAED,MAAMO,qBAAqB,GAAIhB,KAA6B,IAA8B;EACxF,MAAMiB,OAAO,GAAG,IAAIN,GAAG,EAAuB;EAE9C,MAAMO,IAAI,GAAGA,CAACN,KAA6B,EAAEG,IAAgC,EAAEI,MAAmB,KAAU;IAC1G,QAAQP,KAAK,CAACjB,IAAI;MAChB,KAAK,YAAY;QACf,IAAIiB,KAAK,CAACQ,IAAI,KAAK,WAAW,IAAIvB,eAAe,CAACe,KAAK,CAAClB,GAAG,CAACE,IAAI,CAAC,IAAImB,IAAI,CAACX,MAAM,KAAK,CAAC,EAAE;UACtFc,IAAI,CAACN,KAAK,CAACA,KAAK,EAAEG,IAAI,EAAE,YAAY,CAAC;QACvC,CAAC,MAAM;UACLG,IAAI,CAACN,KAAK,CAACA,KAAK,EAAEG,IAAI,EAAEI,MAAM,CAAC;QACjC;QACA;MACF,KAAK,SAAS;QAAE;UACd,MAAME,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACX,KAAK,CAACG,IAAI,CAAC,GAAGH,KAAK,CAACG,IAAI,GAAG,CAACH,KAAK,CAACG,IAAI,CAAC;UACzEG,IAAI,CAACN,KAAK,CAACA,KAAK,EAAE,CAAC,GAAGG,IAAI,EAAE,GAAGM,WAAW,CAAC,EAAEF,MAAM,CAAC;UACpD;QACF;MACA,KAAK,WAAW;QAAE;UAChB,MAAMlB,MAAM,GAAGqB,KAAK,CAACC,OAAO,CAACX,KAAK,CAACX,MAAM,CAAC,GAAGW,KAAK,CAACX,MAAM,GAAG,CAACW,KAAK,CAACX,MAAM,CAAC;UAC1E,KAAK,MAAMuB,GAAG,IAAIvB,MAAM,EAAE;YACxBiB,IAAI,CAACM,GAAG,EAAET,IAAI,EAAEI,MAAM,CAAC;UACzB;UACA;QACF;MACA,KAAK,MAAM;MACX,KAAK,SAAS;MACd,KAAK,YAAY;MACjB,KAAK,WAAW;QAAE;UAChB,MAAMN,SAAS,GAAG,IAAAxC,KAAA,CAAAyC,qBAAqB,EAACC,IAAI,CAAC;UAC7C,MAAMU,GAAG,GAAGZ,SAAS,IAAI,EAAE;UAC3B,IAAI,CAACI,OAAO,CAAChC,GAAG,CAACwC,GAAG,CAAC,EAAE;YACrBR,OAAO,CAAC9B,GAAG,CAACsC,GAAG,EAAEN,MAAM,CAAC;UAC1B;UACA;QACF;MACA,KAAK,gBAAgB;QACnB,IACEP,KAAK,CAACQ,IAAI,KAAK,gBAAgB,IAC/BR,KAAK,CAAClB,GAAG,CAACgC,cAAc,CAAC/B,IAAI,KAAK,qBAAqB,IACvDE,eAAe,CAACe,KAAK,CAAClB,GAAG,CAACE,IAAI,CAAC,IAC/BmB,IAAI,CAACX,MAAM,KAAK,CAAC,EACjB;UACAc,IAAI,CAACN,KAAK,CAACA,KAAK,EAAEG,IAAI,EAAE,YAAY,CAAC;QACvC,CAAC,MAAM;UACLG,IAAI,CAACN,KAAK,CAACA,KAAK,EAAEG,IAAI,EAAEI,MAAM,CAAC;QACjC;QACA;IACJ;EACF,CAAC;EAEDD,IAAI,CAAClB,KAAK,CAACY,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC;EAC9B,OAAOK,OAAO;AAChB,CAAC;AAED;;;;;;;;;;;AAWO,MAAMU,qBAAqB,GAAI3B,KAA6B,IAA6B;EAC9F,MAAMU,MAAM,GAAG,IAAIC,GAAG,EAAsB;EAC5C,MAAMiB,eAAe,GAAGxD,WAAW,CAAC8B,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EACzE,MAAMiB,OAAO,GAAGD,qBAAqB,CAAChB,KAAK,CAAC;EAE5C,KAAK,MAAMY,KAAK,IAAIgB,eAAe,EAAE;IACnC,MAAMf,SAAS,GAAG,IAAAxC,KAAA,CAAAyC,qBAAqB,EAACF,KAAK,CAACG,IAAI,CAAC;IACnD,MAAMU,GAAG,GAAGZ,SAAS,IAAI,EAAE;IAC3B,IAAI,CAACH,MAAM,CAACzB,GAAG,CAACwC,GAAG,CAAC,EAAE;MACpB,MAAMN,MAAM,GAAGF,OAAO,CAAC/B,GAAG,CAACuC,GAAG,CAAC,IAAI,OAAO;MAC1Cf,MAAM,CAACvB,GAAG,CAACsC,GAAG,EAAE;QAAElB,OAAO,EAAEK,KAAK,CAACL,OAAO;QAAEY;MAAM,CAAE,CAAC;IACrD;EACF;EAEA,OAAOT,MAAM;AACf,CAAC;AAAAF,OAAA,CAAAmB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ import * as Schema from "effect/Schema";
6
6
  import * as Field from "./Field.js";
7
7
  import * as FormBuilder from "./FormBuilder.js";
8
8
  import { type WeakRegistry } from "./internal/weak-registry.js";
9
+ import * as Validation from "./Validation.js";
9
10
  /**
10
11
  * Atoms for a single field.
11
12
  *
@@ -15,7 +16,7 @@ export interface FieldAtoms {
15
16
  readonly valueAtom: Atom.Writable<unknown, unknown>;
16
17
  readonly initialValueAtom: Atom.Atom<unknown>;
17
18
  readonly touchedAtom: Atom.Writable<boolean, boolean>;
18
- readonly crossFieldErrorAtom: Atom.Atom<Option.Option<string>>;
19
+ readonly errorAtom: Atom.Atom<Option.Option<Validation.ErrorEntry>>;
19
20
  }
20
21
  /**
21
22
  * Configuration for creating form atoms.
@@ -46,7 +47,8 @@ export type FieldRefs<TFields extends Field.FieldsRecord> = {
46
47
  */
47
48
  export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E = never, SubmitArgs = void> {
48
49
  readonly stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<TFields>>, Option.Option<FormBuilder.FormState<TFields>>>;
49
- readonly crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>;
50
+ readonly errorsAtom: Atom.Writable<Map<string, Validation.ErrorEntry>, Map<string, Validation.ErrorEntry>>;
51
+ readonly rootErrorAtom: Atom.Atom<Option.Option<string>>;
50
52
  readonly valuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
51
53
  readonly dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>;
52
54
  readonly isDirtyAtom: Atom.Atom<boolean>;
@@ -70,6 +72,26 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E =
70
72
  readonly setValuesAtom: Atom.Writable<void, Field.EncodedFromFields<TFields>>;
71
73
  readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)>;
72
74
  readonly getFieldAtom: <S>(field: FormBuilder.FieldRef<S>) => Atom.Atom<Option.Option<S>>;
75
+ /**
76
+ * Root anchor atom for the form's dependency graph.
77
+ * Mount this atom to keep all form state alive even when field components unmount.
78
+ *
79
+ * Useful for:
80
+ * - Multi-step wizards where steps unmount but state should persist
81
+ * - Conditional fields (toggles) where state should survive visibility changes
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * // Keep form state alive at wizard root level
86
+ * function Wizard() {
87
+ * useAtomMount(step1Form.mount)
88
+ * useAtomMount(step2Form.mount)
89
+ * return currentStep === 1 ? <Step1 /> : <Step2 />
90
+ * }
91
+ * ```
92
+ */
93
+ readonly mountAtom: Atom.Atom<void>;
94
+ readonly keepAliveActiveAtom: Atom.Writable<boolean, boolean>;
73
95
  }
74
96
  /**
75
97
  * Pure state operations for form manipulation.
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAInF;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACnD,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7C,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrD,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;CAC/D;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI;IAC7F,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE;QACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAClD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAClD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAA;KAC7B,KACE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,IAAI;IAC1D,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAC5E,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GACpD,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAC7D,KAAK;CACV,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI;IACtG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAC/B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAC9C,CAAA;IACD,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACtF,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/E,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChG,QAAQ,CAAC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,yBAAyB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEtD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IAEjF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAE7G,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAEtC,QAAQ,CAAC,uBAAuB,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAA;IACxG,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAErD,QAAQ,CAAC,yBAAyB,EAAE,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,KACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAE7D,QAAQ,CAAC,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,CAAA;IAEjE,QAAQ,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IAE1G,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAE5C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7C,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1D,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7E,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEnG,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;CAC1F;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY;IAChE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEhH,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEpG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAErG,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,KACX,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,KACrC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,eAAe,EAAE,CACxB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,KACb,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,eAAe,EAAE,CACxB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAC7B,KAAK,CAAC,EAAE,OAAO,KACZ,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,eAAe,EAAE,CACxB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,KACV,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,KACX,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;CACvG;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,EACjF,QAAQ,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KACpD,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAwZxC,CAAA"}
1
+ {"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,23 @@
3
3
  */
4
4
  import * as Option from "effect/Option";
5
5
  import * as ParseResult from "effect/ParseResult";
6
+ /**
7
+ * Source of a validation error.
8
+ * - 'field': Error from field schema validation (e.g., minLength, pattern)
9
+ * - 'refinement': Error from cross-field refinement (e.g., password !== confirm)
10
+ *
11
+ * @category Models
12
+ */
13
+ export type ErrorSource = "field" | "refinement";
14
+ /**
15
+ * A validation error entry with its source.
16
+ *
17
+ * @category Models
18
+ */
19
+ export interface ErrorEntry {
20
+ readonly message: string;
21
+ readonly source: ErrorSource;
22
+ }
6
23
  /**
7
24
  * Extracts the first error message from a ParseError.
8
25
  *
@@ -16,4 +33,16 @@ export declare const extractFirstError: (error: ParseResult.ParseError) => Optio
16
33
  * @category Error Handling
17
34
  */
18
35
  export declare const routeErrors: (error: ParseResult.ParseError) => Map<string, string>;
36
+ /**
37
+ * Routes validation errors with source tracking.
38
+ *
39
+ * Source determination:
40
+ * - `kind: "Predicate"` on composite types → "refinement" (cross-field validation)
41
+ * - All other errors → "field" (per-field schema validation)
42
+ *
43
+ * Empty string key ("") stores root-level errors (refinements without specific paths).
44
+ *
45
+ * @category Error Handling
46
+ */
47
+ export declare const routeErrorsWithSource: (error: ParseResult.ParseError) => Map<string, ErrorEntry>;
19
48
  //# sourceMappingURL=Validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../../src/Validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAGjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAMrF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAY7E,CAAA"}
1
+ {"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../../src/Validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAIjD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,YAAY,CAAA;AAEhD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AA8BD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAMrF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAY7E,CAAA;AAwDD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAe3F,CAAA"}
@@ -7,7 +7,7 @@ import * as Field from "./Field.js";
7
7
  import * as FormBuilder from "./FormBuilder.js";
8
8
  import { recalculateDirtyFieldsForArray, recalculateDirtySubtree } from "./internal/dirty.js";
9
9
  import { createWeakRegistry } from "./internal/weak-registry.js";
10
- import { getNestedValue, isPathUnderRoot, setNestedValue } from "./Path.js";
10
+ import { getNestedValue, setNestedValue } from "./Path.js";
11
11
  import * as Validation from "./Validation.js";
12
12
  /**
13
13
  * Creates the complete form atoms infrastructure.
@@ -44,7 +44,12 @@ export const make = config => {
44
44
  } = formBuilder;
45
45
  const combinedSchema = FormBuilder.buildSchema(formBuilder);
46
46
  const stateAtom = Atom.make(Option.none()).pipe(Atom.setIdleTTL(0));
47
- const crossFieldErrorsAtom = Atom.make(new Map()).pipe(Atom.setIdleTTL(0));
47
+ const errorsAtom = Atom.make(new Map()).pipe(Atom.setIdleTTL(0));
48
+ const rootErrorAtom = Atom.readable(get => {
49
+ const errors = get(errorsAtom);
50
+ const entry = errors.get("");
51
+ return entry ? Option.some(entry.message) : Option.none();
52
+ }).pipe(Atom.setIdleTTL(0));
48
53
  const valuesAtom = Atom.readable(get => Option.map(get(stateAtom), state => state.values)).pipe(Atom.setIdleTTL(0));
49
54
  const dirtyFieldsAtom = Atom.readable(get => Option.match(get(stateAtom), {
50
55
  onNone: () => new Set(),
@@ -99,16 +104,16 @@ export const make = config => {
99
104
  touched: setNestedValue(currentState.touched, fieldPath, value)
100
105
  }));
101
106
  }).pipe(Atom.setIdleTTL(0));
102
- const crossFieldErrorAtom = Atom.readable(get => {
103
- const errors = get(crossFieldErrorsAtom);
104
- const error = errors.get(fieldPath);
105
- return error !== undefined ? Option.some(error) : Option.none();
107
+ const errorAtom = Atom.readable(get => {
108
+ const errors = get(errorsAtom);
109
+ const entry = errors.get(fieldPath);
110
+ return entry ? Option.some(entry) : Option.none();
106
111
  }).pipe(Atom.setIdleTTL(0));
107
112
  const atoms = {
108
113
  valueAtom,
109
114
  initialValueAtom,
110
115
  touchedAtom,
111
- crossFieldErrorAtom
116
+ errorAtom
112
117
  };
113
118
  fieldAtomsRegistry.set(fieldPath, atoms);
114
119
  return atoms;
@@ -124,10 +129,12 @@ export const make = config => {
124
129
  const state = get(stateAtom);
125
130
  if (Option.isNone(state)) return yield* Effect.die("Form not initialized");
126
131
  const values = state.value.values;
127
- get.set(crossFieldErrorsAtom, new Map());
128
- const decoded = yield* pipe(Schema.decodeUnknown(combinedSchema)(values), Effect.tapError(parseError => Effect.sync(() => {
129
- const routedErrors = Validation.routeErrors(parseError);
130
- get.set(crossFieldErrorsAtom, routedErrors);
132
+ get.set(errorsAtom, new Map());
133
+ const decoded = yield* pipe(Schema.decodeUnknown(combinedSchema, {
134
+ errors: "all"
135
+ })(values), Effect.tapError(parseError => Effect.sync(() => {
136
+ const routedErrors = Validation.routeErrorsWithSource(parseError);
137
+ get.set(errorsAtom, routedErrors);
131
138
  get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
132
139
  })));
133
140
  const submitState = operations.createSubmitState(state.value);
@@ -260,7 +267,7 @@ export const make = config => {
260
267
  const state = get(stateAtom);
261
268
  if (Option.isNone(state)) return;
262
269
  get.set(stateAtom, Option.some(operations.createResetState(state.value)));
263
- get.set(crossFieldErrorsAtom, new Map());
270
+ get.set(errorsAtom, new Map());
264
271
  resetValidationAtoms(get);
265
272
  get.set(submitAtom, Atom.Reset);
266
273
  }, {
@@ -270,7 +277,7 @@ export const make = config => {
270
277
  const state = get(stateAtom);
271
278
  if (Option.isNone(state)) return;
272
279
  get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)));
273
- get.set(crossFieldErrorsAtom, new Map());
280
+ get.set(errorsAtom, new Map());
274
281
  }, {
275
282
  initialValue: undefined
276
283
  }).pipe(Atom.setIdleTTL(0));
@@ -278,7 +285,7 @@ export const make = config => {
278
285
  const state = get(stateAtom);
279
286
  if (Option.isNone(state)) return;
280
287
  get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)));
281
- get.set(crossFieldErrorsAtom, new Map());
288
+ get.set(errorsAtom, new Map());
282
289
  }, {
283
290
  initialValue: undefined
284
291
  }).pipe(Atom.setIdleTTL(0));
@@ -292,16 +299,7 @@ export const make = config => {
292
299
  const currentValue = getNestedValue(state.value.values, field.key);
293
300
  const newValue = typeof update === "function" ? update(currentValue) : update;
294
301
  get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)));
295
- const currentErrors = get(crossFieldErrorsAtom);
296
- const nextErrors = new Map();
297
- for (const [errorPath, message] of currentErrors) {
298
- if (!isPathUnderRoot(errorPath, field.key)) {
299
- nextErrors.set(errorPath, message);
300
- }
301
- }
302
- if (nextErrors.size !== currentErrors.size) {
303
- get.set(crossFieldErrorsAtom, nextErrors);
304
- }
302
+ // Don't clear errors - display logic handles showing/hiding based on source + validation state
305
303
  }, {
306
304
  initialValue: undefined
307
305
  }).pipe(Atom.setIdleTTL(0));
@@ -315,9 +313,16 @@ export const make = config => {
315
313
  publicFieldAtomRegistry.set(field.key, safeAtom);
316
314
  return safeAtom;
317
315
  };
316
+ const mountAtom = Atom.readable(get => {
317
+ get(stateAtom);
318
+ get(errorsAtom);
319
+ get(submitAtom);
320
+ }).pipe(Atom.setIdleTTL(0));
321
+ const keepAliveActiveAtom = Atom.make(false).pipe(Atom.setIdleTTL(0));
318
322
  return {
319
323
  stateAtom,
320
- crossFieldErrorsAtom,
324
+ errorsAtom,
325
+ rootErrorAtom,
321
326
  valuesAtom,
322
327
  dirtyFieldsAtom,
323
328
  isDirtyAtom,
@@ -338,7 +343,9 @@ export const make = config => {
338
343
  revertToLastSubmitAtom,
339
344
  setValuesAtom,
340
345
  setValue,
341
- getFieldAtom
346
+ getFieldAtom,
347
+ mountAtom,
348
+ keepAliveActiveAtom
342
349
  };
343
350
  };
344
351
  //# sourceMappingURL=FormAtoms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","createWeakRegistry","getNestedValue","isPathUnderRoot","setNestedValue","Validation","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","valuesAtom","readable","get","map","state","values","dirtyFieldsAtom","match","onNone","Set","onSome","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","flatMap","lastSubmittedValues","changedSinceSubmitFieldsAtom","lastSubmitted","encoded","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","fieldAtomsRegistry","publicFieldAtomRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","getOrThrow","ctx","currentState","some","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","args","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","Object","fromEntries","keys","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","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","lastEncoded","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message","getFieldAtom","safeAtom"],"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","createWeakRegistry","getNestedValue","setNestedValue","Validation","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","errorsAtom","Map","rootErrorAtom","readable","get","errors","entry","some","message","valuesAtom","map","state","values","dirtyFieldsAtom","match","onNone","Set","onSome","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","flatMap","lastSubmittedValues","changedSinceSubmitFieldsAtom","lastSubmitted","encoded","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","fieldAtomsRegistry","publicFieldAtomRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","getOrThrow","ctx","currentState","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","errorAtom","atoms","resetValidationAtoms","Reset","clear","submitAtom","args","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrorsWithSource","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","Object","fromEntries","keys","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","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","lastEncoded","resetAtom","fnSync","initialValue","undefined","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","getFieldAtom","safeAtom","mountAtom","keepAliveActiveAtom"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,33 @@
4
4
  import * as Option from "effect/Option";
5
5
  import * as ParseResult from "effect/ParseResult";
6
6
  import { schemaPathToFieldPath } from "./Path.js";
7
+ const getBaseAST = ast => {
8
+ switch (ast._tag) {
9
+ case "Refinement":
10
+ case "Transformation":
11
+ return getBaseAST(ast.from);
12
+ default:
13
+ return ast;
14
+ }
15
+ };
16
+ /**
17
+ * Returns true if the AST represents a composite type where refinements indicate cross-field validation.
18
+ * Covers: Schema.Struct, Class, Tuple, Union, Suspend.
19
+ */
20
+ const isCompositeType = ast => {
21
+ const base = getBaseAST(ast);
22
+ switch (base._tag) {
23
+ case "TypeLiteral": // Schema.Struct
24
+ case "TupleType": // Schema.Tuple
25
+ case "Declaration": // Schema.Class, Schema.TaggedClass
26
+ case "Union": // Schema.Union
27
+ case "Suspend":
28
+ // Recursive schemas
29
+ return true;
30
+ default:
31
+ return false;
32
+ }
33
+ };
7
34
  /**
8
35
  * Extracts the first error message from a ParseError.
9
36
  *
@@ -33,4 +60,81 @@ export const routeErrors = error => {
33
60
  }
34
61
  return result;
35
62
  };
63
+ const determineErrorSources = error => {
64
+ const sources = new Map();
65
+ const walk = (issue, path, source) => {
66
+ switch (issue._tag) {
67
+ case "Refinement":
68
+ if (issue.kind === "Predicate" && isCompositeType(issue.ast.from) && path.length === 0) {
69
+ walk(issue.issue, path, "refinement");
70
+ } else {
71
+ walk(issue.issue, path, source);
72
+ }
73
+ break;
74
+ case "Pointer":
75
+ {
76
+ const pointerPath = Array.isArray(issue.path) ? issue.path : [issue.path];
77
+ walk(issue.issue, [...path, ...pointerPath], source);
78
+ break;
79
+ }
80
+ case "Composite":
81
+ {
82
+ const issues = Array.isArray(issue.issues) ? issue.issues : [issue.issues];
83
+ for (const sub of issues) {
84
+ walk(sub, path, source);
85
+ }
86
+ break;
87
+ }
88
+ case "Type":
89
+ case "Missing":
90
+ case "Unexpected":
91
+ case "Forbidden":
92
+ {
93
+ const fieldPath = schemaPathToFieldPath(path);
94
+ const key = fieldPath ?? "";
95
+ if (!sources.has(key)) {
96
+ sources.set(key, source);
97
+ }
98
+ break;
99
+ }
100
+ case "Transformation":
101
+ if (issue.kind === "Transformation" && issue.ast.transformation._tag === "FinalTransformation" && isCompositeType(issue.ast.from) && path.length === 0) {
102
+ walk(issue.issue, path, "refinement");
103
+ } else {
104
+ walk(issue.issue, path, source);
105
+ }
106
+ break;
107
+ }
108
+ };
109
+ walk(error.issue, [], "field");
110
+ return sources;
111
+ };
112
+ /**
113
+ * Routes validation errors with source tracking.
114
+ *
115
+ * Source determination:
116
+ * - `kind: "Predicate"` on composite types → "refinement" (cross-field validation)
117
+ * - All other errors → "field" (per-field schema validation)
118
+ *
119
+ * Empty string key ("") stores root-level errors (refinements without specific paths).
120
+ *
121
+ * @category Error Handling
122
+ */
123
+ export const routeErrorsWithSource = error => {
124
+ const result = new Map();
125
+ const formattedIssues = ParseResult.ArrayFormatter.formatErrorSync(error);
126
+ const sources = determineErrorSources(error);
127
+ for (const issue of formattedIssues) {
128
+ const fieldPath = schemaPathToFieldPath(issue.path);
129
+ const key = fieldPath ?? "";
130
+ if (!result.has(key)) {
131
+ const source = sources.get(key) ?? "field";
132
+ result.set(key, {
133
+ message: issue.message,
134
+ source
135
+ });
136
+ }
137
+ }
138
+ return result;
139
+ };
36
140
  //# sourceMappingURL=Validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validation.js","names":["Option","ParseResult","schemaPathToFieldPath","extractFirstError","error","issues","ArrayFormatter","formatErrorSync","length","none","some","message","routeErrors","result","Map","issue","fieldPath","path","has","set"],"sources":["../../src/Validation.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AACjD,SAASC,qBAAqB,QAAQ,WAAW;AAEjD;;;;;AAKA,OAAO,MAAMC,iBAAiB,GAAIC,KAA6B,IAA2B;EACxF,MAAMC,MAAM,GAAGJ,WAAW,CAACK,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EAChE,IAAIC,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;IACvB,OAAOR,MAAM,CAACS,IAAI,EAAE;EACtB;EACA,OAAOT,MAAM,CAACU,IAAI,CAACL,MAAM,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC;AACvC,CAAC;AAED;;;;;;AAMA,OAAO,MAAMC,WAAW,GAAIR,KAA6B,IAAyB;EAChF,MAAMS,MAAM,GAAG,IAAIC,GAAG,EAAkB;EACxC,MAAMT,MAAM,GAAGJ,WAAW,CAACK,cAAc,CAACC,eAAe,CAACH,KAAK,CAAC;EAEhE,KAAK,MAAMW,KAAK,IAAIV,MAAM,EAAE;IAC1B,MAAMW,SAAS,GAAGd,qBAAqB,CAACa,KAAK,CAACE,IAAI,CAAC;IACnD,IAAID,SAAS,IAAI,CAACH,MAAM,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;MACvCH,MAAM,CAACM,GAAG,CAACH,SAAS,EAAED,KAAK,CAACJ,OAAO,CAAC;IACtC;EACF;EAEA,OAAOE,MAAM;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Validation.js","names":["Option","ParseResult","schemaPathToFieldPath","getBaseAST","ast","_tag","from","isCompositeType","base","extractFirstError","error","issues","ArrayFormatter","formatErrorSync","length","none","some","message","routeErrors","result","Map","issue","fieldPath","path","has","set","determineErrorSources","sources","walk","source","kind","pointerPath","Array","isArray","sub","key","transformation","routeErrorsWithSource","formattedIssues","get"],"sources":["../../src/Validation.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.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "Type-safe form builder powered by Effect Schema",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/FormAtoms.ts CHANGED
@@ -8,7 +8,7 @@ import * as Field from "./Field.js"
8
8
  import * as FormBuilder from "./FormBuilder.js"
9
9
  import { recalculateDirtyFieldsForArray, recalculateDirtySubtree } from "./internal/dirty.js"
10
10
  import { createWeakRegistry, type WeakRegistry } from "./internal/weak-registry.js"
11
- import { getNestedValue, isPathUnderRoot, setNestedValue } from "./Path.js"
11
+ import { getNestedValue, setNestedValue } from "./Path.js"
12
12
  import * as Validation from "./Validation.js"
13
13
 
14
14
  /**
@@ -20,7 +20,7 @@ export interface FieldAtoms {
20
20
  readonly valueAtom: Atom.Writable<unknown, unknown>
21
21
  readonly initialValueAtom: Atom.Atom<unknown>
22
22
  readonly touchedAtom: Atom.Writable<boolean, boolean>
23
- readonly crossFieldErrorAtom: Atom.Atom<Option.Option<string>>
23
+ readonly errorAtom: Atom.Atom<Option.Option<Validation.ErrorEntry>>
24
24
  }
25
25
 
26
26
  /**
@@ -64,7 +64,8 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E =
64
64
  Option.Option<FormBuilder.FormState<TFields>>,
65
65
  Option.Option<FormBuilder.FormState<TFields>>
66
66
  >
67
- readonly crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>
67
+ readonly errorsAtom: Atom.Writable<Map<string, Validation.ErrorEntry>, Map<string, Validation.ErrorEntry>>
68
+ readonly rootErrorAtom: Atom.Atom<Option.Option<string>>
68
69
  readonly valuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>
69
70
  readonly dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>
70
71
  readonly isDirtyAtom: Atom.Atom<boolean>
@@ -99,6 +100,28 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E =
99
100
  readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)>
100
101
 
101
102
  readonly getFieldAtom: <S>(field: FormBuilder.FieldRef<S>) => Atom.Atom<Option.Option<S>>
103
+
104
+ /**
105
+ * Root anchor atom for the form's dependency graph.
106
+ * Mount this atom to keep all form state alive even when field components unmount.
107
+ *
108
+ * Useful for:
109
+ * - Multi-step wizards where steps unmount but state should persist
110
+ * - Conditional fields (toggles) where state should survive visibility changes
111
+ *
112
+ * @example
113
+ * ```tsx
114
+ * // Keep form state alive at wizard root level
115
+ * function Wizard() {
116
+ * useAtomMount(step1Form.mount)
117
+ * useAtomMount(step2Form.mount)
118
+ * return currentStep === 1 ? <Step1 /> : <Step2 />
119
+ * }
120
+ * ```
121
+ */
122
+ readonly mountAtom: Atom.Atom<void>
123
+
124
+ readonly keepAliveActiveAtom: Atom.Writable<boolean, boolean>
102
125
  }
103
126
 
104
127
  /**
@@ -198,7 +221,13 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
198
221
  const combinedSchema = FormBuilder.buildSchema(formBuilder)
199
222
 
200
223
  const stateAtom = Atom.make(Option.none<FormBuilder.FormState<TFields>>()).pipe(Atom.setIdleTTL(0))
201
- const crossFieldErrorsAtom = Atom.make<Map<string, string>>(new Map()).pipe(Atom.setIdleTTL(0))
224
+ const errorsAtom = Atom.make<Map<string, Validation.ErrorEntry>>(new Map()).pipe(Atom.setIdleTTL(0))
225
+
226
+ const rootErrorAtom = Atom.readable((get) => {
227
+ const errors = get(errorsAtom)
228
+ const entry = errors.get("")
229
+ return entry ? Option.some(entry.message) : Option.none<string>()
230
+ }).pipe(Atom.setIdleTTL(0))
202
231
 
203
232
  const valuesAtom = Atom.readable((get) => Option.map(get(stateAtom), (state) => state.values)).pipe(
204
233
  Atom.setIdleTTL(0),
@@ -303,13 +332,13 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
303
332
  },
304
333
  ).pipe(Atom.setIdleTTL(0))
305
334
 
306
- const crossFieldErrorAtom = Atom.readable((get) => {
307
- const errors = get(crossFieldErrorsAtom)
308
- const error = errors.get(fieldPath)
309
- return error !== undefined ? Option.some(error) : Option.none<string>()
335
+ const errorAtom = Atom.readable((get) => {
336
+ const errors = get(errorsAtom)
337
+ const entry = errors.get(fieldPath)
338
+ return entry ? Option.some(entry) : Option.none<Validation.ErrorEntry>()
310
339
  }).pipe(Atom.setIdleTTL(0))
311
340
 
312
- const atoms: FieldAtoms = { valueAtom, initialValueAtom, touchedAtom, crossFieldErrorAtom }
341
+ const atoms: FieldAtoms = { valueAtom, initialValueAtom, touchedAtom, errorAtom }
313
342
  fieldAtomsRegistry.set(fieldPath, atoms)
314
343
  return atoms
315
344
  }
@@ -327,17 +356,17 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
327
356
  const state = get(stateAtom)
328
357
  if (Option.isNone(state)) return yield* Effect.die("Form not initialized")
329
358
  const values = state.value.values
330
- get.set(crossFieldErrorsAtom, new Map())
359
+ get.set(errorsAtom, new Map())
331
360
  const decoded = yield* pipe(
332
- Schema.decodeUnknown(combinedSchema)(values) as Effect.Effect<
361
+ Schema.decodeUnknown(combinedSchema, { errors: "all" })(values) as Effect.Effect<
333
362
  Field.DecodedFromFields<TFields>,
334
363
  ParseResult.ParseError,
335
364
  R
336
365
  >,
337
366
  Effect.tapError((parseError) =>
338
367
  Effect.sync(() => {
339
- const routedErrors = Validation.routeErrors(parseError)
340
- get.set(crossFieldErrorsAtom, routedErrors)
368
+ const routedErrors = Validation.routeErrorsWithSource(parseError)
369
+ get.set(errorsAtom, routedErrors)
341
370
  get.set(stateAtom, Option.some(operations.createSubmitState(state.value)))
342
371
  })
343
372
  ),
@@ -510,7 +539,7 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
510
539
  const state = get(stateAtom)
511
540
  if (Option.isNone(state)) return
512
541
  get.set(stateAtom, Option.some(operations.createResetState(state.value)))
513
- get.set(crossFieldErrorsAtom, new Map())
542
+ get.set(errorsAtom, new Map())
514
543
  resetValidationAtoms(get)
515
544
  get.set(submitAtom, Atom.Reset)
516
545
  }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
@@ -519,14 +548,14 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
519
548
  const state = get(stateAtom)
520
549
  if (Option.isNone(state)) return
521
550
  get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)))
522
- get.set(crossFieldErrorsAtom, new Map())
551
+ get.set(errorsAtom, new Map())
523
552
  }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
524
553
 
525
554
  const setValuesAtom = Atom.fnSync<Field.EncodedFromFields<TFields>>()((_values, get) => {
526
555
  const state = get(stateAtom)
527
556
  if (Option.isNone(state)) return
528
557
  get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)))
529
- get.set(crossFieldErrorsAtom, new Map())
558
+ get.set(errorsAtom, new Map())
530
559
  }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
531
560
 
532
561
  const setValueAtomsRegistry = createWeakRegistry<Atom.Writable<void, any>>()
@@ -545,17 +574,7 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
545
574
  : update
546
575
 
547
576
  get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)))
548
-
549
- const currentErrors = get(crossFieldErrorsAtom)
550
- const nextErrors = new Map<string, string>()
551
- for (const [errorPath, message] of currentErrors) {
552
- if (!isPathUnderRoot(errorPath, field.key)) {
553
- nextErrors.set(errorPath, message)
554
- }
555
- }
556
- if (nextErrors.size !== currentErrors.size) {
557
- get.set(crossFieldErrorsAtom, nextErrors)
558
- }
577
+ // Don't clear errors - display logic handles showing/hiding based on source + validation state
559
578
  }, { initialValue: undefined as void }).pipe(Atom.setIdleTTL(0))
560
579
 
561
580
  setValueAtomsRegistry.set(field.key, atom)
@@ -574,9 +593,18 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
574
593
  return safeAtom
575
594
  }
576
595
 
596
+ const mountAtom = Atom.readable((get) => {
597
+ get(stateAtom)
598
+ get(errorsAtom)
599
+ get(submitAtom)
600
+ }).pipe(Atom.setIdleTTL(0))
601
+
602
+ const keepAliveActiveAtom = Atom.make(false).pipe(Atom.setIdleTTL(0))
603
+
577
604
  return {
578
605
  stateAtom,
579
- crossFieldErrorsAtom,
606
+ errorsAtom,
607
+ rootErrorAtom,
580
608
  valuesAtom,
581
609
  dirtyFieldsAtom,
582
610
  isDirtyAtom,
@@ -598,5 +626,7 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = v
598
626
  setValuesAtom,
599
627
  setValue,
600
628
  getFieldAtom,
629
+ mountAtom,
630
+ keepAliveActiveAtom,
601
631
  } as FormAtoms<TFields, R, A, E, SubmitArgs>
602
632
  }
package/src/Validation.ts CHANGED
@@ -3,8 +3,56 @@
3
3
  */
4
4
  import * as Option from "effect/Option"
5
5
  import * as ParseResult from "effect/ParseResult"
6
+ import type * as AST from "effect/SchemaAST"
6
7
  import { schemaPathToFieldPath } from "./Path.js"
7
8
 
9
+ /**
10
+ * Source of a validation error.
11
+ * - 'field': Error from field schema validation (e.g., minLength, pattern)
12
+ * - 'refinement': Error from cross-field refinement (e.g., password !== confirm)
13
+ *
14
+ * @category Models
15
+ */
16
+ export type ErrorSource = "field" | "refinement"
17
+
18
+ /**
19
+ * A validation error entry with its source.
20
+ *
21
+ * @category Models
22
+ */
23
+ export interface ErrorEntry {
24
+ readonly message: string
25
+ readonly source: ErrorSource
26
+ }
27
+
28
+ const getBaseAST = (ast: AST.AST): AST.AST => {
29
+ switch (ast._tag) {
30
+ case "Refinement":
31
+ case "Transformation":
32
+ return getBaseAST(ast.from)
33
+ default:
34
+ return ast
35
+ }
36
+ }
37
+
38
+ /**
39
+ * Returns true if the AST represents a composite type where refinements indicate cross-field validation.
40
+ * Covers: Schema.Struct, Class, Tuple, Union, Suspend.
41
+ */
42
+ const isCompositeType = (ast: AST.AST): boolean => {
43
+ const base = getBaseAST(ast)
44
+ switch (base._tag) {
45
+ case "TypeLiteral": // Schema.Struct
46
+ case "TupleType": // Schema.Tuple
47
+ case "Declaration": // Schema.Class, Schema.TaggedClass
48
+ case "Union": // Schema.Union
49
+ case "Suspend": // Recursive schemas
50
+ return true
51
+ default:
52
+ return false
53
+ }
54
+ }
55
+
8
56
  /**
9
57
  * Extracts the first error message from a ParseError.
10
58
  *
@@ -37,3 +85,85 @@ export const routeErrors = (error: ParseResult.ParseError): Map<string, string>
37
85
 
38
86
  return result
39
87
  }
88
+
89
+ const determineErrorSources = (error: ParseResult.ParseError): Map<string, ErrorSource> => {
90
+ const sources = new Map<string, ErrorSource>()
91
+
92
+ const walk = (issue: ParseResult.ParseIssue, path: ReadonlyArray<PropertyKey>, source: ErrorSource): void => {
93
+ switch (issue._tag) {
94
+ case "Refinement":
95
+ if (issue.kind === "Predicate" && isCompositeType(issue.ast.from) && path.length === 0) {
96
+ walk(issue.issue, path, "refinement")
97
+ } else {
98
+ walk(issue.issue, path, source)
99
+ }
100
+ break
101
+ case "Pointer": {
102
+ const pointerPath = Array.isArray(issue.path) ? issue.path : [issue.path]
103
+ walk(issue.issue, [...path, ...pointerPath], source)
104
+ break
105
+ }
106
+ case "Composite": {
107
+ const issues = Array.isArray(issue.issues) ? issue.issues : [issue.issues]
108
+ for (const sub of issues) {
109
+ walk(sub, path, source)
110
+ }
111
+ break
112
+ }
113
+ case "Type":
114
+ case "Missing":
115
+ case "Unexpected":
116
+ case "Forbidden": {
117
+ const fieldPath = schemaPathToFieldPath(path)
118
+ const key = fieldPath ?? ""
119
+ if (!sources.has(key)) {
120
+ sources.set(key, source)
121
+ }
122
+ break
123
+ }
124
+ case "Transformation":
125
+ if (
126
+ issue.kind === "Transformation" &&
127
+ issue.ast.transformation._tag === "FinalTransformation" &&
128
+ isCompositeType(issue.ast.from) &&
129
+ path.length === 0
130
+ ) {
131
+ walk(issue.issue, path, "refinement")
132
+ } else {
133
+ walk(issue.issue, path, source)
134
+ }
135
+ break
136
+ }
137
+ }
138
+
139
+ walk(error.issue, [], "field")
140
+ return sources
141
+ }
142
+
143
+ /**
144
+ * Routes validation errors with source tracking.
145
+ *
146
+ * Source determination:
147
+ * - `kind: "Predicate"` on composite types → "refinement" (cross-field validation)
148
+ * - All other errors → "field" (per-field schema validation)
149
+ *
150
+ * Empty string key ("") stores root-level errors (refinements without specific paths).
151
+ *
152
+ * @category Error Handling
153
+ */
154
+ export const routeErrorsWithSource = (error: ParseResult.ParseError): Map<string, ErrorEntry> => {
155
+ const result = new Map<string, ErrorEntry>()
156
+ const formattedIssues = ParseResult.ArrayFormatter.formatErrorSync(error)
157
+ const sources = determineErrorSources(error)
158
+
159
+ for (const issue of formattedIssues) {
160
+ const fieldPath = schemaPathToFieldPath(issue.path)
161
+ const key = fieldPath ?? ""
162
+ if (!result.has(key)) {
163
+ const source = sources.get(key) ?? "field"
164
+ result.set(key, { message: issue.message, source })
165
+ }
166
+ }
167
+
168
+ return result
169
+ }