@formisch/vue 0.9.0 → 0.10.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.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,180 @@
1
1
  import * as v from "valibot";
2
- import * as vue0 from "vue";
2
+ import * as vue1 from "vue";
3
3
  import { ComponentPublicInstance, MaybeRefOrGetter, ShallowRef as Signal } from "vue";
4
4
 
5
5
  //#region ../../packages/core/dist/index.vue.d.ts
6
6
 
7
+ //#region src/types/utils/utils.d.ts
8
+ /**
9
+ * Checks if a type is `any`.
10
+ */
11
+ type IsAny<T> = 0 extends 1 & T ? true : false;
12
+ /**
13
+ * Checks if a type is `never`.
14
+ */
15
+ type IsNever<T> = [T] extends [never] ? true : false;
16
+ /**
17
+ * Constructs a type that is maybe a promise.
18
+ */
19
+ type MaybePromise<T> = T | Promise<T>;
20
+ /**
21
+ * Makes all properties deeply optional.
22
+ */
23
+ type DeepPartial<TValue> = TValue extends Record<PropertyKey, unknown> | readonly unknown[] ? { [TKey in keyof TValue]?: DeepPartial<TValue[TKey]> | undefined } : TValue | undefined;
24
+ /**
25
+ * Makes all value properties optional.
26
+ *
27
+ * Hint: For dynamic arrays, only plain objects and nested arrays have their
28
+ * values made optional. Primitives and class instances are kept as-is to avoid
29
+ * types like `(string | undefined)[]`.
30
+ */
31
+ type PartialValues<TValue> = TValue extends readonly (infer TItem)[] ? number extends TValue["length"] ? (TItem extends Record<PropertyKey, unknown> | readonly unknown[] ? { [TKey in keyof TItem]: PartialValues<TItem[TKey]> } : TItem)[] : { [TKey in keyof TValue]: PartialValues<TValue[TKey]> } : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: PartialValues<TValue[TKey]> } : TValue | undefined;
32
+ //#endregion
33
+ //#region src/types/path/path.d.ts
34
+ /**
35
+ * Path key type.
36
+ */
37
+ type PathKey = string | number;
38
+ /**
39
+ * Path type.
40
+ */
41
+ type Path = readonly PathKey[];
42
+ /**
43
+ * Required path type.
44
+ */
45
+ type RequiredPath = readonly [PathKey, ...Path];
46
+ /**
47
+ * Extracts the exact keys of a tuple, array or object. Tuples return their
48
+ * literal numeric indices, dynamic arrays return `number`, objects return
49
+ * their `keyof` keys, and any other input returns `never`.
50
+ */
51
+ type ExactKeysOf<TValue> = IsAny<TValue> extends true ? never : TValue extends readonly unknown[] ? number extends TValue["length"] ? number : { [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}` ? TIndex : never }[number] : TValue extends Record<PropertyKey, unknown> ? keyof TValue & PathKey : never;
52
+ /**
53
+ * Returns the flat object of all indexable properties of `TValue`. For object
54
+ * unions, properties from every member are merged so that any single property
55
+ * is accessible. For primitives and other non-indexable types, the result is
56
+ * `{}`.
57
+ *
58
+ * Hint: This is necessary to make properties accessible across union members.
59
+ * By default, properties that do not exist in all union options are not
60
+ * accessible and result in "any" when accessed.
61
+ */
62
+ type PropertiesOf<TValue> = { [TKey in ExactKeysOf<TValue>]: TValue extends Record<TKey, infer TItem> ? TItem : never };
63
+ /**
64
+ * Lazily evaluates only the first valid path segment based on the given value.
65
+ */
66
+ type LazyPath<TValue, TPathToCheck extends Path, TValidPath extends Path = readonly []> = TPathToCheck extends readonly [] ? TValidPath : TPathToCheck extends readonly [infer TFirstKey extends ExactKeysOf<TValue>, ...infer TPathRest extends Path] ? LazyPath<Required<PropertiesOf<TValue>[TFirstKey]>, TPathRest, readonly [...TValidPath, TFirstKey]> : IsNever<ExactKeysOf<TValue>> extends false ? readonly [...TValidPath, ExactKeysOf<TValue>] : TValidPath;
67
+ /**
68
+ * Returns the path if valid, otherwise the first possible valid path based on
69
+ * the given value.
70
+ */
71
+ type ValidPath<TValue, TPath extends RequiredPath> = TPath extends LazyPath<Required<TValue>, TPath> ? TPath : LazyPath<Required<TValue>, TPath>;
72
+ /**
73
+ * Detects whether the consuming project is configured with
74
+ * `exactOptionalPropertyTypes: true`.
75
+ *
76
+ * Hint: If `false` the built-in `Required<T>` strips `| undefined` from
77
+ * optional properties, so `Required<{ key?: undefined }>['key']` collapses
78
+ * to `never` — under strict mode the same expression yields `undefined`.
79
+ */
80
+ type IsExactOptionalProps = Required<{
81
+ key?: undefined;
82
+ }>["key"] extends never ? false : true;
83
+ /**
84
+ * Like the built-in `Required<T>`, but preserves `| undefined` in two
85
+ * places where `Required<T>` strips it:
86
+ *
87
+ * 1. Optional property values under `exactOptionalPropertyTypes: false`
88
+ * — without this, input typings for `v.optional`/`v.nullish` schemas
89
+ * narrow incorrectly (issue #15).
90
+ * 2. Array/tuple element types — e.g. `(string | undefined)[]` stays
91
+ * `(string | undefined)[]` instead of becoming `string[]`. Arrays
92
+ * fall through unchanged because they only have a numeric index
93
+ * signature and don't structurally extend `Record<PropertyKey,
94
+ * unknown>` (which requires string keys).
95
+ */
96
+ type ExactRequired<TValue> = TValue extends Record<PropertyKey, unknown> ? IsExactOptionalProps extends true ? Required<TValue> : { [TKey in keyof Required<TValue>]: TValue[TKey] } : TValue;
97
+ /**
98
+ * Extracts the value type at the given path.
99
+ */
100
+ type PathValue<TValue, TPath extends Path> = TPath extends readonly [infer TKey, ...infer TRest extends Path] ? TKey extends ExactKeysOf<ExactRequired<TValue>> ? PathValue<PropertiesOf<ExactRequired<TValue>>[TKey], TRest> : unknown : TValue;
101
+ /**
102
+ * Checks whether a value is a dynamic array or contains one anywhere in its
103
+ * shape. A fixed-length tuple is not itself a dynamic array, but it counts when
104
+ * it contains one, so paths can still navigate through tuples to reach nested
105
+ * arrays.
106
+ *
107
+ * Hint: The inner conditionals (`TValue extends readonly unknown[]` and
108
+ * `TValue extends Record<PropertyKey, unknown>`) distribute over union members,
109
+ * so the inner expression returns the union of each member's result (e.g.
110
+ * `true | false` when some members contain arrays and others don't).
111
+ * Downstream code uses `IsOrHasArray<T> extends true`, but
112
+ * `boolean extends true` is `false` — so we collapse the result via
113
+ * `true extends ...`, which is `true` whenever at least one union member
114
+ * contributed `true`.
115
+ */
116
+ type IsOrHasArray<TValue> = true extends (IsAny<TValue> extends true ? false : TValue extends readonly unknown[] ? number extends TValue["length"] ? true : IsOrHasArray<TValue[number]> : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: IsOrHasArray<TValue[TKey]> }[keyof TValue] : false) ? true : false;
117
+ /**
118
+ * Extracts the exact keys of a tuple, array or object that contain arrays.
119
+ */
120
+ type ExactKeysOfArrayPath<TValue> = IsAny<TValue> extends true ? never : TValue extends readonly (infer TItem)[] ? number extends TValue["length"] ? IsOrHasArray<TItem> extends true ? number : never : { [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}` ? IsOrHasArray<NonNullable<TValue[TKey]>> extends true ? TIndex : never : never }[number] : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: IsOrHasArray<NonNullable<TValue[TKey]>> extends true ? TKey : never }[keyof TValue] & PathKey : never;
121
+ /**
122
+ * Returns the flat object of indexable properties of `TValue` whose values
123
+ * are or contain arrays. Mirrors `PropertiesOf` but keyed by
124
+ * `ExactKeysOfArrayPath` so the lookup is provably valid for array-path
125
+ * navigation in `LazyArrayPath`.
126
+ */
127
+ type PropertiesOfArrayPath<TValue> = { [TKey in ExactKeysOfArrayPath<TValue>]: TValue extends Record<TKey, infer TItem> ? TItem : never };
128
+ /**
129
+ * Lazily evaluates only the first valid array path segment based on the given value.
130
+ */
131
+ type LazyArrayPath<TValue, TPathToCheck extends Path, TValidPath extends Path = readonly []> = TPathToCheck extends readonly [] ? TValue extends readonly unknown[] ? number extends TValue["length"] ? TValidPath : IsNever<ExactKeysOfArrayPath<TValue>> extends false ? readonly [...TValidPath, ExactKeysOfArrayPath<TValue>] : never : readonly [...TValidPath, ExactKeysOfArrayPath<TValue>] : TPathToCheck extends readonly [infer TFirstKey extends ExactKeysOfArrayPath<TValue>, ...infer TPathRest extends Path] ? LazyArrayPath<Required<PropertiesOfArrayPath<TValue>[TFirstKey]>, TPathRest, readonly [...TValidPath, TFirstKey]> : IsNever<ExactKeysOfArrayPath<TValue>> extends false ? readonly [...TValidPath, ExactKeysOfArrayPath<TValue>] : never;
132
+ /**
133
+ * Returns the path if valid, otherwise the first possible valid array path
134
+ * based on the given value.
135
+ */
136
+ type ValidArrayPath<TValue, TPath extends RequiredPath> = TPath extends LazyArrayPath<Required<TValue>, TPath> ? TPath : LazyArrayPath<Required<TValue>, TPath>;
137
+ /**
138
+ * Recursive helper for `DirtyPath` that prepends `TKey` to each deeper path,
139
+ * or falls through to `never` when the child is not an object.
140
+ */
141
+ type DeepDirtyPath<TChild, TKey$1 extends PathKey, TDepth extends 0[]> = TChild extends Record<PropertyKey, unknown> ? readonly [TKey$1, ...DirtyPath<TChild, [...TDepth, 0]>] : never;
142
+ /**
143
+ * Returns the union of all `RequiredPath`s that `getDirtyPaths` can emit
144
+ * for a given input type. Object fields contribute their own path and the
145
+ * paths of their descendants; arrays and tuples are atomic and contribute
146
+ * only their own path, because dirty arrays are returned as complete units.
147
+ *
148
+ * Narrowing is exact for the first 5 levels of nesting; deeper paths fall
149
+ * back to `RequiredPath` to keep the result a complete superset of any
150
+ * path the runtime can address.
151
+ *
152
+ * Hint: Arrays and tuples are atomic because they don't structurally
153
+ * extend `Record<PropertyKey, unknown>` and so fall through to `never`
154
+ * via `DeepDirtyPath` — no explicit array check is needed. `TDepth` is
155
+ * a tuple-length counter capped at 5 to bound TypeScript instantiation
156
+ * cost.
157
+ */
158
+ type DirtyPath<TValue, TDepth extends 0[] = []> = TDepth["length"] extends 5 ? RequiredPath : TValue extends Record<PropertyKey, unknown> ? { [TKey in ExactKeysOf<TValue>]: readonly [TKey] | DeepDirtyPath<NonNullable<PropertiesOf<TValue>[TKey]>, TKey, TDepth> }[ExactKeysOf<TValue>] : never;
159
+ /**
160
+ * Recursive helper for `FieldPath` that prepends `TKey` to each deeper field
161
+ * path, or falls through to `never` when the child is a leaf value.
162
+ */
163
+ type DeepFieldPath<TChild, TKey$1 extends PathKey, TDepth extends 0[]> = TChild extends readonly unknown[] | Record<PropertyKey, unknown> ? readonly [TKey$1, ...FieldPath<TChild, [...TDepth, 0]>] : never;
164
+ /**
165
+ * Returns the union of all `RequiredPath`s that address a field within the
166
+ * given input type. Object and array fields contribute their own path and the
167
+ * paths of their descendants; unlike `DirtyPath`, arrays are recursed into so
168
+ * that fields at any depth, including array items, can be addressed. Leaf
169
+ * values contribute only their own path (emitted by their parent).
170
+ *
171
+ * Narrowing is exact for the first 5 levels of nesting; deeper paths fall
172
+ * back to `RequiredPath` to keep the result a complete superset of any path
173
+ * the runtime can address. `TDepth` is a tuple-length counter capped at 5 to
174
+ * bound TypeScript instantiation cost.
175
+ */
176
+ type FieldPath<TValue, TDepth extends 0[] = []> = TDepth["length"] extends 5 ? RequiredPath : TValue extends readonly unknown[] | Record<PropertyKey, unknown> ? { [TKey in ExactKeysOf<TValue>]: readonly [TKey] | DeepFieldPath<NonNullable<PropertiesOf<TValue>[TKey]>, TKey, TDepth> }[ExactKeysOf<TValue>] : never;
177
+ //#endregion
7
178
  //#region src/types/schema/schema.d.ts
