@formisch/qwik 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.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,180 @@
1
1
  import * as v from "valibot";
2
2
  import { JSXOutput, NoSerialize, PropsOf, QRL, ReadonlySignal } from "@qwik.dev/core";
3
- import * as _qwik_dev_core_internal0 from "@qwik.dev/core/internal";
3
+ import * as _qwik_dev_core_internal3 from "@qwik.dev/core/internal";
4
4
 
5
5
  //#region ../../packages/core/dist/index.qwik.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.
@@ -70,10 +241,25 @@ interface InternalBaseStore {
70
241
  */
71
242
  name: string;
72
243
  /**
244
+ * The path to the field.
245
+ */
246
+ path: Path;
247
+ /**
73
248
  * The schema of the field.
74
249
  */
75
250
  schema: NoSerialize<Schema>;
76
251
  /**
252
+ * The initial elements of the field.
253
+ *
254
+ * Hint: This may look unused, but do not remove it. `copyItemState` and
255
+ * `swapItemState` move the `elements` reference between field stores when
256
+ * array items are inserted, moved, removed or swapped, and `reset` restores
257
+ * each field's original element via `elements = initialElements`. Without it,
258
+ * focus and file reset target the wrong element after a reorder followed by a
259
+ * reset.
260
+ */
261
+ initialElements: FieldElement[];
262
+ /**
77
263
  * The elements of the field.
78
264
  */
79
265
  elements: FieldElement[];
@@ -86,6 +272,15 @@ interface InternalBaseStore {
86
272
  */
87
273
  isTouched: Signal<boolean>;
88
274
  /**
275
+ * The edited state of the field.
276
+ *
277
+ * Hint: Unlike `isTouched`, which is also set when a field is focused, this
278
+ * is only set when the field's value is changed. Unlike `isDirty`, it stays
279
+ * `true` even if the value is changed back to its initial value. It is only
280
+ * reset when the field is reset.
281
+ */
282
+ isEdited: Signal<boolean>;
283
+ /**
89
284
  * The dirty state of the field.
90
285
  */
91
286
  isDirty: Signal<boolean>;
@@ -99,6 +294,14 @@ interface InternalArrayStore extends InternalBaseStore {
99
294
  */
100
295
  kind: "array";
101
296
  /**
297
+ * Whether the array schema is wrapped in a nullish schema.
298
+ *
299
+ * Hint: This indicates whether a missing input should be represented as the
300
+ * nullish value (`null`/`undefined`) or as a present but empty array
301
+ * (`true`). It keeps resetting consistent with the initial state.
302
+ */
303
+ isNullish: boolean;
304
+ /**
102
305
  * The children of the array field.
103
306
  */
104
307
  children: InternalFieldStore[];
@@ -151,6 +354,14 @@ interface InternalObjectStore extends InternalBaseStore {
151
354
  */
152
355
  kind: "object";
153
356
  /**
357
+ * Whether the object schema is wrapped in a nullish schema.
358
+ *
359
+ * Hint: This indicates whether a missing input should be represented as the
360
+ * nullish value (`null`/`undefined`) or as a present but empty object
361
+ * (`true`). It keeps resetting consistent with the initial state.
362
+ */
363
+ isNullish: boolean;
364
+ /**
154
365
  * The children of the object field.
155
366
  */
156
367
  children: Record<string, InternalFieldStore>;
@@ -202,14 +413,6 @@ interface InternalValueStore extends InternalBaseStore {
202
413
  * The input of the value field.
203
414
  */
204
415
  input: Signal<unknown>;
205
- /**
206
- * The touched state of the field.
207
- */
208
- isTouched: Signal<boolean>;
209
- /**
210
- * The dirty state of the field.
211
- */
212
- isDirty: Signal<boolean>;
213
416
  }
214
417
  /**
215
418
  * Internal field store type.
@@ -222,32 +425,6 @@ type InternalFieldStore = InternalArrayStore | InternalObjectStore | InternalVal
222
425
  */
223
426
  declare const INTERNAL: "~internal";
224
427
  //#endregion
225
- //#region src/types/utils/utils.d.ts
226
- /**
227
- * Checks if a type is `any`.
228
- */
229
- type IsAny<T> = 0 extends 1 & T ? true : false;
230
- /**
231
- * Checks if a type is `never`.
232
- */
233
- type IsNever<T> = [T] extends [never] ? true : false;
234
- /**
235
- * Constructs a type that is maybe a promise.
236
- */
237
- type MaybePromise<T> = T | Promise<T>;
238
- /**
239
- * Makes all properties deeply optional.
240
- */
241
- type DeepPartial<TValue> = TValue extends Record<PropertyKey, unknown> | readonly unknown[] ? { [TKey in keyof TValue]?: DeepPartial<TValue[TKey]> | undefined } : TValue | undefined;
242
- /**
243
- * Makes all value properties optional.
244
- *
245
- * Hint: For dynamic arrays, only plain objects and nested arrays have their
246
- * values made optional. Primitives and class instances are kept as-is to avoid
247
- * types like `(string | undefined)[]`.
248
- */
249
- 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;
250
- //#endregion
251
428
  //#region src/types/form/form.d.ts
252
429
  /**
253
430
  * Validation mode type.
@@ -333,174 +510,138 @@ interface BaseFormStore<TSchema extends FormSchema = FormSchema> {
333
510
  readonly [INTERNAL]: InternalFormStore<TSchema>;
334
511
  }
335
512
  //#endregion
336
- //#region src/types/path/path.d.ts
337
- /**
338
- * Path key type.
339
- */
340
- type PathKey = string | number;
341
- /**
342
- * Path type.
343
- */
344
- type Path = readonly PathKey[];
513
+ //#region src/array/copyItemState/copyItemState.d.ts
345
514
  /**
346
- * Required path type.
515
+ * Copies the deeply nested state (signal values) from one field store to
516
+ * another. This includes the `elements`, `errors`, `startInput`, `input`,
517
+ * `isTouched`, `isEdited`, `isDirty`, and for arrays `startItems` and `items`
518
+ * properties. Recursively walks through the field stores and copies all signal
519
+ * values.
520
+ *
521
+ * @param fromInternalFieldStore The source field store to copy from.
522
+ * @param toInternalFieldStore The destination field store to copy to.
347
523
  */
348
- type RequiredPath = readonly [PathKey, ...Path];
524
+ //#endregion
525
+ //#region ../../packages/methods/dist/index.qwik.d.ts
526
+ //#region src/focus/focus.d.ts
527
+
349
528
  /**
350
- * Extracts the exact keys of a tuple, array or object. Tuples return their
351
- * literal numeric indices, dynamic arrays return `number`, objects return
352
- * their `keyof` keys, and any other input returns `never`.
529
+ * Focus field config interface.
353
530
  */
354
- 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;
531
+ interface FocusFieldConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
532
+ /**
533
+ * The path to the field to focus.
534
+ */
535
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
536
+ }
355
537
  /**
356
- * Returns the flat object of all indexable properties of `TValue`. For object
357
- * unions, properties from every member are merged so that any single property
358
- * is accessible. For primitives and other non-indexable types, the result is
359
- * `{}`.
538
+ * Focuses the first focusable input element of a field. This is useful for
539
+ * programmatically setting focus to a specific field, such as after
540
+ * validation errors or user interactions.
360
541
  *
361
- * Hint: This is necessary to make properties accessible across union members.
362
- * By default, properties that do not exist in all union options are not
363
- * accessible and result in "any" when accessed.
542
+ * @param form The form store containing the field.
543
+ * @param config The focus field configuration.
364
544
  */
365
- type PropertiesOf<TValue> = { [TKey in ExactKeysOf<TValue>]: TValue extends Record<TKey, infer TItem> ? TItem : never };
545
+ declare function focus<TSchema extends FormSchema, TFieldPath extends RequiredPath>(form: BaseFormStore<TSchema>, config: FocusFieldConfig<TSchema, TFieldPath>): void;
546
+ //#endregion
547
+ //#region src/getDeepErrorEntries/getDeepErrorEntries.d.ts
366
548
  /**
367
- * Lazily evaluates only the first valid path segment based on the given value.
549
+ * Deep error entry interface.
368
550
  */
369
- 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;
551
+ interface DeepErrorEntry<TValue = unknown> {
552
+ /**
553
+ * The path to the field with errors, or an empty path for form-level errors.
554
+ */
555
+ readonly path: unknown extends TValue ? Path : readonly [] | FieldPath<TValue>;
556
+ /**
557
+ * The error messages of the field.
558
+ */
559
+ readonly errors: [string, ...string[]];
560
+ }
370
561
  /**
371
- * Returns the path if valid, otherwise the first possible valid path based on
372
- * the given value.
562
+ * Get form deep error entries config interface.
373
563
  */
374
- type ValidPath<TValue, TPath extends RequiredPath> = TPath extends LazyPath<Required<TValue>, TPath> ? TPath : LazyPath<Required<TValue>, TPath>;
564
+ interface GetFormDeepErrorEntriesConfig {
565
+ /**
566
+ * The path to a field. Leave undefined to get the entries of the entire form.
567
+ */
568
+ readonly path?: undefined;
569
+ }
375
570
  /**
376
- * Detects whether the consuming project is configured with
377
- * `exactOptionalPropertyTypes: true`.
378
- *
379
- * Hint: If `false` the built-in `Required<T>` strips `| undefined` from
380
- * optional properties, so `Required<{ key?: undefined }>['key']` collapses
381
- * to `never` — under strict mode the same expression yields `undefined`.
571
+ * Get field deep error entries config interface.
382
572
  */
383
- type IsExactOptionalProps = Required<{
384
- key?: undefined;
385
- }>["key"] extends never ? false : true;
573
+ interface GetFieldDeepErrorEntriesConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
574
+ /**
575
+ * The path to the field to retrieve the entries from.
576
+ */
577
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
578
+ }
386
579
  /**
387
- * Like the built-in `Required<T>`, but preserves `| undefined` in two
388
- * places where `Required<T>` strips it:
580
+ * Retrieves the errors of a specific field or the entire form as a list of
581
+ * entries, each pairing the path to a field with its error messages. This is
582
+ * useful for building custom error summaries that link each message back to
583
+ * its field. Form-level errors are included with an empty path.
389
584
  *
390
- * 1. Optional property values under `exactOptionalPropertyTypes: false`
391
- * — without this, input typings for `v.optional`/`v.nullish` schemas
392
- * narrow incorrectly (issue #15).
393
- * 2. Array/tuple element types — e.g. `(string | undefined)[]` stays
394
- * `(string | undefined)[]` instead of becoming `string[]`. Arrays
395
- * fall through unchanged because they only have a numeric index
396
- * signature and don't structurally extend `Record<PropertyKey,
397
- * unknown>` (which requires string keys).
398
- */
399
- type ExactRequired<TValue> = TValue extends Record<PropertyKey, unknown> ? IsExactOptionalProps extends true ? Required<TValue> : { [TKey in keyof Required<TValue>]: TValue[TKey] } : TValue;
400
- /**
401
- * Extracts the value type at the given path.
402
- */
403
- 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;
404
- /**
405
- * Checks whether a value is an array or contains one anywhere in its shape.
585
+ * @param form The form store to retrieve error entries from.
406
586
  *
407
- * Hint: The inner conditionals (`TValue extends readonly unknown[]` and
408
- * `TValue extends Record<PropertyKey, unknown>`) distribute over union members,
409
- * so the inner expression returns the union of each member's result (e.g.
410
- * `true | false` when some members contain arrays and others don't).
411
- * Downstream code uses `IsOrHasArray<T> extends true`, but
412
- * `boolean extends true` is `false` — so we collapse the result via
413
- * `true extends ...`, which is `true` whenever at least one union member
414
- * contributed `true`.
415
- */
416
- type IsOrHasArray<TValue> = true extends (IsAny<TValue> extends true ? false : TValue extends readonly unknown[] ? true : TValue extends Record<PropertyKey, unknown> ? { [TKey in keyof TValue]: IsOrHasArray<TValue[TKey]> }[keyof TValue] : false) ? true : false;
417
- /**
418
- * Extracts the exact keys of a tuple, array or object that contain arrays.
419
- */
420
- 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;
421
- /**
422
- * Returns the flat object of indexable properties of `TValue` whose values
423
- * are or contain arrays. Mirrors `PropertiesOf` but keyed by
424
- * `ExactKeysOfArrayPath` so the lookup is provably valid for array-path
425
- * navigation in `LazyArrayPath`.
426
- */
427
- type PropertiesOfArrayPath<TValue> = { [TKey in ExactKeysOfArrayPath<TValue>]: TValue extends Record<TKey, infer TItem> ? TItem : never };
428
- /**
429
- * Lazily evaluates only the first valid array path segment based on the given value.
587
+ * @returns A list of path and error message entries.
430
588
  */
431
- type LazyArrayPath<TValue, TPathToCheck extends Path, TValidPath extends Path = readonly []> = TPathToCheck extends readonly [] ? TValue extends readonly unknown[] ? TValidPath : 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;
589
+ declare function getDeepErrorEntries<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): DeepErrorEntry<v.InferInput<TSchema>>[];
432
590
  /**
433
- * Returns the path if valid, otherwise the first possible valid array path
434
- * based on the given value.
435
- */
436
- type ValidArrayPath<TValue, TPath extends RequiredPath> = TPath extends LazyArrayPath<Required<TValue>, TPath> ? TPath : LazyArrayPath<Required<TValue>, TPath>;
437
- /**
438
- * Recursive helper for `DirtyPath` that prepends `TKey` to each deeper path,
439
- * or falls through to `never` when the child is not an object.
440
- */
441
- type DeepDirtyPath<TChild, TKey$1 extends PathKey, TDepth extends 0[]> = TChild extends Record<PropertyKey, unknown> ? readonly [TKey$1, ...DirtyPath<TChild, [...TDepth, 0]>] : never;
442
- /**
443
- * Returns the union of all `RequiredPath`s that `getDirtyPaths` can emit
444
- * for a given input type. Object fields contribute their own path and the
445
- * paths of their descendants; arrays and tuples are atomic and contribute
446
- * only their own path, because dirty arrays are returned as complete units.
591
+ * Retrieves the errors of a specific field or the entire form as a list of
592
+ * entries, each pairing the path to a field with its error messages. This is
593
+ * useful for building custom error summaries that link each message back to
594
+ * its field. Form-level errors are included with an empty path.
447
595
  *
448
- * Narrowing is exact for the first 5 levels of nesting; deeper paths fall
449
- * back to `RequiredPath` to keep the result a complete superset of any
450
- * path the runtime can address.
596
+ * @param form The form store to retrieve error entries from.
597
+ * @param config The get deep error entries configuration.
451
598
  *
452
- * Hint: Arrays and tuples are atomic because they don't structurally
453
- * extend `Record<PropertyKey, unknown>` and so fall through to `never`
454
- * via `DeepDirtyPath` — no explicit array check is needed. `TDepth` is
455
- * a tuple-length counter capped at 5 to bound TypeScript instantiation
456
- * cost.
599
+ * @returns A list of path and error message entries.
457
600
  */
458
- 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;
601
+ 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>>[];
459
602
  //#endregion
460
- //#region src/array/copyItemState/copyItemState.d.ts
603
+ //#region src/getDeepErrors/getDeepErrors.d.ts
461
604
  /**
462
- * Copies the deeply nested state (signal values) from one field store to
463
- * another. This includes the `elements`, `errors`, `startInput`, `input`,
464
- * `isTouched`, `isDirty`, and for arrays `startItems` and `items` properties.
465
- * Recursively walks through the field stores and copies all signal values.
466
- *
467
- * @param fromInternalFieldStore The source field store to copy from.
468
- * @param toInternalFieldStore The destination field store to copy to.
605
+ * Get form deep errors config interface.
469
606
  */
470
- //#endregion
471
- //#region ../../packages/methods/dist/index.qwik.d.ts
472
- //#region src/focus/focus.d.ts
473
-
607
+ interface GetFormDeepErrorsConfig {
608
+ /**
609
+ * The path to a field. Leave undefined to get the errors of the entire form.
610
+ */
611
+ readonly path?: undefined;
612
+ }
474
613
  /**
475
- * Focus field config interface.
614
+ * Get field deep errors config interface.
476
615
  */
477
- interface FocusFieldConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
616
+ interface GetFieldDeepErrorsConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
478
617
  /**
479
- * The path to the field to focus.
618
+ * The path to the field to retrieve the errors from.
480
619
  */
481
620
  readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
482
621
  }
