@wise/dynamic-flow-types 4.12.0 → 4.12.2

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.
@@ -2,89 +2,65 @@
2
2
  import { z } from 'zod';
3
3
  import {
4
4
  type JsonElement,
5
- type SearchInitialState,
6
- type SearchInitialLayoutConfig,
5
+ type Step,
6
+ type Schema,
7
7
  type Layout,
8
- type SearchResponse,
9
- type SearchLayoutResponseBody,
10
- type SubflowResponseBody,
11
- type Behavior,
12
- type ModalResponseBody,
13
- type AdditionalInfo,
14
- type ModalBehavior,
15
- type SubflowBehavior,
16
- type LinkHandler,
17
8
  type Polling,
18
- type PollingOnError,
9
+ type LinkHandler,
19
10
  type Toolbar,
20
- type ToolbarItem,
11
+ type PollingOnError,
12
+ type Behavior,
21
13
  type ToolbarButton,
14
+ type ToolbarItem,
22
15
  type PersistAsync,
23
- type Schema,
24
- type AllOfSchema,
25
- type AlertLayout,
26
- type ArraySchemaList,
27
- type OneOfSchema,
28
- type ArraySchema,
29
- type BlobSchema,
30
- type BooleanSchema,
31
- type ConstSchema,
32
- type IntegerSchema,
33
- type NumberSchema,
34
- type ObjectSchema,
35
- type StringSchema,
36
- type ArraySchemaTuple,
37
- type StatusListLayoutItem,
38
- type ItemCallToAction,
39
- type DecisionLayout,
40
- type DecisionLayoutOption,
41
- type ReviewLayoutCallToAction,
16
+ type SubflowBehavior,
17
+ type ModalBehavior,
42
18
  type UpsellLayout,
43
19
  type UpsellLayoutCallToAction,
44
20
  type AlertLayoutCallToAction,
45
- type ColumnsLayout,
46
- type TabsLayoutTab,
47
- type ModalLayoutContent,
48
- type StatusListLayout,
21
+ type AlertLayout,
22
+ type BoxLayout,
49
23
  type ButtonLayout,
24
+ type ColumnsLayout,
25
+ type DecisionLayout,
26
+ type ListLayout,
50
27
  type ModalLayout,
51
- type BoxLayout,
52
- type ListLayoutCallToAction,
53
28
  type ReviewLayout,
54
- type ReviewLayoutField,
55
- type ListLayout,
56
29
  type SearchLayout,
57
30
  type SectionLayout,
31
+ type StatusListLayout,
58
32
  type TabsLayout,
59
- type ListLayoutItem,
33
+ type DecisionLayoutOption,
34
+ type TabsLayoutTab,
35
+ type SearchInitialState,
60
36
  type SectionLayoutCallToAction,
61
- type Step,
37
+ type ListLayoutItem,
38
+ type AdditionalInfo,
39
+ type ListLayoutCallToAction,
40
+ type ReviewLayoutField,
41
+ type ReviewLayoutCallToAction,
42
+ type StatusListLayoutItem,
43
+ type ModalLayoutContent,
44
+ type ItemCallToAction,
45
+ type SubflowResponseBody,
46
+ type SearchInitialLayoutConfig,
47
+ type SearchResponse,
48
+ type SearchLayoutResponseBody,
49
+ type ModalResponseBody,
50
+ type ArraySchemaList,
51
+ type NumberSchema,
52
+ type OneOfSchema,
53
+ type ArraySchemaTuple,
54
+ type ArraySchema,
55
+ type AllOfSchema,
56
+ type BlobSchema,
57
+ type BooleanSchema,
58
+ type ConstSchema,
59
+ type IntegerSchema,
60
+ type ObjectSchema,
61
+ type StringSchema,
62
62
  } from '../spec';
63
63
 
64
- export const noOpResponseBodySchema = z.object({});
65
-
66
- export const httpMethodSchema = z.union([
67
- z.literal('GET'),
68
- z.literal('POST'),
69
- z.literal('PUT'),
70
- z.literal('PATCH'),
71
- z.literal('DELETE'),
72
- ]);
73
-
74
- export const imageSchema = z.object({
75
- text: z.string().optional(),
76
- url: z.string().optional(),
77
- uri: z.string().optional(),
78
- accessibilityDescription: z.string().optional(),
79
- });
80
-
81
- export const searchSearchRequestSchema = z.object({
82
- url: z.string(),
83
- method: httpMethodSchema,
84
- param: z.string(),
85
- query: z.string(),
86
- });
87
-
88
64
  export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
89
65
  z
