@pptx-studio/model 0.2.1 → 0.4.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/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @pptx-studio/model
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7d2c88e: A table cell's fill, borders and text now come from its style the way PowerPoint draws them.
8
+ `tablePartsAt` names the parts that reach a grid position, and `TABLE_PART_ORDER` is the order they
9
+ compose in. `tableCellFill`, `tableBackground` and `tableEdgeLine` resolve one property each and
10
+ name where it came from: a part, `tblBg`, `a:tcPr`, `a:tblPr` or the default grid. Merged cells and
11
+ the owner of every edge segment follow what PowerPoint drew. `tableTextLayer` gives the style's
12
+ bold, italic, faces and colour as run properties for the text cascade. `DEFAULT_GRID_LINE` is the 1-pt black line a table with no
13
+ built-in style draws. `TextContext.cell` puts a cell's list style and its style's text layer into
14
+ the text cascade, and `Origin` gains `cell` and `tableStyle`. A position or edge a table does not
15
+ have throws the new `MODEL_TABLE_POSITION`.
16
+
17
+ validate adds `V034`, a warning on a table cell that writes a border PowerPoint draws from the cell
18
+ across the edge instead, where that cell writes none or a different one.
19
+
20
+ ## 0.3.0
21
+
22
+ ### Minor Changes
23
+
24
+ - ae2e566: A table's style is the one PowerPoint draws. `BUILTIN_TABLE_STYLES` is PowerPoint's own Table
25
+ Styles gallery: 74 styles, each with its GUID, its name and the `a:tblStyle` PowerPoint writes for
26
+ it. `tableStyleOf(table)` returns the built-in a table's GUID names, in any case, or `null` for
27
+ PowerPoint's default 1-pt black grid; nothing in `ppt/tableStyles.xml` changes which. `builtinTableStyle`
28
+ and `parseTableStyle` read a `CT_TableStyle` into its thirteen parts. An inline `TableStyleRef` now
29
+ carries its `id`, a style GUID without braces or with padding throws `MODEL_TABLE_ATTR`, and
30
+ `MODEL_ERROR_CODES` lists every code, including the new `MODEL_TABLE_STYLE`.
31
+
32
+ validate adds `V032`, a warning on a table that names no built-in style, and `V033`, refusing the
33
+ table-style forms PowerPoint repairs.
34
+
3
35
  ## 0.2.1
4
36
 
5
37
  ### Patch Changes
package/NOTICE CHANGED
@@ -27,14 +27,24 @@ Entries are added here at the moment the material lands, not at release time.
27
27
  presetShapeDefinitions.xml, 538970 bytes
28
28
  sha256 4a762444d8d85876881c02a5b1dedf6f73006fcd8acb7b4e393435615b37c780
29
29
 
30
+ * Microsoft PowerPoint output
31
+ Written by Microsoft PowerPoint, driven by this project's own scripts.
32
+
33
+ @pptx-studio/model contains PowerPoint's 74 built-in table styles: each is
34
+ the a:tblStyle element PowerPoint writes into ppt/tableStyles.xml, byte for
35
+ byte, enumerated through PowerPoint's Table Styles gallery and saved by
36
+ PowerPoint (LEGAL.md, ADR 0063). corpus/ground-truth/table-styles.json holds
37
+ the same 74.
38
+
39
+ The decks in corpus/authored are PowerPoint Blank Presentations, so each
40
+ carries the Microsoft-generated ppt/theme/theme1.xml and default layouts
41
+ PowerPoint writes into a new deck (ADR 0009).
42
+
30
43
  --------------------------------------------------------------------------------
31
44
  Attributions the plan commits us to, listed so the obligation is visible before
32
45
  the code arrives
33
46
  --------------------------------------------------------------------------------
34
47
 
35
- * Pattern fill tiles (sub-phase 2.7) are generated from Mono libgdiplus.
36
- libgdiplus - Copyright Novell, Inc. and contributors - MIT
37
-
38
48
  * Metric-compatible substitute fonts ship in a separate package,
39
49
  @pptx-studio/fonts-metric-compat, under SIL OFL 1.1 with its own
40
50
  OFL.txt and reserved-font-name handling. They are deliberately kept out
package/README.md CHANGED
@@ -171,15 +171,59 @@ built to disagree with themselves:
171
171
  a column is never narrower than its cells' side margins plus 2 pt; and the frame's `a:ext` says
172
172
  nothing about the drawn size, which is the grid's sums (76/76 against 62/76).