8
179
  /**
9
180
  * Schema type.
@@ -59,6 +230,10 @@ interface InternalBaseStore {
59
230
  */
60
231
  name: string;
61
232
  /**
233
+ * The path to the field.
234
+ */
235
+ path: Path;
236
+ /**
62
237
  * The schema of the field.
63
238
  */
64
239
  schema: Schema;
@@ -86,6 +261,15 @@ interface InternalBaseStore {
86
261
  */
87
262
  isTouched: Signal<boolean>;
88
263
  /**
264
+ * The edited state of the field.
265
+ *
266
+ * Hint: Unlike `isTouched`, which is also set when a field is focused, this
267
+ * is only set when the field's value is changed. Unlike `isDirty`, it stays
268
+ * `true` even if the value is changed back to its initial value. It is only
269
+ * reset when the field is reset.
270
+ */
271
+ isEdited: Signal<boolean>;
272
+ /**
89
273
  * The dirty state of the field.
90
274
  */
91
275
  isDirty: Signal<boolean>;
@@ -99,6 +283,14 @@ interface InternalArrayStore extends InternalBaseStore {
99
283
  */
100
284
  kind: "array";
101
285
  /**
286
+ * Whether the array schema is wrapped in a nullish schema.
287
+ *
288
+ * Hint: This indicates whether a missing input should be represented as the
289
+ * nullish value (`null`/`undefined`) or as a present but empty array
290
+ * (`true`). It keeps resetting consistent with the initial state.
291
+ */
292
+ isNullish: boolean;
293
+ /**
102
294
  * The children of the array field.
103
295
  */
104
296
  children: InternalFieldStore[];
@@ -151,6 +343,14 @@ interface InternalObjectStore extends InternalBaseStore {
151
343
  */
152
344
  kind: "object";
153
345
  /**
346
+ * Whether the object schema is wrapped in a nullish schema.
347
+ *
348
+ * Hint: This indicates whether a missing input should be represented as the
349
+ * nullish value (`null`/`undefined`) or as a present but empty object
350
+ * (`true`). It keeps resetting consistent with the initial state.
351
+ */
352
+ isNullish: boolean;
353
+ /**
154
354
  * The children of the object field.
155
355
  */
156
356
  children: Record<string, InternalFieldStore>;
@@ -214,32 +414,6 @@ type InternalFieldStore = InternalArrayStore | InternalObjectStore | InternalVal
214
414
  */
215
415
  declare const INTERNAL: "~internal";
216
416
  //#endregion
217
- //#region src/types/utils/utils.d.ts
218
- /**
219
- * Checks if a type is `any`.
220
- */
221
- type IsAny<T> = 0 extends 1 & T ? true : false;
222
- /**
223
- * Checks if a type is `never`.
224
- */
225
- type IsNever<T> = [T] extends [never] ? true : false;
226
- /**
227
- * Constructs a type that is maybe a promise.
228
- */
229
- type MaybePromise<T> = T | Promise<T>;
230
- /**
231
- * Makes all properties deeply optional.
232
- */
233
- type DeepPartial<TValue> = TValue extends Record<PropertyKey, unknown> | readonly unknown[] ? { [TKey in keyof TValue]?: DeepPartial<TValue[TKey]> | undefined } : TValue | undefined;
234
- /**
235
- * Makes all value properties optional.
236
- *
237
- * Hint: For dynamic arrays, only plain objects and nested arrays have their
238
- * values made optional. Primitives and class instances are kept as-is to avoid
239
- * types like `(string | undefined)[]`.
240
- */
241
- type PartialValues<TValue> = TValue extends readonly (infer TItem)[] ? number extends TValue["length"] ? (TItem extends Record<PropertyKey, unknown> | readonly unknown[] ? { [TKey in keyof TItem]: PartialValues<TItem[TKey]> } : TItem)[] : { [TKey in keyof TValue]: PartialValues<TValue[TKey]> } : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: PartialValues<TValue[TKey]> } : TValue | undefined;
242
- //#endregion
243
417
  //#region src/types/form/form.d.ts
244
418
  /**
245
419
  * Validation mode type.
@@ -323,177 +497,138 @@ type SubmitHandler<TSchema extends FormSchema> = (output: v.InferOutput<TSchema>
323
497
  */
324
498
  type SubmitEventHandler<TSchema extends FormSchema> = (output: v.InferOutput<TSchema>, event: SubmitEvent) => MaybePromise<unknown>;
325
499
  //#endregion
326
- //#region src/types/path/path.d.ts
327
- /**
328
- * Path key type.
329
- */
330
- type PathKey = string | number;
331
- /**
332
- * Path type.
333
- */
334
- type Path = readonly PathKey[];
500
+ //#region src/array/copyItemState/copyItemState.d.ts
335
501
  /**
336
- * Required path type.
502
+ * Copies the deeply nested state (signal values) from one field store to
503
+ * another. This includes the `elements`, `errors`, `startInput`, `input`,
504
+ * `isTouched`, `isEdited`, `isDirty`, and for arrays `startItems` and `items`
505
+ * properties. Recursively walks through the field stores and copies all signal
506
+ * values.
507
+ *
508
+ * @param fromInternalFieldStore The source field store to copy from.
509
+ * @param toInternalFieldStore The destination field store to copy to.
337
510
  */
338
- type RequiredPath = readonly [PathKey, ...Path];
511
+ //#endregion
512
+ //#region ../../packages/methods/dist/index.vue.d.ts
513
+ //#region src/focus/focus.d.ts
514
+
339
515
  /**
340
- * Extracts the exact keys of a tuple, array or object. Tuples return their
341
- * literal numeric indices, dynamic arrays return `number`, objects return
342
- * their `keyof` keys, and any other input returns `never`.
516
+ * Focus field config interface.
343
517
  */
344
- type ExactKeysOf<TValue> = IsAny<TValue> extends true ? never : TValue extends readonly unknown[] ? number extends TValue["length"] ? number : { [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}` ? TIndex : never }[number] : TValue extends Record<PropertyKey, unknown> ? keyof TValue & PathKey : never;
518
+ interface FocusFieldConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
519
+ /**
520
+ * The path to the field to focus.
521
+ */
522
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
523
+ }
345
524
  /**
346
- * Returns the flat object of all indexable properties of `TValue`. For object
347
- * unions, properties from every member are merged so that any single property
348
- * is accessible. For primitives and other non-indexable types, the result is
349
- * `{}`.
525
+ * Focuses the first focusable input element of a field. This is useful for
526
+ * programmatically setting focus to a specific field, such as after
527
+ * validation errors or user interactions.
350
528
  *
351
- * Hint: This is necessary to make properties accessible across union members.
352
- * By default, properties that do not exist in all union options are not
353
- * accessible and result in "any" when accessed.
529
+ * @param form The form store containing the field.
530
+ * @param config The focus field configuration.
354
531
  */
355
- type PropertiesOf<TValue> = { [TKey in ExactKeysOf<TValue>]: TValue extends Record<TKey, infer TItem> ? TItem : never };
532
+ declare function focus<TSchema extends FormSchema, TFieldPath extends RequiredPath>(form: BaseFormStore<TSchema>, config: FocusFieldConfig<TSchema, TFieldPath>): void;
533
+ //#endregion
534
+ //#region src/getDeepErrorEntries/getDeepErrorEntries.d.ts
356
535
  /**
357
- * Lazily evaluates only the first valid path segment based on the given value.
536
+ * Deep error entry interface.
358
537
  */
359
- type LazyPath<TValue, TPathToCheck extends Path, TValidPath extends Path = readonly []> = TPathToCheck extends readonly [] ? TValidPath : TPathToCheck extends readonly [infer TFirstKey extends ExactKeysOf<TValue>, ...infer TPathRest extends Path] ? LazyPath<Required<PropertiesOf<TValue>[TFirstKey]>, TPathRest, readonly [...TValidPath, TFirstKey]> : IsNever<ExactKeysOf<TValue>> extends false ? readonly [...TValidPath, ExactKeysOf<TValue>] : TValidPath;
538
+ interface DeepErrorEntry<TValue = unknown> {
539
+ /**
540
+ * The path to the field with errors, or an empty path for form-level errors.
541
+ */
542
+ readonly path: unknown extends TValue ? Path : readonly [] | FieldPath<TValue>;
543
+ /**
544
+ * The error messages of the field.
545
+ */
546
+ readonly errors: [string, ...string[]];
547
+ }
360
548
  /**
361
- * Returns the path if valid, otherwise the first possible valid path based on
362
- * the given value.
549
+ * Get form deep error entries config interface.
363
550
  */
364
- type ValidPath<TValue, TPath extends RequiredPath> = TPath extends LazyPath<Required<TValue>, TPath> ? TPath : LazyPath<Required<TValue>, TPath>;
551
+ interface GetFormDeepErrorEntriesConfig {
552
+ /**
553
+ * The path to a field. Leave undefined to get the entries of the entire form.
554
+ */
555
+ readonly path?: undefined;
556
+ }
365
557
  /**
366
- * Detects whether the consuming project is configured with
367
- * `exactOptionalPropertyTypes: true`.
368
- *
369
- * Hint: If `false` the built-in `Required<T>` strips `| undefined` from
370
- * optional properties, so `Required<{ key?: undefined }>['key']` collapses
371
- * to `never` — under strict mode the same expression yields `undefined`.
558
+ * Get field deep error entries config interface.
372
559
  */
373
- type IsExactOptionalProps = Required<{
374
- key?: undefined;
375
- }>["key"] extends never ? false : true;
560
+ interface GetFieldDeepErrorEntriesConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
561
+ /**
562
+ * The path to the field to retrieve the entries from.
563
+ */
564
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
565
+ }
376
566
  /**
377
- * Like the built-in `Required<T>`, but preserves `| undefined` in two
378
- * places where `Required<T>` strips it:
567
+ * Retrieves the errors of a specific field or the entire form as a list of
568
+ * entries, each pairing the path to a field with its error messages. This is
569
+ * useful for building custom error summaries that link each message back to
570
+ * its field. Form-level errors are included with an empty path.
379
571
  *
380
- * 1. Optional property values under `exactOptionalPropertyTypes: false`
381
- * — without this, input typings for `v.optional`/`v.nullish` schemas
382
- * narrow incorrectly (issue #15).
383
- * 2. Array/tuple element types — e.g. `(string | undefined)[]` stays
384
- * `(string | undefined)[]` instead of becoming `string[]`. Arrays
385
- * fall through unchanged because they only have a numeric index
386
- * signature and don't structurally extend `Record<PropertyKey,
387
- * unknown>` (which requires string keys).
388
- */
389
- type ExactRequired<TValue> = TValue extends Record<PropertyKey, unknown> ? IsExactOptionalProps extends true ? Required<TValue> : { [TKey in keyof Required<TValue>]: TValue[TKey] } : TValue;
390
- /**
391
- * Extracts the value type at the given path.
392
- */
393
- type PathValue<TValue, TPath extends Path> = TPath extends readonly [infer TKey, ...infer TRest extends Path] ? TKey extends ExactKeysOf<ExactRequired<TValue>> ? PathValue<PropertiesOf<ExactRequired<TValue>>[TKey], TRest> : unknown : TValue;
394
- /**
395
- * Checks whether a value is a dynamic array or contains one anywhere in its
396
- * shape. A fixed-length tuple is not itself a dynamic array, but it counts when
397
- * it contains one, so paths can still navigate through tuples to reach nested
398
- * arrays.
572
+ * @param form The form store to retrieve error entries from.
399
573
  *
400
- * Hint: The inner conditionals (`TValue extends readonly unknown[]` and
401
- * `TValue extends Record<PropertyKey, unknown>`) distribute over union members,
402
- * so the inner expression returns the union of each member's result (e.g.
403
- * `true | false` when some members contain arrays and others don't).
404
- * Downstream code uses `IsOrHasArray<T> extends true`, but
405
- * `boolean extends true` is `false` — so we collapse the result via
406
- * `true extends ...`, which is `true` whenever at least one union member
407
- * contributed `true`.
574
+ * @returns A list of path and error message entries.
408
575
  */
409
- type IsOrHasArray<TValue> = true extends (IsAny<TValue> extends true ? false : TValue extends readonly unknown[] ? number extends TValue["length"] ? true : IsOrHasArray<TValue[number]> : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: IsOrHasArray<TValue[TKey]> }[keyof TValue] : false) ? true : false;
410
- /**
411
- * Extracts the exact keys of a tuple, array or object that contain arrays.
412
- */
413
- type ExactKeysOfArrayPath<TValue> = IsAny<TValue> extends true ? never : TValue extends readonly (infer TItem)[] ? number extends TValue["length"] ? IsOrHasArray<TItem> extends true ? number : never : { [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}` ? IsOrHasArray<NonNullable<TValue[TKey]>> extends true ? TIndex : never : never }[number] : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: IsOrHasArray<NonNullable<TValue[TKey]>> extends true ? TKey : never }[keyof TValue] & PathKey : never;
414
- /**
415
- * Returns the flat object of indexable properties of `TValue` whose values
416
- * are or contain arrays. Mirrors `PropertiesOf` but keyed by
417
- * `ExactKeysOfArrayPath` so the lookup is provably valid for array-path
418
- * navigation in `LazyArrayPath`.
419
- */
420
- type PropertiesOfArrayPath<TValue> = { [TKey in ExactKeysOfArrayPath<TValue>]: TValue extends Record<TKey, infer TItem> ? TItem : never };
421
- /**
422
- * Lazily evaluates only the first valid array path segment based on the given value.
423
- */
424
- type LazyArrayPath<TValue, TPathToCheck extends Path, TValidPath extends Path = readonly []> = TPathToCheck extends readonly [] ? TValue extends readonly unknown[] ? number extends TValue["length"] ? TValidPath : IsNever<ExactKeysOfArrayPath<TValue>> extends false ? readonly [...TValidPath, ExactKeysOfArrayPath<TValue>] : never : readonly [...TValidPath, ExactKeysOfArrayPath<TValue>] : TPathToCheck extends readonly [infer TFirstKey extends ExactKeysOfArrayPath<TValue>, ...infer TPathRest extends Path] ? LazyArrayPath<Required<PropertiesOfArrayPath<TValue>[TFirstKey]>, TPathRest, readonly [...TValidPath, TFirstKey]> : IsNever<ExactKeysOfArrayPath<TValue>> extends false ? readonly [...TValidPath, ExactKeysOfArrayPath<TValue>] : never;
576
+ declare function getDeepErrorEntries<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): DeepErrorEntry<v.InferInput<TSchema>>[];
425
577
  /**
426
- * Returns the path if valid, otherwise the first possible valid array path
427
- * based on the given value.
428
- */
429
- type ValidArrayPath<TValue, TPath extends RequiredPath> = TPath extends LazyArrayPath<Required<TValue>, TPath> ? TPath : LazyArrayPath<Required<TValue>, TPath>;
430
- /**
431
- * Recursive helper for `DirtyPath` that prepends `TKey` to each deeper path,
432
- * or falls through to `never` when the child is not an object.
433
- */
434
- type DeepDirtyPath<TChild, TKey$1 extends PathKey, TDepth extends 0[]> = TChild extends Record<PropertyKey, unknown> ? readonly [TKey$1, ...DirtyPath<TChild, [...TDepth, 0]>] : never;
435
- /**
436
- * Returns the union of all `RequiredPath`s that `getDirtyPaths` can emit
437
- * for a given input type. Object fields contribute their own path and the
438
- * paths of their descendants; arrays and tuples are atomic and contribute
439
- * only their own path, because dirty arrays are returned as complete units.
578
+ * Retrieves the errors of a specific field or the entire form as a list of
579
+ * entries, each pairing the path to a field with its error messages. This is
580
+ * useful for building custom error summaries that link each message back to
581
+ * its field. Form-level errors are included with an empty path.
440
582
  *
441
- * Narrowing is exact for the first 5 levels of nesting; deeper paths fall
442
- * back to `RequiredPath` to keep the result a complete superset of any
443
- * path the runtime can address.
583
+ * @param form The form store to retrieve error entries from.
584
+ * @param config The get deep error entries configuration.
444
585
  *
445
- * Hint: Arrays and tuples are atomic because they don't structurally
446
- * extend `Record<PropertyKey, unknown>` and so fall through to `never`
447
- * via `DeepDirtyPath` — no explicit array check is needed. `TDepth` is
448
- * a tuple-length counter capped at 5 to bound TypeScript instantiation
449
- * cost.
586
+ * @returns A list of path and error message entries.
450
587
  */
