@wise/dynamic-flow-types 4.17.2 → 4.18.0-experimental-9265cac

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/build/renderers/CollectionRendererProps.d.ts +69 -0
  2. package/build/renderers/CollectionRendererProps.d.ts.map +1 -0
  3. package/build/renderers/RendererProps.d.ts +3 -2
  4. package/build/renderers/RendererProps.d.ts.map +1 -1
  5. package/build/renderers/index.d.ts +1 -0
  6. package/build/renderers/index.d.ts.map +1 -1
  7. package/build/spec/index.d.ts +7 -0
  8. package/build/spec/index.d.ts.map +1 -1
  9. package/build/spec/layout/CollectionLayout.d.ts +57 -0
  10. package/build/spec/layout/CollectionLayout.d.ts.map +1 -0
  11. package/build/spec/layout/CollectionLayoutCallToAction.d.ts +19 -0
  12. package/build/spec/layout/CollectionLayoutCallToAction.d.ts.map +1 -0
  13. package/build/spec/layout/CollectionLayoutFilter.d.ts +6 -0
  14. package/build/spec/layout/CollectionLayoutFilter.d.ts.map +1 -0
  15. package/build/spec/layout/CollectionLayoutItem.d.ts +56 -0
  16. package/build/spec/layout/CollectionLayoutItem.d.ts.map +1 -0
  17. package/build/spec/layout/CollectionLayoutSearch.d.ts +18 -0
  18. package/build/spec/layout/CollectionLayoutSearch.d.ts.map +1 -0
  19. package/build/spec/layout/CollectionLayoutSection.d.ts +24 -0
  20. package/build/spec/layout/CollectionLayoutSection.d.ts.map +1 -0
  21. package/build/spec/layout/CollectionLayoutSelectFilter.d.ts +24 -0
  22. package/build/spec/layout/CollectionLayoutSelectFilter.d.ts.map +1 -0
  23. package/build/spec/layout/CollectionLayoutState.d.ts +30 -0
  24. package/build/spec/layout/CollectionLayoutState.d.ts.map +1 -0
  25. package/build/spec/layout/Layout.d.ts +4 -3
  26. package/build/spec/layout/Layout.d.ts.map +1 -1
  27. package/build/spec/layout/SelectFilterOption.d.ts +22 -0
  28. package/build/spec/layout/SelectFilterOption.d.ts.map +1 -0
  29. package/build/spec/main.js +99 -28
  30. package/build/spec/main.mjs +99 -28
  31. package/build/tsconfig.tsbuildinfo +1 -1
  32. package/build/zod/schemas.d.ts +118 -2
  33. package/build/zod/schemas.d.ts.map +1 -1
  34. package/build/zod/schemas.ts +802 -716
  35. package/package.json +3 -3
@@ -2,88 +2,101 @@
2
2
  import { z } from 'zod';
3
3
  import {
4
4
  type JsonElement,
5
- type Polling,
6
- type PollingOnError,
7
- type ToolbarButton,
8
- type Behavior,
9
- type Toolbar,
10
- type ToolbarItem,
11
- type ModalBehavior,
12
- type SubflowBehavior,
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,
5
+ type StatusListLayout,
28
6
  type StatusListLayoutItem,
29
- type ItemCallToAction,
7
+ type ColumnsLayout,
8
+ type Layout,
30
9
  type ReviewLayout,
31
10
  type ReviewLayoutField,
32
11
  type ReviewLayoutCallToAction,
33
- type AlertLayout,
12
+ type ItemCallToAction,
13
+ type ListLayoutItem,
14
+ type AdditionalInfo,
15
+ type ListLayoutCallToAction,
16
+ type UpsellLayout,
17
+ type UpsellLayoutCallToAction,
18
+ type ButtonLayout,
19
+ type Behavior,
20
+ type TabsLayout,
21
+ type TabsLayoutTab,
34
22
  type BoxLayout,
35
- type ColumnsLayout,
23
+ type SectionLayout,
24
+ type SectionLayoutCallToAction,
25
+ type ModalLayoutContent,
26
+ type CollectionLayoutItem,
27
+ type CollectionLayoutCallToAction,
28
+ type AlertLayoutCallToAction,
29
+ type ModalLayout,
30
+ type ListLayout,
31
+ type AlertLayout,
32
+ type CollectionLayout,
36
33
  type DecisionLayout,
37
34
  type SearchLayout,
38
- type StatusListLayout,
39
- type TabsLayout,
40
- type UpsellLayout,
41
- type AdditionalInfo,
42
- type TabsLayoutTab,
35
+ type CollectionLayoutState,
36
+ type DecisionLayoutOption,
43
37
  type SearchInitialState,
44
- type AlertLayoutCallToAction,
45
- type ModalResponseBody,
46
- type SearchInitialLayoutConfig,
47
- type SearchResponse,
48
- type SearchLayoutResponseBody,
49
- type SubflowResponseBody,
50
- type IntegerSchema,
38
+ type CollectionLayoutSection,
39
+ type ModalBehavior,
40
+ type SubflowBehavior,
41
+ type PersistAsync,
42
+ type Schema,
43
+ type ToolbarButton,
44
+ type ToolbarItem,
45
+ type Toolbar,
46
+ type Polling,
47
+ type PollingOnError,
48
+ type LinkHandler,
51
49
  type AllOfSchema,
52
- type ObjectSchema,
53
- type OneOfSchema,
54
- type ArraySchemaList,
50
+ type ConstSchema,
51
+ type NumberSchema,
55
52
  type ArraySchema,
56
53
  type BlobSchema,
57
54
  type BooleanSchema,
58
- type ConstSchema,
59
- type NumberSchema,
55
+ type IntegerSchema,
56
+ type ObjectSchema,
57
+ type OneOfSchema,
60
58
  type StringSchema,
61
59
  type ArraySchemaTuple,
60
+ type ArraySchemaList,
61
+ type Step,
62
+ type SubflowResponseBody,
63
+ type ModalResponseBody,
64
+ type SearchInitialLayoutConfig,
65
+ type SearchResponse,
66
+ type SearchLayoutResponseBody,
62
67
  } from '../spec';
63
68
 
