@wise/dynamic-flow-types 4.22.1 → 4.24.0-experimental-6048bca

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