451
- type DirtyPath<TValue, TDepth extends 0[] = []> = TDepth["length"] extends 5 ? RequiredPath : TValue extends Record<PropertyKey, unknown> ? { [TKey in ExactKeysOf<TValue>]: readonly [TKey] | DeepDirtyPath<NonNullable<PropertiesOf<TValue>[TKey]>, TKey, TDepth> }[ExactKeysOf<TValue>] : never;
588
+ declare function getDeepErrorEntries<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? GetFieldDeepErrorEntriesConfig<TSchema, TFieldPath> : GetFormDeepErrorEntriesConfig): DeepErrorEntry<v.InferInput<TSchema>>[];
452
589
  //#endregion
453
- //#region src/array/copyItemState/copyItemState.d.ts
590
+ //#region src/getDeepErrors/getDeepErrors.d.ts
454
591
  /**
455
- * Copies the deeply nested state (signal values) from one field store to
456
- * another. This includes the `elements`, `errors`, `startInput`, `input`,
457
- * `isTouched`, `isDirty`, and for arrays `startItems` and `items` properties.
458
- * Recursively walks through the field stores and copies all signal values.
459
- *
460
- * @param fromInternalFieldStore The source field store to copy from.
461
- * @param toInternalFieldStore The destination field store to copy to.
592
+ * Get form deep errors config interface.
462
593
  */
