@json-layout/vocabulary 0.14.0 → 0.16.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 (46) hide show
  1. package/package.json +5 -5
  2. package/src/components/compile-types.js +61 -0
  3. package/src/components/index.js +226 -0
  4. package/src/components/types.ts +378 -0
  5. package/src/index.js +3 -0
  6. package/src/layout-keyword/index.js +9 -2
  7. package/src/layout-keyword/schema.js +67 -62
  8. package/src/layout-keyword/schema.json +35 -50
  9. package/src/layout-keyword/types.ts +111 -42
  10. package/src/normalize.js +95 -54
  11. package/src/normalized-layout/index.js +18 -64
  12. package/src/normalized-layout/schema.js +235 -762
  13. package/src/normalized-layout/schema.json +118 -324
  14. package/src/normalized-layout/types.ts +163 -233
  15. package/src/types.ts +11 -0
  16. package/src/validate.js +42 -0
  17. package/types/components/compile-types.d.ts +13 -0
  18. package/types/components/compile-types.d.ts.map +1 -0
  19. package/types/components/index.d.ts +52 -0
  20. package/types/components/index.d.ts.map +1 -0
  21. package/types/components/types.d.ts +329 -0
  22. package/types/components/types.d.ts.map +1 -0
  23. package/types/index.d.ts +2 -0
  24. package/types/index.d.ts.map +1 -1
  25. package/types/layout-keyword/index.d.ts +6 -1
  26. package/types/layout-keyword/index.d.ts.map +1 -1
  27. package/types/layout-keyword/schema.d.ts +43 -26
  28. package/types/layout-keyword/types.d.ts +111 -18
  29. package/types/layout-keyword/types.d.ts.map +1 -1
  30. package/types/normalize.d.ts +3 -2
  31. package/types/normalize.d.ts.map +1 -1
  32. package/types/normalized-layout/index.d.ts +19 -65
  33. package/types/normalized-layout/index.d.ts.map +1 -1
  34. package/types/normalized-layout/schema.d.ts +171 -526
  35. package/types/normalized-layout/types.d.ts +163 -208
  36. package/types/normalized-layout/types.d.ts.map +1 -1
  37. package/types/types.d.ts +10 -0
  38. package/types/types.d.ts.map +1 -1
  39. package/types/validate.d.ts +8 -0
  40. package/types/validate.d.ts.map +1 -0
  41. package/src/layout-keyword/validate.js +0 -2
  42. package/src/normalized-layout/validate.js +0 -3
  43. package/types/layout-keyword/validate.d.ts +0 -23
  44. package/types/layout-keyword/validate.d.ts.map +0 -1
  45. package/types/normalized-layout/validate.d.ts +0 -23
  46. package/types/normalized-layout/validate.d.ts.map +0 -1
@@ -2,814 +2,302 @@
2
2
  // raw schema
