/
table.ts
39 lines (32 loc) · 848 Bytes
/
table.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import type {
Attribs,
AttribVal,
MultiStringAttrib,
NumericAttrib,
} from "./api.js";
import { defElement, defElements } from "./def.js";
export const [table, tbody, tfoot, thead, tr, caption] = defElements([
"table",
"tbody",
"tfoot",
"thead",
"tr",
"caption",
]);
export interface TableCellAttribs extends Attribs {
colspan: NumericAttrib;
headers: MultiStringAttrib;
rowspan: NumericAttrib;
}
export const td = defElement<Partial<TableCellAttribs>>("td");
export interface TableCellHeaderAttribs extends TableCellAttribs {
scope: AttribVal<"auto" | "col" | "colgroup" | "row" | "rowgroup">;
}
export const th = defElement<Partial<TableCellHeaderAttribs>>("th");
export interface ColAttribs extends Attribs {
span: NumericAttrib;
}
export const [col, colgroup] = defElements<Partial<ColAttribs>>([
"col",
"colgroup",
]);