@shbernal/ts-pptx 1.0.0 → 2.0.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 (53) hide show
  1. package/README.md +3 -1
  2. package/dist/browser.d.ts +5 -5
  3. package/dist/browser.js +2 -2
  4. package/dist/{diagnostics-DzY9Tyfm.d.ts → diagnostics-CQ0JWc9m.d.ts} +4 -21
  5. package/dist/{diagnostics-DzY9Tyfm.d.ts.map → diagnostics-CQ0JWc9m.d.ts.map} +1 -1
  6. package/dist/{errors-DRLpOpgQ.d.ts → errors-B22h8Qd0.d.ts} +3 -3
  7. package/dist/{errors-DRLpOpgQ.d.ts.map → errors-B22h8Qd0.d.ts.map} +1 -1
  8. package/dist/errors-DGE9zh3U.js.map +1 -1
  9. package/dist/{fit-CbxyHN69.js → fit-BSWY0AYt.js} +0 -0
  10. package/dist/{fit-CbxyHN69.js.map → fit-BSWY0AYt.js.map} +1 -1
  11. package/dist/{html-dom-wVa3TiG7.js → html-dom-BQLUntho.js} +2 -2
  12. package/dist/html-dom-BQLUntho.js.map +1 -0
  13. package/dist/html.d.ts +3 -3
  14. package/dist/html.js +1 -1
  15. package/dist/{image-size-C5Z1sKof.js → image-size-C8uYE8GJ.js} +3 -3
  16. package/dist/{image-size-C5Z1sKof.js.map → image-size-C8uYE8GJ.js.map} +1 -1
  17. package/dist/index.d.ts +5 -5
  18. package/dist/index.js +2 -2
  19. package/dist/inspect.d.ts +1 -1
  20. package/dist/inspect.js +2 -2
  21. package/dist/math.d.ts +1 -1
  22. package/dist/math.js +2 -1
  23. package/dist/math.js.map +1 -1
  24. package/dist/measure.d.ts +2 -2
  25. package/dist/measure.js +1 -1
  26. package/dist/node.d.ts +5 -5
  27. package/dist/node.js +1 -1
  28. package/dist/{pres-5x1bjCzk.d.ts → pres-GU-jjBEx.d.ts} +2 -2
  29. package/dist/{pres-5x1bjCzk.d.ts.map → pres-GU-jjBEx.d.ts.map} +1 -1
  30. package/dist/{presentation-RGOiun5P.d.ts → presentation-CVaTZw1V.d.ts} +316 -18
  31. package/dist/presentation-CVaTZw1V.d.ts.map +1 -0
  32. package/dist/{presentation-B0JWdTN1.js → presentation-MJe9WDi4.js} +21 -27
  33. package/dist/presentation-MJe9WDi4.js.map +1 -0
  34. package/dist/read.d.ts +4 -4
  35. package/dist/read.js +2 -2
  36. package/dist/script.d.ts +2 -2
  37. package/dist/script.d.ts.map +1 -1
  38. package/dist/script.js +0 -0
  39. package/dist/script.js.map +1 -1
  40. package/dist/{shapes-BZU8UTW2.js → shapes-CaOgR0i1.js} +910 -22
  41. package/dist/shapes-CaOgR0i1.js.map +1 -0
  42. package/dist/{slide-B6mDaM-P.d.ts → slide-BBlElWr9.d.ts} +223 -92
  43. package/dist/slide-BBlElWr9.d.ts.map +1 -0
  44. package/dist/{text-WRUbOy2r.js → text-B1ZrPEeK.js} +441 -186
  45. package/dist/text-B1ZrPEeK.js.map +1 -0
  46. package/dist/zip.d.ts +1 -1
  47. package/package.json +9 -20
  48. package/dist/html-dom-wVa3TiG7.js.map +0 -1
  49. package/dist/presentation-B0JWdTN1.js.map +0 -1
  50. package/dist/presentation-RGOiun5P.d.ts.map +0 -1
  51. package/dist/shapes-BZU8UTW2.js.map +0 -1
  52. package/dist/slide-B6mDaM-P.d.ts.map +0 -1
  53. package/dist/text-WRUbOy2r.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { t as CustomPropertyValue } from "./pres-5x1bjCzk.js";
1
+ import { t as CustomPropertyValue } from "./pres-GU-jjBEx.js";
2
2
  import { c as ImportSlideMastersOptions, d as LayoutHandle, f as SlideSize, l as ImportSlideOptions, o as FromTemplateOptions, p as SlideSource, r as EmbeddedFontInfo, s as ImportShapeOptions, t as AppendSlidesOptions, u as ImportedSlideMaster } from "./presentation-types-BVw0EknS.js";
3
3
  import { a as Part, i as Relationships, n as OpcPackage, o as Element, t as OpcInput } from "./package-CaOLXSNi.js";
4
4
  //#region src/read/oxml/theme.d.ts
@@ -738,6 +738,22 @@ declare class TextFrame {
738
738
  markDirty(): void;
739
739
  }
740
740
  //#endregion
741
+ //#region src/read/api/pattern-fill.d.ts
742
+ /**
743
+ * A pattern fill (`a:pattFill`) — a two-colour preset hatch. The write-side
744
+ * `fill: { type: 'pattern', pattern: { preset, fgColor, bgColor } }` emits the same element,
745
+ * so the {@link preset} name and both colours round-trip. Colours resolve against the theme
746
+ * (a scheme token → literal hex) the same way a solid fill does.
747
+ */
748
+ interface PatternFill {
749
+ /** Preset pattern name (`@prst`, e.g. `pct50`/`diagCross`/`ltUpDiag`), or `null` when unset. */
750
+ preset: string | null;
751
+ /** Foreground colour (`a:fgClr`) resolved against the theme, or `null`. */
752
+ foreground: ResolvedColor | null;
753
+ /** Background colour (`a:bgClr`) resolved against the theme, or `null`. */
754
+ background: ResolvedColor | null;
755
+ }
756
+ //#endregion
741
757
  //#region src/read/api/shapes/types.d.ts