483
622
  /**
484
- * Focuses the first input element of a field. This is useful for
485
- * programmatically setting focus to a specific field, such as after
486
- * validation errors or user interactions.
623
+ * Retrieves all error messages of a specific field or the entire form by
624
+ * walking through the field store and all its descendants. This is useful for
625
+ * displaying a summary of all validation errors within a section or the whole
626
+ * form. Form-level errors are included.
487
627
  *
488
- * @param form The form store containing the field.
489
- * @param config The focus field configuration.
628
+ * @param form The form store to retrieve errors from.
629
+ *
630
+ * @returns A non-empty array of error messages, or null if no errors exist.
490
631
  */
491
- declare function focus<TSchema extends FormSchema, TFieldPath extends RequiredPath>(form: BaseFormStore<TSchema>, config: FocusFieldConfig<TSchema, TFieldPath>): void;
492
- //#endregion
493
- //#region src/getAllErrors/getAllErrors.d.ts
632
+ declare function getDeepErrors<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): [string, ...string[]] | null;
494
633
  /**
495
- * Retrieves all error messages from all fields in the form by walking through
496
- * the entire field store tree. This is useful for displaying a summary of all
497
- * validation errors across the form.
634
+ * Retrieves all error messages of a specific field or the entire form by
635
+ * walking through the field store and all its descendants. This is useful for
636
+ * displaying a summary of all validation errors within a section or the whole
637
+ * form. Form-level errors are included.
498
638
  *
499
639
  * @param form The form store to retrieve errors from.
640
+ * @param config The get deep errors configuration.
500
641
  *
501
642
  * @returns A non-empty array of error messages, or null if no errors exist.
502
643
  */
