@wise/dynamic-flow-types 3.0.0-experimental-dde19b5 → 3.0.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 (57) hide show
  1. package/build/main.js +414 -394
  2. package/build/main.min.js +1 -1
  3. package/build/main.mjs +414 -394
  4. package/build/next/feature/ActionBehavior.d.ts +14 -0
  5. package/build/next/feature/Behavior.d.ts +5 -15
  6. package/build/next/feature/ContainerBehavior.d.ts +9 -0
  7. package/build/next/feature/LinkBehavior.d.ts +13 -0
  8. package/build/next/feature/LinkHandler.d.ts +21 -17
  9. package/build/next/feature/Polling.d.ts +4 -5
  10. package/build/next/feature/PollingOnError.d.ts +7 -1
  11. package/build/next/feature/SummarySummariser.d.ts +2 -2
  12. package/build/next/index.d.ts +1 -0
  13. package/build/next/layout/ButtonLayout.d.ts +10 -4
  14. package/build/next/layout/DecisionLayoutOption.d.ts +9 -3
  15. package/build/next/layout/ImageLayout.d.ts +13 -7
  16. package/build/next/layout/ReviewLayoutCallToAction.d.ts +12 -2
  17. package/build/next/misc/Image.d.ts +8 -3
  18. package/build/next/responses/search/SearchResultAction.d.ts +2 -2
  19. package/build/next/responses/search/SearchResultSearch.d.ts +2 -2
  20. package/build/renderers/AlertRendererProps.d.ts +0 -3
  21. package/build/renderers/BaseInputRendererProps.d.ts +2 -3
  22. package/build/renderers/BoxRendererProps.d.ts +0 -3
  23. package/build/renderers/ButtonRendererProps.d.ts +0 -1
  24. package/build/renderers/CheckboxInputRendererProps.d.ts +2 -5
  25. package/build/renderers/ColumnsRendererProps.d.ts +0 -3
  26. package/build/renderers/CoreContainerRendererProps.d.ts +2 -5
  27. package/build/renderers/DateInputRendererProps.d.ts +0 -3
  28. package/build/renderers/DecisionRendererProps.d.ts +0 -3
  29. package/build/renderers/DividerRendererProps.d.ts +0 -3
  30. package/build/renderers/FormRendererProps.d.ts +0 -3
  31. package/build/renderers/HeadingRendererProps.d.ts +0 -1
  32. package/build/renderers/HiddenRendererProps.d.ts +0 -3
  33. package/build/renderers/Image.d.ts +3 -13
  34. package/build/renderers/ImageRendererProps.d.ts +1 -8
  35. package/build/renderers/InstructionsRendererProps.d.ts +0 -3
  36. package/build/renderers/IntegerInputRendererProps.d.ts +0 -5
  37. package/build/renderers/ListRendererProps.d.ts +4 -7
  38. package/build/renderers/LoadingIndicatorRendererProps.d.ts +0 -3
  39. package/build/renderers/MarkdownRendererProps.d.ts +0 -3
  40. package/build/renderers/ModalRendererProps.d.ts +0 -3
  41. package/build/renderers/MultiSelectInputRendererProps.d.ts +0 -5
  42. package/build/renderers/MultiUploadInputRendererProps.d.ts +0 -4
  43. package/build/renderers/NumberInputRendererProps.d.ts +0 -5
  44. package/build/renderers/ParagraphRendererProps.d.ts +0 -1
  45. package/build/renderers/RendererProps.d.ts +0 -3
  46. package/build/renderers/RepeatableRendererProps.d.ts +0 -6
  47. package/build/renderers/ReviewRendererProps.d.ts +0 -3
  48. package/build/renderers/SearchRendererProps.d.ts +3 -7
  49. package/build/renderers/SectionRendererProps.d.ts +0 -3
  50. package/build/renderers/SelectInputRendererProps.d.ts +0 -3
  51. package/build/renderers/StatusListRendererProps.d.ts +0 -3
  52. package/build/renderers/StepRendererProps.d.ts +13 -1
  53. package/build/renderers/TextInputRendererProps.d.ts +0 -3
  54. package/build/renderers/UploadInputRendererProps.d.ts +0 -3
  55. package/build/zod/schemas.d.ts +6628 -2724
  56. package/build/zod/schemas.ts +534 -511
  57. package/package.json +1 -1
@@ -2,109 +2,38 @@
2
2
  import { z } from 'zod';
3
3
  import type {
4
4
  JsonElement,
5
- NumberSchema,
6
5
  PersistAsync,
7
- ArraySchemaTuple,
8
6
  Schema,
9
- BooleanSchema,
10
- AllOfSchema,
11
- ArraySchema,
12
- IntegerSchema,
13
- ObjectSchema,
14
- OneOfSchema,
15
- StringSchema,
16
- ArraySchemaList,
17
- Step,
18
- Layout,
19
7
  ColumnsLayout,
8
+ Layout,
20
9
  ModalLayoutContent,
21
10
  BoxLayout,
22
11
  ModalLayout,
12
+ Step,
13
+ StringSchema,
14
+ OneOfSchema,
15
+ NumberSchema,
16
+ ArraySchemaTuple,
17
+ IntegerSchema,
18
+ ArraySchema,
19
+ ArraySchemaList,
20
+ AllOfSchema,
21
+ BooleanSchema,
22
+ ObjectSchema,
23
23
  } from '../next';
24
24
 
