@wise/dynamic-flow-types 4.14.0-experimental-2996a75 → 4.15.0

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