@wise/dynamic-flow-types 4.26.0 → 4.27.0-experimental-f7c2300

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 (31) hide show
  1. package/build/renderers/CollectionRendererProps.d.ts +53 -24
  2. package/build/renderers/CollectionRendererProps.d.ts.map +1 -1
  3. package/build/renderers/index.d.ts +1 -1
  4. package/build/renderers/index.d.ts.map +1 -1
  5. package/build/spec/index.d.ts +3 -1
  6. package/build/spec/index.d.ts.map +1 -1
  7. package/build/spec/layout/CollectionLayout.d.ts +2 -1
  8. package/build/spec/layout/CollectionLayout.d.ts.map +1 -1
  9. package/build/spec/layout/CollectionLayoutCollectionSection.d.ts +8 -0
  10. package/build/spec/layout/CollectionLayoutCollectionSection.d.ts.map +1 -0
  11. package/build/spec/layout/CollectionLayoutItem.d.ts +1 -1
  12. package/build/spec/layout/{CollectionLayoutSection.d.ts → CollectionLayoutItemsSection.d.ts} +6 -2
  13. package/build/spec/layout/CollectionLayoutItemsSection.d.ts.map +1 -0
  14. package/build/spec/layout/CollectionLayoutLayoutSection.d.ts +38 -0
  15. package/build/spec/layout/CollectionLayoutLayoutSection.d.ts.map +1 -0
  16. package/build/spec/layout/CollectionLayoutSearch.d.ts +16 -0
  17. package/build/spec/layout/CollectionLayoutSearch.d.ts.map +1 -1
  18. package/build/spec/layout/CollectionLayoutState.d.ts +11 -4
  19. package/build/spec/layout/CollectionLayoutState.d.ts.map +1 -1
  20. package/build/spec/main.js +50 -31
  21. package/build/spec/main.mjs +50 -31
  22. package/build/spec/misc/media/MediaImage.d.ts +1 -0
  23. package/build/spec/misc/media/MediaImage.d.ts.map +1 -1
  24. package/build/spec/schema/DateSchema.d.ts +2 -1
  25. package/build/spec/schema/DateSchema.d.ts.map +1 -1
  26. package/build/tsconfig.tsbuildinfo +1 -1
  27. package/build/zod/schemas.d.ts +53 -63
  28. package/build/zod/schemas.d.ts.map +1 -1
  29. package/build/zod/schemas.ts +852 -825
  30. package/package.json +1 -1
  31. package/build/spec/layout/CollectionLayoutSection.d.ts.map +0 -1
@@ -2,109 +2,79 @@
2
2
  import { z } from 'zod';
3
3
  import {
4
4
  type JsonElement,
5
- type ModalResponseBody,
5
+ type ModalLayout,
6
+ type ModalLayoutContent,
7
+ type CollectionLayoutState,
8
+ type CollectionLayoutCollectionSection,
6
9
  type Layout,
7
- type SubflowResponseBody,
8
- type Behavior,
9
- type SearchInitialLayoutConfig,
10
- type SearchLayoutResponseBody,
11
- type SearchResponse,
12
- type SearchInitialState,
13
- type BoxLayout,
14
- type ListLayoutCallToAction,
15
- type StatusListLayoutItemCallToAction,
10
+ type CollectionLayoutSearch,
16
11
  type UpsellLayout,
17
12
  type UpsellLayoutCallToAction,
18
- type UpdatableLayout,
19
- type UpdatableLayoutState,
20
- type UpdatableLayoutErrorHandler,
21
- type ListLayoutItem,
22
- type AdditionalInfo,
23
- type CollectionLayoutSection,
24
- type CollectionLayoutItem,
25
- type CollectionLayoutCallToAction,
26
- type ListLayout,
13
+ type StatusListLayoutItemCallToAction,
14
+ type Behavior,
15
+ type AlertLayoutCallToAction,
27
16
  type StatusListLayout,
28
17
  type StatusListLayoutItem,
29
- type AlertLayout,
30
- type AlertLayoutCallToAction,
31
- type DecisionLayoutOption,
32
- type ReviewLayoutCallToAction,
33
- type ColumnsLayout,
34
- type SearchLayout,
35
18
  type SectionLayout,
36
19
  type SectionLayoutCallToAction,
37
- type DecisionLayout,
38
- type ModalLayout,
39
- type ModalLayoutContent,
20
+ type BoxLayout,
21
+ type ColumnsLayout,
22
+ type ReviewLayoutCallToAction,
23
+ type ListLayoutItem,
24
+ type AdditionalInfo,
25
+ type ListLayoutCallToAction,
26
+ type CollectionLayoutItemsSection,
27
+ type CollectionLayoutLayoutSection,
28
+ type UpdatableLayoutErrorHandler,
29
+ type CollectionLayoutItem,
30
+ type CollectionLayoutCallToAction,
40
31
  type TabsLayoutTab,
32
+ type DecisionLayoutOption,
33
+ type TabsLayout,
34
+ type ListLayout,
35
+ type UpdatableLayout,
36
+ type UpdatableLayoutState,
41
37
  type ReviewLayout,
42
38
  type ReviewLayoutField,
39
+ type SearchLayout,
40
+ type SearchInitialState,
41
+ type DecisionLayout,
42
+ type AlertLayout,
43
43
  type ButtonLayout,
44
44
  type CollectionLayout,
45
- type TabsLayout,
46
- type CollectionLayoutState,
47
- type ObjectSchema,
48
- type Schema,
49
- type OneOfSchema,
50
- type IntegerSchema,
51
- type PersistAsync,
52
- type ConstSchema,
53
- type StringSchema,
54
- type BooleanSchema,
55
- type ArraySchemaTuple,
56
- type AllOfSchema,
57
- type DateSchema,
58
- type BlobSchema,
59
- type NumberSchema,
60
- type ArraySchema,
61
- type ArraySchemaList,
62
- type DelayBehavior,
63
- type ModalBehavior,
64
- type SubflowBehavior,
65
45
  type Polling,
66
46
  type PollingOnError,
47
+ type ModalBehavior,
67
48
  type ToolbarItem,
68
49
  type ToolbarButton,
69
50
  type Toolbar,
51
+ type SubflowBehavior,
52
+ type PersistAsync,
53
+ type Schema,
54
+ type DelayBehavior,
70
55
  type LinkHandler,
56
+ type ArraySchemaList,
57
+ type BlobSchema,
58
+ type StringSchema,
59
+ type IntegerSchema,
60
+ type NumberSchema,
61
+ type AllOfSchema,
62
+ type ArraySchema,
63
+ type ArraySchemaTuple,
64
+ type ObjectSchema,
65
+ type BooleanSchema,
66
+ type ConstSchema,
67
+ type DateSchema,
68
+ type OneOfSchema,
69
+ type ModalResponseBody,
70
+ type SubflowResponseBody,
71
+ type SearchLayoutResponseBody,
72
+ type SearchInitialLayoutConfig,
73
+ type SearchResponse,
71
74
  type Step,
72
75
  } from '../spec';
73
76
 
74
- export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
75
- z
76
- .union([
77
- z.string(),
78
- z.number(),
79
- z.boolean(),
80
- z.record(jsonElementSchema),
81
- z.array(jsonElementSchema),
82
- ])
83
- .nullable(),
84
- );
85
-
86
- export const imageSchema = z.object({
87
- text: z.string().optional(),
88
- url: z.string().optional(),
89
- uri: z.string().optional(),
90
- accessibilityDescription: z.string().optional(),
91
- });
92
-
93
- export const httpMethodSchema = z.union([
94
- z.literal('GET'),
95
- z.literal('POST'),
96
- z.literal('PUT'),
97
- z.literal('PATCH'),
98
- z.literal('DELETE'),
99
- ]);
100
-
101
- export const noOpResponseBodySchema = z.object({});
102
-
103
- export const columnsLayoutBiasSchema = z.union([
104
- z.literal('none'),
105
- z.literal('left'),
106
- z.literal('right'),
107
- ]);
77
+ export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
108
78
 