503
- declare function getAllErrors(form: BaseFormStore): [string, ...string[]] | null;
644
+ 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;
504
645
  //#endregion
505
646
  //#region src/getDirtyInput/getDirtyInput.d.ts
506
647
  /**
@@ -720,6 +861,172 @@ interface InsertConfig<TSchema extends FormSchema, TFieldArrayPath extends Requi
720
861
  */
721
862
  declare function insert<TSchema extends FormSchema, TFieldArrayPath extends RequiredPath>(form: BaseFormStore<TSchema>, config: InsertConfig<TSchema, TFieldArrayPath>): void;
722
863
  //#endregion
864
+ //#region src/isDirty/isDirty.d.ts
865
+ /**
866
+ * Is form dirty config interface.
867
+ */
868
+ interface IsFormDirtyConfig {
869
+ /**
870
+ * The path to a field. Leave undefined to check the entire form.
871
+ */
872
+ readonly path?: undefined;
873
+ }
874
+ /**
875
+ * Is field dirty config interface.
876
+ */
877
+ interface IsFieldDirtyConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
878
+ /**
879
+ * The path to the field to check for dirtiness.
880
+ */
881
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
882
+ }
883
+ /**
884
+ * Checks whether a specific field or the entire form is dirty by walking
885
+ * through the field store and all its descendants. A field is dirty when its
886
+ * input differs from its initial value.
887
+ *
888
+ * @param form The form store to check for dirtiness.
889
+ *
890
+ * @returns Whether the field or form is dirty.
891
+ */
892
+ declare function isDirty<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
893
+ /**
894
+ * Checks whether a specific field or the entire form is dirty by walking
895
+ * through the field store and all its descendants. A field is dirty when its
896
+ * input differs from its initial value.
897
+ *
898
+ * @param form The form store to check for dirtiness.
899
+ * @param config The is dirty configuration.
900
+ *
901
+ * @returns Whether the field or form is dirty.
902
+ */
903
+ declare function isDirty<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldDirtyConfig<TSchema, TFieldPath> : IsFormDirtyConfig): boolean;
904
+ //#endregion
905
+ //#region src/isEdited/isEdited.d.ts
906
+ /**
907
+ * Is form edited config interface.
908
+ */
909
+ interface IsFormEditedConfig {
910
+ /**
911
+ * The path to a field. Leave undefined to check the entire form.
912
+ */
913
+ readonly path?: undefined;
914
+ }
915
+ /**
916
+ * Is field edited config interface.
917
+ */
918
+ interface IsFieldEditedConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
919
+ /**
920
+ * The path to the field to check for being edited.
921
+ */
922
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
923
+ }
924
+ /**
925
+ * Checks whether a specific field or the entire form is edited by walking
926
+ * through the field store and all its descendants. A field is edited once its
927
+ * value has been changed by the user.
928
+ *
929
+ * @param form The form store to check for being edited.
930
+ *
931
+ * @returns Whether the field or form is edited.
932
+ */
933
+ declare function isEdited<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
934
+ /**
935
+ * Checks whether a specific field or the entire form is edited by walking
936
+ * through the field store and all its descendants. A field is edited once its
937
+ * value has been changed by the user.
938
+ *
939
+ * @param form The form store to check for being edited.
940
+ * @param config The is edited configuration.
941
+ *
942
+ * @returns Whether the field or form is edited.
943
+ */
944
+ declare function isEdited<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldEditedConfig<TSchema, TFieldPath> : IsFormEditedConfig): boolean;
945
+ //#endregion
946
+ //#region src/isTouched/isTouched.d.ts
947
+ /**
948
+ * Is form touched config interface.
949
+ */
950
+ interface IsFormTouchedConfig {
951
+ /**
952
+ * The path to a field. Leave undefined to check the entire form.
953
+ */
954
+ readonly path?: undefined;
955
+ }
956
+ /**
957
+ * Is field touched config interface.
958
+ */
959
+ interface IsFieldTouchedConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
960
+ /**
961
+ * The path to the field to check for being touched.
962
+ */
963
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
964
+ }
965
+ /**
966
+ * Checks whether a specific field or the entire form is touched by walking
967
+ * through the field store and all its descendants. A field is touched once it
968
+ * has received and lost focus.
969
+ *
970
+ * @param form The form store to check for being touched.
971
+ *
972
+ * @returns Whether the field or form is touched.
973
+ */
974
+ declare function isTouched<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
975
+ /**
976
+ * Checks whether a specific field or the entire form is touched by walking
977
+ * through the field store and all its descendants. A field is touched once it
978
+ * has received and lost focus.
979
+ *
980
+ * @param form The form store to check for being touched.
981
+ * @param config The is touched configuration.
982
+ *
983
+ * @returns Whether the field or form is touched.
984
+ */
985
+ declare function isTouched<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldTouchedConfig<TSchema, TFieldPath> : IsFormTouchedConfig): boolean;
986
+ //#endregion
987
+ //#region src/isValid/isValid.d.ts
988
+ /**
989
+ * Is form valid config interface.
990
+ */
991
+ interface IsFormValidConfig {
992
+ /**
993
+ * The path to a field. Leave undefined to check the entire form.
994
+ */
995
+ readonly path?: undefined;
996
+ }
997
+ /**
998
+ * Is field valid config interface.
999
+ */
1000
+ interface IsFieldValidConfig<TSchema extends FormSchema, TFieldPath extends RequiredPath> {
1001
+ /**
1002
+ * The path to the field to check for validity.
1003
+ */
1004
+ readonly path: ValidPath<v.InferInput<TSchema>, TFieldPath>;
1005
+ }
1006
+ /**
1007
+ * Checks whether a specific field or the entire form is valid by walking
1008
+ * through the field store and all its descendants. A field is valid when
1009
+ * neither it nor any of its descendants contains an error. Form-level errors
1010
+ * are included.
1011
+ *
1012
+ * @param form The form store to check for validity.
1013
+ *
1014
+ * @returns Whether the field or form is valid.
1015
+ */
1016
+ declare function isValid<TSchema extends FormSchema>(form: BaseFormStore<TSchema>): boolean;
1017
+ /**
1018
+ * Checks whether a specific field or the entire form is valid by walking
1019
+ * through the field store and all its descendants. A field is valid when
1020
+ * neither it nor any of its descendants contains an error. Form-level errors
1021
+ * are included.
1022
+ *
1023
+ * @param form The form store to check for validity.
1024
+ * @param config The is valid configuration.
1025
+ *
1026
+ * @returns Whether the field or form is valid.
1027
+ */
1028
+ declare function isValid<TSchema extends FormSchema, TFieldPath extends RequiredPath | undefined = undefined>(form: BaseFormStore<TSchema>, config: TFieldPath extends RequiredPath ? IsFieldValidConfig<TSchema, TFieldPath> : IsFormValidConfig): boolean;
1029
+ //#endregion
723
1030
  //#region src/move/move.d.ts