90
66
  .union([
@@ -97,26 +73,32 @@ export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
97
73
  .nullable(),
98
74
  );
99
75
 
100
- export const avatarTextContentSchema = z.object({
101
- type: z.literal('text'),
102
- text: z.string(),
103
- badgeUri: z.string().optional(),
76
+ export const externalSchema = z.object({
77
+ url: z.string(),
104
78
  });
105
79
 
106
- export const avatarUriContentSchema = z.object({
107
- type: z.literal('uri'),
108
- uri: z.string(),
109
- badgeUri: z.string().optional(),
80
+ export const stepErrorSchema = z.object({
81
+ error: z.string().optional(),
82
+ validation: jsonElementSchema.optional(),
110
83
  });
111
84
 
112
- export const mediaImageSchema = z.object({
113
- type: z.literal('image'),
114
- uri: z.string(),
115
- accessibilityDescription: z.string().optional(),
85
+ export const copyBehaviorSchema = z.object({
86
+ type: z.literal('copy'),
87
+ content: z.string(),
116
88
  });
117
89
 
118
- export const iconTextSchema = z.object({
119
- text: z.string(),
90
+ export const summaryProviderSchema = z.object({
91
+ providesTitle: z.boolean().optional(),
92
+ providesDescription: z.boolean().optional(),
93
+ providesIcon: z.boolean().optional(),
94
+ providesImage: z.boolean().optional(),
95
+ providesMedia: z.boolean().optional(),
96
+ });
97
+
98
+ export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
99
+
100
+ export const dismissBehaviorSchema = z.object({
101
+ type: z.literal('dismiss'),
120
102
  });
121
103
 
122
104
  export const contextSchema = z.union([
@@ -130,6 +112,40 @@ export const contextSchema = z.union([
130
112
  z.literal('primary'),
131
113
  ]);
132
114
 
115
+ export const actionTypeSchema = z.union([
116
+ z.literal('primary'),
117
+ z.literal('secondary'),
118
+ z.literal('link'),
119
+ z.literal('positive'),
120
+ z.literal('negative'),
121
+ ]);
122
+
123
+ export const httpMethodSchema = z.union([
124
+ z.literal('GET'),
125
+ z.literal('POST'),
126
+ z.literal('PUT'),
127
+ z.literal('PATCH'),
128
+ z.literal('DELETE'),
129
+ ]);
130
+
131
+ export const helpSchema = z.object({
132
+ markdown: z.string(),
133
+ });
134
+
135
+ export const validateAsyncSchema = z.object({
136
+ param: z.string(),
137
+ method: httpMethodSchema,
138
+ url: z.string(),
139
+ });
140
+
141
+ export const modalPresentationSchema = z.object({
142
+ type: z.literal('modal'),
143
+ });
144
+
145
+ export const pushPresentationSchema = z.object({
146
+ type: z.literal('push'),
147
+ });
148
+
133
149
  export const requestSchema = z.object({
134
150
  url: z.string(),
135
151
  method: httpMethodSchema,
@@ -137,6 +153,67 @@ export const requestSchema = z.object({
137
153
  prefetch: z.boolean().optional(),
138
154
  });
139
155
 
156
+ export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
157
+
158
+ export const navigationStackBehaviorSchema = z.union([
159
+ z.literal('default'),
160
+ z.literal('remove-previous'),
161
+ z.literal('remove-all'),
162
+ z.literal('replace-current'),
163
+ ]);
164
+
165
+ export const actionSchema = z.object({
166
+ title: z.string().optional(),
167
+ type: actionTypeSchema.optional(),
168
+ disabled: z.boolean().optional(),
169
+ $id: z.string().optional(),
170
+ $ref: z.string().optional(),
171
+ id: z.string().optional(),
172
+ url: z.string().optional(),
173
+ method: httpMethodSchema.optional(),
174
+ exit: z.boolean().optional(),
175
+ result: jsonElementSchema.optional(),
176
+ data: jsonElementSchema.optional(),
177
+ timeout: z.number().optional(),
178
+ skipValidation: z.boolean().optional(),
179
+ prefetch: z.boolean().optional(),
180
+ });
181
+
182
+ export const linkBehaviorSchema = z.object({
183
+ type: z.literal('link'),
184
+ url: z.string(),
185
+ });
186
+
187
+ export const navigationBackBehaviorSchema = z.object({
188
+ title: z.string().optional(),
189
+ action: actionSchema,
190
+ });
191
+
192
+ export const imageSchema = z.object({
193
+ text: z.string().optional(),
194
+ url: z.string().optional(),
195
+ uri: z.string().optional(),
196
+ accessibilityDescription: z.string().optional(),
197
+ });
198
+
199
+ export const actionBehaviorSchema = z.object({
200
+ type: z.literal('action'),
201
+ action: actionSchema,
202
+ });
203
+
204
+ export const refreshBehaviorSchema = z.object({
205
+ type: z.literal('refresh'),
206
+ });
207
+
208
+ export const linkSchema = z.object({
209
+ url: z.string(),
210
+ });
211
+
212
+ export const containerBehaviorSchema = z.object({
213
+ action: actionSchema.optional(),
214
+ link: linkSchema.optional(),
215
+ });
216
+
140
217
  export const sizeSchema = z.union([
141
218
  z.literal('xs'),
142
219
  z.literal('sm'),
@@ -145,21 +222,204 @@ export const sizeSchema = z.union([
145
222
  z.literal('xl'),
146
223
  ]);
147
224
 
148
- export const iconNamedSchema = z.object({
149
- name: z.string(),
225
+ export const instructionsLayoutItemSchema = z.object({
226
+ text: z.string(),
227
+ context: contextSchema,
228
+ tag: z.string().optional(),
229
+ analyticsId: z.string().optional(),
230
+ tags: z.array(z.string()).optional(),
150
231
  });
151
232
 
152
- export const autocapitalizationTypeSchema = z.union([
153
- z.literal('none'),
154
- z.literal('characters'),
155
- z.literal('sentences'),
156
- z.literal('words'),
157
- ]);
158
-
159
- export const supportingValuesSchema = z.object({
160
- value: z.string().optional(),
161
- subvalue: z.string().optional(),
162
- });
233
+ export const dividerLayoutSchema = z.object({
234
+ type: z.literal('divider'),
235
+ control: z.string().optional(),
236
+ margin: sizeSchema.optional(),
237
+ analyticsId: z.string().optional(),
238
+ tags: z.array(z.string()).optional(),
239
+ });
240
+
241
+ export const instructionsLayoutSchema = z.object({
242
+ type: z.literal('instructions'),
243
+ title: z.string().optional(),
244
+ items: z.array(instructionsLayoutItemSchema),
245
+ control: z.string().optional(),
246
+ margin: sizeSchema.optional(),
247
+ analyticsId: z.string().optional(),
248
+ tags: z.array(z.string()).optional(),
249
+ });
250
+
251
+ export const loadingIndicatorLayoutSchema = z.object({
252
+ type: z.literal('loading-indicator'),
253
+ size: sizeSchema.optional(),
254
+ control: z.string().optional(),
255
+ margin: sizeSchema.optional(),
256
+ analyticsId: z.string().optional(),
257
+ tags: z.array(z.string()).optional(),
258
+ });
259
+
260
+ export const progressLayoutSchema = z.object({
261
+ type: z.literal('progress'),
262
+ title: z.string().optional(),
263
+ description: z.string().optional(),
264
+ progress: z.number(),
265
+ progressText: z.string(),
266
+ context: contextSchema.optional(),
267
+ help: helpSchema.optional(),
268
+ control: z.string().optional(),
269
+ margin: sizeSchema.optional(),
270
+ analyticsId: z.string().optional(),
271
+ tags: z.array(z.string()).optional(),
272
+ });
273
+
274
+ export const columnsLayoutBiasSchema = z.union([
275
+ z.literal('none'),
276
+ z.literal('left'),
277
+ z.literal('right'),
278
+ ]);
279
+
280
+ export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
281
+
282
+ export const listLayoutStatusSchema = z.union([
283
+ z.literal('warning'),
284
+ z.literal('neutral'),
285
+ z.literal('positive'),
286
+ ]);
287
+
288
+ export const supportingValuesSchema = z.object({
289
+ value: z.string().optional(),
290
+ subvalue: z.string().optional(),
291
+ });
292
+
293
+ export const inlineAlertSchema = z.object({
294
+ content: z.string(),
295
+ context: contextSchema.optional(),
296
+ });
297
+
298
+ export const formLayoutSchemaReferenceSchema = z.object({
299
+ $ref: z.string(),
300
+ });
301
+
302
+ export const statusListLayoutStatusSchema = z.union([
303
+ z.literal('not-done'),
304
+ z.literal('pending'),
305
+ z.literal('done'),
306
+ ]);
307
+
308
+ export const modalLayoutTriggerSchema = z.object({
309
+ title: z.string(),
310
+ });
311
+
312
+ export const imageLayoutSchema = z.object({
313
+ type: z.literal('image'),
314
+ text: z.string().optional(),
315
+ url: z.string().optional(),
316
+ accessibilityDescription: z.string().optional(),
317
+ content: imageSchema.optional(),
318
+ size: sizeSchema.optional(),
319
+ control: z.string().optional(),
320
+ margin: sizeSchema.optional(),
321
+ align: alignSchema.optional(),
322
+ analyticsId: z.string().optional(),
323
+ tags: z.array(z.string()).optional(),
324
+ });
325
+
326
+ export const formLayoutSchema = z.object({
327
+ type: z.literal('form'),
328
+ schema: formLayoutSchemaReferenceSchema.optional(),
329
+ schemaId: z.string(),
330
+ control: z.string().optional(),
331
+ margin: sizeSchema.optional(),
332
+ analyticsId: z.string().optional(),
333
+ tags: z.array(z.string()).optional(),
334
+ });
335
+
336
+ export const infoLayoutSchema = z.object({
337
+ type: z.literal('info'),
338
+ tags: z.array(z.string()).optional(),
339
+ markdown: z.string(),
340
+ align: alignSchema.optional(),
341
+ control: z.string().optional(),
342
+ margin: sizeSchema.optional(),
343
+ analyticsId: z.string().optional(),
344
+ });
345
+
346
+ export const markdownLayoutSchema = z.object({
347
+ type: z.literal('markdown'),
348
+ content: z.string(),
349
+ align: alignSchema.optional(),
350
+ control: z.string().optional(),
351
+ margin: sizeSchema.optional(),
352
+ analyticsId: z.string().optional(),
353
+ tags: z.array(z.string()).optional(),
354
+ size: sizeSchema.optional(),
355
+ });
356
+
357
+ export const paragraphLayoutSchema = z.object({
358
+ type: z.literal('paragraph'),
359
+ text: z.string(),
360
+ align: alignSchema.optional(),
361
+ control: z.string().optional(),
362
+ margin: sizeSchema.optional(),
363
+ analyticsId: z.string().optional(),
364
+ tags: z.array(z.string()).optional(),
365
+ size: sizeSchema.optional(),
366
+ });
367
+
368
+ export const noOpResponseBodySchema = z.object({});
369
+
370
+ export const actionResponseBodySchema = z.object({
371
+ action: actionSchema,
372
+ });
373
+
374
+ export const searchSearchRequestSchema = z.object({
375
+ url: z.string(),
376
+ method: httpMethodSchema,
377
+ param: z.string(),
378
+ query: z.string(),
379
+ });
380
+
381
+ export const errorResponseBodySchema = z.object({
382
+ refreshFormUrl: z.string().optional(),
383
+ analytics: z.record(z.string()).optional(),
384
+ error: z.string().optional(),
385
+ validation: jsonElementSchema.optional(),
386
+ refreshUrl: z.string().optional(),
387
+ });
388
+
389
+ export const iconTextSchema = z.object({
390
+ text: z.string(),
391
+ });
392
+
393
+ export const iconNamedSchema = z.object({
394
+ name: z.string(),
395
+ });
396
+
397
+ export const autocapitalizationTypeSchema = z.union([
398
+ z.literal('none'),
399
+ z.literal('characters'),
400
+ z.literal('sentences'),
401
+ z.literal('words'),
402
+ ]);
403
+
404
+ export const mediaImageSchema = z.object({
405
+ type: z.literal('image'),
406
+ uri: z.string(),
407
+ accessibilityDescription: z.string().optional(),
408
+ });
409
+
410
+ export const avatarTextContentSchema = z.object({
411
+ type: z.literal('text'),
412
+ text: z.string(),
413
+ badgeUri: z.string().optional(),
414
+ });
415
+
416
+ export const avatarUriContentSchema = z.object({
417
+ type: z.literal('uri'),
418
+ uri: z.string(),
419
+ badgeUri: z.string().optional(),
420
+ });
421
+
422
+ export const avatarContentSchema = z.union([avatarTextContentSchema, avatarUriContentSchema]);
163
423
 
164
424
  export const autocompleteTokenSchema = z.union([
165
425
  z.literal('on'),
@@ -227,313 +487,59 @@ export const autocompleteTokenSchema = z.union([
227
487
  z.literal('pager'),
228
488
  ]);
229
489
 
230
- export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
490
+ export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
231
491
 
232
- export const navigationStackBehaviorSchema = z.union([
233
- z.literal('default'),
234
- z.literal('remove-previous'),
235
- z.literal('remove-all'),
236
- z.literal('replace-current'),
492
+ export const stringSchemaFormatSchema = z.union([
493
+ z.literal('date'),
494
+ z.literal('email'),
495
+ z.literal('numeric'),
496
+ z.literal('password'),
497
+ z.literal('phone-number'),
498
+ z.literal('base64url'),
237
499
  ]);
238
500
 
239
- export const externalSchema = z.object({
240
- url: z.string(),
501
+ export const navigationSchema = z.object({
502
+ backButton: navigationBackBehaviorSchema.optional(),
503
+ back: navigationBackBehaviorSchema.optional(),
504
+ stackBehavior: navigationStackBehaviorSchema.optional(),
241
505
  });
242
506
 
243
- export const refreshBehaviorSchema = z.object({
244
- type: z.literal('refresh'),
507
+ export const dynamicLaunchConfigSchema = z.object({
508
+ type: z.literal('dynamic'),
509
+ request: requestSchema,
510
+ presentation: presentationSchema,
245
511
  });
246
512
 
247
- export const stepErrorSchema = z.object({
248
- error: z.string().optional(),
249
- validation: jsonElementSchema.optional(),
250
- });
513
+ export const launchConfigSchema = dynamicLaunchConfigSchema;
251
514
 
252
- export const modalPresentationSchema = z.object({
253
- type: z.literal('modal'),
515
+ export const headingLayoutSchema = z.object({
516
+ type: z.literal('heading'),
517
+ text: z.string(),
518
+ size: sizeSchema.optional(),
519
+ align: alignSchema.optional(),
520
+ control: z.string().optional(),
521
+ margin: sizeSchema.optional(),
522
+ analyticsId: z.string().optional(),
523
+ tags: z.array(z.string()).optional(),
254
524
  });
255
525
 
256
- export const pushPresentationSchema = z.object({
257
- type: z.literal('push'),
526
+ export const mediaAvatarSchema = z.object({
527
+ type: z.literal('avatar'),
528
+ content: z.array(avatarContentSchema),
529
+ accessibilityDescription: z.string().optional(),
258
530
  });
259
531
 
260
- export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
261
-
262
- export const copyBehaviorSchema = z.object({
263
- type: z.literal('copy'),
264
- content: z.string(),
265
- });
532
+ export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
266
533
 
267
- export const dismissBehaviorSchema = z.object({
268
- type: z.literal('dismiss'),
269
- });
270
-
271
- export const linkBehaviorSchema = z.object({
272
- type: z.literal('link'),
273
- url: z.string(),
274
- });
275
-
276
- export const validateAsyncSchema = z.object({
277
- param: z.string(),
278
- method: httpMethodSchema,
279
- url: z.string(),
280
- });
281
-
282
- export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
283
-
284
- export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
285
-
286
- export const linkSchema = z.object({
287
- url: z.string(),
288
- });
289
-
290
- export const actionTypeSchema = z.union([
291
- z.literal('primary'),
292
- z.literal('secondary'),
293
- z.literal('link'),
294
- z.literal('positive'),
295
- z.literal('negative'),
296
- ]);
297
-
298
- export const summaryProviderSchema = z.object({
299
- providesTitle: z.boolean().optional(),
300
- providesDescription: z.boolean().optional(),
301
- providesIcon: z.boolean().optional(),
302
- providesImage: z.boolean().optional(),
303
- providesMedia: z.boolean().optional(),
304
- });
305
-
306
- export const actionSchema = z.object({
307
- title: z.string().optional(),
308
- type: actionTypeSchema.optional(),
309
- disabled: z.boolean().optional(),
310
- $id: z.string().optional(),
311
- $ref: z.string().optional(),
312
- id: z.string().optional(),
313
- url: z.string().optional(),
314
- method: httpMethodSchema.optional(),
315
- exit: z.boolean().optional(),
316
- result: jsonElementSchema.optional(),
317
- data: jsonElementSchema.optional(),
318
- timeout: z.number().optional(),
319
- skipValidation: z.boolean().optional(),
320
- prefetch: z.boolean().optional(),
321
- });
322
-
323
- export const helpSchema = z.object({
324
- markdown: z.string(),
325
- });
326
-
327
- export const actionBehaviorSchema = z.object({
328
- type: z.literal('action'),
329
- action: actionSchema,
330
- });
331
-
332
- export const inlineAlertSchema = z.object({
333
- content: z.string(),
334
- context: contextSchema.optional(),
335
- });
336
-
337
- export const stringSchemaFormatSchema = z.union([
338
- z.literal('date'),
339
- z.literal('email'),
340
- z.literal('numeric'),
341
- z.literal('password'),
342
- z.literal('phone-number'),
343
- z.literal('base64url'),
344
- ]);
345
-
346
- export const statusListLayoutStatusSchema = z.union([
347
- z.literal('not-done'),
348
- z.literal('pending'),
349
- z.literal('done'),
350
- ]);
351
-
352
- export const modalLayoutTriggerSchema = z.object({
353
- title: z.string(),
354
- });
355
-
356
- export const markdownLayoutSchema = z.object({
357
- type: z.literal('markdown'),
358
- content: z.string(),
359
- align: alignSchema.optional(),
360
- control: z.string().optional(),
361
- margin: sizeSchema.optional(),
362
- analyticsId: z.string().optional(),
363
- tags: z.array(z.string()).optional(),
364
- size: sizeSchema.optional(),
365
- });
366
-
367
- export const imageLayoutSchema = z.object({
368
- type: z.literal('image'),
369
- text: z.string().optional(),
370
- url: z.string().optional(),
371
- accessibilityDescription: z.string().optional(),
372
- content: imageSchema.optional(),
373
- size: sizeSchema.optional(),
374
- control: z.string().optional(),
375
- margin: sizeSchema.optional(),
376
- align: alignSchema.optional(),
377
- analyticsId: z.string().optional(),
378
- tags: z.array(z.string()).optional(),
379
- });
380
-
381
- export const columnsLayoutBiasSchema = z.union([
382
- z.literal('none'),
383
- z.literal('left'),
384
- z.literal('right'),
385
- ]);
386
-
387
- export const listLayoutStatusSchema = z.union([
388
- z.literal('warning'),
389
- z.literal('neutral'),
390
- z.literal('positive'),
391
- ]);
392
-
393
- export const headingLayoutSchema = z.object({
394
- type: z.literal('heading'),
395
- text: z.string(),
396
- size: sizeSchema.optional(),
397
- align: alignSchema.optional(),
398
- control: z.string().optional(),
399
- margin: sizeSchema.optional(),
400
- analyticsId: z.string().optional(),
401
- tags: z.array(z.string()).optional(),
402
- });
403
-
404
- export const instructionsLayoutItemSchema = z.object({
405
- text: z.string(),
406
- context: contextSchema,
407
- tag: z.string().optional(),
408
- analyticsId: z.string().optional(),
409
- tags: z.array(z.string()).optional(),
410
- });
411
-
412
- export const progressLayoutSchema = z.object({
413
- type: z.literal('progress'),
414
- title: z.string().optional(),
415
- description: z.string().optional(),
416
- progress: z.number(),
417
- progressText: z.string(),
418
- context: contextSchema.optional(),
419
- help: helpSchema.optional(),
420
- control: z.string().optional(),
421
- margin: sizeSchema.optional(),
422
- analyticsId: z.string().optional(),
423
- tags: z.array(z.string()).optional(),
424
- });
425
-
426
- export const paragraphLayoutSchema = z.object({
427
- type: z.literal('paragraph'),
428
- text: z.string(),
429
- align: alignSchema.optional(),
430
- control: z.string().optional(),
431
- margin: sizeSchema.optional(),
432
- analyticsId: z.string().optional(),
433
- tags: z.array(z.string()).optional(),
434
- size: sizeSchema.optional(),
435
- });
436
-
437
- export const loadingIndicatorLayoutSchema = z.object({
438
- type: z.literal('loading-indicator'),
439
- size: sizeSchema.optional(),
440
- control: z.string().optional(),
441
- margin: sizeSchema.optional(),
442
- analyticsId: z.string().optional(),
443
- tags: z.array(z.string()).optional(),
444
- });
445
-
446
- export const formLayoutSchemaReferenceSchema = z.object({
447
- $ref: z.string(),
448
- });
449
-
450
- export const formLayoutSchema = z.object({
451
- type: z.literal('form'),
452
- schema: formLayoutSchemaReferenceSchema.optional(),
453
- schemaId: z.string(),
454
- control: z.string().optional(),
455
- margin: sizeSchema.optional(),
456
- analyticsId: z.string().optional(),
457
- tags: z.array(z.string()).optional(),
458
- });
459
-
460
- export const dividerLayoutSchema = z.object({
461
- type: z.literal('divider'),
462
- control: z.string().optional(),
463
- margin: sizeSchema.optional(),
464
- analyticsId: z.string().optional(),
465
- tags: z.array(z.string()).optional(),
466
- });
467
-
468
- export const instructionsLayoutSchema = z.object({
469
- type: z.literal('instructions'),
470
- title: z.string().optional(),
471
- items: z.array(instructionsLayoutItemSchema),
472
- control: z.string().optional(),
473
- margin: sizeSchema.optional(),
474
- analyticsId: z.string().optional(),
475
- tags: z.array(z.string()).optional(),
476
- });
477
-
478
- export const infoLayoutSchema = z.object({
479
- type: z.literal('info'),
480
- tags: z.array(z.string()).optional(),
481
- markdown: z.string(),
482
- align: alignSchema.optional(),
483
- control: z.string().optional(),
484
- margin: sizeSchema.optional(),
485
- analyticsId: z.string().optional(),
486
- });
487
-
488
- export const actionResponseBodySchema = z.object({
489
- action: actionSchema,
490
- });
491
-
492
- export const errorResponseBodySchema = z.object({
493
- refreshFormUrl: z.string().optional(),
494
- analytics: z.record(z.string()).optional(),
495
- error: z.string().optional(),
496
- validation: jsonElementSchema.optional(),
497
- refreshUrl: z.string().optional(),
498
- });
499
-
500
- export const avatarContentSchema = z.union([avatarTextContentSchema, avatarUriContentSchema]);
501
-
502
- export const mediaAvatarSchema = z.object({
503
- type: z.literal('avatar'),
504
- content: z.array(avatarContentSchema),
505
- accessibilityDescription: z.string().optional(),
506
- });
507
-
508
- export const navigationBackBehaviorSchema = z.object({
509
- title: z.string().optional(),
510
- action: actionSchema,
511
- });
512
-
513
- export const dynamicLaunchConfigSchema = z.object({
514
- type: z.literal('dynamic'),
515
- request: requestSchema,
516
- presentation: presentationSchema,
517
- });
518
-
519
- export const containerBehaviorSchema = z.object({
520
- action: actionSchema.optional(),
521
- link: linkSchema.optional(),
522
- });
523
-
524
- export const launchConfigSchema = dynamicLaunchConfigSchema;
525
-
526
- export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
527
-
528
- export const suggestionsValueSchema = z.object({
529
- label: z.string(),
530
- value: jsonElementSchema,
531
- icon: iconSchema.optional(),
532
- image: imageSchema.optional(),
533
- tag: z.string().optional(),
534
- media: mediaSchema.optional(),
535
- analyticsId: z.string().optional(),
536
- tags: z.array(z.string()).optional(),
534
+ export const suggestionsValueSchema = z.object({
535
+ label: z.string(),
536
+ value: jsonElementSchema,
537
+ icon: iconSchema.optional(),
538
+ image: imageSchema.optional(),
539
+ tag: z.string().optional(),
540
+ media: mediaSchema.optional(),
541
+ analyticsId: z.string().optional(),
542
+ tags: z.array(z.string()).optional(),
537
543
  });
538
544
 
539
545
  export const summarySummariserSchema = z.object({
@@ -549,12 +555,6 @@ export const summarySummariserSchema = z.object({
549
555
  providesMedia: z.boolean().optional(),
550
556
  });
551
557
 
552
- export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
553
-
554
- export const suggestionsSchema = z.object({
555
- values: z.array(suggestionsValueSchema),
556
- });
557
-
558
558
  export const mediaLayoutSchema = z.object({
559
559
  type: z.literal('media'),
560
560
  media: mediaSchema,
@@ -566,12 +566,6 @@ export const mediaLayoutSchema = z.object({
566
566
  tags: z.array(z.string()).optional(),
567
567
  });
568
568
 
569
- export const navigationSchema = z.object({
570
- backButton: navigationBackBehaviorSchema.optional(),
571
- back: navigationBackBehaviorSchema.optional(),
572
- stackBehavior: navigationStackBehaviorSchema.optional(),
573
- });
574
-
575
569
  export const searchResultActionSchema = z.object({
576
570
  type: z.literal('action'),
577
571
  title: z.string(),
@@ -594,32 +588,69 @@ export const searchResultSearchSchema = z.object({
594
588
 
595
589
  export const searchResultSchema = z.union([searchResultActionSchema, searchResultSearchSchema]);
596
590
 
591
+ export const searchInitialResultsConfigSchema = z.object({
592
+ type: z.literal('results'),
593
+ results: z.array(searchResultSchema),
594
+ });
595
+
597
596
  export const searchResponseBodySchema = z.object({
598
597
  type: z.literal('results').optional(),
599
598
  results: z.array(searchResultSchema),
600
599
  });
601
600
 
602
- export const searchResultsResponseBodySchema = z.object({
603
- type: z.literal('results'),
604
- results: z.array(searchResultSchema),
601
+ export const suggestionsSchema = z.object({
602
+ values: z.array(suggestionsValueSchema),
605
603
  });
606
604
 
607
- export const searchInitialResultsConfigSchema = z.object({
605
+ export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
606
+
607
+ export const searchResultsResponseBodySchema = z.object({
608
608
  type: z.literal('results'),
609
609
  results: z.array(searchResultSchema),
610
610
  });
611
611
 
612
- export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(() =>
613
- z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
614
- );
615
-
616
- export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
612
+ export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
617
613
  z.object({
618
- type: z.literal('layout'),
619
- content: z.array(layoutSchema),
614
+ key: z.string().optional(),
615
+ type: z.string().optional(),
616
+ actions: z.array(actionSchema).optional(),
617
+ refreshFormUrl: z.string().optional(),
618
+ id: z.string(),
619
+ title: z.string(),
620
+ schemas: z.array(schemaSchema),
621
+ layout: z.array(layoutSchema),
622
+ description: z.string().optional(),
623
+ model: jsonElementSchema.optional(),
624
+ external: externalSchema.optional(),
625
+ polling: pollingSchema.optional(),
626
+ linkHandlers: z.array(linkHandlerSchema).optional(),
627
+ analytics: z.record(z.string()).optional(),
628
+ errors: stepErrorSchema.optional(),
629
+ navigation: navigationSchema.optional(),
630
+ refreshUrl: z.string().optional(),
631
+ control: z.string().optional(),
632
+ refreshAfter: z.string().optional(),
633
+ toolbar: toolbarSchema.optional(),
634
+ tags: z.array(z.string()).optional(),
635
+ footer: z.array(layoutSchema).optional(),
620
636
  }),
621
637
  );
622
638
 
639
+ export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
640
+ z.union([
641
+ allOfSchemaSchema,
642
+ arraySchemaSchema,
643
+ blobSchemaSchema,
644
+ booleanSchemaSchema,
645
+ constSchemaSchema,
646
+ integerSchemaSchema,
647
+ numberSchemaSchema,
648
+ objectSchemaSchema,
649
+ oneOfSchemaSchema,
650
+ stringSchemaSchema,
651
+ ]),
652
+ );
653
+
623
654
  export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
624
655
  z.union([
625
656
  alertLayoutSchema,
@@ -641,87 +672,12 @@ export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
641
672
  paragraphLayoutSchema,
642
673
  progressLayoutSchema,
643
674
  reviewLayoutSchema,
644
- searchLayoutSchema,
645
- sectionLayoutSchema,
646
- statusListLayoutSchema,
647
- tabsLayoutSchema,
648
- upsellLayoutSchema,
649
- ]),
650
- );
651
-
652
- export const searchResponseSchema: z.ZodSchema<SearchResponse> = z.lazy(() =>
653
- z.union([searchLayoutResponseBodySchema, searchResultsResponseBodySchema]),
654
- );
655
-
656
- export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBody> = z.lazy(() =>
657
- z.object({
658
- type: z.literal('layout'),
659
- content: z.array(layoutSchema),
660
- }),
661
- );
662
-
663
- export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
664
- z.object({
665
- referrerId: z.string(),
666
- launchConfig: launchConfigSchema,
667
- resultKey: z.string().optional(),
668
- onCompletion: behaviorSchema.optional(),
669
- onError: behaviorSchema.optional(),
670
- }),
671
- );
672
-
673
- export const behaviorSchema: z.ZodSchema<Behavior> = z.lazy(() =>
674
- z.union([
675
- actionBehaviorSchema,
676
- containerBehaviorSchema,
677
- copyBehaviorSchema,
678
- dismissBehaviorSchema,
679
- linkBehaviorSchema,
680
- modalBehaviorSchema,
681
- refreshBehaviorSchema,
682
- subflowBehaviorSchema,
683
- ]),
684
- );
685
-
686
- export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
687
- z.object({
688
- title: z.string().optional(),
689
- content: z.array(layoutSchema),
690
- }),
691
- );
692
-
693
- export const additionalInfoSchema: z.ZodSchema<AdditionalInfo> = z.lazy(() =>
694
- z.object({
695
- text: z.string(),
696
- behavior: behaviorSchema.optional(),
697
- accessibilityDescription: z.string().optional(),
698
- }),
699
- );
700
-
701
- export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
702
- z.object({
703
- type: z.literal('modal'),
704
- title: z.string().optional(),
705
- content: z.array(layoutSchema),
706
- }),
707
- );
708
-
709
- export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
710
- z.object({
711
- type: z.literal('subflow'),
712
- referrerId: z.string(),
713
- launchConfig: launchConfigSchema,
714
- resultKey: z.string().optional(),
715
- onCompletion: behaviorSchema.optional(),
716
- onError: behaviorSchema.optional(),
717
- }),
718
- );
719
-
720
- export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
721
- z.object({
722
- regexPattern: z.string(),
723
- behavior: behaviorSchema.optional(),
724
- }),
675
+ searchLayoutSchema,
676
+ sectionLayoutSchema,
677
+ statusListLayoutSchema,
678
+ tabsLayoutSchema,
679
+ upsellLayoutSchema,
680
+ ]),
725
681
  );
726
682
 
727
683
  export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
@@ -735,9 +691,9 @@ export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
735
691
  }),
736
692
  );
737
693
 
738
- export const pollingOnErrorSchema: z.ZodSchema<PollingOnError> = z.lazy(() =>
694
+ export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
739
695
  z.object({
740
- action: actionSchema.optional(),
696
+ regexPattern: z.string(),
741
697
  behavior: behaviorSchema.optional(),
742
698
  }),
743
699
  );
@@ -750,7 +706,25 @@ export const toolbarSchema: z.ZodSchema<Toolbar> = z.lazy(() =>
750
706
  }),
751
707
  );
752
708
 
753
- export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
709
+ export const pollingOnErrorSchema: z.ZodSchema<PollingOnError> = z.lazy(() =>
710
+ z.object({
711
+ action: actionSchema.optional(),
712
+ behavior: behaviorSchema.optional(),
713
+ }),
714
+ );
715
+
716
+ export const behaviorSchema: z.ZodSchema<Behavior> = z.lazy(() =>
717
+ z.union([
718
+ actionBehaviorSchema,
719
+ containerBehaviorSchema,
720
+ copyBehaviorSchema,
721
+ dismissBehaviorSchema,
722
+ linkBehaviorSchema,
723
+ modalBehaviorSchema,
724
+ refreshBehaviorSchema,
725
+ subflowBehaviorSchema,
726
+ ]),
727
+ );
754
728
 
755
729
  export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
756
730
  z.object({
@@ -767,6 +741,8 @@ export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
767
741
  }),
768
742
  );
769
743
 
744
+ export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
745
+
770
746
  export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
771
747
  z.object({
772
748
  param: z.string(),
@@ -777,42 +753,54 @@ export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
777
753
  }),
778
754
  );
779
755
 
780
- export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
781
- z.union([
782
- allOfSchemaSchema,
783
- arraySchemaSchema,
784
- blobSchemaSchema,
785
- booleanSchemaSchema,
786
- constSchemaSchema,
787
- integerSchemaSchema,
788
- numberSchemaSchema,
789
- objectSchemaSchema,
790
- oneOfSchemaSchema,
791
- stringSchemaSchema,
792
- ]),
756
+ export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
757
+ z.object({
758
+ type: z.literal('subflow'),
759
+ referrerId: z.string(),
760
+ launchConfig: launchConfigSchema,
761
+ resultKey: z.string().optional(),
762
+ onCompletion: behaviorSchema.optional(),
763
+ onError: behaviorSchema.optional(),
764
+ }),
793
765
  );
794
766
 
795
- export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
767
+ export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
796
768
  z.object({
797
- disabled: z.boolean().optional(),
798
- promoted: z.boolean().optional(),
799
- allOf: z.array(schemaSchema),
800
- $id: z.string().optional(),
769
+ type: z.literal('modal'),
801
770
  title: z.string().optional(),
802
- description: z.string().optional(),
771
+ content: z.array(layoutSchema),
772
+ }),
773
+ );
774
+
775
+ export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
776
+ z.object({
777
+ type: z.literal('upsell'),
778
+ text: z.string(),
779
+ callToAction: upsellLayoutCallToActionSchema,
780
+ media: mediaSchema.optional(),
781
+ onDismiss: requestSchema.optional(),
803
782
  control: z.string().optional(),
804
- hidden: z.boolean().optional(),
805
- icon: iconSchema.optional(),
806
- image: imageSchema.optional(),
807
- keywords: z.array(z.string()).optional(),
808
- summary: summaryProviderSchema.optional(),
783
+ margin: sizeSchema.optional(),
809
784
  analyticsId: z.string().optional(),
810
- alert: alertLayoutSchema.optional(),
811
- media: mediaSchema.optional(),
812
785
  tags: z.array(z.string()).optional(),
813
- additionalText: z.string().optional(),
814
- supportingValues: supportingValuesSchema.optional(),
815
- inlineAlert: inlineAlertSchema.optional(),
786
+ }),
787
+ );
788
+
789
+ export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
790
+ z.object({
791
+ title: z.string(),
792
+ accessibilityDescription: z.string().optional(),
793
+ behavior: behaviorSchema,
794
+ context: contextSchema.optional(),
795
+ }),
796
+ );
797
+
798
+ export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
799
+ z.object({
800
+ title: z.string(),
801
+ accessibilityDescription: z.string().optional(),
802
+ behavior: behaviorSchema,
803
+ context: contextSchema.optional(),
816
804
  }),
817
805
  );
818
806
 
@@ -829,372 +817,228 @@ export const alertLayoutSchema: z.ZodSchema<AlertLayout> = z.lazy(() =>
829
817
  }),
830
818
  );
831
819
 
832
- export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
820
+ export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
833
821
  z.object({
834
- type: z.literal('array'),
835
- promoted: z.boolean().optional(),
836
- $id: z.string().optional(),
837
- items: schemaSchema,
838
- addItemTitle: z.string(),
839
- editItemTitle: z.string(),
840
- minItems: z.number().optional(),
841
- maxItems: z.number().optional(),
842
- placeholder: z.string().optional(),
843
- title: z.string().optional(),
844
- description: z.string().optional(),
822
+ type: z.literal('box'),
823
+ components: z.array(layoutSchema),
824
+ width: sizeSchema.optional(),
825
+ border: z.boolean().optional(),
845
826
  control: z.string().optional(),
846
- hidden: z.boolean().optional(),
847
- icon: iconSchema.optional(),
848
- image: imageSchema.optional(),
849
- keywords: z.array(z.string()).optional(),
850
- summary: summarySummariserSchema.optional(),
827
+ margin: sizeSchema.optional(),
851
828
  analyticsId: z.string().optional(),
852
- persistAsync: persistAsyncSchema.optional(),
853
- validationAsync: validateAsyncSchema.optional(),
854
- alert: alertLayoutSchema.optional(),
855
- validationMessages: z.record(z.string()).optional(),
856
- disabled: z.boolean().optional(),
857
- media: mediaSchema.optional(),
858
829
  tags: z.array(z.string()).optional(),
859
- additionalText: z.string().optional(),
860
- supportingValues: supportingValuesSchema.optional(),
861
- inlineAlert: inlineAlertSchema.optional(),
862
830
  }),
863
831
  );
864
832
 
865
- export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
833
+ export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
866
834
  z.object({
867
- autofillProvider: z.string().optional(),
868
- promoted: z.boolean().optional(),
869
- refreshFormOnChange: z.boolean().optional(),
870
- refreshUrl: z.string().optional(),
871
- refreshFormUrl: z.string().optional(),
872
- promotion: jsonElementSchema.optional(),
873
- oneOf: z.array(schemaSchema),
874
- placeholder: z.string().optional(),
875
- $id: z.string().optional(),
835
+ type: z.literal('button'),
836
+ action: actionSchema.optional(),
837
+ size: sizeSchema.optional(),
876
838
  title: z.string().optional(),
877
- description: z.string().optional(),
839
+ behavior: behaviorSchema.optional(),
840
+ context: contextSchema.optional(),
841
+ disabled: z.boolean().optional(),
842
+ pinOrder: z.number().optional(),
878
843
  control: z.string().optional(),
879
- default: jsonElementSchema.optional(),
880
- hidden: z.boolean().optional(),
881
- icon: iconSchema.optional(),
882
- image: imageSchema.optional(),
883
- keywords: z.array(z.string()).optional(),
884
- summary: summaryProviderSchema.optional(),
844
+ margin: sizeSchema.optional(),
885
845
  analyticsId: z.string().optional(),
886
- refreshStepOnChange: z.boolean().optional(),
887
- alert: alertLayoutSchema.optional(),
888
- help: helpSchema.optional(),
889
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
890
- autofillKey: z.string().optional(),
891
- validationMessages: z.record(z.string()).optional(),
892
- disabled: z.boolean().optional(),
893
- onChange: behaviorSchema.optional(),
894
- media: mediaSchema.optional(),
895
846
  tags: z.array(z.string()).optional(),
896
- additionalText: z.string().optional(),
897
- supportingValues: supportingValuesSchema.optional(),
898
- inlineAlert: inlineAlertSchema.optional(),
847
+ media: mediaSchema.optional(),
899
848
  }),
900
849
  );
901
850
 
902
- export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
903
- z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
851
+ export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
852
+ z.object({
853
+ type: z.literal('columns'),
854
+ left: z.array(layoutSchema),
855
+ right: z.array(layoutSchema),
856
+ bias: columnsLayoutBiasSchema.optional(),
857
+ control: z.string().optional(),
858
+ margin: sizeSchema.optional(),
859
+ analyticsId: z.string().optional(),
860
+ tags: z.array(z.string()).optional(),
861
+ }),
904
862
  );
905
863
 
906
- export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
864
+ export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
907
865
  z.object({
908
- type: z.literal('blob'),
909
- promoted: z.boolean().optional(),
910
- $id: z.string().optional(),
866
+ type: z.literal('decision'),
911
867
  title: z.string().optional(),
912
- description: z.string().optional(),
868
+ options: z.array(decisionLayoutOptionSchema),
913
869
  control: z.string().optional(),
914
- hidden: z.boolean().optional(),
915
- icon: iconSchema.optional(),
916
- image: imageSchema.optional(),
917
- keywords: z.array(z.string()).optional(),
918
- summary: summaryProviderSchema.optional(),
870
+ margin: sizeSchema.optional(),
919
871
  analyticsId: z.string().optional(),
920
- validationAsync: validateAsyncSchema.optional(),
921
- validationMessages: z.record(z.string()).optional(),
922
- alert: alertLayoutSchema.optional(),
923
- cameraConfig: jsonElementSchema.optional(),
924
- accepts: z.array(z.string()).optional(),
925
- maxSize: z.number().optional(),
926
- source: uploadSourceSchema.optional(),
927
- disabled: z.boolean().optional(),
928
- media: mediaSchema.optional(),
929
872
  tags: z.array(z.string()).optional(),
930
- additionalText: z.string().optional(),
931
- supportingValues: supportingValuesSchema.optional(),
932
- inlineAlert: inlineAlertSchema.optional(),
933
873
  }),
934
874
  );
935
875
 
936
- export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
876
+ export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
937
877
  z.object({
938
- type: z.literal('boolean'),
939
- autofillProvider: z.string().optional(),
940
- promoted: z.boolean().optional(),
941
- refreshFormOnChange: z.boolean().optional(),
942
- refreshUrl: z.string().optional(),
943
- refreshFormUrl: z.string().optional(),
944
- $id: z.string().optional(),
878
+ type: z.literal('list'),
945
879
  title: z.string().optional(),
946
- description: z.string().optional(),
880
+ callToAction: listLayoutCallToActionSchema.optional(),
881
+ items: z.array(listLayoutItemSchema),
947
882
  control: z.string().optional(),
948
- default: z.boolean().optional(),
949
- hidden: z.boolean().optional(),
950
- disabled: z.boolean().optional(),
951
- icon: iconSchema.optional(),
952
- image: imageSchema.optional(),
953
- keywords: z.array(z.string()).optional(),
954
- summary: summaryProviderSchema.optional(),
883
+ margin: sizeSchema.optional(),
884
+ analyticsId: z.string().optional(),
885
+ tags: z.array(z.string()).optional(),
886
+ }),
887
+ );
888
+
889
+ export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
890
+ z.object({
891
+ type: z.literal('modal'),
892
+ control: z.string().optional(),
893
+ margin: sizeSchema.optional(),
894
+ trigger: modalLayoutTriggerSchema,
895
+ content: modalLayoutContentSchema,
896
+ analyticsId: z.string().optional(),
897
+ tags: z.array(z.string()).optional(),
898
+ }),
899
+ );
900
+
901
+ export const reviewLayoutSchema: z.ZodSchema<ReviewLayout> = z.lazy(() =>
902
+ z.object({
903
+ type: z.literal('review'),
904
+ orientation: z.string().optional(),
905
+ action: actionSchema.optional(),
906
+ fields: z.array(reviewLayoutFieldSchema),
907
+ title: z.string().optional(),
908
+ callToAction: reviewLayoutCallToActionSchema.optional(),
909
+ control: z.string().optional(),
910
+ margin: sizeSchema.optional(),
955
911
  analyticsId: z.string().optional(),
956
- persistAsync: persistAsyncSchema.optional(),
957
- refreshStepOnChange: z.boolean().optional(),
958
- validationAsync: validateAsyncSchema.optional(),
959
- alert: alertLayoutSchema.optional(),
960
- autofillKey: z.string().optional(),
961
- help: helpSchema.optional(),
962
- onChange: behaviorSchema.optional(),
963
- media: mediaSchema.optional(),
964
912
  tags: z.array(z.string()).optional(),
965
- additionalText: z.string().optional(),
966
- supportingValues: supportingValuesSchema.optional(),
967
- inlineAlert: inlineAlertSchema.optional(),
968
913
  }),
969
914
  );
970
915
 
971
- export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
916
+ export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
972
917
  z.object({
973
- hidden: z.boolean().optional(),
918
+ type: z.literal('search'),
919
+ title: z.string(),
920
+ method: httpMethodSchema,
921
+ url: z.string(),
922
+ param: z.string(),
923
+ emptyMessage: z.string().optional(),
974
924
  control: z.string().optional(),
975
- promoted: z.boolean().optional(),
976
- $id: z.string().optional(),
977
- const: jsonElementSchema,
978
- title: z.string().optional(),
979
- description: z.string().optional(),
980
- icon: iconSchema.optional(),
981
- image: imageSchema.optional(),
982
- keywords: z.array(z.string()).optional(),
983
- summary: summaryProviderSchema.optional(),
925
+ margin: sizeSchema.optional(),
984
926
  analyticsId: z.string().optional(),
985
- disabled: z.boolean().optional(),
986
- media: mediaSchema.optional(),
987
- alert: alertLayoutSchema.optional(),
988
- layout: z.array(layoutSchema).optional(),
989
927
  tags: z.array(z.string()).optional(),
990
- additionalText: z.string().optional(),
991
- supportingValues: supportingValuesSchema.optional(),
992
- inlineAlert: inlineAlertSchema.optional(),
928
+ hint: z.string().optional(),
929
+ initialState: searchInitialStateSchema.optional(),
993
930
  }),
994
931
  );
995
932
 
996
- export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
933
+ export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
997
934
  z.object({
998
- type: z.literal('integer'),
999
- autofillProvider: z.string().optional(),
1000
- promoted: z.boolean().optional(),
1001
- refreshFormOnChange: z.boolean().optional(),
1002
- refreshUrl: z.string().optional(),
1003
- refreshFormUrl: z.string().optional(),
1004
- placeholder: z.string().optional(),
1005
- minimum: z.number().optional(),
1006
- maximum: z.number().optional(),
1007
- $id: z.string().optional(),
1008
- title: z.string().optional(),
1009
- description: z.string().optional(),
935
+ type: z.literal('section'),
936
+ components: z.array(layoutSchema),
937
+ title: z.string(),
938
+ callToAction: sectionLayoutCallToActionSchema.optional(),
1010
939
  control: z.string().optional(),
1011
- default: z.number().optional(),
1012
- hidden: z.boolean().optional(),
1013
- disabled: z.boolean().optional(),
1014
- icon: iconSchema.optional(),
1015
- image: imageSchema.optional(),
1016
- keywords: z.array(z.string()).optional(),
1017
- summary: summaryProviderSchema.optional(),
940
+ margin: sizeSchema.optional(),
1018
941
  analyticsId: z.string().optional(),
1019
- persistAsync: persistAsyncSchema.optional(),
1020
- refreshStepOnChange: z.boolean().optional(),
1021
- validationAsync: validateAsyncSchema.optional(),
1022
- validationMessages: z.record(z.string()).optional(),
1023
- alert: alertLayoutSchema.optional(),
1024
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1025
- autofillKey: z.string().optional(),
1026
- help: helpSchema.optional(),
1027
- onChange: behaviorSchema.optional(),
1028
- media: mediaSchema.optional(),
1029
942
  tags: z.array(z.string()).optional(),
1030
- additionalText: z.string().optional(),
1031
- supportingValues: supportingValuesSchema.optional(),
1032
- inlineAlert: inlineAlertSchema.optional(),
1033
943
  }),
1034
944
  );
1035
945
 
1036
- export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
946
+ export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
1037
947
  z.object({
1038
- type: z.literal('number'),
1039
- autofillProvider: z.string().optional(),
1040
- promoted: z.boolean().optional(),
1041
- refreshFormOnChange: z.boolean().optional(),
1042
- refreshUrl: z.string().optional(),
1043
- refreshFormUrl: z.string().optional(),
1044
- placeholder: z.string().optional(),
1045
- minimum: z.number().optional(),
1046
- maximum: z.number().optional(),
1047
- $id: z.string().optional(),
948
+ type: z.literal('status-list'),
949
+ items: z.array(statusListLayoutItemSchema),
1048
950
  title: z.string().optional(),
1049
- description: z.string().optional(),
1050
951
  control: z.string().optional(),
1051
- default: z.number().optional(),
1052
- hidden: z.boolean().optional(),
1053
- disabled: z.boolean().optional(),
1054
- icon: iconSchema.optional(),
1055
- image: imageSchema.optional(),
1056
- keywords: z.array(z.string()).optional(),
1057
- summary: summaryProviderSchema.optional(),
952
+ margin: sizeSchema.optional(),
1058
953
  analyticsId: z.string().optional(),
1059
- persistAsync: persistAsyncSchema.optional(),
1060
- refreshStepOnChange: z.boolean().optional(),
1061
- validationAsync: validateAsyncSchema.optional(),
1062
- validationMessages: z.record(z.string()).optional(),
1063
- alert: alertLayoutSchema.optional(),
1064
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1065
- autofillKey: z.string().optional(),
1066
- help: helpSchema.optional(),
1067
- onChange: behaviorSchema.optional(),
1068
- media: mediaSchema.optional(),
1069
954
  tags: z.array(z.string()).optional(),
1070
- additionalText: z.string().optional(),
1071
- supportingValues: supportingValuesSchema.optional(),
1072
- inlineAlert: inlineAlertSchema.optional(),
1073
955
  }),
1074
956
  );
1075
957
 
1076
- export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
958
+ export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1077
959
  z.object({
1078
- type: z.literal('object'),
1079
- disabled: z.boolean().optional(),
1080
- promoted: z.boolean().optional(),
1081
- help: helpSchema.optional(),
1082
- properties: z.record(schemaSchema),
1083
- displayOrder: z.array(z.string()),
1084
- required: z.array(z.string()).optional(),
1085
- $id: z.string().optional(),
1086
- title: z.string().optional(),
1087
- description: z.string().optional(),
960
+ type: z.literal('tabs'),
961
+ tabs: z.array(tabsLayoutTabSchema),
1088
962
  control: z.string().optional(),
1089
- hidden: z.boolean().optional(),
1090
- icon: iconSchema.optional(),
1091
- image: imageSchema.optional(),
1092
- keywords: z.array(z.string()).optional(),
1093
- summary: summaryProviderSchema.optional(),
963
+ margin: sizeSchema.optional(),
1094
964
  analyticsId: z.string().optional(),
1095
- alert: alertLayoutSchema.optional(),
1096
- media: mediaSchema.optional(),
1097
965
  tags: z.array(z.string()).optional(),
1098
- format: z.string().optional(),
1099
- additionalText: z.string().optional(),
1100
- supportingValues: supportingValuesSchema.optional(),
1101
- inlineAlert: inlineAlertSchema.optional(),
1102
- onChange: behaviorSchema.optional(),
1103
966
  }),
1104
967
  );
1105
968
 
1106
- export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
969
+ export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.lazy(() =>
1107
970
  z.object({
1108
- type: z.literal('string'),
1109
- autofillProvider: z.string().optional(),
1110
- promoted: z.boolean().optional(),
1111
- refreshFormOnChange: z.boolean().optional(),
1112
- refreshUrl: z.string().optional(),
1113
- refreshFormUrl: z.string().optional(),
1114
- format: stringSchemaFormatSchema.optional(),
1115
- displayFormat: z.string().optional(),
1116
- placeholder: z.string().optional(),
1117
- minLength: z.number().optional(),
1118
- maxLength: z.number().optional(),
1119
- minimum: z.string().optional(),
1120
- maximum: z.string().optional(),
1121
- pattern: z.string().optional(),
1122
- autocapitalization: autocapitalizationTypeSchema.optional(),
1123
- autocorrect: z.boolean().optional(),
1124
- $id: z.string().optional(),
1125
- title: z.string().optional(),
971
+ action: actionSchema.optional(),
972
+ title: z.string(),
1126
973
  description: z.string().optional(),
1127
- control: z.string().optional(),
1128
- default: z.string().optional(),
1129
- hidden: z.boolean().optional(),
1130
974
  disabled: z.boolean().optional(),
1131
975
  icon: iconSchema.optional(),
1132
976
  image: imageSchema.optional(),
1133
- keywords: z.array(z.string()).optional(),
1134
- summary: summaryProviderSchema.optional(),
1135
- analyticsId: z.string().optional(),
1136
- persistAsync: persistAsyncSchema.optional(),
1137
- refreshStepOnChange: z.boolean().optional(),
1138
- validationAsync: validateAsyncSchema.optional(),
1139
- validationMessages: z.record(z.string()).optional(),
1140
- alert: alertLayoutSchema.optional(),
1141
- cameraConfig: jsonElementSchema.optional(),
1142
- accepts: z.array(z.string()).optional(),
1143
- maxSize: z.number().optional(),
1144
- source: uploadSourceSchema.optional(),
1145
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1146
- autofillKey: z.string().optional(),
1147
- help: helpSchema.optional(),
1148
- suggestions: suggestionsSchema.optional(),
1149
- onChange: behaviorSchema.optional(),
1150
- media: mediaSchema.optional(),
1151
- tags: z.array(z.string()).optional(),
977
+ behavior: behaviorSchema.optional(),
978
+ tag: z.string().optional(),
1152
979
  additionalText: z.string().optional(),
1153
980
  supportingValues: supportingValuesSchema.optional(),
1154
981
  inlineAlert: inlineAlertSchema.optional(),
982
+ media: mediaSchema.optional(),
983
+ analyticsId: z.string().optional(),
984
+ keywords: z.array(z.string()).optional(),
985
+ tags: z.array(z.string()).optional(),
1155
986
  }),
1156
987
  );
1157
988
 
1158
- export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
989
+ export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
1159
990
  z.object({
1160
- type: z.literal('array'),
1161
- promoted: z.boolean().optional(),
1162
- $id: z.string().optional(),
1163
- items: z.array(schemaSchema),
1164
- title: z.string().optional(),
1165
- description: z.string().optional(),
1166
- control: z.string().optional(),
1167
- hidden: z.boolean().optional(),
1168
- icon: iconSchema.optional(),
1169
- image: imageSchema.optional(),
1170
- keywords: z.array(z.string()).optional(),
1171
- summary: summaryProviderSchema.optional(),
991
+ title: z.string(),
992
+ components: z.array(layoutSchema),
993
+ tag: z.string().optional(),
1172
994
  analyticsId: z.string().optional(),
1173
- persistAsync: persistAsyncSchema.optional(),
1174
- validationAsync: validateAsyncSchema.optional(),
1175
- alert: alertLayoutSchema.optional(),
1176
- media: mediaSchema.optional(),
1177
995
  tags: z.array(z.string()).optional(),
1178
- additionalText: z.string().optional(),
1179
- supportingValues: supportingValuesSchema.optional(),
1180
- inlineAlert: inlineAlertSchema.optional(),
1181
996
  }),
1182
997
  );
1183
998
 
1184
- export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
999
+ export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(() =>
1000
+ z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
1001
+ );
1002
+
1003
+ export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAction> = z.lazy(() =>
1185
1004
  z.object({
1186
1005
  title: z.string(),
1187
- description: z.string().optional(),
1188
- icon: iconSchema,
1189
- status: statusListLayoutStatusSchema.optional(),
1190
- callToAction: itemCallToActionSchema.optional(),
1006
+ accessibilityDescription: z.string().optional(),
1007
+ behavior: behaviorSchema,
1008
+ context: contextSchema.optional(),
1009
+ }),
1010
+ );
1011
+
1012
+ export const listLayoutItemSchema: z.ZodSchema<ListLayoutItem> = z.lazy(() =>
1013
+ z.object({
1014
+ status: listLayoutStatusSchema.optional(),
1015
+ icon: iconSchema.optional(),
1016
+ image: imageSchema.optional(),
1017
+ title: z.string().optional(),
1018
+ subtitle: z.string().optional(),
1019
+ value: z.string().optional(),
1020
+ subvalue: z.string().optional(),
1191
1021
  tag: z.string().optional(),
1022
+ additionalInfo: additionalInfoSchema.optional(),
1023
+ supportingValues: supportingValuesSchema.optional(),
1024
+ inlineAlert: inlineAlertSchema.optional(),
1025
+ description: z.string().optional(),
1026
+ media: mediaSchema.optional(),
1192
1027
  analyticsId: z.string().optional(),
1193
1028
  tags: z.array(z.string()).optional(),
1029
+ callToAction: listLayoutCallToActionSchema.optional(),
1030
+ }),
1031
+ );
1032
+
1033
+ export const additionalInfoSchema: z.ZodSchema<AdditionalInfo> = z.lazy(() =>
1034
+ z.object({
1035
+ text: z.string(),
1036
+ behavior: behaviorSchema.optional(),
1037
+ accessibilityDescription: z.string().optional(),
1194
1038
  }),
1195
1039
  );
1196
1040
 
1197
- export const itemCallToActionSchema: z.ZodSchema<ItemCallToAction> = z.lazy(() =>
1041
+ export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
1198
1042
  z.object({
1199
1043
  title: z.string(),
1200
1044
  accessibilityDescription: z.string().optional(),
@@ -1203,34 +1047,20 @@ export const itemCallToActionSchema: z.ZodSchema<ItemCallToAction> = z.lazy(() =
1203
1047
  }),
1204
1048
  );
1205
1049
 
1206
- export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
1207
- z.object({
1208
- type: z.literal('decision'),
1209
- title: z.string().optional(),
1210
- options: z.array(decisionLayoutOptionSchema),
1211
- control: z.string().optional(),
1212
- margin: sizeSchema.optional(),
1213
- analyticsId: z.string().optional(),
1214
- tags: z.array(z.string()).optional(),
1215
- }),
1216
- );
1217
-
1218
- export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.lazy(() =>
1050
+ export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(() =>
1219
1051
  z.object({
1220
- action: actionSchema.optional(),
1221
- title: z.string(),
1222
- description: z.string().optional(),
1223
- disabled: z.boolean().optional(),
1052
+ label: z.string(),
1053
+ value: z.string(),
1054
+ rawValue: z.string().optional(),
1055
+ help: helpSchema.optional(),
1056
+ tag: z.string().optional(),
1224
1057
  icon: iconSchema.optional(),
1225
1058
  image: imageSchema.optional(),
1226
- behavior: behaviorSchema.optional(),
1227
- tag: z.string().optional(),
1228
- additionalText: z.string().optional(),
1229
- supportingValues: supportingValuesSchema.optional(),
1059
+ additionalInfo: additionalInfoSchema.optional(),
1230
1060
  inlineAlert: inlineAlertSchema.optional(),
1061
+ callToAction: reviewLayoutCallToActionSchema.optional(),
1231
1062
  media: mediaSchema.optional(),
1232
1063
  analyticsId: z.string().optional(),
1233
- keywords: z.array(z.string()).optional(),
1234
1064
  tags: z.array(z.string()).optional(),
1235
1065
  }),
1236
1066
  );
@@ -1245,30 +1075,27 @@ export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToActio
1245
1075
  }),
1246
1076
  );
1247
1077
 
1248
- export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
1078
+ export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
1249
1079
  z.object({
1250
- type: z.literal('upsell'),
1251
- text: z.string(),
1252
- callToAction: upsellLayoutCallToActionSchema,
1253
- media: mediaSchema.optional(),
1254
- onDismiss: requestSchema.optional(),
1255
- control: z.string().optional(),
1256
- margin: sizeSchema.optional(),
1080
+ title: z.string(),
1081
+ description: z.string().optional(),
1082
+ icon: iconSchema,
1083
+ status: statusListLayoutStatusSchema.optional(),
1084
+ callToAction: itemCallToActionSchema.optional(),
1085
+ tag: z.string().optional(),
1257
1086
  analyticsId: z.string().optional(),
1258
1087
  tags: z.array(z.string()).optional(),
1259
1088
  }),
1260
1089
  );
1261
1090
 
1262
- export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
1091
+ export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
1263
1092
  z.object({
1264
- title: z.string(),
1265
- accessibilityDescription: z.string().optional(),
1266
- behavior: behaviorSchema,
1267
- context: contextSchema.optional(),
1093
+ title: z.string().optional(),
1094
+ components: z.array(layoutSchema),
1268
1095
  }),
1269
1096
  );
1270
1097
 
1271
- export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
1098
+ export const itemCallToActionSchema: z.ZodSchema<ItemCallToAction> = z.lazy(() =>
1272
1099
  z.object({
1273
1100
  title: z.string(),
1274
1101
  accessibilityDescription: z.string().optional(),
@@ -1277,240 +1104,413 @@ export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction>
1277
1104
  }),
1278
1105
  );
1279
1106
 
1280
- export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
1107
+ export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
1281
1108
  z.object({
1282
- type: z.literal('columns'),
1283
- left: z.array(layoutSchema),
1284
- right: z.array(layoutSchema),
1285
- bias: columnsLayoutBiasSchema.optional(),
1286
- control: z.string().optional(),
1287
- margin: sizeSchema.optional(),
1288
- analyticsId: z.string().optional(),
1289
- tags: z.array(z.string()).optional(),
1109
+ referrerId: z.string(),
1110
+ launchConfig: launchConfigSchema,
1111
+ resultKey: z.string().optional(),
1112
+ onCompletion: behaviorSchema.optional(),
1113
+ onError: behaviorSchema.optional(),
1290
1114
  }),
1291
1115
  );
1292
1116
 
1293
- export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
1117
+ export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
1294
1118
  z.object({
1295
- title: z.string(),
1296
- components: z.array(layoutSchema),
1297
- tag: z.string().optional(),
1298
- analyticsId: z.string().optional(),
1299
- tags: z.array(z.string()).optional(),
1119
+ type: z.literal('layout'),
1120
+ content: z.array(layoutSchema),
1300
1121
  }),
1301
1122
  );
1302
1123
 
1303
- export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
1304
- z.object({
1305
- title: z.string().optional(),
1306
- components: z.array(layoutSchema),
1307
- }),
1124
+ export const searchResponseSchema: z.ZodSchema<SearchResponse> = z.lazy(() =>
1125
+ z.union([searchLayoutResponseBodySchema, searchResultsResponseBodySchema]),
1308
1126
  );
1309
1127
 
1310
- export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
1128
+ export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBody> = z.lazy(() =>
1311
1129
  z.object({
1312
- type: z.literal('status-list'),
1313
- items: z.array(statusListLayoutItemSchema),
1314
- title: z.string().optional(),
1315
- control: z.string().optional(),
1316
- margin: sizeSchema.optional(),
1317
- analyticsId: z.string().optional(),
1318
- tags: z.array(z.string()).optional(),
1130
+ type: z.literal('layout'),
1131
+ content: z.array(layoutSchema),
1319
1132
  }),
1320
1133
  );
1321
1134
 
1322
- export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
1135
+ export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
1323
1136
  z.object({
1324
- type: z.literal('button'),
1325
- action: actionSchema.optional(),
1326
- size: sizeSchema.optional(),
1327
1137
  title: z.string().optional(),
1328
- behavior: behaviorSchema.optional(),
1329
- context: contextSchema.optional(),
1330
- disabled: z.boolean().optional(),
1331
- pinOrder: z.number().optional(),
1332
- control: z.string().optional(),
1333
- margin: sizeSchema.optional(),
1334
- analyticsId: z.string().optional(),
1335
- tags: z.array(z.string()).optional(),
1336
- media: mediaSchema.optional(),
1138
+ content: z.array(layoutSchema),
1337
1139
  }),
1338
1140
  );
1339
1141
 
1340
- export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
1142
+ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1341
1143
  z.object({
1342
- type: z.literal('modal'),
1144
+ type: z.literal('array'),
1145
+ promoted: z.boolean().optional(),
1146
+ $id: z.string().optional(),
1147
+ items: schemaSchema,
1148
+ addItemTitle: z.string(),
1149
+ editItemTitle: z.string(),
1150
+ minItems: z.number().optional(),
1151
+ maxItems: z.number().optional(),
1152
+ placeholder: z.string().optional(),
1153
+ title: z.string().optional(),
1154
+ description: z.string().optional(),
1343
1155
  control: z.string().optional(),
1344
- margin: sizeSchema.optional(),
1345
- trigger: modalLayoutTriggerSchema,
1346
- content: modalLayoutContentSchema,
1156
+ hidden: z.boolean().optional(),
1157
+ icon: iconSchema.optional(),
1158
+ image: imageSchema.optional(),
1159
+ keywords: z.array(z.string()).optional(),
1160
+ summary: summarySummariserSchema.optional(),
1347
1161
  analyticsId: z.string().optional(),
1162
+ persistAsync: persistAsyncSchema.optional(),
1163
+ validationAsync: validateAsyncSchema.optional(),
1164
+ alert: alertLayoutSchema.optional(),
1165
+ validationMessages: z.record(z.string()).optional(),
1166
+ disabled: z.boolean().optional(),
1167
+ media: mediaSchema.optional(),
1348
1168
  tags: z.array(z.string()).optional(),
1169
+ additionalText: z.string().optional(),
1170
+ supportingValues: supportingValuesSchema.optional(),
1171
+ inlineAlert: inlineAlertSchema.optional(),
1349
1172
  }),
1350
1173
  );
