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