463
- //#endregion
464
- //#region ../../packages/methods/dist/index.vue.d.ts
465
- //#region src/focus/focus.d.ts
466
-
594
+ interface GetFormDeepErrorsConfig {
595
+ /**
596
+ * The path to a field. Leave undefined to get the errors of the entire form.
597
+ */
598
+ readonly path?: undefined;
599
+ }
467
600
  /**
468
- * Focus field config interface.
601
+ * Get field deep errors config interface.
469
602
  */
470
- interface FocusFieldConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
603
+ interface GetFieldDeepErrorsConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
471
604
  /**
472
- * The path to the field to focus.
605
+ * The path to the field to retrieve the errors from.
473
606
  */
474
607
  readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
475
608
  }
476
609
  /**
477
- * Focuses the first focusable input element of a field. This is useful for
478
- * programmatically setting focus to a specific field, such as after
479
- * validation errors or user interactions.
610
+ * Retrieves all error messages of a specific field or the entire form by
611
+ * walking through the field store and all its descendants. This is useful for
612
+ * displaying a summary of all validation errors within a section or the whole
613
+ * form. Form-level errors are included.
480
614
  *
481
- * @param form The form store containing the field.
482
- * @param config The focus field configuration.
615
+ * @param form The form store to retrieve errors from.
616
+ *
617
+ * @returns A non-empty array of error messages, or null if no errors exist.
483
618
  */