1351
1174
 
1352
- export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
1175
+ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1353
1176
  z.object({
1354
- type: z.literal('box'),
1355
- components: z.array(layoutSchema),
1356
- width: sizeSchema.optional(),
1357
- border: z.boolean().optional(),
1177
+ type: z.literal('number'),
1178
+ autofillProvider: z.string().optional(),
1179
+ promoted: z.boolean().optional(),
1180
+ refreshFormOnChange: z.boolean().optional(),
1181
+ refreshUrl: z.string().optional(),
1182
+ refreshFormUrl: z.string().optional(),
1183
+ placeholder: z.string().optional(),
1184
+ minimum: z.number().optional(),
1185
+ maximum: z.number().optional(),
1186
+ $id: z.string().optional(),
1187
+ title: z.string().optional(),
1188
+ description: z.string().optional(),
1358
1189
  control: z.string().optional(),
1359
- margin: sizeSchema.optional(),
1190
+ default: z.number().optional(),
1191
+ hidden: z.boolean().optional(),
1192
+ disabled: z.boolean().optional(),
1193
+ icon: iconSchema.optional(),
1194
+ image: imageSchema.optional(),
1195
+ keywords: z.array(z.string()).optional(),
1196
+ summary: summaryProviderSchema.optional(),
1360
1197
  analyticsId: z.string().optional(),
1198
+ persistAsync: persistAsyncSchema.optional(),
1199
+ refreshStepOnChange: z.boolean().optional(),
1200
+ validationAsync: validateAsyncSchema.optional(),
1201
+ validationMessages: z.record(z.string()).optional(),
1202
+ alert: alertLayoutSchema.optional(),
1203
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1204
+ autofillKey: z.string().optional(),
1205
+ help: helpSchema.optional(),
1206
+ onChange: behaviorSchema.optional(),
1207
+ media: mediaSchema.optional(),
1361
1208
  tags: z.array(z.string()).optional(),
1209
+ additionalText: z.string().optional(),
1210
+ supportingValues: supportingValuesSchema.optional(),
1211
+ inlineAlert: inlineAlertSchema.optional(),
1362
1212
  }),