724
1031
  /**
725
1032
  * Move array field config interface.
@@ -835,6 +1142,10 @@ interface ResetBaseConfig {
835
1142
  */
836
1143
  readonly keepTouched?: boolean | undefined;
837
1144
  /**
1145
+ * Whether to keep the edited state during reset. Defaults to false.
1146
+ */
1147
+ readonly keepEdited?: boolean | undefined;
1148
+ /**
838
1149
  * Whether to keep the error messages during reset. Defaults to false.
839
1150
  */
840
1151
  readonly keepErrors?: boolean | undefined;
@@ -1084,6 +1395,10 @@ interface FieldStore<TSchema extends FormSchema = FormSchema, TFieldPath extends
1084
1395
  * Whether the field has been touched.
1085
1396
  */
1086
1397
  readonly isTouched: ReadonlySignal<boolean>;
1398
+ /**
1399
+ * Whether the field value has been edited.
1400
+ */
1401
+ readonly isEdited: ReadonlySignal<boolean>;
1087
1402
  /**
1088
1403
  * Whether the field input differs from its initial value.
1089
1404
  */
@@ -1121,6 +1436,10 @@ interface FieldArrayStore<TSchema extends FormSchema = FormSchema, TFieldArrayPa
1121
1436
  * Whether the field array has been touched.