484
- declare function focus<TSchema extends FormSchema, TFieldPath extends RequiredPath>(form: BaseFormStore<TSchema>, config: FocusFieldConfig<TSchema, TFieldPath>): void;
485
- //#endregion
486
- //#region src/getAllErrors/getAllErrors.d.ts
619
+ declare function getDeepErrors<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): [string, ...string[]] | null;
487
620
  /**
488
- * Retrieves all error messages from all fields in the form by walking through
489
- * the entire field store tree. This is useful for displaying a summary of all
490
- * validation errors across the form.
621
+ * Retrieves all error messages of a specific field or the entire form by
622
+ * walking through the field store and all its descendants. This is useful for
623
+ * displaying a summary of all validation errors within a section or the whole
624
+ * form. Form-level errors are included.
491
625
  *
492
626
  * @param form The form store to retrieve errors from.
627
+ * @param config The get deep errors configuration.
493
628
  *
494
629
  * @returns A non-empty array of error messages, or null if no errors exist.
495
630
  */
496
- declare function getAllErrors(form: BaseFormStore): [string, ...string[]] | null;
631
+ declare function getDeepErrors<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? GetFieldDeepErrorsConfig<TSchema, TFieldPath> : GetFormDeepErrorsConfig): [string, ...string[]] | null;
497
632
  //#endregion