1363
1213
  );
1364
1214
 
1365
- export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
1366
- z.object({
1367
- title: z.string(),
1368
- accessibilityDescription: z.string().optional(),
1369
- behavior: behaviorSchema,
1370
- context: contextSchema.optional(),
1371
- }),
1372
- );
1373
-
1374
- export const reviewLayoutSchema: z.ZodSchema<ReviewLayout> = z.lazy(() =>
1215
+ export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
1375
1216
  z.object({
1376
- type: z.literal('review'),
1377
- orientation: z.string().optional(),
1378
- action: actionSchema.optional(),
1379
- fields: z.array(reviewLayoutFieldSchema),
1217
+ autofillProvider: z.string().optional(),
1218
+ promoted: z.boolean().optional(),
1219
+ refreshFormOnChange: z.boolean().optional(),
1220
+ refreshUrl: z.string().optional(),
1221
+ refreshFormUrl: z.string().optional(),
1222
+ promotion: jsonElementSchema.optional(),
1223
+ oneOf: z.array(schemaSchema),
1224
+ placeholder: z.string().optional(),
1225
+ $id: z.string().optional(),
1380
1226
  title: z.string().optional(),
1381
- callToAction: reviewLayoutCallToActionSchema.optional(),
1227
+ description: z.string().optional(),
1382
1228
  control: z.string().optional(),
1383
- margin: sizeSchema.optional(),
1229
+ default: jsonElementSchema.optional(),
1230
+ hidden: z.boolean().optional(),
1231
+ icon: iconSchema.optional(),
1232
+ image: imageSchema.optional(),
1233
+ keywords: z.array(z.string()).optional(),
1234
+ summary: summaryProviderSchema.optional(),
1384
1235
  analyticsId: z.string().optional(),
1236
+ refreshStepOnChange: z.boolean().optional(),
1237
+ alert: alertLayoutSchema.optional(),
1238
+ help: helpSchema.optional(),
1239
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1240
+ autofillKey: z.string().optional(),
1241
+ validationMessages: z.record(z.string()).optional(),
1242
+ disabled: z.boolean().optional(),
1243
+ onChange: behaviorSchema.optional(),
1244
+ media: mediaSchema.optional(),
1385
1245
  tags: z.array(z.string()).optional(),
1246
+ additionalText: z.string().optional(),
1247
+ supportingValues: supportingValuesSchema.optional(),
1248
+ inlineAlert: inlineAlertSchema.optional(),
1386
1249
  }),
1387
1250
  );
