@tanstack/svelte-form 1.33.4 → 2.0.0-alpha.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.
Files changed (86) hide show
  1. package/dist/AppForm/AppForm.svelte +14 -0
  2. package/dist/AppForm/Components.lib.d.ts +7 -0
  3. package/dist/AppForm/Components.lib.js +8 -0
  4. package/dist/AppForm/SvelteAppFormApi.public.d.ts +10 -0
  5. package/dist/AppForm/appFormOptions.public.d.ts +12 -0
  6. package/dist/AppForm/appFormOptions.public.js +1 -0
  7. package/dist/AppForm/componentMap.public.d.ts +7 -0
  8. package/dist/AppForm/componentMap.public.js +1 -0
  9. package/dist/AppForm/contexts.lib.d.ts +4 -0
  10. package/dist/AppForm/contexts.lib.js +16 -0
  11. package/dist/AppForm/createFormHook.public.d.ts +3 -0
  12. package/dist/AppForm/createFormHook.public.js +20 -0
  13. package/dist/AppForm/createFormHookTypes.public.d.ts +12 -0
  14. package/dist/AppForm/createFormHookTypes.public.js +1 -0
  15. package/dist/AppForm/fieldComponentHelpers.lib.d.ts +5 -0
  16. package/dist/AppForm/fieldComponentHelpers.lib.js +10 -0
  17. package/dist/AppForm/getFormHookHelpers.public.d.ts +31 -0
  18. package/dist/AppForm/getFormHookHelpers.public.js +13 -0
  19. package/dist/AppForm/initializeAppForm.lib.d.ts +4 -0
  20. package/dist/AppForm/initializeAppForm.lib.js +5 -0
  21. package/dist/Components.public.d.ts +52 -0
  22. package/dist/Components.public.js +1 -0
  23. package/dist/Field.svelte +125 -314
  24. package/dist/Field.svelte.d.ts +14 -30
  25. package/dist/FieldGroup/FieldGroupApi.public.d.ts +15 -0
  26. package/dist/FieldGroup/FieldGroupApi.public.js +1 -0
  27. package/dist/FieldGroup/withFields.lib.d.ts +5 -0
  28. package/dist/FieldGroup/withFields.lib.js +44 -0
  29. package/dist/FieldGroup/withFields.public.d.ts +70 -0
  30. package/dist/FieldGroup/withFields.public.js +3 -0
  31. package/dist/FormGroup.svelte +81 -302
  32. package/dist/FormGroup.svelte.d.ts +13 -30
  33. package/dist/Subscribe.svelte +18 -8
  34. package/dist/Subscribe.svelte.d.ts +5 -3
  35. package/dist/createForm.public.d.ts +5 -0
  36. package/dist/createForm.public.js +5 -0
  37. package/dist/createForm.svelte.d.ts +11 -27
  38. package/dist/createForm.svelte.js +29 -19
  39. package/dist/formApiTypes.public.d.ts +13 -0
  40. package/dist/formApiTypes.public.js +1 -0
  41. package/dist/formType.public.d.ts +7 -0
  42. package/dist/formType.public.js +1 -0
  43. package/dist/index.d.ts +13 -4
  44. package/dist/index.js +13 -3
  45. package/dist/utils.lib.d.ts +1 -0
  46. package/dist/utils.lib.js +28 -0
  47. package/package.json +5 -5
  48. package/src/AppForm/AppForm.svelte +14 -0
  49. package/src/AppForm/Components.lib.ts +28 -0
  50. package/src/AppForm/SvelteAppFormApi.public.ts +14 -0
  51. package/src/AppForm/appFormOptions.public.ts +57 -0
  52. package/src/AppForm/componentMap.public.ts +19 -0
  53. package/src/AppForm/contexts.lib.ts +24 -0
  54. package/src/AppForm/createFormHook.public.ts +33 -0
  55. package/src/AppForm/createFormHookTypes.public.ts +30 -0
  56. package/src/AppForm/fieldComponentHelpers.lib.ts +24 -0
  57. package/src/AppForm/getFormHookHelpers.public.ts +82 -0
  58. package/src/AppForm/initializeAppForm.lib.ts +18 -0
  59. package/src/Components.public.ts +371 -0
  60. package/src/Field.svelte +125 -314
  61. package/src/FieldGroup/FieldGroupApi.public.ts +100 -0
  62. package/src/FieldGroup/withFields.lib.ts +82 -0
  63. package/src/FieldGroup/withFields.public.ts +179 -0
  64. package/src/FormGroup.svelte +81 -302
  65. package/src/Subscribe.svelte +18 -8
  66. package/src/createForm.public.ts +26 -0
  67. package/src/createForm.svelte.ts +62 -336
  68. package/src/formApiTypes.public.ts +48 -0
  69. package/src/formType.public.ts +46 -0
  70. package/src/index.ts +13 -12
  71. package/src/utils.lib.ts +30 -0
  72. package/dist/AppField.svelte +0 -19
  73. package/dist/AppField.svelte.d.ts +0 -10
  74. package/dist/AppForm.svelte +0 -16
  75. package/dist/InnerAppField.svelte +0 -17
  76. package/dist/InnerAppField.svelte.d.ts +0 -9
  77. package/dist/createFormCreator.svelte.d.ts +0 -26
  78. package/dist/createFormCreator.svelte.js +0 -51
  79. package/dist/types.d.ts +0 -21
  80. package/src/AppField.svelte +0 -19
  81. package/src/AppForm.svelte +0 -16
  82. package/src/InnerAppField.svelte +0 -17
  83. package/src/createFormCreator.svelte.ts +0 -321
  84. package/src/types.ts +0 -567
  85. /package/dist/{AppForm.svelte.d.ts → AppForm/AppForm.svelte.d.ts} +0 -0
  86. /package/dist/{types.js → AppForm/SvelteAppFormApi.public.js} +0 -0