1122
1437
  */
1123
1438
  readonly isTouched: ReadonlySignal<boolean>;
1439
+ /**
1440
+ * Whether the field array value has been edited.
1441
+ */
1442
+ readonly isEdited: ReadonlySignal<boolean>;
1124
1443
  /**
1125
1444
  * Whether the field array input differs from its initial value.
1126
1445
  */
@@ -1152,6 +1471,10 @@ interface FormStore<TSchema extends FormSchema = FormSchema> extends BaseFormSto
1152
1471
  * Whether any field in the form has been touched.
1153
1472
  */
1154
1473
  readonly isTouched: ReadonlySignal<boolean>;
1474
+ /**
1475
+ * Whether any field in the form has been edited.
1476
+ */
1477
+ readonly isEdited: ReadonlySignal<boolean>;
1155
1478
  /**
1156
1479
  * Whether any field in the form differs from its initial value.
1157
1480
  */
@@ -1164,7 +1487,7 @@ interface FormStore<TSchema extends FormSchema = FormSchema> extends BaseFormSto
1164
1487
  * The current error messages of the form.
1165
1488
  *
1166
1489
  * Hint: This property only contains validation errors at the root level
1167
- * of the form. To get all errors from all fields, use `getAllErrors`.
1490
+ * of the form. To get all errors from all fields, use `getDeepErrors`.
1168
1491
  */