1388
1251
 
1389
- export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(() =>
1252
+ export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
1390
1253
  z.object({
1391
- label: z.string(),
1392
- value: z.string(),
1393
- rawValue: z.string().optional(),
1394
- help: helpSchema.optional(),
1395
- tag: z.string().optional(),
1254
+ type: z.literal('array'),
1255
+ promoted: z.boolean().optional(),
1256
+ $id: z.string().optional(),
1257
+ items: z.array(schemaSchema),
1258
+ title: z.string().optional(),
1259
+ description: z.string().optional(),
1260
+ control: z.string().optional(),
1261
+ hidden: z.boolean().optional(),
1396
1262
  icon: iconSchema.optional(),
1397
1263
  image: imageSchema.optional(),
1398
- additionalInfo: additionalInfoSchema.optional(),
1399
- inlineAlert: inlineAlertSchema.optional(),
1400
- callToAction: reviewLayoutCallToActionSchema.optional(),
1401
- media: mediaSchema.optional(),
1264
+ keywords: z.array(z.string()).optional(),
1265
+ summary: summaryProviderSchema.optional(),
1402
1266
  analyticsId: z.string().optional(),
1267
+ persistAsync: persistAsyncSchema.optional(),
1268
+ validationAsync: validateAsyncSchema.optional(),
1269
+ alert: alertLayoutSchema.optional(),
1270
+ media: mediaSchema.optional(),
1403
1271
  tags: z.array(z.string()).optional(),
1272
+ additionalText: z.string().optional(),
1273
+ supportingValues: supportingValuesSchema.optional(),
1274
+ inlineAlert: inlineAlertSchema.optional(),
1404
1275
  }),
1405
1276
  );