@@ -0,0 +1,371 @@
1
+ import type {
2
+ DeepKeys,
3
+ DeepKeysWhereValueIncludes,
4
+ DeepValue,
5
+ FieldApi,
6
+ FieldApiOptions,
7
+ FieldValidators,
8
+ FormErrorTypes,
9
+ FormGroupApi,
10
+ FormGroupOptions,
11
+ FormGroupState,
12
+ FormGroupValidators,
13
+ FormState,
14
+ ToFieldError,
15
+ ToFormGroupErrorTypes,
16
+ } from '@tanstack/form-core'
17
+ import type {
18
+ Component,
19
+ ComponentConstructorOptions,
20
+ Snippet,
21
+ SvelteComponent,
22
+ } from 'svelte'
23
+
24
+ export type WithoutFunction<T> = {
25
+ [K in keyof T as T[K] extends Function ? never : K]: T[K]
26
+ }
27
+
28
+ type ExactFieldBrand<out TValue> = {
29
+ readonly __tanstackFieldExactType: TValue
30
+ }
31
+ type AcceptsFieldBrand<out TAcceptedValue> = {
32
+ readonly __tanstackFieldAcceptsType: TAcceptedValue
33
+ }
34
+ type CompatibleFieldKey<TKey, TComponent, TTargetValue> =
35
+ TComponent extends ExactFieldBrand<infer TExact>
36
+ ? [TExact] extends [TTargetValue]
37
+ ? [TTargetValue] extends [TExact]
38
+ ? TKey
39
+ : never
40
+ : never
41
+ : TComponent extends AcceptsFieldBrand<infer TLoose>
42
+ ? [TTargetValue] extends [TLoose]
43
+ ? TKey
44
+ : never
45
+ : TKey
46
+ type FilteredFieldComponents<
47
+ TFieldComponents extends Record<string, Component<any>>,
48
+ TTargetValue,
49
+ > = {
50
+ [
51
+ K in keyof TFieldComponents as CompatibleFieldKey<
52
+ K,
53
+ TFieldComponents[K],
54
+ TTargetValue
55
+ >
56
+ ]: TFieldComponents[K]
57
+ }
58
+ type FieldComponentsMatchingType<
59
+ TFieldComponents extends Record<string, Component<any>>,
60
+ TTargetValue,
61
+ > = unknown extends TTargetValue
62
+ ? TFieldComponents
63
+ : string extends keyof TFieldComponents
64
+ ? TFieldComponents
65
+ : FilteredFieldComponents<TFieldComponents, TTargetValue>
66
+
67
+ export type SvelteFieldApi<
68
+ TFieldName,
69
+ TFieldValue,
70
+ TFieldError,
71
+ TFormData,
72
+ TFormErrorTypes extends FormErrorTypes,
73
+ TFieldComponents extends Record<string, Component<any>>,
74
+ > = FieldApi<TFieldName, TFieldValue, TFieldError, TFormData, TFormErrorTypes> &
75
+ FieldComponentsMatchingType<TFieldComponents, TFieldValue>
76
+
77
+ interface SvelteSubscribeProps<TSourceData, TSelected> {
78
+ selector: (state: TSourceData) => TSelected
79
+ when?: (selected: NoInfer<TSelected>) => boolean
80
+ children: Snippet<[NoInfer<TSelected>]>
81
+ }
82
+
83
+ export type SvelteFormSubscribeProps<
84
+ TFormData,
85
+ TFormErrorTypes extends FormErrorTypes,
86
+ TSelected,
87
+ > = SvelteSubscribeProps<FormState<TFormData, TFormErrorTypes>, TSelected>
88
+
89
+ export type SvelteFormSubscribeComponent<
90
+ TFormData,
91
+ TFormErrorTypes extends FormErrorTypes,
92
+ > = (new <TSelected>(
93
+ options: ComponentConstructorOptions<
94
+ SvelteFormSubscribeProps<TFormData, TFormErrorTypes, TSelected>
95
+ >,
96
+ ) => SvelteComponent) &
97
+ Component<any> &
98
+ WithoutFunction<Component>
99
+
100
+ export interface SvelteFormFieldProps<
101
+ TFieldData,
102
+ TFieldName,
103
+ TFieldValue,
104
+ TFieldValidators extends FieldValidators<TFieldData, TFieldName, TFieldValue>,
105
+ TGroupFieldError,
106
+ TFormData,
107
+ TFormErrorTypes extends FormErrorTypes,
108
+ TFieldComponents extends Record<string, Component<any>>,
109
+ > extends FieldApiOptions<
110
+ TFieldData,
111
+ TFieldName,
112
+ TFieldValue,
113
+ TFieldValidators,
114
+ TGroupFieldError,
115
+ TFormData,
116
+ TFormErrorTypes
117
+ > {
118
+ children: Snippet<
119
+ [
120
+ SvelteFieldApi<
121
+ TFieldName,
122
+ TFieldValue,
123
+ ToFieldError<
124
+ NoInfer<TFieldValidators>,
125
+ TGroupFieldError,
126
+ TFormErrorTypes
127
+ >,
128
+ TFormData,
129
+ TFormErrorTypes,
130
+ TFieldComponents
131
+ >,
132
+ ]
133
+ >
134
+ }
135
+
136
+ export type SvelteFormFieldComponent<
137
+ TFormData,
138
+ TFormErrorTypes extends FormErrorTypes,
139
+ TFieldComponents extends Record<string, Component<any>>,
140
+ > = (new <
141
+ TFieldName extends DeepKeys<TFormData>,
142
+ const TFieldValidators extends FieldValidators<
143
+ TFormData,
144
+ TFieldName,
145
+ DeepValue<TFormData, TFieldName>
146
+ >,
147
+ >(
148
+ options: ComponentConstructorOptions<
149
+ SvelteFormFieldProps<
150
+ TFormData,
151
+ TFieldName,
152
+ DeepValue<TFormData, TFieldName>,
153
+ TFieldValidators,
154
+ never,
155
+ TFormData,
156
+ TFormErrorTypes,
157
+ TFieldComponents
158
+ >
159
+ >,
160
+ ) => SvelteComponent) &
161
+ Component<any> &
162
+ WithoutFunction<Component>
163
+
164
+ export type SvelteFormArrayFieldComponent<
165
+ TFormData,
166
+ TFormErrorTypes extends FormErrorTypes,
167
+ TFieldComponents extends Record<string, Component<any>>,
168
+ > = (new <
169
+ TFieldName extends DeepKeysWhereValueIncludes<TFormData, Array<any>>,
170
+ const TFieldValidators extends FieldValidators<
171
+ TFormData,
172
+ TFieldName,
173
+ DeepValue<TFormData, TFieldName>
174
+ >,
175
+ >(
176
+ options: ComponentConstructorOptions<
177
+ SvelteFormFieldProps<
178
+ TFormData,
179
+ TFieldName,
180
+ DeepValue<TFormData, TFieldName>,
181
+ TFieldValidators,
182
+ never,
183
+ TFormData,
184
+ TFormErrorTypes,
185
+ TFieldComponents
186
+ >
187
+ >,
188
+ ) => SvelteComponent) &
189
+ Component<any> &
190
+ WithoutFunction<Component>
191
+
192
+ export type SvelteFormGroupSubscribeComponent<
193
+ TGroupValue,
194
+ TGroupErrorTypes extends FormErrorTypes,
195
+ > = (new <TSelected>(
196
+ options: ComponentConstructorOptions<
197
+ SvelteSubscribeProps<
198
+ FormGroupState<TGroupValue, TGroupErrorTypes>,
199
+ TSelected
200
+ >
201
+ >,
202
+ ) => SvelteComponent) &
203
+ Component<any> &
204
+ WithoutFunction<Component>
205
+
206
+ export type SvelteFormGroupFieldComponent<
207
+ TFormData,
208
+ TGroupValue,
209
+ TGroupErrorTypes extends FormErrorTypes,
210
+ TFormErrorTypes extends FormErrorTypes,
211
+ TFieldComponents extends Record<string, Component<any>>,
212
+ > = (new <
213
+ TFieldName extends DeepKeys<TGroupValue>,
214
+ const TFieldValidators extends FieldValidators<
215
+ TGroupValue,
216
+ TFieldName,
217
+ DeepValue<TGroupValue, TFieldName>
218
+ >,
219
+ >(
220
+ options: ComponentConstructorOptions<
221
+ SvelteFormFieldProps<
222
+ TGroupValue,
223
+ TFieldName,
224
+ DeepValue<TGroupValue, TFieldName>,
225
+ TFieldValidators,
226
+ TGroupErrorTypes['fieldError'],
227
+ TFormData,
228
+ TFormErrorTypes,
229
+ TFieldComponents
230
+ >
231
+ >,
232
+ ) => SvelteComponent) &
233
+ Component<any> &
234
+ WithoutFunction<Component>
235
+
236
+ export type SvelteFormGroupArrayFieldComponent<
237
+ TFormData,
238
+ TGroupValue,
239
+ TGroupErrorTypes extends FormErrorTypes,
240
+ TFormErrorTypes extends FormErrorTypes,
241
+ TFieldComponents extends Record<string, Component<any>>,
242
+ > = (new <
243
+ TFieldName extends DeepKeysWhereValueIncludes<TGroupValue, Array<any>>,
244
+ const TFieldValidators extends FieldValidators<
245
+ TGroupValue,
246
+ TFieldName,
247
+ DeepValue<TGroupValue, TFieldName>
248
+ >,
249
+ >(
250
+ options: ComponentConstructorOptions<
251
+ SvelteFormFieldProps<
252
+ TGroupValue,
253
+ TFieldName,
254
+ DeepValue<TGroupValue, TFieldName>,
255
+ TFieldValidators,
256
+ TGroupErrorTypes['fieldError'],
257
+ TFormData,
258
+ TFormErrorTypes,
259
+ TFieldComponents
260
+ >
261
+ >,
262
+ ) => SvelteComponent) &
263
+ Component<any> &
264
+ WithoutFunction<Component>
265
+
266
+ export interface SvelteFormGroupApi<
267
+ TFormData,
268
+ TGroupName,
269
+ TGroupValue,
270
+ TGroupErrorTypes extends FormErrorTypes,
271
+ TFormErrorTypes extends FormErrorTypes,
272
+ TFieldComponents extends Record<string, Component<any>>,
273
+ > extends FormGroupApi<
274
+ TFormData,
275
+ TGroupName,
276
+ TGroupValue,
277
+ TGroupErrorTypes,
278
+ TFormErrorTypes
279
+ > {
280
+ Field: SvelteFormGroupFieldComponent<
281
+ TFormData,
282
+ TGroupValue,
283
+ TGroupErrorTypes,
284
+ TFormErrorTypes,
285
+ TFieldComponents
286
+ >
287
+ ArrayField: SvelteFormGroupArrayFieldComponent<
288
+ TFormData,
289
+ TGroupValue,
290
+ TGroupErrorTypes,
291
+ TFormErrorTypes,
292
+ TFieldComponents
293
+ >
294
+ Subscribe: SvelteFormGroupSubscribeComponent<TGroupValue, TGroupErrorTypes>
295
+ }
296
+
297
+ export interface SvelteFormGroupProps<
298
+ TFormData,
299
+ TGroupName,
300
+ TGroupValue,
301
+ TGroupValidators extends FormGroupValidators<TGroupValue>,
302
+ TFormErrorTypes extends FormErrorTypes,
303
+ TFieldComponents extends Record<string, Component<any>>,
304
+ > extends Omit<
305
+ FormGroupOptions<
306
+ TFormData,
307
+ TGroupName,
308
+ TGroupValue,
309
+ TGroupValidators,
310
+ TFormErrorTypes
311
+ >,
312
+ 'form'
313
+ > {
314
+ children: Snippet<
315
+ [
316
+ SvelteFormGroupApi<
317
+ TFormData,
318
+ TGroupName,
319
+ TGroupValue,
320
+ ToFormGroupErrorTypes<NoInfer<TGroupValidators>>,
321
+ TFormErrorTypes,
322
+ TFieldComponents
323
+ >,
324
+ ]
325
+ >
326
+ }
327
+
328
+ export type SvelteFormGroupComponent<
329
+ TFormData,
330
+ TFormErrorTypes extends FormErrorTypes,
331
+ TFieldComponents extends Record<string, Component<any>>,
332
+ > = (new <
333
+ TGroupName extends DeepKeys<TFormData>,
334
+ TGroupValue extends DeepValue<TFormData, TGroupName>,
335
+ const TGroupValidators extends FormGroupValidators<TGroupValue>,
336
+ >(
337
+ options: ComponentConstructorOptions<
338
+ SvelteFormGroupProps<
339
+ TFormData,
340
+ TGroupName,
341
+ TGroupValue,
342
+ TGroupValidators,
343
+ TFormErrorTypes,
344
+ TFieldComponents
345
+ >
346
+ >,
347
+ ) => SvelteComponent) &
348
+ Component<any> &
349
+ WithoutFunction<Component>
350
+
351
+ export interface SvelteTanStackFormComponents<
352
+ TFormData,
353
+ TFormErrorTypes extends FormErrorTypes,
354
+ TFieldComponents extends Record<string, Component<any>> = Record<
355
+ never,
356
+ never
357
+ >,
358
+ > {
359
+ Field: SvelteFormFieldComponent<TFormData, TFormErrorTypes, TFieldComponents>
360
+ ArrayField: SvelteFormArrayFieldComponent<
361
+ TFormData,
362
+ TFormErrorTypes,
363
+ TFieldComponents
364
+ >
365
+ Subscribe: SvelteFormSubscribeComponent<TFormData, TFormErrorTypes>
366
+ FormGroup: SvelteFormGroupComponent<
367
+ TFormData,
368
+ TFormErrorTypes,
369
+ TFieldComponents
370
+ >
371
+ }