@wise/dynamic-flow-types 4.17.0 → 4.17.1

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