498
633
  //#region src/getDirtyInput/getDirtyInput.d.ts
499
634
  /**
@@ -713,6 +848,172 @@ interface InsertConfig<TSchema extends FormSchema, TFieldArrayPath extends Requi
713
848
  */
714
849
  declare function insert<TSchema extends FormSchema, TFieldArrayPath extends RequiredPath>(form: BaseFormStore<TSchema>, config: InsertConfig<TSchema, TFieldArrayPath>): void;
715
850
  //#endregion
851
+ //#region src/isDirty/isDirty.d.ts
852
+ /**
853
+ * Is form dirty config interface.
854
+ */
855
+ interface IsFormDirtyConfig {
856
+ /**
857
+ * The path to a field. Leave undefined to check the entire form.
858
+ */
859
+ readonly path?: undefined;
860
+ }
861
+ /**
862
+ * Is field dirty config interface.
863
+ */
864
+ interface IsFieldDirtyConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
865
+ /**
866
+ * The path to the field to check for dirtiness.
867
+ */
868
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
869
+ }
870
+ /**
871
+ * Checks whether a specific field or the entire form is dirty by walking
872
+ * through the field store and all its descendants. A field is dirty when its
873
+ * input differs from its initial value.
874
+ *
875
+ * @param form The form store to check for dirtiness.
876
+ *
877
+ * @returns Whether the field or form is dirty.
878
+ */
879
+ declare function isDirty<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
880
+ /**
881
+ * Checks whether a specific field or the entire form is dirty by walking
882
+ * through the field store and all its descendants. A field is dirty when its
883
+ * input differs from its initial value.
884
+ *
885
+ * @param form The form store to check for dirtiness.
886
+ * @param config The is dirty configuration.
887
+ *
888
+ * @returns Whether the field or form is dirty.
889
+ */
890
+ declare function isDirty<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldDirtyConfig<TSchema, TFieldPath> : IsFormDirtyConfig): boolean;
891
+ //#endregion
892
+ //#region src/isEdited/isEdited.d.ts
893
+ /**
894
+ * Is form edited config interface.
895
+ */
896
+ interface IsFormEditedConfig {
897
+ /**
898
+ * The path to a field. Leave undefined to check the entire form.
899
+ */
900
+ readonly path?: undefined;
901
+ }
902
+ /**
903
+ * Is field edited config interface.
904
+ */
905
+ interface IsFieldEditedConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
906
+ /**
907
+ * The path to the field to check for being edited.
908
+ */
909
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
910
+ }
911
+ /**
912
+ * Checks whether a specific field or the entire form is edited by walking
913
+ * through the field store and all its descendants. A field is edited once its
914
+ * value has been changed by the user.
915
+ *
916
+ * @param form The form store to check for being edited.
917
+ *
918
+ * @returns Whether the field or form is edited.
919
+ */
920
+ declare function isEdited<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
921
+ /**
922
+ * Checks whether a specific field or the entire form is edited by walking
923
+ * through the field store and all its descendants. A field is edited once its
924
+ * value has been changed by the user.
925
+ *
926
+ * @param form The form store to check for being edited.
927
+ * @param config The is edited configuration.
928
+ *
929
+ * @returns Whether the field or form is edited.
930
+ */
931
+ declare function isEdited<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldEditedConfig<TSchema, TFieldPath> : IsFormEditedConfig): boolean;
932
+ //#endregion
933
+ //#region src/isTouched/isTouched.d.ts
934
+ /**
935
+ * Is form touched config interface.
936
+ */
937
+ interface IsFormTouchedConfig {
938
+ /**
939
+ * The path to a field. Leave undefined to check the entire form.
940
+ */
941
+ readonly path?: undefined;
942
+ }
943
+ /**
944
+ * Is field touched config interface.
945
+ */
946
+ interface IsFieldTouchedConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
947
+ /**
948
+ * The path to the field to check for being touched.
949
+ */
950
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
951
+ }
952
+ /**
953
+ * Checks whether a specific field or the entire form is touched by walking
954
+ * through the field store and all its descendants. A field is touched once it
955
+ * has received and lost focus.
956
+ *
957
+ * @param form The form store to check for being touched.
958
+ *
959
+ * @returns Whether the field or form is touched.
960
+ */
961
+ declare function isTouched<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
962
+ /**
963
+ * Checks whether a specific field or the entire form is touched by walking
964
+ * through the field store and all its descendants. A field is touched once it
965
+ * has received and lost focus.
966
+ *
967
+ * @param form The form store to check for being touched.
968
+ * @param config The is touched configuration.
969
+ *
970
+ * @returns Whether the field or form is touched.
971
+ */
972
+ declare function isTouched<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldTouchedConfig<TSchema, TFieldPath> : IsFormTouchedConfig): boolean;
973
+ //#endregion
974
+ //#region src/isValid/isValid.d.ts
975
+ /**
976
+ * Is form valid config interface.
977
+ */
978
+ interface IsFormValidConfig {
979
+ /**
980
+ * The path to a field. Leave undefined to check the entire form.
981
+ */
982
+ readonly path?: undefined;
983
+ }
984
+ /**
985
+ * Is field valid config interface.
986
+ */
987
+ interface IsFieldValidConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
988
+ /**
989
+ * The path to the field to check for validity.
990
+ */
991
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
992
+ }
993
+ /**
994
+ * Checks whether a specific field or the entire form is valid by walking
995
+ * through the field store and all its descendants. A field is valid when
996
+ * neither it nor any of its descendants contains an error. Form-level errors
997
+ * are included.
998
+ *
999
+ * @param form The form store to check for validity.
1000
+ *
1001
+ * @returns Whether the field or form is valid.
1002
+ */
1003
+ declare function isValid<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
1004
+ /**
1005
+ * Checks whether a specific field or the entire form is valid by walking
1006
+ * through the field store and all its descendants. A field is valid when
1007
+ * neither it nor any of its descendants contains an error. Form-level errors
1008
+ * are included.
1009
+ *
1010
+ * @param form The form store to check for validity.
1011
+ * @param config The is valid configuration.
1012
+ *
1013
+ * @returns Whether the field or form is valid.
1014
+ */
1015
+ declare function isValid<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldValidConfig<TSchema, TFieldPath> : IsFormValidConfig): boolean;
1016
+ //#endregion
716
1017
  //#region src/move/move.d.ts