173
173
 
174
- Cell text is a `TextBody` like any other. The table style a `tableStyleId` names is 4.2; the
175
- thirteen-part cascade is 4.3; drawing the grid is 4.4.
174
+ Cell text is a `TextBody` like any other.
175
+
176
+ ## A table draws the built-in its GUID names, or none
177
+
178
+ `BUILTIN_TABLE_STYLES` is PowerPoint's own Table Styles gallery: the 74 styles, in gallery order,
179
+ each with its GUID, its name and the `a:tblStyle` PowerPoint writes for it, byte for byte. They were
180
+ enumerated by driving the gallery itself and read back as PowerPoint serialised them (C8,
181
+ `corpus/ground-truth/table-styles.json`); nothing was transcribed from another implementation.
182
+
183
+ `tableStyleOf(table)` is the style PowerPoint draws a table with, and C8 found one rule for it
184
+ across 84 packages in three themes:
185
+
186
+ - The `a:tableStyleId` - or an inline `a:tableStyle`'s `@styleId` - names one of the 74, in any
187
+ case, and that built-in is drawn (230/230 across every style in two themes).
188
+ - Nothing in `ppt/tableStyles.xml` changes the drawing: a redefined built-in draws PowerPoint's own
189
+ (7/7), a custom style defined there draws nothing of itself, and `@def` is never applied.
190
+ - Any other id, or none, returns `null`: PowerPoint draws a 1-pt black grid with no fill, whatever
191
+ the theme (3/3 against the theme's `dk1` and `tx1`).
192
+
193
+ `builtinTableStyle(id)` parses one of the 74 afresh; `parseTableStyle` reads any `CT_TableStyle`,
194
+ defaulting nothing the file did not say. A GUID without braces or with padding, an edge with neither
195
+ `a:ln` nor `a:lnRef`, and an empty `a:fill` throw: PowerPoint repairs each.
196
+
197
+ ## The thirteen parts compose in schema order, property by property
198
+
199
+ Which part of a style reaches a cell, and which wins, was measured in C9 on 10,480 slides of every
200
+ built-in in three themes (`corpus/ground-truth/table-cascade*.json`), against what PowerPoint's
201
+ object model reported for each cell and what it drew at 4 px a point:
202
+
203
+ - `tablePartsAt(props, rows, cols, row, col)` is ECMA-376's reading: the end rows and columns where
204
+ their flags are on, bands counted past a first row or column, a corner where both of its ends
205
+ apply. `TABLE_PART_ORDER` is the schema's order, `wholeTbl` lowest and `nwCell` highest, and it
206
+ is the order they compose in for fills, text and edges alike.
207
+ - Every property is found on its own: the highest part that states a fill, a colour, bold or
208
+ italic wins it, whatever that part leaves unsaid.
209
+ - `tableCellFill`: the cell's own `a:tcPr` fill, else the style's. `tableBackground`: `a:tblPr`'s
210
+ fill in place of the style's `tblBg`, painted under the cells.
211
+ - `tableEdgeLine`: an edge's owner writes the line it draws, replacing the style's whole; a line no
212
+ owner writes is the highest part's claim on that edge. The cell above or left owns a segment where
213
+ its anchor is level with it, in the anchor's column or row; else the cell below or right, where
214
+ its anchor is; else the cell above or left. An unmerged cell is always level. A table that
215
+ resolves to no style draws `DEFAULT_GRID_LINE`, 1 pt black.
216
+ - A merged cell takes its anchor's parts and every covered position's end and corner parts; its
217
+ bands are the anchor's. A covered cell's `a:tcPr` is never read.
218
+ - `tableTextLayer` is what the style gives a cell's text, and the text cascade reads it between the
219
+ cell's own list style and the master's `p:otherStyle`; `p:defaultTextStyle` is never read, and
220
+ under a master with no `p:txStyles` a cell takes the built-in `other` style whatever its frame.
221
+ - A position or edge the table does not have throws `MODEL_TABLE_POSITION`.
176
222
 
177
223
  ## What is not here
178
224
 
179
225
  - Nothing is painted. The renderers are 2.10.
180
- - The ten-source **text** cascade is 3.1. `Origin` already declares the five members only that
181
- cascade can produce, so 3.1 adds cases rather than widening a type every consumer has switched on.
182
- - Table styles, their cascade and their drawing are 4.2 to 4.4; SmartArt is 4.5.
226
+ - Table drawing and editing are 4.4; SmartArt is 4.5.
183
227
  - Commands, undo and history are Phase 5; Change Layout is 7.4. What PowerPoint rewrites when a
184
228
  layout changes is recorded in the fixture and not acted on.
185
229
  - `a:effectDag` is not modelled — a directed graph of effect primitives PowerPoint has never been
@@ -190,6 +234,9 @@ thirteen-part cascade is 4.3; drawing the grid is 4.4.
190
234
 
191
235
  `corpus/ground-truth/sheets.json` — 114 probes in 37 packages, sub-phase 2.9.
192
236
  `corpus/ground-truth/tables.json` — 82 tables, one package each, and 21 slides PowerPoint authored, sub-phase 4.1.
237
+ `corpus/ground-truth/table-styles.json` — the 74 built-in table styles and 84 probe packages, sub-phase 4.2.
238
+ `corpus/ground-truth/table-cascade.json` and its five `table-cascade-*.json` siblings — 250 packages of
239
+ tables in three themes, every cell and edge PowerPoint reported and drew, sub-phase 4.3.
193
240
 
194
241
  The measurement is a **position**, and PowerPoint reports it directly. C3 and C4 sampled bitmaps
195
242
  because a fill and a stroke are pictures; an inheritance is not. A placeholder with no `a:xfrm` of
@@ -205,4 +252,6 @@ against a summary of them, so a rule that drifts fails on the measurements.
205
252
 
206
253
  See `docs/adr/phase-0-foundation/0007-ground-truth.md`, `docs/adr/phase-2-geometry-and-paint/0021-colour.md`, `docs/adr/phase-2-geometry-and-paint/0022-fills.md`,
207
254
  `docs/adr/phase-2-geometry-and-paint/0023-lines.md`, `docs/adr/phase-2-geometry-and-paint/0024-model-parse-and-resolve.md`
208
- and `docs/adr/phase-4-tables-and-smartart/0056-the-spans-are-the-merge.md`.
255
+ `docs/adr/phase-4-tables-and-smartart/0056-the-spans-are-the-merge.md`,
256
+ `docs/adr/phase-4-tables-and-smartart/0063-a-table-draws-the-built-in-its-guid-names.md` and
257
+ `docs/adr/phase-4-tables-and-smartart/0064-the-parts-compose-in-schema-order.md`.
package/dist/index.d.ts CHANGED
@@ -69,7 +69,11 @@ type ModelErrorCode =
69
69
  /** A paragraph level that is not an integer. */
70
70
  'MODEL_TEXT_LEVEL' | 'MODEL_TEXT_TYPEFACE' |
71
71
  /** A table attribute missing where the schema requires it, or not of the type it names. */
72
- 'MODEL_TABLE_ATTR' | 'BLIP_NO_EMBED' | 'BLIP_DUOTONE' | 'BLIP_CLR_CHANGE' | 'BLIP_TILE_ALIGN' | 'BLIP_TILE_FLIP';
72
+ 'MODEL_TABLE_ATTR' |
73
+ /** A table-style edge with neither `a:ln` nor `a:lnRef`, or an `a:fill` holding no fill. */
74
+ 'MODEL_TABLE_STYLE' |
75
+ /** A grid position or grid edge asked of a table that has no such position or edge. */
76
+ 'MODEL_TABLE_POSITION' | 'BLIP_NO_EMBED' | 'BLIP_DUOTONE' | 'BLIP_CLR_CHANGE' | 'BLIP_TILE_ALIGN' | 'BLIP_TILE_FLIP';
73
77
  export declare class ModelError extends Error {
74
78
  readonly name = "ModelError";
75
79
  readonly code: ModelErrorCode;
@@ -80,7 +84,7 @@ export declare class ModelError extends Error {
80
84
  constructor(code: ModelErrorCode, message: string, partName?: string | null, detail?: string | null);
81
85
  }
82
86
  export declare function isModelError(value: unknown): value is ModelError;
83
- export declare const MODEL_ERROR_CODES: readonly ModelErrorCode[];
87
+ export declare const MODEL_ERROR_CODES: readonly ["MODEL_PART_MISSING", "MODEL_PART_KIND", "MODEL_NO_PRESENTATION", "MODEL_NO_PARENT", "MODEL_NO_THEME", "MODEL_CLRMAP_INCOMPLETE", "MODEL_CLRMAP_SLOT", "MODEL_PLACEHOLDER_IDX", "MODEL_XFRM_NUMBER", "MODEL_GEOMETRY", "MODEL_STYLE_IDX", "MODEL_FONT_COLLECTION", "MODEL_NO_STYLE_MATRIX", "MODEL_STYLE_LIST_EMPTY", "MODEL_SHEET_CYCLE", "MODEL_FOREIGN_SHEET", "MODEL_TEXT_ATTR", "MODEL_TEXT_FIELD", "MODEL_TEXT_LEVEL", "MODEL_TEXT_BULLET", "MODEL_TEXT_TYPEFACE", "MODEL_TABLE_ATTR", "MODEL_TABLE_STYLE", "MODEL_TABLE_POSITION", "BLIP_NO_EMBED", "BLIP_DUOTONE", "BLIP_CLR_CHANGE", "BLIP_TILE_ALIGN", "BLIP_TILE_FLIP"];
84
88
  //#endregion
85
89
  //#region src/parse/geometry.d.ts
86
90
  /**
@@ -471,12 +475,13 @@ interface TableProps {
471
475
  readonly style: TableStyleRef | undefined;
472
476
  readonly node: XElement;
473
477
  }
474
- /** `a:tableStyleId`, a GUID resolved in 4.2, or an inline `a:tableStyle`, parsed in 4.3. */
478
+ /** `a:tableStyleId`, or an inline `a:tableStyle`, which PowerPoint resolves by its `@styleId` alone. */
475
479
  type TableStyleRef = {
476
480
  readonly kind: 'id';
477
481
  readonly id: string;
478
482
  } | {
479
483
  readonly kind: 'inline';
484
+ readonly id: string;
480
485
  readonly node: XElement;
481
486
  };
482
487
  /** `a:gridCol`. */
@@ -560,6 +565,73 @@ interface TableGrid {
560
565
  * column, a claimed position is covered whatever it says, a span stops at the edge or a claim.
561
566
  */
562
567
  export declare function tableGrid(table: Table): TableGrid;
568
+ /** `ST_OnOffStyleType`. */
569
+ type OnOffStyle = 'on' | 'off' | 'def';
570
+ /** A value written out, or a reference into the theme: the `EG_Themeable*` choices. */
571
+ type Themeable<T, Ref = StyleRef> = {
572
+ readonly kind: 'value';
573
+ readonly value: T;
574
+ } | {
575
+ readonly kind: 'ref';
576
+ readonly ref: Ref;
577
+ };
578
+ /** `a:tcTxStyle`. */
579
+ interface TableStyleText {
580
+ readonly b: OnOffStyle | undefined;
581
+ readonly i: OnOffStyle | undefined;
582
+ readonly font: Themeable<FontCollection, FontRef> | undefined;
583
+ readonly color: Color | undefined;
584
+ }
585
+ /** `a:tcBdr`; `tl2br` and `tr2bl` take the names `TableCellBorders` gives the diagonals. */
586
+ interface TableStyleBorders {
587
+ readonly left: Themeable<Line> | undefined;
588
+ readonly right: Themeable<Line> | undefined;
589
+ readonly top: Themeable<Line> | undefined;
590
+ readonly bottom: Themeable<Line> | undefined;
591
+ readonly insideH: Themeable<Line> | undefined;
592
+ readonly insideV: Themeable<Line> | undefined;
593
+ readonly tlToBr: Themeable<Line> | undefined;
594
+ readonly blToTr: Themeable<Line> | undefined;
595
+ }
596
+ /** `a:tcStyle`. */
597
+ interface TableStyleCell {
598
+ readonly borders: TableStyleBorders | undefined;
599
+ readonly fill: Themeable<Fill> | undefined;
600
+ /** `a:cell3D`, kept as written. */
601
+ readonly cell3D: XElement | undefined;
602
+ }
603
+ /** One of a style's thirteen parts. */
604
+ interface TableStylePart {
605
+ readonly text: TableStyleText | undefined;
606
+ readonly cell: TableStyleCell | undefined;
607
+ }
608
+ /** `a:tblBg`. An `a:effect` holding an `a:effectDag` reads as `undefined`, as `parseEffects` does. */
609
+ interface TableBackground {
610
+ readonly fill: Themeable<Fill> | undefined;
611
+ readonly effect: Themeable<readonly Effect[] | undefined> | undefined;
612
+ }
613
+ /** The thirteen parts in schema order, which is the order they compose in, lowest first (C9). */
614
+ type TableStylePartName = 'wholeTbl' | 'band1H' | 'band2H' | 'band1V' | 'band2V' | 'lastCol' | 'firstCol' | 'lastRow' | 'seCell' | 'swCell' | 'firstRow' | 'neCell' | 'nwCell';
615
+ /** `CT_TableStyle`: an `a:tblStyle`, or an inline `a:tableStyle`. Nothing absent is defaulted. */
616
+ interface TableStyle {
617
+ readonly id: string;
618
+ readonly name: string;
619
+ readonly background: TableBackground | undefined;
620
+ readonly parts: Readonly<Partial<Record<TableStylePartName, TableStylePart>>>;
621
+ readonly node: XElement;
622
+ }
623
+ /** A grid edge: `h` is the top of row `row` at column `col` (`row = rows` is the bottom); `v` the left of column `col`. */
624
+ interface TableEdge {
625
+ readonly axis: 'h' | 'v';
626
+ readonly row: number;
627
+ readonly col: number;
628
+ }
629
+ /** Where a table's format came from: a style part, `tblBg`, a cell's `a:tcPr`, `a:tblPr`, or the default grid. */
630
+ type TableSource = TableStylePartName | 'tblBg' | 'tcPr' | 'tblPr' | 'grid';
631
+ interface TableSourced<T> {
632
+ readonly value: T;
633
+ readonly source: TableSource;
634
+ }
563
635
  //#endregion
564
636
  //#region src/types.d.ts
565
637
  /** `a:off` and `a:ext` together, in EMU, plus the three transform attributes. */
@@ -805,24 +877,19 @@ interface Sheet {
805
877
  readonly theme: Theme | null;
806
878
  readonly node: XElement;
807
879
  }
808
- /**
809
- * Where a resolved value came from.
810
- *
811
- * 2.9 declared this union in advance, guessing at the members the text cascade
812
- * would need. 3.1 measured them, and the guess was wrong in one place:
813
- * `themeObjDefaults` is gone, because `a:objectDefaults/a:spDef/a:lstStyle` is
814
- * not a source. A package declaring a size there and nowhere else resolves to
815
- * the built-in default, so the member named a level that never fires - see
816
- * `corpus/ground-truth/text-cascade.json`.
817
- */
880
+ /** Where a resolved value came from: each member is a level the text cascade reads (ADR 0027, 0064). */
818
881
  type Origin =
819
882
  /** The run's own `a:rPr`. */
820
883
  'run' |
821
884
  /** The paragraph's `a:pPr`, or its `a:defRPr`. */
822
885
  'paragraph' |
823
886
  /** The shape itself: its `p:spPr`, or its own `a:lstStyle`. */
824
- 'shape' | 'layoutPh' | 'masterPh' |
825
- /** The master's `p:txStyles`, in the bucket the chain's last type selects. */
887
+ 'shape' |
888
+ /** A table cell's own `a:txBody/a:lstStyle`. */
889
+ 'cell' |
890
+ /** What a table's style, or PowerPoint's default grid, gives a cell's text. */
891
+ 'tableStyle' | 'layoutPh' | 'masterPh' |
892
+ /** The master's `p:txStyles`: the bucket a shape's chain selects, `p:otherStyle` for a cell. */
826
893
  'txStyles' |
827
894
  /** `p:defaultTextStyle`, which only a shape with no bucket reaches. */
828
895
  'defaultTextStyle' |
@@ -1197,7 +1264,7 @@ export declare function parseTextBody(element: XElement, partName: string): Text
1197
1264
  /** The `p:txBody` of a shape, when it has one. */
1198
1265
  export declare function parseTextBodyChild(parent: XElement, partName: string): TextBody | undefined;
1199
1266
  //#endregion
1200
- //#region src/builtin-text-styles.d.ts
1267
+ //#region src/builtin/text-styles.d.ts
1201
1268
  /**
1202
1269
  * PowerPoint's own `p:txStyles`, substituted when a master declares none.
1203
1270
  *
@@ -1265,50 +1332,57 @@ export declare const BUILTIN_TEXT_STYLES: {
1265
1332
  */
1266
1333
  export declare const TEXT_FLOOR: BuiltinLevel;
1267
1334
  //#endregion
1335
+ //#region src/builtin/table-styles.d.ts
1336
+ /**
1337
+ * PowerPoint's 74 built-in table styles, each `a:tblStyle` byte for byte as PowerPoint writes it.
1338
+ * GENERATED by tools/ground-truth/model/tables/styles/write-tables.ts from
1339
+ * corpus/ground-truth/table-styles.json. Do not edit: table.test.ts re-derives it.
1340
+ */
1341
+ interface BuiltinTableStyle {
1342
+ readonly id: string;
1343
+ readonly name: string;
1344
+ /** The `a:tblStyle` PowerPoint writes into `ppt/tableStyles.xml` for this style. */
1345
+ readonly xml: string;
1346
+ }
1347
+ /** In the order of PowerPoint's Table Styles gallery. */
1348
+ export declare const BUILTIN_TABLE_STYLES: readonly BuiltinTableStyle[];
1349
+ //#endregion
1268
1350
  //#region src/resolve/text.d.ts
1269
1351
  /** Which `p:txStyles` bucket a placeholder type reads, or `null` for none. */
1270
1352
  export declare function bucketOf(type: string): 'title' | 'body' | null;
1271
1353
  /**
1272
- * Everything the cascade needs that is not on the shape.
1273
- *
1274
- * `defaultTextStyle` comes from `ppt/presentation.xml` and is therefore a
1275
- * property of the package rather than of any sheet, which is why it is passed
1276
- * in rather than walked to. A caller that has a `Document` has it already;
1277
- * `undefined` means the package declared none, which is a state PowerPoint
1278
- * distinguishes and this must too.
1354
+ * Everything the cascade needs that is not on the shape. `defaultTextStyle` is the package's, from
1355
+ * `ppt/presentation.xml`; `undefined` is a package that declares none, which PowerPoint tells apart.
1279
1356
  */
1280
1357
  interface TextContext {
1281
1358
  readonly sheet: Sheet;
1282
1359
  readonly shape: Shape;
1283
1360
  readonly defaultTextStyle: ListStyle | undefined;
1361
+ /** Set for the text of a table cell, whose walk is its own (C9, ADR 0064). */
1362
+ readonly cell?: TableCellText;
1284
1363
  }
1285
- /** One level of the walk: a list style, and what to call it if it answers. */
1364
+ /** A table cell's two levels of its own: its `a:lstStyle`, and what the table's style gives it. */
1365
+ interface TableCellText {
1366
+ readonly lstStyle: ListStyle | undefined;
1367
+ /** `tableTextLayer`'s answer for the cell. */
1368
+ readonly layer: RunProps;
1369
+ }
1370
+ /** One level of the walk: a list style, or run properties at every level, and what to call it. */
1286
1371
  interface Level {
1287
1372
  readonly style: ListStyle | undefined;
1373
+ readonly run?: RunProps;
1288
1374
  readonly origin: Origin;
1289
1375
  readonly sheet: Sheet | null;
1290
1376
  readonly shape: Shape | null;
1291
1377
  }
1292
1378
  /**
1293
- * The list styles a shape reads, nearest first, ending at whichever terminus it
1294
- * reaches.
1295
- *
1296
- * Exported because it *is* the finding: a caller that wants to show the user
1297
- * where a value could have come from - the inspector's Overrides panel, layout
1298
- * compatibility scoring - needs the same list the resolver walks, not a second
1299
- * opinion about it.
1379
+ * The list styles a shape or a table cell reads, nearest first, ending at whichever terminus it
1380
+ * reaches. Exported so a caller that shows where a value could come from walks the same list.
1300
1381
  */
1301
1382
  export declare function textLevels(context: TextContext): readonly Level[];
1302
1383
  /**
1303
- * The values left when every level has been asked and none of them said.
1304
- *
1305
- * Two quite different things, and which applies turns on one question: does the
1306
- * master declare `p:txStyles` at all? If it does not, PowerPoint substitutes its
1307
- * whole built-in set, and a body placeholder is 28 points with a hanging bullet
1308
- * indent. If it does, there is no per-property backstop underneath it and what
1309
- * remains is the floor - 18 points, no margin, no indent. Measured as two
1310
- * separate probes precisely because the two are easy to conflate and differ on
1311
- * every partially-specified master.
1384
+ * The values left when every level has been asked and none of them said (ADR 0027).
1385
+ * A master with `p:txStyles` leaves `TEXT_FLOOR`; one without substitutes PowerPoint's built-ins.
1312
1386
  */
1313
1387
  export declare function floorOf(context: TextContext, level: number): BuiltinLevel;
1314
1388
  /**
@@ -1434,6 +1508,59 @@ export declare function parseBodyPropsChild(parent: XElement, partName: string):
1434
1508
  export declare function parseTable(element: XElement, part: string): Table;
1435
1509
  /** The table of a `p:graphicFrame`, when its `a:graphicData` carries one. */
1436
1510
  export declare function parseTableChild(frame: XElement, part: string): Table | undefined;
1511
+ /** An `a:tblStyle` or an inline `a:tableStyle`: `CT_TableStyle`. */
1512
+ export declare function parseTableStyle(element: XElement, part: string): TableStyle;
1513
+ //#endregion
1514
+ //#region src/resolve/table.d.ts
1515
+ /** One of PowerPoint's 74 built-ins by GUID, in any case, parsed afresh; `undefined` for any other. */
1516
+ export declare function builtinTableStyle(id: string): TableStyle | undefined;
1517
+ /**
1518
+ * The built-in style a table is drawn with, or `null` for PowerPoint's default: a 1-pt black
1519
+ * grid and no fill, whatever the theme and whatever the package defines.
1520
+ */
1521
+ export declare function tableStyleOf(table: Table): TableStyle | null;
1522
+ /** The order the parts compose in, lowest first: C9 on every drawable table (ADR 0064). */
1523
+ export declare const TABLE_PART_ORDER: readonly ["wholeTbl", "band1H", "band2H", "band1V", "band2V", "lastCol", "firstCol", "lastRow", "seCell", "swCell", "firstRow", "neCell", "nwCell"];
1524
+ /**
1525
+ * The parts reaching grid position (row, col), highest first: ECMA-376's reading, which C9 found
1526
+ * alone fits (ADR 0064). Bands skip the rows and columns their end flags take, and a corner part
1527
+ * needs both of its flags.
1528
+ */
1529
+ export declare function tablePartsAt(props: TableProps | undefined, rows: number, cols: number, row: number, col: number): readonly TableStylePartName[];
1530
+ /**
1531
+ * The fill of the cell at grid position (row, col): its own `a:tcPr` fill, else the highest part
1532
+ * that states one. Parts compose per property (C9); `null` paints nothing, and one translucent fill
1533
+ * is painted alone, never over another part's.
1534
+ */
1535
+ export declare function tableCellFill(table: Table, style: TableStyle | null, grid: TableGrid, row: number, col: number): TableSourced<Themeable<Fill>> | null;
1536
+ /** What paints under the cells: `a:tblPr`'s own fill in place of the style's `tblBg` (C9). */
1537
+ export declare function tableBackground(table: Table, style: TableStyle | null): TableSourced<Themeable<Fill>> | null;
1538
+ /** PowerPoint's default grid: a 1-pt black line on every edge of a table that names no built-in (C8). */
1539
+ export declare const DEFAULT_GRID_LINE: Line;
1540
+ /**
1541
+ * The line a grid edge draws: its owner's `a:tcPr` line, else the highest part of either cell that
1542
+ * states it, a part reaching both offering its inside edge (C9).
1543
+ * The owner is the cell before (above, left) where its anchor is level with the edge, else the cell
1544
+ * after where its anchor is, else the cell before; `null` inside a merged cell.
1545
+ */
1546
+ export declare function tableEdgeLine(table: Table, style: TableStyle | null, grid: TableGrid, edge: TableEdge): TableSourced<Themeable<Line>> | null;
1547
+ /**
1548
+ * What the style gives the text of the cell at (row, col): bold, italic, face and colour, each from
1549
+ * the highest part that states it (C9), as run properties for the text cascade.
1550
+ * The default grid gives `tx1` in the minor face whatever the flags; `node` is the style's element,
1551
+ * or the table's for the grid.
1552
+ */
1553
+ export declare function tableTextLayer(table: Table, style: TableStyle | null, grid: TableGrid, row: number, col: number): RunProps;
1554
+ /** A style fill with a `fillRef` followed into the theme, and the colour `phClr` takes in it. */
1555
+ export declare function themedFill(fill: Themeable<Fill>, theme: Theme, colors: ColorContext): {
1556
+ readonly fill: Fill | null;
1557
+ readonly phClr: Rgba | null;
1558
+ };
1559
+ /** A style line with an `lnRef` followed into the theme, and the colour `phClr` takes in it. */
1560
+ export declare function themedLine(line: Themeable<Line>, theme: Theme, colors: ColorContext): {
1561
+ readonly line: Line | null;
1562
+ readonly phClr: Rgba | null;
1563
+ };
1437
1564
  //#endregion
1438
1565
  //#region src/resolve/typeface.d.ts
1439
1566
  /** The four slots a `CT_TextCharacterProperties` can name. */
@@ -1455,5 +1582,5 @@ export declare function resolveTypefaceOf(font: Typeface, scheme: FontScheme): s
1455
1582
  */
1456
1583
  export declare function requestedTypefaces(fonts: Iterable<Typeface | undefined>, scheme: FontScheme): readonly string[];
1457
1584
  //#endregion
1458
- export { type Background, type BuiltinLevel, type BulletAutoNum, type BulletColor, type BulletFont, type BulletKind, type BulletSize, COLOR_TRANSFORM_OPS, type Caps, type ChainLink, type ColorMapOverride, type Document, type DocumentProblem, type FontAlign, type FontCollection, type FontRef, type FontScheme, type FormatScheme, type GridCell, type ListStyle, type ModelErrorCode, type NormalPlaceholder, type Origin, type ParaProps, type Paragraph, type Placeholder, type PlaceholderSize, type PlaceholderType, type Resolved, type ResolvedAppearance, type ResolvedBackground, type ResolvedInsets, type RunProps, type ScriptSlot, type Shape, type ShapeGeometry, type ShapeKind, type ShapeStyle, type Sheet, type SheetKind, type Spacing, type Strike, type StyleMatrixTarget, type StyleRef, type Table, type TableCell, type TableCellBorders, type TableCellProps, type TableColumn, type TableGrid, type TableProps, type TableRow, type TableStyleRef, type TextAlign, type TextAnchor, type TextBody, type TextBreak, type TextContent, type TextContext, type TextField, type TextRun, type TextStyleBucket, type TextStyles, type Theme, type ThemeFontRef, type Typeface, type Underline, type VerticalText, type Xfrm };
1585
+ export { type Background, type BuiltinLevel, type BuiltinTableStyle, type BulletAutoNum, type BulletColor, type BulletFont, type BulletKind, type BulletSize, COLOR_TRANSFORM_OPS, type Caps, type ChainLink, type ColorMapOverride, type Document, type DocumentProblem, type FontAlign, type FontCollection, type FontRef, type FontScheme, type FormatScheme, type GridCell, type ListStyle, type ModelErrorCode, type NormalPlaceholder, type OnOffStyle, type Origin, type ParaProps, type Paragraph, type Placeholder, type PlaceholderSize, type PlaceholderType, type Resolved, type ResolvedAppearance, type ResolvedBackground, type ResolvedInsets, type RunProps, type ScriptSlot, type Shape, type ShapeGeometry, type ShapeKind, type ShapeStyle, type Sheet, type SheetKind, type Spacing, type Strike, type StyleMatrixTarget, type StyleRef, type Table, type TableBackground, type TableCell, type TableCellBorders, type TableCellProps, type TableCellText, type TableColumn, type TableEdge, type TableGrid, type TableProps, type TableRow, type TableSource, type TableSourced, type TableStyle, type TableStyleBorders, type TableStyleCell, type TableStylePart, type TableStylePartName, type TableStyleRef, type TableStyleText, type TextAlign, type TextAnchor, type TextBody, type TextBreak, type TextContent, type TextContext, type TextField, type TextRun, type TextStyleBucket, type TextStyles, type Theme, type ThemeFontRef, type Themeable, type Typeface, type Underline, type VerticalText, type Xfrm };
1459
1586
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors.ts","../src/parse/geometry.ts","../src/text.ts","../src/table.ts","../src/types.ts","../src/parse/paint.ts","../src/parse/sheet.ts","../src/resolve/placeholder.ts","../src/resolve/resolve.ts","../src/style.ts","../src/resolve/background.ts","../src/document.ts","../src/parse/text.ts","../src/builtin-text-styles.ts","../src/resolve/text.ts","../src/resolve/body.ts","../src/parse/body.ts","../src/parse/table.ts","../src/resolve/typeface.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors.ts","../src/parse/geometry.ts","../src/text.ts","../src/table.ts","../src/types.ts","../src/parse/paint.ts","../src/parse/sheet.ts","../src/resolve/placeholder.ts","../src/resolve/resolve.ts","../src/style.ts","../src/resolve/background.ts","../src/document.ts","../src/parse/text.ts","../src/builtin/text-styles.ts","../src/builtin/table-styles.ts","../src/resolve/text.ts","../src/resolve/body.ts","../src/parse/body.ts","../src/parse/table.ts","../src/resolve/table.ts","../src/resolve/typeface.ts"],"mappings":"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"}