25
- export const imageSchema = z.object({
26
- text: z.string().optional(),
25
+ export const linkBehaviorSchema = z.object({
26
+ type: z.literal('link'),
27
27
  url: z.string(),
28
- accessibilityDescription: z.string().optional(),
29
- });
30
-
31
- export const summaryProviderSchema = z.object({
32
- providesTitle: z.boolean().optional(),
33
- providesDescription: z.boolean().optional(),
34
- providesIcon: z.boolean().optional(),
35
- providesImage: z.boolean().optional(),
36
28
  });
37
29
 
38
- export const autocompleteTokenSchema = z.union([
39
- z.literal('on'),
40
- z.literal('name'),
41
- z.literal('name-prefix'),
42
- z.literal('given-name'),
43
- z.literal('additional-name'),
44
- z.literal('family-name'),
45
- z.literal('name-suffix'),
46
- z.literal('nickname'),
47
- z.literal('email'),
48
- z.literal('username'),
49
- z.literal('new-username'),
50
- z.literal('new-password'),
51
- z.literal('password'),
52
- z.literal('one-time-code'),
53
- z.literal('job-title'),
54
- z.literal('organization-name'),
55
- z.literal('full-street-address'),
56
- z.literal('street-address-line-1'),
57
- z.literal('street-address-line-2'),
58
- z.literal('street-address-line-3'),
59
- z.literal('address-level-1'),
60
- z.literal('address-level-2'),
61
- z.literal('address-level-3'),
62
- z.literal('address-level-4'),
63
- z.literal('country-code'),
64
- z.literal('country-name'),
65
- z.literal('postal-code'),
66
- z.literal('credit-card-name'),
67
- z.literal('credit-card-given-name'),
68
- z.literal('credit-card-middle-name'),
69
- z.literal('credit-card-family-name'),
70
- z.literal('credit-card-number'),
71
- z.literal('credit-card-expiration'),
72
- z.literal('credit-card-expiration-month'),
73
- z.literal('credit-card-expiration-year'),
74
- z.literal('credit-card-security-code'),
75
- z.literal('credit-card-type'),
76
- z.literal('transaction-currency'),
77
- z.literal('transaction-amount'),
78
- z.literal('language'),
79
- z.literal('birthdate'),
80
- z.literal('birthdate-day'),
81
- z.literal('birthdate-month'),
82
- z.literal('birthdate-year'),
83
- z.literal('gender'),
84
- z.literal('phone-number'),
85
- z.literal('phone-country-code'),
86
- z.literal('phone-national'),
87
- z.literal('phone-area-code'),
88
- z.literal('phone-local'),
89
- z.literal('phone-local-prefix'),
90
- z.literal('phone-local-suffix'),
91
- z.literal('phone-extension'),
92
- z.literal('url'),
93
- z.literal('photo'),
94
- z.literal('impp'),
95
- z.literal('shipping'),
96
- z.literal('billing'),
97
- z.literal('home'),
98
- z.literal('work'),
99
- z.literal('mobile'),
100
- z.literal('fax'),
101
- z.literal('pager'),
30
+ export const navigationStackBehaviorSchema = z.union([
31
+ z.literal('default'),
32
+ z.literal('remove-previous'),
33
+ z.literal('remove-all'),
34
+ z.literal('replace-current'),
102
35
  ]);
103
36
 
104
- export const helpSchema = z.object({
105
- markdown: z.string(),
106
- });
107
-
108
37
  export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
109
38
  z
110
39
  .union([
@@ -117,49 +46,60 @@ export const jsonElementSchema: z.ZodSchema<JsonElement> = z.lazy(() =>
117
46
  .nullable(),
118
47
  );
119
48
 
120
- export const stringSchemaFormatSchema = z.union([
121
- z.literal('date'),
122
- z.literal('email'),
123
- z.literal('numeric'),
124
- z.literal('password'),
125
- z.literal('phone-number'),
126
- z.literal('base64url'),
49
+ export const helpSchema = z.object({
50
+ markdown: z.string(),
51
+ });
52
+
53
+ export const actionTypeSchema = z.union([
54
+ z.literal('primary'),
55
+ z.literal('secondary'),
56
+ z.literal('link'),
57
+ z.literal('positive'),
58
+ z.literal('negative'),
127
59
  ]);
128
60
 
129
- export const autocapitalizationTypeSchema = z.union([
130
- z.literal('none'),
131
- z.literal('characters'),
132
- z.literal('sentences'),
133
- z.literal('words'),
61
+ export const linkSchema = z.object({
62
+ url: z.string(),
63
+ });
64
+
65
+ export const httpMethodSchema = z.union([
66
+ z.literal('GET'),
67
+ z.literal('POST'),
68
+ z.literal('PUT'),
69
+ z.literal('PATCH'),
70
+ z.literal('DELETE'),
134
71
  ]);
135
72
 
136
73
  export const uploadSourceSchema = z.union([z.literal('camera'), z.literal('file')]);
137
74
 
138
- export const externalSchema = z.object({
75
+ export const validateAsyncSchema = z.object({
76
+ param: z.string(),
77
+ method: httpMethodSchema,
139
78
  url: z.string(),
140
79
  });
141
80
 
142
- export const stepErrorSchema = z.object({
143
- error: z.string().optional(),
144
- validation: jsonElementSchema.optional(),
81
+ export const summaryProviderSchema = z.object({
82
+ providesTitle: z.boolean().optional(),
83
+ providesDescription: z.boolean().optional(),
84
+ providesIcon: z.boolean().optional(),
85
+ providesImage: z.boolean().optional(),
145
86
  });
146
87
 
147
- export const iconNamedSchema = z.object({
148
- name: z.string(),
88
+ export const imageSchema = z.object({
89
+ text: z.string().optional(),
90
+ url: z.string().optional(),
91
+ uri: z.string().optional(),
92
+ accessibilityDescription: z.string().optional(),
149
93
  });
150
94
 
151
- export const iconTextSchema = z.object({
152
- text: z.string(),
95
+ export const externalSchema = z.object({
96
+ url: z.string(),
153
97
  });
154
98
 
155
- export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
156
-
157
- export const httpMethodSchema = z.union([
158
- z.literal('GET'),
159
- z.literal('POST'),
160
- z.literal('PUT'),
161
- z.literal('PATCH'),
162
- z.literal('DELETE'),
99
+ export const columnsLayoutBiasSchema = z.union([
100
+ z.literal('none'),
101
+ z.literal('left'),
102
+ z.literal('right'),
163
103
  ]);
164
104
 
165
105
  export const sizeSchema = z.union([
@@ -170,6 +110,25 @@ export const sizeSchema = z.union([
170
110
  z.literal('xl'),
171
111
  ]);
172
112
 
113
+ export const dividerLayoutSchema = z.object({
114
+ type: z.literal('divider'),
115
+ control: z.string().optional(),
116
+ margin: sizeSchema.optional(),
117
+ });
118
+
119
+ export const statusListLayoutStatusSchema = z.union([
120
+ z.literal('not-done'),
121
+ z.literal('pending'),
122
+ z.literal('done'),
123
+ ]);
124
+
125
+ export const loadingIndicatorLayoutSchema = z.object({
126
+ type: z.literal('loading-indicator'),
127
+ size: sizeSchema.optional(),
128
+ control: z.string().optional(),
129
+ margin: sizeSchema.optional(),
130
+ });
131
+
173
132
  export const contextSchema = z.union([
174
133
  z.literal('positive'),
175
134
  z.literal('neutral'),
@@ -181,53 +140,47 @@ export const contextSchema = z.union([
181
140
  z.literal('primary'),
182
141
  ]);
183
142
 
184
- export const imageLayoutSchema = z.object({
185
- type: z.literal('image'),
186
- text: z.string().optional(),
187
- url: z.string(),
188
- size: sizeSchema.optional(),
189
- accessibilityDescription: z.string().optional(),
190
- control: z.string().optional(),
191
- margin: sizeSchema.optional(),
143
+ export const instructionsLayoutItemSchema = z.object({
144
+ text: z.string(),
145
+ context: contextSchema,
146
+ tag: z.string().optional(),
192
147
  });
193
148
 
194
- export const searchSearchRequestSchema = z.object({
195
- url: z.string(),
196
- method: httpMethodSchema,
197
- param: z.string(),
198
- query: z.string(),
149
+ export const formLayoutSchemaReferenceSchema = z.object({
150
+ $ref: z.string(),
199
151
  });
200
152
 
201
- export const errorResponseBodySchema = z.object({
202
- refreshFormUrl: z.string().optional(),
203
- analytics: z.record(z.string()).optional(),
204
- error: z.string().optional(),
205
- validation: jsonElementSchema.optional(),
206
- refreshUrl: z.string().optional(),
153
+ export const modalLayoutTriggerSchema = z.object({
154
+ title: z.string(),
207
155
  });
208
156
 
209
- export const paragraphLayoutSchema = z.object({
210
- type: z.literal('paragraph'),
211
- text: z.string(),
212
- align: alignSchema.optional(),
157
+ export const instructionsLayoutSchema = z.object({
158
+ type: z.literal('instructions'),
159
+ title: z.string().optional(),
160
+ items: z.array(instructionsLayoutItemSchema),
213
161
  control: z.string().optional(),
214
162
  margin: sizeSchema.optional(),
215
163
  });
216
164
 
217
- export const instructionsLayoutItemSchema = z.object({
218
- text: z.string(),
219
- context: contextSchema,
165
+ export const reviewLayoutFieldSchema = z.object({
166
+ label: z.string(),
167
+ value: z.string(),
168
+ rawValue: z.string().optional(),
169
+ help: helpSchema.optional(),
220
170
  tag: z.string().optional(),
221
171
  });
222
172
 
223
- export const columnsLayoutBiasSchema = z.union([
224
- z.literal('none'),
225
- z.literal('left'),
226
- z.literal('right'),
227
- ]);
173
+ export const alignSchema = z.union([z.literal('left'), z.literal('center'), z.literal('right')]);
228
174
 
229
- export const formLayoutSchemaReferenceSchema = z.object({
230
- $ref: z.string(),
175
+ export const searchLayoutSchema = z.object({
176
+ type: z.literal('search'),
177
+ title: z.string(),
178
+ method: httpMethodSchema,
179
+ url: z.string(),
180
+ param: z.string(),
181
+ emptyMessage: z.string().optional(),
182
+ control: z.string().optional(),
183
+ margin: sizeSchema.optional(),
231
184
  });
232
185
 
233
186
  export const headingLayoutSchema = z.object({
@@ -239,30 +192,12 @@ export const headingLayoutSchema = z.object({
239
192
  margin: sizeSchema.optional(),
240
193
  });
241
194
 
242
- export const dividerLayoutSchema = z.object({
243
- type: z.literal('divider'),
244
- control: z.string().optional(),
245
- margin: sizeSchema.optional(),
246
- });
247
-
248
- export const infoLayoutSchema = z.object({
249
- type: z.literal('info'),
250
- markdown: z.string(),
251
- align: alignSchema.optional(),
252
- control: z.string().optional(),
253
- margin: sizeSchema.optional(),
254
- });
255
-
256
- export const instructionsLayoutSchema = z.object({
257
- type: z.literal('instructions'),
258
- title: z.string().optional(),
259
- items: z.array(instructionsLayoutItemSchema),
260
- control: z.string().optional(),
261
- margin: sizeSchema.optional(),
262
- });
263
-
264
- export const loadingIndicatorLayoutSchema = z.object({
265
- type: z.literal('loading-indicator'),
195
+ export const imageLayoutSchema = z.object({
196
+ type: z.literal('image'),
197
+ text: z.string().optional(),
198
+ url: z.string().optional(),
199
+ accessibilityDescription: z.string().optional(),
200
+ content: imageSchema.optional(),
266
201
  size: sizeSchema.optional(),
267
202
  control: z.string().optional(),
268
203
  margin: sizeSchema.optional(),
@@ -276,77 +211,128 @@ export const markdownLayoutSchema = z.object({
276
211
  margin: sizeSchema.optional(),
277
212
  });
278
213
 
279
- export const searchLayoutSchema = z.object({
280
- type: z.literal('search'),
281
- title: z.string(),
282
- method: httpMethodSchema,
283
- url: z.string(),
284
- param: z.string(),
285
- emptyMessage: z.string().optional(),
214
+ export const paragraphLayoutSchema = z.object({
215
+ type: z.literal('paragraph'),
216
+ text: z.string(),
217
+ align: alignSchema.optional(),
286
218
  control: z.string().optional(),
287
219
  margin: sizeSchema.optional(),
288
220
  });
289
221
 
290
- export const modalLayoutTriggerSchema = z.object({
291
- title: z.string(),
292
- });
293
-
294
222
  export const listLayoutStatusSchema = z.union([
295
223
  z.literal('warning'),
296
224
  z.literal('neutral'),
297
225
  z.literal('positive'),
298
226
  ]);
299
227
 
300
- export const reviewLayoutFieldSchema = z.object({
301
- label: z.string(),
302
- value: z.string(),
303
- rawValue: z.string().optional(),
304
- help: helpSchema.optional(),
305
- tag: z.string().optional(),
228
+ export const errorResponseBodySchema = z.object({
229
+ refreshFormUrl: z.string().optional(),
230
+ analytics: z.record(z.string()).optional(),
231
+ error: z.string().optional(),
232
+ validation: jsonElementSchema.optional(),
233
+ refreshUrl: z.string().optional(),
306
234
  });
307
235
 
308
- export const statusListLayoutStatusSchema = z.union([
309
- z.literal('not-done'),
310
- z.literal('pending'),
311
- z.literal('done'),
312
- ]);
313
-
314
- export const linkSchema = z.object({
236
+ export const searchSearchRequestSchema = z.object({
315
237
  url: z.string(),
238
+ method: httpMethodSchema,
239
+ param: z.string(),
240
+ query: z.string(),
316
241
  });
317
242
 
318
- export const actionTypeSchema = z.union([
319
- z.literal('primary'),
320
- z.literal('secondary'),
321
- z.literal('link'),
322
- z.literal('positive'),
323
- z.literal('negative'),
243
+ export const autocompleteTokenSchema = z.union([
244
+ z.literal('on'),
245
+ z.literal('name'),
246
+ z.literal('name-prefix'),
247
+ z.literal('given-name'),
248
+ z.literal('additional-name'),
249
+ z.literal('family-name'),
250
+ z.literal('name-suffix'),
251
+ z.literal('nickname'),
252
+ z.literal('email'),
253
+ z.literal('username'),
254
+ z.literal('new-username'),
255
+ z.literal('new-password'),
256
+ z.literal('password'),
257
+ z.literal('one-time-code'),
258
+ z.literal('job-title'),
259
+ z.literal('organization-name'),
260
+ z.literal('full-street-address'),
261
+ z.literal('street-address-line-1'),
262
+ z.literal('street-address-line-2'),
263
+ z.literal('street-address-line-3'),
264
+ z.literal('address-level-1'),
265
+ z.literal('address-level-2'),
266
+ z.literal('address-level-3'),
267
+ z.literal('address-level-4'),
268
+ z.literal('country-code'),
269
+ z.literal('country-name'),
270
+ z.literal('postal-code'),
271
+ z.literal('credit-card-name'),
272
+ z.literal('credit-card-given-name'),
273
+ z.literal('credit-card-middle-name'),
274
+ z.literal('credit-card-family-name'),
275
+ z.literal('credit-card-number'),
276
+ z.literal('credit-card-expiration'),
277
+ z.literal('credit-card-expiration-month'),
278
+ z.literal('credit-card-expiration-year'),
279
+ z.literal('credit-card-security-code'),
280
+ z.literal('credit-card-type'),
281
+ z.literal('transaction-currency'),
282
+ z.literal('transaction-amount'),
283
+ z.literal('language'),
284
+ z.literal('birthdate'),
285
+ z.literal('birthdate-day'),
286
+ z.literal('birthdate-month'),
287
+ z.literal('birthdate-year'),
288
+ z.literal('gender'),
289
+ z.literal('phone-number'),
290
+ z.literal('phone-country-code'),
291
+ z.literal('phone-national'),
292
+ z.literal('phone-area-code'),
293
+ z.literal('phone-local'),
294
+ z.literal('phone-local-prefix'),
295
+ z.literal('phone-local-suffix'),
296
+ z.literal('phone-extension'),
297
+ z.literal('url'),
298
+ z.literal('photo'),
299
+ z.literal('impp'),
300
+ z.literal('shipping'),
301
+ z.literal('billing'),
302
+ z.literal('home'),
303
+ z.literal('work'),
304
+ z.literal('mobile'),
305
+ z.literal('fax'),
306
+ z.literal('pager'),
324
307
  ]);
325
308
 
326
- export const navigationStackBehaviorSchema = z.union([
327
- z.literal('default'),
328
- z.literal('remove-previous'),
329
- z.literal('remove-all'),
330
- z.literal('replace-current'),
309
+ export const autocapitalizationTypeSchema = z.union([
310
+ z.literal('none'),
311
+ z.literal('characters'),
312
+ z.literal('sentences'),
313
+ z.literal('words'),
331
314
  ]);
332
315
 
333
- export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
316
+ export const iconNamedSchema = z.object({
317
+ name: z.string(),
318
+ });
334
319
 
335
- export const validateAsyncSchema = z.object({
336
- param: z.string(),
337
- method: httpMethodSchema,
338
- url: z.string(),
320
+ export const iconTextSchema = z.object({
321
+ text: z.string(),
339
322
  });
340
323
 
341
- export const summarySummariserSchema = z.object({
342
- defaultTitle: z.string().optional(),
343
- defaultDescription: z.string().optional(),
344
- defaultIcon: iconSchema.optional(),
345
- defaultImage: imageLayoutSchema.optional(),
346
- providesTitle: z.boolean().optional(),
347
- providesDescription: z.boolean().optional(),
348
- providesIcon: z.boolean().optional(),
349
- providesImage: z.boolean().optional(),
324
+ export const stringSchemaFormatSchema = z.union([
325
+ z.literal('date'),
326
+ z.literal('email'),
327
+ z.literal('numeric'),
328
+ z.literal('password'),
329
+ z.literal('phone-number'),
330
+ z.literal('base64url'),
331
+ ]);
332
+
333
+ export const stepErrorSchema = z.object({
334
+ error: z.string().optional(),
335
+ validation: jsonElementSchema.optional(),
350
336
  });
351
337
 
352
338
  export const actionSchema = z.object({
@@ -365,8 +351,37 @@ export const actionSchema = z.object({
365
351
  skipValidation: z.boolean().optional(),
366
352
  });
367
353
 
368
- export const linkHandlerSchema = z.object({
369
- regexPattern: z.string(),
354
+ export const iconSchema = z.union([iconNamedSchema, iconTextSchema]);
355
+
356
+ export const formLayoutSchema = z.object({
357
+ type: z.literal('form'),
358
+ schema: formLayoutSchemaReferenceSchema.optional(),
359
+ schemaId: z.string(),
360
+ control: z.string().optional(),
361
+ margin: sizeSchema.optional(),
362
+ });
363
+
364
+ export const infoLayoutSchema = z.object({
365
+ type: z.literal('info'),
366
+ markdown: z.string(),
367
+ align: alignSchema.optional(),
368
+ control: z.string().optional(),
369
+ margin: sizeSchema.optional(),
370
+ });
371
+
372
+ export const listLayoutItemSchema = z.object({
373
+ description: z.string().optional(),
374
+ status: listLayoutStatusSchema.optional(),
375
+ icon: iconSchema.optional(),
376
+ image: imageSchema.optional(),
377
+ title: z.string().optional(),
378
+ subtitle: z.string().optional(),
379
+ value: z.string().optional(),
380
+ subvalue: z.string().optional(),
381
+ tag: z.string().optional(),
382
+ });
383
+
384
+ export const actionResponseBodySchema = z.object({
370
385
  action: actionSchema,
371
386
  });
372
387
 
@@ -375,7 +390,7 @@ export const searchResultActionSchema = z.object({
375
390
  title: z.string(),
376
391
  description: z.string().optional(),
377
392
  icon: iconSchema.optional(),
378
- image: imageLayoutSchema.optional(),
393
+ image: imageSchema.optional(),
379
394
  value: actionSchema,
380
395
  });
381
396
 
@@ -384,47 +399,92 @@ export const searchResultSearchSchema = z.object({
384
399
  title: z.string(),
385
400
  description: z.string().optional(),
386
401
  icon: iconSchema.optional(),
387
- image: imageLayoutSchema.optional(),
402
+ image: imageSchema.optional(),
388
403
  value: searchSearchRequestSchema,
389
404
  });
390
405
 
391
- export const actionResponseBodySchema = z.object({
406
+ export const actionBehaviorSchema = z.object({
407
+ type: z.literal('action'),
392
408
  action: actionSchema,
393
409
  });
394
410
 
395
- export const reviewLayoutCallToActionSchema = z.object({
396
- title: z.string(),
411
+ export const containerBehaviorSchema = z.object({
412
+ action: actionSchema.optional(),
413
+ link: linkSchema.optional(),
414
+ });
415
+
416
+ export const navigationBackBehaviorSchema = z.object({
417
+ title: z.string().optional(),
397
418
  action: actionSchema,
398
419
  });
399
420
 
400
- export const formLayoutSchema = z.object({
401
- type: z.literal('form'),
402
- schema: formLayoutSchemaReferenceSchema.optional(),
403
- schemaId: z.string(),
404
- control: z.string().optional(),
405
- margin: sizeSchema.optional(),
406
- });
421
+ export const summarySummariserSchema = z.object({
422
+ defaultTitle: z.string().optional(),
423
+ defaultDescription: z.string().optional(),
424
+ defaultIcon: iconSchema.optional(),
425
+ defaultImage: imageSchema.optional(),
426
+ providesTitle: z.boolean().optional(),
427
+ providesDescription: z.boolean().optional(),
428
+ providesIcon: z.boolean().optional(),
429
+ providesImage: z.boolean().optional(),
430
+ });
431
+
432
+ export const searchResultSchema = z.union([searchResultActionSchema, searchResultSearchSchema]);
433
+
434
+ export const searchResponseBodySchema = z.object({
435
+ results: z.array(searchResultSchema),
436
+ });
437
+
438
+ export const behaviorSchema = z.union([
439
+ actionBehaviorSchema,
440
+ containerBehaviorSchema,
441
+ linkBehaviorSchema,
442
+ ]);
443
+
444
+ export const navigationSchema = z.object({
445
+ backButton: navigationBackBehaviorSchema.optional(),
446
+ back: navigationBackBehaviorSchema.optional(),
447
+ stackBehavior: navigationStackBehaviorSchema.optional(),
448
+ });
449
+
450
+ export const linkHandlerSchema = z.object({
451
+ regexPattern: z.string(),
452
+ behavior: behaviorSchema.optional(),
453
+ });
454
+
455
+ export const pollingOnErrorSchema = z.object({
456
+ action: actionSchema.optional(),
457
+ behavior: behaviorSchema.optional(),
458
+ });
459
+
460
+ export const pollingSchema = z.object({
461
+ interval: z.number().optional(),
462
+ url: z.string(),
463
+ delay: z.number().optional(),
464
+ timeout: z.number().optional(),
465
+ maxAttempts: z.number(),
466
+ onError: pollingOnErrorSchema,
467
+ });
468
+
469
+ export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
407
470
 
408
471
  export const decisionLayoutOptionSchema = z.object({
409
- action: actionSchema,
472
+ action: actionSchema.optional(),
410
473
  title: z.string(),
411
474
  description: z.string().optional(),
412
475
  disabled: z.boolean().optional(),
413
476
  icon: iconSchema.optional(),
414
- image: imageLayoutSchema.optional(),
477
+ image: imageSchema.optional(),
478
+ behavior: behaviorSchema.optional(),
415
479
  tag: z.string().optional(),
416
480
  });
417
481
 
418
- export const behaviorSchema = z.object({
419
- action: actionSchema.optional(),
420
- link: linkSchema.optional(),
421
- });
422
-
423
482
  export const buttonLayoutSchema = z.object({
424
483
  type: z.literal('button'),
484
+ action: actionSchema.optional(),
425
485
  size: sizeSchema.optional(),
426
486
  title: z.string().optional(),
427
- action: actionSchema,
487
+ behavior: behaviorSchema.optional(),
428
488
  context: contextSchema.optional(),
429
489
  disabled: z.boolean().optional(),
430
490
  pinOrder: z.number().optional(),
@@ -432,83 +492,35 @@ export const buttonLayoutSchema = z.object({
432
492
  margin: sizeSchema.optional(),
433
493
  });
434
494
 
435
- export const reviewLayoutSchema = z.object({
436
- type: z.literal('review'),
437
- orientation: z.string().optional(),
495
+ export const reviewLayoutCallToActionSchema = z.object({
438
496
  action: actionSchema.optional(),
439
- fields: z.array(reviewLayoutFieldSchema),
440
- title: z.string().optional(),
441
- callToAction: reviewLayoutCallToActionSchema.optional(),
442
- control: z.string().optional(),
443
- margin: sizeSchema.optional(),
444
- });
445
-
446
- export const itemCallToActionSchema = z.object({
447
497
  title: z.string(),
448
498
  accessibilityDescription: z.string().optional(),
449
- behavior: behaviorSchema,
499
+ behavior: behaviorSchema.optional(),
450
500
  });
451
501
 
452
- export const listLayoutCallToActionSchema = z.object({
502
+ export const alertLayoutCallToActionSchema = z.object({
453
503
  title: z.string(),
454
504
  accessibilityDescription: z.string().optional(),
455
505
  behavior: behaviorSchema,
456
506
  });
457
507
 
458
- export const listLayoutItemSchema = z.object({
459
- description: z.string().optional(),
460
- status: listLayoutStatusSchema.optional(),
461
- icon: iconSchema.optional(),
462
- image: imageSchema.optional(),
463
- title: z.string().optional(),
464
- subtitle: z.string().optional(),
465
- value: z.string().optional(),
466
- subvalue: z.string().optional(),
467
- tag: z.string().optional(),
468
- });
469
-
470
- export const statusListLayoutItemSchema = z.object({
508
+ export const itemCallToActionSchema = z.object({
471
509
  title: z.string(),
472
- description: z.string().optional(),
473
- icon: iconSchema,
474
- status: statusListLayoutStatusSchema.optional(),
475
- callToAction: itemCallToActionSchema.optional(),
476
- tag: z.string().optional(),
477
- });
478
-
479
- export const pollingOnErrorSchema = z.object({
480
- action: actionSchema,
481
- });
482
-
483
- export const navigationBackBehaviorSchema = z.object({
484
- title: z.string().optional(),
485
- action: actionSchema,
486
- });
487
-
488
- export const summarySchema = z.union([summaryProviderSchema, summarySummariserSchema]);
489
-
490
- export const pollingSchema = z.object({
491
- url: z.string(),
492
- interval: z.number().optional(),
493
- delay: z.number().optional(),
494
- timeout: z.number().optional(),
495
- maxAttempts: z.number(),
496
- onError: pollingOnErrorSchema,
497
- });
498
-
499
- export const navigationSchema = z.object({
500
- backButton: navigationBackBehaviorSchema.optional(),
501
- back: navigationBackBehaviorSchema.optional(),
502
- stackBehavior: navigationStackBehaviorSchema.optional(),
510
+ accessibilityDescription: z.string().optional(),
511
+ behavior: behaviorSchema,
503
512
  });
504
513
 
505
- export const searchResultSchema = z.union([searchResultActionSchema, searchResultSearchSchema]);
506
-
507
- export const searchResponseBodySchema = z.object({
508
- results: z.array(searchResultSchema),
514
+ export const alertLayoutSchema = z.object({
515
+ type: z.literal('alert'),
516
+ markdown: z.string(),
517
+ context: contextSchema.optional(),
518
+ control: z.string().optional(),
519
+ margin: sizeSchema.optional(),
520
+ callToAction: alertLayoutCallToActionSchema.optional(),
509
521
  });
510
522
 
511
- export const alertLayoutCallToActionSchema = z.object({
523
+ export const listLayoutCallToActionSchema = z.object({
512
524
  title: z.string(),
513
525
  accessibilityDescription: z.string().optional(),
514
526
  behavior: behaviorSchema,
@@ -531,23 +543,6 @@ export const listLayoutSchema = z.object({
531
543
  margin: sizeSchema.optional(),
532
544
  });
533
545
 
534
- export const statusListLayoutSchema = z.object({
535
- type: z.literal('status-list'),
536
- items: z.array(statusListLayoutItemSchema),
537
- title: z.string().optional(),
538
- control: z.string().optional(),
539
- margin: sizeSchema.optional(),
540
- });
541
-
542
- export const alertLayoutSchema = z.object({
543
- type: z.literal('alert'),
544
- markdown: z.string(),
545
- context: contextSchema.optional(),
546
- control: z.string().optional(),
547
- margin: sizeSchema.optional(),
548
- callToAction: alertLayoutCallToActionSchema.optional(),
549
- });
550
-
551
546
  export const constSchemaSchema = z.object({
552
547
  hidden: z.boolean().optional(),
553
548
  alert: alertLayoutSchema.optional(),
@@ -588,22 +583,168 @@ export const blobSchemaSchema = z.object({
588
583
  disabled: z.boolean().optional(),
589
584
  });
590
585
 
591
- export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
586
+ export const reviewLayoutSchema = z.object({
587
+ type: z.literal('review'),
588
+ orientation: z.string().optional(),
589
+ action: actionSchema.optional(),
590
+ fields: z.array(reviewLayoutFieldSchema),
591
+ title: z.string().optional(),
592
+ callToAction: reviewLayoutCallToActionSchema.optional(),
593
+ control: z.string().optional(),
594
+ margin: sizeSchema.optional(),
595
+ });
596
+
597
+ export const statusListLayoutItemSchema = z.object({
598
+ title: z.string(),
599
+ description: z.string().optional(),
600
+ icon: iconSchema,
601
+ status: statusListLayoutStatusSchema.optional(),
602
+ callToAction: itemCallToActionSchema.optional(),
603
+ tag: z.string().optional(),
604
+ });
605
+
606
+ export const statusListLayoutSchema = z.object({
607
+ type: z.literal('status-list'),
608
+ items: z.array(statusListLayoutItemSchema),
609
+ title: z.string().optional(),
610
+ control: z.string().optional(),
611
+ margin: sizeSchema.optional(),
612
+ });
613
+
614
+ export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
592
615
  z.object({
593
- type: z.literal('number'),
616
+ param: z.string(),
617
+ idProperty: z.string(),
618
+ schema: schemaSchema,
619
+ url: z.string(),
620
+ method: httpMethodSchema,
621
+ }),
622
+ );
623
+
624
+ export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
625
+ z.union([
626
+ allOfSchemaSchema,
627
+ arraySchemaSchema,
628
+ blobSchemaSchema,
629
+ booleanSchemaSchema,
630
+ constSchemaSchema,
631
+ integerSchemaSchema,
632
+ numberSchemaSchema,
633
+ objectSchemaSchema,
634
+ oneOfSchemaSchema,
635
+ stringSchemaSchema,
636
+ ]),
637
+ );
638
+
639
+ export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
640
+ z.object({
641
+ type: z.literal('columns'),
642
+ left: z.array(layoutSchema),
643
+ right: z.array(layoutSchema),
644
+ bias: columnsLayoutBiasSchema.optional(),
645
+ control: z.string().optional(),
646
+ margin: sizeSchema.optional(),
647
+ }),
648
+ );
649
+
650
+ export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
651
+ z.union([
652
+ alertLayoutSchema,
653
+ boxLayoutSchema,
654
+ buttonLayoutSchema,
655
+ columnsLayoutSchema,
656
+ decisionLayoutSchema,
657
+ dividerLayoutSchema,
658
+ formLayoutSchema,
659
+ headingLayoutSchema,
660
+ imageLayoutSchema,
661
+ infoLayoutSchema,
662
+ instructionsLayoutSchema,
663
+ listLayoutSchema,
664
+ loadingIndicatorLayoutSchema,
665
+ markdownLayoutSchema,
666
+ modalLayoutSchema,
667
+ paragraphLayoutSchema,
668
+ reviewLayoutSchema,
669
+ searchLayoutSchema,
670
+ statusListLayoutSchema,
671
+ ]),
672
+ );
673
+
674
+ export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
675
+ z.object({
676
+ title: z.string().optional(),
677
+ components: z.array(layoutSchema),
678
+ }),
679
+ );
680
+
681
+ export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
682
+ z.object({
683
+ type: z.literal('box'),
684
+ components: z.array(layoutSchema),
685
+ width: sizeSchema.optional(),
686
+ border: z.boolean().optional(),
687
+ control: z.string().optional(),
688
+ margin: sizeSchema.optional(),
689
+ }),
690
+ );
691
+
692
+ export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
693
+ z.object({
694
+ type: z.literal('modal'),
695
+ control: z.string().optional(),
696
+ margin: sizeSchema.optional(),
697
+ trigger: modalLayoutTriggerSchema,
698
+ content: modalLayoutContentSchema,
699
+ }),
700
+ );
701
+
702
+ export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
703
+ z.object({
704
+ key: z.string().optional(),
705
+ type: z.string().optional(),
706
+ actions: z.array(actionSchema).optional(),
707
+ refreshFormUrl: z.string().optional(),
708
+ id: z.string(),
709
+ title: z.string(),
710
+ schemas: z.array(schemaSchema),
711
+ layout: z.array(layoutSchema),
712
+ description: z.string().optional(),
713
+ model: jsonElementSchema.optional(),
714
+ external: externalSchema.optional(),
715
+ polling: pollingSchema.optional(),
716
+ linkHandlers: z.array(linkHandlerSchema).optional(),
717
+ analytics: z.record(z.string()).optional(),
718
+ errors: stepErrorSchema.optional(),
719
+ navigation: navigationSchema.optional(),
720
+ refreshUrl: z.string().optional(),
721
+ control: z.string().optional(),
722
+ }),
723
+ );
724
+
725
+ export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
726
+ z.object({
727
+ type: z.literal('string'),
594
728
  autofillProvider: z.string().optional(),
595
729
  promoted: z.boolean().optional(),
596
730
  refreshFormOnChange: z.boolean().optional(),
597
731
  refreshUrl: z.string().optional(),
598
732
  refreshFormUrl: z.string().optional(),
733
+ format: stringSchemaFormatSchema.optional(),
734
+ displayFormat: z.string().optional(),
599
735
  placeholder: z.string().optional(),
600
- minimum: z.number().optional(),
601
- maximum: z.number().optional(),
736
+ minLength: z.number().optional(),
737
+ maxLength: z.number().optional(),
738
+ minimum: z.string().optional(),
739
+ maximum: z.string().optional(),
740
+ pattern: z.string().optional(),
741
+ autocapitalization: autocapitalizationTypeSchema.optional(),
742
+ autocorrect: z.boolean().optional(),
602
743
  $id: z.string().optional(),
603
744
  title: z.string().optional(),
604
745
  description: z.string().optional(),
605
746
  control: z.string().optional(),
606
- default: z.number().optional(),
747
+ default: z.string().optional(),
607
748
  hidden: z.boolean().optional(),
608
749
  disabled: z.boolean().optional(),
609
750
  icon: iconSchema.optional(),
@@ -616,71 +757,63 @@ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
616
757
  validationAsync: validateAsyncSchema.optional(),
617
758
  validationMessages: z.record(z.string()).optional(),
618
759
  alert: alertLayoutSchema.optional(),
760
+ cameraConfig: jsonElementSchema.optional(),
761
+ accepts: z.array(z.string()).optional(),
762
+ maxSize: z.number().optional(),
763
+ source: uploadSourceSchema.optional(),
619
764
  autocompleteHint: z.array(autocompleteTokenSchema).optional(),
620
765
  autofillKey: z.string().optional(),
621
766
  help: helpSchema.optional(),
622
767
  }),
623
768
  );
624
769
 
625
- export const persistAsyncSchema: z.ZodSchema<PersistAsync> = z.lazy(() =>
626
- z.object({
627
- param: z.string(),
628
- idProperty: z.string(),
629
- schema: schemaSchema,
630
- url: z.string(),
631
- method: httpMethodSchema,
632
- }),
633
- );
634
-
635
- export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
770
+ export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
636
771
  z.object({
637
- type: z.literal('array'),
772
+ autofillProvider: z.string().optional(),
638
773
  promoted: z.boolean().optional(),
774
+ refreshFormOnChange: z.boolean().optional(),
775
+ refreshUrl: z.string().optional(),
776
+ refreshFormUrl: z.string().optional(),
777
+ promotion: jsonElementSchema.optional(),
778
+ oneOf: z.array(schemaSchema),
779
+ placeholder: z.string().optional(),
639
780
  $id: z.string().optional(),
640
- items: z.array(schemaSchema),
641
781
  title: z.string().optional(),
642
782
  description: z.string().optional(),
643
783
  control: z.string().optional(),
784
+ default: jsonElementSchema.optional(),
644
785
  hidden: z.boolean().optional(),
645
786
  icon: iconSchema.optional(),
646
787
  image: imageSchema.optional(),
647
788
  keywords: z.array(z.string()).optional(),
648
789
  summary: summaryProviderSchema.optional(),
649
790
  analyticsId: z.string().optional(),
650
- persistAsync: persistAsyncSchema.optional(),
651
- validationAsync: validateAsyncSchema.optional(),
791
+ refreshStepOnChange: z.boolean().optional(),
652
792
  alert: alertLayoutSchema.optional(),
793
+ help: helpSchema.optional(),
794
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
795
+ autofillKey: z.string().optional(),
796
+ validationMessages: z.record(z.string()).optional(),
797
+ disabled: z.boolean().optional(),
653
798
  }),
654
799
  );
655
800
 
656
- export const schemaSchema: z.ZodSchema<Schema> = z.lazy(() =>
657
- z.union([
658
- allOfSchemaSchema,
659
- arraySchemaSchema,
660
- blobSchemaSchema,
661
- booleanSchemaSchema,
662
- constSchemaSchema,
663
- integerSchemaSchema,
664
- numberSchemaSchema,
665
- objectSchemaSchema,
666
- oneOfSchemaSchema,
667
- stringSchemaSchema,
668
- ]),
669
- );
670
-
671
- export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
801
+ export const numberSchemaSchema: z.ZodSchema<NumberSchema> = z.lazy(() =>
672
802
  z.object({
673
- type: z.literal('boolean'),
803
+ type: z.literal('number'),
674
804
  autofillProvider: z.string().optional(),
675
805
  promoted: z.boolean().optional(),
676
806
  refreshFormOnChange: z.boolean().optional(),
677
807
  refreshUrl: z.string().optional(),
678
808
  refreshFormUrl: z.string().optional(),
809
+ placeholder: z.string().optional(),
810
+ minimum: z.number().optional(),
811
+ maximum: z.number().optional(),
679
812
  $id: z.string().optional(),
680
813
  title: z.string().optional(),
681
814
  description: z.string().optional(),
682
815
  control: z.string().optional(),
683
- default: z.boolean().optional(),
816
+ default: z.number().optional(),
684
817
  hidden: z.boolean().optional(),
685
818
  disabled: z.boolean().optional(),
686
819
  icon: iconSchema.optional(),
@@ -691,18 +824,20 @@ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
691
824
  persistAsync: persistAsyncSchema.optional(),
692
825
  refreshStepOnChange: z.boolean().optional(),
693
826
  validationAsync: validateAsyncSchema.optional(),
827
+ validationMessages: z.record(z.string()).optional(),
694
828
  alert: alertLayoutSchema.optional(),
829
+ autocompleteHint: z.array(autocompleteTokenSchema).optional(),
695
830
  autofillKey: z.string().optional(),
696
831
  help: helpSchema.optional(),
697
832
  }),
698
833
  );
699
834
 
700
- export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
835
+ export const arraySchemaTupleSchema: z.ZodSchema<ArraySchemaTuple> = z.lazy(() =>
701
836
  z.object({
702
- disabled: z.boolean().optional(),
837
+ type: z.literal('array'),
703
838
  promoted: z.boolean().optional(),
704
- allOf: z.array(schemaSchema),
705
839
  $id: z.string().optional(),
840
+ items: z.array(schemaSchema),
706
841
  title: z.string().optional(),
707
842
  description: z.string().optional(),
708
843
  control: z.string().optional(),
@@ -712,14 +847,12 @@ export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
712
847
  keywords: z.array(z.string()).optional(),
713
848
  summary: summaryProviderSchema.optional(),
714
849
  analyticsId: z.string().optional(),
850
+ persistAsync: persistAsyncSchema.optional(),
851
+ validationAsync: validateAsyncSchema.optional(),
715
852
  alert: alertLayoutSchema.optional(),
716
853
  }),
717
854
  );
718
855
 
719
- export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
720
- z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
721
- );
722
-
723
856
  export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
724
857
  z.object({
725
858
  type: z.literal('integer'),
@@ -754,16 +887,21 @@ export const integerSchemaSchema: z.ZodSchema<IntegerSchema> = z.lazy(() =>
754
887
  }),
755
888
  );
756
889
 
757
- export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
890
+ export const arraySchemaSchema: z.ZodSchema<ArraySchema> = z.lazy(() =>
891
+ z.union([arraySchemaListSchema, arraySchemaTupleSchema]),
892
+ );
893
+
894
+ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
758
895
  z.object({
759
- type: z.literal('object'),
760
- disabled: z.boolean().optional(),
896
+ type: z.literal('array'),
761
897
  promoted: z.boolean().optional(),
762
- help: helpSchema.optional(),
763
- properties: z.record(schemaSchema),
764
- displayOrder: z.array(z.string()),
765
- required: z.array(z.string()).optional(),
766
898
  $id: z.string().optional(),
899
+ items: schemaSchema,
900
+ addItemTitle: z.string(),
901
+ editItemTitle: z.string(),
902
+ minItems: z.number().optional(),
903
+ maxItems: z.number().optional(),
904
+ placeholder: z.string().optional(),
767
905
  title: z.string().optional(),
768
906
  description: z.string().optional(),
769
907
  control: z.string().optional(),
@@ -771,66 +909,48 @@ export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
771
909
  icon: iconSchema.optional(),
772
910
  image: imageSchema.optional(),
773
911
  keywords: z.array(z.string()).optional(),
774
- summary: summaryProviderSchema.optional(),
912
+ summary: summarySummariserSchema.optional(),
775
913
  analyticsId: z.string().optional(),
914
+ persistAsync: persistAsyncSchema.optional(),
915
+ validationAsync: validateAsyncSchema.optional(),
776
916
  alert: alertLayoutSchema.optional(),
917
+ validationMessages: z.record(z.string()).optional(),
918
+ disabled: z.boolean().optional(),
777
919
  }),
778
920
  );
779
921
 
780
- export const oneOfSchemaSchema: z.ZodSchema<OneOfSchema> = z.lazy(() =>
922
+ export const allOfSchemaSchema: z.ZodSchema<AllOfSchema> = z.lazy(() =>
781
923
  z.object({
782
- autofillProvider: z.string().optional(),
924
+ disabled: z.boolean().optional(),
783
925
  promoted: z.boolean().optional(),
784
- refreshFormOnChange: z.boolean().optional(),
785
- refreshUrl: z.string().optional(),
786
- refreshFormUrl: z.string().optional(),
787
- promotion: jsonElementSchema.optional(),
788
- oneOf: z.array(schemaSchema),
789
- placeholder: z.string().optional(),
926
+ allOf: z.array(schemaSchema),
790
927
  $id: z.string().optional(),
791
928
  title: z.string().optional(),
792
929
  description: z.string().optional(),
793
930
  control: z.string().optional(),
794
- default: jsonElementSchema.optional(),
795
931
  hidden: z.boolean().optional(),
796
932
  icon: iconSchema.optional(),
797
933
  image: imageSchema.optional(),
798
934
  keywords: z.array(z.string()).optional(),
799
935
  summary: summaryProviderSchema.optional(),
800
936
  analyticsId: z.string().optional(),
801
- refreshStepOnChange: z.boolean().optional(),
802
937
  alert: alertLayoutSchema.optional(),
803
- help: helpSchema.optional(),
804
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
805
- autofillKey: z.string().optional(),
806
- validationMessages: z.record(z.string()).optional(),
807
- disabled: z.boolean().optional(),
808
938
  }),
809
939
  );
810
940
 
811
- export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
941
+ export const booleanSchemaSchema: z.ZodSchema<BooleanSchema> = z.lazy(() =>
812
942
  z.object({
813
- type: z.literal('string'),
943
+ type: z.literal('boolean'),
814
944
  autofillProvider: z.string().optional(),
815
945
  promoted: z.boolean().optional(),
816
946
  refreshFormOnChange: z.boolean().optional(),
817
947
  refreshUrl: z.string().optional(),
818
948
  refreshFormUrl: z.string().optional(),
819
- format: stringSchemaFormatSchema.optional(),
820
- displayFormat: z.string().optional(),
821
- placeholder: z.string().optional(),
822
- minLength: z.number().optional(),
823
- maxLength: z.number().optional(),
824
- minimum: z.string().optional(),
825
- maximum: z.string().optional(),
826
- pattern: z.string().optional(),
827
- autocapitalization: autocapitalizationTypeSchema.optional(),
828
- autocorrect: z.boolean().optional(),
829
949
  $id: z.string().optional(),
830
950
  title: z.string().optional(),
831
951
  description: z.string().optional(),
832
952
  control: z.string().optional(),
833
- default: z.string().optional(),
953
+ default: z.boolean().optional(),
834
954
  hidden: z.boolean().optional(),
835
955
  disabled: z.boolean().optional(),
836
956
  icon: iconSchema.optional(),
@@ -841,29 +961,22 @@ export const stringSchemaSchema: z.ZodSchema<StringSchema> = z.lazy(() =>
841
961
  persistAsync: persistAsyncSchema.optional(),
842
962
  refreshStepOnChange: z.boolean().optional(),
843
963
  validationAsync: validateAsyncSchema.optional(),
844
- validationMessages: z.record(z.string()).optional(),
845
964
  alert: alertLayoutSchema.optional(),
846
- cameraConfig: jsonElementSchema.optional(),
847
- accepts: z.array(z.string()).optional(),
848
- maxSize: z.number().optional(),
849
- source: uploadSourceSchema.optional(),
850
- autocompleteHint: z.array(autocompleteTokenSchema).optional(),
851
965
  autofillKey: z.string().optional(),
852
966
  help: helpSchema.optional(),
853
967
  }),
854
968
  );
855
969
 
856
- export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
970
+ export const objectSchemaSchema: z.ZodSchema<ObjectSchema> = z.lazy(() =>
857
971
  z.object({
858
- type: z.literal('array'),
972
+ type: z.literal('object'),
973
+ disabled: z.boolean().optional(),
859
974
  promoted: z.boolean().optional(),
975
+ help: helpSchema.optional(),
976
+ properties: z.record(schemaSchema),
977
+ displayOrder: z.array(z.string()),
978
+ required: z.array(z.string()).optional(),
860
979
  $id: z.string().optional(),
861
- items: schemaSchema,
862
- addItemTitle: z.string(),
863
- editItemTitle: z.string(),
864
- minItems: z.number().optional(),
865
- maxItems: z.number().optional(),
866
- placeholder: z.string().optional(),
867
980
  title: z.string().optional(),
868
981
  description: z.string().optional(),
869
982
  control: z.string().optional(),
@@ -871,98 +984,8 @@ export const arraySchemaListSchema: z.ZodSchema<ArraySchemaList> = z.lazy(() =>
871
984
  icon: iconSchema.optional(),
872
985
  image: imageSchema.optional(),
873
986
  keywords: z.array(z.string()).optional(),
874
- summary: summarySummariserSchema.optional(),
987
+ summary: summaryProviderSchema.optional(),
875
988
  analyticsId: z.string().optional(),
876
- persistAsync: persistAsyncSchema.optional(),
877
- validationAsync: validateAsyncSchema.optional(),
878
989
  alert: alertLayoutSchema.optional(),
879
- validationMessages: z.record(z.string()).optional(),
880
- disabled: z.boolean().optional(),
881
- }),
882
- );
883
-
884
- export const stepSchema: z.ZodSchema<Step> = z.lazy(() =>
885
- z.object({
886
- key: z.string().optional(),
887
- type: z.string().optional(),
888
- actions: z.array(actionSchema).optional(),
889
- refreshFormUrl: z.string().optional(),
890
- id: z.string(),
891
- title: z.string(),
892
- schemas: z.array(schemaSchema),
893
- layout: z.array(layoutSchema),
894
- description: z.string().optional(),
895
- model: jsonElementSchema.optional(),
896
- external: externalSchema.optional(),
897
- polling: pollingSchema.optional(),
898
- linkHandlers: z.array(linkHandlerSchema).optional(),
899
- analytics: z.record(z.string()).optional(),
900
- errors: stepErrorSchema.optional(),
901
- navigation: navigationSchema.optional(),
902
- refreshUrl: z.string().optional(),
903
- control: z.string().optional(),
904
- }),
905
- );
906
-
907
- export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
908
- z.union([
909
- alertLayoutSchema,
910
- boxLayoutSchema,
911
- buttonLayoutSchema,
912
- columnsLayoutSchema,
913
- decisionLayoutSchema,
914
- dividerLayoutSchema,
915
- formLayoutSchema,
916
- headingLayoutSchema,
917
- imageLayoutSchema,
918
- infoLayoutSchema,
919
- instructionsLayoutSchema,
920
- listLayoutSchema,
921
- loadingIndicatorLayoutSchema,
922
- markdownLayoutSchema,
923
- modalLayoutSchema,
924
- paragraphLayoutSchema,
925
- reviewLayoutSchema,
926
- searchLayoutSchema,
927
- statusListLayoutSchema,
928
- ]),
929
- );
930
-
931
- export const columnsLayoutSchema: z.ZodSchema<ColumnsLayout> = z.lazy(() =>
932
- z.object({
933
- type: z.literal('columns'),
934
- left: z.array(layoutSchema),
935
- right: z.array(layoutSchema),
936
- bias: columnsLayoutBiasSchema.optional(),
937
- control: z.string().optional(),
938
- margin: sizeSchema.optional(),
939
- }),
940
- );
941
-
942
- export const modalLayoutContentSchema: z.ZodSchema<ModalLayoutContent> = z.lazy(() =>
943
- z.object({
944
- title: z.string().optional(),
945
- components: z.array(layoutSchema),
946
- }),
947
- );
948
-
949
- export const boxLayoutSchema: z.ZodSchema<BoxLayout> = z.lazy(() =>
950
- z.object({
951
- type: z.literal('box'),
952
- components: z.array(layoutSchema),
953
- width: sizeSchema.optional(),
954
- border: z.boolean().optional(),
955
- control: z.string().optional(),
956
- margin: sizeSchema.optional(),
957
- }),
958
- );
959
-
960
- export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
961
- z.object({
962
- type: z.literal('modal'),
963
- control: z.string().optional(),
964
- margin: sizeSchema.optional(),
965
- trigger: modalLayoutTriggerSchema,
966
- content: modalLayoutContentSchema,
967
990
  }),
968
991
  );