1406
1277
 
1407
- export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
1278
+ export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
1279
+ z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
1280
+ );
1281
+
1282
+ export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
1408
1283
  z.object({
1409
- type: z.literal('list'),
1284
+ disabled: z.boolean().optional(),
1285
+ promoted: z.boolean().optional(),
1286
+ allOf: z.array(schemaSchema),
1287
+ $id: z.string().optional(),
1410
1288
  title: z.string().optional(),
1411
- callToAction: listLayoutCallToActionSchema.optional(),
1412
- items: z.array(listLayoutItemSchema),
1289
+ description: z.string().optional(),
1413
1290
  control: z.string().optional(),
1414
- margin: sizeSchema.optional(),
1291
+ hidden: z.boolean().optional(),
1292
+ icon: iconSchema.optional(),
1293
+ image: imageSchema.optional(),
1294
+ keywords: z.array(z.string()).optional(),
1295
+ summary: summaryProviderSchema.optional(),
1415
1296
  analyticsId: z.string().optional(),
1297
+ alert: alertLayoutSchema.optional(),
1298
+ media: mediaSchema.optional(),
1416
1299
  tags: z.array(z.string()).optional(),
1300
+ additionalText: z.string().optional(),
1301
+ supportingValues: supportingValuesSchema.optional(),
1302
+ inlineAlert: inlineAlertSchema.optional(),
1417
1303
  }),