1169
1492
  readonly errors: ReadonlySignal<[string, ...string[]] | null>;
1170
1493
  }
@@ -1194,7 +1517,7 @@ interface FieldProps<TSchema extends FormSchema = FormSchema, TFieldPath extends
1194
1517
  *
1195
1518
  * @returns The UI of the field to be rendered.
1196
1519
  */
1197
- declare const Field: <TSchema extends FormSchema, TFieldPath extends RequiredPath>(props: _qwik_dev_core_internal0.PublicProps<FieldProps<TSchema, TFieldPath>>, key: string | null, flags: number, dev?: _qwik_dev_core_internal0.DevJSX) => JSXOutput;
1520
+ declare const Field: <TSchema extends FormSchema, TFieldPath extends RequiredPath>(props: _qwik_dev_core_internal3.PublicProps<FieldProps<TSchema, TFieldPath>>, key: string | null, flags: number, dev?: _qwik_dev_core_internal3.DevJSX) => JSXOutput;
1198
1521
  //#endregion
1199
1522
  //#region src/components/FieldArray/FieldArray.d.ts
1200
1523
  /**
@@ -1222,7 +1545,7 @@ interface FieldArrayProps<TSchema extends FormSchema = FormSchema, TFieldArrayPa
1222
1545
  *
1223
1546
  * @returns The UI of the field array to be rendered.
1224
1547
  */
