@financial-times/content-tree 0.9.0 → 0.11.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.
package/SPEC.md CHANGED
@@ -804,7 +804,7 @@ interface LayoutImage extends Node {
804
804
  type TableColumnSettings = {
805
805
  hideOnMobile: boolean
806
806
  sortable: boolean
807
- sortType: 'text' | 'number' | 'date' | 'currency' | 'percent'
807
+ sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent'
808
808
  }
809
809
 
810
810
  type TableLayoutWidth = Extract<LayoutWidth,
@@ -814,6 +814,11 @@ type TableLayoutWidth = Extract<LayoutWidth,
814
814
  | 'inset-right'
815
815
  | 'full-bleed'>
816
816
 
817
+ type TableChildren =
818
+ | [TableCaption, TableBody, TableFooter?]
819
+ | [TableBody, TableFooter?]
820
+ | [TableCaption, TableHeader, TableBody, TableFooter?]
821
+ | [TableHeader, TableBody, TableFooter?]
817
822
 
818
823
  interface TableCaption extends Parent {
819
824
  type: 'table-caption'
@@ -828,6 +833,11 @@ interface TableCell extends Parent {
828
833
  children: Phrasing[]
829
834
  }
830
835
 
836
+ interface TableHeader extends Parent {
837
+ type: 'table-header'
838
+ children: TableRow[]
839
+ }
840
+
831
841
  interface TableRow extends Parent {
832
842
  type: 'table-row'
833
843
  children: TableCell[]
@@ -850,8 +860,8 @@ interface Table extends Parent {
850
860
  layoutWidth: TableLayoutWidth
851
861
  collapseAfterHowManyRows?: number
852
862
  responsiveStyle: 'overflow' | 'flat' | 'scroll'
853
- children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody]
854
863
  columnSettings: TableColumnSettings[]
864
+ children: TableChildren
855
865
  }
856
866
  ```
857
867
 
package/content-tree.d.ts CHANGED
@@ -305,9 +305,10 @@ export declare namespace ContentTree {
305
305
  type TableColumnSettings = {
306
306
  hideOnMobile: boolean;
307
307
  sortable: boolean;
308
- sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
308
+ sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
309
309
  };
310
310
  type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
311
+ type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
311
312
  interface TableCaption extends Parent {
312
313
  type: 'table-caption';
313
314
  children: Phrasing[];
@@ -319,6 +320,10 @@ export declare namespace ContentTree {
319
320
  rowSpan?: number;
320
321
  children: Phrasing[];
321
322
  }
323
+ interface TableHeader extends Parent {
324
+ type: 'table-header';
325
+ children: TableRow[];
326
+ }
322
327
  interface TableRow extends Parent {
323
328
  type: 'table-row';
324
329
  children: TableCell[];
@@ -338,8 +343,8 @@ export declare namespace ContentTree {
338
343
  layoutWidth: TableLayoutWidth;
339
344
  collapseAfterHowManyRows?: number;
340
345
  responsiveStyle: 'overflow' | 'flat' | 'scroll';
341
- children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
342
346
  columnSettings: TableColumnSettings[];
347
+ children: TableChildren;
343
348
  }
344
349
  type CustomCodeComponentAttributes = {
345
350
  [key: string]: string | boolean | undefined;
@@ -741,9 +746,10 @@ export declare namespace ContentTree {
741
746
  type TableColumnSettings = {
742
747
  hideOnMobile: boolean;
743
748
  sortable: boolean;
744
- sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
749
+ sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
745
750
  };
746
751
  type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
752
+ type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
747
753
  interface TableCaption extends Parent {
748
754
  type: 'table-caption';
749
755
  children: Phrasing[];
@@ -755,6 +761,10 @@ export declare namespace ContentTree {
755
761
  rowSpan?: number;
756
762
  children: Phrasing[];
757
763
  }
764
+ interface TableHeader extends Parent {
765
+ type: 'table-header';
766
+ children: TableRow[];
767
+ }
758
768
  interface TableRow extends Parent {
759
769
  type: 'table-row';
760
770
  children: TableCell[];
@@ -774,8 +784,8 @@ export declare namespace ContentTree {
774
784
  layoutWidth: TableLayoutWidth;
775
785
  collapseAfterHowManyRows?: number;
776
786
  responsiveStyle: 'overflow' | 'flat' | 'scroll';
777
- children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
778
787
  columnSettings: TableColumnSettings[];
788
+ children: TableChildren;
779
789
  }
780
790
  type CustomCodeComponentAttributes = {
781
791
  [key: string]: string | boolean | undefined;
@@ -1159,9 +1169,10 @@ export declare namespace ContentTree {
1159
1169
  type TableColumnSettings = {
1160
1170
  hideOnMobile: boolean;
1161
1171
  sortable: boolean;
1162
- sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
1172
+ sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
1163
1173
  };
1164
1174
  type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
1175
+ type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
1165
1176
  interface TableCaption extends Parent {
1166
1177
  type: 'table-caption';
1167
1178
  children: Phrasing[];
@@ -1173,6 +1184,10 @@ export declare namespace ContentTree {
1173
1184
  rowSpan?: number;
1174
1185
  children: Phrasing[];
1175
1186
  }
1187
+ interface TableHeader extends Parent {
1188
+ type: 'table-header';
1189
+ children: TableRow[];
1190
+ }
1176
1191
  interface TableRow extends Parent {
1177
1192
  type: 'table-row';
1178
1193
  children: TableCell[];
@@ -1192,8 +1207,8 @@ export declare namespace ContentTree {
1192
1207
  layoutWidth: TableLayoutWidth;
1193
1208
  collapseAfterHowManyRows?: number;
1194
1209
  responsiveStyle: 'overflow' | 'flat' | 'scroll';
1195
- children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
1196
1210
  columnSettings: TableColumnSettings[];
1211
+ children: TableChildren;
1197
1212
  }
1198
1213
  type CustomCodeComponentAttributes = {
1199
1214
  [key: string]: string | boolean | undefined;
@@ -1588,9 +1603,10 @@ export declare namespace ContentTree {
1588
1603
  type TableColumnSettings = {
1589
1604
  hideOnMobile: boolean;
1590
1605
  sortable: boolean;
1591
- sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
1606
+ sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
1592
1607
  };
1593
1608
  type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
1609
+ type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
1594
1610
  interface TableCaption extends Parent {
1595
1611
  type: 'table-caption';
1596
1612
  children: Phrasing[];
@@ -1602,6 +1618,10 @@ export declare namespace ContentTree {
1602
1618
  rowSpan?: number;
1603
1619
  children: Phrasing[];
1604
1620
  }
1621
+ interface TableHeader extends Parent {
1622
+ type: 'table-header';
1623
+ children: TableRow[];
1624
+ }
1605
1625
  interface TableRow extends Parent {
1606
1626
  type: 'table-row';
1607
1627
  children: TableCell[];
@@ -1621,8 +1641,8 @@ export declare namespace ContentTree {
1621
1641
  layoutWidth: TableLayoutWidth;
1622
1642
  collapseAfterHowManyRows?: number;
1623
1643
  responsiveStyle: 'overflow' | 'flat' | 'scroll';
1624
- children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
1625
1644
  columnSettings: TableColumnSettings[];
1645
+ children: TableChildren;
1626
1646
  }
1627
1647
  type CustomCodeComponentAttributes = {
1628
1648
  [key: string]: string | boolean | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@financial-times/content-tree",
3
3
  "description": "content tree format",
4
- "version": "0.9.0",
4
+ "version": "0.11.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -1242,60 +1242,7 @@
1242
1242
  "additionalProperties": false,
1243
1243
  "properties": {
1244
1244
  "children": {
1245
- "anyOf": [
1246
- {
1247
- "items": [
1248
- {
1249
- "$ref": "#/definitions/ContentTree.transit.TableCaption"
1250
- },
1251
- {
1252
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1253
- },
1254
- {
1255
- "$ref": "#/definitions/ContentTree.transit.TableFooter"
1256
- }
1257
- ],
1258
- "maxItems": 3,
1259
- "minItems": 3,
1260
- "type": "array"
1261
- },
1262
- {
1263
- "items": [
1264
- {
1265
- "$ref": "#/definitions/ContentTree.transit.TableCaption"
1266
- },
1267
- {
1268
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1269
- }
1270
- ],
1271
- "maxItems": 2,
1272
- "minItems": 2,
1273
- "type": "array"
1274
- },
1275
- {
1276
- "items": [
1277
- {
1278
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1279
- },
1280
- {
1281
- "$ref": "#/definitions/ContentTree.transit.TableFooter"
1282
- }
1283
- ],
1284
- "maxItems": 2,
1285
- "minItems": 2,
1286
- "type": "array"
1287
- },
1288
- {
1289
- "items": [
1290
- {
1291
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1292
- }
1293
- ],
1294
- "maxItems": 1,
1295
- "minItems": 1,
1296
- "type": "array"
1297
- }
1298
- ]
1245
+ "$ref": "#/definitions/ContentTree.transit.TableChildren"
1299
1246
  },
1300
1247
  "collapseAfterHowManyRows": {
1301
1248
  "type": "number"
@@ -1323,7 +1270,6 @@
1323
1270
  },
1324
1271
  "required": [
1325
1272
  "hideOnMobile",
1326
- "sortType",
1327
1273
  "sortable"
1328
1274
  ],
1329
1275
  "type": "object"
@@ -1436,6 +1382,74 @@
1436
1382
  ],
1437
1383
  "type": "object"
1438
1384
  },
1385
+ "ContentTree.transit.TableChildren": {
1386
+ "anyOf": [
1387
+ {
1388
+ "items": [
1389
+ {
1390
+ "$ref": "#/definitions/ContentTree.transit.TableCaption"
1391
+ },
1392
+ {
1393
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1394
+ },
1395
+ {
1396
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1397
+ }
1398
+ ],
1399
+ "maxItems": 3,
1400
+ "minItems": 2,
1401
+ "type": "array"
1402
+ },
1403
+ {
1404
+ "items": [
1405
+ {
1406
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1407
+ },
1408
+ {
1409
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1410
+ }
1411
+ ],
1412
+ "maxItems": 2,
1413
+ "minItems": 1,
1414
+ "type": "array"
1415
+ },
1416
+ {
1417
+ "items": [
1418
+ {
1419
+ "$ref": "#/definitions/ContentTree.transit.TableCaption"
1420
+ },
1421
+ {
1422
+ "$ref": "#/definitions/ContentTree.transit.TableHeader"
1423
+ },
1424
+ {
1425
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1426
+ },
1427
+ {
1428
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1429
+ }
1430
+ ],
1431
+ "maxItems": 4,
1432
+ "minItems": 3,
1433
+ "type": "array"
1434
+ },
1435
+ {
1436
+ "items": [
1437
+ {
1438
+ "$ref": "#/definitions/ContentTree.transit.TableHeader"
1439
+ },
1440
+ {
1441
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1442
+ },
1443
+ {
1444
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1445
+ }
1446
+ ],
1447
+ "maxItems": 3,
1448
+ "minItems": 2,
1449
+ "type": "array"
1450
+ }
1451
+ ]
1452
+ },
1439
1453
  "ContentTree.transit.TableFooter": {
1440
1454
  "additionalProperties": false,
1441
1455
  "properties": {
@@ -1457,6 +1471,27 @@
1457
1471
  ],
1458
1472
  "type": "object"
1459
1473
  },
1474
+ "ContentTree.transit.TableHeader": {
1475
+ "additionalProperties": false,
1476
+ "properties": {
1477
+ "children": {
1478
+ "items": {
1479
+ "$ref": "#/definitions/ContentTree.transit.TableRow"
1480
+ },
1481
+ "type": "array"
1482
+ },
1483
+ "data": {},
1484
+ "type": {
1485
+ "const": "table-header",
1486
+ "type": "string"
1487
+ }
1488
+ },
1489
+ "required": [
1490
+ "children",
1491
+ "type"
1492
+ ],
1493
+ "type": "object"
1494
+ },
1460
1495
  "ContentTree.transit.TableLayoutWidth": {
1461
1496
  "enum": [
1462
1497
  "auto",
@@ -2062,60 +2062,7 @@
2062
2062
  "additionalProperties": false,
2063
2063
  "properties": {
2064
2064
  "children": {
2065
- "anyOf": [
2066
- {
2067
- "items": [
2068
- {
2069
- "$ref": "#/definitions/ContentTree.full.TableCaption"
2070
- },
2071
- {
2072
- "$ref": "#/definitions/ContentTree.full.TableBody"
2073
- },
2074
- {
2075
- "$ref": "#/definitions/ContentTree.full.TableFooter"
2076
- }
2077
- ],
2078
- "maxItems": 3,
2079
- "minItems": 3,
2080
- "type": "array"
2081
- },
2082
- {
2083
- "items": [
2084
- {
2085
- "$ref": "#/definitions/ContentTree.full.TableCaption"
2086
- },
2087
- {
2088
- "$ref": "#/definitions/ContentTree.full.TableBody"
2089
- }
2090
- ],
2091
- "maxItems": 2,
2092
- "minItems": 2,
2093
- "type": "array"
2094
- },
2095
- {
2096
- "items": [
2097
- {
2098
- "$ref": "#/definitions/ContentTree.full.TableBody"
2099
- },
2100
- {
2101
- "$ref": "#/definitions/ContentTree.full.TableFooter"
2102
- }
2103
- ],
2104
- "maxItems": 2,
2105
- "minItems": 2,
2106
- "type": "array"
2107
- },
2108
- {
2109
- "items": [
2110
- {
2111
- "$ref": "#/definitions/ContentTree.full.TableBody"
2112
- }
2113
- ],
2114
- "maxItems": 1,
2115
- "minItems": 1,
2116
- "type": "array"
2117
- }
2118
- ]
2065
+ "$ref": "#/definitions/ContentTree.full.TableChildren"
2119
2066
  },
2120
2067
  "collapseAfterHowManyRows": {
2121
2068
  "type": "number"
@@ -2143,7 +2090,6 @@
2143
2090
  },
2144
2091
  "required": [
2145
2092
  "hideOnMobile",
2146
- "sortType",
2147
2093
  "sortable"
2148
2094
  ],
2149
2095
  "type": "object"
@@ -2256,6 +2202,74 @@
2256
2202
  ],
2257
2203
  "type": "object"
2258
2204
  },
2205
+ "ContentTree.full.TableChildren": {
2206
+ "anyOf": [
2207
+ {
2208
+ "items": [
2209
+ {
2210
+ "$ref": "#/definitions/ContentTree.full.TableCaption"
2211
+ },
2212
+ {
2213
+ "$ref": "#/definitions/ContentTree.full.TableBody"
2214
+ },
2215
+ {
2216
+ "$ref": "#/definitions/ContentTree.full.TableFooter"
2217
+ }
2218
+ ],
2219
+ "maxItems": 3,
2220
+ "minItems": 2,
2221
+ "type": "array"
2222
+ },
2223
+ {
2224
+ "items": [
2225
+ {
2226
+ "$ref": "#/definitions/ContentTree.full.TableBody"
2227
+ },
2228
+ {
2229
+ "$ref": "#/definitions/ContentTree.full.TableFooter"
2230
+ }
2231
+ ],
2232
+ "maxItems": 2,
2233
+ "minItems": 1,
2234
+ "type": "array"
2235
+ },
2236
+ {
2237
+ "items": [
2238
+ {
2239
+ "$ref": "#/definitions/ContentTree.full.TableCaption"
2240
+ },
2241
+ {
2242
+ "$ref": "#/definitions/ContentTree.full.TableHeader"
2243
+ },
2244
+ {
2245
+ "$ref": "#/definitions/ContentTree.full.TableBody"
2246
+ },
2247
+ {
2248
+ "$ref": "#/definitions/ContentTree.full.TableFooter"
2249
+ }
2250
+ ],
2251
+ "maxItems": 4,
2252
+ "minItems": 3,
2253
+ "type": "array"
2254
+ },
2255
+ {
2256
+ "items": [
2257
+ {
2258
+ "$ref": "#/definitions/ContentTree.full.TableHeader"
2259
+ },
2260
+ {
2261
+ "$ref": "#/definitions/ContentTree.full.TableBody"
2262
+ },
2263
+ {
2264
+ "$ref": "#/definitions/ContentTree.full.TableFooter"
2265
+ }
2266
+ ],
2267
+ "maxItems": 3,
2268
+ "minItems": 2,
2269
+ "type": "array"
2270
+ }
2271
+ ]
2272
+ },
2259
2273
  "ContentTree.full.TableFooter": {
2260
2274
  "additionalProperties": false,
2261
2275
  "properties": {
@@ -2277,6 +2291,27 @@
2277
2291
  ],
2278
2292
  "type": "object"
2279
2293
  },
2294
+ "ContentTree.full.TableHeader": {
2295
+ "additionalProperties": false,
2296
+ "properties": {
2297
+ "children": {
2298
+ "items": {
2299
+ "$ref": "#/definitions/ContentTree.full.TableRow"
2300
+ },
2301
+ "type": "array"
2302
+ },
2303
+ "data": {},
2304
+ "type": {
2305
+ "const": "table-header",
2306
+ "type": "string"
2307
+ }
2308
+ },
2309
+ "required": [
2310
+ "children",
2311
+ "type"
2312
+ ],
2313
+ "type": "object"
2314
+ },
2280
2315
  "ContentTree.full.TableLayoutWidth": {
2281
2316
  "enum": [
2282
2317
  "auto",
@@ -1267,60 +1267,7 @@
1267
1267
  "additionalProperties": false,
1268
1268
  "properties": {
1269
1269
  "children": {
1270
- "anyOf": [
1271
- {
1272
- "items": [
1273
- {
1274
- "$ref": "#/definitions/ContentTree.transit.TableCaption"
1275
- },
1276
- {
1277
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1278
- },
1279
- {
1280
- "$ref": "#/definitions/ContentTree.transit.TableFooter"
1281
- }
1282
- ],
1283
- "maxItems": 3,
1284
- "minItems": 3,
1285
- "type": "array"
1286
- },
1287
- {
1288
- "items": [
1289
- {
1290
- "$ref": "#/definitions/ContentTree.transit.TableCaption"
1291
- },
1292
- {
1293
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1294
- }
1295
- ],
1296
- "maxItems": 2,
1297
- "minItems": 2,
1298
- "type": "array"
1299
- },
1300
- {
1301
- "items": [
1302
- {
1303
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1304
- },
1305
- {
1306
- "$ref": "#/definitions/ContentTree.transit.TableFooter"
1307
- }
1308
- ],
1309
- "maxItems": 2,
1310
- "minItems": 2,
1311
- "type": "array"
1312
- },
1313
- {
1314
- "items": [
1315
- {
1316
- "$ref": "#/definitions/ContentTree.transit.TableBody"
1317
- }
1318
- ],
1319
- "maxItems": 1,
1320
- "minItems": 1,
1321
- "type": "array"
1322
- }
1323
- ]
1270
+ "$ref": "#/definitions/ContentTree.transit.TableChildren"
1324
1271
  },
1325
1272
  "collapseAfterHowManyRows": {
1326
1273
  "type": "number"
@@ -1348,7 +1295,6 @@
1348
1295
  },
1349
1296
  "required": [
1350
1297
  "hideOnMobile",
1351
- "sortType",
1352
1298
  "sortable"
1353
1299
  ],
1354
1300
  "type": "object"
@@ -1461,6 +1407,74 @@
1461
1407
  ],
1462
1408
  "type": "object"
1463
1409
  },
1410
+ "ContentTree.transit.TableChildren": {
1411
+ "anyOf": [
1412
+ {
1413
+ "items": [
1414
+ {
1415
+ "$ref": "#/definitions/ContentTree.transit.TableCaption"
1416
+ },
1417
+ {
1418
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1419
+ },
1420
+ {
1421
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1422
+ }
1423
+ ],
1424
+ "maxItems": 3,
1425
+ "minItems": 2,
1426
+ "type": "array"
1427
+ },
1428
+ {
1429
+ "items": [
1430
+ {
1431
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1432
+ },
1433
+ {
1434
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1435
+ }
1436
+ ],
1437
+ "maxItems": 2,
1438
+ "minItems": 1,
1439
+ "type": "array"
1440
+ },
1441
+ {
1442
+ "items": [
1443
+ {
1444
+ "$ref": "#/definitions/ContentTree.transit.TableCaption"
1445
+ },
1446
+ {
1447
+ "$ref": "#/definitions/ContentTree.transit.TableHeader"
1448
+ },
1449
+ {
1450
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1451
+ },
1452
+ {
1453
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1454
+ }
1455
+ ],
1456
+ "maxItems": 4,
1457
+ "minItems": 3,
1458
+ "type": "array"
1459
+ },
1460
+ {
1461
+ "items": [
1462
+ {
1463
+ "$ref": "#/definitions/ContentTree.transit.TableHeader"
1464
+ },
1465
+ {
1466
+ "$ref": "#/definitions/ContentTree.transit.TableBody"
1467
+ },
1468
+ {
1469
+ "$ref": "#/definitions/ContentTree.transit.TableFooter"
1470
+ }
1471
+ ],
1472
+ "maxItems": 3,
1473
+ "minItems": 2,
1474
+ "type": "array"
1475
+ }
1476
+ ]
1477
+ },
1464
1478
  "ContentTree.transit.TableFooter": {
1465
1479
  "additionalProperties": false,
1466
1480
  "properties": {
@@ -1482,6 +1496,27 @@
1482
1496
  ],
1483
1497
  "type": "object"
1484
1498
  },
1499
+ "ContentTree.transit.TableHeader": {
1500
+ "additionalProperties": false,
1501
+ "properties": {
1502
+ "children": {
1503
+ "items": {
1504
+ "$ref": "#/definitions/ContentTree.transit.TableRow"
1505
+ },
1506
+ "type": "array"
1507
+ },
1508
+ "data": {},
1509
+ "type": {
1510
+ "const": "table-header",
1511
+ "type": "string"
1512
+ }
1513
+ },
1514
+ "required": [
1515
+ "children",
1516
+ "type"
1517
+ ],
1518
+ "type": "object"
1519
+ },
1485
1520
  "ContentTree.transit.TableLayoutWidth": {
1486
1521
  "enum": [
1487
1522
  "auto",