1418
1304
  );
1419
1305
 
1420
- export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
1306
+ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1421
1307
  z.object({
1422
- type: z.literal('search'),
1423
- title: z.string(),
1424
- method: httpMethodSchema,
1425
- url: z.string(),
1426
- param: z.string(),
1427
- emptyMessage: z.string().optional(),
1308
+ type: z.literal('blob'),
1309
+ promoted: z.boolean().optional(),
1310
+ $id: z.string().optional(),
1311
+ title: z.string().optional(),
1312
+ description: z.string().optional(),
1428
1313
  control: z.string().optional(),
1429
- margin: sizeSchema.optional(),
1314
+ hidden: z.boolean().optional(),
1315
+ icon: iconSchema.optional(),
1316
+ image: imageSchema.optional(),
1317
+ keywords: z.array(z.string()).optional(),
1318
+ summary: summaryProviderSchema.optional(),
1430
1319
  analyticsId: z.string().optional(),
1320
+ validationAsync: validateAsyncSchema.optional(),
1321
+ validationMessages: z.record(z.string()).optional(),
1322
+ alert: alertLayoutSchema.optional(),
1323
+ cameraConfig: jsonElementSchema.optional(),
1324
+ accepts: z.array(z.string()).optional(),
1325
+ maxSize: z.number().optional(),
1326
+ source: uploadSourceSchema.optional(),
1327
+ disabled: z.boolean().optional(),
1328
+ media: mediaSchema.optional(),
1431
1329
  tags: z.array(z.string()).optional(),
1432
- hint: z.string().optional(),
1433
- initialState: searchInitialStateSchema.optional(),
1330
+ additionalText: z.string().optional(),
1331
+ supportingValues: supportingValuesSchema.optional(),
1332
+ inlineAlert: inlineAlertSchema.optional(),
1434
1333
  }),