1225
- declare const FieldArray: <TSchema extends FormSchema, TFieldArrayPath extends RequiredPath>(props: _qwik_dev_core_internal0.PublicProps<FieldArrayProps<TSchema, TFieldArrayPath>>, key: string | null, flags: number, dev?: _qwik_dev_core_internal0.DevJSX) => JSXOutput;
1548
+ declare const FieldArray: <TSchema extends FormSchema, TFieldArrayPath extends RequiredPath>(props: _qwik_dev_core_internal3.PublicProps<FieldArrayProps<TSchema, TFieldArrayPath>>, key: string | null, flags: number, dev?: _qwik_dev_core_internal3.DevJSX) => JSXOutput;
1226
1549
  //#endregion
1227
1550
  //#region src/components/Form/Form.d.ts
1228
1551
  /**
@@ -1244,7 +1567,7 @@ type FormProps<TSchema extends FormSchema = FormSchema> = Omit<PropsOf<'form'>,
1244
1567
  *
1245
1568
  * @returns The a native form element.
1246
1569
  */
1247
- declare const Form: <TSchema extends FormSchema>(props: _qwik_dev_core_internal0.PublicProps<FormProps<TSchema>>, key: string | null, flags: number, dev?: _qwik_dev_core_internal0.DevJSX) => JSXOutput;
1570
+ declare const Form: <TSchema extends FormSchema>(props: _qwik_dev_core_internal3.PublicProps<FormProps<TSchema>>, key: string | null, flags: number, dev?: _qwik_dev_core_internal3.DevJSX) => JSXOutput;
1248
1571
  //#endregion
1249
1572
  //#region src/hooks/useField/useField.d.ts
1250
1573
  /**
@@ -1306,4 +1629,4 @@ declare function useFormQrl<TSchema extends FormSchema>(configQrl: QRL<() => For
1306
1629
  */
1307
1630
  declare const useForm$: <TSchema extends FormSchema>(qrl: () => FormConfig<TSchema>) => FormStore<TSchema>;
1308
1631
  //#endregion
1309
- export { type DeepPartial, Field, FieldArray, FieldArrayProps, FieldArrayStore, type FieldElement, FieldElementProps, FieldProps, FieldStore, FocusFieldConfig, Form, type FormConfig, FormProps, 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$, useFormQrl, validate };
1632
+ export { DeepErrorEntry, type DeepPartial, Field, FieldArray, FieldArrayProps, FieldArrayStore, type FieldElement, FieldElementProps, FieldProps, FieldStore, FocusFieldConfig, Form, type FormConfig, FormProps, 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$, useFormQrl, validate };