742
758
  /** Discriminator for the concrete `Shape` subclass. */
743
759
  type ShapeType = 'autoShape' | 'picture' | 'connector' | 'graphicFrame' | 'group';
@@ -871,21 +887,6 @@ interface SoftEdge {
871
887
  /** Feather radius in points (`@rad` ÷ 12700). */
872
888
  radiusPt: number;
873
889
  }
874
- /**
875
- * A shape's pattern fill (`spPr/a:pattFill`) — a two-colour preset hatch. The
876
- * write-side `fill: { type: 'pattern', pattern: { preset, fgColor, bgColor } }`
877
- * emits the same element, so the {@link preset} name and both colours round-trip.
878
- * Colours resolve against the slide theme (a scheme token → literal hex) the same
879
- * way {@link Shape.resolvedFill} resolves a solid fill.
880
- */
881
- interface PatternFill {
882
- /** Preset pattern name (`@prst`, e.g. `pct50`/`diagCross`/`ltUpDiag`), or `null` when unset. */
883
- preset: string | null;
884
- /** Foreground colour (`a:fgClr`) resolved against the theme, or `null`. */
885
- foreground: ResolvedColor | null;
886
- /** Background colour (`a:bgClr`) resolved against the theme, or `null`. */
887
- background: ResolvedColor | null;
888
- }
889
890
  /**
890
891
  * One segment of a custom-geometry path (`a:path`), as read from a shape. The
891
892
  * command verbs mirror the write-side `GeometryPoint` DSL (`src/types/`)
@@ -1805,6 +1806,19 @@ declare class ChartExAxis {
1805
1806
  markDirty(): void;
1806
1807
  }
1807
1808
  //#endregion
1809
+ //#region src/read/api/table-edit.d.ts
1810
+ /** The four edges plus the two diagonals, keyed as {@link TableCellEdge} names them. */
1811
+ declare const EDGE_QNAMES: {
1812
+ readonly left: "a:lnL";
1813
+ readonly right: "a:lnR";
1814
+ readonly top: "a:lnT";
1815
+ readonly bottom: "a:lnB";
1816
+ readonly tlToBr: "a:lnTlToBr";
1817
+ readonly blToTr: "a:lnBlToTr";
1818
+ };
1819
+ /** Which border of a cell an edit addresses. */
1820
+ type TableCellEdge = keyof typeof EDGE_QNAMES;
1821
+ //#endregion
1808
1822
  //#region src/read/api/table-style-resolve.d.ts
1809
1823
  /**
1810
1824
  * The `a:tblPr` condition flags that gate which style parts apply to a table.
@@ -1837,6 +1851,26 @@ interface ResolvedTableStyle {
1837
1851
  }
1838
1852
  //#endregion
1839
1853
  //#region src/read/api/table.d.ts
1854
+ /**
1855
+ * One border as {@link TableCell.setBorder} takes it — the write-side mirror of
1856
+ * {@link CellBorder}, which is what reading one gives back.
1857
+ *
1858
+ * Deliberately not `CellBorder` itself: that type reports every field, `null` included, so
1859
+ * passing one back would make "leave this alone" unsayable. Here an omitted field is simply
1860
+ * not written, which is what an edit usually means.
1861
+ */
1862
+ interface TableCellBorderEdit {
1863
+ /** Border width in points; omitted leaves `@w` unset, which renders as a hairline. */
1864
+ widthPt?: number | null;
1865
+ /** Dash preset (`a:prstDash/@val`, e.g. `sysDash`); omitted leaves the border solid. */
1866
+ dash?: string;
1867
+ /** Explicit colour as 6-hex (`#` optional). Ignored when {@link schemeColor} is given. */
1868
+ color?: string;
1869
+ /** Theme colour token (e.g. `accent1`); preferred over {@link color} when both are set. */
1870
+ schemeColor?: string;
1871
+ /** Write an explicit `a:noFill` — a deliberately suppressed edge, not an absent one. */
1872
+ noFill?: boolean;
1873
+ }
1840
1874
  /**
1841
1875
  * The context a cell needs to resolve its style-graph fill: the table's resolved
1842
1876
  * `a:tblStyle`, its condition flags, and the grid dimensions. Threaded from
@@ -1883,6 +1917,29 @@ interface CellBorders {
1883
1917
  tlToBr: CellBorder | null;
1884
1918
  blToTr: CellBorder | null;
1885
1919
  }
1920
+ /**
1921
+ * A table cell's 3-D bevel (`a:tcPr/a:cell3D`), as read back. Every field is `null` when the
1922
+ * source leaves it to the schema default, so a reader can tell "PowerPoint wrote `circle`"
1923
+ * from "PowerPoint wrote nothing and `circle` is what it means".
1924
+ */
1925
+ interface CellThreeD {
1926
+ /** `a:cell3D/@prstMaterial` (`ST_PresetMaterialType`), or `null` when unset. */
1927
+ material: string | null;
1928
+ /** The required `a:bevel`. Present whenever the cell has a `a:cell3D` at all. */
1929
+ bevel: {
1930
+ /** `a:bevel/@prst` (`ST_BevelPresetType`), or `null` when unset. */
1931
+ preset: string | null;
1932
+ /** `a:bevel/@w` converted from EMU to points, or `null` when unset. */
1933
+ widthPt: number | null;
1934
+ /** `a:bevel/@h` converted from EMU to points, or `null` when unset. */
1935
+ heightPt: number | null;
1936
+ };
1937
+ /** `a:cell3D/a:lightRig`, or `null` when the cell leaves lighting to the renderer. */
1938
+ lightRig: {
1939
+ rig: string | null;
1940
+ dir: string | null;
1941
+ } | null;
1942
+ }
1886
1943
  /** A table: a grid of rows and cells inside a graphic frame. */