109
79
  export const sizeSchema = z.union([
110
80
  z.literal('xs'),
@@ -114,6 +84,10 @@ export const sizeSchema = z.union([
114
84
  z.literal('xl'),
115
85
  ]);
116
86
 
87
+ export const modalLayoutTriggerSchema = z.object({
88
+ title: z.string(),
89
+ });
90
+
117
91
  export const contextSchema = z.union([
118
92
  z.literal('positive'),
119
93
  z.literal('neutral'),
@@ -126,77 +100,97 @@ export const contextSchema = z.union([
126
100
  z.literal('primary'),
127
101
  ]);
128
102
 
129
- export const requestSchema = z.object({
130
- url: z.string(),
131
- method: httpMethodSchema,
132
- body: jsonElementSchema.optional(),
133
- prefetch: z.boolean().optional(),
134
- headers: z.record(z.string()).optional(),
103
+ export const collectionLayoutSelectFilterOptionSchema = z.object({
104
+ value: z.string(),
105
+ title: z.string(),
106
+ accessibilityDescription: z.string().optional(),
107
+ selected: z.boolean().optional(),
135
108
  });
136
109
 
137
- export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
138
-
139
- export const infoLayoutSchema = z.object({
140
- type: z.literal('info'),
110
+ export const instructionsLayoutItemSchema = z.object({
111
+ text: z.string(),
112
+ context: contextSchema,
113
+ tag: z.string().optional(),
114
+ analyticsId: z.string().optional(),
141
115
  tags: z.array(z.string()).optional(),
142
- markdown: z.string(),
116
+ });
117
+
118
+ export const updatableLayoutOnEventTriggerSchema = z.object({
119
+ type: z.literal('on-event'),
120
+ eventName: z.string(),
121
+ });
122
+
123
+ export const headingLayoutSchema = z.object({
124
+ type: z.literal('heading'),
125
+ text: z.string(),
126
+ size: sizeSchema.optional(),
143
127
  align: alignSchema.optional(),
144
128
  control: z.string().optional(),
145
129
  margin: sizeSchema.optional(),
146
130
  analyticsId: z.string().optional(),
131
+ tags: z.array(z.string()).optional(),
132
+ });
133
+
134
+ export const columnsLayoutBiasSchema = z.union([
135
+ z.literal('none'),
136
+ z.literal('left'),
137
+ z.literal('right'),
138
+ ]);
139
+
140
+ export const formLayoutSchemaReferenceSchema = z.object({
141
+ $ref: z.string(),
147
142
  });
148
143
 
144
+ export const updatableLayoutTriggerSchema = updatableLayoutOnEventTriggerSchema;
145
+
149
146
  export const listLayoutStatusSchema = z.union([
150
147
  z.literal('warning'),
151
148
  z.literal('neutral'),
152
149
  z.literal('positive'),
153
150
  ]);
154
151
 
152
+ export const imageSchema = z.object({
153
+ text: z.string().optional(),
154
+ url: z.string().optional(),
155
+ uri: z.string().optional(),
156
+ accessibilityDescription: z.string().optional(),
157
+ });
158
+
155
159
  export const supportingValuesSchema = z.object({
156
160
  value: z.string().optional(),
157
161
  subvalue: z.string().optional(),
158
162
  });
159
163
 
160
- export const helpSchema = z.object({
161
- markdown: z.string(),
162
- });
163
-
164
- export const updatableLayoutOnEventTriggerSchema = z.object({
165
- type: z.literal('on-event'),
166
- eventName: z.string(),
167
- });
168
-
169
- export const markdownLayoutSchema = z.object({
170
- type: z.literal('markdown'),
171
- content: z.string(),
172
- align: alignSchema.optional(),
164
+ export const dividerLayoutSchema = z.object({
165
+ type: z.literal('divider'),
173
166
  control: z.string().optional(),
174
167
  margin: sizeSchema.optional(),
175
168
  analyticsId: z.string().optional(),
176
169
  tags: z.array(z.string()).optional(),
177
- size: sizeSchema.optional(),
178
170
  });
179
171
 
180
- export const collectionLayoutSelectFilterOptionSchema = z.object({
181
- value: z.string(),
182
- title: z.string(),
183
- accessibilityDescription: z.string().optional(),
184
- selected: z.boolean().optional(),
172
+ export const helpSchema = z.object({
173
+ markdown: z.string(),
185
174
  });
186
175
 
187
- export const instructionsLayoutItemSchema = z.object({
188
- text: z.string(),
189
- context: contextSchema,
190
- tag: z.string().optional(),
176
+ export const imageLayoutSchema = z.object({
177
+ type: z.literal('image'),
178
+ text: z.string().optional(),
179
+ url: z.string().optional(),
180
+ accessibilityDescription: z.string().optional(),
181
+ content: imageSchema.optional(),
182
+ size: sizeSchema.optional(),
183
+ control: z.string().optional(),
184
+ margin: sizeSchema.optional(),
185
+ align: alignSchema.optional(),
191
186
  analyticsId: z.string().optional(),
192
187
  tags: z.array(z.string()).optional(),
193
188
  });
194
189
 
195
- export const headingLayoutSchema = z.object({
196
- type: z.literal('heading'),
197
- text: z.string(),
198
- size: sizeSchema.optional(),
199
- align: alignSchema.optional(),
190
+ export const formLayoutSchema = z.object({
191
+ type: z.literal('form'),
192
+ schema: formLayoutSchemaReferenceSchema.optional(),
193
+ schemaId: z.string(),
200
194
  control: z.string().optional(),
201
195
  margin: sizeSchema.optional(),
202
196
  analyticsId: z.string().optional(),
@@ -210,71 +204,58 @@ export const collectionLayoutSelectFilterSchema = z.object({
210
204
  multiSelect: z.boolean().optional(),
211
205
  });
212
206
 
213
- export const loadingIndicatorLayoutSchema = z.object({
214
- type: z.literal('loading-indicator'),
215
- size: sizeSchema.optional(),
216
- control: z.string().optional(),
217
- margin: sizeSchema.optional(),
218
- analyticsId: z.string().optional(),
219
- tags: z.array(z.string()).optional(),
220
- });
221
-
222
207
  export const statusListLayoutStatusSchema = z.union([
223
208
  z.literal('not-done'),
224
209
  z.literal('pending'),
225
210
  z.literal('done'),
226
211
  ]);
227
212
 
228
- export const imageLayoutSchema = z.object({
229
- type: z.literal('image'),
230
- text: z.string().optional(),
231
- url: z.string().optional(),
232
- accessibilityDescription: z.string().optional(),
233
- content: imageSchema.optional(),
213
+ export const loadingIndicatorLayoutSchema = z.object({
214
+ type: z.literal('loading-indicator'),
234
215
  size: sizeSchema.optional(),
235
216
  control: z.string().optional(),
236
217
  margin: sizeSchema.optional(),
237
- align: alignSchema.optional(),
238
218
  analyticsId: z.string().optional(),
239
219
  tags: z.array(z.string()).optional(),
240
220
  });
241
221
 
242
- export const updatableLayoutTriggerSchema = updatableLayoutOnEventTriggerSchema;
243
-
244
- export const modalLayoutTriggerSchema = z.object({
245
- title: z.string(),
246
- });
247
-
248
- export const progressLayoutSchema = z.object({
249
- type: z.literal('progress'),
250
- title: z.string().optional(),
251
- description: z.string().optional(),
252
- progress: z.number(),
253
- progressText: z.string(),
254
- context: contextSchema.optional(),
255
- help: helpSchema.optional(),
222
+ export const httpMethodSchema = z.union([
223
+ z.literal('GET'),
224
+ z.literal('POST'),
225
+ z.literal('PUT'),
226
+ z.literal('PATCH'),
227
+ z.literal('DELETE'),
228
+ ]);
229
+
230
+ export const infoLayoutSchema = z.object({
231
+ type: z.literal('info'),
232
+ tags: z.array(z.string()).optional(),
233
+ markdown: z.string(),
234
+ align: alignSchema.optional(),
256
235
  control: z.string().optional(),
257
236
  margin: sizeSchema.optional(),
258
237
  analyticsId: z.string().optional(),
259
- tags: z.array(z.string()).optional(),
260
238
  });
261
239
 
262
- export const dividerLayoutSchema = z.object({
263
- type: z.literal('divider'),
240
+ export const instructionsLayoutSchema = z.object({
241
+ type: z.literal('instructions'),
242
+ title: z.string().optional(),
243
+ items: z.array(instructionsLayoutItemSchema),
264
244
  control: z.string().optional(),
265
245
  margin: sizeSchema.optional(),
266
246
  analyticsId: z.string().optional(),
267
247
  tags: z.array(z.string()).optional(),
268
248
  });
269
249
 
270
- export const instructionsLayoutSchema = z.object({
271
- type: z.literal('instructions'),
272
- title: z.string().optional(),
273
- items: z.array(instructionsLayoutItemSchema),
250
+ export const markdownLayoutSchema = z.object({
251
+ type: z.literal('markdown'),
252
+ content: z.string(),
253
+ align: alignSchema.optional(),
274
254
  control: z.string().optional(),
275
255
  margin: sizeSchema.optional(),
276
256
  analyticsId: z.string().optional(),
277
257
  tags: z.array(z.string()).optional(),
258
+ size: sizeSchema.optional(),
278
259
  });
279
260
 
280
261
  export const paragraphLayoutSchema = z.object({
@@ -288,176 +269,140 @@ export const paragraphLayoutSchema = z.object({
288
269
  size: sizeSchema.optional(),
289
270
  });
290
271
 
291
- export const collectionLayoutFilterSchema = collectionLayoutSelectFilterSchema;
292
-
293
- export const formLayoutSchemaReferenceSchema = z.object({
294
- $ref: z.string(),
295
- });
296
-
297
- export const collectionLayoutSearchSchema = z.object({
298
- param: z.string(),
272
+ export const progressLayoutSchema = z.object({
273
+ type: z.literal('progress'),
299
274
  title: z.string().optional(),
300
- hint: z.string().optional(),
301
- });
302
-
303
- export const formLayoutSchema = z.object({
304
- type: z.literal('form'),
305
- schema: formLayoutSchemaReferenceSchema.optional(),
306
- schemaId: z.string(),
275
+ description: z.string().optional(),
276
+ progress: z.number(),
277
+ progressText: z.string(),
278
+ context: contextSchema.optional(),
279
+ help: helpSchema.optional(),
307
280
  control: z.string().optional(),
308
281
  margin: sizeSchema.optional(),
309
282
  analyticsId: z.string().optional(),
310
283
  tags: z.array(z.string()).optional(),
311
284
  });
312
285
 
313
- export const dateRuleDatesSchema = z.object({
314
- type: z.literal('dates'),
315
- dates: z.array(z.string()),
316
- reason: z.string(),
286
+ export const dispatchEventBehaviorSchema = z.object({
287
+ type: z.literal('dispatch-event'),
288
+ eventName: z.string(),
289
+ analytics: z.record(z.string()).optional(),
317
290
  });
318
291
 
319
- export const dateRuleRangeSchema = z.object({
320
- type: z.literal('range'),
321
- start: z.string(),
322
- end: z.string(),
323
- reason: z.string(),
292
+ export const copyBehaviorSchema = z.object({
293
+ type: z.literal('copy'),
294
+ content: z.string(),
295
+ analytics: z.record(z.string()).optional(),
324
296
  });
325
297
 
326
- export const summaryProviderSchema = z.object({
327
- providesTitle: z.boolean().optional(),
328
- providesDescription: z.boolean().optional(),
329
- providesIcon: z.boolean().optional(),
330
- providesImage: z.boolean().optional(),
331
- providesMedia: z.boolean().optional(),
298
+ export const refreshBehaviorSchema = z.object({
299
+ type: z.literal('refresh'),
300
+ analytics: z.record(z.string()).optional(),
332
301
  });
333
302
 
334
- export const weekdaySchema = z.union([
335
- z.literal('mon'),
336
- z.literal('tue'),
337
- z.literal('wed'),
338
- z.literal('thu'),
339
- z.literal('fri'),
340
- z.literal('sat'),
341
- z.literal('sun'),
303
+ export const navigationStackBehaviorSchema = z.union([
304
+ z.literal('default'),
305
+ z.literal('remove-previous'),
306
+ z.literal('remove-all'),
307
+ z.literal('replace-current'),
342
308
  ]);
343
309
 
344
- export const autocompleteTokenSchema = z.union([
345
- z.literal('on'),
346
- z.literal('name'),
347
- z.literal('name-prefix'),
348
- z.literal('given-name'),
349
- z.literal('additional-name'),
350
- z.literal('family-name'),
351
- z.literal('name-suffix'),
352
- z.literal('nickname'),
353
- z.literal('email'),
354
- z.literal('username'),
355
- z.literal('new-username'),
356
- z.literal('new-password'),
357
- z.literal('password'),
358
- z.literal('one-time-code'),
359
- z.literal('job-title'),
360
- z.literal('organization-name'),
361
- z.literal('full-street-address'),
362
- z.literal('street-address-line-1'),
363
- z.literal('street-address-line-2'),
364
- z.literal('street-address-line-3'),
365
- z.literal('address-level-1'),
366
- z.literal('address-level-2'),
367
- z.literal('address-level-3'),
368
- z.literal('address-level-4'),
369
- z.literal('country-code'),
370
- z.literal('country-name'),
371
- z.literal('postal-code'),
372
- z.literal('credit-card-name'),
373
- z.literal('credit-card-given-name'),
374
- z.literal('credit-card-middle-name'),
375
- z.literal('credit-card-family-name'),
376
- z.literal('credit-card-number'),
377
- z.literal('credit-card-expiration'),
378
- z.literal('credit-card-expiration-month'),
379
- z.literal('credit-card-expiration-year'),
380
- z.literal('credit-card-security-code'),
381
- z.literal('credit-card-type'),
382
- z.literal('transaction-currency'),
383
- z.literal('transaction-amount'),
384
- z.literal('language'),
385
- z.literal('birthdate'),
386
- z.literal('birthdate-day'),
387
- z.literal('birthdate-month'),
388
- z.literal('birthdate-year'),
389
- z.literal('gender'),
390
- z.literal('phone-number'),
391
- z.literal('phone-country-code'),
392
- z.literal('phone-national'),
393
- z.literal('phone-area-code'),
394
- z.literal('phone-local'),
395
- z.literal('phone-local-prefix'),
396
- z.literal('phone-local-suffix'),
397
- z.literal('phone-extension'),
398
- z.literal('url'),
399
- z.literal('photo'),
400
- z.literal('impp'),
401
- z.literal('shipping'),
402
- z.literal('billing'),
403
- z.literal('home'),
404
- z.literal('work'),
405
- z.literal('mobile'),
406
- z.literal('fax'),
407
- z.literal('pager'),
408
- ]);
310
+ export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
311
+ z
312
+ .union([
313
+ z.string(),
314
+ z.number(),
315
+ z.boolean(),
316
+ z.record(jsonElementSchema),
317
+ z.array(jsonElementSchema),
318
+ ])
319
+ .nullable(),
320
+ );
409
321
 
410
- export const stringSchemaFormatSchema = z.union([
411
- z.literal('date'),
412
- z.literal('email'),
413
- z.literal('numeric'),
414
- z.literal('password'),
415
- z.literal('phone-number'),
416
- z.literal('base64url'),
417
- ]);
322
+ export const modalPresentationSchema = z.object({
323
+ type: z.literal('modal'),
324
+ });
418
325
 
419
- export const validateAsyncSchema = z.object({
420
- param: z.string(),
421
- method: httpMethodSchema,
326
+ export const pushPresentationSchema = z.object({
327
+ type: z.literal('push'),
328
+ });
329
+
330
+ export const nativeLaunchConfigSchema = z.object({
331
+ type: z.literal('native'),
332
+ id: z.string(),
333
+ payload: jsonElementSchema.optional(),
334
+ });
335
+
336
+ export const requestSchema = z.object({
422
337
  url: z.string(),
338
+ method: httpMethodSchema,
339
+ body: jsonElementSchema.optional(),
340
+ prefetch: z.boolean().optional(),
341
+ headers: z.record(z.string()).optional(),
423
342
  });
424
343
 
425
- export const autocapitalizationTypeSchema = z.union([
426
- z.literal('none'),
427
- z.literal('characters'),
428
- z.literal('sentences'),
429
- z.literal('words'),
430
- ]);
344
+ export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
431
345
 
432
- export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
346
+ export const dynamicLaunchConfigSchema = z.object({
347
+ type: z.literal('dynamic'),
348
+ request: requestSchema,
349
+ presentation: presentationSchema,
350
+ });
433
351
 
434
- export const dateRuleWeekdaysSchema = z.object({
435
- type: z.literal('weekdays'),
436
- weekdays: z.array(weekdaySchema),
437
- reason: z.string(),
352
+ export const summaryProviderSchema = z.object({
353
+ providesTitle: z.boolean().optional(),
354
+ providesDescription: z.boolean().optional(),
355
+ providesIcon: z.boolean().optional(),
356
+ providesImage: z.boolean().optional(),
357
+ providesMedia: z.boolean().optional(),
438
358
  });
439
359
 
440
- export const dateRuleSchema = z.union([
441
- dateRuleDatesSchema,
442
- dateRuleRangeSchema,
443
- dateRuleWeekdaysSchema,
444
- ]);
360
+ export const launchConfigSchema = z.union([dynamicLaunchConfigSchema, nativeLaunchConfigSchema]);
445
361
 
446
- export const copyBehaviorSchema = z.object({
447
- type: z.literal('copy'),
448
- content: z.string(),
362
+ export const linkBehaviorSchema = z.object({
363
+ type: z.literal('link'),
364
+ url: z.string(),
449
365
  analytics: z.record(z.string()).optional(),
450
366
  });
451
367
 
368
+ export const externalSchema = z.object({
369
+ url: z.string(),
370
+ });
371
+
452
372
  export const dismissBehaviorSchema = z.object({
453
373
  type: z.literal('dismiss'),
454
374
  analytics: z.record(z.string()).optional(),
455
375
  });
456
376
 
457
- export const dispatchEventBehaviorSchema = z.object({
458
- type: z.literal('dispatch-event'),
459
- eventName: z.string(),
460
- analytics: z.record(z.string()).optional(),
377
+ export const actionTypeSchema = z.union([
378
+ z.literal('primary'),
379
+ z.literal('secondary'),
380
+ z.literal('link'),
381
+ z.literal('positive'),
382
+ z.literal('negative'),
383
+ ]);
384
+
385
+ export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
386
+
387
+ export const linkSchema = z.object({
388
+ url: z.string(),
389
+ });
390
+
391
+ export const actionSchema = z.object({
392
+ title: z.string().optional(),
393
+ type: actionTypeSchema.optional(),
394
+ disabled: z.boolean().optional(),
395
+ $id: z.string().optional(),
396
+ $ref: z.string().optional(),
397
+ id: z.string().optional(),
398
+ url: z.string().optional(),
399
+ method: httpMethodSchema.optional(),
400
+ exit: z.boolean().optional(),
401
+ result: jsonElementSchema.optional(),
402
+ data: jsonElementSchema.optional(),
403
+ timeout: z.number().optional(),
404
+ skipValidation: z.boolean().optional(),
405
+ prefetch: z.boolean().optional(),
461
406
  });
462
407
 
463
408
  export const downloadBehaviorSchema = z.object({
@@ -466,94 +411,143 @@ export const downloadBehaviorSchema = z.object({
466
411
  analytics: z.record(z.string()).optional(),
467
412
  });
468
413
 
469
- export const linkBehaviorSchema = z.object({
470
- type: z.literal('link'),
471
- url: z.string(),
414
+ export const actionBehaviorSchema = z.object({
415
+ type: z.literal('action'),
416
+ action: actionSchema,
472
417
  analytics: z.record(z.string()).optional(),
473
418
  });
474
419
 
475
- export const refreshBehaviorSchema = z.object({
476
- type: z.literal('refresh'),
420
+ export const containerBehaviorSchema = z.object({
421
+ action: actionSchema.optional(),
422
+ link: linkSchema.optional(),
477
423
  analytics: z.record(z.string()).optional(),
478
424
  });
479
425
 
480
- export const externalSchema = z.object({
426
+ export const validateAsyncSchema = z.object({
427
+ param: z.string(),
428
+ method: httpMethodSchema,
481
429
  url: z.string(),
482
430
  });
483
431
 
484
- export const modalPresentationSchema = z.object({
485
- type: z.literal('modal'),
486
- });
487
-
488
- export const pushPresentationSchema = z.object({
489
- type: z.literal('push'),
490
- });
491
-
492
- export const nativeLaunchConfigSchema = z.object({
493
- type: z.literal('native'),
494
- id: z.string(),
495
- payload: jsonElementSchema.optional(),
432
+ export const dateRuleRangeSchema = z.object({
433
+ type: z.literal('range'),
434
+ start: z.string(),
435
+ end: z.string(),
436
+ reason: z.string(),
496
437
  });
497
438
 
498
- export const presentationSchema = z.union([modalPresentationSchema, pushPresentationSchema]);
499
-
500
- export const dynamicLaunchConfigSchema = z.object({
501
- type: z.literal('dynamic'),
502
- request: requestSchema,
503
- presentation: presentationSchema,
504
- });
439
+ export const stringSchemaFormatSchema = z.union([
440
+ z.literal('date'),
441
+ z.literal('email'),
442
+ z.literal('numeric'),
443
+ z.literal('password'),
444
+ z.literal('phone-number'),
445
+ z.literal('base64url'),
446
+ ]);
505
447
 
506
- export const linkSchema = z.object({
507
- url: z.string(),
508
- });
448
+ export const autocapitalizationTypeSchema = z.union([
449
+ z.literal('none'),
450
+ z.literal('characters'),
451
+ z.literal('sentences'),
452
+ z.literal('words'),
453
+ ]);
509
454
 
510
- export const actionTypeSchema = z.union([
511
- z.literal('primary'),
512
- z.literal('secondary'),
513
- z.literal('link'),
514
- z.literal('positive'),
515
- z.literal('negative'),
455
+ export const autocompleteTokenSchema = z.union([
456
+ z.literal('on'),
457
+ z.literal('name'),
458
+ z.literal('name-prefix'),
459
+ z.literal('given-name'),
460
+ z.literal('additional-name'),
461
+ z.literal('family-name'),
462
+ z.literal('name-suffix'),
463
+ z.literal('nickname'),
464
+ z.literal('email'),
465
+ z.literal('username'),
466
+ z.literal('new-username'),
467
+ z.literal('new-password'),
468
+ z.literal('password'),
469
+ z.literal('one-time-code'),
470
+ z.literal('job-title'),
471
+ z.literal('organization-name'),
472
+ z.literal('full-street-address'),
473
+ z.literal('street-address-line-1'),
474
+ z.literal('street-address-line-2'),
475
+ z.literal('street-address-line-3'),
476
+ z.literal('address-level-1'),
477
+ z.literal('address-level-2'),
478
+ z.literal('address-level-3'),
479
+ z.literal('address-level-4'),
480
+ z.literal('country-code'),
481
+ z.literal('country-name'),
482
+ z.literal('postal-code'),
483
+ z.literal('credit-card-name'),
484
+ z.literal('credit-card-given-name'),
485
+ z.literal('credit-card-middle-name'),
486
+ z.literal('credit-card-family-name'),
487
+ z.literal('credit-card-number'),
488
+ z.literal('credit-card-expiration'),
489
+ z.literal('credit-card-expiration-month'),
490
+ z.literal('credit-card-expiration-year'),
491
+ z.literal('credit-card-security-code'),
492
+ z.literal('credit-card-type'),
493
+ z.literal('transaction-currency'),
494
+ z.literal('transaction-amount'),
495
+ z.literal('language'),
496
+ z.literal('birthdate'),
497
+ z.literal('birthdate-day'),
498
+ z.literal('birthdate-month'),
499
+ z.literal('birthdate-year'),
500
+ z.literal('gender'),
501
+ z.literal('phone-number'),
502
+ z.literal('phone-country-code'),
503
+ z.literal('phone-national'),
504
+ z.literal('phone-area-code'),
505
+ z.literal('phone-local'),
506
+ z.literal('phone-local-prefix'),
507
+ z.literal('phone-local-suffix'),
508
+ z.literal('phone-extension'),
509
+ z.literal('url'),
510
+ z.literal('photo'),
511
+ z.literal('impp'),
512
+ z.literal('shipping'),
513
+ z.literal('billing'),
514
+ z.literal('home'),
515
+ z.literal('work'),
516
+ z.literal('mobile'),
517
+ z.literal('fax'),
518
+ z.literal('pager'),
516
519
  ]);
517
520
 
518
- export const navigationStackBehaviorSchema = z.union([
519
- z.literal('default'),
520
- z.literal('remove-previous'),
521
- z.literal('remove-all'),
522
- z.literal('replace-current'),
521
+ export const weekdaySchema = z.union([
522
+ z.literal('mon'),
523
+ z.literal('tue'),
524
+ z.literal('wed'),
525
+ z.literal('thu'),
526
+ z.literal('fri'),
527
+ z.literal('sat'),
528
+ z.literal('sun'),
523
529
  ]);
524
530
 
525
- export const actionSchema = z.object({
526
- title: z.string().optional(),
527
- type: actionTypeSchema.optional(),
528
- disabled: z.boolean().optional(),
529
- $id: z.string().optional(),
530
- $ref: z.string().optional(),
531
- id: z.string().optional(),
532
- url: z.string().optional(),
533
- method: httpMethodSchema.optional(),
534
- exit: z.boolean().optional(),
535
- result: jsonElementSchema.optional(),
536
- data: jsonElementSchema.optional(),
537
- timeout: z.number().optional(),
538
- skipValidation: z.boolean().optional(),
539
- prefetch: z.boolean().optional(),
531
+ export const dateRuleDatesSchema = z.object({
532
+ type: z.literal('dates'),
533
+ dates: z.array(z.string()),
534
+ reason: z.string(),
540
535
  });
541
536
 
542
- export const actionBehaviorSchema = z.object({
543
- type: z.literal('action'),
544
- action: actionSchema,
545
- analytics: z.record(z.string()).optional(),
537
+ export const dateRuleWeekdaysSchema = z.object({
538
+ type: z.literal('weekdays'),
539
+ weekdays: z.array(weekdaySchema),
540
+ reason: z.string(),
546
541
  });
547
542
 
548
- export const stepErrorSchema = z.object({
549
- error: z.string().optional(),
550
- validation: jsonElementSchema.optional(),
551
- });
543
+ export const dateRuleSchema = z.union([
544
+ dateRuleDatesSchema,
545
+ dateRuleRangeSchema,
546
+ dateRuleWeekdaysSchema,
547
+ ]);
552
548
 
553
- export const containerBehaviorSchema = z.object({
554
- action: actionSchema.optional(),
555
- link: linkSchema.optional(),
556
- analytics: z.record(z.string()).optional(),
549
+ export const iconNamedSchema = z.object({
550
+ name: z.string(),
557
551
  });
558
552
 
559
553
  export const mediaImageSchema = z.object({
@@ -563,33 +557,42 @@ export const mediaImageSchema = z.object({
563
557
  size: sizeSchema.optional(),
564
558
  });
565
559
 
566
- export const mediaAvatarUriContentSchema = z.object({
567
- type: z.literal('uri'),
568
- uri: z.string(),
569
- badgeUri: z.string().optional(),
570
- });
571
-
572
560
  export const mediaAvatarTextContentSchema = z.object({
573
561
  type: z.literal('text'),
574
562
  text: z.string(),
575
563
  badgeUri: z.string().optional(),
576
564
  });
577
565
 
566
+ export const mediaAvatarUriContentSchema = z.object({
567
+ type: z.literal('uri'),
568
+ uri: z.string(),
569
+ badgeUri: z.string().optional(),
570
+ });
571
+
578
572
  export const mediaAvatarContentSchema = z.union([
579
573
  mediaAvatarTextContentSchema,
580
574
  mediaAvatarUriContentSchema,
581
575
  ]);
582
576
 
583
- export const iconTextSchema = z.object({
584
- text: z.string(),
577
+ export const mediaAvatarSchema = z.object({
578
+ type: z.literal('avatar'),
579
+ content: z.array(mediaAvatarContentSchema),
580
+ accessibilityDescription: z.string().optional(),
581
+ size: sizeSchema.optional(),
585
582
  });
586
583
 
587
- export const iconNamedSchema = z.object({
588
- name: z.string(),
584
+ export const iconTextSchema = z.object({
585
+ text: z.string(),
589
586
  });
590
587
 
591
588
  export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
592
589
 
590
+ export const noOpResponseBodySchema = z.object({});
591
+
592
+ export const actionResponseBodySchema = z.object({
593
+ action: actionSchema,
594
+ });
595
+
593
596
  export const errorResponseBodySchema = z.object({
594
597
  refreshFormUrl: z.string().optional(),
595
598
  analytics: z.record(z.string()).optional(),
@@ -598,8 +601,6 @@ export const errorResponseBodySchema = z.object({
598
601
  refreshUrl: z.string().optional(),
599
602
  });
600
603
 
601
- export const launchConfigSchema = z.union([dynamicLaunchConfigSchema, nativeLaunchConfigSchema]);
602
-
603
604
  export const searchResultSearchSearchRequestSchema = z.object({
604
605
  url: z.string(),
605
606
  method: httpMethodSchema,
@@ -607,52 +608,25 @@ export const searchResultSearchSearchRequestSchema = z.object({
607
608
  query: z.string(),
608
609
  });
609
610
 
610
- export const actionResponseBodySchema = z.object({
611
- action: actionSchema,
612
- });
613
-
614
- export const dateAvailabilitySchema = z.object({
615
- unavailable: z.array(dateRuleSchema),
616
- message: z.string().optional(),
617
- });
618
-
619
- export const navigationBackBehaviorSchema = z.object({
620
- title: z.string().optional(),
621
- action: actionSchema,
622
- });
623
-
624
- export const navigationSchema = z.object({
625
- backButton: navigationBackBehaviorSchema.optional(),
626
- back: navigationBackBehaviorSchema.optional(),
627
- stackBehavior: navigationStackBehaviorSchema.optional(),
628
- });
629
-
630
- export const mediaAvatarSchema = z.object({
631
- type: z.literal('avatar'),
632
- content: z.array(mediaAvatarContentSchema),
633
- accessibilityDescription: z.string().optional(),
634
- size: sizeSchema.optional(),
635
- });
636
-
637
611
  export const mediaSchema = z.union([mediaAvatarSchema, mediaImageSchema]);
638
612
 
639
- export const searchResultSearchSchema = z.object({
640
- type: z.literal('search'),
613
+ export const searchResultActionSchema = z.object({
614
+ type: z.literal('action'),
641
615
  title: z.string(),
642
616
  description: z.string().optional(),
643
617
  icon: iconSchema.optional(),
644
618
  image: imageSchema.optional(),
645
- value: searchResultSearchSearchRequestSchema,
619
+ value: actionSchema,
646
620
  media: mediaSchema.optional(),
647
621
  });
648
622
 
649
- export const searchResultActionSchema = z.object({
650
- type: z.literal('action'),
623
+ export const searchResultSearchSchema = z.object({
624
+ type: z.literal('search'),
651
625
  title: z.string(),
652
626
  description: z.string().optional(),
653
627
  icon: iconSchema.optional(),
654
628
  image: imageSchema.optional(),
655
- value: actionSchema,
629
+ value: searchResultSearchSearchRequestSchema,
656
630
  media: mediaSchema.optional(),
657
631
  });
658
632
 
@@ -663,6 +637,18 @@ export const searchInitialResultsConfigSchema = z.object({
663
637
  results: z.array(searchResultSchema),
664
638
  });
665
639
 
640
+ export const searchResponseBodySchema = z.object({
641
+ type: z.literal('results').optional(),
642
+ results: z.array(searchResultSchema),
643
+ });
644
+
645
+ export const stepErrorSchema = z.object({
646
+ error: z.string().optional(),
647
+ validation: jsonElementSchema.optional(),
648
+ });
649
+
650
+ export const collectionLayoutFilterSchema = collectionLayoutSelectFilterSchema;
651
+
666
652
  export const inlineAlertSchema = z.object({
667
653
  content: z.string(),
668
654
  context: contextSchema.optional(),
@@ -693,6 +679,11 @@ export const summarySummariserSchema = z.object({
693
679
  providesMedia: z.boolean().optional(),
694
680
  });
695
681
 
682
+ export const navigationBackBehaviorSchema = z.object({
683
+ title: z.string().optional(),
684
+ action: actionSchema,
685
+ });
686
+
696
687
  export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
697
688
 
698
689
  export const suggestionsValueSchema = z.object({
@@ -706,9 +697,13 @@ export const suggestionsValueSchema = z.object({
706
697
  tags: z.array(z.string()).optional(),
707
698
  });
708
699
 
709
- export const searchResponseBodySchema = z.object({
710
- type: z.literal('results').optional(),
711
- results: z.array(searchResultSchema),
700
+ export const suggestionsSchema = z.object({
701
+ values: z.array(suggestionsValueSchema),
702
+ });
703
+
704
+ export const dateAvailabilitySchema = z.object({
705
+ unavailable: z.array(dateRuleSchema),
706
+ message: z.string().optional(),
712
707
  });
713
708
 
714
709
  export const searchResultsResponseBodySchema = z.object({
@@ -716,17 +711,46 @@ export const searchResultsResponseBodySchema = z.object({
716
711
  results: z.array(searchResultSchema),
717
712
  });
718
713
 
719
- export const suggestionsSchema = z.object({
720
- values: z.array(suggestionsValueSchema),
714
+ export const navigationSchema = z.object({
715
+ backButton: navigationBackBehaviorSchema.optional(),
716
+ back: navigationBackBehaviorSchema.optional(),
717
+ stackBehavior: navigationStackBehaviorSchema.optional(),
721
718
  });
722
719
 
723
- export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
720
+ export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
721
+ z.object({
722
+ type: z.literal('modal'),
723
+ control: z.string().optional(),
724
+ margin: sizeSchema.optional(),
725
+ trigger: modalLayoutTriggerSchema,
726
+ content: modalLayoutContentSchema,
727
+ analyticsId: z.string().optional(),
728
+ tags: z.array(z.string()).optional(),
729
+ }),
730
+ );
731
+
732
+ export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
724
733
  z.object({
725
734
  title: z.string().optional(),
726
- content: z.array(layoutSchema),
735
+ components: z.array(layoutSchema),
736
+ }),
737
+ );
738
+
739
+ export const collectionLayoutStateSchema: z.ZodSchema<CollectionLayoutState> = z.lazy(() =>
740
+ z.object({
741
+ sections: z.array(collectionLayoutCollectionSectionSchema),
742
+ nextCursor: z.string().optional(),
743
+ filters: z.array(collectionLayoutFilterSchema).optional(),
744
+ beforeSections: z.array(layoutSchema).optional(),
745
+ afterSections: z.array(layoutSchema).optional(),
746
+ analytics: z.record(z.string()).optional(),
747
+ search: collectionLayoutSearchSchema.optional(),
727
748
  }),
728
749
  );
729
750
 
751
+ export const collectionLayoutCollectionSectionSchema: z.ZodSchema<CollectionLayoutCollectionSection> =
752
+ z.lazy(() => z.union([collectionLayoutItemsSectionSchema, collectionLayoutLayoutSectionSchema]));
753
+
730
754
  export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
731
755
  z.union([
732
756
  alertLayoutSchema,
@@ -758,16 +782,50 @@ export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
758
782
  ]),
759
783
  );
760
784
 
761
- export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
785
+ export const collectionLayoutSearchSchema: z.ZodSchema<CollectionLayoutSearch> = z.lazy(() =>
762
786
  z.object({
763
- referrerId: z.string(),
764
- launchConfig: launchConfigSchema,
765
- resultKey: z.string().optional(),
766
- onCompletion: behaviorSchema.optional(),
767
- onError: behaviorSchema.optional(),
787
+ param: z.string(),
788
+ title: z.string().optional(),
789
+ hint: z.string().optional(),
790
+ hints: z.array(z.string()).optional(),
791
+ help: helpSchema.optional(),
792
+ initialSections: z.array(collectionLayoutCollectionSectionSchema).optional(),
793
+ }),
794
+ );
795
+
796
+ export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
797
+ z.object({
798
+ type: z.literal('upsell'),
799
+ text: z.string(),
800
+ callToAction: upsellLayoutCallToActionSchema,
801
+ media: mediaSchema.optional(),
802
+ onDismiss: requestSchema.optional(),
803
+ control: z.string().optional(),
804
+ margin: sizeSchema.optional(),
805
+ analyticsId: z.string().optional(),
806
+ tags: z.array(z.string()).optional(),
807
+ }),
808
+ );
809
+
810
+ export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
811
+ z.object({
812
+ title: z.string(),
813
+ accessibilityDescription: z.string().optional(),
814
+ behavior: behaviorSchema,
815
+ context: contextSchema.optional(),
768
816
  }),
769
817
  );
770
818
 
819
+ export const statusListLayoutItemCallToActionSchema: z.ZodSchema<StatusListLayoutItemCallToAction> =
820
+ z.lazy(() =>
821
+ z.object({
822
+ title: z.string(),
823
+ accessibilityDescription: z.string().optional(),
824
+ behavior: behaviorSchema,
825
+ context: contextSchema.optional(),
826
+ }),
827
+ );
828
+
771
829
  export const behaviorSchema: z.ZodSchema<Behavior> = z.lazy(() =>
772
830
  z.union([
773
831
  actionBehaviorSchema,
@@ -784,34 +842,20 @@ export const behaviorSchema: z.ZodSchema<Behavior> = z.lazy(() =>
784
842
  ]),
785
843
  );
786
844
 
787
- export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
788
- z.object({
789
- type: z.literal('layout'),
790
- content: z.array(layoutSchema),
791
- }),
792
- );
793
-
794
- export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBody> = z.lazy(() =>
845
+ export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
795
846
  z.object({
796
- type: z.literal('layout'),
797
- content: z.array(layoutSchema),
847
+ title: z.string(),
848
+ accessibilityDescription: z.string().optional(),
849
+ behavior: behaviorSchema,
850
+ context: contextSchema.optional(),
798
851
  }),
799
852
  );
800
853
 
801
- export const searchResponseSchema: z.ZodSchema<SearchResponse> = z.lazy(() =>
802
- z.union([searchLayoutResponseBodySchema, searchResultsResponseBodySchema]),
803
- );
804
-
805
- export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(() =>
806
- z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
807
- );
808
-
809
- export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
854
+ export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
810
855
  z.object({
811
- type: z.literal('box'),
812
- components: z.array(layoutSchema),
813
- width: sizeSchema.optional(),
814
- border: z.boolean().optional(),
856
+ type: z.literal('status-list'),
857
+ items: z.array(statusListLayoutItemSchema),
858
+ title: z.string().optional(),
815
859
  control: z.string().optional(),
816
860
  margin: sizeSchema.optional(),
817
861
  analyticsId: z.string().optional(),
@@ -819,40 +863,34 @@ export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
819
863
  }),
820
864
  );
821
865
 
822
- export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
866
+ export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
823
867
  z.object({
824
868
  title: z.string(),
825
- accessibilityDescription: z.string().optional(),
826
- behavior: behaviorSchema,
827
- context: contextSchema.optional(),
869
+ description: z.string().optional(),
870
+ icon: iconSchema,
871
+ status: statusListLayoutStatusSchema.optional(),
872
+ callToAction: statusListLayoutItemCallToActionSchema.optional(),
873
+ tag: z.string().optional(),
874
+ analyticsId: z.string().optional(),
875
+ tags: z.array(z.string()).optional(),
828
876
  }),
829
877
  );
830
878
 
831
- export const statusListLayoutItemCallToActionSchema: z.ZodSchema<StatusListLayoutItemCallToAction> =
832
- z.lazy(() =>
833
- z.object({
834
- title: z.string(),
835
- accessibilityDescription: z.string().optional(),
836
- behavior: behaviorSchema,
837
- context: contextSchema.optional(),
838
- }),
839
- );
840
-
841
- export const upsellLayoutSchema: z.ZodSchema<UpsellLayout> = z.lazy(() =>
879
+ export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
842
880
  z.object({
843
- type: z.literal('upsell'),
844
- text: z.string(),
845
- callToAction: upsellLayoutCallToActionSchema,
846
- media: mediaSchema.optional(),
847
- onDismiss: requestSchema.optional(),
881
+ type: z.literal('section'),
882
+ components: z.array(layoutSchema),
883
+ title: z.string(),
884
+ callToAction: sectionLayoutCallToActionSchema.optional(),
848
885
  control: z.string().optional(),
849
886
  margin: sizeSchema.optional(),
850
887
  analyticsId: z.string().optional(),
851
888
  tags: z.array(z.string()).optional(),
889
+ shortTitle: z.string().optional(),
852
890
  }),
853
891
  );
854
892
 
855
- export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToAction> = z.lazy(() =>
893
+ export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAction> = z.lazy(() =>
856
894
  z.object({
857
895
  title: z.string(),
858
896
  accessibilityDescription: z.string().optional(),
@@ -861,13 +899,12 @@ export const upsellLayoutCallToActionSchema: z.ZodSchema<UpsellLayoutCallToActio
861
899
  }),
862
900
  );
863
901
 
864
- export const updatableLayoutSchema: z.ZodSchema<UpdatableLayout> = z.lazy(() =>
902
+ export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
865
903
  z.object({
866
- type: z.literal('updatable'),
867
- baseRequest: requestSchema,
868
- trigger: updatableLayoutTriggerSchema,
869
- initialState: updatableLayoutStateSchema.optional(),
870
- onError: updatableLayoutErrorHandlerSchema.optional(),
904
+ type: z.literal('box'),
905
+ components: z.array(layoutSchema),
906
+ width: sizeSchema.optional(),
907
+ border: z.boolean().optional(),
871
908
  control: z.string().optional(),
872
909
  margin: sizeSchema.optional(),
873
910
  analyticsId: z.string().optional(),
@@ -875,17 +912,27 @@ export const updatableLayoutSchema: z.ZodSchema<UpdatableLayout> = z.lazy(() =>
875
912
  }),
876
913
  );
877
914
 
878
- export const updatableLayoutStateSchema: z.ZodSchema<UpdatableLayoutState> = z.lazy(() =>
915
+ export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
879
916
  z.object({
880
- components: z.array(layoutSchema).optional(),
917
+ type: z.literal('columns'),
918
+ left: z.array(layoutSchema),
919
+ right: z.array(layoutSchema),
920
+ bias: columnsLayoutBiasSchema.optional(),
921
+ control: z.string().optional(),
922
+ margin: sizeSchema.optional(),
923
+ analyticsId: z.string().optional(),
924
+ tags: z.array(z.string()).optional(),
881
925
  }),
882
926
  );
883
927
 
884
- export const updatableLayoutErrorHandlerSchema: z.ZodSchema<UpdatableLayoutErrorHandler> = z.lazy(
885
- () =>
886
- z.object({
887
- fallbackLayout: z.array(layoutSchema).optional(),
888
- }),
928
+ export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToAction> = z.lazy(() =>
929
+ z.object({
930
+ action: actionSchema.optional(),
931
+ title: z.string(),
932
+ accessibilityDescription: z.string().optional(),
933
+ behavior: behaviorSchema.optional(),
934
+ context: contextSchema.optional(),
935
+ }),
889
936
  );
890
937
 
891
938
  export const listLayoutItemSchema: z.ZodSchema<ListLayoutItem> = z.lazy(() =>
@@ -917,17 +964,48 @@ export const additionalInfoSchema: z.ZodSchema<AdditionalInfo> = z.lazy(() =>
917
964
  }),
918
965
  );
919
966
 
920
- export const collectionLayoutSectionSchema: z.ZodSchema<CollectionLayoutSection> = z.lazy(() =>
967
+ export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
921
968
  z.object({
922
- id: z.string(),
923
- items: z.array(collectionLayoutItemSchema),
924
- title: z.string().optional(),
925
- callToAction: collectionLayoutCallToActionSchema.optional(),
926
- help: helpSchema.optional(),
927
- inlineAlert: inlineAlertSchema.optional(),
969
+ title: z.string(),
970
+ accessibilityDescription: z.string().optional(),
971
+ behavior: behaviorSchema,
972
+ context: contextSchema.optional(),
928
973
  }),
929
974
  );
930
975
 
976
+ export const collectionLayoutItemsSectionSchema: z.ZodSchema<CollectionLayoutItemsSection> = z.lazy(
977
+ () =>
978
+ z.object({
979
+ type: z.literal('items'),
980
+ id: z.string(),
981
+ items: z.array(collectionLayoutItemSchema),
982
+ title: z.string().optional(),
983
+ callToAction: collectionLayoutCallToActionSchema.optional(),
984
+ help: helpSchema.optional(),
985
+ inlineAlert: inlineAlertSchema.optional(),
986
+ }),
987
+ );
988
+
989
+ export const collectionLayoutLayoutSectionSchema: z.ZodSchema<CollectionLayoutLayoutSection> =
990
+ z.lazy(() =>
991
+ z.object({
992
+ type: z.literal('layout'),
993
+ id: z.string(),
994
+ components: z.array(layoutSchema),
995
+ title: z.string().optional(),
996
+ callToAction: collectionLayoutCallToActionSchema.optional(),
997
+ help: helpSchema.optional(),
998
+ inlineAlert: inlineAlertSchema.optional(),
999
+ }),
1000
+ );
1001
+
1002
+ export const updatableLayoutErrorHandlerSchema: z.ZodSchema<UpdatableLayoutErrorHandler> = z.lazy(
1003
+ () =>
1004
+ z.object({
1005
+ fallbackLayout: z.array(layoutSchema).optional(),
1006
+ }),
1007
+ );
1008
+
931
1009
  export const collectionLayoutItemSchema: z.ZodSchema<CollectionLayoutItem> = z.lazy(() =>
932
1010
  z.object({
933
1011
  entityId: z.string(),
@@ -954,70 +1032,16 @@ export const collectionLayoutCallToActionSchema: z.ZodSchema<CollectionLayoutCal
954
1032
  }),
955
1033
  );
956
1034
 
957
- export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
958
- z.object({
959
- type: z.literal('list'),
960
- title: z.string().optional(),
961
- callToAction: listLayoutCallToActionSchema.optional(),
962
- items: z.array(listLayoutItemSchema),
963
- control: z.string().optional(),
964
- margin: sizeSchema.optional(),
965
- analyticsId: z.string().optional(),
966
- tags: z.array(z.string()).optional(),
967
- }),
968
- );
969
-
970
- export const statusListLayoutSchema: z.ZodSchema<StatusListLayout> = z.lazy(() =>
971
- z.object({
972
- type: z.literal('status-list'),
973
- items: z.array(statusListLayoutItemSchema),
974
- title: z.string().optional(),
975
- control: z.string().optional(),
976
- margin: sizeSchema.optional(),
977
- analyticsId: z.string().optional(),
978
- tags: z.array(z.string()).optional(),
979
- }),
980
- );
981
-
982
- export const statusListLayoutItemSchema: z.ZodSchema<StatusListLayoutItem> = z.lazy(() =>
1035
+ export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
983
1036
  z.object({
984
1037
  title: z.string(),
985
- description: z.string().optional(),
986
- icon: iconSchema,
987
- status: statusListLayoutStatusSchema.optional(),
988
- callToAction: statusListLayoutItemCallToActionSchema.optional(),
1038
+ components: z.array(layoutSchema),
989
1039
  tag: z.string().optional(),
990
1040
  analyticsId: z.string().optional(),
991
1041
  tags: z.array(z.string()).optional(),
992
1042
  }),
993
1043
  );
994
1044
 
995
- export const alertLayoutSchema: z.ZodSchema<AlertLayout> = z.lazy(() =>
996
- z.object({
997
- type: z.literal('alert'),
998
- markdown: z.string(),
999
- context: contextSchema.optional(),
1000
- control: z.string().optional(),
1001
- margin: sizeSchema.optional(),
1002
- callToAction: alertLayoutCallToActionSchema.optional(),
1003
- analyticsId: z.string().optional(),
1004
- tags: z.array(z.string()).optional(),
1005
- title: z.string().optional(),
1006
- media: mediaSchema.optional(),
1007
- onDismiss: requestSchema.optional(),
1008
- secondaryCallToAction: alertLayoutCallToActionSchema.optional(),
1009
- }),
1010
- );
1011
-
1012
- export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction> = z.lazy(() =>
1013
- z.object({
1014
- title: z.string(),
1015
- accessibilityDescription: z.string().optional(),
1016
- behavior: behaviorSchema,
1017
- context: contextSchema.optional(),
1018
- }),
1019
- );
1020
-
1021
1045
  export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.lazy(() =>
1022
1046
  z.object({
1023
1047
  action: actionSchema.optional(),
@@ -1038,74 +1062,23 @@ export const decisionLayoutOptionSchema: z.ZodSchema<DecisionLayoutOption> = z.l
1038
1062
  }),
1039
1063
  );
1040
1064
 
1041
- export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToAction> = z.lazy(() =>
1042
- z.object({
1043
- action: actionSchema.optional(),
1044
- title: z.string(),
1045
- accessibilityDescription: z.string().optional(),
1046
- behavior: behaviorSchema.optional(),
1047
- context: contextSchema.optional(),
1048
- }),
1049
- );
1050
-
1051
- export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
1052
- z.object({
1053
- type: z.literal('columns'),
1054
- left: z.array(layoutSchema),
1055
- right: z.array(layoutSchema),
1056
- bias: columnsLayoutBiasSchema.optional(),
1057
- control: z.string().optional(),
1058
- margin: sizeSchema.optional(),
1059
- analyticsId: z.string().optional(),
1060
- tags: z.array(z.string()).optional(),
1061
- }),
1062
- );
1063
-
1064
- export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
1065
- z.object({
1066
- type: z.literal('search'),
1067
- title: z.string(),
1068
- method: httpMethodSchema,
1069
- url: z.string(),
1070
- param: z.string(),
1071
- emptyMessage: z.string().optional(),
1072
- control: z.string().optional(),
1073
- margin: sizeSchema.optional(),
1074
- analyticsId: z.string().optional(),
1075
- tags: z.array(z.string()).optional(),
1076
- hint: z.string().optional(),
1077
- initialState: searchInitialStateSchema.optional(),
1078
- }),
1079
- );
1080
-
1081
- export const sectionLayoutSchema: z.ZodSchema<SectionLayout> = z.lazy(() =>
1065
+ export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1082
1066
  z.object({
1083
- type: z.literal('section'),
1084
- components: z.array(layoutSchema),
1085
- title: z.string(),
1086
- callToAction: sectionLayoutCallToActionSchema.optional(),
1067
+ type: z.literal('tabs'),
1068
+ tabs: z.array(tabsLayoutTabSchema),
1087
1069
  control: z.string().optional(),
1088
1070
  margin: sizeSchema.optional(),
1089
1071
  analyticsId: z.string().optional(),
1090
1072
  tags: z.array(z.string()).optional(),
1091
- shortTitle: z.string().optional(),
1092
- }),
1093
- );
1094
-
1095
- export const sectionLayoutCallToActionSchema: z.ZodSchema<SectionLayoutCallToAction> = z.lazy(() =>
1096
- z.object({
1097
- title: z.string(),
1098
- accessibilityDescription: z.string().optional(),
1099
- behavior: behaviorSchema,
1100
- context: contextSchema.optional(),
1101
1073
  }),
1102
1074
  );
1103
1075
 
1104
- export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
1076
+ export const listLayoutSchema: z.ZodSchema<ListLayout> = z.lazy(() =>
1105
1077
  z.object({
1106
- type: z.literal('decision'),
1078
+ type: z.literal('list'),
1107
1079
  title: z.string().optional(),
1108
- options: z.array(decisionLayoutOptionSchema),
1080
+ callToAction: listLayoutCallToActionSchema.optional(),
1081
+ items: z.array(listLayoutItemSchema),
1109
1082
  control: z.string().optional(),
1110
1083
  margin: sizeSchema.optional(),
1111
1084
  analyticsId: z.string().optional(),
@@ -1113,32 +1086,23 @@ export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
1113
1086
  }),
1114
1087
  );
1115
1088
 
1116
- export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
1089
+ export const updatableLayoutSchema: z.ZodSchema<UpdatableLayout> = z.lazy(() =>
1117
1090
  z.object({
1118
- type: z.literal('modal'),
1091
+ type: z.literal('updatable'),
1092
+ baseRequest: requestSchema,
1093
+ trigger: updatableLayoutTriggerSchema,
1094
+ initialState: updatableLayoutStateSchema.optional(),
1095
+ onError: updatableLayoutErrorHandlerSchema.optional(),
1119
1096
  control: z.string().optional(),
1120
1097
  margin: sizeSchema.optional(),
1121
- trigger: modalLayoutTriggerSchema,
1122
- content: modalLayoutContentSchema,
1123
1098
  analyticsId: z.string().optional(),
1124
1099
  tags: z.array(z.string()).optional(),
1125
1100
  }),
1126
1101
  );
1127
1102
 
1128
- export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
1129
- z.object({
1130
- title: z.string().optional(),
1131
- components: z.array(layoutSchema),
1132
- }),
1133
- );
1134
-
1135
- export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
1103
+ export const updatableLayoutStateSchema: z.ZodSchema<UpdatableLayoutState> = z.lazy(() =>
1136
1104
  z.object({
1137
- title: z.string(),
1138
- components: z.array(layoutSchema),
1139
- tag: z.string().optional(),
1140
- analyticsId: z.string().optional(),
1141
- tags: z.array(z.string()).optional(),
1105
+ components: z.array(layoutSchema).optional(),
1142
1106
  }),
1143
1107
  );
1144
1108
 
@@ -1175,6 +1139,56 @@ export const reviewLayoutFieldSchema: z.ZodSchema<ReviewLayoutField> = z.lazy(()
1175
1139
  }),
1176
1140
  );
1177
1141
 
1142
+ export const searchLayoutSchema: z.ZodSchema<SearchLayout> = z.lazy(() =>
1143
+ z.object({
1144
+ type: z.literal('search'),
1145
+ title: z.string(),
1146
+ method: httpMethodSchema,
1147
+ url: z.string(),
1148
+ param: z.string(),
1149
+ emptyMessage: z.string().optional(),
1150
+ control: z.string().optional(),
1151
+ margin: sizeSchema.optional(),
1152
+ analyticsId: z.string().optional(),
1153
+ tags: z.array(z.string()).optional(),
1154
+ hint: z.string().optional(),
1155
+ initialState: searchInitialStateSchema.optional(),
1156
+ }),
1157
+ );
1158
+
1159
+ export const searchInitialStateSchema: z.ZodSchema<SearchInitialState> = z.lazy(() =>
1160
+ z.union([searchInitialLayoutConfigSchema, searchInitialResultsConfigSchema]),
1161
+ );
1162
+
1163
+ export const decisionLayoutSchema: z.ZodSchema<DecisionLayout> = z.lazy(() =>
1164
+ z.object({
1165
+ type: z.literal('decision'),
1166
+ title: z.string().optional(),
1167
+ options: z.array(decisionLayoutOptionSchema),
1168
+ control: z.string().optional(),
1169
+ margin: sizeSchema.optional(),
1170
+ analyticsId: z.string().optional(),
1171
+ tags: z.array(z.string()).optional(),
1172
+ }),
1173
+ );
1174
+
1175
+ export const alertLayoutSchema: z.ZodSchema<AlertLayout> = z.lazy(() =>
1176
+ z.object({
1177
+ type: z.literal('alert'),
1178
+ markdown: z.string(),
1179
+ context: contextSchema.optional(),
1180
+ control: z.string().optional(),
1181
+ margin: sizeSchema.optional(),
1182
+ callToAction: alertLayoutCallToActionSchema.optional(),
1183
+ analyticsId: z.string().optional(),
1184
+ tags: z.array(z.string()).optional(),
1185
+ title: z.string().optional(),
1186
+ media: mediaSchema.optional(),
1187
+ onDismiss: requestSchema.optional(),
1188
+ secondaryCallToAction: alertLayoutCallToActionSchema.optional(),
1189
+ }),
1190
+ );
1191
+
1178
1192
  export const buttonLayoutSchema: z.ZodSchema<ButtonLayout> = z.lazy(() =>
1179
1193
  z.object({
1180
1194
  type: z.literal('button'),
@@ -1206,55 +1220,77 @@ export const collectionLayoutSchema: z.ZodSchema<CollectionLayout> = z.lazy(() =
1206
1220
  }),
1207
1221
  );
1208
1222
 
1209
- export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1223
+ export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
1210
1224
  z.object({
1211
- type: z.literal('tabs'),
1212
- tabs: z.array(tabsLayoutTabSchema),
1213
- control: z.string().optional(),
1214
- margin: sizeSchema.optional(),
1215
- analyticsId: z.string().optional(),
1216
- tags: z.array(z.string()).optional(),
1225
+ interval: z.number().optional(),
1226
+ url: z.string(),
1227
+ delay: z.number().optional(),
1228
+ timeout: z.number().optional(),
1229
+ maxAttempts: z.number(),
1230
+ onError: pollingOnErrorSchema,
1217
1231
  }),
1218
1232
  );
1219
1233
 
1220
- export const collectionLayoutStateSchema: z.ZodSchema<CollectionLayoutState> = z.lazy(() =>
1234
+ export const pollingOnErrorSchema: z.ZodSchema<PollingOnError> = z.lazy(() =>
1221
1235
  z.object({
1222
- sections: z.array(collectionLayoutSectionSchema),
1223
- nextCursor: z.string().optional(),
1224
- filters: z.array(collectionLayoutFilterSchema).optional(),
1225
- beforeSections: z.array(layoutSchema).optional(),
1226
- afterSections: z.array(layoutSchema).optional(),
1227
- analytics: z.record(z.string()).optional(),
1236
+ action: actionSchema.optional(),
1237
+ behavior: behaviorSchema.optional(),
1228
1238
  }),
1229
1239
  );
1230
1240
 
1231
- export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
1241
+ export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
1232
1242
  z.object({
1233
- type: z.literal('object'),
1234
- disabled: z.boolean().optional(),
1235
- promoted: z.boolean().optional(),
1236
- help: helpSchema.optional(),
1237
- properties: z.record(schemaSchema),
1238
- displayOrder: z.array(z.string()),
1239
- required: z.array(z.string()).optional(),
1240
- $id: z.string().optional(),
1243
+ type: z.literal('modal'),
1241
1244
  title: z.string().optional(),
1242
- description: z.string().optional(),
1245
+ content: z.array(layoutSchema),
1246
+ analytics: z.record(z.string()).optional(),
1247
+ }),
1248
+ );
1249
+
1250
+ export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
1251
+
1252
+ export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
1253
+ z.object({
1254
+ type: z.literal('toolbar-button'),
1255
+ title: z.string(),
1256
+ behavior: behaviorSchema,
1257
+ accessibilityDescription: z.string().optional(),
1258
+ media: mediaSchema.optional(),
1243
1259
  control: z.string().optional(),
1244
- hidden: z.boolean().optional(),
1245
- icon: iconSchema.optional(),
1246
- image: imageSchema.optional(),
1247
- keywords: z.array(z.string()).optional(),
1248
- summary: summaryProviderSchema.optional(),
1260
+ context: contextSchema.optional(),
1261
+ disabled: z.boolean().optional(),
1249
1262
  analyticsId: z.string().optional(),
1250
- alert: alertLayoutSchema.optional(),
1251
- media: mediaSchema.optional(),
1252
1263
  tags: z.array(z.string()).optional(),
1253
- format: z.string().optional(),
1254
- additionalText: z.string().optional(),
1255
- supportingValues: supportingValuesSchema.optional(),
1256
- inlineAlert: inlineAlertSchema.optional(),
1257
- onChange: behaviorSchema.optional(),
1264
+ }),
1265
+ );
1266
+
1267
+ export const toolbarSchema: z.ZodSchema<Toolbar> = z.lazy(() =>
1268
+ z.object({
1269
+ items: z.array(toolbarItemSchema),
1270
+ control: z.string().optional(),
1271
+ tags: z.array(z.string()).optional(),
1272
+ }),
1273
+ );
1274
+
1275
+ export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
1276
+ z.object({
1277
+ type: z.literal('subflow'),
1278
+ referrerId: z.string(),
1279
+ launchConfig: launchConfigSchema,
1280
+ resultKey: z.string().optional(),
1281
+ onCompletion: behaviorSchema.optional(),
1282
+ onError: behaviorSchema.optional(),
1283
+ analytics: z.record(z.string()).optional(),
1284
+ }),
1285
+ );
1286
+
1287
+ export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
1288
+ z.object({
1289
+ param: z.string(),
1290
+ idProperty: z.string(),
1291
+ schema: schemaSchema,
1292
+ url: z.string(),
1293
+ method: httpMethodSchema,
1258
1294
  }),
1259
1295
  );
1260
1296
 
@@ -1274,111 +1310,78 @@ export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
1274
1310
  ]),
1275
1311
  );
1276
1312
 
1277
- export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
1313
+ export const delayBehaviorSchema: z.ZodSchema<DelayBehavior> = z.lazy(() =>
1278
1314
  z.object({
1279
- autofillProvider: z.string().optional(),
1280
- promoted: z.boolean().optional(),
1281
- refreshFormOnChange: z.boolean().optional(),
1282
- refreshUrl: z.string().optional(),
1283
- refreshFormUrl: z.string().optional(),
1284
- promotion: jsonElementSchema.optional(),
1285
- oneOf: z.array(schemaSchema),
1286
- placeholder: z.string().optional(),
1287
- $id: z.string().optional(),
1288
- title: z.string().optional(),
1289
- description: z.string().optional(),
1290
- control: z.string().optional(),
1291
- default: jsonElementSchema.optional(),
1292
- hidden: z.boolean().optional(),
1293
- icon: iconSchema.optional(),
1294
- image: imageSchema.optional(),
1295
- keywords: z.array(z.string()).optional(),
1296
- summary: summaryProviderSchema.optional(),
1297
- analyticsId: z.string().optional(),
1298
- refreshStepOnChange: z.boolean().optional(),
1299
- alert: alertLayoutSchema.optional(),
1300
- help: helpSchema.optional(),
1301
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1302
- autofillKey: z.string().optional(),
1303
- validationMessages: z.record(z.string()).optional(),
1304
- disabled: z.boolean().optional(),
1305
- onChange: behaviorSchema.optional(),
1306
- media: mediaSchema.optional(),
1307
- tags: z.array(z.string()).optional(),
1308
- additionalText: z.string().optional(),
1309
- supportingValues: supportingValuesSchema.optional(),
1310
- inlineAlert: inlineAlertSchema.optional(),
1315
+ type: z.literal('delay'),
1316
+ duration: z.number(),
1317
+ behavior: behaviorSchema,
1318
+ analytics: z.record(z.string()).optional(),
1311
1319
  }),
1312
1320
  );
1313
1321
 
1314
- export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1322
+ export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
1315
1323
  z.object({
1316
- type: z.literal('integer'),
1317
- autofillProvider: z.string().optional(),
1324
+ regexPattern: z.string(),
1325
+ behavior: behaviorSchema.optional(),
1326
+ }),
1327
+ );
1328
+
1329
+ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1330
+ z.object({
1331
+ type: z.literal('array'),
1318
1332
  promoted: z.boolean().optional(),
1319
- refreshFormOnChange: z.boolean().optional(),
1320
- refreshUrl: z.string().optional(),
1321
- refreshFormUrl: z.string().optional(),
1322
- placeholder: z.string().optional(),
1323
- minimum: z.number().optional(),
1324
- maximum: z.number().optional(),
1325
1333
  $id: z.string().optional(),
1334
+ items: schemaSchema,
1335
+ addItemTitle: z.string(),
1336
+ editItemTitle: z.string(),
1337
+ minItems: z.number().optional(),
1338
+ maxItems: z.number().optional(),
1339
+ placeholder: z.string().optional(),
1326
1340
  title: z.string().optional(),
1327
1341
  description: z.string().optional(),
1328
1342
  control: z.string().optional(),
1329
- default: z.number().optional(),
1330
1343
  hidden: z.boolean().optional(),
1331
- disabled: z.boolean().optional(),
1332
1344
  icon: iconSchema.optional(),
1333
1345
  image: imageSchema.optional(),
1334
1346
  keywords: z.array(z.string()).optional(),
1335
- summary: summaryProviderSchema.optional(),
1347
+ summary: summarySummariserSchema.optional(),
1336
1348
  analyticsId: z.string().optional(),
1337
1349
  persistAsync: persistAsyncSchema.optional(),
1338
- refreshStepOnChange: z.boolean().optional(),
1339
1350
  validationAsync: validateAsyncSchema.optional(),
1340
- validationMessages: z.record(z.string()).optional(),
1341
1351
  alert: alertLayoutSchema.optional(),
1342
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1343
- autofillKey: z.string().optional(),
1344
- help: helpSchema.optional(),
1345
- onChange: behaviorSchema.optional(),
1352
+ validationMessages: z.record(z.string()).optional(),
1353
+ disabled: z.boolean().optional(),
1346
1354
  media: mediaSchema.optional(),
1347
1355
  tags: z.array(z.string()).optional(),
1348
1356
  additionalText: z.string().optional(),
1349
1357
  supportingValues: supportingValuesSchema.optional(),
1350
- inlineAlert: inlineAlertSchema.optional(),
1351
- }),
1352
- );
1353
-
1354
- export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
1355
- z.object({
1356
- param: z.string(),
1357
- idProperty: z.string(),
1358
- schema: schemaSchema,
1359
- url: z.string(),
1360
- method: httpMethodSchema,
1358
+ inlineAlert: inlineAlertSchema.optional(),
1361
1359
  }),
1362
1360
  );
1363
1361
 
1364
- export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1362
+ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1365
1363
  z.object({
1366
- hidden: z.boolean().optional(),
1367
- control: z.string().optional(),
1364
+ type: z.literal('blob'),
1368
1365
  promoted: z.boolean().optional(),
1369
1366
  $id: z.string().optional(),
1370
- const: jsonElementSchema,
1371
1367
  title: z.string().optional(),
1372
1368
  description: z.string().optional(),
1369
+ control: z.string().optional(),
1370
+ hidden: z.boolean().optional(),
1373
1371
  icon: iconSchema.optional(),
1374
1372
  image: imageSchema.optional(),
1375
1373
  keywords: z.array(z.string()).optional(),
1376
1374
  summary: summaryProviderSchema.optional(),
1377
1375
  analyticsId: z.string().optional(),
1376
+ validationAsync: validateAsyncSchema.optional(),
1377
+ validationMessages: z.record(z.string()).optional(),
1378
+ alert: alertLayoutSchema.optional(),
1379
+ cameraConfig: jsonElementSchema.optional(),
1380
+ accepts: z.array(z.string()).optional(),
1381
+ maxSize: z.number().optional(),
1382
+ source: uploadSourceSchema.optional(),
1378
1383
  disabled: z.boolean().optional(),
1379
1384
  media: mediaSchema.optional(),
1380
- alert: alertLayoutSchema.optional(),
1381
- layout: z.array(layoutSchema).optional(),
1382
1385
  tags: z.array(z.string()).optional(),
1383
1386
  additionalText: z.string().optional(),
1384
1387
  supportingValues: supportingValuesSchema.optional(),
@@ -1438,19 +1441,22 @@ export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
1438
1441
  }),
1439
1442
  );
1440
1443
 
1441
- export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1444
+ export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
1442
1445
  z.object({
1443
- type: z.literal('boolean'),
1446
+ type: z.literal('integer'),
1444
1447
  autofillProvider: z.string().optional(),
1445
1448
  promoted: z.boolean().optional(),
1446
1449
  refreshFormOnChange: z.boolean().optional(),
1447
1450
  refreshUrl: z.string().optional(),
1448
1451
  refreshFormUrl: z.string().optional(),
1452
+ placeholder: z.string().optional(),
1453
+ minimum: z.number().optional(),
1454
+ maximum: z.number().optional(),
1449
1455
  $id: z.string().optional(),
1450
1456
  title: z.string().optional(),
1451
1457
  description: z.string().optional(),
1452
1458
  control: z.string().optional(),
1453
- default: z.boolean().optional(),
1459
+ default: z.number().optional(),
1454
1460
  hidden: z.boolean().optional(),
1455
1461
  disabled: z.boolean().optional(),
1456
1462
  icon: iconSchema.optional(),
@@ -1461,7 +1467,9 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1461
1467
  persistAsync: persistAsyncSchema.optional(),
1462
1468
  refreshStepOnChange: z.boolean().optional(),
1463
1469
  validationAsync: validateAsyncSchema.optional(),
1470
+ validationMessages: z.record(z.string()).optional(),
1464
1471
  alert: alertLayoutSchema.optional(),
1472
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1465
1473
  autofillKey: z.string().optional(),
1466
1474
  help: helpSchema.optional(),
1467
1475
  onChange: behaviorSchema.optional(),
@@ -1473,24 +1481,38 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1473
1481
  }),
1474
1482
  );
1475
1483
 
1476
- export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
1484
+ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1477
1485
  z.object({
1478
- type: z.literal('array'),
1486
+ type: z.literal('number'),
1487
+ autofillProvider: z.string().optional(),
1479
1488
  promoted: z.boolean().optional(),
1489
+ refreshFormOnChange: z.boolean().optional(),
1490
+ refreshUrl: z.string().optional(),
1491
+ refreshFormUrl: z.string().optional(),
1492
+ placeholder: z.string().optional(),
1493
+ minimum: z.number().optional(),
1494
+ maximum: z.number().optional(),
1480
1495
  $id: z.string().optional(),
1481
- items: z.array(schemaSchema),
1482
1496
  title: z.string().optional(),
1483
1497
  description: z.string().optional(),
1484
1498
  control: z.string().optional(),
1499
+ default: z.number().optional(),
1485
1500
  hidden: z.boolean().optional(),
1501
+ disabled: z.boolean().optional(),
1486
1502
  icon: iconSchema.optional(),
1487
1503
  image: imageSchema.optional(),
1488
1504
  keywords: z.array(z.string()).optional(),
1489
1505
  summary: summaryProviderSchema.optional(),
1490
1506
  analyticsId: z.string().optional(),
1491
1507
  persistAsync: persistAsyncSchema.optional(),
1508
+ refreshStepOnChange: z.boolean().optional(),
1492
1509
  validationAsync: validateAsyncSchema.optional(),
1510
+ validationMessages: z.record(z.string()).optional(),
1493
1511
  alert: alertLayoutSchema.optional(),
1512
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1513
+ autofillKey: z.string().optional(),
1514
+ help: helpSchema.optional(),
1515
+ onChange: behaviorSchema.optional(),
1494
1516
  media: mediaSchema.optional(),
1495
1517
  tags: z.array(z.string()).optional(),
1496
1518
  additionalText: z.string().optional(),
@@ -1523,46 +1545,45 @@ export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
1523
1545
  }),
1524
1546
  );
1525
1547
 
1526
- export const dateSchemaSchema: z.ZodSchema<DateSchema> = z.lazy(() =>
1548
+ export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
1549
+ z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
1550
+ );
1551
+
1552
+ export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
1527
1553
  z.object({
1528
- type: z.literal('date'),
1529
- icon: iconSchema.optional(),
1530
- image: imageSchema.optional(),
1531
- placeholder: z.string().optional(),
1532
- minimum: z.string().optional(),
1533
- maximum: z.string().optional(),
1534
- availability: dateAvailabilitySchema.optional(),
1554
+ type: z.literal('array'),
1555
+ promoted: z.boolean().optional(),
1535
1556
  $id: z.string().optional(),
1557
+ items: z.array(schemaSchema),
1536
1558
  title: z.string().optional(),
1537
1559
  description: z.string().optional(),
1538
1560
  control: z.string().optional(),
1539
- default: z.string().optional(),
1540
1561
  hidden: z.boolean().optional(),
1541
- disabled: z.boolean().optional(),
1562
+ icon: iconSchema.optional(),
1563
+ image: imageSchema.optional(),
1542
1564
  keywords: z.array(z.string()).optional(),
1543
1565
  summary: summaryProviderSchema.optional(),
1544
1566
  analyticsId: z.string().optional(),
1545
1567
  persistAsync: persistAsyncSchema.optional(),
1546
- refreshStepOnChange: z.boolean().optional(),
1547
1568
  validationAsync: validateAsyncSchema.optional(),
1548
- validationMessages: z.record(z.string()).optional(),
1549
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1550
- help: helpSchema.optional(),
1551
- suggestions: suggestionsSchema.optional(),
1552
- onChange: behaviorSchema.optional(),
1569
+ alert: alertLayoutSchema.optional(),
1553
1570
  media: mediaSchema.optional(),
1554
1571
  tags: z.array(z.string()).optional(),
1555
1572
  additionalText: z.string().optional(),
1556
1573
  supportingValues: supportingValuesSchema.optional(),
1557
- alert: alertLayoutSchema.optional(),
1558
1574
  inlineAlert: inlineAlertSchema.optional(),
1559
1575
  }),
1560
1576
  );
1561
1577
 
1562
- export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1578
+ export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
1563
1579
  z.object({
1564
- type: z.literal('blob'),
1580
+ type: z.literal('object'),
1581
+ disabled: z.boolean().optional(),
1565
1582
  promoted: z.boolean().optional(),
1583
+ help: helpSchema.optional(),
1584
+ properties: z.record(schemaSchema),
1585
+ displayOrder: z.array(z.string()),
1586
+ required: z.array(z.string()).optional(),
1566
1587
  $id: z.string().optional(),
1567
1588
  title: z.string().optional(),
1568
1589
  description: z.string().optional(),
@@ -1573,38 +1594,30 @@ export const blobSchemaSchema: z.ZodSchema<BlobSchema> = z.lazy(() =>
1573
1594
  keywords: z.array(z.string()).optional(),
1574
1595
  summary: summaryProviderSchema.optional(),
1575
1596
  analyticsId: z.string().optional(),
1576
- validationAsync: validateAsyncSchema.optional(),
1577
- validationMessages: z.record(z.string()).optional(),
1578
1597
  alert: alertLayoutSchema.optional(),
1579
- cameraConfig: jsonElementSchema.optional(),
1580
- accepts: z.array(z.string()).optional(),
1581
- maxSize: z.number().optional(),
1582
- source: uploadSourceSchema.optional(),
1583
- disabled: z.boolean().optional(),
1584
1598
  media: mediaSchema.optional(),
1585
1599
  tags: z.array(z.string()).optional(),
1600
+ format: z.string().optional(),
1586
1601
  additionalText: z.string().optional(),
1587
1602
  supportingValues: supportingValuesSchema.optional(),
1588
1603
  inlineAlert: inlineAlertSchema.optional(),
1604
+ onChange: behaviorSchema.optional(),
1589
1605
  }),
1590
1606
  );
1591
1607
 
1592
- export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1608
+ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
1593
1609
  z.object({
1594
- type: z.literal('number'),
1610
+ type: z.literal('boolean'),
1595
1611
  autofillProvider: z.string().optional(),
1596
1612
  promoted: z.boolean().optional(),
1597
1613
  refreshFormOnChange: z.boolean().optional(),
1598
1614
  refreshUrl: z.string().optional(),
1599
1615
  refreshFormUrl: z.string().optional(),
1600
- placeholder: z.string().optional(),
1601
- minimum: z.number().optional(),
1602
- maximum: z.number().optional(),
1603
1616
  $id: z.string().optional(),
1604
1617
  title: z.string().optional(),
1605
1618
  description: z.string().optional(),
1606
1619
  control: z.string().optional(),
1607
- default: z.number().optional(),
1620
+ default: z.boolean().optional(),
1608
1621
  hidden: z.boolean().optional(),
1609
1622
  disabled: z.boolean().optional(),
1610
1623
  icon: iconSchema.optional(),
@@ -1615,9 +1628,7 @@ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1615
1628
  persistAsync: persistAsyncSchema.optional(),
1616
1629
  refreshStepOnChange: z.boolean().optional(),
1617
1630
  validationAsync: validateAsyncSchema.optional(),
1618
- validationMessages: z.record(z.string()).optional(),
1619
1631
  alert: alertLayoutSchema.optional(),
1620
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1621
1632
  autofillKey: z.string().optional(),
1622
1633
  help: helpSchema.optional(),
1623
1634
  onChange: behaviorSchema.optional(),
@@ -1629,121 +1640,137 @@ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
1629
1640
  }),
1630
1641
  );
1631
1642
 
1632
- export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
1633
- z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
1634
- );
1635
-
1636
- export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
1643
+ export const constSchemaSchema: z.ZodSchema<ConstSchema> = z.lazy(() =>
1637
1644
  z.object({
1638
- type: z.literal('array'),
1645
+ hidden: z.boolean().optional(),
1646
+ control: z.string().optional(),
1639
1647
  promoted: z.boolean().optional(),
1640
1648
  $id: z.string().optional(),
1641
- items: schemaSchema,
1642
- addItemTitle: z.string(),
1643
- editItemTitle: z.string(),
1644
- minItems: z.number().optional(),
1645
- maxItems: z.number().optional(),
1649
+ const: jsonElementSchema,
1650
+ title: z.string().optional(),
1651
+ description: z.string().optional(),
1652
+ icon: iconSchema.optional(),
1653
+ image: imageSchema.optional(),
1654
+ keywords: z.array(z.string()).optional(),
1655
+ summary: summaryProviderSchema.optional(),
1656
+ analyticsId: z.string().optional(),
1657
+ disabled: z.boolean().optional(),
1658
+ media: mediaSchema.optional(),
1659
+ alert: alertLayoutSchema.optional(),
1660
+ layout: z.array(layoutSchema).optional(),
1661
+ tags: z.array(z.string()).optional(),
1662
+ additionalText: z.string().optional(),
1663
+ supportingValues: supportingValuesSchema.optional(),
1664
+ inlineAlert: inlineAlertSchema.optional(),
1665
+ }),
1666
+ );
1667
+
1668
+ export const dateSchemaSchema: z.ZodSchema<DateSchema> = z.lazy(() =>
1669
+ z.object({
1670
+ type: z.literal('date'),
1671
+ icon: iconSchema.optional(),
1672
+ image: imageSchema.optional(),
1646
1673
  placeholder: z.string().optional(),
1674
+ minimum: z.string().optional(),
1675
+ maximum: z.string().optional(),
1676
+ availability: dateAvailabilitySchema.optional(),
1677
+ $id: z.string().optional(),
1647
1678
  title: z.string().optional(),
1648
1679
  description: z.string().optional(),
1649
1680
  control: z.string().optional(),
1681
+ default: z.string().optional(),
1650
1682
  hidden: z.boolean().optional(),
1651
- icon: iconSchema.optional(),
1652
- image: imageSchema.optional(),
1683
+ disabled: z.boolean().optional(),
1653
1684
  keywords: z.array(z.string()).optional(),
1654
- summary: summarySummariserSchema.optional(),
1685
+ summary: summaryProviderSchema.optional(),
1655
1686
  analyticsId: z.string().optional(),
1656
1687
  persistAsync: persistAsyncSchema.optional(),
1688
+ refreshStepOnChange: z.boolean().optional(),
1657
1689
  validationAsync: validateAsyncSchema.optional(),
1658
- alert: alertLayoutSchema.optional(),
1659
1690
  validationMessages: z.record(z.string()).optional(),
1660
- disabled: z.boolean().optional(),
1691
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1692
+ help: helpSchema.optional(),
1693
+ suggestions: suggestionsSchema.optional(),
1694
+ onChange: behaviorSchema.optional(),
1661
1695
  media: mediaSchema.optional(),
1662
1696
  tags: z.array(z.string()).optional(),
1663
1697
  additionalText: z.string().optional(),
1664
1698
  supportingValues: supportingValuesSchema.optional(),
1699
+ alert: alertLayoutSchema.optional(),
1665
1700
  inlineAlert: inlineAlertSchema.optional(),
1666
1701
  }),
1667
1702
  );
1668
1703
 
1669
- export const delayBehaviorSchema: z.ZodSchema<DelayBehavior> = z.lazy(() =>
1704
+ export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
1670
1705
  z.object({
1671
- type: z.literal('delay'),
1672
- duration: z.number(),
1673
- behavior: behaviorSchema,
1674
- analytics: z.record(z.string()).optional(),
1706
+ autofillProvider: z.string().optional(),
1707
+ promoted: z.boolean().optional(),
1708
+ refreshFormOnChange: z.boolean().optional(),
1709
+ refreshUrl: z.string().optional(),
1710
+ refreshFormUrl: z.string().optional(),
1711
+ promotion: jsonElementSchema.optional(),
1712
+ oneOf: z.array(schemaSchema),
1713
+ placeholder: z.string().optional(),
1714
+ $id: z.string().optional(),
1715
+ title: z.string().optional(),
1716
+ description: z.string().optional(),
1717
+ control: z.string().optional(),
1718
+ default: jsonElementSchema.optional(),
1719
+ hidden: z.boolean().optional(),
1720
+ icon: iconSchema.optional(),
1721
+ image: imageSchema.optional(),
1722
+ keywords: z.array(z.string()).optional(),
1723
+ summary: summaryProviderSchema.optional(),
1724
+ analyticsId: z.string().optional(),
1725
+ refreshStepOnChange: z.boolean().optional(),
1726
+ alert: alertLayoutSchema.optional(),
1727
+ help: helpSchema.optional(),
1728
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
1729
+ autofillKey: z.string().optional(),
1730
+ validationMessages: z.record(z.string()).optional(),
1731
+ disabled: z.boolean().optional(),
1732
+ onChange: behaviorSchema.optional(),
1733
+ media: mediaSchema.optional(),
1734
+ tags: z.array(z.string()).optional(),
1735
+ additionalText: z.string().optional(),
1736
+ supportingValues: supportingValuesSchema.optional(),
1737
+ inlineAlert: inlineAlertSchema.optional(),
1675
1738
  }),
1676
1739
  );
1677
1740
 
1678
- export const modalBehaviorSchema: z.ZodSchema<ModalBehavior> = z.lazy(() =>
1741
+ export const modalResponseBodySchema: z.ZodSchema<ModalResponseBody> = z.lazy(() =>
1679
1742
  z.object({
1680
- type: z.literal('modal'),
1681
1743
  title: z.string().optional(),
1682
1744
  content: z.array(layoutSchema),
1683
- analytics: z.record(z.string()).optional(),
1684
1745
  }),
1685
1746
  );
1686
1747
 
1687
- export const subflowBehaviorSchema: z.ZodSchema<SubflowBehavior> = z.lazy(() =>
1748
+ export const subflowResponseBodySchema: z.ZodSchema<SubflowResponseBody> = z.lazy(() =>
1688
1749
  z.object({
1689
- type: z.literal('subflow'),
1690
1750
  referrerId: z.string(),
1691
1751
  launchConfig: launchConfigSchema,
1692
1752
  resultKey: z.string().optional(),
1693
1753
  onCompletion: behaviorSchema.optional(),
1694
1754
  onError: behaviorSchema.optional(),
1695
- analytics: z.record(z.string()).optional(),
1696
- }),
1697
- );
1698
-
1699
- export const pollingSchema: z.ZodSchema<Polling> = z.lazy(() =>
1700
- z.object({
1701
- interval: z.number().optional(),
1702
- url: z.string(),
1703
- delay: z.number().optional(),
1704
- timeout: z.number().optional(),
1705
- maxAttempts: z.number(),
1706
- onError: pollingOnErrorSchema,
1707
- }),
1708
- );
1709
-
1710
- export const pollingOnErrorSchema: z.ZodSchema<PollingOnError> = z.lazy(() =>
1711
- z.object({
1712
- action: actionSchema.optional(),
1713
- behavior: behaviorSchema.optional(),
1714
1755
  }),
1715
1756
  );
1716
1757
 
1717
- export const toolbarItemSchema: z.ZodSchema<ToolbarItem> = z.lazy(() => toolbarButtonSchema);
1718
-
1719
- export const toolbarButtonSchema: z.ZodSchema<ToolbarButton> = z.lazy(() =>
1758
+ export const searchLayoutResponseBodySchema: z.ZodSchema<SearchLayoutResponseBody> = z.lazy(() =>
1720
1759
  z.object({
1721
- type: z.literal('toolbar-button'),
1722
- title: z.string(),
1723
- behavior: behaviorSchema,
1724
- accessibilityDescription: z.string().optional(),
1725
- media: mediaSchema.optional(),
1726
- control: z.string().optional(),
1727
- context: contextSchema.optional(),
1728
- disabled: z.boolean().optional(),
1729
- analyticsId: z.string().optional(),
1730
- tags: z.array(z.string()).optional(),
1760
+ type: z.literal('layout'),
1761
+ content: z.array(layoutSchema),
1731
1762
  }),
1732
1763
  );
1733
1764
 
1734
- export const toolbarSchema: z.ZodSchema<Toolbar> = z.lazy(() =>
1765
+ export const searchInitialLayoutConfigSchema: z.ZodSchema<SearchInitialLayoutConfig> = z.lazy(() =>
1735
1766
  z.object({
1736
- items: z.array(toolbarItemSchema),
1737
- control: z.string().optional(),
1738
- tags: z.array(z.string()).optional(),
1767
+ type: z.literal('layout'),
1768
+ content: z.array(layoutSchema),
1739
1769
  }),
1740
1770
  );
1741
1771
 
1742
- export const linkHandlerSchema: z.ZodSchema<LinkHandler> = z.lazy(() =>
1743
- z.object({
1744
- regexPattern: z.string(),
1745
- behavior: behaviorSchema.optional(),
1746
- }),
1772
+ export const searchResponseSchema: z.ZodSchema<SearchResponse> = z.lazy(() =>
1773
+ z.union([searchLayoutResponseBodySchema, searchResultsResponseBodySchema]),
1747
1774
  );
1748
1775
 
1749
1776
  export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>