64
- export const linkSchema = z.object({
65
- url: z.string(),
69
+ export const sizeSchema = z.union([
70
+ z.literal('xs'),
71
+ z.literal('sm'),
72
+ z.literal('md'),
73
+ z.literal('lg'),
74
+ z.literal('xl'),
75
+ ]);
76
+
77
+ export const columnsLayoutBiasSchema = z.union([
78
+ z.literal('none'),
79
+ z.literal('left'),
80
+ z.literal('right'),
81
+ ]);
82
+
83
+ export const modalLayoutTriggerSchema = z.object({
84
+ title: z.string(),
66
85
  });
67
86
 
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'),
87
+ export const statusListLayoutStatusSchema = z.union([
88
+ z.literal('not-done'),
89
+ z.literal('pending'),
90
+ z.literal('done'),
74
91
  ]);
75
92
 
76
- export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
77
- z
78
- .union([
79
- z.string(),
80
- z.number(),
81
- z.boolean(),
82
- z.record(jsonElementSchema),
83
- z.array(jsonElementSchema),
84
- ])
85
- .nullable(),
86
- );
93
+ export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
94
+
95
+ export const listLayoutStatusSchema = z.union([
96
+ z.literal('warning'),
97
+ z.literal('neutral'),
98
+ z.literal('positive'),
99
+ ]);
87
100
 
88
101
  export const imageSchema = z.object({
89
102
  text: z.string().optional(),
@@ -92,13 +105,21 @@ export const imageSchema = z.object({
92
105
  accessibilityDescription: z.string().optional(),
93
106
  });
94
107
 
95
- export const httpMethodSchema = z.union([
96
- z.literal('GET'),
97
- z.literal('POST'),
98
- z.literal('PUT'),
99
- z.literal('PATCH'),
100
- z.literal('DELETE'),
101
- ]);
108
+ export const supportingValuesSchema = z.object({
109
+ value: z.string().optional(),
110
+ subvalue: z.string().optional(),
111
+ });
112
+
113
+ export const paragraphLayoutSchema = z.object({
114
+ type: z.literal('paragraph'),
115
+ text: z.string(),
116
+ align: alignSchema.optional(),
117
+ control: z.string().optional(),
118
+ margin: sizeSchema.optional(),
119
+ analyticsId: z.string().optional(),
120
+ tags: z.array(z.string()).optional(),
121
+ size: sizeSchema.optional(),
122
+ });
102
123
 
103
124
  export const contextSchema = z.union([
104
125
  z.literal('positive'),
@@ -111,154 +132,30 @@ export const contextSchema = z.union([
111
132
  z.literal('primary'),
112
133
  ]);
113
134
 
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({
121
- url: z.string(),
122
- });
123
-
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({
135
+ export const collectionLayoutSearchSchema = z.object({
136
+ param: z.string(),
170
137
  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
- });
181
-
182
- export const summaryProviderSchema = z.object({
183
- providesTitle: z.boolean().optional(),
184
- providesDescription: z.boolean().optional(),
185
- providesIcon: z.boolean().optional(),
186
- providesImage: z.boolean().optional(),
187
- providesMedia: z.boolean().optional(),
138
+ hint: z.string().optional(),
188
139
  });
189
140
 
190
- export const stepErrorSchema = z.object({
191
- error: z.string().optional(),
192
- validation: jsonElementSchema.optional(),
193
- });
194
-
195
- export const pushPresentationSchema = z.object({
196
- type: z.literal('push'),
197
- });
198
-
199
- export const modalPresentationSchema = z.object({
200
- type: z.literal('modal'),
141
+ export const loadingIndicatorLayoutSchema = z.object({
142
+ type: z.literal('loading-indicator'),
143
+ size: sizeSchema.optional(),
144
+ control: z.string().optional(),
145
+ margin: sizeSchema.optional(),
146
+ analyticsId: z.string().optional(),
147
+ tags: z.array(z.string()).optional(),
201
148
  });
202
149
 
203
- export const nativeLaunchConfigSchema = z.object({
204
- type: z.literal('native'),
205
- id: z.string(),
206
- payload: jsonElementSchema.optional(),
150
+ export const inlineAlertSchema = z.object({
151
+ content: z.string(),
152
+ context: contextSchema.optional(),
207
153
  });
208
154
 
209
- export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
210
-
211
155
  export const helpSchema = z.object({
212
156
  markdown: z.string(),
213
157
  });
214
158
 
215
- export const navigationStackBehaviorSchema = z.union([
216
- z.literal('default'),
217
- z.literal('remove-previous'),
218
- z.literal('remove-all'),
219
- z.literal('replace-current'),
220
- ]);
221
-
222
- export const navigationSchema = z.object({
223
- backButton: navigationBackBehaviorSchema.optional(),
224
- back: navigationBackBehaviorSchema.optional(),
225
- stackBehavior: navigationStackBehaviorSchema.optional(),
226
- });
227
-
228
- export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
229
-
230
- export const validateAsyncSchema = z.object({
231
- param: z.string(),
232
- method: httpMethodSchema,
233
- url: z.string(),
234
- });
235
-
236
- export const columnsLayoutBiasSchema = z.union([
237
- z.literal('none'),
238
- z.literal('left'),
239
- z.literal('right'),
240
- ]);
241
-
242
- export const statusListLayoutStatusSchema = z.union([
243
- z.literal('not-done'),
244
- z.literal('pending'),
245
- z.literal('done'),
246
- ]);
247
-
248
- export const listLayoutStatusSchema = z.union([
249
- z.literal('warning'),
250
- z.literal('neutral'),
251
- z.literal('positive'),
252
- ]);
253
-
254
- export const sizeSchema = z.union([
255
- z.literal('xs'),
256
- z.literal('sm'),
257
- z.literal('md'),
258
- z.literal('lg'),
259
- z.literal('xl'),
260
- ]);
261
-
262
159
  export const instructionsLayoutItemSchema = z.object({
263
160
  text: z.string(),
264
161
  context: contextSchema,
@@ -267,18 +164,22 @@ export const instructionsLayoutItemSchema = z.object({
267
164
  tags: z.array(z.string()).optional(),
268
165
  });
269
166
 
270
- export const supportingValuesSchema = z.object({
271
- value: z.string().optional(),
272
- subvalue: z.string().optional(),
273
- });
274
-
275
- export const inlineAlertSchema = z.object({
276
- content: z.string(),
277
- context: contextSchema.optional(),
167
+ export const formLayoutSchemaReferenceSchema = z.object({
168
+ $ref: z.string(),
278
169
  });
279
170
 
280
- export const modalLayoutTriggerSchema = z.object({
281
- title: z.string(),
171
+ export const imageLayoutSchema = z.object({
172
+ type: z.literal('image'),
173
+ text: z.string().optional(),
174
+ url: z.string().optional(),
175
+ accessibilityDescription: z.string().optional(),
176
+ content: imageSchema.optional(),
177
+ size: sizeSchema.optional(),
178
+ control: z.string().optional(),
179
+ margin: sizeSchema.optional(),
180
+ align: alignSchema.optional(),
181
+ analyticsId: z.string().optional(),
182
+ tags: z.array(z.string()).optional(),
282
183
  });
283
184
 
284
185
  export const dividerLayoutSchema = z.object({
@@ -289,29 +190,30 @@ export const dividerLayoutSchema = z.object({
289
190
  tags: z.array(z.string()).optional(),
290
191
  });
291
192
 
292
- export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
193
+ export const selectFilterOptionSchema = z.object({
194
+ value: z.string(),
195
+ title: z.string(),
196
+ accessibilityDescription: z.string().optional(),
197
+ selected: z.boolean().optional(),
198
+ });
293
199
 
294
- export const headingLayoutSchema = z.object({
295
- type: z.literal('heading'),
296
- text: z.string(),
297
- size: sizeSchema.optional(),
298
- align: alignSchema.optional(),
200
+ export const formLayoutSchema = z.object({
201
+ type: z.literal('form'),
202
+ schema: formLayoutSchemaReferenceSchema.optional(),
203
+ schemaId: z.string(),
299
204
  control: z.string().optional(),
300
205
  margin: sizeSchema.optional(),
301
206
  analyticsId: z.string().optional(),
302
207
  tags: z.array(z.string()).optional(),
303
208
  });
304
209
 
305
- export const imageLayoutSchema = z.object({
306
- type: z.literal('image'),
307
- text: z.string().optional(),
308
- url: z.string().optional(),
309
- accessibilityDescription: z.string().optional(),
310
- content: imageSchema.optional(),
210
+ export const headingLayoutSchema = z.object({
211
+ type: z.literal('heading'),
212
+ text: z.string(),
311
213
  size: sizeSchema.optional(),
214
+ align: alignSchema.optional(),
312
215
  control: z.string().optional(),
313
216
  margin: sizeSchema.optional(),
314
- align: alignSchema.optional(),
315
217
  analyticsId: z.string().optional(),
316
218
  tags: z.array(z.string()).optional(),
317
219
  });
@@ -336,85 +238,187 @@ export const instructionsLayoutSchema = z.object({
336
238
  tags: z.array(z.string()).optional(),
337
239
  });
338
240
 
339
- export const loadingIndicatorLayoutSchema = z.object({
340
- type: z.literal('loading-indicator'),
341
- size: sizeSchema.optional(),
241
+ export const markdownLayoutSchema = z.object({
242
+ type: z.literal('markdown'),
243
+ content: z.string(),
244
+ align: alignSchema.optional(),
342
245
  control: z.string().optional(),
343
246
  margin: sizeSchema.optional(),
344
247
  analyticsId: z.string().optional(),
345
248
  tags: z.array(z.string()).optional(),
249
+ size: sizeSchema.optional(),
346
250
  });
347
251
 
348
- export const markdownLayoutSchema = z.object({
349
- type: z.literal('markdown'),
350
- content: z.string(),
351
- align: alignSchema.optional(),
252
+ export const progressLayoutSchema = z.object({
253
+ type: z.literal('progress'),
254
+ title: z.string().optional(),
255
+ description: z.string().optional(),
256
+ progress: z.number(),
257
+ progressText: z.string(),
258
+ context: contextSchema.optional(),
259
+ help: helpSchema.optional(),
352
260
  control: z.string().optional(),
353
261
  margin: sizeSchema.optional(),
354
262
  analyticsId: z.string().optional(),
355
263
  tags: z.array(z.string()).optional(),
356
- size: sizeSchema.optional(),
357
264
  });
358
265
 
359
- export const paragraphLayoutSchema = z.object({
360
- type: z.literal('paragraph'),
361
- text: z.string(),
362
- align: alignSchema.optional(),
363
- control: z.string().optional(),
364
- margin: sizeSchema.optional(),
365
- analyticsId: z.string().optional(),
366
- tags: z.array(z.string()).optional(),
367
- size: sizeSchema.optional(),
266
+ export const httpMethodSchema = z.union([
267
+ z.literal('GET'),
268
+ z.literal('POST'),
269
+ z.literal('PUT'),
270
+ z.literal('PATCH'),
271
+ z.literal('DELETE'),
272
+ ]);
273
+
274
+ export const collectionLayoutSelectFilterSchema = z.object({
275
+ type: z.literal('select'),
276
+ param: z.string(),
277
+ options: z.array(selectFilterOptionSchema),
278
+ multiSelect: z.boolean().optional(),
279
+ });
280
+
281
+ export const collectionLayoutFilterSchema = collectionLayoutSelectFilterSchema;
282
+
283
+ export const copyBehaviorSchema = z.object({
284
+ type: z.literal('copy'),
285
+ content: z.string(),
286
+ analytics: z.record(z.string()).optional(),
287
+ });
288
+
289
+ export const dismissBehaviorSchema = z.object({
290
+ type: z.literal('dismiss'),
291
+ analytics: z.record(z.string()).optional(),
292
+ });
293
+
294
+ export const linkBehaviorSchema = z.object({
295
+ type: z.literal('link'),
296
+ url: z.string(),
297
+ analytics: z.record(z.string()).optional(),
298
+ });
299
+
300
+ export const refreshBehaviorSchema = z.object({
301
+ type: z.literal('refresh'),
302
+ analytics: z.record(z.string()).optional(),
303
+ });
304
+
305
+ export const actionTypeSchema = z.union([
306
+ z.literal('primary'),
307
+ z.literal('secondary'),
308
+ z.literal('link'),
309
+ z.literal('positive'),
310
+ z.literal('negative'),
311
+ ]);
312
+
313
+ export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
314
+ z
315
+ .union([
316
+ z.string(),
317
+ z.number(),
318
+ z.boolean(),
319
+ z.record(jsonElementSchema),
320
+ z.array(jsonElementSchema),
321
+ ])
322
+ .nullable(),
323
+ );
324
+
325
+ export const linkSchema = z.object({
326
+ url: z.string(),
327
+ });
328
+
329
+ export const navigationStackBehaviorSchema = z.union([
330
+ z.literal('default'),
331
+ z.literal('remove-previous'),
332
+ z.literal('remove-all'),
333
+ z.literal('replace-current'),
334
+ ]);
335
+
336
+ export const stepErrorSchema = z.object({
337
+ error: z.string().optional(),
338
+ validation: jsonElementSchema.optional(),
339
+ });
340
+
341
+ export const externalSchema = z.object({
342
+ url: z.string(),
343
+ });
344
+
345
+ export const nativeLaunchConfigSchema = z.object({
346
+ type: z.literal('native'),
347
+ id: z.string(),
348
+ payload: jsonElementSchema.optional(),
349
+ });
350
+
351
+ export const modalPresentationSchema = z.object({
352
+ type: z.literal('modal'),
353
+ });
354
+
355
+ export const requestSchema = z.object({
356
+ url: z.string(),
357
+ method: httpMethodSchema,
358
+ body: jsonElementSchema.optional(),
359
+ prefetch: z.boolean().optional(),
360
+ headers: z.record(z.string()).optional(),
368
361
  });
369
362
 
370
- export const progressLayoutSchema = z.object({
371
- type: z.literal('progress'),
372
- title: z.string().optional(),
373
- description: z.string().optional(),
374
- progress: z.number(),
375
- progressText: z.string(),
376
- context: contextSchema.optional(),
377
- help: helpSchema.optional(),
378
- control: z.string().optional(),
379
- margin: sizeSchema.optional(),
380
- analyticsId: z.string().optional(),
381
- tags: z.array(z.string()).optional(),
363
+ export const pushPresentationSchema = z.object({
364
+ type: z.literal('push'),
382
365
  });
383
366
 
384
- export const formLayoutSchemaReferenceSchema = z.object({
385
- $ref: z.string(),
367
+ export const actionSchema = z.object({
368
+ title: z.string().optional(),
369
+ type: actionTypeSchema.optional(),
370
+ disabled: z.boolean().optional(),
371
+ $id: z.string().optional(),
372
+ $ref: z.string().optional(),
373
+ id: z.string().optional(),
374
+ url: z.string().optional(),
375
+ method: httpMethodSchema.optional(),
376
+ exit: z.boolean().optional(),
377
+ result: jsonElementSchema.optional(),
378
+ data: jsonElementSchema.optional(),
379
+ timeout: z.number().optional(),
380
+ skipValidation: z.boolean().optional(),
381
+ prefetch: z.boolean().optional(),
386
382
  });
387
383
 
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(),
394
- analyticsId: z.string().optional(),
395
- tags: z.array(z.string()).optional(),
384
+ export const downloadBehaviorSchema = z.object({
385
+ type: z.literal('download'),
386
+ request: requestSchema,
387
+ analytics: z.record(z.string()).optional(),
396
388
  });
397
389
 
398
- export const searchSearchRequestSchema = z.object({
399
- url: z.string(),
400
- method: httpMethodSchema,
390
+ export const validateAsyncSchema = z.object({
401
391
  param: z.string(),
402
- query: z.string(),
392
+ method: httpMethodSchema,
393
+ url: z.string(),
403
394
  });
404
395
 
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(),
396
+ export const summaryProviderSchema = z.object({
397
+ providesTitle: z.boolean().optional(),
398
+ providesDescription: z.boolean().optional(),
399
+ providesIcon: z.boolean().optional(),
400
+ providesImage: z.boolean().optional(),
401
+ providesMedia: z.boolean().optional(),
411
402
  });
412
403
 
413
- export const actionResponseBodySchema = z.object({
404
+ export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
405
+
406
+ export const navigationBackBehaviorSchema = z.object({
407
+ title: z.string().optional(),
414
408
  action: actionSchema,
415
409
  });
416
410
 
417
- export const noOpResponseBodySchema = z.object({});
411
+ export const containerBehaviorSchema = z.object({
412
+ action: actionSchema.optional(),
413
+ link: linkSchema.optional(),
414
+ analytics: z.record(z.string()).optional(),
415
+ });
416
+
417
+ export const navigationSchema = z.object({
418
+ backButton: navigationBackBehaviorSchema.optional(),
419
+ back: navigationBackBehaviorSchema.optional(),
420
+ stackBehavior: navigationStackBehaviorSchema.optional(),
421
+ });
418
422
 
419
423
  export const autocompleteTokenSchema = z.union([
420
424
  z.literal('on'),
@@ -498,10 +502,33 @@ export const autocapitalizationTypeSchema = z.union([
498
502
  z.literal('words'),
499
503
  ]);
500
504
 
501
- export const avatarUriContentSchema = z.object({
502
- type: z.literal('uri'),
503
- uri: z.string(),
504
- badgeUri: z.string().optional(),
505
+ export const errorResponseBodySchema = z.object({
506
+ refreshFormUrl: z.string().optional(),
507
+ analytics: z.record(z.string()).optional(),
508
+ error: z.string().optional(),
509
+ validation: jsonElementSchema.optional(),
510
+ refreshUrl: z.string().optional(),
511
+ });
512
+
513
+ export const actionResponseBodySchema = z.object({
514
+ action: actionSchema,
515
+ });
516
+
517
+ export const searchSearchRequestSchema = z.object({
518
+ url: z.string(),
519
+ method: httpMethodSchema,
520
+ param: z.string(),
521
+ query: z.string(),
522
+ });
523
+
524
+ export const noOpResponseBodySchema = z.object({});
525
+
526
+ export const iconNamedSchema = z.object({
527
+ name: z.string(),
528
+ });
529
+
530
+ export const iconTextSchema = z.object({
531
+ text: z.string(),
505
532
  });
506
533
 
507
534
  export const avatarTextContentSchema = z.object({
@@ -510,12 +537,28 @@ export const avatarTextContentSchema = z.object({
510
537
  badgeUri: z.string().optional(),
511
538
  });
512
539
 
540
+ export const avatarUriContentSchema = z.object({
541
+ type: z.literal('uri'),
542
+ uri: z.string(),
543
+ badgeUri: z.string().optional(),
544
+ });
545
+
513
546
  export const mediaImageSchema = z.object({
514
547
  type: z.literal('image'),
515
548
  uri: z.string(),
516
549
  accessibilityDescription: z.string().optional(),
517
550
  });
518
551
 
552
+ export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
553
+
554
+ export const actionBehaviorSchema = z.object({
555
+ type: z.literal('action'),
556
+ action: actionSchema,
557
+ analytics: z.record(z.string()).optional(),
558
+ });
559
+
560
+ export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
561
+
519
562
  export const avatarContentSchema = z.union([avatarTextContentSchema, avatarUriContentSchema]);
520
563
 
521
564
  export const mediaAvatarSchema = z.object({
@@ -524,18 +567,19 @@ export const mediaAvatarSchema = z.object({
524
567
  accessibilityDescription: z.string().optional(),
525
568
  });
526
569
 
527
- export const iconNamedSchema = z.object({
528
- name: z.string(),
529
- });
570
+ export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
530
571
 
531
- export const iconTextSchema = z.object({
532
- text: z.string(),
572
+ export const mediaLayoutSchema = z.object({
573
+ type: z.literal('media'),
574
+ media: mediaSchema,
575
+ align: alignSchema.optional(),
576
+ size: sizeSchema.optional(),
577
+ analyticsId: z.string().optional(),
578
+ control: z.string().optional(),
579
+ margin: sizeSchema.optional(),
580
+ tags: z.array(z.string()).optional(),
533
581
  });
534
582
 
535
- export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
536
-
537
- export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
538
-
539
583
  export const summarySummariserSchema = z.object({
540
584
  defaultTitle: z.string().optional(),
541
585
  defaultDescription: z.string().optional(),
@@ -549,14 +593,6 @@ export const summarySummariserSchema = z.object({
549
593
  providesMedia: z.boolean().optional(),
550
594
  });
551
595
 
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
596
  export const dynamicLaunchConfigSchema = z.object({
561
597
  type: z.literal('dynamic'),
562
598
  request: requestSchema,
@@ -574,17 +610,14 @@ export const suggestionsValueSchema = z.object({
574
610
  tags: z.array(z.string()).optional(),
575
611
  });
576
612
 
577
- export const mediaLayoutSchema = z.object({
578
- type: z.literal('media'),
579
- media: mediaSchema,
580
- align: alignSchema.optional(),
581
- size: sizeSchema.optional(),
582
- analyticsId: z.string().optional(),
583
- control: z.string().optional(),
584
- margin: sizeSchema.optional(),
585
- tags: z.array(z.string()).optional(),
613
+ export const suggestionsSchema = z.object({
614
+ values: z.array(suggestionsValueSchema),
586
615
  });
587
616
 
617
+ export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
618
+
619
+ export const launchConfigSchema = z.union([dynamicLaunchConfigSchema, nativeLaunchConfigSchema]);
620
+
588
621
  export const searchResultActionSchema = z.object({
589
622
  type: z.literal('action'),
590
623
  title: z.string(),
@@ -601,148 +634,71 @@ export const searchResultSearchSchema = z.object({
601
634
  description: z.string().optional(),
602
635
  icon: iconSchema.optional(),
603
636
  image: imageSchema.optional(),
604
- value: searchSearchRequestSchema,
605
- media: mediaSchema.optional(),
606
- });
607
-
608
- export const searchResultSchema = z.union([searchResultActionSchema, searchResultSearchSchema]);
609
-
610
- export const searchInitialResultsConfigSchema = z.object({
611
- type: z.literal('results'),
612
- results: z.array(searchResultSchema),
613
- });
614
-
615
- export const launchConfigSchema = z.union([dynamicLaunchConfigSchema, nativeLaunchConfigSchema]);
616
-
617
- export const suggestionsSchema = z.object({
618
- values: z.array(suggestionsValueSchema),
619
- });
620
-
621
- export const searchResultsResponseBodySchema = z.object({
622
- type: z.literal('results'),
623
- results: z.array(searchResultSchema),
624
- });
625
-
626
- export const searchResponseBodySchema = z.object({
627
- type: z.literal('results').optional(),
628
- results: z.array(searchResultSchema),
629
- });
630
-
631
- export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
632
- z.object({
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,
639
- }),
640
- );
641
-
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
- );
637
+ value: searchSearchRequestSchema,
638
+ media: mediaSchema.optional(),
639
+ });
677
640
 
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
- );
641
+ export const searchResultSchema = z.union([searchResultActionSchema, searchResultSearchSchema]);
685
642
 
686
- export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
643
+ export const searchResultsResponseBodySchema = z.object({
644
+ type: z.literal('results'),
645
+ results: z.array(searchResultSchema),
646
+ });
687
647
 
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
- );
648
+ export const searchInitialResultsConfigSchema = z.object({
649
+ type: z.literal('results'),
650
+ results: z.array(searchResultSchema),
651
+ });
696
652
 
697
- export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
653
+ export const searchResponseBodySchema = z.object({
654
+ type: z.literal('results').optional(),
655
+ results: z.array(searchResultSchema),
656
+ });
657
+
658
+ export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
698
659
  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(),
660
+ type: z.literal('status-list'),
661
+ items: z.array(statusListLayoutItemSchema),
662
+ title: z.string().optional(),
663
+ control: z.string().optional(),
664
+ margin: sizeSchema.optional(),
665
+ analyticsId: z.string().optional(),
666
+ tags: z.array(z.string()).optional(),
706
667
  }),
707
668
  );
708
669
 
709
- export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
670
+ export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
710
671
  z.object({
711
- regexPattern: z.string(),
712
- behavior: behaviorSchema.optional(),
672
+ title: z.string(),
673
+ description: z.string().optional(),
674
+ icon: iconSchema,
675
+ status: statusListLayoutStatusSchema.optional(),
676
+ callToAction: itemCallToActionSchema.optional(),
677
+ tag: z.string().optional(),
678
+ analyticsId: z.string().optional(),
679
+ tags: z.array(z.string()).optional(),
713
680
  }),
714
681
  );
715
682
 
716
- export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
683
+ export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
717
684
  z.object({
718
- param: z.string(),
719
- idProperty: z.string(),
720
- schema: schemaSchema,
721
- url: z.string(),
722
- method: httpMethodSchema,
685
+ type: z.literal('columns'),
686
+ left: z.array(layoutSchema),
687
+ right: z.array(layoutSchema),
688
+ bias: columnsLayoutBiasSchema.optional(),
689
+ control: z.string().optional(),
690
+ margin: sizeSchema.optional(),
691
+ analyticsId: z.string().optional(),
692
+ tags: z.array(z.string()).optional(),
723
693
  }),
724
694
  );
725
695
 
726
- export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
727
- z.union([
728
- allOfSchemaSchema,
729
- arraySchemaSchema,
730
- blobSchemaSchema,
731
- booleanSchemaSchema,
732
- constSchemaSchema,
733
- integerSchemaSchema,
734
- numberSchemaSchema,
735
- objectSchemaSchema,
736
- oneOfSchemaSchema,
737
- stringSchemaSchema,
738
- ]),
739
- );
740
-
741
696
  export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
742
697
  z.union([
743
698
  alertLayoutSchema,
744
699
  boxLayoutSchema,
745
700
  buttonLayoutSchema,
701
+ collectionLayoutSchema,
746
702
  columnsLayoutSchema,
747
703
  decisionLayoutSchema,
748
704
  dividerLayoutSchema,
@@ -767,66 +723,50 @@ export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
767
723
  ]),
768
724
  );
769
725
 
770
- export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
771
- z.object({
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(),
795
- }),
796
- );
797
-
798
- export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
726
+ export const reviewLayoutSchema: z.ZodSchema<ReviewLayout> = z.lazy(() =>
799
727
  z.object({
800
- type: z.literal('button'),
728
+ type: z.literal('review'),
729
+ orientation: z.string().optional(),
801
730
  action: actionSchema.optional(),
802
- size: sizeSchema.optional(),
731
+ fields: z.array(reviewLayoutFieldSchema),
803
732
  title: z.string().optional(),
804
- behavior: behaviorSchema.optional(),
805
- context: contextSchema.optional(),
806
- disabled: z.boolean().optional(),
807
- pinOrder: z.number().optional(),
733
+ callToAction: reviewLayoutCallToActionSchema.optional(),
808
734
  control: z.string().optional(),
809
735
  margin: sizeSchema.optional(),
810
736
  analyticsId: z.string().optional(),
811
737
  tags: z.array(z.string()).optional(),
812
- media: mediaSchema.optional(),
813
738
  }),
814
739
  );
815
740
 
816
- export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
741
+ export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(() =>
817
742
  z.object({
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(),
743
+ label: z.string(),
744
+ value: z.string(),
745
+ rawValue: z.string().optional(),
746
+ help: helpSchema.optional(),
747
+ tag: z.string().optional(),
748
+ icon: iconSchema.optional(),
749
+ image: imageSchema.optional(),
750
+ additionalInfo: additionalInfoSchema.optional(),
751
+ inlineAlert: inlineAlertSchema.optional(),
752
+ callToAction: reviewLayoutCallToActionSchema.optional(),
753
+ media: mediaSchema.optional(),
824
754
  analyticsId: z.string().optional(),
825
755
  tags: z.array(z.string()).optional(),
826
756
  }),
827
757
  );
828
758
 
829
- export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
759
+ export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToAction> = z.lazy(() =>
760
+ z.object({
761
+ action: actionSchema.optional(),
762
+ title: z.string(),
763
+ accessibilityDescription: z.string().optional(),
764
+ behavior: behaviorSchema.optional(),
765
+ context: contextSchema.optional(),
766
+ }),
767
+ );
768
+
769
+ export const itemCallToActionSchema: z.ZodSchema<ItemCallToAction> = z.lazy(() =>
830
770
  z.object({
831
771
  title: z.string(),
832
772
  accessibilityDescription: z.string().optional(),
@@ -856,45 +796,112 @@ export const listLayoutItemSchema: z.ZodSchema<ListLayoutItem> = z.lazy(() =>
856
796
  }),
857
797
  );
858
798
 
859
- export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.lazy(() =>
799
+ export const additionalInfoSchema: z.ZodSchema<AdditionalInfo> = z.lazy(() =>
800
+ z.object({
801
+ text: z.string(),
802
+ behavior: behaviorSchema.optional(),
803
+ accessibilityDescription: z.string().optional(),
804
+ }),
805
+ );
806
+
807
+ export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
860
808
  z.object({
861
- action: actionSchema.optional(),
862
809
  title: z.string(),
863
- description: z.string().optional(),
864
- disabled: z.boolean().optional(),
865
- icon: iconSchema.optional(),
866
- image: imageSchema.optional(),
810
+ accessibilityDescription: z.string().optional(),
811
+ behavior: behaviorSchema,
812
+ context: contextSchema.optional(),
813
+ }),
814
+ );
815
+
816
+ export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
817
+ z.object({
818
+ type: z.literal('upsell'),
819
+ text: z.string(),
820
+ callToAction: upsellLayoutCallToActionSchema,
821
+ media: mediaSchema.optional(),
822
+ onDismiss: requestSchema.optional(),
823
+ control: z.string().optional(),
824
+ margin: sizeSchema.optional(),
825
+ analyticsId: z.string().optional(),
826
+ tags: z.array(z.string()).optional(),
827
+ }),
828
+ );
829
+
830
+ export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
831
+ z.object({
832
+ title: z.string(),
833
+ accessibilityDescription: z.string().optional(),
834
+ behavior: behaviorSchema,
835
+ context: contextSchema.optional(),
836
+ }),
837
+ );
838
+
839
+ export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
840
+ z.object({
841
+ type: z.literal('button'),
842
+ action: actionSchema.optional(),
843
+ size: sizeSchema.optional(),
844
+ title: z.string().optional(),
867
845
  behavior: behaviorSchema.optional(),
868
- tag: z.string().optional(),
869
- additionalText: z.string().optional(),
870
- supportingValues: supportingValuesSchema.optional(),
871
- inlineAlert: inlineAlertSchema.optional(),
846
+ context: contextSchema.optional(),
847
+ disabled: z.boolean().optional(),
848
+ pinOrder: z.number().optional(),
849
+ control: z.string().optional(),
850
+ margin: sizeSchema.optional(),
851
+ analyticsId: z.string().optional(),
852
+ tags: z.array(z.string()).optional(),
872
853
  media: mediaSchema.optional(),
854
+ }),
855
+ );
856
+
857
+ export const behaviorSchema: z.ZodSchema<Behavior> = z.lazy(() =>
858
+ z.union([
859
+ actionBehaviorSchema,
860
+ containerBehaviorSchema,
861
+ copyBehaviorSchema,
862
+ dismissBehaviorSchema,
863
+ downloadBehaviorSchema,
864
+ linkBehaviorSchema,
865
+ modalBehaviorSchema,
866
+ refreshBehaviorSchema,
867
+ subflowBehaviorSchema,
868
+ ]),
869
+ );
870
+
871
+ export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
872
+ z.object({
873
+ type: z.literal('tabs'),
874
+ tabs: z.array(tabsLayoutTabSchema),
875
+ control: z.string().optional(),
876
+ margin: sizeSchema.optional(),
877
+ analyticsId: z.string().optional(),
878
+ tags: z.array(z.string()).optional(),
879
+ }),
880
+ );
881
+
882
+ export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
883
+ z.object({
884
+ title: z.string(),
885
+ components: z.array(layoutSchema),
886
+ tag: z.string().optional(),
873
887
  analyticsId: z.string().optional(),
874
- keywords: z.array(z.string()).optional(),
875
888
  tags: z.array(z.string()).optional(),
876
889
  }),
877
890
  );
878
891
 
879
- export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
892
+ export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
880
893
  z.object({
881
- type: z.literal('modal'),
894
+ type: z.literal('box'),
895
+ components: z.array(layoutSchema),
896
+ width: sizeSchema.optional(),
897
+ border: z.boolean().optional(),
882
898
  control: z.string().optional(),
883
899
  margin: sizeSchema.optional(),
884
- trigger: modalLayoutTriggerSchema,
885
- content: modalLayoutContentSchema,
886
900
  analyticsId: z.string().optional(),
887
901
  tags: z.array(z.string()).optional(),
888
902
  }),
889
903
  );
890
904
 
891
- export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
892
- z.object({
893
- title: z.string().optional(),
894
- components: z.array(layoutSchema),
895
- }),
896
- );
897
-
898
905
  export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
899
906
  z.object({
900
907
  type: z.literal('section'),
@@ -917,29 +924,39 @@ export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAct
917
924
  }),
918
925
  );
919
926
 
920
- export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
927
+ export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
921
928
  z.object({
922
- title: z.string(),
923
- accessibilityDescription: z.string().optional(),
924
- behavior: behaviorSchema,
925
- context: contextSchema.optional(),
929
+ title: z.string().optional(),
930
+ components: z.array(layoutSchema),
926
931
  }),
927
932
  );
928
933
 
929
- export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
934
+ export const collectionLayoutItemSchema: z.ZodSchema<CollectionLayoutItem> = z.lazy(() =>
930
935
  z.object({
931
936
  title: z.string(),
932
937
  description: z.string().optional(),
933
- icon: iconSchema,
934
- status: statusListLayoutStatusSchema.optional(),
935
- callToAction: itemCallToActionSchema.optional(),
936
- tag: z.string().optional(),
938
+ disabled: z.boolean().optional(),
939
+ primaryBehavior: behaviorSchema.optional(),
940
+ callToAction: collectionLayoutCallToActionSchema.optional(),
941
+ additionalInfo: additionalInfoSchema.optional(),
942
+ supportingValues: supportingValuesSchema.optional(),
943
+ inlineAlert: inlineAlertSchema.optional(),
944
+ media: mediaSchema.optional(),
937
945
  analyticsId: z.string().optional(),
938
946
  tags: z.array(z.string()).optional(),
939
947
  }),
940
948
  );
941
949
 
942
- export const itemCallToActionSchema: z.ZodSchema<ItemCallToAction> = z.lazy(() =>
950
+ export const collectionLayoutCallToActionSchema: z.ZodSchema<CollectionLayoutCallToAction> = z.lazy(
951
+ () =>
952
+ z.object({
953
+ title: z.string(),
954
+ accessibilityDescription: z.string().optional(),
955
+ behavior: behaviorSchema,
956
+ }),
957
+ );
958
+
959
+ export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
943
960
  z.object({
944
961
  title: z.string(),
945
962
  accessibilityDescription: z.string().optional(),
@@ -948,49 +965,31 @@ export const itemCallToActionSchema: z.ZodSchema<ItemCallToAction> = z.lazy(() =
948
965
  }),
949
966
  );
950
967
 
951
- export const reviewLayoutSchema: z.ZodSchema<ReviewLayout> = z.lazy(() =>
968
+ export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
952
969
  z.object({
953
- type: z.literal('review'),
954
- orientation: z.string().optional(),
955
- action: actionSchema.optional(),
956
- fields: z.array(reviewLayoutFieldSchema),
957
- title: z.string().optional(),
958
- callToAction: reviewLayoutCallToActionSchema.optional(),
970
+ type: z.literal('modal'),
959
971
  control: z.string().optional(),
960
972
  margin: sizeSchema.optional(),
973
+ trigger: modalLayoutTriggerSchema,
974
+ content: modalLayoutContentSchema,
961
975
  analyticsId: z.string().optional(),
962
976
  tags: z.array(z.string()).optional(),
963
977
  }),
964
978
  );
965
979
 
966
- export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(() =>
980
+ export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
967
981
  z.object({
968
- label: z.string(),
969
- value: z.string(),
970
- rawValue: z.string().optional(),
971
- help: helpSchema.optional(),
972
- tag: z.string().optional(),
973
- icon: iconSchema.optional(),
974
- image: imageSchema.optional(),
975
- additionalInfo: additionalInfoSchema.optional(),
976
- inlineAlert: inlineAlertSchema.optional(),
977
- callToAction: reviewLayoutCallToActionSchema.optional(),
978
- media: mediaSchema.optional(),
982
+ type: z.literal('list'),
983
+ title: z.string().optional(),
984
+ callToAction: listLayoutCallToActionSchema.optional(),
985
+ items: z.array(listLayoutItemSchema),
986
+ control: z.string().optional(),
987
+ margin: sizeSchema.optional(),
979
988
  analyticsId: z.string().optional(),
980
989
  tags: z.array(z.string()).optional(),
981
990
  }),
982
991
  );
983
992
 
984
- export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToAction> = z.lazy(() =>
985
- z.object({
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
993
  export const alertLayoutSchema: z.ZodSchema<AlertLayout> = z.lazy(() =>
995
994
  z.object({
996
995
  type: z.literal('alert'),
@@ -1004,25 +1003,13 @@ export const alertLayoutSchema: z.ZodSchema<AlertLayout> = z.lazy(() =>
1004
1003
  }),
1005
1004
  );
1006
1005
 
1007
- export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
1008
- z.object({
1009
- type: z.literal('box'),
1010
- components: z.array(layoutSchema),
1011
- width: sizeSchema.optional(),
1012
- border: z.boolean().optional(),
1013
- control: z.string().optional(),
1014
- margin: sizeSchema.optional(),
1015
- analyticsId: z.string().optional(),
1016
- tags: z.array(z.string()).optional(),
1017
- }),
1018
- );
1019
-
1020
- export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
1006
+ export const collectionLayoutSchema: z.ZodSchema<CollectionLayout> = z.lazy(() =>
1021
1007
  z.object({
1022
- type: z.literal('columns'),
1023
- left: z.array(layoutSchema),
1024
- right: z.array(layoutSchema),
1025
- bias: columnsLayoutBiasSchema.optional(),
1008
+ type: z.literal('collection'),
1009
+ url: z.string(),
1010
+ method: httpMethodSchema,
1011
+ initialState: collectionLayoutStateSchema,
1012
+ search: collectionLayoutSearchSchema.optional(),
1026
1013
  control: z.string().optional(),
1027
1014
  margin: sizeSchema.optional(),
1028
1015
  analyticsId: z.string().optional(),
@@ -1059,57 +1046,32 @@ export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
1059
1046
  }),
1060
1047
  );
1061
1048
 
1062
- export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
1063
- z.object({
1064
- type: z.literal('status-list'),
1065
- items: z.array(statusListLayoutItemSchema),
1066
- title: z.string().optional(),
1067
- control: z.string().optional(),
1068
- margin: sizeSchema.optional(),
1069
- analyticsId: z.string().optional(),
1070
- tags: z.array(z.string()).optional(),
1071
- }),
1072
- );
1073
-
1074
- export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1075
- z.object({
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(),
1082
- }),
1083
- );
1084
-
1085
- export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
1086
- z.object({
1087
- type: z.literal('upsell'),
1088
- text: z.string(),
1089
- callToAction: upsellLayoutCallToActionSchema,
1090
- media: mediaSchema.optional(),
1091
- onDismiss: requestSchema.optional(),
1092
- control: z.string().optional(),
1093
- margin: sizeSchema.optional(),
1094
- analyticsId: z.string().optional(),
1095
- tags: z.array(z.string()).optional(),
1096
- }),
1097
- );
1098
-
1099
- export const additionalInfoSchema: z.ZodSchema<AdditionalInfo> = z.lazy(() =>
1049
+ export const collectionLayoutStateSchema: z.ZodSchema<CollectionLayoutState> = z.lazy(() =>
1100
1050
  z.object({
1101
- text: z.string(),
1102
- behavior: behaviorSchema.optional(),
1103
- accessibilityDescription: z.string().optional(),
1051
+ sections: z.array(collectionLayoutSectionSchema),
1052
+ nextCursor: z.string().optional(),
1053
+ filters: z.array(collectionLayoutFilterSchema).optional(),
1054
+ beforeSections: z.array(layoutSchema).optional(),
1055
+ afterSections: z.array(layoutSchema).optional(),
1104
1056
  }),
1105
1057
  );
1106
1058
 
1107
- export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
1059
+ export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.lazy(() =>
1108
1060
  z.object({
1061
+ action: actionSchema.optional(),
1109
1062
  title: z.string(),
1110
- components: z.array(layoutSchema),
1063
+ description: z.string().optional(),
1064
+ disabled: z.boolean().optional(),
1065
+ icon: iconSchema.optional(),
1066
+ image: imageSchema.optional(),
1067
+ behavior: behaviorSchema.optional(),
1111
1068
  tag: z.string().optional(),
1069
+ additionalText: z.string().optional(),
1070
+ supportingValues: supportingValuesSchema.optional(),
1071
+ inlineAlert: inlineAlertSchema.optional(),
1072
+ media: mediaSchema.optional(),
1112
1073
  analyticsId: z.string().optional(),
1074
+ keywords: z.array(z.string()).optional(),
1113
1075
  tags: z.array(z.string()).optional(),
1114
1076
  }),
1115
1077
  );
@@ -1118,87 +1080,108 @@ export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(
1118
1080
  z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
1119
1081
  );
1120
1082
 
1121
- export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
1083
+ export const collectionLayoutSectionSchema: z.ZodSchema<CollectionLayoutSection> = z.lazy(() =>
1122
1084
  z.object({
1123
- title: z.string(),
1124
- accessibilityDescription: z.string().optional(),
1125
- behavior: behaviorSchema,
1126
- context: contextSchema.optional(),
1085
+ id: z.string(),
1086
+ items: z.array(collectionLayoutItemSchema),
1087
+ title: z.string().optional(),
1088
+ callToAction: collectionLayoutCallToActionSchema.optional(),
1127
1089
  }),
1128
1090
  );
1129
1091
 
1130
- export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
1092
+ export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
1131
1093
  z.object({
1094
+ type: z.literal('modal'),
1132
1095
  title: z.string().optional(),
1133
1096
  content: z.array(layoutSchema),
1097
+ analytics: z.record(z.string()).optional(),
1134
1098
  }),
1135
1099
  );
1136
1100
 
1137
- export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
1101
+ export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
1138
1102
  z.object({
1139
- type: z.literal('layout'),
1140
- content: z.array(layoutSchema),
1103
+ type: z.literal('subflow'),
1104
+ referrerId: z.string(),
1105
+ launchConfig: launchConfigSchema,
1106
+ resultKey: z.string().optional(),
1107
+ onCompletion: behaviorSchema.optional(),
1108
+ onError: behaviorSchema.optional(),
1109
+ analytics: z.record(z.string()).optional(),
1141
1110
  }),
1142
1111
  );
1143
1112
 
1144
- export const searchResponseSchema: z.ZodSchema<SearchResponse> = z.lazy(() =>
1145
- z.union([searchLayoutResponseBodySchema, searchResultsResponseBodySchema]),
1146
- );
1147
-
1148
- export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBody> = z.lazy(() =>
1113
+ export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
1149
1114
  z.object({
1150
- type: z.literal('layout'),
1151
- content: z.array(layoutSchema),
1115
+ param: z.string(),
1116
+ idProperty: z.string(),
1117
+ schema: schemaSchema,
1118
+ url: z.string(),
1119
+ method: httpMethodSchema,
1152
1120
  }),
1153
1121
  );
1154
1122
 
1155
- export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
1156
- z.object({
1157
- referrerId: z.string(),
1158
- launchConfig: launchConfigSchema,
1159
- resultKey: z.string().optional(),
1160
- onCompletion: behaviorSchema.optional(),
1161
- onError: behaviorSchema.optional(),
1162
- }),
1123
+ export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
1124
+ z.union([
1125
+ allOfSchemaSchema,
1126
+ arraySchemaSchema,
1127
+ blobSchemaSchema,
1128
+ booleanSchemaSchema,
1129
+ constSchemaSchema,
1130
+ integerSchemaSchema,
1131
+ numberSchemaSchema,
1132
+ objectSchemaSchema,
1133
+ oneOfSchemaSchema,
1134
+ stringSchemaSchema,
1135
+ ]),
1163
1136
  );
1164
1137
 
1165
- export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1138
+ export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
1166
1139
  z.object({
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(),
1177
- title: z.string().optional(),
1178
- description: z.string().optional(),
1140
+ type: z.literal('toolbar-button'),
1141
+ title: z.string(),
1142
+ behavior: behaviorSchema,
1143
+ accessibilityDescription: z.string().optional(),
1144
+ media: mediaSchema.optional(),
1179
1145
  control: z.string().optional(),
1180
- default: z.number().optional(),
1181
- hidden: z.boolean().optional(),
1146
+ context: contextSchema.optional(),
1182
1147
  disabled: z.boolean().optional(),
1183
- icon: iconSchema.optional(),
1184
- image: imageSchema.optional(),
1185
- keywords: z.array(z.string()).optional(),
1186
- summary: summaryProviderSchema.optional(),
1187
1148
  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
1149
  tags: z.array(z.string()).optional(),
1199
- additionalText: z.string().optional(),
1200
- supportingValues: supportingValuesSchema.optional(),
1201
- inlineAlert: inlineAlertSchema.optional(),
1150
+ }),
1151
+ );
1152
+
1153
+ export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
1154
+
1155
+ export const toolbarSchema: z.ZodSchema<Toolbar> = z.lazy(() =>
1156
+ z.object({
1157
+ items: z.array(toolbarItemSchema),
1158
+ control: z.string().optional(),
1159
+ tags: z.array(z.string()).optional(),
1160
+ }),
1161
+ );
1162
+
1163
+ export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
1164
+ z.object({
1165
+ interval: z.number().optional(),
1166
+ url: z.string(),
1167
+ delay: z.number().optional(),
1168
+ timeout: z.number().optional(),
1169
+ maxAttempts: z.number(),
1170
+ onError: pollingOnErrorSchema,
1171
+ }),
1172
+ );
1173
+
1174
+ export const pollingOnErrorSchema: z.ZodSchema<PollingOnError> = z.lazy(() =>
1175
+ z.object({
1176
+ action: actionSchema.optional(),
1177
+ behavior: behaviorSchema.optional(),
1178
+ }),
1179
+ );
1180
+
1181
+ export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
1182
+ z.object({
1183
+ regexPattern: z.string(),
1184
+ behavior: behaviorSchema.optional(),
1202
1185
  }),
1203
1186
  );
1204
1187
 
@@ -1226,64 +1209,62 @@ export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
1226
1209
  }),
1227
1210
  );
1228
1211
 
1229
- export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
1212
+ export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1230
1213
  z.object({
1231
- type: z.literal('object'),
1232
- disabled: z.boolean().optional(),
1214
+ hidden: z.boolean().optional(),
1215
+ control: z.string().optional(),
1233
1216
  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
1217
  $id: z.string().optional(),
1218
+ const: jsonElementSchema,
1239
1219
  title: z.string().optional(),
1240
1220
  description: z.string().optional(),
1241
- control: z.string().optional(),
1242
- hidden: z.boolean().optional(),
1243
1221
  icon: iconSchema.optional(),
1244
1222
  image: imageSchema.optional(),
1245
1223
  keywords: z.array(z.string()).optional(),
1246
1224
  summary: summaryProviderSchema.optional(),
1247
1225
  analyticsId: z.string().optional(),
1248
- alert: alertLayoutSchema.optional(),
1226
+ disabled: z.boolean().optional(),
1249
1227
  media: mediaSchema.optional(),
1228
+ alert: alertLayoutSchema.optional(),
1229
+ layout: z.array(layoutSchema).optional(),
1250
1230
  tags: z.array(z.string()).optional(),
1251
- format: z.string().optional(),
1252
1231
  additionalText: z.string().optional(),
1253
1232
  supportingValues: supportingValuesSchema.optional(),
1254
1233
  inlineAlert: inlineAlertSchema.optional(),
1255
- onChange: behaviorSchema.optional(),
1256
1234
  }),
1257
1235
  );
1258
1236
 
1259
- export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
1237
+ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1260
1238
  z.object({
1239
+ type: z.literal('number'),
1261
1240
  autofillProvider: z.string().optional(),
1262
1241
  promoted: z.boolean().optional(),
1263
1242
  refreshFormOnChange: z.boolean().optional(),
1264
1243
  refreshUrl: z.string().optional(),
1265
1244
  refreshFormUrl: z.string().optional(),
1266
- promotion: jsonElementSchema.optional(),
1267
- oneOf: z.array(schemaSchema),
1268
1245
  placeholder: z.string().optional(),
1246
+ minimum: z.number().optional(),
1247
+ maximum: z.number().optional(),
1269
1248
  $id: z.string().optional(),
1270
1249
  title: z.string().optional(),
1271
1250
  description: z.string().optional(),
1272
1251
  control: z.string().optional(),
1273
- default: jsonElementSchema.optional(),
1252
+ default: z.number().optional(),
1274
1253
  hidden: z.boolean().optional(),
1254
+ disabled: z.boolean().optional(),
1275
1255
  icon: iconSchema.optional(),
1276
1256
  image: imageSchema.optional(),
1277
1257
  keywords: z.array(z.string()).optional(),
1278
1258
  summary: summaryProviderSchema.optional(),
1279
1259
  analyticsId: z.string().optional(),
1260
+ persistAsync: persistAsyncSchema.optional(),
1280
1261
  refreshStepOnChange: z.boolean().optional(),
1262
+ validationAsync: validateAsyncSchema.optional(),
1263
+ validationMessages: z.record(z.string()).optional(),
1281
1264
  alert: alertLayoutSchema.optional(),
1282
- help: helpSchema.optional(),
1283
1265
  autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1284
1266
  autofillKey: z.string().optional(),
1285
- validationMessages: z.record(z.string()).optional(),
1286
- disabled: z.boolean().optional(),
1267
+ help: helpSchema.optional(),
1287
1268
  onChange: behaviorSchema.optional(),
1288
1269
  media: mediaSchema.optional(),
1289
1270
  tags: z.array(z.string()).optional(),
@@ -1293,17 +1274,15 @@ export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
1293
1274
  }),
1294
1275
  );
1295
1276
 
1296
- export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1277
+ export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
1278
+ z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
1279
+ );
1280
+
1281
+ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1297
1282
  z.object({
1298
- type: z.literal('array'),
1283
+ type: z.literal('blob'),
1299
1284
  promoted: z.boolean().optional(),
1300
1285
  $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
1286
  title: z.string().optional(),
1308
1287
  description: z.string().optional(),
1309
1288
  control: z.string().optional(),
@@ -1311,12 +1290,15 @@ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1311
1290
  icon: iconSchema.optional(),
1312
1291
  image: imageSchema.optional(),
1313
1292
  keywords: z.array(z.string()).optional(),
1314
- summary: summarySummariserSchema.optional(),
1293
+ summary: summaryProviderSchema.optional(),
1315
1294
  analyticsId: z.string().optional(),
1316
- persistAsync: persistAsyncSchema.optional(),
1317
1295
  validationAsync: validateAsyncSchema.optional(),
1318
- alert: alertLayoutSchema.optional(),
1319
1296
  validationMessages: z.record(z.string()).optional(),
1297
+ alert: alertLayoutSchema.optional(),
1298
+ cameraConfig: jsonElementSchema.optional(),
1299
+ accepts: z.array(z.string()).optional(),
1300
+ maxSize: z.number().optional(),
1301
+ source: uploadSourceSchema.optional(),
1320
1302
  disabled: z.boolean().optional(),
1321
1303
  media: mediaSchema.optional(),
1322
1304
  tags: z.array(z.string()).optional(),
@@ -1326,32 +1308,33 @@ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1326
1308
  }),
1327
1309
  );
1328
1310
 
1329
- export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
1330
- z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
1331
- );
1332
-
1333
- export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1311
+ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1334
1312
  z.object({
1335
- type: z.literal('blob'),
1313
+ type: z.literal('boolean'),
1314
+ autofillProvider: z.string().optional(),
1336
1315
  promoted: z.boolean().optional(),
1316
+ refreshFormOnChange: z.boolean().optional(),
1317
+ refreshUrl: z.string().optional(),
1318
+ refreshFormUrl: z.string().optional(),
1337
1319
  $id: z.string().optional(),
1338
1320
  title: z.string().optional(),
1339
1321
  description: z.string().optional(),
1340
1322
  control: z.string().optional(),
1323
+ default: z.boolean().optional(),
1341
1324
  hidden: z.boolean().optional(),
1325
+ disabled: z.boolean().optional(),
1342
1326
  icon: iconSchema.optional(),
1343
1327
  image: imageSchema.optional(),
1344
1328
  keywords: z.array(z.string()).optional(),
1345
1329
  summary: summaryProviderSchema.optional(),
1346
1330
  analyticsId: z.string().optional(),
1331
+ persistAsync: persistAsyncSchema.optional(),
1332
+ refreshStepOnChange: z.boolean().optional(),
1347
1333
  validationAsync: validateAsyncSchema.optional(),
1348
- validationMessages: z.record(z.string()).optional(),
1349
1334
  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(),
1335
+ autofillKey: z.string().optional(),
1336
+ help: helpSchema.optional(),
1337
+ onChange: behaviorSchema.optional(),
1355
1338
  media: mediaSchema.optional(),
1356
1339
  tags: z.array(z.string()).optional(),
1357
1340
  additionalText: z.string().optional(),
@@ -1360,19 +1343,22 @@ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1360
1343
  }),
1361
1344
  );
1362
1345
 
1363
- export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1346
+ export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1364
1347
  z.object({
1365
- type: z.literal('boolean'),
1348
+ type: z.literal('integer'),
1366
1349
  autofillProvider: z.string().optional(),
1367
1350
  promoted: z.boolean().optional(),
1368
1351
  refreshFormOnChange: z.boolean().optional(),
1369
1352
  refreshUrl: z.string().optional(),
1370
1353
  refreshFormUrl: z.string().optional(),
1354
+ placeholder: z.string().optional(),
1355
+ minimum: z.number().optional(),
1356
+ maximum: z.number().optional(),
1371
1357
  $id: z.string().optional(),
1372
1358
  title: z.string().optional(),
1373
1359
  description: z.string().optional(),
1374
1360
  control: z.string().optional(),
1375
- default: z.boolean().optional(),
1361
+ default: z.number().optional(),
1376
1362
  hidden: z.boolean().optional(),
1377
1363
  disabled: z.boolean().optional(),
1378
1364
  icon: iconSchema.optional(),
@@ -1383,7 +1369,9 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1383
1369
  persistAsync: persistAsyncSchema.optional(),
1384
1370
  refreshStepOnChange: z.boolean().optional(),
1385
1371
  validationAsync: validateAsyncSchema.optional(),
1372
+ validationMessages: z.record(z.string()).optional(),
1386
1373
  alert: alertLayoutSchema.optional(),
1374
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1387
1375
  autofillKey: z.string().optional(),
1388
1376
  help: helpSchema.optional(),
1389
1377
  onChange: behaviorSchema.optional(),
@@ -1395,62 +1383,64 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1395
1383
  }),
1396
1384
  );
1397
1385
 
1398
- export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1386
+ export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
1399
1387
  z.object({
1400
- hidden: z.boolean().optional(),
1401
- control: z.string().optional(),
1388
+ type: z.literal('object'),
1389
+ disabled: z.boolean().optional(),
1402
1390
  promoted: z.boolean().optional(),
1391
+ help: helpSchema.optional(),
1392
+ properties: z.record(schemaSchema),
1393
+ displayOrder: z.array(z.string()),
1394
+ required: z.array(z.string()).optional(),
1403
1395
  $id: z.string().optional(),
1404
- const: jsonElementSchema,
1405
1396
  title: z.string().optional(),
1406
1397
  description: z.string().optional(),
1398
+ control: z.string().optional(),
1399
+ hidden: z.boolean().optional(),
1407
1400
  icon: iconSchema.optional(),
1408
1401
  image: imageSchema.optional(),
1409
1402
  keywords: z.array(z.string()).optional(),
1410
1403
  summary: summaryProviderSchema.optional(),
1411
1404
  analyticsId: z.string().optional(),
1412
- disabled: z.boolean().optional(),
1413
- media: mediaSchema.optional(),
1414
1405
  alert: alertLayoutSchema.optional(),
1415
- layout: z.array(layoutSchema).optional(),
1406
+ media: mediaSchema.optional(),
1416
1407
  tags: z.array(z.string()).optional(),
1408
+ format: z.string().optional(),
1417
1409
  additionalText: z.string().optional(),
1418
1410
  supportingValues: supportingValuesSchema.optional(),
1419
1411
  inlineAlert: inlineAlertSchema.optional(),
1412
+ onChange: behaviorSchema.optional(),
1420
1413
  }),
1421
1414
  );
1422
1415
 
1423
- export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1416
+ export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
1424
1417
  z.object({
1425
- type: z.literal('number'),
1426
1418
  autofillProvider: z.string().optional(),
1427
1419
  promoted: z.boolean().optional(),
1428
1420
  refreshFormOnChange: z.boolean().optional(),
1429
1421
  refreshUrl: z.string().optional(),
1430
1422
  refreshFormUrl: z.string().optional(),
1423
+ promotion: jsonElementSchema.optional(),
1424
+ oneOf: z.array(schemaSchema),
1431
1425
  placeholder: z.string().optional(),
1432
- minimum: z.number().optional(),
1433
- maximum: z.number().optional(),
1434
1426
  $id: z.string().optional(),
1435
1427
  title: z.string().optional(),
1436
1428
  description: z.string().optional(),
1437
1429
  control: z.string().optional(),
1438
- default: z.number().optional(),
1430
+ default: jsonElementSchema.optional(),
1439
1431
  hidden: z.boolean().optional(),
1440
- disabled: z.boolean().optional(),
1441
1432
  icon: iconSchema.optional(),
1442
1433
  image: imageSchema.optional(),
1443
1434
  keywords: z.array(z.string()).optional(),
1444
1435
  summary: summaryProviderSchema.optional(),
1445
1436
  analyticsId: z.string().optional(),
1446
- persistAsync: persistAsyncSchema.optional(),
1447
1437
  refreshStepOnChange: z.boolean().optional(),
1448
- validationAsync: validateAsyncSchema.optional(),
1449
- validationMessages: z.record(z.string()).optional(),
1450
1438
  alert: alertLayoutSchema.optional(),
1439
+ help: helpSchema.optional(),
1451
1440
  autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1452
1441
  autofillKey: z.string().optional(),
1453
- help: helpSchema.optional(),
1442
+ validationMessages: z.record(z.string()).optional(),
1443
+ disabled: z.boolean().optional(),
1454
1444
  onChange: behaviorSchema.optional(),
1455
1445
  media: mediaSchema.optional(),
1456
1446
  tags: z.array(z.string()).optional(),
@@ -1537,3 +1527,99 @@ export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =
1537
1527
  inlineAlert: inlineAlertSchema.optional(),
1538
1528
  }),
1539
1529
  );
1530
+
1531
+ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1532
+ z.object({
1533
+ type: z.literal('array'),
1534
+ promoted: z.boolean().optional(),
1535
+ $id: z.string().optional(),
1536
+ items: schemaSchema,
1537
+ addItemTitle: z.string(),
1538
+ editItemTitle: z.string(),
1539
+ minItems: z.number().optional(),
1540
+ maxItems: z.number().optional(),
1541
+ placeholder: z.string().optional(),
1542
+ title: z.string().optional(),
1543
+ description: z.string().optional(),
1544
+ control: z.string().optional(),
1545
+ hidden: z.boolean().optional(),
1546
+ icon: iconSchema.optional(),
1547
+ image: imageSchema.optional(),
1548
+ keywords: z.array(z.string()).optional(),
1549
+ summary: summarySummariserSchema.optional(),
1550
+ analyticsId: z.string().optional(),
1551
+ persistAsync: persistAsyncSchema.optional(),
1552
+ validationAsync: validateAsyncSchema.optional(),
1553
+ alert: alertLayoutSchema.optional(),
1554
+ validationMessages: z.record(z.string()).optional(),
1555
+ disabled: z.boolean().optional(),
1556
+ media: mediaSchema.optional(),
1557
+ tags: z.array(z.string()).optional(),
1558
+ additionalText: z.string().optional(),
1559
+ supportingValues: supportingValuesSchema.optional(),
1560
+ inlineAlert: inlineAlertSchema.optional(),
1561
+ }),
1562
+ );
1563
+
1564
+ export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
1565
+ z.object({
1566
+ key: z.string().optional(),
1567
+ type: z.string().optional(),
1568
+ actions: z.array(actionSchema).optional(),
1569
+ refreshFormUrl: z.string().optional(),
1570
+ id: z.string(),
1571
+ title: z.string(),
1572
+ schemas: z.array(schemaSchema),
1573
+ layout: z.array(layoutSchema),
1574
+ description: z.string().optional(),
1575
+ model: jsonElementSchema.optional(),
1576
+ external: externalSchema.optional(),
1577
+ polling: pollingSchema.optional(),
1578
+ linkHandlers: z.array(linkHandlerSchema).optional(),
1579
+ analytics: z.record(z.string()).optional(),
1580
+ errors: stepErrorSchema.optional(),
1581
+ navigation: navigationSchema.optional(),
1582
+ refreshUrl: z.string().optional(),
1583
+ control: z.string().optional(),
1584
+ refreshAfter: z.string().optional(),
1585
+ toolbar: toolbarSchema.optional(),
1586
+ tags: z.array(z.string()).optional(),
1587
+ footer: z.array(layoutSchema).optional(),
1588
+ onLoad: behaviorSchema.optional(),
1589
+ }),
1590
+ );
1591
+
1592
+ export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
1593
+ z.object({
1594
+ referrerId: z.string(),
1595
+ launchConfig: launchConfigSchema,
1596
+ resultKey: z.string().optional(),
1597
+ onCompletion: behaviorSchema.optional(),
1598
+ onError: behaviorSchema.optional(),
1599
+ }),
1600
+ );
1601
+
1602
+ export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
1603
+ z.object({
1604
+ title: z.string().optional(),
1605
+ content: z.array(layoutSchema),
1606
+ }),
1607
+ );
1608
+
1609
+ export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
1610
+ z.object({
1611
+ type: z.literal('layout'),
1612
+ content: z.array(layoutSchema),
1613
+ }),
1614
+ );
1615
+
1616
+ export const searchResponseSchema: z.ZodSchema<SearchResponse> = z.lazy(() =>
1617
+ z.union([searchLayoutResponseBodySchema, searchResultsResponseBodySchema]),
1618
+ );
1619
+
1620
+ export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBody> = z.lazy(() =>
1621
+ z.object({
1622
+ type: z.literal('layout'),
1623
+ content: z.array(layoutSchema),
1624
+ }),
1625
+ );