717
1018
  /**
718
1019
  * Move array field config interface.
@@ -828,6 +1129,10 @@ interface ResetBaseConfig {
828
1129
  */
829
1130
  readonly keepTouched?: boolean | undefined;
830
1131
  /**
1132
+ * Whether to keep the edited state during reset. Defaults to false.
1133
+ */
1134
+ readonly keepEdited?: boolean | undefined;
1135
+ /**
831
1136
  * Whether to keep the error messages during reset. Defaults to false.
832
1137
  */
833
1138
  readonly keepErrors?: boolean | undefined;
@@ -1077,6 +1382,10 @@ interface FieldStore<TSchema extends FormSchema = FormSchema, TFieldPath extends
1077
1382
  * Whether the field has been touched.
1078
1383
  */
1079
1384
  readonly isTouched: boolean;
1385
+ /**
1386
+ * Whether the field value has been edited.
1387
+ */
1388
+ readonly isEdited: boolean;
1080
1389
  /**
1081
1390
  * Whether the field input differs from its initial value.
1082
1391
  */
@@ -1110,6 +1419,10 @@ interface FieldArrayStore<TSchema extends FormSchema = FormSchema, TFieldArrayPa
1110
1419
  * Whether the field array has been touched.
1111
1420
  */
1112
1421
  readonly isTouched: boolean;
1422
+ /**
1423
+ * Whether the field array value has been edited.
1424
+ */
1425
+ readonly isEdited: boolean;
1113
1426
  /**
1114
1427
  * Whether the field array input differs from its initial value.
1115
1428
  */
@@ -1141,6 +1454,10 @@ interface FormStore<TSchema extends FormSchema = FormSchema> extends BaseFormSto
1141
1454
  * Whether any field in the form has been touched.
1142
1455
  */
1143
1456
  readonly isTouched: boolean;
1457
+ /**
1458
+ * Whether any field in the form has been edited.
1459
+ */
1460
+ readonly isEdited: boolean;
1144
1461
  /**
1145
1462
  * Whether any field in the form differs from its initial value.
1146
1463
  */
@@ -1153,7 +1470,7 @@ interface FormStore<TSchema extends FormSchema = FormSchema> extends BaseFormSto
1153
1470
  * The current error messages of the form.
1154
1471
  *
1155
1472
  * Hint: This property only contains validation errors at the root level
1156
- * of the form. To get all errors from all fields, use `getAllErrors`.
1473
+ * of the form. To get all errors from all fields, use `getDeepErrors`.
1157
1474
  */
1158
1475
  readonly errors: [string, ...string[]] | null;
1159
1476
  }
@@ -1173,14 +1490,14 @@ interface FieldProps<TSchema extends FormSchema = FormSchema, TFieldPath extends
1173
1490
  readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
1174
1491
  }
1175
1492
  declare const __VLS_export$2: <TSchema extends FormSchema, TFieldPath extends RequiredPath>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$2<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
1176
- props: __VLS_PrettifyLocal$2<FieldProps<TSchema, TFieldPath>> & vue0.PublicProps;
1493
+ props: __VLS_PrettifyLocal$2<FieldProps<TSchema, TFieldPath>> & vue1.PublicProps;
1177
1494
  expose: (exposed: {}) => void;