1887
1944
  declare class Table {
1888
1945
  #private;
@@ -1927,6 +1984,42 @@ declare class Table {
1927
1984
  * table style, so it is the read counterpart of the writer's `tableStyle` option.
1928
1985
  */
1929
1986
  get styleId(): string | null;
1987
+ /**
1988
+ * The table's own background (`a:tblPr` fill) resolved against the slide's theme colour
1989
+ * context to a literal hex, or `null` when the table carries no solid background.
1990
+ *
1991
+ * This is the table-level counterpart of {@link TableCell.resolvedFill}, and it is a
1992
+ * genuinely different thing from a cell fill: a `a:tblPr` fill sits *behind* the grid, so
1993
+ * a cell with no fill of its own shows it through. Reports `null` for a non-solid choice
1994
+ * (`a:blipFill`/`a:gradFill`/`a:pattFill`/`a:noFill`) — read {@link pictureFill} for an
1995
+ * image background — and `null` with no theme context.
1996
+ */
1997
+ get resolvedFill(): ResolvedColor | null;
1998
+ /**
1999
+ * The table's picture background (`a:tblPr/a:blipFill`), or `null` when the table is not
2000
+ * image-backed. The table-level twin of {@link TableCell.pictureFill}, and needed for the
2001
+ * same reason: {@link resolvedFill} decodes only solid colours, so without this an
2002
+ * image-backed table is indistinguishable from an unfilled one.
2003
+ */
2004
+ get pictureFill(): PictureFill | null;
2005
+ /**
2006
+ * The table's gradient background (`a:tblPr/a:gradFill`), or `null` when it is not
2007
+ * gradient-filled. Needed for the same reason {@link pictureFill} is:
2008
+ * {@link resolvedFill} decodes only solid colours.
2009
+ */
2010
+ get gradientFill(): GradientFill | null;
2011
+ /**
2012
+ * The table's pattern (hatch) background (`a:tblPr/a:pattFill`), or `null` when it is not
2013
+ * pattern-filled.
2014
+ */
2015
+ get patternFill(): PatternFill | null;
2016
+ /**
2017
+ * The raw `schemeClr` token of the table's own background
2018
+ * (`a:tblPr/a:solidFill/a:schemeClr/@val`), or `null` for an absent or `srgbClr` fill.
2019
+ * {@link resolvedFill} is the literal it resolves to; this is the unresolved reference,
2020
+ * which is what a replica should carry so the copy still tracks its theme.
2021
+ */
2022
+ get fillSchemeColor(): string | null;
1930
2023
  /** Whether the first row is styled as a header (`a:tblPr/@firstRow`). */
1931
2024
  get firstRowHeader(): boolean;
1932
2025
  /** Whether rows are banded (`a:tblPr/@bandRow`). */
@@ -1937,6 +2030,64 @@ declare class Table {
1937
2030
  * spans columns (`gridSpan`) occupies a single index here.
1938
2031
  */
1939
2032
  cell(rowIndex: number, columnIndex: number): TableCell | null;
2033
+ /**
2034
+ * Insert a row, defaulting to the bottom of the table. Returns the new {@link TableRow}.
2035
+ *
2036
+ * The new row is auto-height (`a:tr/@h="0"`) and its cells are empty. Inserting *through*
2037
+ * a vertical merge extends that merge rather than interrupting it: the span's origin
2038
+ * grows by a row and the new cell joins as a continuation, because an origin claiming
2039
+ * more rows than it has continuations is a table PowerPoint reports as corrupt.
2040
+ * @param {number} [index] - where to insert, `0`..`rowCount`; appended when omitted
2041
+ * @throws {InvalidOptionError} when `index` is outside that range
2042
+ */
2043
+ addRow(index?: number): TableRow;
2044
+ /**
2045
+ * Remove the row at `index`, with its content.
2046
+ *
2047
+ * A cell in the row that *continues* a vertical merge shortens that merge. A cell that
2048
+ * *starts* one hands the region to its first continuation, which becomes the new origin —
2049
+ * the merged region survives one row shorter, and only the removed row's own text is lost.
2050
+ * @throws {InvalidOptionError} when `index` is out of range
2051
+ */
2052
+ removeRow(index: number): void;
2053
+ /**
2054
+ * Insert a column, defaulting to the right-hand end. Updates `a:tblGrid` **and** every
2055
+ * row, which is the pair that has to stay in step.
2056
+ *
2057
+ * The mirror of {@link addRow}'s merge case: inserting inside a horizontal merge widens
2058
+ * it instead of splitting it.
2059
+ * @param {number} [index] - where to insert, `0`..`columnCount`; appended when omitted
2060
+ * @param {number} [widthEmu] - the new column's width; defaults to 1 inch
2061
+ * @throws {InvalidOptionError} when `index` is outside that range
2062
+ */
2063
+ addColumn(index?: number, widthEmu?: number): void;
2064
+ /**
2065
+ * Remove the column at `index`, from `a:tblGrid` and from every row.
2066
+ *
2067
+ * Inside a horizontal merge the region narrows by one and keeps its content: a covered
2068
+ * cell is dropped rather than the origin. Elsewhere the column's cells go with it.
2069
+ * @throws {InvalidOptionError} when `index` is out of range
2070
+ */
2071
+ removeColumn(index: number): void;
2072
+ /**
2073
+ * Merge the rectangle between two cell positions into one cell. The top-left cell keeps
2074
+ * its content; the rest become covered cells and are emptied, since a covered cell is
2075
+ * never rendered.
2076
+ *
2077
+ * A rectangle that cuts through an existing merge is **rejected**, not silently widened
2078
+ * to fit — the caller asked for a specific region, and quietly producing a different one
2079
+ * is how a layout ends up wrong with nothing to point at. Unmerge first.
2080
+ * @throws {InvalidOptionError} when an index is out of range, the range covers one cell,
2081
+ * or it partially overlaps an existing merge
2082
+ */
2083
+ mergeCells(row1: number, col1: number, row2: number, col2: number): void;
2084
+ /**
2085
+ * Split the merged cell whose **origin** is `(row, col)` back into individual cells.
2086
+ * A no-op on a cell that is not merged; addressing a covered cell instead of the origin
2087
+ * throws, and the message names the origin to use.
2088
+ * @throws {InvalidOptionError} when an index is out of range or the cell is a covered cell
2089
+ */
2090
+ unmergeCell(row: number, col: number): void;
1940
2091
  /** Escape hatch: the underlying `a:tbl` element. After mutating it call {@link markDirty}, or `save()` writes the original bytes. */
1941
2092
  get element_(): Element;
1942
2093
  /** Mark the owning part dirty so `save()` reserializes it. Call after mutating {@link element_}. */
@@ -2009,6 +2160,82 @@ declare class TableCell {
2009
2160
  * `textFrame.paragraphs[].runs[]` directly.
2010
2161
  */
2011
2162
  set text(value: string);
2163
+ /**
2164
+ * Set (or clear) the cell's vertical text anchor (`a:tcPr/@anchor`).
2165
+ * `null` removes the attribute, leaving PowerPoint's default of top.
2166
+ * @throws {InvalidOptionError} when the value is outside `ST_TextAnchoringType`
2167
+ */
2168
+ setAnchor(value: string | null): void;
2169
+ /**
2170
+ * Set (or clear) the cell's text direction (`a:tcPr/@vert`), e.g. `'vert270'`.
2171
+ * `null` removes the attribute, leaving the default horizontal text.
2172
+ * @throws {InvalidOptionError} when the value is outside `ST_TextVerticalType`
2173
+ */
2174
+ setVerticalText(value: string | null): void;
2175
+ /**
2176
+ * Set (or clear) `a:tcPr/@horzOverflow` — what a single glyph too wide for the cell does.
2177
+ * `null` removes the attribute; so does `'clip'` in effect, since it is the schema
2178
+ * default, but the attribute is still written as asked.
2179
+ * @throws {InvalidOptionError} when the value is outside `ST_TextHorzOverflowType`
2180
+ */
2181
+ setHorzOverflow(value: string | null): void;
2182
+ /**
2183
+ * Centre the cell's text block horizontally, or stop doing so (`a:tcPr/@anchorCtr`).
2184
+ * `false` removes the attribute rather than writing `"0"`, since `false` is the schema
2185
+ * default and the two are indistinguishable to a renderer.
2186
+ */
2187
+ setAnchorCtr(value: boolean): void;
2188
+ /**
2189
+ * Set the cell's text insets in EMU (`a:tcPr/@marL`/`@marR`/`@marT`/`@marB`).
2190
+ *
2191
+ * Partial: only the sides named are touched, so `{ left: 0 }` flushes the text left and
2192
+ * leaves the other three alone. A side given as `null` has its attribute removed, which
2193
+ * returns it to the schema default (91440 EMU left/right, 45720 top/bottom) — not to
2194
+ * zero. Pass `{}` to change nothing.
2195
+ * @throws {InvalidOptionError} when a value is not a finite number
2196
+ */
2197
+ setMarginsEmu(margins: {
2198
+ left?: number | null;
2199
+ right?: number | null;
2200
+ top?: number | null;
2201
+ bottom?: number | null;
2202
+ }): void;
2203
+ /**
2204
+ * Set (or clear) one of the cell's six borders — the four edges and the two diagonals.
2205
+ *
2206
+ * `null` removes the element entirely, which is "inherit", and is a different thing from
2207
+ * `{ noFill: true }`, which writes an explicit no-border and suppresses whatever would
2208
+ * otherwise be inherited. The element is inserted at its schema position rather than
2209
+ * appended: `CT_TableCellProperties` is a sequence, and an out-of-order `a:tcPr` is
2210
+ * reported by PowerPoint as a corrupt file rather than as a bad edit.
2211
+ *
2212
+ * Colour is either `color` (6-hex, `#` optional) or `schemeColor` (a theme token); giving
2213
+ * both prefers the token, matching how the read side reports them.
2214
+ * @throws {InvalidOptionError} when the width or colour cannot be written
2215
+ */
2216
+ setBorder(edge: TableCellEdge, border: TableCellBorderEdit | null): void;
2217
+ /**
2218
+ * Replace the cell's fill with a solid colour (`a:tcPr/a:solidFill`), or clear it.
2219
+ *
2220
+ * `null` removes the `a:solidFill` and lets the cell inherit from the table style again.
2221
+ * That is not the same as {@link noFill}, which writes an explicit `a:noFill` and so
2222
+ * suppresses the inherited shading. Any competing fill choice (`a:gradFill`,
2223
+ * `a:blipFill`, …) is dropped first — `EG_FillProperties` admits one.
2224
+ * @throws {InvalidOptionError} when `color` is not a 6-digit hex string
2225
+ */
2226
+ setFillColor(color: string | null): void;
2227
+ /**
2228
+ * Replace the cell's fill with a theme colour token (`a:solidFill/a:schemeClr/@val`), or
2229
+ * clear it. Preferred over {@link setFillColor} when the deck's theme should keep
2230
+ * driving the colour.
2231
+ */
2232
+ setFillSchemeColor(token: string | null): void;
2233
+ /**
2234
+ * Write an explicit `<a:noFill/>` on the cell — a transparent cell that shows the table
2235
+ * background (or the slide) through. Distinct from `setFillColor(null)`, which removes
2236
+ * the fill and lets the table style's shading apply again.
2237
+ */
2238
+ noFill(): void;
2012
2239
  /**
2013
2240
  * The cell's solid fill resolved against the table's theme colour context to a
2014
2241
  * literal hex — the table-cell counterpart of
@@ -2030,6 +2257,18 @@ declare class TableCell {
2030
2257
  * `lumMod`/`lumOff`/… transforms applied) — read that for the final colour.
2031
2258
  */
2032
2259
  get resolvedFill(): ResolvedColor | null;
2260
+ /**
2261
+ * Whether the cell carries a fill of its **own** (`a:tcPr` holds an `EG_FillProperties`
2262
+ * child), as opposed to inheriting one from the table style's header/banding rules.
2263
+ *
2264
+ * This is the flag that disambiguates {@link resolvedFill}, which deliberately reports
2265
+ * either — it answers "what colour does this cell render as", and both sources are valid
2266
+ * answers to that. Anything that has to reproduce the cell rather than describe it needs
2267
+ * to know which: baking an inherited banding colour into a copy makes the copy look right
2268
+ * until someone changes its table style, and then nothing moves. `false` for a cell whose
2269
+ * `a:tcPr` is empty or absent, whatever the style graph would render it as.
2270
+ */
2271
+ get hasOwnFill(): boolean;
2033
2272
  /**
2034
2273
  * The cell's picture (image) fill (`a:tcPr/a:blipFill`), or `null` when the cell
2035
2274
  * is not image-filled. The cell counterpart of
@@ -2041,6 +2280,18 @@ declare class TableCell {
2041
2280
  * which a {@link Table} built without them cannot supply.
2042
2281
  */
2043
2282
  get pictureFill(): PictureFill | null;
2283
+ /**
2284
+ * The cell's gradient fill (`a:tcPr/a:gradFill`), or `null` when the cell is not
2285
+ * gradient-filled. The cell twin of {@link Table.gradientFill}, and needed for the same
2286
+ * reason {@link pictureFill} is: {@link resolvedFill} reports `null` for every non-solid
2287
+ * choice, so without this a gradient cell is indistinguishable from an unfilled one.
2288
+ */
2289
+ get gradientFill(): GradientFill | null;
2290
+ /**
2291
+ * The cell's pattern (hatch) fill (`a:tcPr/a:pattFill`), or `null` when the cell is not
2292
+ * pattern-filled.
2293
+ */
2294
+ get patternFill(): PatternFill | null;
2044
2295
  /**
2045
2296
  * The raw `schemeClr` token of the cell's solid fill (`a:tcPr/a:solidFill/a:schemeClr/@val`),
2046
2297
  * e.g. `accent1`/`bg1`, or `null` when the fill is absent or an explicit `srgbClr`.
@@ -2066,6 +2317,53 @@ declare class TableCell {
2066
2317
  * bottom), or `null` when unset (PowerPoint defaults to top).
2067
2318
  */
2068
2319
  get anchor(): string | null;
2320
+ /**
2321
+ * Whether the cell's whole text **block** is centred horizontally within it
2322
+ * (`a:tcPr/@anchorCtr`). `false` when unset — that is the schema default, and it is
2323
+ * what PowerPoint writes nothing for.
2324
+ *
2325
+ * Distinct from a paragraph's `align`, which decides where each *line* sits inside the
2326
+ * text block; this decides where the block sits inside the cell.
2327
+ */
2328
+ get anchorCtr(): boolean;
2329
+ /**
2330
+ * The cell's 3-D bevel (`a:tcPr/a:cell3D`), or `null` when it has none.
2331
+ *
2332
+ * `CT_Cell3D` requires an `a:bevel`, so a present `cell3D` always reports a bevel;
2333
+ * `lightRig` is `null` when the cell leaves the scene lighting to the renderer. Sizes are
2334
+ * reported in **points** (the attributes are EMU), matching how the write option takes them.
2335
+ */
2336
+ get cell3D(): CellThreeD | null;
2337
+ /**
2338
+ * The cell's unique identifier (`a:tc/@id`), or `null` when it has none.
2339
+ *
2340
+ * This is what {@link headerIds} references: a data cell names the header cells that
2341
+ * govern it by their `@id`, which is how a complex table tells a screen reader what a
2342
+ * value means. Unrelated to the shape-level `p:cNvPr/@id` — it is an `xs:string` scoped
2343
+ * to the table, not a slide-wide numeric id.
2344
+ *
2345
+ * **PowerPoint does not write this and strips it on save**, so it will read `null` on
2346
+ * any deck PowerPoint has saved, however it was produced. It is surfaced for decks from
2347
+ * other producers. There is deliberately no write-API counterpart — see
2348
+ * `test/read/fixtures/authoring/probe-table-cell-a11y-and-3d.ps1` for the measurement.
2349
+ */
2350
+ get id(): string | null;
2351
+ /**
2352
+ * The `@id`s of the header cells that govern this cell
2353
+ * (`a:tcPr/a:headers/a:header/@val`), in document order. Empty when the cell declares no
2354
+ * header association — which is the common case, since only a complex table needs one.
2355
+ *
2356
+ * Carries the same caveat as {@link id}: PowerPoint strips `a:headers` on save, so this
2357
+ * is empty on any PowerPoint-saved deck. `Table.firstRowHeader` (`a:tblPr/@firstRow`) is
2358
+ * the header marker PowerPoint does keep.
2359
+ */
2360
+ get headerIds(): string[];
2361
+ /**
2362
+ * How the cell treats a glyph too wide for its text width (`a:tcPr/@horzOverflow`):
2363
+ * `'clip'` cuts it at the cell edge, `'overflow'` lets it draw past. `null` when unset
2364
+ * (PowerPoint clips). Not a wrap flag — cell text always wraps to the column width.
2365
+ */
2366
+ get horzOverflow(): string | null;
2069
2367
  /**
2070
2368
  * The cell's text insets in EMU (`a:tcPr/@marL`/`@marR`/`@marT`/`@marB`), or
2071
2369
  * `null` when the cell sets none. Each side is `null` when only some are set.
@@ -3245,5 +3543,5 @@ declare class Presentation {
3245
3543
  save(): Promise<Uint8Array>;
3246
3544
  }
3247
3545
  //#endregion
3248
- export { ChartFill as $, GroupShape as A, BackgroundFill as At, TableCell as B, ColorContext as Bt, CommentAuthor as C, AutofitMode as Ct, NotesPlaceholder as D, Run as Dt, ModernCommentAuthor as E, Paragraph as Et, isPicture as F, PictureFillTile as Ft, ChartExAxis as G, ResolvedTableStyle as H, GraphicFrame as I, GradientFill as It, ChartExSeries as J, ChartExDataLabels as K, CellBorder as L, GradientStop as Lt, isConnector as M, SlideBackground as Mt, isGraphicFrame as N, FillRect as Nt, NotesSlide as O, RunHyperlink as Ot, isGroupShape as P, PictureFill as Pt, ChartDataLabels as Q, CellBorders as R, ResolvedColor as Rt, Comment as S, SoftEdge as St, ModernComment as T, LineSpacing as Tt, TableConditionFlags as U, TableRow as V, ChartEx as W, Chart as X, AxisNumberFormat as Y, ChartAxis as Z, ThemeColorSlot as _, PatternFill as _t, readCustomProperties as a, AutoShape as at, Tag as b, Reflection as bt, Slide as c, ConnectionSite as ct, TransitionSpeed as d, GeometryCommand as dt, ChartLegend as et, ColorMapToken as f, Glow as ft, Theme as g, OuterShadow as gt, SlideMaster as h, LineEnds as ht, readCoreProperties as i, Picture as it, isAutoShape as j, BackgroundSource as jt, AnyShape as k, TextFrame as kt, TransitionInfo as l, CustomGeometry as lt, SlideLayout as m, LineEnd as mt, CoreProperties as n, ChartSeries as nt, AddPictureOptions as o, Shape as ot, Placeholder as p, InnerShadow as pt, ChartExLegend as q, CustomProperty as r, Connector as rt, AddTextBoxOptions as s, AbsoluteFrame as st, Presentation as t, ChartLine as tt, TransitionInput as u, CustomGeometryPath as ut, ThemeFontFace as v, Recolor as vt, CommentSchema as w, BodyProperties as wt, readTagsForPart as x, ShapeType as xt, ThemeFontScheme as y, RecolorColor as yt, Table as z, resolveColorElement as zt };
3249
- //# sourceMappingURL=presentation-RGOiun5P.d.ts.map
3546
+ export { Chart as $, GroupShape as A, Run as At, Table as B, GradientStop as Bt, CommentAuthor as C, ShapeType as Ct, NotesPlaceholder as D, BodyProperties as Dt, ModernCommentAuthor as E, AutofitMode as Et, isPicture as F, SlideBackground as Ft, TableConditionFlags as G, TableCellBorderEdit as H, resolveColorElement as Ht, GraphicFrame as I, FillRect as It, ChartExAxis as J, TableCellEdge as K, CellBorder as L, PictureFill as Lt, isConnector as M, TextFrame as Mt, isGraphicFrame as N, BackgroundFill as Nt, NotesSlide as O, LineSpacing as Ot, isGroupShape as P, BackgroundSource as Pt, AxisNumberFormat as Q, CellBorders as R, PictureFillTile as Rt, Comment as S, Reflection as St, ModernComment as T, PatternFill as Tt, TableRow as U, ColorContext as Ut, TableCell as V, ResolvedColor as Vt, ResolvedTableStyle as W, ChartExLegend as X, ChartExDataLabels as Y, ChartExSeries as Z, ThemeColorSlot as _, LineEnd as _t, readCustomProperties as a, ChartSeries as at, Tag as b, Recolor as bt, Slide as c, AutoShape as ct, TransitionSpeed as d, ConnectionSite as dt, ChartAxis as et, ColorMapToken as f, CustomGeometry as ft, Theme as g, InnerShadow as gt, SlideMaster as h, Glow as ht, readCoreProperties as i, ChartLine as it, isAutoShape as j, RunHyperlink as jt, AnyShape as k, Paragraph as kt, TransitionInfo as l, Shape as lt, SlideLayout as m, GeometryCommand as mt, CoreProperties as n, ChartFill as nt, AddPictureOptions as o, Connector as ot, Placeholder as p, CustomGeometryPath as pt, ChartEx as q, CustomProperty as r, ChartLegend as rt, AddTextBoxOptions as s, Picture as st, Presentation as t, ChartDataLabels as tt, TransitionInput as u, AbsoluteFrame as ut, ThemeFontFace as v, LineEnds as vt, CommentSchema as w, SoftEdge as wt, readTagsForPart as x, RecolorColor as xt, ThemeFontScheme as y, OuterShadow as yt, CellThreeD as z, GradientFill as zt };
3547
+ //# sourceMappingURL=presentation-CVaTZw1V.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation-CVaTZw1V.d.ts","names":[],"sources":["../src/read/oxml/theme.ts","../src/read/api/theme-context.ts","../src/read/api/gradient.ts","../src/read/api/picture-fill.ts","../src/read/api/slide-background.ts","../src/read/api/shapes/oxml.ts","../src/read/api/text.ts","../src/read/api/pattern-fill.ts","../src/read/api/shapes/types.ts","../src/read/api/shapes/base.ts","../src/read/api/shapes/autoshape.ts","../src/read/api/shapes/picture.ts","../src/read/api/shapes/connector.ts","../src/read/api/chart.ts","../src/read/api/chartex.ts","../src/read/api/table-edit.ts","../src/read/api/table-style-resolve.ts","../src/read/api/table.ts","../src/read/api/shapes/graphic-frame.ts","../src/read/api/shapes.ts","../src/read/api/notes.ts","../src/read/api/comments.ts","../src/read/api/tags.ts","../src/read/api/chrome.ts","../src/read/api/transition.ts","../src/read/api/slide.ts","../src/read/api/document-properties.ts","../src/read/api/presentation.ts"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { i as PackageReadError, n as InvalidOptionError, o as UnsupportedFeature
2
2
  import { d as emuToInches } from "./units-B-JUKwCS.js";
3
3
  import { i as FONT_REL_TYPE, n as FONT_DATA_CONTENT_TYPE, r as FONT_DATA_EXTENSION, t as EMBEDDED_FONT_SLOTS } from "./embedded-fonts-MaynAHa9.js";
4
4
  import { ZipWriter, readZip } from "./zip.js";
5
- import { $ as escapeXmlAttribute, A as resolveMasterColorContext, B as restyleSlide, D as readGradientFill, E as readPictureFill, F as flattenShape, G as relsPartNameFor, H as partNameExtension, I as flattenSlide, J as OOXML_NS, K as resolveRelativePartName, L as parseClrMap, M as resolveSlideColorContext, N as resolveSlideThemeParts, O as resolveColorElement, Q as createElement, R as parseClrScheme, T as TextFrame, U as partNameToZipPath, V as styleRefFill, W as relativePartName, X as boolValue, Y as attr, Z as childElements, at as intValue, b as Picture, c as wrapShapeElement, ct as removeAttr, dt as setAttr, et as firstChild, it as insertInOrder, j as resolveNotesColorContext, k as resolveLayoutColorContext, l as GraphicFrame, lt as removeChildrenByQName, n as buildShapes, nt as getElements, ot as ownerDocumentOf, q as zipPathToPartName, rt as getOrAddChild, st as parseXml, t as GroupShape, tt as firstChildElement, ut as serializeXml, x as AutoShape, z as remapLiteralColors } from "./shapes-BZU8UTW2.js";
5
+ import { $ as createElement, A as resolveLayoutColorContext, B as remapLiteralColors, D as readPictureFill, E as readPatternFill, G as relativePartName, H as styleRefFill, I as flattenShape, J as zipPathToPartName, K as relsPartNameFor, L as flattenSlide, M as resolveNotesColorContext, N as resolveSlideColorContext, O as readGradientFill, P as resolveSlideThemeParts, Q as childElements, R as parseClrMap, T as TextFrame, U as partNameExtension, V as restyleSlide, W as partNameToZipPath, X as attr, Y as OOXML_NS, Z as boolValue, at as insertInOrder, b as Picture, c as wrapShapeElement, ct as parseXml, dt as serializeXml, et as escapeXmlAttribute, ft as setAttr, it as getOrAddChild, j as resolveMasterColorContext, k as resolveColorElement, l as GraphicFrame, lt as removeAttr, n as buildShapes, nt as firstChildElement, ot as intValue, q as resolveRelativePartName, rt as getElements, st as ownerDocumentOf, t as GroupShape, tt as firstChild, ut as removeChildrenByQName, x as AutoShape, z as parseClrScheme } from "./shapes-CaOgR0i1.js";
6
6
  //#region src/read/opc/content-types.ts
7
7
  /**
8
8
  * Overlay over `[Content_Types].xml`, used to resolve part content types at
@@ -460,20 +460,13 @@ function decodeBackgroundFill(container, ctx, rels) {
460
460
  relId: picture.relId,
461
461
  partName: picture.partName
462
462
  };
463
- const patt = firstChild(container, "a:pattFill");
464
- if (patt) {
465
- const wrapColor = (qname) => {
466
- const wrap = firstChild(patt, qname);
467
- const colorEl = wrap && firstChildElement(wrap);
468
- return colorEl ? resolveColorElement(colorEl, ctx) : null;
469
- };
470
- return {
471
- type: "pattern",
472
- preset: attr(patt, "prst") ?? null,
473
- foreground: wrapColor("a:fgClr"),
474
- background: wrapColor("a:bgClr")
475
- };
476
- }
463
+ const patt = readPatternFill(container, ctx);
464
+ if (patt) return {
465
+ type: "pattern",
466
+ preset: patt.preset,
467
+ foreground: patt.foreground,
468
+ background: patt.background
469
+ };
477
470
  return { type: "none" };
478
471
  }
479
472
  /**
@@ -1368,7 +1361,8 @@ function buildTransitionElement(doc, input, speed, withDur) {
1368
1361
  if (withDur && typeof input.durationMs === "number") setAttr(transition, "p14:dur", String(Math.round(input.durationMs)));
1369
1362
  if (input.advanceOnClick === false) setAttr(transition, "advClick", "0");
1370
1363
  if (typeof input.advanceAfterMs === "number") setAttr(transition, "advTm", String(Math.round(input.advanceAfterMs)));
1371
- const type = createElement(doc, `${input.namespace ?? "p"}:${input.type}`);
1364
+ const prefix = input.namespace ?? "p";
1365
+ const type = createElement(doc, `${prefix}:${input.type}`);
1372
1366
  for (const [name, value] of Object.entries(input.variant ?? {})) setAttr(type, name, value);
1373
1367
  transition.appendChild(type);
1374
1368
  return transition;
@@ -1598,7 +1592,8 @@ function getOrCreateMainSeqChildTnLst(root, doc) {
1598
1592
  }
1599
1593
  let tmRootChildLst = timing.getElementsByTagNameNS(P_NS, "childTnLst")[0];
1600
1594
  if (!tmRootChildLst) {
1601
- const freshTnLst = firstChild(importScaffold(doc, TIMING_SCAFFOLD), "p:tnLst");
1595
+ const fresh = importScaffold(doc, TIMING_SCAFFOLD);
1596
+ const freshTnLst = firstChild(fresh, "p:tnLst");
1602
1597
  if (freshTnLst) insertInOrder(timing, freshTnLst, ["p:bldLst", "p:extLst"]);
1603
1598
  tmRootChildLst = timing.getElementsByTagNameNS(P_NS, "childTnLst")[0];
1604
1599
  }
@@ -2240,7 +2235,8 @@ function buildTextBox(doc, spec) {
2240
2235
  const cNvPr = append(nvSpPr, "p:cNvPr");
2241
2236
  setAttr(cNvPr, "id", String(spec.id));
2242
2237
  setAttr(cNvPr, "name", spec.name);
2243
- setAttr(append(nvSpPr, "p:cNvSpPr"), "txBox", "1");
2238
+ const cNvSpPr = append(nvSpPr, "p:cNvSpPr");
2239
+ setAttr(cNvSpPr, "txBox", "1");
2244
2240
  append(nvSpPr, "p:nvPr");
2245
2241
  const spPr = append(sp, "p:spPr");
2246
2242
  const xfrm = append(spPr, "a:xfrm");
@@ -2277,10 +2273,12 @@ function buildPicture(doc, spec) {
2277
2273
  const cNvPr = append(nvPicPr, "p:cNvPr");
2278
2274
  setAttr(cNvPr, "id", String(spec.id));
2279
2275
  setAttr(cNvPr, "name", spec.name);
2280
- setAttr(append(append(nvPicPr, "p:cNvPicPr"), "a:picLocks"), "noChangeAspect", "1");
2276
+ const picLocks = append(append(nvPicPr, "p:cNvPicPr"), "a:picLocks");
2277
+ setAttr(picLocks, "noChangeAspect", "1");
2281
2278
  append(nvPicPr, "p:nvPr");
2282
2279
  const blipFill = append(pic, "p:blipFill");
2283
- setAttr(append(blipFill, "a:blip"), "r:embed", spec.relId);
2280
+ const blip = append(blipFill, "a:blip");
2281
+ setAttr(blip, "r:embed", spec.relId);
2284
2282
  append(append(blipFill, "a:stretch"), "a:fillRect");
2285
2283
  const spPr = append(pic, "p:spPr");
2286
2284
  const xfrm = append(spPr, "a:xfrm");
@@ -2514,7 +2512,6 @@ function rescaleSpTree(spTree, t) {
2514
2512
  case "graphicFrame":
2515
2513
  rescaleXfrm(firstChild(el, "p:xfrm"), t);
2516
2514
  rescaleTableGrid(el, t);
2517
- break;
2518
2515
  }
2519
2516
  }
2520
2517
  }
@@ -2676,7 +2673,6 @@ function ensureTableStylesPart(dest) {
2676
2673
  */
2677
2674
  const SLIDE_MASTER_REL$3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster";
2678
2675
  const SLIDE_LAYOUT_REL$3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout";
2679
- const MIN_SLIDE_MASTER_ID = 2147483648;
2680
2676
  /**
2681
2677
  * Wire a freshly-copied slide master into `presentation.xml`: add a
2682
2678
  * presentation→master relationship and a `p:sldMasterId` entry in
@@ -2751,7 +2747,7 @@ function promoteMasters(dest, masterPartNames) {
2751
2747
  * allocation so ids appended earlier in the same import are counted.
2752
2748
  */
2753
2749
  function nextMasterLayoutId(dest) {
2754
- let max = MIN_SLIDE_MASTER_ID - 1;
2750
+ let max = 2147483647;
2755
2751
  const presPart = dest.presentationPart;
2756
2752
  const root = presPart.dom.documentElement;
2757
2753
  const masterLst = root && firstChild(root, "p:sldMasterIdLst");
@@ -3375,8 +3371,6 @@ const PRESENTATION_SLD_ID_LST_SUCCESSORS = [
3375
3371
  "p:modifyVerifier",
3376
3372
  "p:extLst"
3377
3373
  ];
3378
- /** ST_SlideId minimum (ECMA-376): slide ids live in [256, 2147483647]. */
3379
- const MIN_SLIDE_ID = 256;
3380
3374
  var Presentation = class Presentation {
3381
3375
  opc;
3382
3376
  #presentationPart;
@@ -4268,7 +4262,7 @@ var Presentation = class Presentation {
4268
4262
  }
4269
4263
  /** A slide id one past the highest existing, but at least ST_SlideId's minimum. */
4270
4264
  #nextSlideId(sldIds) {
4271
- let max = MIN_SLIDE_ID - 1;
4265
+ let max = 255;
4272
4266
  for (const sldId of sldIds) {
4273
4267
  const id = intValue(attr(sldId, "id"));
4274
4268
  if (id !== null && id > max) max = id;
@@ -4283,4 +4277,4 @@ var Presentation = class Presentation {
4283
4277
  //#endregion
4284
4278
  export { Placeholder as a, Theme as c, NotesSlide as d, OpcPackage as f, ContentTypes as h, Slide as i, readTagsForPart as l, Part as m, readCoreProperties as n, SlideLayout as o, Relationships as p, readCustomProperties as r, SlideMaster as s, Presentation as t, NotesPlaceholder as u };
4285
4279
 
4286
- //# sourceMappingURL=presentation-B0JWdTN1.js.map
4280
+ //# sourceMappingURL=presentation-MJe9WDi4.js.map