Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -679,7 +679,7 @@ interface LayoutImage extends Node {
type TableColumnSettings = {
hideOnMobile: boolean
sortable: boolean
sortType: 'text' | 'number' | 'date' | 'currency' | 'percent'
sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent'
}

type TableLayoutWidth = Extract<LayoutWidth,
Expand All @@ -689,6 +689,11 @@ type TableLayoutWidth = Extract<LayoutWidth,
| 'inset-right'
| 'full-bleed'>

type TableChildren =
| [TableCaption, TableBody, TableFooter?]
| [TableBody, TableFooter?]
| [TableCaption, TableHeader, TableBody, TableFooter?]
| [TableHeader, TableBody, TableFooter?]

interface TableCaption extends Parent {
type: 'table-caption'
Expand All @@ -703,6 +708,11 @@ interface TableCell extends Parent {
children: Phrasing[]
}

interface TableHeader extends Parent {
type: 'table-header'
children: TableRow[]
}

interface TableRow extends Parent {
type: 'table-row'
children: TableCell[]
Expand All @@ -725,8 +735,8 @@ interface Table extends Parent {
layoutWidth: TableLayoutWidth
collapseAfterHowManyRows?: number
responsiveStyle: 'overflow' | 'flat' | 'scroll'
children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody]
columnSettings: TableColumnSettings[]
children: TableChildren
}
```

Expand Down
36 changes: 28 additions & 8 deletions content-tree.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,9 +223,10 @@ export declare namespace ContentTree {
type TableColumnSettings = {
hideOnMobile: boolean;
sortable: boolean;
sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
};
type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
interface TableCaption extends Parent {
type: 'table-caption';
children: Phrasing[];
Expand All @@ -237,6 +238,10 @@ export declare namespace ContentTree {
rowSpan?: number;
children: Phrasing[];
}
interface TableHeader extends Parent {
type: 'table-header';
children: TableRow[];
}
interface TableRow extends Parent {
type: 'table-row';
children: TableCell[];
Expand All @@ -256,8 +261,8 @@ export declare namespace ContentTree {
layoutWidth: TableLayoutWidth;
collapseAfterHowManyRows?: number;
responsiveStyle: 'overflow' | 'flat' | 'scroll';
children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
columnSettings: TableColumnSettings[];
children: TableChildren;
}
type CustomCodeComponentAttributes = {
[key: string]: string | boolean | undefined;
Expand Down Expand Up @@ -503,9 +508,10 @@ export declare namespace ContentTree {
type TableColumnSettings = {
hideOnMobile: boolean;
sortable: boolean;
sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
};
type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
interface TableCaption extends Parent {
type: 'table-caption';
children: Phrasing[];
Expand All @@ -517,6 +523,10 @@ export declare namespace ContentTree {
rowSpan?: number;
children: Phrasing[];
}
interface TableHeader extends Parent {
type: 'table-header';
children: TableRow[];
}
interface TableRow extends Parent {
type: 'table-row';
children: TableCell[];
Expand All @@ -536,8 +546,8 @@ export declare namespace ContentTree {
layoutWidth: TableLayoutWidth;
collapseAfterHowManyRows?: number;
responsiveStyle: 'overflow' | 'flat' | 'scroll';
children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
columnSettings: TableColumnSettings[];
children: TableChildren;
}
type CustomCodeComponentAttributes = {
[key: string]: string | boolean | undefined;
Expand Down Expand Up @@ -777,9 +787,10 @@ export declare namespace ContentTree {
type TableColumnSettings = {
hideOnMobile: boolean;
sortable: boolean;
sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
};
type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
interface TableCaption extends Parent {
type: 'table-caption';
children: Phrasing[];
Expand All @@ -791,6 +802,10 @@ export declare namespace ContentTree {
rowSpan?: number;
children: Phrasing[];
}
interface TableHeader extends Parent {
type: 'table-header';
children: TableRow[];
}
interface TableRow extends Parent {
type: 'table-row';
children: TableCell[];
Expand All @@ -810,8 +825,8 @@ export declare namespace ContentTree {
layoutWidth: TableLayoutWidth;
collapseAfterHowManyRows?: number;
responsiveStyle: 'overflow' | 'flat' | 'scroll';
children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
columnSettings: TableColumnSettings[];
children: TableChildren;
}
type CustomCodeComponentAttributes = {
[key: string]: string | boolean | undefined;
Expand Down Expand Up @@ -1050,9 +1065,10 @@ export declare namespace ContentTree {
type TableColumnSettings = {
hideOnMobile: boolean;
sortable: boolean;
sortType: 'text' | 'number' | 'date' | 'currency' | 'percent';
sortType?: 'text' | 'number' | 'date' | 'currency' | 'percent';
};
type TableLayoutWidth = Extract<LayoutWidth, 'auto' | 'full-grid' | 'inset-left' | 'inset-right' | 'full-bleed'>;
type TableChildren = [TableCaption, TableBody, TableFooter?] | [TableBody, TableFooter?] | [TableCaption, TableHeader, TableBody, TableFooter?] | [TableHeader, TableBody, TableFooter?];
interface TableCaption extends Parent {
type: 'table-caption';
children: Phrasing[];
Expand All @@ -1064,6 +1080,10 @@ export declare namespace ContentTree {
rowSpan?: number;
children: Phrasing[];
}
interface TableHeader extends Parent {
type: 'table-header';
children: TableRow[];
}
interface TableRow extends Parent {
type: 'table-row';
children: TableCell[];
Expand All @@ -1083,8 +1103,8 @@ export declare namespace ContentTree {
layoutWidth: TableLayoutWidth;
collapseAfterHowManyRows?: number;
responsiveStyle: 'overflow' | 'flat' | 'scroll';
children: [TableCaption, TableBody, TableFooter] | [TableCaption, TableBody] | [TableBody, TableFooter] | [TableBody];
columnSettings: TableColumnSettings[];
children: TableChildren;
}
type CustomCodeComponentAttributes = {
[key: string]: string | boolean | undefined;
Expand Down
145 changes: 90 additions & 55 deletions schemas/body-tree.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -811,60 +811,7 @@
"additionalProperties": false,
"properties": {
"children": {
"anyOf": [
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableCaption"
},
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
},
{
"$ref": "#/definitions/ContentTree.transit.TableFooter"
}
],
"maxItems": 3,
"minItems": 3,
"type": "array"
},
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableCaption"
},
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
}
],
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
},
{
"$ref": "#/definitions/ContentTree.transit.TableFooter"
}
],
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
}
],
"maxItems": 1,
"minItems": 1,
"type": "array"
}
]
"$ref": "#/definitions/ContentTree.transit.TableChildren"
},
"collapseAfterHowManyRows": {
"type": "number"
Expand Down Expand Up @@ -892,7 +839,6 @@
},
"required": [
"hideOnMobile",
"sortType",
"sortable"
],
"type": "object"
Expand Down Expand Up @@ -1005,6 +951,74 @@
],
"type": "object"
},
"ContentTree.transit.TableChildren": {
"anyOf": [
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableCaption"
},
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
},
{
"$ref": "#/definitions/ContentTree.transit.TableFooter"
}
],
"maxItems": 3,
"minItems": 2,
"type": "array"
},
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
},
{
"$ref": "#/definitions/ContentTree.transit.TableFooter"
}
],
"maxItems": 2,
"minItems": 1,
"type": "array"
},
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableCaption"
},
{
"$ref": "#/definitions/ContentTree.transit.TableHeader"
},
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
},
{
"$ref": "#/definitions/ContentTree.transit.TableFooter"
}
],
"maxItems": 4,
"minItems": 3,
"type": "array"
},
{
"items": [
{
"$ref": "#/definitions/ContentTree.transit.TableHeader"
},
{
"$ref": "#/definitions/ContentTree.transit.TableBody"
},
{
"$ref": "#/definitions/ContentTree.transit.TableFooter"
}
],
"maxItems": 3,
"minItems": 2,
"type": "array"
}
]
},
"ContentTree.transit.TableFooter": {
"additionalProperties": false,
"properties": {
Expand All @@ -1026,6 +1040,27 @@
],
"type": "object"
},
"ContentTree.transit.TableHeader": {
"additionalProperties": false,
"properties": {
"children": {
"items": {
"$ref": "#/definitions/ContentTree.transit.TableRow"
},
"type": "array"
},
"data": {},
"type": {
"const": "table-header",
"type": "string"
}
},
"required": [
"children",
"type"
],
"type": "object"
},
"ContentTree.transit.TableLayoutWidth": {
"enum": [
"auto",
Expand Down
Loading
Loading