1178
1495
  attrs: any;
1179
1496
  slots: {
1180
1497
  default(props: FieldStore<TSchema, TFieldPath>): any;
1181
1498
  };
1182
1499
  emit: {};
1183
- }>) => vue0.VNode & {
1500
+ }>) => vue1.VNode & {
1184
1501
  __ctx?: Awaited<typeof __VLS_setup>;
1185
1502
  };
1186
1503
  declare const _default: typeof __VLS_export$2;
@@ -1201,14 +1518,14 @@ interface FieldArrayProps<TSchema extends FormSchema = FormSchema, TFieldArrayPa
1201
1518
  readonly path: ValidArrayPath<v.InferInput<TSchema>, TFieldArrayPath>;
1202
1519
  }
1203
1520
  declare const __VLS_export$1: <TSchema extends FormSchema, TFieldArrayPath extends RequiredPath>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$1<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
1204
- props: __VLS_PrettifyLocal$1<FieldArrayProps<TSchema, TFieldArrayPath>> & vue0.PublicProps;
1521
+ props: __VLS_PrettifyLocal$1<FieldArrayProps<TSchema, TFieldArrayPath>> & vue1.PublicProps;
1205
1522
  expose: (exposed: {}) => void;
1206
1523
  attrs: any;
1207
1524
  slots: {
1208
1525
  default(props: FieldArrayStore<TSchema, TFieldArrayPath>): any;
1209
1526
  };
1210
1527
  emit: {};
1211
- }>) => vue0.VNode & {
1528
+ }>) => vue1.VNode & {
1212
1529
  __ctx?: Awaited<typeof __VLS_setup>;
1213
1530
  };
1214
1531
  declare const _default$1: typeof __VLS_export$1;
@@ -1229,14 +1546,14 @@ interface FormProps<TSchema extends FormSchema = FormSchema> {
1229
1546
  onSubmit: SubmitEventHandler<TSchema>;
1230
1547
  }
1231
1548
  declare const __VLS_export: <TSchema extends FormSchema = FormSchema>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
1232
- props: __VLS_PrettifyLocal<FormProps<TSchema>> & vue0.PublicProps;
1549
+ props: __VLS_PrettifyLocal<FormProps<TSchema>> & vue1.PublicProps;
1233
1550
  expose: (exposed: {}) => void;
1234
1551
  attrs: any;
1235
1552
  slots: {
1236
1553
  default?: (props: {}) => any;
1237
1554
  };
1238
1555
  emit: {};
1239
- }>) => vue0.VNode & {
1556
+ }>) => vue1.VNode & {
1240
1557
  __ctx?: Awaited<typeof __VLS_setup>;
1241
1558
  };
1242
1559
  declare const _default$2: typeof __VLS_export;
@@ -1293,4 +1610,4 @@ declare function useFieldArray<TSchema extends FormSchema, TFieldArrayPath exten
1293
1610
  */
1294
1611
  declare function useForm<TSchema extends FormSchema>(config: FormConfig<TSchema>): FormStore<TSchema>;
1295
1612
  //#endregion
1296
- export { type DeepPartial, _default as Field, _default$1 as FieldArray, FieldArrayStore, type FieldElement, FieldElementProps, FieldStore, FocusFieldConfig, _default$2 as Form, type FormConfig, type FormSchema, FormStore, GetFieldDirtyInputConfig, GetFieldDirtyPathsConfig, GetFieldErrorsConfig, GetFieldInputConfig, GetFormDirtyInputConfig, GetFormDirtyPathsConfig, GetFormErrorsConfig, GetFormInputConfig, InsertConfig, MoveConfig, type PartialValues, type PathValue, PickDirtyConfig, RemoveConfig, ReplaceConfig, type RequiredPath, ResetFieldConfig, ResetFormConfig, type Schema, SetFieldErrorsConfig, SetFieldInputConfig, SetFormErrorsConfig, SetFormInputConfig, type SubmitEventHandler, type SubmitHandler, SwapConfig, UseFieldArrayConfig, UseFieldConfig, type ValidArrayPath, type ValidPath, ValidateFormConfig, type ValidationMode, focus, getAllErrors, getDirtyInput, getDirtyPaths, getErrors, getInput, handleSubmit, insert, move, pickDirty, remove, replace, reset, setErrors, setInput, submit, swap, useField, useFieldArray, useForm, validate };
1613
+ export { DeepErrorEntry, type DeepPartial, _default as Field, _default$1 as FieldArray, FieldArrayStore, type FieldElement, FieldElementProps, FieldStore, FocusFieldConfig, _default$2 as Form, type FormConfig, type FormSchema, FormStore, GetFieldDeepErrorEntriesConfig, GetFieldDeepErrorsConfig, GetFieldDirtyInputConfig, GetFieldDirtyPathsConfig, GetFieldErrorsConfig, GetFieldInputConfig, GetFormDeepErrorEntriesConfig, GetFormDeepErrorsConfig, GetFormDirtyInputConfig, GetFormDirtyPathsConfig, GetFormErrorsConfig, GetFormInputConfig, InsertConfig, IsFieldDirtyConfig, IsFieldEditedConfig, IsFieldTouchedConfig, IsFieldValidConfig, IsFormDirtyConfig, IsFormEditedConfig, IsFormTouchedConfig, IsFormValidConfig, MoveConfig, type PartialValues, type PathValue, PickDirtyConfig, RemoveConfig, ReplaceConfig, type RequiredPath, ResetFieldConfig, ResetFormConfig, type Schema, SetFieldErrorsConfig, SetFieldInputConfig, SetFormErrorsConfig, SetFormInputConfig, type SubmitEventHandler, type SubmitHandler, SwapConfig, UseFieldArrayConfig, UseFieldConfig, type ValidArrayPath, type ValidPath, ValidateFormConfig, type ValidationMode, focus, getDeepErrorEntries, getDeepErrors, getDirtyInput, getDirtyPaths, getErrors, getInput, handleSubmit, insert, isDirty, isEdited, isTouched, isValid, move, pickDirty, remove, replace, reset, setErrors, setInput, submit, swap, useField, useFieldArray, useForm, validate };