1435
1334
  );
1436
1335
 
1437
- export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
1336
+ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1438
1337
  z.object({
1439
- type: z.literal('section'),
1440
- components: z.array(layoutSchema),
1441
- title: z.string(),
1442
- callToAction: sectionLayoutCallToActionSchema.optional(),
1338
+ type: z.literal('boolean'),
1339
+ autofillProvider: z.string().optional(),
1340
+ promoted: z.boolean().optional(),
1341
+ refreshFormOnChange: z.boolean().optional(),
1342
+ refreshUrl: z.string().optional(),
1343
+ refreshFormUrl: z.string().optional(),
1344
+ $id: z.string().optional(),
1345
+ title: z.string().optional(),
1346
+ description: z.string().optional(),
1443
1347
  control: z.string().optional(),
1444
- margin: sizeSchema.optional(),
1348
+ default: z.boolean().optional(),
1349
+ hidden: z.boolean().optional(),
1350
+ disabled: z.boolean().optional(),
1351
+ icon: iconSchema.optional(),
1352
+ image: imageSchema.optional(),
1353
+ keywords: z.array(z.string()).optional(),
1354
+ summary: summaryProviderSchema.optional(),
1445
1355
  analyticsId: z.string().optional(),
1356
+ persistAsync: persistAsyncSchema.optional(),
1357
+ refreshStepOnChange: z.boolean().optional(),
1358
+ validationAsync: validateAsyncSchema.optional(),
1359
+ alert: alertLayoutSchema.optional(),
1360
+ autofillKey: z.string().optional(),
1361
+ help: helpSchema.optional(),
1362
+ onChange: behaviorSchema.optional(),
1363
+ media: mediaSchema.optional(),
1446
1364
  tags: z.array(z.string()).optional(),
1365
+ additionalText: z.string().optional(),
1366
+ supportingValues: supportingValuesSchema.optional(),
1367
+ inlineAlert: inlineAlertSchema.optional(),
1447
1368
  }),
1448
1369
  );
1449
1370
 
1450
- export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1371
+ export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1451
1372
  z.object({
1452
- type: z.literal('tabs'),
1453
- tabs: z.array(tabsLayoutTabSchema),
1373
+ hidden: z.boolean().optional(),
1454
1374
  control: z.string().optional(),
1455
- margin: sizeSchema.optional(),
1375
+ promoted: z.boolean().optional(),
1376
+ $id: z.string().optional(),
1377
+ const: jsonElementSchema,
1378
+ title: z.string().optional(),
1379
+ description: z.string().optional(),
1380
+ icon: iconSchema.optional(),
1381
+ image: imageSchema.optional(),
1382
+ keywords: z.array(z.string()).optional(),
1383
+ summary: summaryProviderSchema.optional(),
1456
1384
  analyticsId: z.string().optional(),
1385
+ disabled: z.boolean().optional(),
1386
+ media: mediaSchema.optional(),
1387
+ alert: alertLayoutSchema.optional(),
1388
+ layout: z.array(layoutSchema).optional(),
1457
1389
  tags: z.array(z.string()).optional(),
1390
+ additionalText: z.string().optional(),
1391
+ supportingValues: supportingValuesSchema.optional(),
1392
+ inlineAlert: inlineAlertSchema.optional(),
1458
1393
  }),
1459
1394
  );
1460
1395
 
1461
- export const listLayoutItemSchema: z.ZodSchema<ListLayoutItem> = z.lazy(() =>
1396
+ export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1462
1397
  z.object({
1463
- status: listLayoutStatusSchema.optional(),
1464
- icon: iconSchema.optional(),
1465
- image: imageSchema.optional(),
1398
+ type: z.literal('integer'),
1399
+ autofillProvider: z.string().optional(),
1400
+ promoted: z.boolean().optional(),
1401
+ refreshFormOnChange: z.boolean().optional(),
1402
+ refreshUrl: z.string().optional(),
1403
+ refreshFormUrl: z.string().optional(),
1404
+ placeholder: z.string().optional(),
1405
+ minimum: z.number().optional(),
1406
+ maximum: z.number().optional(),
1407
+ $id: z.string().optional(),
1466
1408
  title: z.string().optional(),
1467
- subtitle: z.string().optional(),
1468
- value: z.string().optional(),
1469
- subvalue: z.string().optional(),
1470
- tag: z.string().optional(),
1471
- additionalInfo: additionalInfoSchema.optional(),
1472
- supportingValues: supportingValuesSchema.optional(),
1473
- inlineAlert: inlineAlertSchema.optional(),
1474
1409
  description: z.string().optional(),
1475
- media: mediaSchema.optional(),
1410
+ control: z.string().optional(),
1411
+ default: z.number().optional(),
1412
+ hidden: z.boolean().optional(),
1413
+ disabled: z.boolean().optional(),
1414
+ icon: iconSchema.optional(),
1415
+ image: imageSchema.optional(),
1416
+ keywords: z.array(z.string()).optional(),
1417
+ summary: summaryProviderSchema.optional(),
1476
1418
  analyticsId: z.string().optional(),
1419
+ persistAsync: persistAsyncSchema.optional(),
1420
+ refreshStepOnChange: z.boolean().optional(),
1421
+ validationAsync: validateAsyncSchema.optional(),
1422
+ validationMessages: z.record(z.string()).optional(),
1423
+ alert: alertLayoutSchema.optional(),
1424
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1425
+ autofillKey: z.string().optional(),
1426
+ help: helpSchema.optional(),
1427
+ onChange: behaviorSchema.optional(),
1428
+ media: mediaSchema.optional(),
1477
1429
  tags: z.array(z.string()).optional(),
1478
- callToAction: listLayoutCallToActionSchema.optional(),
1430
+ additionalText: z.string().optional(),
1431
+ supportingValues: supportingValuesSchema.optional(),
1432
+ inlineAlert: inlineAlertSchema.optional(),
1479
1433
  }),
1480
1434
  );
1481
1435
 
1482
- export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAction> = z.lazy(() =>
1436
+ export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
1483
1437
  z.object({
1484
- title: z.string(),
1485
- accessibilityDescription: z.string().optional(),
1486
- behavior: behaviorSchema,
1487
- context: contextSchema.optional(),
1438
+ type: z.literal('object'),
1439
+ disabled: z.boolean().optional(),
1440
+ promoted: z.boolean().optional(),
1441
+ help: helpSchema.optional(),
1442
+ properties: z.record(schemaSchema),
1443
+ displayOrder: z.array(z.string()),
1444
+ required: z.array(z.string()).optional(),
1445
+ $id: z.string().optional(),
1446
+ title: z.string().optional(),
1447
+ description: z.string().optional(),
1448
+ control: z.string().optional(),
1449
+ hidden: z.boolean().optional(),
1450
+ icon: iconSchema.optional(),
1451
+ image: imageSchema.optional(),
1452
+ keywords: z.array(z.string()).optional(),
1453
+ summary: summaryProviderSchema.optional(),
1454
+ analyticsId: z.string().optional(),
1455
+ alert: alertLayoutSchema.optional(),
1456
+ media: mediaSchema.optional(),
1457
+ tags: z.array(z.string()).optional(),
1458
+ format: z.string().optional(),
1459
+ additionalText: z.string().optional(),
1460
+ supportingValues: supportingValuesSchema.optional(),
1461
+ inlineAlert: inlineAlertSchema.optional(),
1462
+ onChange: behaviorSchema.optional(),
1488
1463
  }),
1489
1464
  );
1490
1465
 
1491
- export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
1466
+ export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
1492
1467
  z.object({
1493
- key: z.string().optional(),
1494
- type: z.string().optional(),
1495
- actions: z.array(actionSchema).optional(),
1468
+ type: z.literal('string'),
1469
+ autofillProvider: z.string().optional(),
1470
+ promoted: z.boolean().optional(),
1471
+ refreshFormOnChange: z.boolean().optional(),
1472
+ refreshUrl: z.string().optional(),
1496
1473
  refreshFormUrl: z.string().optional(),
1497
- id: z.string(),
1498
- title: z.string(),
1499
- schemas: z.array(schemaSchema),
1500
- layout: z.array(layoutSchema),
1474
+ format: stringSchemaFormatSchema.optional(),
1475
+ displayFormat: z.string().optional(),
1476
+ placeholder: z.string().optional(),
1477
+ minLength: z.number().optional(),
1478
+ maxLength: z.number().optional(),
1479
+ minimum: z.string().optional(),
1480
+ maximum: z.string().optional(),
1481
+ pattern: z.string().optional(),
1482
+ autocapitalization: autocapitalizationTypeSchema.optional(),
1483
+ autocorrect: z.boolean().optional(),
1484
+ $id: z.string().optional(),
1485
+ title: z.string().optional(),
1501
1486
  description: z.string().optional(),
1502
- model: jsonElementSchema.optional(),
1503
- external: externalSchema.optional(),
1504
- polling: pollingSchema.optional(),
1505
- linkHandlers: z.array(linkHandlerSchema).optional(),
1506
- analytics: z.record(z.string()).optional(),
1507
- errors: stepErrorSchema.optional(),
1508
- navigation: navigationSchema.optional(),
1509
- refreshUrl: z.string().optional(),
1510
1487
  control: z.string().optional(),
1511
- refreshAfter: z.string().optional(),
1512
- toolbar: toolbarSchema.optional(),
1488
+ default: z.string().optional(),
1489
+ hidden: z.boolean().optional(),
1490
+ disabled: z.boolean().optional(),
1491
+ icon: iconSchema.optional(),
1492
+ image: imageSchema.optional(),
1493
+ keywords: z.array(z.string()).optional(),
1494
+ summary: summaryProviderSchema.optional(),
1495
+ analyticsId: z.string().optional(),
1496
+ persistAsync: persistAsyncSchema.optional(),
1497
+ refreshStepOnChange: z.boolean().optional(),
1498
+ validationAsync: validateAsyncSchema.optional(),
1499
+ validationMessages: z.record(z.string()).optional(),
1500
+ alert: alertLayoutSchema.optional(),
1501
+ cameraConfig: jsonElementSchema.optional(),
1502
+ accepts: z.array(z.string()).optional(),
1503
+ maxSize: z.number().optional(),
1504
+ source: uploadSourceSchema.optional(),
1505
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1506
+ autofillKey: z.string().optional(),
1507
+ help: helpSchema.optional(),
1508
+ suggestions: suggestionsSchema.optional(),
1509
+ onChange: behaviorSchema.optional(),
1510
+ media: mediaSchema.optional(),
1513
1511
  tags: z.array(z.string()).optional(),
1514
- footer: z.array(layoutSchema).optional(),
1512
+ additionalText: z.string().optional(),
1513
+ supportingValues: supportingValuesSchema.optional(),
1514
+ inlineAlert: inlineAlertSchema.optional(),
1515
1515
  }),
1516
1516
  );