3
3
  export default {
4
4
  "$id": "https://json-layout.github.io/normalized-layout-keyword",
5
- "title": "normalized layout",
6
- "oneOf": [
7
- {
8
- "$ref": "#/$defs/switch-struct"
9
- },
10
- {
11
- "$ref": "#/$defs/comp-object"
12
- }
13
- ],
14
- "$defs": {
15
- "switch-struct": {
16
- "type": "object",
17
- "required": [
18
- "switch"
19
- ],
20
- "additionalProperties": false,
21
- "properties": {
22
- "switch": {
23
- "type": "array",
24
- "items": {
25
- "$ref": "#/$defs/comp-object"
26
- }
27
- }
28
- }
29
- },
30
- "comp-object": {
31
- "type": "object",
32
- "required": [
33
- "comp"
34
- ],
35
- "unevaluatedProperties": false,
36
- "allOf": [
37
- {
38
- "properties": {
39
- "if": {
40
- "$ref": "#/$defs/expression"
41
- },
42
- "options": {
43
- "$ref": "#/$defs/state-node-options-base"
44
- },
45
- "getOptions": {
46
- "$ref": "#/$defs/expression"
47
- },
48
- "defaultData": {},
49
- "getDefaultData": {
50
- "$ref": "#/$defs/expression"
51
- },
52
- "constData": {},
53
- "getConstData": {
54
- "$ref": "#/$defs/expression"
55
- },
56
- "transformData": {
57
- "$ref": "#/$defs/expression"
58
- },
59
- "nullable": {
60
- "type": "boolean"
61
- },
62
- "help": {
63
- "type": "string"
64
- },
65
- "cols": {
66
- "$ref": "#/$defs/cols-obj"
67
- },
68
- "props": {
69
- "$ref": "#/$defs/state-node-props-lib"
70
- },
71
- "getProps": {
72
- "$ref": "#/$defs/expression"
73
- },
74
- "slots": {
75
- "type": "object",
76
- "allOf": [
77
- {
78
- "$ref": "#/$defs/state-node-slots-lib"
79
- },
80
- {
81
- "properties": {
82
- "before": {
83
- "$ref": "#/$defs/slot"
84
- },
85
- "after": {
86
- "$ref": "#/$defs/slot"
87
- },
88
- "component": {
89
- "$ref": "#/$defs/slot"
90
- }
91
- }
92
- }
93
- ]
94
- }
95
- }
96
- },
97
- {
98
- "discriminator": {
99
- "propertyName": "comp"
100
- },
101
- "oneOf": [
102
- {
103
- "$ref": "#/$defs/none"
104
- },
105
- {
106
- "$ref": "#/$defs/list"
107
- },
108
- {
109
- "$ref": "#/$defs/text-field"
110
- },
111
- {
112
- "$ref": "#/$defs/number-field"
113
- },
114
- {
115
- "$ref": "#/$defs/textarea"
116
- },
117
- {
118
- "$ref": "#/$defs/markdown"
119
- },
120
- {
121
- "$ref": "#/$defs/checkbox"
122
- },
123
- {
124
- "$ref": "#/$defs/switch"
125
- },
126
- {
127
- "$ref": "#/$defs/slider"
128
- },
129
- {
130
- "$ref": "#/$defs/date-picker"
131
- },
132
- {
133
- "$ref": "#/$defs/date-time-picker"
134
- },
135
- {
136
- "$ref": "#/$defs/time-picker"
137
- },
138
- {
139
- "$ref": "#/$defs/color-picker"
140
- },
141
- {
142
- "$ref": "#/$defs/combobox"
143
- },
144
- {
145
- "$ref": "#/$defs/number-combobox"
146
- },
147
- {
148
- "$ref": "#/$defs/select"
149
- },
150
- {
151
- "$ref": "#/$defs/autocomplete"
152
- },
153
- {
154
- "$ref": "#/$defs/one-of-select"
155
- },
156
- {
157
- "$ref": "#/$defs/section"
158
- },
159
- {
160
- "$ref": "#/$defs/tabs"
161
- },
162
- {
163
- "$ref": "#/$defs/vertical-tabs"
164
- },
165
- {
166
- "$ref": "#/$defs/expansion-panels"
167
- },
168
- {
169
- "$ref": "#/$defs/stepper"
170
- },
171
- {
172
- "$ref": "#/$defs/file-input"
173
- }
174
- ]
175
- }
176
- ]
177
- },
178
- "composite-comp-object": {
179
- "type": "object",
180
- "discriminator": {
181
- "propertyName": "comp"
182
- },
183
- "oneOf": [
184
- {
185
- "$ref": "#/$defs/section"
186
- },
187
- {
188
- "$ref": "#/$defs/tabs"
189
- },
190
- {
191
- "$ref": "#/$defs/vertical-tabs"
192
- },
193
- {
194
- "$ref": "#/$defs/expansion-panels"
195
- }
196
- ]
197
- },
198
- "none": {
199
- "type": "object",
200
- "required": [
201
- "comp"
202
- ],
203
- "properties": {
204
- "comp": {
205
- "const": "none"
206
- }
207
- }
208
- },
209
- "section": {
210
- "type": "object",
211
- "required": [
212
- "comp",
213
- "children"
214
- ],
215
- "properties": {
216
- "comp": {
217
- "const": "section"
218
- },
219
- "title": {
220
- "type": [
221
- "string",
222
- "null"
223
- ]
224
- },
225
- "subtitle": {
226
- "type": [
227
- "string",
228
- "null"
229
- ]
230
- },
231
- "children": {
232
- "$ref": "#/$defs/children"
233
- }
234
- }
235
- },
236
- "tabs": {
237
- "type": "object",
238
- "required": [
239
- "comp",
240
- "children"
241
- ],
242
- "properties": {
243
- "comp": {
244
- "const": "tabs"
245
- },
246
- "title": {
247
- "type": [
248
- "string",
249
- "null"
250
- ]
251
- },
252
- "subtitle": {
253
- "type": [
254
- "string",
255
- "null"
256
- ]
257
- },
258
- "children": {
259
- "$ref": "#/$defs/children"
260
- }
261
- }
262
- },
263
- "vertical-tabs": {
264
- "type": "object",
265
- "required": [
266
- "comp",
267
- "children"
268
- ],
269
- "properties": {
270
- "comp": {
271
- "const": "vertical-tabs"
272
- },
273
- "title": {
274
- "type": [
275
- "string",
276
- "null"
277
- ]
278
- },
279
- "subtitle": {
280
- "type": [
281
- "string",
282
- "null"
283
- ]
284
- },
285
- "children": {
286
- "$ref": "#/$defs/children"
287
- }
288
- }
289
- },
290
- "expansion-panels": {
291
- "type": "object",
292
- "required": [
293
- "comp",
294
- "children"
295
- ],
296
- "properties": {
297
- "comp": {
298
- "const": "expansion-panels"
299
- },
300
- "title": {
301
- "type": [
302
- "string",
303
- "null"
304
- ]
305
- },
306
- "subtitle": {
307
- "type": [
308
- "string",
309
- "null"
310
- ]
311
- },
312
- "children": {
313
- "$ref": "#/$defs/children"
314
- }
315
- }
316
- },
317
- "stepper": {
318
- "type": "object",
319
- "required": [
320
- "comp",
321
- "children"
322
- ],
323
- "properties": {
324
- "comp": {
325
- "const": "stepper"
326
- },
327
- "title": {
328
- "type": [
329
- "string",
330
- "null"
331
- ]
332
- },
333
- "subtitle": {
334
- "type": [
335
- "string",
336
- "null"
337
- ]
338
- },
339
- "children": {
340
- "$ref": "#/$defs/children"
341
- }
342
- }
343
- },
344
- "child": {
345
- "type": "object",
346
- "unevaluatedProperties": false,
347
- "required": [
348
- "key"
349
- ],
350
- "properties": {
351
- "key": {
352
- "type": [
353
- "string",
354
- "integer"
355
- ]
356
- },
357
- "cols": {
358
- "$ref": "#/$defs/cols-obj"
359
- }
360
- },
361
- "anyOf": [
362
- {},
363
- {
364
- "$ref": "#/$defs/composite-comp-object"
365
- }
366
- ]
367
- },
368
- "children": {
369
- "type": "array",
370
- "items": {
371
- "$ref": "#/$defs/child"
372
- }
373
- },
374
- "list": {
375
- "type": "object",
376
- "required": [
377
- "comp",
378
- "listEditMode",
379
- "listActions"
380
- ],
381
- "properties": {
382
- "comp": {
383
- "const": "list"
384
- },
385
- "title": {
386
- "type": "string"
387
- },
388
- "listEditMode": {
389
- "type": "string",
390
- "enum": [
391
- "inline",
392
- "inline-single",
393
- "menu",
394
- "dialog"
395
- ]
396
- },
397
- "listActions": {
398
- "type": "array",
399
- "items": {
400
- "type": "string",
401
- "enum": [
402
- "add",
403
- "edit",
404
- "delete",
405
- "sort",
406
- "duplicate"
407
- ]
408
- }
409
- },
410
- "itemTitle": {
411
- "$ref": "#/$defs/expression"
412
- },
413
- "itemSubtitle": {
414
- "$ref": "#/$defs/expression"
415
- },
416
- "messages": {
417
- "type": "object",
418
- "additionalProperties": false,
419
- "properties": {
420
- "addItem": {
421
- "type": "string"
422
- },
423
- "delete": {
424
- "type": "string"
425
- },
426
- "edit": {
427
- "type": "string"
428
- },
429
- "duplicate": {
430
- "type": "string"
431
- },
432
- "sort": {
433
- "type": "string"
434
- }
435
- }
436
- }
437
- }
438
- },
439
- "text-field": {
440
- "type": "object",
441
- "required": [
442
- "comp",
443
- "label"
444
- ],
445
- "properties": {
446
- "comp": {
447
- "const": "text-field"
448
- },
449
- "label": {
450
- "type": "string"
451
- },
452
- "autofocus": {
453
- "type": "boolean"
454
- }
455
- }
456
- },
457
- "number-field": {
458
- "type": "object",
459
- "required": [
460
- "comp",
461
- "label"
462
- ],
463
- "properties": {
464
- "comp": {
465
- "const": "number-field"
466
- },
467
- "label": {
468
- "type": "string"
469
- },
470
- "autofocus": {
471
- "type": "boolean"
472
- },
473
- "step": {
474
- "type": "number"
475
- },
476
- "min": {
477
- "type": "number"
478
- },
479
- "max": {
480
- "type": "number"
481
- }
482
- }
483
- },
484
- "textarea": {
485
- "type": "object",
486
- "required": [
487
- "comp",
488
- "label"
489
- ],
490
- "properties": {
491
- "comp": {
492
- "const": "textarea"
493
- },
494
- "label": {
495
- "type": "string"
496
- },
497
- "autofocus": {
498
- "type": "boolean"
499
- }
500
- }
501
- },
502
- "markdown": {
503
- "type": "object",
504
- "required": [
505
- "comp",
506
- "label"
507
- ],
508
- "properties": {
509
- "comp": {
510
- "const": "markdown"
511
- },
512
- "label": {
513
- "type": "string"
514
- },
515
- "autofocus": {
516
- "type": "boolean"
517
- }
518
- }
519
- },
520
- "checkbox": {
521
- "type": "object",
522
- "required": [
523
- "comp",
524
- "label"
525
- ],
526
- "properties": {
527
- "comp": {
528
- "const": "checkbox"
529
- },
530
- "label": {
531
- "type": "string"
532
- }
533
- }
534
- },
535
- "switch": {
536
- "type": "object",
537
- "required": [
538
- "comp",
539
- "label"
540
- ],
541
- "properties": {
542
- "comp": {
543
- "const": "switch"
544
- },
545
- "label": {
546
- "type": "string"
547
- }
548
- }
549
- },
550
- "slider": {
551
- "type": "object",
552
- "required": [
553
- "comp",
554
- "label",
555
- "min",
556
- "max"
557
- ],
558
- "properties": {
559
- "comp": {
560
- "const": "slider"
561
- },
562
- "label": {
563
- "type": "string"
564
- },
565
- "step": {
566
- "type": "number"
567
- },
568
- "min": {
569
- "type": "number"
5
+ "$defs": {
6
+ "normalized-layout": {
7
+ "title": "normalized layout",
8
+ "type": "object",
9
+ "unevaluatedProperties": false,
10
+ "oneOf": [
11
+ {
12
+ "$ref": "#/$defs/switch-struct"
570
13
  },
571
- "max": {
572
- "type": "number"
14
+ {
15
+ "$ref": "#/$defs/base-comp-object"
573
16
  }
574
- }
17
+ ]
575
18
  },
576
- "date-picker": {
19
+ "switch-struct": {
577
20
  "type": "object",
578
21
  "required": [
579
- "comp",
580
- "label"
22
+ "switch"
581
23
  ],
24
+ "additionalProperties": false,
582
25
  "properties": {
583
- "comp": {
584
- "const": "date-picker"
585
- },
586
- "label": {
587
- "type": "string"
588
- },
589
- "min": {
590
- "type": "string",
591
- "format": "date"
592
- },
593
- "max": {
594
- "type": "string",
595
- "format": "date"
596
- },
597
- "format": {
598
- "type": "string",
599
- "enum": [
600
- "date",
601
- "date-time"
602
- ],
603
- "default": "date"
26
+ "switch": {
27
+ "type": "array",
28
+ "items": {
29
+ "$ref": "#/$defs/base-comp-object"
30
+ }
604
31
  }
605
32
  }
606
33
  },
607
- "date-time-picker": {
34
+ "base-comp-object": {
608
35
  "type": "object",
609
36
  "required": [
610
- "comp",
611
- "label"
37
+ "comp"
612
38
  ],
613
39
  "properties": {
614
40
  "comp": {
615
- "const": "date-time-picker"
616
- },
617
- "label": {
618
41
  "type": "string"
619
42
  },
620
- "min": {
621
- "type": "string",
622
- "format": "date-time"
623
- },
624
- "max": {
625
- "type": "string",
626
- "format": "date-time"
627
- }
628
- }
629
- },
630
- "time-picker": {
631
- "type": "object",
632
- "required": [
633
- "comp",
634
- "label"
635
- ],
636
- "properties": {
637
- "comp": {
638
- "const": "time-picker"
43
+ "if": {
44
+ "$ref": "#/$defs/expression"
639
45
  },
640
- "label": {
641
- "type": "string"
46
+ "options": {
47
+ "$ref": "#/$defs/state-node-options-base"
642
48
  },
643
- "min": {
644
- "type": "string",
645
- "format": "time"
49
+ "getOptions": {
50
+ "$ref": "#/$defs/expression"
646
51
  },
647
- "max": {
648
- "type": "string",
649
- "format": "time"
650
- }
651
- }
652
- },
653
- "color-picker": {
654
- "type": "object",
655
- "required": [
656
- "comp",
657
- "label"
658
- ],
659
- "properties": {
660
- "comp": {
661
- "const": "color-picker"
52
+ "defaultData": {},
53
+ "getDefaultData": {
54
+ "$ref": "#/$defs/expression"
662
55
  },
663
- "label": {
664
- "type": "string"
665
- }
666
- }
667
- },
668
- "combobox": {
669
- "type": "object",
670
- "required": [
671
- "comp",
672
- "label"
673
- ],
674
- "properties": {
675
- "comp": {
676
- "const": "combobox"
56
+ "constData": {},
57
+ "getConstData": {
58
+ "$ref": "#/$defs/expression"
677
59
  },
678
- "label": {
679
- "type": "string"
60
+ "transformData": {
61
+ "$ref": "#/$defs/expression"
680
62
  },
681
- "autofocus": {
63
+ "nullable": {
682
64
  "type": "boolean"
683
65
  },
684
- "items": {
685
- "$ref": "#/$defs/select-items"
66
+ "help": {
67
+ "type": "string"
686
68
  },
687
- "getItems": {
688
- "$ref": "#/$defs/get-items"
69
+ "cols": {
70
+ "$ref": "#/$defs/cols-obj"
689
71
  },
690
- "multiple": {
691
- "type": "boolean"
72
+ "props": {
73
+ "$ref": "#/$defs/state-node-props-lib"
692
74
  },
693
- "separator": {
694
- "type": "string"
75
+ "getProps": {
76
+ "$ref": "#/$defs/expression"
77
+ },
78
+ "slots": {
79
+ "type": "object",
80
+ "allOf": [
81
+ {
82
+ "$ref": "#/$defs/state-node-slots-lib"
83
+ },
84
+ {
85
+ "properties": {
86
+ "before": {
87
+ "$ref": "#/$defs/slot"
88
+ },
89
+ "after": {
90
+ "$ref": "#/$defs/slot"
91
+ },
92
+ "component": {
93
+ "$ref": "#/$defs/slot"
94
+ }
95
+ }
96
+ }
97
+ ]
695
98
  }
696
99
  }
697
100
  },
698
- "number-combobox": {
699
- "type": "object",
700
- "required": [
701
- "comp",
702
- "label"
703
- ],
704
- "properties": {
705
- "comp": {
706
- "const": "number-combobox"
707
- },
708
- "label": {
709
- "type": "string"
710
- },
711
- "autofocus": {
712
- "type": "boolean"
713
- },
714
- "items": {
715
- "$ref": "#/$defs/select-items"
101
+ "composite-comp-object": {
102
+ "allOf": [
103
+ {
104
+ "$ref": "#/$defs/base-comp-object"
716
105
  },
717
- "getItems": {
718
- "$ref": "#/$defs/get-items"
106
+ {
107
+ "type": "object",
108
+ "required": [
109
+ "children",
110
+ "comp"
111
+ ],
112
+ "properties": {
113
+ "comp": {
114
+ "type": "string"
115
+ },
116
+ "title": {
117
+ "type": [
118
+ "string",
119
+ "null"
120
+ ]
121
+ },
122
+ "subtitle": {
123
+ "type": [
124
+ "string",
125
+ "null"
126
+ ]
127
+ },
128
+ "children": {
129
+ "$ref": "#/$defs/children"
130
+ }
131
+ }
132
+ }
133
+ ]
134
+ },
135
+ "simple-comp-object": {
136
+ "allOf": [
137
+ {
138
+ "$ref": "#/$defs/base-comp-object"
719
139
  },
720
- "multiple": {
721
- "type": "boolean"
140
+ {
141
+ "type": "object",
142
+ "required": [
143
+ "comp"
144
+ ],
145
+ "properties": {
146
+ "comp": {
147
+ "type": "string"
148
+ },
149
+ "label": {
150
+ "type": "string"
151
+ }
152
+ }
153
+ }
154
+ ]
155
+ },
156
+ "focusable-comp-object": {
157
+ "allOf": [
158
+ {
159
+ "$ref": "#/$defs/base-comp-object"
722
160
  },
723
- "step": {
724
- "type": "number"
161
+ {
162
+ "type": "object",
163
+ "required": [
164
+ "comp"
165
+ ],
166
+ "properties": {
167
+ "comp": {
168
+ "type": "string"
169
+ },
170
+ "label": {
171
+ "type": "string"
172
+ },
173
+ "autofocus": {
174
+ "type": "boolean"
175
+ }
176
+ }
177
+ }
178
+ ]
179
+ },
180
+ "items-based-comp-object": {
181
+ "allOf": [
182
+ {
183
+ "$ref": "#/$defs/base-comp-object"
725
184
  },
726
- "min": {
727
- "type": "number"
185
+ {
186
+ "type": "object",
187
+ "required": [
188
+ "comp"
189
+ ],
190
+ "properties": {
191
+ "comp": {
192
+ "type": "string"
193
+ },
194
+ "items": {
195
+ "$ref": "#/$defs/select-items"
196
+ },
197
+ "getItems": {
198
+ "$ref": "#/$defs/get-items"
199
+ },
200
+ "multiple": {
201
+ "type": "boolean"
202
+ },
203
+ "separator": {
204
+ "type": "string"
205
+ }
206
+ }
207
+ }
208
+ ]
209
+ },
210
+ "multiple-compat-comp-object": {
211
+ "allOf": [
212
+ {
213
+ "$ref": "#/$defs/base-comp-object"
728
214
  },
729
- "max": {
730
- "type": "number"
215
+ {
216
+ "type": "object",
217
+ "required": [
218
+ "comp"
219
+ ],
220
+ "properties": {
221
+ "comp": {
222
+ "type": "string"
223
+ },
224
+ "multiple": {
225
+ "type": "boolean"
226
+ }
227
+ }
731
228
  }
732
- }
229
+ ]
733
230
  },
734
- "select": {
231
+ "child-ref": {
735
232
  "type": "object",
736
233
  "required": [
737
- "comp",
738
- "label"
234
+ "key"
739
235
  ],
236
+ "additionalProperties": false,
740
237
  "properties": {
741
- "comp": {
742
- "const": "select"
743
- },
744
- "label": {
745
- "type": "string"
746
- },
747
- "autofocus": {
748
- "type": "boolean"
749
- },
750
- "items": {
751
- "$ref": "#/$defs/select-items"
752
- },
753
- "getItems": {
754
- "$ref": "#/$defs/get-items"
755
- },
756
- "multiple": {
757
- "type": "boolean"
238
+ "key": {
239
+ "type": [
240
+ "string",
241
+ "integer"
242
+ ]
758
243
  },
759
- "separator": {
760
- "type": "string"
244
+ "cols": {
245
+ "$ref": "#/$defs/cols-obj"
761
246
  }
762
247
  }
763
248
  },
764
- "autocomplete": {
249
+ "child-composite": {
765
250
  "type": "object",
766
251
  "required": [
767
- "comp",
768
- "label"
252
+ "key",
253
+ "children"
769
254
  ],
770
255
  "properties": {
771
- "comp": {
772
- "const": "autocomplete"
773
- },
774
- "label": {
775
- "type": "string"
256
+ "key": {
257
+ "type": [
258
+ "string",
259
+ "integer"
260
+ ]
776
261
  },
777
- "autofocus": {
778
- "type": "boolean"
262
+ "cols": {
263
+ "$ref": "#/$defs/cols-obj"
779
264
  },
780
- "items": {
781
- "$ref": "#/$defs/select-items"
265
+ "comp": {
266
+ "type": "string"
782
267
  },
783
- "getItems": {
784
- "$ref": "#/$defs/get-items"
268
+ "title": {
269
+ "type": [
270
+ "string",
271
+ "null"
272
+ ]
785
273
  },
786
- "multiple": {
787
- "type": "boolean"
274
+ "subtitle": {
275
+ "type": [
276
+ "string",
277
+ "null"
278
+ ]
788
279
  },
789
- "separator": {
790
- "type": "string"
280
+ "children": {
281
+ "$ref": "#/$defs/children"
791
282
  }
792
283
  }
793
284
  },
794
- "file-input": {
285
+ "child": {
286
+ "title": "Child",
795
287
  "type": "object",
796
- "required": [
797
- "comp",
798
- "label"
799
- ],
800
- "properties": {
801
- "comp": {
802
- "const": "file-input"
803
- },
804
- "label": {
805
- "type": "string"
806
- },
807
- "accept": {
808
- "type": "string"
288
+ "oneOf": [
289
+ {
290
+ "$ref": "#/$defs/child-ref"
809
291
  },
810
- "multiple": {
811
- "type": "boolean"
292
+ {
293
+ "$ref": "#/$defs/child-composite"
812
294
  }
295
+ ]
296
+ },
297
+ "children": {
298
+ "type": "array",
299
+ "items": {
300
+ "$ref": "#/$defs/child"
813
301
  }
814
302
  },
815
303
  "select-items": {
@@ -898,21 +386,6 @@ export default {
898
386
  }
899
387
  }
900
388
  },
901
- "one-of-select": {
902
- "type": "object",
903
- "required": [
904
- "comp",
905
- "label"
906
- ],
907
- "properties": {
908
- "comp": {
909
- "const": "one-of-select"
910
- },
911
- "label": {
912
- "type": "string"
913
- }
914
- }
915
- },
916
389
  "expression": {
917
390
  "type": "object",
918
391
  "required": [