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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/build/renderers/AlertRendererProps.d.ts +5 -0
  2. package/build/renderers/AlertRendererProps.d.ts.map +1 -1
  3. package/build/renderers/CollectionRendererProps.d.ts +19 -5
  4. package/build/renderers/CollectionRendererProps.d.ts.map +1 -1
  5. package/build/renderers/RendererProps.d.ts +2 -2
  6. package/build/renderers/RendererProps.d.ts.map +1 -1
  7. package/build/renderers/SectionRendererProps.d.ts +1 -0
  8. package/build/renderers/SectionRendererProps.d.ts.map +1 -1
  9. package/build/renderers/constants.d.ts +1 -1
  10. package/build/renderers/constants.d.ts.map +1 -1
  11. package/build/renderers/index.d.ts +1 -1
  12. package/build/renderers/index.d.ts.map +1 -1
  13. package/build/spec/index.d.ts +2 -2
  14. package/build/spec/index.d.ts.map +1 -1
  15. package/build/spec/layout/AlertLayout.d.ts +18 -0
  16. package/build/spec/layout/AlertLayout.d.ts.map +1 -1
  17. package/build/spec/layout/CollectionLayout.d.ts +3 -8
  18. package/build/spec/layout/CollectionLayout.d.ts.map +1 -1
  19. package/build/spec/layout/CollectionLayoutCallToAction.d.ts +8 -8
  20. package/build/spec/layout/CollectionLayoutCallToAction.d.ts.map +1 -1
  21. package/build/spec/layout/CollectionLayoutItem.d.ts +5 -1
  22. package/build/spec/layout/CollectionLayoutItem.d.ts.map +1 -1
  23. package/build/spec/layout/CollectionLayoutSelectFilter.d.ts +2 -2
  24. package/build/spec/layout/CollectionLayoutSelectFilter.d.ts.map +1 -1
  25. package/build/spec/layout/{SelectFilterOption.d.ts → CollectionLayoutSelectFilterOption.d.ts} +3 -3
  26. package/build/spec/layout/CollectionLayoutSelectFilterOption.d.ts.map +1 -0
  27. package/build/spec/layout/CollectionLayoutState.d.ts +2 -2
  28. package/build/spec/layout/Layout.d.ts +3 -3
  29. package/build/spec/layout/Layout.d.ts.map +1 -1
  30. package/build/spec/layout/SectionLayout.d.ts +4 -0
  31. package/build/spec/layout/SectionLayout.d.ts.map +1 -1
  32. package/build/spec/layout/StatusListLayoutItem.d.ts +2 -2
  33. package/build/spec/layout/StatusListLayoutItem.d.ts.map +1 -1
  34. package/build/spec/layout/{ItemCallToAction.d.ts → StatusListLayoutItemCallToAction.d.ts} +2 -2
  35. package/build/spec/layout/StatusListLayoutItemCallToAction.d.ts.map +1 -0
  36. package/build/spec/main.js +42 -34
  37. package/build/spec/main.mjs +42 -34
  38. package/build/spec/misc/Context.d.ts +1 -1
  39. package/build/spec/misc/Context.d.ts.map +1 -1
  40. package/build/spec/misc/media/MediaAvatar.d.ts +2 -2
  41. package/build/spec/misc/media/MediaAvatar.d.ts.map +1 -1
  42. package/build/spec/misc/media/MediaAvatarContent.d.ts +7 -0
  43. package/build/spec/misc/media/MediaAvatarContent.d.ts.map +1 -0
  44. package/build/spec/misc/media/{AvatarTextContent.d.ts → MediaAvatarTextContent.d.ts} +2 -2
  45. package/build/spec/misc/media/MediaAvatarTextContent.d.ts.map +1 -0
  46. package/build/spec/misc/media/{AvatarUriContent.d.ts → MediaAvatarUriContent.d.ts} +2 -2
  47. package/build/spec/misc/media/MediaAvatarUriContent.d.ts.map +1 -0
  48. package/build/spec/responses/search/SearchResultSearch.d.ts +2 -2
  49. package/build/spec/responses/search/SearchResultSearch.d.ts.map +1 -1
  50. package/build/spec/responses/search/{SearchSearchRequest.d.ts → SearchResultSearchSearchRequest.d.ts} +2 -2
  51. package/build/spec/responses/search/SearchResultSearchSearchRequest.d.ts.map +1 -0
  52. package/build/tsconfig.tsbuildinfo +1 -1
  53. package/build/zod/schemas.d.ts +375 -375
  54. package/build/zod/schemas.d.ts.map +1 -1
  55. package/build/zod/schemas.ts +780 -770
  56. package/package.json +1 -1
  57. package/build/spec/layout/ItemCallToAction.d.ts.map +0 -1
  58. package/build/spec/layout/SelectFilterOption.d.ts.map +0 -1
  59. package/build/spec/misc/media/AvatarContent.d.ts +0 -7
  60. package/build/spec/misc/media/AvatarContent.d.ts.map +0 -1
  61. package/build/spec/misc/media/AvatarTextContent.d.ts.map +0 -1
  62. package/build/spec/misc/media/AvatarUriContent.d.ts.map +0 -1
  63. package/build/spec/responses/search/SearchSearchRequest.d.ts.map +0 -1
@@ -2,123 +2,121 @@
2
2
  import { z } from 'zod';
3
3
  import {
4
4
  type JsonElement,
5
- type StatusListLayout,
6
- type StatusListLayoutItem,
7
- type ColumnsLayout,
8
- type Layout,
9
- type ReviewLayout,
10
- type ReviewLayoutField,
5
+ type AdditionalInfo,
6
+ type Behavior,
11
7
  type ReviewLayoutCallToAction,
12
- type ItemCallToAction,
8
+ type AlertLayoutCallToAction,
9
+ type ModalLayoutContent,
10
+ type Layout,
13
11
  type ListLayoutItem,
14
- type AdditionalInfo,
15
12
  type ListLayoutCallToAction,
16
- type UpsellLayout,
17
- type UpsellLayoutCallToAction,
18
- type ButtonLayout,
19
- type Behavior,
20
- type TabsLayout,
21
13
  type TabsLayoutTab,
22
- type BoxLayout,
23
- type SectionLayout,
14
+ type ButtonLayout,
15
+ type UpsellLayoutCallToAction,
16
+ type SearchLayout,
17
+ type SearchInitialState,
24
18
  type SectionLayoutCallToAction,
25
- type ModalLayoutContent,
26
- type CollectionLayoutItem,
19
+ type UpsellLayout,
27
20
  type CollectionLayoutCallToAction,
28
- type AlertLayoutCallToAction,
29
- type ModalLayout,
30
- type ListLayout,
31
- type AlertLayout,
21
+ type SectionLayout,
32
22
  type CollectionLayout,
33
- type DecisionLayout,
34
- type SearchLayout,
35
23
  type CollectionLayoutState,
36
- type DecisionLayoutOption,
37
- type SearchInitialState,
24
+ type ModalLayout,
25
+ type StatusListLayoutItem,
26
+ type StatusListLayoutItemCallToAction,
38
27
  type CollectionLayoutSection,
39
- type ModalBehavior,
40
- type SubflowBehavior,
41
- type PersistAsync,
28
+ type CollectionLayoutItem,
29
+ type AlertLayout,
30
+ type ListLayout,
31
+ type StatusListLayout,
32
+ type ColumnsLayout,
33
+ type DecisionLayoutOption,
34
+ type BoxLayout,
35
+ type ReviewLayout,
36
+ type ReviewLayoutField,
37
+ type DecisionLayout,
38
+ type TabsLayout,
39
+ type Step,
42
40
  type Schema,
43
- type ToolbarButton,
44
- type ToolbarItem,
45
- type Toolbar,
46
41
  type Polling,
47
- type PollingOnError,
48
42
  type LinkHandler,
43
+ type Toolbar,
44
+ type ArraySchemaTuple,
45
+ type PersistAsync,
49
46
  type AllOfSchema,
50
- type ConstSchema,
51
- type NumberSchema,
52
47
  type ArraySchema,
53
48
  type BlobSchema,
54
49
  type BooleanSchema,
50
+ type ConstSchema,
55
51
  type IntegerSchema,
52
+ type NumberSchema,
56
53
  type ObjectSchema,
57
54
  type OneOfSchema,
58
55
  type StringSchema,
59
- type ArraySchemaTuple,
60
56
  type ArraySchemaList,
61
- type Step,
62
57
  type SubflowResponseBody,
63
- type ModalResponseBody,
64
58
  type SearchInitialLayoutConfig,
65
59
  type SearchResponse,
66
60
  type SearchLayoutResponseBody,
61
+ type ModalResponseBody,
62
+ type PollingOnError,
63
+ type SubflowBehavior,
64
+ type ToolbarItem,
65
+ type ToolbarButton,
66
+ type ModalBehavior,
67
67
  } from '../spec';
68
68
 
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(),
69
+ export const mediaAvatarTextContentSchema = z.object({
70
+ type: z.literal('text'),
71
+ text: z.string(),
72
+ badgeUri: z.string().optional(),
85
73
  });
86
74
 
87
- export const statusListLayoutStatusSchema = z.union([
88
- z.literal('not-done'),
89
- z.literal('pending'),
90
- z.literal('done'),
91
- ]);
92
-
93
- export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
75
+ export const mediaAvatarUriContentSchema = z.object({
76
+ type: z.literal('uri'),
77
+ uri: z.string(),
78
+ badgeUri: z.string().optional(),
79
+ });
94
80
 
95
- export const listLayoutStatusSchema = z.union([
96
- z.literal('warning'),
97
- z.literal('neutral'),
98
- z.literal('positive'),
81
+ export const mediaAvatarContentSchema = z.union([
82
+ mediaAvatarTextContentSchema,
83
+ mediaAvatarUriContentSchema,
99
84
  ]);
100
85
 
101
- export const imageSchema = z.object({
102
- text: z.string().optional(),
103
- url: z.string().optional(),
104
- uri: z.string().optional(),
86
+ export const mediaAvatarSchema = z.object({
87
+ type: z.literal('avatar'),
88
+ content: z.array(mediaAvatarContentSchema),
105
89
  accessibilityDescription: z.string().optional(),
106
90
  });
107
91
 
108
- export const supportingValuesSchema = z.object({
109
- value: z.string().optional(),
110
- subvalue: z.string().optional(),
92
+ export const mediaImageSchema = z.object({
93
+ type: z.literal('image'),
94
+ uri: z.string(),
95
+ accessibilityDescription: z.string().optional(),
111
96
  });
112
97
 
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(),
98
+ export const httpMethodSchema = z.union([
99
+ z.literal('GET'),
100
+ z.literal('POST'),
101
+ z.literal('PUT'),
102
+ z.literal('PATCH'),
103
+ z.literal('DELETE'),
104
+ ]);
105
+
106
+ export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
107
+ z
108
+ .union([
109
+ z.string(),
110
+ z.number(),
111
+ z.boolean(),
112
+ z.record(jsonElementSchema),
113
+ z.array(jsonElementSchema),
114
+ ])
115
+ .nullable(),
116
+ );
117
+
118
+ export const iconNamedSchema = z.object({
119
+ name: z.string(),
122
120
  });
123
121
 
124
122
  export const contextSchema = z.union([
@@ -126,25 +124,24 @@ export const contextSchema = z.union([
126
124
  z.literal('neutral'),
127
125
  z.literal('warning'),
128
126
  z.literal('negative'),
127
+ z.literal('proposition'),
129
128
  z.literal('success'),
130
129
  z.literal('failure'),
131
130
  z.literal('info'),
132
131
  z.literal('primary'),
133
132
  ]);
134
133
 
135
- export const collectionLayoutSearchSchema = z.object({
136
- param: z.string(),
137
- title: z.string().optional(),
138
- hint: z.string().optional(),
139
- });
134
+ export const sizeSchema = z.union([
135
+ z.literal('xs'),
136
+ z.literal('sm'),
137
+ z.literal('md'),
138
+ z.literal('lg'),
139
+ z.literal('xl'),
140
+ ]);
140
141
 
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(),
142
+ export const supportingValuesSchema = z.object({
143
+ value: z.string().optional(),
144
+ subvalue: z.string().optional(),
148
145
  });
149
146
 
150
147
  export const inlineAlertSchema = z.object({
@@ -152,61 +149,164 @@ export const inlineAlertSchema = z.object({
152
149
  context: contextSchema.optional(),
153
150
  });
154
151
 
155
- export const helpSchema = z.object({
156
- markdown: z.string(),
157
- });
152
+ export const autocompleteTokenSchema = z.union([
153
+ z.literal('on'),
154
+ z.literal('name'),
155
+ z.literal('name-prefix'),
156
+ z.literal('given-name'),
157
+ z.literal('additional-name'),
158
+ z.literal('family-name'),
159
+ z.literal('name-suffix'),
160
+ z.literal('nickname'),
161
+ z.literal('email'),
162
+ z.literal('username'),
163
+ z.literal('new-username'),
164
+ z.literal('new-password'),
165
+ z.literal('password'),
166
+ z.literal('one-time-code'),
167
+ z.literal('job-title'),
168
+ z.literal('organization-name'),
169
+ z.literal('full-street-address'),
170
+ z.literal('street-address-line-1'),
171
+ z.literal('street-address-line-2'),
172
+ z.literal('street-address-line-3'),
173
+ z.literal('address-level-1'),
174
+ z.literal('address-level-2'),
175
+ z.literal('address-level-3'),
176
+ z.literal('address-level-4'),
177
+ z.literal('country-code'),
178
+ z.literal('country-name'),
179
+ z.literal('postal-code'),
180
+ z.literal('credit-card-name'),
181
+ z.literal('credit-card-given-name'),
182
+ z.literal('credit-card-middle-name'),
183
+ z.literal('credit-card-family-name'),
184
+ z.literal('credit-card-number'),
185
+ z.literal('credit-card-expiration'),
186
+ z.literal('credit-card-expiration-month'),
187
+ z.literal('credit-card-expiration-year'),
188
+ z.literal('credit-card-security-code'),
189
+ z.literal('credit-card-type'),
190
+ z.literal('transaction-currency'),
191
+ z.literal('transaction-amount'),
192
+ z.literal('language'),
193
+ z.literal('birthdate'),
194
+ z.literal('birthdate-day'),
195
+ z.literal('birthdate-month'),
196
+ z.literal('birthdate-year'),
197
+ z.literal('gender'),
198
+ z.literal('phone-number'),
199
+ z.literal('phone-country-code'),
200
+ z.literal('phone-national'),
201
+ z.literal('phone-area-code'),
202
+ z.literal('phone-local'),
203
+ z.literal('phone-local-prefix'),
204
+ z.literal('phone-local-suffix'),
205
+ z.literal('phone-extension'),
206
+ z.literal('url'),
207
+ z.literal('photo'),
208
+ z.literal('impp'),
209
+ z.literal('shipping'),
210
+ z.literal('billing'),
211
+ z.literal('home'),
212
+ z.literal('work'),
213
+ z.literal('mobile'),
214
+ z.literal('fax'),
215
+ z.literal('pager'),
216
+ ]);
158
217
 
159
- export const instructionsLayoutItemSchema = z.object({
218
+ export const iconTextSchema = z.object({
160
219
  text: z.string(),
161
- context: contextSchema,
162
- tag: z.string().optional(),
163
- analyticsId: z.string().optional(),
164
- tags: z.array(z.string()).optional(),
165
220
  });
166
221
 
167
- export const formLayoutSchemaReferenceSchema = z.object({
168
- $ref: z.string(),
169
- });
222
+ export const autocapitalizationTypeSchema = z.union([
223
+ z.literal('none'),
224
+ z.literal('characters'),
225
+ z.literal('sentences'),
226
+ z.literal('words'),
227
+ ]);
170
228
 
171
- export const imageLayoutSchema = z.object({
172
- type: z.literal('image'),
229
+ export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
230
+
231
+ export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
232
+
233
+ export const imageSchema = z.object({
173
234
  text: z.string().optional(),
174
235
  url: z.string().optional(),
236
+ uri: z.string().optional(),
175
237
  accessibilityDescription: z.string().optional(),
176
- content: imageSchema.optional(),
177
- size: sizeSchema.optional(),
238
+ });
239
+
240
+ export const helpSchema = z.object({
241
+ markdown: z.string(),
242
+ });
243
+
244
+ export const collectionLayoutSearchSchema = z.object({
245
+ param: z.string(),
246
+ title: z.string().optional(),
247
+ hint: z.string().optional(),
248
+ });
249
+
250
+ export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
251
+
252
+ export const statusListLayoutStatusSchema = z.union([
253
+ z.literal('not-done'),
254
+ z.literal('pending'),
255
+ z.literal('done'),
256
+ ]);
257
+
258
+ export const paragraphLayoutSchema = z.object({
259
+ type: z.literal('paragraph'),
260
+ text: z.string(),
261
+ align: alignSchema.optional(),
178
262
  control: z.string().optional(),
179
263
  margin: sizeSchema.optional(),
180
- align: alignSchema.optional(),
181
264
  analyticsId: z.string().optional(),
182
265
  tags: z.array(z.string()).optional(),
266
+ size: sizeSchema.optional(),
183
267
  });
184
268
 
185
- export const dividerLayoutSchema = z.object({
186
- type: z.literal('divider'),
187
- control: z.string().optional(),
188
- margin: sizeSchema.optional(),
269
+ export const instructionsLayoutItemSchema = z.object({
270
+ text: z.string(),
271
+ context: contextSchema,
272
+ tag: z.string().optional(),
189
273
  analyticsId: z.string().optional(),
190
274
  tags: z.array(z.string()).optional(),
191
275
  });
192
276
 
193
- export const selectFilterOptionSchema = z.object({
277
+ export const collectionLayoutSelectFilterOptionSchema = z.object({
194
278
  value: z.string(),
195
279
  title: z.string(),
196
280
  accessibilityDescription: z.string().optional(),
197
281
  selected: z.boolean().optional(),
198
282
  });
199
283
 
200
- export const formLayoutSchema = z.object({
201
- type: z.literal('form'),
202
- schema: formLayoutSchemaReferenceSchema.optional(),
203
- schemaId: z.string(),
284
+ export const listLayoutStatusSchema = z.union([
285
+ z.literal('warning'),
286
+ z.literal('neutral'),
287
+ z.literal('positive'),
288
+ ]);
289
+
290
+ export const dividerLayoutSchema = z.object({
291
+ type: z.literal('divider'),
204
292
  control: z.string().optional(),
205
293
  margin: sizeSchema.optional(),
206
294
  analyticsId: z.string().optional(),
207
295
  tags: z.array(z.string()).optional(),
208
296
  });
209
297
 
298
+ export const formLayoutSchemaReferenceSchema = z.object({
299
+ $ref: z.string(),
300
+ });
301
+
302
+ export const requestSchema = z.object({
303
+ url: z.string(),
304
+ method: httpMethodSchema,
305
+ body: jsonElementSchema.optional(),
306
+ prefetch: z.boolean().optional(),
307
+ headers: z.record(z.string()).optional(),
308
+ });
309
+
210
310
  export const headingLayoutSchema = z.object({
211
311
  type: z.literal('heading'),
212
312
  text: z.string(),
@@ -218,14 +318,55 @@ export const headingLayoutSchema = z.object({
218
318
  tags: z.array(z.string()).optional(),
219
319
  });
220
320
 
221
- export const infoLayoutSchema = z.object({
222
- type: z.literal('info'),
321
+ export const markdownLayoutSchema = z.object({
322
+ type: z.literal('markdown'),
323
+ content: z.string(),
324
+ align: alignSchema.optional(),
325
+ control: z.string().optional(),
326
+ margin: sizeSchema.optional(),
327
+ analyticsId: z.string().optional(),
223
328
  tags: z.array(z.string()).optional(),
224
- markdown: z.string(),
329
+ size: sizeSchema.optional(),
330
+ });
331
+
332
+ export const modalLayoutTriggerSchema = z.object({
333
+ title: z.string(),
334
+ });
335
+
336
+ export const imageLayoutSchema = z.object({
337
+ type: z.literal('image'),
338
+ text: z.string().optional(),
339
+ url: z.string().optional(),
340
+ accessibilityDescription: z.string().optional(),
341
+ content: imageSchema.optional(),
342
+ size: sizeSchema.optional(),
343
+ control: z.string().optional(),
344
+ margin: sizeSchema.optional(),
225
345
  align: alignSchema.optional(),
346
+ analyticsId: z.string().optional(),
347
+ tags: z.array(z.string()).optional(),
348
+ });
349
+
350
+ export const loadingIndicatorLayoutSchema = z.object({
351
+ type: z.literal('loading-indicator'),
352
+ size: sizeSchema.optional(),
226
353
  control: z.string().optional(),
227
354
  margin: sizeSchema.optional(),
228
355
  analyticsId: z.string().optional(),
356
+ tags: z.array(z.string()).optional(),
357
+ });
358
+
359
+ export const columnsLayoutBiasSchema = z.union([
360
+ z.literal('none'),
361
+ z.literal('left'),
362
+ z.literal('right'),
363
+ ]);
364
+
365
+ export const collectionLayoutSelectFilterSchema = z.object({
366
+ type: z.literal('select'),
367
+ param: z.string(),
368
+ options: z.array(collectionLayoutSelectFilterOptionSchema),
369
+ multiSelect: z.boolean().optional(),
229
370
  });
230
371
 
231
372
  export const instructionsLayoutSchema = z.object({
@@ -238,15 +379,35 @@ export const instructionsLayoutSchema = z.object({
238
379
  tags: z.array(z.string()).optional(),
239
380
  });
240
381
 
241
- export const markdownLayoutSchema = z.object({
242
- type: z.literal('markdown'),
243
- content: z.string(),
244
- align: alignSchema.optional(),
382
+ export const formLayoutSchema = z.object({
383
+ type: z.literal('form'),
384
+ schema: formLayoutSchemaReferenceSchema.optional(),
385
+ schemaId: z.string(),
245
386
  control: z.string().optional(),
246
387
  margin: sizeSchema.optional(),
247
388
  analyticsId: z.string().optional(),
248
389
  tags: z.array(z.string()).optional(),
390
+ });
391
+
392
+ export const infoLayoutSchema = z.object({
393
+ type: z.literal('info'),
394
+ tags: z.array(z.string()).optional(),
395
+ markdown: z.string(),
396
+ align: alignSchema.optional(),
397
+ control: z.string().optional(),
398
+ margin: sizeSchema.optional(),
399
+ analyticsId: z.string().optional(),
400
+ });
401
+
402
+ export const mediaLayoutSchema = z.object({
403
+ type: z.literal('media'),
404
+ media: mediaSchema,
405
+ align: alignSchema.optional(),
249
406
  size: sizeSchema.optional(),
407
+ analyticsId: z.string().optional(),
408
+ control: z.string().optional(),
409
+ margin: sizeSchema.optional(),
410
+ tags: z.array(z.string()).optional(),
250
411
  });
251
412
 
252
413
  export const progressLayoutSchema = z.object({
@@ -263,136 +424,15 @@ export const progressLayoutSchema = z.object({
263
424
  tags: z.array(z.string()).optional(),
264
425
  });
265
426
 
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({
427
+ export const externalSchema = z.object({
326
428
  url: z.string(),
327
429
  });
328
430
 
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
431
  export const stepErrorSchema = z.object({
337
432
  error: z.string().optional(),
338
433
  validation: jsonElementSchema.optional(),
339
434
  });
340
435
 
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(),
361
- });
362
-
363
- export const pushPresentationSchema = z.object({
364
- type: z.literal('push'),
365
- });
366
-
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(),
382
- });
383
-
384
- export const downloadBehaviorSchema = z.object({
385
- type: z.literal('download'),
386
- request: requestSchema,
387
- analytics: z.record(z.string()).optional(),
388
- });
389
-
390
- export const validateAsyncSchema = z.object({
391
- param: z.string(),
392
- method: httpMethodSchema,
393
- url: z.string(),
394
- });
395
-
396
436
  export const summaryProviderSchema = z.object({
397
437
  providesTitle: z.boolean().optional(),
398
438
  providesDescription: z.boolean().optional(),
@@ -401,91 +441,12 @@ export const summaryProviderSchema = z.object({
401
441
  providesMedia: z.boolean().optional(),
402
442
  });
403
443
 
404
- export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
405
-
406
- export const navigationBackBehaviorSchema = z.object({
407
- title: z.string().optional(),
408
- action: actionSchema,
409
- });
410
-
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(),
444
+ export const validateAsyncSchema = z.object({
445
+ param: z.string(),
446
+ method: httpMethodSchema,
447
+ url: z.string(),
421
448
  });
422
449
 
423
- export const autocompleteTokenSchema = z.union([
424
- z.literal('on'),
425
- z.literal('name'),
426
- z.literal('name-prefix'),
427
- z.literal('given-name'),
428
- z.literal('additional-name'),
429
- z.literal('family-name'),
430
- z.literal('name-suffix'),
431
- z.literal('nickname'),
432
- z.literal('email'),
433
- z.literal('username'),
434
- z.literal('new-username'),
435
- z.literal('new-password'),
436
- z.literal('password'),
437
- z.literal('one-time-code'),
438
- z.literal('job-title'),
439
- z.literal('organization-name'),
440
- z.literal('full-street-address'),
441
- z.literal('street-address-line-1'),
442
- z.literal('street-address-line-2'),
443
- z.literal('street-address-line-3'),
444
- z.literal('address-level-1'),
445
- z.literal('address-level-2'),
446
- z.literal('address-level-3'),
447
- z.literal('address-level-4'),
448
- z.literal('country-code'),
449
- z.literal('country-name'),
450
- z.literal('postal-code'),
451
- z.literal('credit-card-name'),
452
- z.literal('credit-card-given-name'),
453
- z.literal('credit-card-middle-name'),
454
- z.literal('credit-card-family-name'),
455
- z.literal('credit-card-number'),
456
- z.literal('credit-card-expiration'),
457
- z.literal('credit-card-expiration-month'),
458
- z.literal('credit-card-expiration-year'),
459
- z.literal('credit-card-security-code'),
460
- z.literal('credit-card-type'),
461
- z.literal('transaction-currency'),
462
- z.literal('transaction-amount'),
463
- z.literal('language'),
464
- z.literal('birthdate'),
465
- z.literal('birthdate-day'),
466
- z.literal('birthdate-month'),
467
- z.literal('birthdate-year'),
468
- z.literal('gender'),
469
- z.literal('phone-number'),
470
- z.literal('phone-country-code'),
471
- z.literal('phone-national'),
472
- z.literal('phone-area-code'),
473
- z.literal('phone-local'),
474
- z.literal('phone-local-prefix'),
475
- z.literal('phone-local-suffix'),
476
- z.literal('phone-extension'),
477
- z.literal('url'),
478
- z.literal('photo'),
479
- z.literal('impp'),
480
- z.literal('shipping'),
481
- z.literal('billing'),
482
- z.literal('home'),
483
- z.literal('work'),
484
- z.literal('mobile'),
485
- z.literal('fax'),
486
- z.literal('pager'),
487
- ]);
488
-
489
450
  export const stringSchemaFormatSchema = z.union([
490
451
  z.literal('date'),
491
452
  z.literal('email'),
@@ -495,12 +456,20 @@ export const stringSchemaFormatSchema = z.union([
495
456
  z.literal('base64url'),
496
457
  ]);
497
458
 
498
- export const autocapitalizationTypeSchema = z.union([
499
- z.literal('none'),
500
- z.literal('characters'),
501
- z.literal('sentences'),
502
- z.literal('words'),
503
- ]);
459
+ export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
460
+
461
+ export const summarySummariserSchema = z.object({
462
+ defaultTitle: z.string().optional(),
463
+ defaultDescription: z.string().optional(),
464
+ defaultIcon: iconSchema.optional(),
465
+ defaultImage: imageSchema.optional(),
466
+ providesTitle: z.boolean().optional(),
467
+ providesDescription: z.boolean().optional(),
468
+ providesIcon: z.boolean().optional(),
469
+ providesImage: z.boolean().optional(),
470
+ defaultMedia: mediaSchema.optional(),
471
+ providesMedia: z.boolean().optional(),
472
+ });
504
473
 
505
474
  export const errorResponseBodySchema = z.object({
506
475
  refreshFormUrl: z.string().optional(),
@@ -510,113 +479,139 @@ export const errorResponseBodySchema = z.object({
510
479
  refreshUrl: z.string().optional(),
511
480
  });
512
481
 
513
- export const actionResponseBodySchema = z.object({
514
- action: actionSchema,
515
- });
482
+ export const noOpResponseBodySchema = z.object({});
516
483
 
517
- export const searchSearchRequestSchema = z.object({
484
+ export const searchResultSearchSearchRequestSchema = z.object({
518
485
  url: z.string(),
519
486
  method: httpMethodSchema,
520
487
  param: z.string(),
521
488
  query: z.string(),
522
489
  });
523
490
 
524
- export const noOpResponseBodySchema = z.object({});
525
-
526
- export const iconNamedSchema = z.object({
527
- name: z.string(),
491
+ export const searchResultSearchSchema = z.object({
492
+ type: z.literal('search'),
493
+ title: z.string(),
494
+ description: z.string().optional(),
495
+ icon: iconSchema.optional(),
496
+ image: imageSchema.optional(),
497
+ value: searchResultSearchSearchRequestSchema,
498
+ media: mediaSchema.optional(),
528
499
  });
529
500
 
530
- export const iconTextSchema = z.object({
531
- text: z.string(),
501
+ export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
502
+
503
+ export const actionTypeSchema = z.union([
504
+ z.literal('primary'),
505
+ z.literal('secondary'),
506
+ z.literal('link'),
507
+ z.literal('positive'),
508
+ z.literal('negative'),
509
+ ]);
510
+
511
+ export const suggestionsValueSchema = z.object({
512
+ label: z.string(),
513
+ value: jsonElementSchema,
514
+ icon: iconSchema.optional(),
515
+ image: imageSchema.optional(),
516
+ tag: z.string().optional(),
517
+ media: mediaSchema.optional(),
518
+ analyticsId: z.string().optional(),
519
+ tags: z.array(z.string()).optional(),
532
520
  });
533
521
 
534
- export const avatarTextContentSchema = z.object({
535
- type: z.literal('text'),
536
- text: z.string(),
537
- badgeUri: z.string().optional(),
522
+ export const nativeLaunchConfigSchema = z.object({
523
+ type: z.literal('native'),
524
+ id: z.string(),
525
+ payload: jsonElementSchema.optional(),
538
526
  });
539
527
 
540
- export const avatarUriContentSchema = z.object({
541
- type: z.literal('uri'),
542
- uri: z.string(),
543
- badgeUri: z.string().optional(),
528
+ export const modalPresentationSchema = z.object({
529
+ type: z.literal('modal'),
544
530
  });
545
531
 
546
- export const mediaImageSchema = z.object({
547
- type: z.literal('image'),
548
- uri: z.string(),
549
- accessibilityDescription: z.string().optional(),
532
+ export const pushPresentationSchema = z.object({
533
+ type: z.literal('push'),
550
534
  });
551
535
 
552
- export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
536
+ export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
553
537
 
554
- export const actionBehaviorSchema = z.object({
555
- type: z.literal('action'),
556
- action: actionSchema,
538
+ export const copyBehaviorSchema = z.object({
539
+ type: z.literal('copy'),
540
+ content: z.string(),
557
541
  analytics: z.record(z.string()).optional(),
558
542
  });
559
543
 
560
- export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
561
-
562
- export const avatarContentSchema = z.union([avatarTextContentSchema, avatarUriContentSchema]);
544
+ export const dismissBehaviorSchema = z.object({
545
+ type: z.literal('dismiss'),
546
+ analytics: z.record(z.string()).optional(),
547
+ });
563
548
 
564
- export const mediaAvatarSchema = z.object({
565
- type: z.literal('avatar'),
566
- content: z.array(avatarContentSchema),
567
- accessibilityDescription: z.string().optional(),
549
+ export const downloadBehaviorSchema = z.object({
550
+ type: z.literal('download'),
551
+ request: requestSchema,
552
+ analytics: z.record(z.string()).optional(),
568
553
  });
569
554
 
570
- export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
555
+ export const linkBehaviorSchema = z.object({
556
+ type: z.literal('link'),
557
+ url: z.string(),
558
+ analytics: z.record(z.string()).optional(),
559
+ });
571
560
 
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(),
561
+ export const refreshBehaviorSchema = z.object({
562
+ type: z.literal('refresh'),
563
+ analytics: z.record(z.string()).optional(),
581
564
  });
582
565
 
583
- export const summarySummariserSchema = z.object({
584
- defaultTitle: z.string().optional(),
585
- defaultDescription: z.string().optional(),
586
- defaultIcon: iconSchema.optional(),
587
- defaultImage: imageSchema.optional(),
588
- providesTitle: z.boolean().optional(),
589
- providesDescription: z.boolean().optional(),
590
- providesIcon: z.boolean().optional(),
591
- providesImage: z.boolean().optional(),
592
- defaultMedia: mediaSchema.optional(),
593
- providesMedia: z.boolean().optional(),
566
+ export const navigationStackBehaviorSchema = z.union([
567
+ z.literal('default'),
568
+ z.literal('remove-previous'),
569
+ z.literal('remove-all'),
570
+ z.literal('replace-current'),
571
+ ]);
572
+
573
+ export const actionSchema = z.object({
574
+ title: z.string().optional(),
575
+ type: actionTypeSchema.optional(),
576
+ disabled: z.boolean().optional(),
577
+ $id: z.string().optional(),
578
+ $ref: z.string().optional(),
579
+ id: z.string().optional(),
580
+ url: z.string().optional(),
581
+ method: httpMethodSchema.optional(),
582
+ exit: z.boolean().optional(),
583
+ result: jsonElementSchema.optional(),
584
+ data: jsonElementSchema.optional(),
585
+ timeout: z.number().optional(),
586
+ skipValidation: z.boolean().optional(),
587
+ prefetch: z.boolean().optional(),
594
588
  });
595
589
 
596
- export const dynamicLaunchConfigSchema = z.object({
597
- type: z.literal('dynamic'),
598
- request: requestSchema,
599
- presentation: presentationSchema,
590
+ export const actionBehaviorSchema = z.object({
591
+ type: z.literal('action'),
592
+ action: actionSchema,
593
+ analytics: z.record(z.string()).optional(),
600
594
  });
601
595
 
602
- export const suggestionsValueSchema = z.object({
603
- label: z.string(),
604
- value: jsonElementSchema,
605
- icon: iconSchema.optional(),
606
- image: imageSchema.optional(),
607
- tag: z.string().optional(),
608
- media: mediaSchema.optional(),
609
- analyticsId: z.string().optional(),
610
- tags: z.array(z.string()).optional(),
596
+ export const linkSchema = z.object({
597
+ url: z.string(),
598
+ });
599
+
600
+ export const containerBehaviorSchema = z.object({
601
+ action: actionSchema.optional(),
602
+ link: linkSchema.optional(),
603
+ analytics: z.record(z.string()).optional(),
611
604
  });
612
605
 
606
+ export const collectionLayoutFilterSchema = collectionLayoutSelectFilterSchema;
607
+
613
608
  export const suggestionsSchema = z.object({
614
609
  values: z.array(suggestionsValueSchema),
615
610
  });
616
611
 
617
- export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
618
-
619
- export const launchConfigSchema = z.union([dynamicLaunchConfigSchema, nativeLaunchConfigSchema]);
612
+ export const actionResponseBodySchema = z.object({
613
+ action: actionSchema,
614
+ });
620
615
 
621
616
  export const searchResultActionSchema = z.object({
622
617
  type: z.literal('action'),
@@ -628,68 +623,87 @@ export const searchResultActionSchema = z.object({
628
623
  media: mediaSchema.optional(),
629
624
  });
630
625
 
631
- export const searchResultSearchSchema = z.object({
632
- type: z.literal('search'),
633
- title: z.string(),
634
- description: z.string().optional(),
635
- icon: iconSchema.optional(),
636
- image: imageSchema.optional(),
637
- value: searchSearchRequestSchema,
638
- media: mediaSchema.optional(),
639
- });
640
-
641
626
  export const searchResultSchema = z.union([searchResultActionSchema, searchResultSearchSchema]);
642
627
 
628
+ export const searchResponseBodySchema = z.object({
629
+ type: z.literal('results').optional(),
630
+ results: z.array(searchResultSchema),
631
+ });
632
+
643
633
  export const searchResultsResponseBodySchema = z.object({
644
634
  type: z.literal('results'),
645
635
  results: z.array(searchResultSchema),
646
636
  });
647
637
 
638
+ export const navigationBackBehaviorSchema = z.object({
639
+ title: z.string().optional(),
640
+ action: actionSchema,
641
+ });
642
+
643
+ export const dynamicLaunchConfigSchema = z.object({
644
+ type: z.literal('dynamic'),
645
+ request: requestSchema,
646
+ presentation: presentationSchema,
647
+ });
648
+
649
+ export const launchConfigSchema = z.union([dynamicLaunchConfigSchema, nativeLaunchConfigSchema]);
650
+
651
+ export const navigationSchema = z.object({
652
+ backButton: navigationBackBehaviorSchema.optional(),
653
+ back: navigationBackBehaviorSchema.optional(),
654
+ stackBehavior: navigationStackBehaviorSchema.optional(),
655
+ });
656
+
648
657
  export const searchInitialResultsConfigSchema = z.object({
649
658
  type: z.literal('results'),
650
659
  results: z.array(searchResultSchema),
651
660
  });
652
661
 
653
- export const searchResponseBodySchema = z.object({
654
- type: z.literal('results').optional(),
655
- results: z.array(searchResultSchema),
656
- });
662
+ export const additionalInfoSchema: z.ZodSchema<AdditionalInfo> = z.lazy(() =>
663
+ z.object({
664
+ text: z.string(),
665
+ behavior: behaviorSchema.optional(),
666
+ accessibilityDescription: z.string().optional(),
667
+ }),
668
+ );
657
669
 
658
- export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
670
+ export const behaviorSchema: z.ZodSchema<Behavior> = z.lazy(() =>
671
+ z.union([
672
+ actionBehaviorSchema,
673
+ containerBehaviorSchema,
674
+ copyBehaviorSchema,
675
+ dismissBehaviorSchema,
676
+ downloadBehaviorSchema,
677
+ linkBehaviorSchema,
678
+ modalBehaviorSchema,
679
+ refreshBehaviorSchema,
680
+ subflowBehaviorSchema,
681
+ ]),
682
+ );
683
+
684
+ export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToAction> = z.lazy(() =>
659
685
  z.object({
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(),
686
+ action: actionSchema.optional(),
687
+ title: z.string(),
688
+ accessibilityDescription: z.string().optional(),
689
+ behavior: behaviorSchema.optional(),
690
+ context: contextSchema.optional(),
667
691
  }),
668
692
  );
669
693
 
670
- export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
694
+ export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
671
695
  z.object({
672
696
  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(),
697
+ accessibilityDescription: z.string().optional(),
698
+ behavior: behaviorSchema,
699
+ context: contextSchema.optional(),
680
700
  }),
681
701
  );
682
702
 
683
- export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
703
+ export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
684
704
  z.object({
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(),
705
+ title: z.string().optional(),
706
+ components: z.array(layoutSchema),
693
707
  }),
694
708
  );
695
709
 
@@ -723,58 +737,6 @@ export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
723
737
  ]),
724
738
  );
725
739
 
726
- export const reviewLayoutSchema: z.ZodSchema<ReviewLayout> = z.lazy(() =>
727
- z.object({
728
- type: z.literal('review'),
729
- orientation: z.string().optional(),
730
- action: actionSchema.optional(),
731
- fields: z.array(reviewLayoutFieldSchema),
732
- title: z.string().optional(),
733
- callToAction: reviewLayoutCallToActionSchema.optional(),
734
- control: z.string().optional(),
735
- margin: sizeSchema.optional(),
736
- analyticsId: z.string().optional(),
737
- tags: z.array(z.string()).optional(),
738
- }),
739
- );
740
-
741
- export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(() =>
742
- z.object({
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(),
754
- analyticsId: z.string().optional(),
755
- tags: z.array(z.string()).optional(),
756
- }),
757
- );
758
-
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(() =>
770
- z.object({
771
- title: z.string(),
772
- accessibilityDescription: z.string().optional(),
773
- behavior: behaviorSchema,
774
- context: contextSchema.optional(),
775
- }),
776
- );
777
-
778
740
  export const listLayoutItemSchema: z.ZodSchema<ListLayoutItem> = z.lazy(() =>
779
741
  z.object({
780
742
  status: listLayoutStatusSchema.optional(),
@@ -796,14 +758,6 @@ export const listLayoutItemSchema: z.ZodSchema<ListLayoutItem> = z.lazy(() =>
796
758
  }),
797
759
  );
798
760
 
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
761
  export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
808
762
  z.object({
809
763
  title: z.string(),
@@ -813,29 +767,16 @@ export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> =
813
767
  }),
814
768
  );
815
769
 
816
- export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
770
+ export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
817
771
  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(),
772
+ title: z.string(),
773
+ components: z.array(layoutSchema),
774
+ tag: z.string().optional(),
825
775
  analyticsId: z.string().optional(),
826
776
  tags: z.array(z.string()).optional(),
827
777
  }),
828
778
  );
829
779
 
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
780
  export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
840
781
  z.object({
841
782
  type: z.literal('button'),
@@ -854,67 +795,36 @@ export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
854
795
  }),
855
796
  );
856
797
 
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(() =>
798
+ export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
883
799
  z.object({
884
800
  title: z.string(),
885
- components: z.array(layoutSchema),
886
- tag: z.string().optional(),
887
- analyticsId: z.string().optional(),
888
- tags: z.array(z.string()).optional(),
889
- }),
890
- );
891
-
892
- export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
893
- z.object({
894
- type: z.literal('box'),
895
- components: z.array(layoutSchema),
896
- width: sizeSchema.optional(),
897
- border: z.boolean().optional(),
898
- control: z.string().optional(),
899
- margin: sizeSchema.optional(),
900
- analyticsId: z.string().optional(),
901
- tags: z.array(z.string()).optional(),
801
+ accessibilityDescription: z.string().optional(),
802
+ behavior: behaviorSchema,
803
+ context: contextSchema.optional(),
902
804
  }),
903
805
  );
904
806
 
905
- export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
807
+ export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
906
808
  z.object({
907
- type: z.literal('section'),
908
- components: z.array(layoutSchema),
809
+ type: z.literal('search'),
909
810
  title: z.string(),
910
- callToAction: sectionLayoutCallToActionSchema.optional(),
811
+ method: httpMethodSchema,
812
+ url: z.string(),
813
+ param: z.string(),
814
+ emptyMessage: z.string().optional(),
911
815
  control: z.string().optional(),
912
816
  margin: sizeSchema.optional(),
913
817
  analyticsId: z.string().optional(),
914
818
  tags: z.array(z.string()).optional(),
819
+ hint: z.string().optional(),
820
+ initialState: searchInitialStateSchema.optional(),
915
821
  }),
916
822
  );
917
823
 
824
+ export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(() =>
825
+ z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
826
+ );
827
+
918
828
  export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAction> = z.lazy(() =>
919
829
  z.object({
920
830
  title: z.string(),
@@ -924,24 +834,15 @@ export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAct
924
834
  }),
925
835
  );
926
836
 
927
- export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
928
- z.object({
929
- title: z.string().optional(),
930
- components: z.array(layoutSchema),
931
- }),
932
- );
933
-
934
- export const collectionLayoutItemSchema: z.ZodSchema<CollectionLayoutItem> = z.lazy(() =>
837
+ export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
935
838
  z.object({
936
- title: z.string(),
937
- description: 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(),
839
+ type: z.literal('upsell'),
840
+ text: z.string(),
841
+ callToAction: upsellLayoutCallToActionSchema,
944
842
  media: mediaSchema.optional(),
843
+ onDismiss: requestSchema.optional(),
844
+ control: z.string().optional(),
845
+ margin: sizeSchema.optional(),
945
846
  analyticsId: z.string().optional(),
946
847
  tags: z.array(z.string()).optional(),
947
848
  }),
@@ -956,12 +857,40 @@ export const collectionLayoutCallToActionSchema: z.ZodSchema<CollectionLayoutCal
956
857
  }),
957
858
  );
958
859
 
959
- export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
860
+ export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
960
861
  z.object({
862
+ type: z.literal('section'),
863
+ components: z.array(layoutSchema),
961
864
  title: z.string(),
962
- accessibilityDescription: z.string().optional(),
963
- behavior: behaviorSchema,
964
- context: contextSchema.optional(),
865
+ callToAction: sectionLayoutCallToActionSchema.optional(),
866
+ control: z.string().optional(),
867
+ margin: sizeSchema.optional(),
868
+ analyticsId: z.string().optional(),
869
+ tags: z.array(z.string()).optional(),
870
+ shortTitle: z.string().optional(),
871
+ }),
872
+ );
873
+
874
+ export const collectionLayoutSchema: z.ZodSchema<CollectionLayout> = z.lazy(() =>
875
+ z.object({
876
+ type: z.literal('collection'),
877
+ baseRequest: requestSchema,
878
+ initialState: collectionLayoutStateSchema,
879
+ search: collectionLayoutSearchSchema.optional(),
880
+ control: z.string().optional(),
881
+ margin: sizeSchema.optional(),
882
+ analyticsId: z.string().optional(),
883
+ tags: z.array(z.string()).optional(),
884
+ }),
885
+ );
886
+
887
+ export const collectionLayoutStateSchema: z.ZodSchema<CollectionLayoutState> = z.lazy(() =>
888
+ z.object({
889
+ sections: z.array(collectionLayoutSectionSchema),
890
+ nextCursor: z.string().optional(),
891
+ filters: z.array(collectionLayoutFilterSchema).optional(),
892
+ beforeSections: z.array(layoutSchema).optional(),
893
+ afterSections: z.array(layoutSchema).optional(),
965
894
  }),
966
895
  );
967
896
 
@@ -977,14 +906,50 @@ export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
977
906
  }),
978
907
  );
979
908
 
980
- export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
909
+ export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
981
910
  z.object({
982
- type: z.literal('list'),
911
+ title: z.string(),
912
+ description: z.string().optional(),
913
+ icon: iconSchema,
914
+ status: statusListLayoutStatusSchema.optional(),
915
+ callToAction: statusListLayoutItemCallToActionSchema.optional(),
916
+ tag: z.string().optional(),
917
+ analyticsId: z.string().optional(),
918
+ tags: z.array(z.string()).optional(),
919
+ }),
920
+ );
921
+
922
+ export const statusListLayoutItemCallToActionSchema: z.ZodSchema<StatusListLayoutItemCallToAction> =
923
+ z.lazy(() =>
924
+ z.object({
925
+ title: z.string(),
926
+ accessibilityDescription: z.string().optional(),
927
+ behavior: behaviorSchema,
928
+ context: contextSchema.optional(),
929
+ }),
930
+ );
931
+
932
+ export const collectionLayoutSectionSchema: z.ZodSchema<CollectionLayoutSection> = z.lazy(() =>
933
+ z.object({
934
+ id: z.string(),
935
+ items: z.array(collectionLayoutItemSchema),
983
936
  title: z.string().optional(),
984
- callToAction: listLayoutCallToActionSchema.optional(),
985
- items: z.array(listLayoutItemSchema),
986
- control: z.string().optional(),
987
- margin: sizeSchema.optional(),
937
+ callToAction: collectionLayoutCallToActionSchema.optional(),
938
+ }),
939
+ );
940
+
941
+ export const collectionLayoutItemSchema: z.ZodSchema<CollectionLayoutItem> = z.lazy(() =>
942
+ z.object({
943
+ entityId: z.string(),
944
+ title: z.string(),
945
+ description: z.string().optional(),
946
+ disabled: z.boolean().optional(),
947
+ primaryBehavior: behaviorSchema.optional(),
948
+ callToAction: collectionLayoutCallToActionSchema.optional(),
949
+ additionalInfo: additionalInfoSchema.optional(),
950
+ supportingValues: supportingValuesSchema.optional(),
951
+ inlineAlert: inlineAlertSchema.optional(),
952
+ media: mediaSchema.optional(),
988
953
  analyticsId: z.string().optional(),
989
954
  tags: z.array(z.string()).optional(),
990
955
  }),
@@ -1000,16 +965,19 @@ export const alertLayoutSchema: z.ZodSchema<AlertLayout> = z.lazy(() =>
1000
965
  callToAction: alertLayoutCallToActionSchema.optional(),
1001
966
  analyticsId: z.string().optional(),
1002
967
  tags: z.array(z.string()).optional(),
968
+ title: z.string().optional(),
969
+ media: mediaSchema.optional(),
970
+ onDismiss: requestSchema.optional(),
971
+ secondaryCallToAction: alertLayoutCallToActionSchema.optional(),
1003
972
  }),
1004
973
  );
1005
974
 
1006
- export const collectionLayoutSchema: z.ZodSchema<CollectionLayout> = z.lazy(() =>
975
+ export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
1007
976
  z.object({
1008
- type: z.literal('collection'),
1009
- url: z.string(),
1010
- method: httpMethodSchema,
1011
- initialState: collectionLayoutStateSchema,
1012
- search: collectionLayoutSearchSchema.optional(),
977
+ type: z.literal('list'),
978
+ title: z.string().optional(),
979
+ callToAction: listLayoutCallToActionSchema.optional(),
980
+ items: z.array(listLayoutItemSchema),
1013
981
  control: z.string().optional(),
1014
982
  margin: sizeSchema.optional(),
1015
983
  analyticsId: z.string().optional(),
@@ -1017,11 +985,11 @@ export const collectionLayoutSchema: z.ZodSchema<CollectionLayout> = z.lazy(() =
1017
985
  }),
1018
986
  );
1019
987
 
1020
- export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
988
+ export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
1021
989
  z.object({
1022
- type: z.literal('decision'),
990
+ type: z.literal('status-list'),
991
+ items: z.array(statusListLayoutItemSchema),
1023
992
  title: z.string().optional(),
1024
- options: z.array(decisionLayoutOptionSchema),
1025
993
  control: z.string().optional(),
1026
994
  margin: sizeSchema.optional(),
1027
995
  analyticsId: z.string().optional(),
@@ -1029,30 +997,16 @@ export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
1029
997
  }),
1030
998
  );
1031
999
 
1032
- export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
1000
+ export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
1033
1001
  z.object({
1034
- type: z.literal('search'),
1035
- title: z.string(),
1036
- method: httpMethodSchema,
1037
- url: z.string(),
1038
- param: z.string(),
1039
- emptyMessage: z.string().optional(),
1002
+ type: z.literal('columns'),
1003
+ left: z.array(layoutSchema),
1004
+ right: z.array(layoutSchema),
1005
+ bias: columnsLayoutBiasSchema.optional(),
1040
1006
  control: z.string().optional(),
1041
1007
  margin: sizeSchema.optional(),
1042
1008
  analyticsId: z.string().optional(),
1043
1009
  tags: z.array(z.string()).optional(),
1044
- hint: z.string().optional(),
1045
- initialState: searchInitialStateSchema.optional(),
1046
- }),
1047
- );
1048
-
1049
- export const collectionLayoutStateSchema: z.ZodSchema<CollectionLayoutState> = z.lazy(() =>
1050
- z.object({
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(),
1056
1010
  }),
1057
1011
  );
1058
1012
 
@@ -1076,47 +1030,100 @@ export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.l
1076
1030
  }),
1077
1031
  );
1078
1032
 
1079
- export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(() =>
1080
- z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
1033
+ export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
1034
+ z.object({
1035
+ type: z.literal('box'),
1036
+ components: z.array(layoutSchema),
1037
+ width: sizeSchema.optional(),
1038
+ border: z.boolean().optional(),
1039
+ control: z.string().optional(),
1040
+ margin: sizeSchema.optional(),
1041
+ analyticsId: z.string().optional(),
1042
+ tags: z.array(z.string()).optional(),
1043
+ }),
1081
1044
  );
1082
1045
 
1083
- export const collectionLayoutSectionSchema: z.ZodSchema<CollectionLayoutSection> = z.lazy(() =>
1046
+ export const reviewLayoutSchema: z.ZodSchema<ReviewLayout> = z.lazy(() =>
1084
1047
  z.object({
1085
- id: z.string(),
1086
- items: z.array(collectionLayoutItemSchema),
1048
+ type: z.literal('review'),
1049
+ orientation: z.string().optional(),
1050
+ action: actionSchema.optional(),
1051
+ fields: z.array(reviewLayoutFieldSchema),
1087
1052
  title: z.string().optional(),
1088
- callToAction: collectionLayoutCallToActionSchema.optional(),
1053
+ callToAction: reviewLayoutCallToActionSchema.optional(),
1054
+ control: z.string().optional(),
1055
+ margin: sizeSchema.optional(),
1056
+ analyticsId: z.string().optional(),
1057
+ tags: z.array(z.string()).optional(),
1089
1058
  }),
1090
1059
  );
1091
1060
 
1092
- export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
1061
+ export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(() =>
1093
1062
  z.object({
1094
- type: z.literal('modal'),
1063
+ label: z.string(),
1064
+ value: z.string(),
1065
+ rawValue: z.string().optional(),
1066
+ help: helpSchema.optional(),
1067
+ tag: z.string().optional(),
1068
+ icon: iconSchema.optional(),
1069
+ image: imageSchema.optional(),
1070
+ additionalInfo: additionalInfoSchema.optional(),
1071
+ inlineAlert: inlineAlertSchema.optional(),
1072
+ callToAction: reviewLayoutCallToActionSchema.optional(),
1073
+ media: mediaSchema.optional(),
1074
+ analyticsId: z.string().optional(),
1075
+ tags: z.array(z.string()).optional(),
1076
+ }),
1077
+ );
1078
+
1079
+ export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
1080
+ z.object({
1081
+ type: z.literal('decision'),
1095
1082
  title: z.string().optional(),
1096
- content: z.array(layoutSchema),
1097
- analytics: z.record(z.string()).optional(),
1083
+ options: z.array(decisionLayoutOptionSchema),
1084
+ control: z.string().optional(),
1085
+ margin: sizeSchema.optional(),
1086
+ analyticsId: z.string().optional(),
1087
+ tags: z.array(z.string()).optional(),
1098
1088
  }),
1099
1089
  );
1100
1090
 
1101
- export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
1091
+ export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1102
1092
  z.object({
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(),
1093
+ type: z.literal('tabs'),
1094
+ tabs: z.array(tabsLayoutTabSchema),
1095
+ control: z.string().optional(),
1096
+ margin: sizeSchema.optional(),
1097
+ analyticsId: z.string().optional(),
1098
+ tags: z.array(z.string()).optional(),
1110
1099
  }),
1111
1100
  );
1112
1101
 
1113
- export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
1102
+ export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
1114
1103
  z.object({
1115
- param: z.string(),
1116
- idProperty: z.string(),
1117
- schema: schemaSchema,
1118
- url: z.string(),
1119
- method: httpMethodSchema,
1104
+ key: z.string().optional(),
1105
+ type: z.string().optional(),
1106
+ actions: z.array(actionSchema).optional(),
1107
+ refreshFormUrl: z.string().optional(),
1108
+ id: z.string(),
1109
+ title: z.string(),
1110
+ schemas: z.array(schemaSchema),
1111
+ layout: z.array(layoutSchema),
1112
+ description: z.string().optional(),
1113
+ model: jsonElementSchema.optional(),
1114
+ external: externalSchema.optional(),
1115
+ polling: pollingSchema.optional(),
1116
+ linkHandlers: z.array(linkHandlerSchema).optional(),
1117
+ analytics: z.record(z.string()).optional(),
1118
+ errors: stepErrorSchema.optional(),
1119
+ navigation: navigationSchema.optional(),
1120
+ refreshUrl: z.string().optional(),
1121
+ control: z.string().optional(),
1122
+ refreshAfter: z.string().optional(),
1123
+ toolbar: toolbarSchema.optional(),
1124
+ tags: z.array(z.string()).optional(),
1125
+ footer: z.array(layoutSchema).optional(),
1126
+ onLoad: behaviorSchema.optional(),
1120
1127
  }),
1121
1128
  );
1122
1129
 
@@ -1135,22 +1142,23 @@ export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
1135
1142
  ]),
1136
1143
  );
1137
1144
 
1138
- export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
1145
+ export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
1139
1146
  z.object({
1140
- type: z.literal('toolbar-button'),
1141
- title: z.string(),
1142
- behavior: behaviorSchema,
1143
- accessibilityDescription: z.string().optional(),
1144
- media: mediaSchema.optional(),
1145
- control: z.string().optional(),
1146
- context: contextSchema.optional(),
1147
- disabled: z.boolean().optional(),
1148
- analyticsId: z.string().optional(),
1149
- tags: z.array(z.string()).optional(),
1147
+ interval: z.number().optional(),
1148
+ url: z.string(),
1149
+ delay: z.number().optional(),
1150
+ timeout: z.number().optional(),
1151
+ maxAttempts: z.number(),
1152
+ onError: pollingOnErrorSchema,
1150
1153
  }),
1151
1154
  );
1152
1155
 
1153
- export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
1156
+ export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
1157
+ z.object({
1158
+ regexPattern: z.string(),
1159
+ behavior: behaviorSchema.optional(),
1160
+ }),
1161
+ );
1154
1162
 
1155
1163
  export const toolbarSchema: z.ZodSchema<Toolbar> = z.lazy(() =>
1156
1164
  z.object({
@@ -1160,28 +1168,39 @@ export const toolbarSchema: z.ZodSchema<Toolbar> = z.lazy(() =>
1160
1168
  }),
1161
1169
  );
1162
1170
 
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(() =>
1171
+ export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
1175
1172
  z.object({
1176
- action: actionSchema.optional(),
1177
- behavior: behaviorSchema.optional(),
1173
+ type: z.literal('array'),
1174
+ promoted: z.boolean().optional(),
1175
+ $id: z.string().optional(),
1176
+ items: z.array(schemaSchema),
1177
+ title: z.string().optional(),
1178
+ description: z.string().optional(),
1179
+ control: z.string().optional(),
1180
+ hidden: z.boolean().optional(),
1181
+ icon: iconSchema.optional(),
1182
+ image: imageSchema.optional(),
1183
+ keywords: z.array(z.string()).optional(),
1184
+ summary: summaryProviderSchema.optional(),
1185
+ analyticsId: z.string().optional(),
1186
+ persistAsync: persistAsyncSchema.optional(),
1187
+ validationAsync: validateAsyncSchema.optional(),
1188
+ alert: alertLayoutSchema.optional(),
1189
+ media: mediaSchema.optional(),
1190
+ tags: z.array(z.string()).optional(),
1191
+ additionalText: z.string().optional(),
1192
+ supportingValues: supportingValuesSchema.optional(),
1193
+ inlineAlert: inlineAlertSchema.optional(),
1178
1194
  }),
1179
1195
  );
1180
1196
 
1181
- export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
1197
+ export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
1182
1198
  z.object({
1183
- regexPattern: z.string(),
1184
- behavior: behaviorSchema.optional(),
1199
+ param: z.string(),
1200
+ idProperty: z.string(),
1201
+ schema: schemaSchema,
1202
+ url: z.string(),
1203
+ method: httpMethodSchema,
1185
1204
  }),
1186
1205
  );
1187
1206
 
@@ -1209,24 +1228,33 @@ export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
1209
1228
  }),
1210
1229
  );
1211
1230
 
1212
- export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1231
+ export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
1232
+ z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
1233
+ );
1234
+
1235
+ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1213
1236
  z.object({
1214
- hidden: z.boolean().optional(),
1215
- control: z.string().optional(),
1237
+ type: z.literal('blob'),
1216
1238
  promoted: z.boolean().optional(),
1217
1239
  $id: z.string().optional(),
1218
- const: jsonElementSchema,
1219
1240
  title: z.string().optional(),
1220
1241
  description: z.string().optional(),
1242
+ control: z.string().optional(),
1243
+ hidden: z.boolean().optional(),
1221
1244
  icon: iconSchema.optional(),
1222
1245
  image: imageSchema.optional(),
1223
1246
  keywords: z.array(z.string()).optional(),
1224
1247
  summary: summaryProviderSchema.optional(),
1225
1248
  analyticsId: z.string().optional(),
1249
+ validationAsync: validateAsyncSchema.optional(),
1250
+ validationMessages: z.record(z.string()).optional(),
1251
+ alert: alertLayoutSchema.optional(),
1252
+ cameraConfig: jsonElementSchema.optional(),
1253
+ accepts: z.array(z.string()).optional(),
1254
+ maxSize: z.number().optional(),
1255
+ source: uploadSourceSchema.optional(),
1226
1256
  disabled: z.boolean().optional(),
1227
1257
  media: mediaSchema.optional(),
1228
- alert: alertLayoutSchema.optional(),
1229
- layout: z.array(layoutSchema).optional(),
1230
1258
  tags: z.array(z.string()).optional(),
1231
1259
  additionalText: z.string().optional(),
1232
1260
  supportingValues: supportingValuesSchema.optional(),
@@ -1234,22 +1262,19 @@ export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1234
1262
  }),
1235
1263
  );
1236
1264
 
1237
- export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1265
+ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1238
1266
  z.object({
1239
- type: z.literal('number'),
1267
+ type: z.literal('boolean'),
1240
1268
  autofillProvider: z.string().optional(),
1241
1269
  promoted: z.boolean().optional(),
1242
1270
  refreshFormOnChange: z.boolean().optional(),
1243
1271
  refreshUrl: z.string().optional(),
1244
1272
  refreshFormUrl: z.string().optional(),
1245
- placeholder: z.string().optional(),
1246
- minimum: z.number().optional(),
1247
- maximum: z.number().optional(),
1248
1273
  $id: z.string().optional(),
1249
1274
  title: z.string().optional(),
1250
1275
  description: z.string().optional(),
1251
1276
  control: z.string().optional(),
1252
- default: z.number().optional(),
1277
+ default: z.boolean().optional(),
1253
1278
  hidden: z.boolean().optional(),
1254
1279
  disabled: z.boolean().optional(),
1255
1280
  icon: iconSchema.optional(),
@@ -1260,9 +1285,7 @@ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1260
1285
  persistAsync: persistAsyncSchema.optional(),
1261
1286
  refreshStepOnChange: z.boolean().optional(),
1262
1287
  validationAsync: validateAsyncSchema.optional(),
1263
- validationMessages: z.record(z.string()).optional(),
1264
1288
  alert: alertLayoutSchema.optional(),
1265
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1266
1289
  autofillKey: z.string().optional(),
1267
1290
  help: helpSchema.optional(),
1268
1291
  onChange: behaviorSchema.optional(),
@@ -1274,33 +1297,24 @@ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1274
1297
  }),
1275
1298
  );
1276
1299
 
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(() =>
1300
+ export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1282
1301
  z.object({
1283
- type: z.literal('blob'),
1302
+ hidden: z.boolean().optional(),
1303
+ control: z.string().optional(),
1284
1304
  promoted: z.boolean().optional(),
1285
1305
  $id: z.string().optional(),
1306
+ const: jsonElementSchema,
1286
1307
  title: z.string().optional(),
1287
1308
  description: z.string().optional(),
1288
- control: z.string().optional(),
1289
- hidden: z.boolean().optional(),
1290
1309
  icon: iconSchema.optional(),
1291
1310
  image: imageSchema.optional(),
1292
1311
  keywords: z.array(z.string()).optional(),
1293
1312
  summary: summaryProviderSchema.optional(),
1294
1313
  analyticsId: z.string().optional(),
1295
- validationAsync: validateAsyncSchema.optional(),
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(),
1302
1314
  disabled: z.boolean().optional(),
1303
1315
  media: mediaSchema.optional(),
1316
+ alert: alertLayoutSchema.optional(),
1317
+ layout: z.array(layoutSchema).optional(),
1304
1318
  tags: z.array(z.string()).optional(),
1305
1319
  additionalText: z.string().optional(),
1306
1320
  supportingValues: supportingValuesSchema.optional(),
@@ -1308,19 +1322,22 @@ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1308
1322
  }),
1309
1323
  );
1310
1324
 
1311
- export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1325
+ export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1312
1326
  z.object({
1313
- type: z.literal('boolean'),
1327
+ type: z.literal('integer'),
1314
1328
  autofillProvider: z.string().optional(),
1315
1329
  promoted: z.boolean().optional(),
1316
1330
  refreshFormOnChange: z.boolean().optional(),
1317
1331
  refreshUrl: z.string().optional(),
1318
1332
  refreshFormUrl: z.string().optional(),
1333
+ placeholder: z.string().optional(),
1334
+ minimum: z.number().optional(),
1335
+ maximum: z.number().optional(),
1319
1336
  $id: z.string().optional(),
1320
1337
  title: z.string().optional(),
1321
1338
  description: z.string().optional(),
1322
1339
  control: z.string().optional(),
1323
- default: z.boolean().optional(),
1340
+ default: z.number().optional(),
1324
1341
  hidden: z.boolean().optional(),
1325
1342
  disabled: z.boolean().optional(),
1326
1343
  icon: iconSchema.optional(),
@@ -1331,7 +1348,9 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1331
1348
  persistAsync: persistAsyncSchema.optional(),
1332
1349
  refreshStepOnChange: z.boolean().optional(),
1333
1350
  validationAsync: validateAsyncSchema.optional(),
1351
+ validationMessages: z.record(z.string()).optional(),
1334
1352
  alert: alertLayoutSchema.optional(),
1353
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1335
1354
  autofillKey: z.string().optional(),
1336
1355
  help: helpSchema.optional(),
1337
1356
  onChange: behaviorSchema.optional(),
@@ -1343,9 +1362,9 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1343
1362
  }),
1344
1363
  );
1345
1364
 
1346
- export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1365
+ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1347
1366
  z.object({
1348
- type: z.literal('integer'),
1367
+ type: z.literal('number'),
1349
1368
  autofillProvider: z.string().optional(),
1350
1369
  promoted: z.boolean().optional(),
1351
1370
  refreshFormOnChange: z.boolean().optional(),
@@ -1502,32 +1521,6 @@ export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
1502
1521
  }),
1503
1522
  );
1504
1523
 
1505
- export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
1506
- z.object({
1507
- type: z.literal('array'),
1508
- promoted: z.boolean().optional(),
1509
- $id: z.string().optional(),
1510
- items: z.array(schemaSchema),
1511
- title: z.string().optional(),
1512
- description: z.string().optional(),
1513
- control: z.string().optional(),
1514
- hidden: z.boolean().optional(),
1515
- icon: iconSchema.optional(),
1516
- image: imageSchema.optional(),
1517
- keywords: z.array(z.string()).optional(),
1518
- summary: summaryProviderSchema.optional(),
1519
- analyticsId: z.string().optional(),
1520
- persistAsync: persistAsyncSchema.optional(),
1521
- validationAsync: validateAsyncSchema.optional(),
1522
- alert: alertLayoutSchema.optional(),
1523
- media: mediaSchema.optional(),
1524
- tags: z.array(z.string()).optional(),
1525
- additionalText: z.string().optional(),
1526
- supportingValues: supportingValuesSchema.optional(),
1527
- inlineAlert: inlineAlertSchema.optional(),
1528
- }),
1529
- );
1530
-
1531
1524
  export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1532
1525
  z.object({
1533
1526
  type: z.literal('array'),
@@ -1561,34 +1554,6 @@ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1561
1554
  }),
1562
1555
  );
1563
1556
 
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
1557
  export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
1593
1558
  z.object({
1594
1559
  referrerId: z.string(),
@@ -1599,13 +1564,6 @@ export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.laz
1599
1564
  }),
1600
1565
  );
1601
1566
 
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
1567
  export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
1610
1568
  z.object({
1611
1569
  type: z.literal('layout'),
@@ -1623,3 +1581,55 @@ export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBod
1623
1581
  content: z.array(layoutSchema),
1624
1582
  }),
1625
1583
  );
1584
+
1585
+ export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
1586
+ z.object({
1587
+ title: z.string().optional(),
1588
+ content: z.array(layoutSchema),
1589
+ }),
1590
+ );
1591
+
1592
+ export const pollingOnErrorSchema: z.ZodSchema<PollingOnError> = z.lazy(() =>
1593
+ z.object({
1594
+ action: actionSchema.optional(),
1595
+ behavior: behaviorSchema.optional(),
1596
+ }),
1597
+ );
1598
+
1599
+ export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
1600
+ z.object({
1601
+ type: z.literal('subflow'),
1602
+ referrerId: z.string(),
1603
+ launchConfig: launchConfigSchema,
1604
+ resultKey: z.string().optional(),
1605
+ onCompletion: behaviorSchema.optional(),
1606
+ onError: behaviorSchema.optional(),
1607
+ analytics: z.record(z.string()).optional(),
1608
+ }),
1609
+ );
1610
+
1611
+ export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
1612
+
1613
+ export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
1614
+ z.object({
1615
+ type: z.literal('toolbar-button'),
1616
+ title: z.string(),
1617
+ behavior: behaviorSchema,
1618
+ accessibilityDescription: z.string().optional(),
1619
+ media: mediaSchema.optional(),
1620
+ control: z.string().optional(),
1621
+ context: contextSchema.optional(),
1622
+ disabled: z.boolean().optional(),
1623
+ analyticsId: z.string().optional(),
1624
+ tags: z.array(z.string()).optional(),
1625
+ }),
1626
+ );
1627
+
1628
+ export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
1629
+ z.object({
1630
+ type: z.literal('modal'),
1631
+ title: z.string().optional(),
1632
+ content: z.array(layoutSchema),
1633
+ analytics: z.record(z.string()).optional(),
1634
+ }),
1635
+ );