pptx-react-viewer 3.6.0 → 3.7.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 (161) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{AiChatPanel-WRQGJJVD.mjs → AiChatPanel-L5QGWVZK.mjs} +4 -4
  3. package/dist/AiChatPanel-L5QGWVZK.mjs.br +0 -0
  4. package/dist/AiChatPanel-L5QGWVZK.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-LEOEDIW2.js → AiChatPanel-M3AHKYPS.js} +25 -25
  6. package/dist/AiChatPanel-M3AHKYPS.js.br +0 -0
  7. package/dist/AiChatPanel-M3AHKYPS.js.gz +0 -0
  8. package/dist/{Area3DChartScene-SJC2ZB6R.mjs → Area3DChartScene-AE2XYKDW.mjs} +1 -1
  9. package/dist/Area3DChartScene-AE2XYKDW.mjs.br +1 -0
  10. package/dist/Area3DChartScene-AE2XYKDW.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-3TJ2GTGI.js → Area3DChartScene-ZQLQK6L4.js} +2 -2
  12. package/dist/Area3DChartScene-ZQLQK6L4.js.br +0 -0
  13. package/dist/Area3DChartScene-ZQLQK6L4.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-SPER4LQA.mjs → Bar3DChartScene-FQV62XOI.mjs} +1 -1
  15. package/dist/Bar3DChartScene-FQV62XOI.mjs.br +2 -0
  16. package/dist/Bar3DChartScene-FQV62XOI.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-2ZGOMOZO.js → Bar3DChartScene-TZ6ADFBS.js} +2 -2
  18. package/dist/Bar3DChartScene-TZ6ADFBS.js.br +0 -0
  19. package/dist/Bar3DChartScene-TZ6ADFBS.js.gz +0 -0
  20. package/dist/{Line3DChartScene-42FYFGLU.js → Line3DChartScene-5CKPAX63.js} +2 -2
  21. package/dist/Line3DChartScene-5CKPAX63.js.br +0 -0
  22. package/dist/Line3DChartScene-5CKPAX63.js.gz +0 -0
  23. package/dist/{Line3DChartScene-FH3YHPXE.mjs → Line3DChartScene-FEUY3PCE.mjs} +1 -1
  24. package/dist/Line3DChartScene-FEUY3PCE.mjs.br +1 -0
  25. package/dist/Line3DChartScene-FEUY3PCE.mjs.gz +0 -0
  26. package/dist/{Model3DScene-EIU2GVUZ.js → Model3DScene-BLXEALM6.js} +2 -2
  27. package/dist/Model3DScene-BLXEALM6.js.br +0 -0
  28. package/dist/Model3DScene-BLXEALM6.js.gz +0 -0
  29. package/dist/{Model3DScene-2BCR2YYD.mjs → Model3DScene-V3DHIISV.mjs} +1 -1
  30. package/dist/Model3DScene-V3DHIISV.mjs.br +0 -0
  31. package/dist/Model3DScene-V3DHIISV.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-VQOHZPHI.js → PieChart3DScene-GHHT3PDV.js} +2 -2
  33. package/dist/PieChart3DScene-GHHT3PDV.js.br +0 -0
  34. package/dist/PieChart3DScene-GHHT3PDV.js.gz +0 -0
  35. package/dist/{PieChart3DScene-QFQUJFDP.mjs → PieChart3DScene-VZI2VARG.mjs} +1 -1
  36. package/dist/PieChart3DScene-VZI2VARG.mjs.br +0 -0
  37. package/dist/PieChart3DScene-VZI2VARG.mjs.gz +0 -0
  38. package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
  39. package/dist/{SurfaceChart3DScene-CGXMRBCL.mjs → SurfaceChart3DScene-T36E2HBA.mjs} +1 -1
  40. package/dist/SurfaceChart3DScene-T36E2HBA.mjs.br +0 -0
  41. package/dist/SurfaceChart3DScene-T36E2HBA.mjs.gz +0 -0
  42. package/dist/{SurfaceChart3DScene-FTVXZN6O.js → SurfaceChart3DScene-WWIMQ65D.js} +2 -2
  43. package/dist/SurfaceChart3DScene-WWIMQ65D.js.br +0 -0
  44. package/dist/SurfaceChart3DScene-WWIMQ65D.js.gz +0 -0
  45. package/dist/{chunk-ZWPHUPL4.js → chunk-3EJFZ7TE.js} +5 -5
  46. package/dist/chunk-3EJFZ7TE.js.br +0 -0
  47. package/dist/chunk-3EJFZ7TE.js.gz +0 -0
  48. package/dist/{chunk-AL2KLPOJ.js → chunk-DCNHUEWQ.js} +4058 -1841
  49. package/dist/chunk-DCNHUEWQ.js.br +0 -0
  50. package/dist/chunk-DCNHUEWQ.js.gz +0 -0
  51. package/dist/{chunk-TGCSZXOG.mjs → chunk-FGTMS7LR.mjs} +2 -23
  52. package/dist/chunk-FGTMS7LR.mjs.br +0 -0
  53. package/dist/chunk-FGTMS7LR.mjs.gz +0 -0
  54. package/dist/{chunk-WX7AFFBZ.mjs → chunk-JANUSAEK.mjs} +51 -68
  55. package/dist/chunk-JANUSAEK.mjs.br +0 -0
  56. package/dist/chunk-JANUSAEK.mjs.gz +0 -0
  57. package/dist/{chunk-ZUSYUWOV.mjs → chunk-NV55GU5V.mjs} +4046 -1839
  58. package/dist/chunk-NV55GU5V.mjs.br +0 -0
  59. package/dist/chunk-NV55GU5V.mjs.gz +0 -0
  60. package/dist/{chunk-ZHSBMG37.js → chunk-OBE4TB76.js} +447 -549
  61. package/dist/chunk-OBE4TB76.js.br +0 -0
  62. package/dist/chunk-OBE4TB76.js.gz +0 -0
  63. package/dist/{chunk-VYNICQ4O.mjs → chunk-PC62KGU3.mjs} +12 -114
  64. package/dist/chunk-PC62KGU3.mjs.br +0 -0
  65. package/dist/chunk-PC62KGU3.mjs.gz +0 -0
  66. package/dist/{chunk-NFOOONND.js → chunk-TUSALM3A.js} +1449 -1278
  67. package/dist/chunk-TUSALM3A.js.br +0 -0
  68. package/dist/chunk-TUSALM3A.js.gz +0 -0
  69. package/dist/{chunk-FG5VQFWP.mjs → chunk-TXY2E7VQ.mjs} +265 -94
  70. package/dist/chunk-TXY2E7VQ.mjs.br +0 -0
  71. package/dist/chunk-TXY2E7VQ.mjs.gz +0 -0
  72. package/dist/{chunk-7VPDHSWF.js → chunk-VIFDZIVX.js} +222 -240
  73. package/dist/chunk-VIFDZIVX.js.br +0 -0
  74. package/dist/chunk-VIFDZIVX.js.gz +0 -0
  75. package/dist/{chunk-MZI4DG3S.js → chunk-W24OJ7H5.js} +2 -23
  76. package/dist/chunk-W24OJ7H5.js.br +0 -0
  77. package/dist/chunk-W24OJ7H5.js.gz +0 -0
  78. package/dist/{chunk-T3V5FBXJ.mjs → chunk-WKODF5ZU.mjs} +1 -1
  79. package/dist/chunk-WKODF5ZU.mjs.br +0 -0
  80. package/dist/chunk-WKODF5ZU.mjs.gz +0 -0
  81. package/dist/i18n.js +4 -4
  82. package/dist/i18n.js.br +0 -0
  83. package/dist/i18n.js.gz +0 -0
  84. package/dist/i18n.mjs +1 -1
  85. package/dist/i18n.mjs.br +0 -0
  86. package/dist/i18n.mjs.gz +0 -0
  87. package/dist/index.d.ts +419 -18
  88. package/dist/index.js +47 -47
  89. package/dist/index.js.br +0 -0
  90. package/dist/index.js.gz +0 -0
  91. package/dist/index.mjs +6 -6
  92. package/dist/index.mjs.br +0 -0
  93. package/dist/index.mjs.gz +0 -0
  94. package/dist/internals.d.ts +419 -18
  95. package/dist/internals.d.ts.map +1 -1
  96. package/dist/internals.js +79 -79
  97. package/dist/internals.js.br +0 -0
  98. package/dist/internals.js.gz +0 -0
  99. package/dist/internals.mjs +4 -4
  100. package/dist/internals.mjs.br +0 -0
  101. package/dist/internals.mjs.gz +0 -0
  102. package/dist/viewer/index.d.ts +387 -18
  103. package/dist/viewer/index.js +27 -27
  104. package/dist/viewer/index.js.br +0 -0
  105. package/dist/viewer/index.js.gz +0 -0
  106. package/dist/viewer/index.mjs +6 -6
  107. package/dist/viewer/index.mjs.br +0 -0
  108. package/dist/viewer/index.mjs.gz +0 -0
  109. package/package.json +2 -2
  110. package/dist/AiChatPanel-LEOEDIW2.js.br +0 -0
  111. package/dist/AiChatPanel-LEOEDIW2.js.gz +0 -0
  112. package/dist/AiChatPanel-WRQGJJVD.mjs.br +0 -0
  113. package/dist/AiChatPanel-WRQGJJVD.mjs.gz +0 -0
  114. package/dist/Area3DChartScene-3TJ2GTGI.js.br +0 -0
  115. package/dist/Area3DChartScene-3TJ2GTGI.js.gz +0 -0
  116. package/dist/Area3DChartScene-SJC2ZB6R.mjs.br +0 -2
  117. package/dist/Area3DChartScene-SJC2ZB6R.mjs.gz +0 -0
  118. package/dist/Bar3DChartScene-2ZGOMOZO.js.br +0 -0
  119. package/dist/Bar3DChartScene-2ZGOMOZO.js.gz +0 -0
  120. package/dist/Bar3DChartScene-SPER4LQA.mjs.br +0 -0
  121. package/dist/Bar3DChartScene-SPER4LQA.mjs.gz +0 -0
  122. package/dist/Line3DChartScene-42FYFGLU.js.br +0 -0
  123. package/dist/Line3DChartScene-42FYFGLU.js.gz +0 -0
  124. package/dist/Line3DChartScene-FH3YHPXE.mjs.br +0 -2
  125. package/dist/Line3DChartScene-FH3YHPXE.mjs.gz +0 -0
  126. package/dist/Model3DScene-2BCR2YYD.mjs.br +0 -0
  127. package/dist/Model3DScene-2BCR2YYD.mjs.gz +0 -0
  128. package/dist/Model3DScene-EIU2GVUZ.js.br +0 -0
  129. package/dist/Model3DScene-EIU2GVUZ.js.gz +0 -0
  130. package/dist/PieChart3DScene-QFQUJFDP.mjs.br +0 -0
  131. package/dist/PieChart3DScene-QFQUJFDP.mjs.gz +0 -0
  132. package/dist/PieChart3DScene-VQOHZPHI.js.br +0 -0
  133. package/dist/PieChart3DScene-VQOHZPHI.js.gz +0 -0
  134. package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.br +0 -0
  135. package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.gz +0 -0
  136. package/dist/SurfaceChart3DScene-FTVXZN6O.js.br +0 -0
  137. package/dist/SurfaceChart3DScene-FTVXZN6O.js.gz +0 -0
  138. package/dist/chunk-7VPDHSWF.js.br +0 -0
  139. package/dist/chunk-7VPDHSWF.js.gz +0 -0
  140. package/dist/chunk-AL2KLPOJ.js.br +0 -0
  141. package/dist/chunk-AL2KLPOJ.js.gz +0 -0
  142. package/dist/chunk-FG5VQFWP.mjs.br +0 -0
  143. package/dist/chunk-FG5VQFWP.mjs.gz +0 -0
  144. package/dist/chunk-MZI4DG3S.js.br +0 -0
  145. package/dist/chunk-MZI4DG3S.js.gz +0 -0
  146. package/dist/chunk-NFOOONND.js.br +0 -0
  147. package/dist/chunk-NFOOONND.js.gz +0 -0
  148. package/dist/chunk-T3V5FBXJ.mjs.br +0 -0
  149. package/dist/chunk-T3V5FBXJ.mjs.gz +0 -0
  150. package/dist/chunk-TGCSZXOG.mjs.br +0 -0
  151. package/dist/chunk-TGCSZXOG.mjs.gz +0 -0
  152. package/dist/chunk-VYNICQ4O.mjs.br +0 -0
  153. package/dist/chunk-VYNICQ4O.mjs.gz +0 -0
  154. package/dist/chunk-WX7AFFBZ.mjs.br +0 -0
  155. package/dist/chunk-WX7AFFBZ.mjs.gz +0 -0
  156. package/dist/chunk-ZHSBMG37.js.br +0 -0
  157. package/dist/chunk-ZHSBMG37.js.gz +0 -0
  158. package/dist/chunk-ZUSYUWOV.mjs.br +0 -0
  159. package/dist/chunk-ZUSYUWOV.mjs.gz +0 -0
  160. package/dist/chunk-ZWPHUPL4.js.br +0 -0
  161. package/dist/chunk-ZWPHUPL4.js.gz +0 -0
package/dist/index.d.ts CHANGED
@@ -591,6 +591,44 @@ interface PptxCustomPathProperties {
591
591
  customGeometryTextRect?: CustomGeometryTextRect;
592
592
  }
593
593
  //#endregion
594
+ //#region src/core/types/color-ref.d.ts
595
+ /**
596
+ * Theme colour references: the typed counterpart of `<a:schemeClr>`.
597
+ *
598
+ * A colour picked from the theme palette is remembered as a scheme slot plus
599
+ * PowerPoint's luminance variants rather than as the sRGB it currently
600
+ * resolves to, so a later theme change re-colours the shape (and a saved file
601
+ * keeps `<a:schemeClr>` instead of a canonical `<a:srgbClr>`).
602
+ *
603
+ * @module types/color-ref
604
+ */
605
+ /**
606
+ * The scheme slot names `a:schemeClr/@val` accepts (ECMA-376 `ST_SchemeColorIndex`).
607
+ * `bg1`/`tx1`/`bg2`/`tx2` are the colour-map aliases a slide resolves through
608
+ * `p:clrMap`; `phClr` is the placeholder colour used inside a theme's style
609
+ * matrix and is never chosen from a picker.
610
+ */
611
+ type PptxThemeColorSchemeName = 'dk1' | 'lt1' | 'dk2' | 'lt2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6' | 'hlink' | 'folHlink' | 'bg1' | 'tx1' | 'bg2' | 'tx2' | 'phClr';
612
+ /**
613
+ * A theme colour choice. Every transform is a 0..1 fraction of the OOXML
614
+ * percentage (`lumMod val="20000"` is `lumMod: 0.2`), matching how the parser
615
+ * reads them, and is applied in the order `a:schemeClr` children are written:
616
+ * `tint`, `shade`, `lumMod`, `lumOff`, `alpha`.
617
+ */
618
+ interface PptxThemeColorRef {
619
+ scheme: PptxThemeColorSchemeName;
620
+ /** `a:lumMod`: multiply HSL luminance (PowerPoint's "Lighter/Darker" rows). */
621
+ lumMod?: number;
622
+ /** `a:lumOff`: add to HSL luminance after `lumMod` ("Lighter N%" rows). */
623
+ lumOff?: number;
624
+ /** `a:tint`: blend towards white. */
625
+ tint?: number;
626
+ /** `a:shade`: blend towards black. */
627
+ shade?: number;
628
+ /** `a:alpha`: opacity fraction (1 = opaque). */
629
+ alpha?: number;
630
+ }
631
+ //#endregion
594
632
  //#region src/core/types/effect-dag.d.ts
595
633
  type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
596
634
  type EffectDagContainerType = 'sib' | 'tree';
@@ -880,6 +918,15 @@ interface ShapeStyle {
880
918
  * back to canonical `<a:srgbClr>`.
881
919
  */
882
920
  fillColorXml?: XmlObject;
921
+ /**
922
+ * Typed theme colour reference for the fill, set when {@link fillColorXml}
923
+ * is a plain `a:schemeClr` (see `themeColorRefFromColorChoice`). When
924
+ * present it WINS on save: the writer emits `<a:schemeClr>` from this ref
925
+ * instead of the resolved {@link fillColor}, so the fill keeps following
926
+ * the theme palette after a later theme change. `undefined` means the fill
927
+ * is a plain hex (or a colour kind a ref cannot express).
928
+ */
929
+ fillColorRef?: PptxThemeColorRef;
883
930
  fillGradient?: string;
884
931
  /** Original `gradFill` XML retained for unknown-child and extension round-tripping. */
885
932
  fillGradientXml?: XmlObject;
@@ -914,6 +961,12 @@ interface ShapeStyle {
914
961
  opacity?: number;
915
962
  /** Raw XML colour node preserved for round-trip (e.g. a:schemeClr with transforms). */
916
963
  originalColorXml?: XmlObject;
964
+ /**
965
+ * Typed theme colour reference for this stop, set when
966
+ * {@link originalColorXml} is a plain `a:schemeClr`. Wins on save, same
967
+ * as {@link ShapeStyle.fillColorRef}.
968
+ */
969
+ colorRef?: PptxThemeColorRef;
917
970
  }>;
918
971
  fillGradientAngle?: number;
919
972
  fillGradientType?: 'linear' | 'radial';
@@ -960,6 +1013,12 @@ interface ShapeStyle {
960
1013
  * round-trip serialisation. See {@link fillColorXml} for the rationale.
961
1014
  */
962
1015
  strokeColorXml?: XmlObject;
1016
+ /**
1017
+ * Typed theme colour reference for the outline, mirroring
1018
+ * {@link fillColorRef}: set when {@link strokeColorXml} is a plain
1019
+ * `a:schemeClr`, and wins on save.
1020
+ */
1021
+ strokeColorRef?: PptxThemeColorRef;
963
1022
  /**
964
1023
  * Kind of fill painted on the outline (`a:ln` child). Distinguishes a solid
965
1024
  * outline from a gradient/pattern/none outline so save can emit the correct
@@ -1463,6 +1522,15 @@ interface TextStyle {
1463
1522
  * verbatim when the resolved {@link color} still matches this node.
1464
1523
  */
1465
1524
  colorXml?: XmlObject;
1525
+ /**
1526
+ * Typed theme colour reference for the run's text colour, set when
1527
+ * {@link colorXml} is a plain `a:schemeClr` (see
1528
+ * `themeColorRefFromColorChoice`). When present it WINS on save: the
1529
+ * writer emits `<a:schemeClr>` from this ref instead of the resolved
1530
+ * {@link color}, so the text keeps following the theme palette after a
1531
+ * later theme change.
1532
+ */
1533
+ colorRef?: PptxThemeColorRef;
1466
1534
  align?: 'left' | 'center' | 'right' | 'justify' | 'justLow' | 'dist' | 'thaiDist';
1467
1535
  /**
1468
1536
  * Vertical text-box anchor (`a:bodyPr/@anchor`, `ST_TextAnchoringType`).
@@ -1888,6 +1956,12 @@ interface BulletInfo {
1888
1956
  * identity rather than being flattened to `<a:srgbClr/>` on save.
1889
1957
  */
1890
1958
  colorXml?: XmlObject;
1959
+ /**
1960
+ * Typed theme colour reference for the bullet colour, set when
1961
+ * {@link colorXml} is a plain `a:schemeClr`. Wins on save, same as
1962
+ * {@link TextStyle.colorRef}.
1963
+ */
1964
+ colorRef?: PptxThemeColorRef;
1891
1965
  /** True when `a:buNone` explicitly suppresses bullets. */
1892
1966
  none?: boolean;
1893
1967
  /** Picture bullet: relationship ID from `a:buBlip` → `a:blip[@r:embed]`. */
@@ -2499,6 +2573,39 @@ interface PptxChartStyleDefinition {
2499
2573
  plotArea?: PptxChartStylePartEntry;
2500
2574
  }
2501
2575
  //#endregion
2576
+ //#region src/core/types/chart-title.d.ts
2577
+ /**
2578
+ * Chart title rich-text run type, split out of `types/chart.ts` (already at
2579
+ * the repo's file-size limit) to keep that module from growing further.
2580
+ *
2581
+ * @module pptx-types/chart-title
2582
+ */
2583
+ /**
2584
+ * One run of a chart title's rich text (`c:title/c:tx/c:rich/a:p/a:r`).
2585
+ *
2586
+ * The flat `PptxChartData.title` field only ever captured the FIRST run's
2587
+ * text with no per-run formatting; `titleRuns` (when present) is the
2588
+ * lossless, multi-run replacement parsed from the same `c:rich` body. Absent
2589
+ * when the title has no rich text at all (an empty/auto title, or one
2590
+ * authored as a linked-cell reference).
2591
+ */
2592
+ interface PptxChartTitleRun {
2593
+ /** This run's text (`a:t`). */
2594
+ text: string;
2595
+ /** `a:rPr/@_b`. */
2596
+ bold?: boolean;
2597
+ /** `a:rPr/@_i`. */
2598
+ italic?: boolean;
2599
+ /**
2600
+ * Font size in POINTS (`a:rPr/@_sz`, hundredths of a point / 100), matching
2601
+ * `PptxChartLegendTextStyle.fontSize`'s convention rather than the pixel
2602
+ * convention `TextStyle.fontSize` uses for slide text.
2603
+ */
2604
+ fontSize?: number;
2605
+ /** Resolved hex colour (e.g. `"#FF0000"`) from `a:rPr/a:solidFill`. */
2606
+ color?: string;
2607
+ }
2608
+ //#endregion
2502
2609
  //#region src/core/types/chart-user-shapes.d.ts
2503
2610
  /**
2504
2611
  * Types for chart drawing-overlay shapes (`c:userShapes`).
@@ -2647,6 +2754,10 @@ interface PptxChartTrendline {
2647
2754
  displayRSq?: boolean;
2648
2755
  displayEq?: boolean;
2649
2756
  color?: string;
2757
+ /** Trendline width in points (`c:trendline/c:spPr/a:ln/@w`, EMU / 12700). */
2758
+ lineWidth?: number;
2759
+ /** Trendline dash style (`c:trendline/c:spPr/a:ln/a:prstDash/@val`). */
2760
+ lineDashStyle?: string;
2650
2761
  label?: PptxChartTrendlineLabel | null;
2651
2762
  }
2652
2763
  /** Typed, commonly edited properties of `c:trendlineLbl`. */
@@ -2692,6 +2803,10 @@ interface PptxChartErrBars {
2692
2803
  customMinus?: number[];
2693
2804
  noEndCap?: boolean;
2694
2805
  color?: string;
2806
+ /** Error-bar line width in points (`c:errBars/c:spPr/a:ln/@w`, EMU / 12700). */
2807
+ width?: number;
2808
+ /** Error-bar line dash style (`c:errBars/c:spPr/a:ln/a:prstDash/@val`). */
2809
+ dashStyle?: string;
2695
2810
  }
2696
2811
  /**
2697
2812
  * Visibility flags for the chart data table (axes + legend keys).
@@ -2818,6 +2933,12 @@ interface PptxChartDataLabel {
2818
2933
  * `.../a:p/a:pPr/a:defRPr` default-run-property style.
2819
2934
  */
2820
2935
  txPr?: PptxChartLegendTextStyle;
2936
+ /**
2937
+ * This label's own shape formatting (`c:dLbl/c:spPr`): fill/line colour,
2938
+ * width, and dash style for the label's callout box, taking precedence
2939
+ * over any chart/series-level default when set.
2940
+ */
2941
+ spPr?: PptxChartShapeProps;
2821
2942
  }
2822
2943
  /** Axis number format. */
2823
2944
  interface PptxChartAxisNumFmt {
@@ -3381,6 +3502,16 @@ interface PptxChartDateCategories {
3381
3502
  */
3382
3503
  interface PptxChartData {
3383
3504
  title?: string;
3505
+ /**
3506
+ * Rich-text runs of the title, parsed from `c:title/c:tx/c:rich` (issue:
3507
+ * chart title rich text). Lossless multi-run alternative to the flat
3508
+ * {@link title}: when present, the writer serialises every run's own
3509
+ * bold/italic/size/color; when absent, save falls back to the flat
3510
+ * `title` path as before. Only populated for a classic (`c:`) chart's
3511
+ * rich (typed) title, not a ChartEx (`cx:`) title or one authored as a
3512
+ * linked-cell reference.
3513
+ */
3514
+ titleRuns?: PptxChartTitleRun[];
3384
3515
  chartType: PptxChartType;
3385
3516
  categories: string[];
3386
3517
  /**
@@ -3472,8 +3603,10 @@ interface PptxChartData {
3472
3603
  chartRelationshipId?: string;
3473
3604
  /** `null` explicitly removes an existing ChartML data table. */
3474
3605
  dataTable?: PptxChartDataTable | null;
3475
- dropLines?: PptxChartLineStyle;
3476
- hiLowLines?: PptxChartLineStyle;
3606
+ /** `null` explicitly removes an existing `c:dropLines` element. */
3607
+ dropLines?: PptxChartLineStyle | null;
3608
+ /** `null` explicitly removes an existing `c:hiLowLines` element. */
3609
+ hiLowLines?: PptxChartLineStyle | null;
3477
3610
  /** `null` explicitly removes an existing up/down-bars container. */
3478
3611
  upDownBars?: PptxChartUpDownBars | null;
3479
3612
  axes?: PptxChartAxisFormatting[];
@@ -3588,10 +3721,13 @@ interface PptxChartData {
3588
3721
  pivotFormats?: PptxChartPivotFormats | null;
3589
3722
  /**
3590
3723
  * Color-map override (`c:clrMapOvr`) carrying 12 attributes that
3591
- * remap theme colour roles for this chart only. Preserved as a flat
3592
- * `attribute value` map for round-trip fidelity.
3724
+ * remap theme colour roles for this chart only. Modeled as a flat
3725
+ * `attribute -> value` map (e.g. `{ bg1: 'lt1', accent1: 'accent2' }`)
3726
+ * so unknown/future attributes round-trip without code changes.
3727
+ * `null` explicitly removes an existing `c:clrMapOvr`; an empty object
3728
+ * is treated the same as `null` on save.
3593
3729
  */
3594
- clrMapOvr?: Record<string, string>;
3730
+ clrMapOvr?: Record<string, string> | null;
3595
3731
  /**
3596
3732
  * Whether the chart's own cached numeric values use the 1904 date epoch
3597
3733
  * (`c:chartSpace/c:date1904/@val`). Independent of, and authoritative over,
@@ -4968,13 +5104,55 @@ interface PptxSmartArtData {
4968
5104
  drawingDirty?: boolean;
4969
5105
  }
4970
5106
  //#endregion
4971
- //#region src/core/types/table.d.ts
5107
+ //#region src/core/types/table-style-edit.d.ts
5108
+ /**
5109
+ * A `a:fillRef`/`a:lnRef`/`a:effectRef`-style style-matrix reference: an
5110
+ * index into the theme's format scheme (`a:fmtScheme/a:fillStyleLst`, 1-based
5111
+ * per ECMA-376 §20.1.4.1.12) plus an optional colour transform child.
5112
+ *
5113
+ * Distinct from an already-resolved {@link ParsedTableStyleFill}: a fill ref
5114
+ * points AT a theme style-matrix entry rather than carrying a colour choice
5115
+ * directly, though the two commonly appear together (`<a:fillRef idx="2">
5116
+ * <a:schemeClr val="accent1"/></a:fillRef>`).
5117
+ *
5118
+ * @example
5119
+ * ```ts
5120
+ * const ref: ParsedTableFillRef = { idx: 2, color: { schemeColor: 'accent1' } };
5121
+ * // => satisfies ParsedTableFillRef
5122
+ * ```
5123
+ */
5124
+ interface ParsedTableFillRef {
5125
+ /** 1-based index into the theme format scheme's fill style list. */
5126
+ idx: number;
5127
+ /** Colour transform child (`a:schemeClr`/`a:srgbClr`) applied to the referenced style. */
5128
+ color?: ParsedTableStyleFill;
5129
+ }
4972
5130
  /**
4973
- * Table types: cell styling, cell data, rows, table data, and the parsed
4974
- * table style map from `ppt/tableStyles.xml`.
5131
+ * One leaf (or `effectDag`-wrapped) node of an `a:effectLst`/`a:effectDag`
5132
+ * effect chain, kept mostly opaque: {@link kind} names the OOXML element so a
5133
+ * consumer can recognise common effects (`outerShdw`, `glow`, `softEdge`,
5134
+ * `reflection`, `blur`, `innerShdw`, `prstShdw`, `fillOverlay`, `alphaModFix`,
5135
+ * `alphaInv`, `grayscl`, `biLevel`, `duotone`, `hsl`, `lum`, `tint`) without
5136
+ * this module re-deriving the full shape-effect taxonomy already modelled on
5137
+ * `ShapeStyle`; {@link xml} preserves the node verbatim for lossless re-emit.
4975
5138
  *
4976
- * @module pptx-types/table
5139
+ * @example
5140
+ * ```ts
5141
+ * const effect: ParsedTableStyleEffect = {
5142
+ * kind: 'outerShdw',
5143
+ * xml: { '@_blurRad': '40000', '@_dist': '20000', '@_dir': '5400000' },
5144
+ * };
5145
+ * // => satisfies ParsedTableStyleEffect
5146
+ * ```
4977
5147
  */
5148
+ interface ParsedTableStyleEffect {
5149
+ /** The OOXML element's local name, e.g. `outerShdw`, `glow`, `softEdge`. */
5150
+ kind: string;
5151
+ /** Verbatim XML node (attributes + children) for lossless round-trip. */
5152
+ xml: XmlObject;
5153
+ }
5154
+ //#endregion
5155
+ //#region src/core/types/table.d.ts
4978
5156
  /**
4979
5157
  * Per-cell visual style for a table cell.
4980
5158
  *
@@ -5011,6 +5189,14 @@ interface PptxTableCellStyle {
5011
5189
  * future expansion alongside the run-properties round-trip path.
5012
5190
  */
5013
5191
  colorXml?: XmlObject;
5192
+ /**
5193
+ * Typed theme colour reference for the cell text colour, set when
5194
+ * {@link colorXml} is a plain `a:schemeClr`. Wins on save, mirroring
5195
+ * `TextStyle.colorRef`. Distinct from {@link ParsedTableStyleFill.schemeColor},
5196
+ * which describes a `ppt/tableStyles.xml` section fill rather than an
5197
+ * individual cell override.
5198
+ */
5199
+ colorRef?: PptxThemeColorRef;
5014
5200
  backgroundColor?: string;
5015
5201
  /**
5016
5202
  * Raw XML colour-choice node preserved from cell `a:tcPr/a:solidFill` for
@@ -5018,6 +5204,12 @@ interface PptxTableCellStyle {
5018
5204
  * {@link backgroundColor} still matches the original colour.
5019
5205
  */
5020
5206
  backgroundColorXml?: XmlObject;
5207
+ /**
5208
+ * Typed theme colour reference for the cell fill, set when
5209
+ * {@link backgroundColorXml} is a plain `a:schemeClr`. Wins on save,
5210
+ * mirroring `ShapeStyle.fillColorRef`.
5211
+ */
5212
+ backgroundColorRef?: PptxThemeColorRef;
5021
5213
  borderColor?: string;
5022
5214
  /** Top border width in px. */
5023
5215
  borderTopWidth?: number;
@@ -5331,12 +5523,14 @@ interface PptxTableData {
5331
5523
  */
5332
5524
  tableFill?: ParsedTableStyleFill;
5333
5525
  /**
5334
- * Whether `a:tblPr` carries its own `a:effectLst`/`a:effectDag`,
5335
- * independent of the referenced table style. Presence-only: the concrete
5336
- * effect is not yet rendered, and the raw XML round-trips separately via
5337
- * whatever preserves `a:tblPr`'s unrecognised children (issue G6).
5526
+ * `a:tblPr`'s own `a:effectLst` (or `a:effectDag`) effect chain,
5527
+ * independent of the referenced table style, decomposed into a typed
5528
+ * sequence of {@link ParsedTableStyleEffect} nodes (issue G6). Each node
5529
+ * keeps its own XML verbatim for lossless round-trip; empty array is
5530
+ * normalised to `undefined` by the parser so `tableEffects` is only ever
5531
+ * present when there is at least one effect.
5338
5532
  */
5339
- tableEffects?: boolean;
5533
+ tableEffects?: ParsedTableStyleEffect[];
5340
5534
  }
5341
5535
  /**
5342
5536
  * A single fill reference within a table style section.
@@ -5512,13 +5706,20 @@ interface ParsedTableStyleBorders {
5512
5706
  /**
5513
5707
  * Table background style (CT_TableBackgroundStyle, ECMA-376 §21.1.3.7).
5514
5708
  *
5515
- * Corresponds to the `<a:tblBg>` child of `<a:tblStyle>`. Currently
5516
- * captures only the resolved scheme-fill colour (verbatim XML for fill
5517
- * / effect references is preserved separately by the save path).
5709
+ * Corresponds to the `<a:tblBg>` child of `<a:tblStyle>`. Captures the
5710
+ * resolved scheme-fill colour, an unresolved style-matrix `a:fillRef`, and a
5711
+ * presence flag for effects (verbatim XML for the effect list is preserved
5712
+ * separately by the save path).
5518
5713
  */
5519
5714
  interface ParsedTableBackground {
5520
5715
  /** Solid fill (resolved from `a:fill > a:solidFill > a:schemeClr`). */
5521
5716
  fill?: ParsedTableStyleFill;
5717
+ /**
5718
+ * Style-matrix fill reference (`<a:fillRef idx="N">...</a:fillRef>`),
5719
+ * mutually exclusive with {@link fill} (`a:fill` is the choice sibling of
5720
+ * `a:fillRef` in `CT_TableBackgroundStyle`).
5721
+ */
5722
+ fillRef?: ParsedTableFillRef;
5522
5723
  /** Has an `a:effectLst` child that should be round-tripped. */
5523
5724
  hasEffectLst?: boolean;
5524
5725
  }
@@ -5770,6 +5971,13 @@ interface TablePptxElement extends PptxElementBase {
5770
5971
  type: 'table';
5771
5972
  /** Parsed table cell data for editing. */
5772
5973
  tableData?: PptxTableData;
5974
+ /**
5975
+ * Accessibility description from `p:nvGraphicFramePr/p:cNvPr/@descr`, the
5976
+ * same non-visual-properties attribute a picture's alt text comes from.
5977
+ */
5978
+ altText?: string;
5979
+ /** Accessibility title from `p:nvGraphicFramePr/p:cNvPr/@title`. */
5980
+ title?: string;
5773
5981
  /**
5774
5982
  * Unrecognised extensions captured from `a:graphicData/a:extLst` so they
5775
5983
  * round-trip losslessly. See {@link PptxGraphicFrameExtension}.
@@ -5785,6 +5993,10 @@ interface TablePptxElement extends PptxElementBase {
5785
5993
  interface ChartPptxElement extends PptxElementBase {
5786
5994
  type: 'chart';
5787
5995
  chartData?: PptxChartData;
5996
+ /** Accessibility description from `p:nvGraphicFramePr/p:cNvPr/@descr`. */
5997
+ altText?: string;
5998
+ /** Accessibility title from `p:nvGraphicFramePr/p:cNvPr/@title`. */
5999
+ title?: string;
5788
6000
  /** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
5789
6001
  extensionXml?: PptxGraphicFrameExtension[];
5790
6002
  }
@@ -5802,6 +6014,10 @@ interface ChartPptxElement extends PptxElementBase {
5802
6014
  interface SmartArtPptxElement extends PptxElementBase {
5803
6015
  type: 'smartArt';
5804
6016
  smartArtData?: PptxSmartArtData;
6017
+ /** Accessibility description from `p:nvGraphicFramePr/p:cNvPr/@descr`. */
6018
+ altText?: string;
6019
+ /** Accessibility title from `p:nvGraphicFramePr/p:cNvPr/@title`. */
6020
+ title?: string;
5805
6021
  /** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
5806
6022
  extensionXml?: PptxGraphicFrameExtension[];
5807
6023
  }
@@ -5888,6 +6104,10 @@ interface OlePptxElement extends PptxElementBase {
5888
6104
  * `false`; `undefined` means the source authored no explicit value.
5889
6105
  */
5890
6106
  oleUpdateAutomatic?: boolean;
6107
+ /** Accessibility description from `p:nvGraphicFramePr/p:cNvPr/@descr`. */
6108
+ altText?: string;
6109
+ /** Accessibility title from `p:nvGraphicFramePr/p:cNvPr/@title`. */
6110
+ title?: string;
5891
6111
  /** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
5892
6112
  extensionXml?: PptxGraphicFrameExtension[];
5893
6113
  }
@@ -5979,6 +6199,15 @@ interface MediaPptxElement extends PptxElementBase {
5979
6199
  * (`r:embed`). Defaults to embedded when undefined.
5980
6200
  */
5981
6201
  isLinked?: boolean;
6202
+ /**
6203
+ * Accessibility description from `p:nvGraphicFramePr/p:cNvPr/@descr`.
6204
+ * Only populated for the `p:graphicFrame`-shaped (SDK-created) media
6205
+ * form; a `p:pic`-shaped media element's alt text is not currently
6206
+ * parsed (see `PptxHandlerRuntimePictureParsing.ts`).
6207
+ */
6208
+ altText?: string;
6209
+ /** Accessibility title from `p:nvGraphicFramePr/p:cNvPr/@title`. Same scope note as {@link altText}. */
6210
+ title?: string;
5982
6211
  /** Unrecognised graphicFrame extLst extensions, captured verbatim for round-trip. */
5983
6212
  extensionXml?: PptxGraphicFrameExtension[];
5984
6213
  }
@@ -6485,7 +6714,20 @@ interface PptxAnimationGraphicElementTarget {
6485
6714
  seriesIdx?: number;
6486
6715
  /** `@_categoryIdx`, 0-based category index, when the target is category-scoped. */
6487
6716
  categoryIdx?: number;
6488
- /** `@_bldStep` (ST_TLChartBuildStep): `category` / `categoryEl` / `series` / `seriesEl`. */
6717
+ /**
6718
+ * `p:dgm/@_id` (CT_TLBuildDiagram, ECMA-376 S19.5.10): the diagram DATA MODEL
6719
+ * point id (`dgm:pt/@modelId`) this per-stage effect reveals, when a
6720
+ * `p:bldDgm` build authors one effect per node instead of a single staged
6721
+ * reveal. `dgm`-kind targets only; a `chart`-kind target never carries this.
6722
+ * Matches `PptxSmartArtNode.id` (parsed from the same `@modelId`), so a
6723
+ * diagram renderer can reveal the exact authored node.
6724
+ */
6725
+ id?: string;
6726
+ /**
6727
+ * `@_bldStep`: `ST_TLChartBuildStep` (`category` / `categoryEl` / `series` /
6728
+ * `seriesEl`) for a `chart`-kind target, or `ST_TLDiagramBuildStep`
6729
+ * (`sp` / `bg`) for a `dgm`-kind target.
6730
+ */
6489
6731
  bldStep?: string;
6490
6732
  }
6491
6733
  /**
@@ -6935,6 +7177,34 @@ interface PptxNativeAnimation {
6935
7177
  * `childStyle`, a legacy compatibility hint. Round-tripped only.
6936
7178
  */
6937
7179
  cBhvrOverride?: 'normal' | 'childStyle';
7180
+ /**
7181
+ * `p:set` discrete attribute assignments composed alongside this effect
7182
+ * (ECMA-376 S19.5.79 CT_TLSetBehavior): an instantaneous (non-interpolated)
7183
+ * value change, as opposed to {@link attributeAnimations}'s `p:anim`
7184
+ * keyframe ramps. PowerPoint authors several font-style emphasis effects
7185
+ * this way (Bold Reveal, Underline, Bold Flash, Change Font Size), since
7186
+ * "on/off" or "size N" has nothing to interpolate. Not yet consulted by
7187
+ * shared playback (round-trip/typed-model only so far).
7188
+ */
7189
+ setAnimations?: PptxSetAnimation[];
7190
+ }
7191
+ /**
7192
+ * One `p:set` discrete (non-interpolated) attribute assignment composed
7193
+ * alongside an authored effect. See {@link PptxNativeAnimation.setAnimations}.
7194
+ *
7195
+ * @see ECMA-376 S19.5.79 CT_TLSetBehavior
7196
+ */
7197
+ interface PptxSetAnimation {
7198
+ /** Lowercased target attribute from `p:cBhvr/p:attrNameLst/p:attrName`. */
7199
+ attrName: string;
7200
+ /** Decoded value from `p:to` (same variant shape as a `p:tav/p:val`). */
7201
+ value: string | boolean | number;
7202
+ /** Discriminant indicating which `p:to` child carried the value. */
7203
+ valueType: 'str' | 'bool' | 'int' | 'flt' | 'clr';
7204
+ /** Duration from this behaviour's nested `p:cTn/@dur`. */
7205
+ durationMs?: number;
7206
+ /** Start offset from this behaviour's nested `p:stCondLst`. */
7207
+ delayMs?: number;
6938
7208
  }
6939
7209
  /**
6940
7210
  * Parsed `p:animEffect/@filter` (+ `@transition`) descriptor. ECMA-376
@@ -7202,6 +7472,16 @@ interface PptxElementAnimation {
7202
7472
  * OOXML equivalent and is not required for playback.
7203
7473
  */
7204
7474
  soundFileName?: string;
7475
+ /**
7476
+ * Per-build-level timing template(s) from the {@link sequence}'s own
7477
+ * `p:bldP/p:tmplLst` (ECMA-376 §19.5.84), carried over from the loaded
7478
+ * `PptxNativeAnimation.buildTemplates` this element animation was derived
7479
+ * from so a full timing-tree rebuild (`PptxAnimationWriteService`'s
7480
+ * `buildTimingXml`, when the slide had no prior `p:timing`) can re-emit
7481
+ * them instead of silently dropping the deck's authored per-level
7482
+ * defaults. Absent when {@link sequence} carries no such template.
7483
+ */
7484
+ buildTemplates?: PptxTimingTemplate[];
7205
7485
  }
7206
7486
  /**
7207
7487
  * A read-only anchor representing one of the deck's own effect groups: a
@@ -8118,6 +8398,22 @@ interface PptxActiveXControl {
8118
8398
  name?: string;
8119
8399
  /** Shape ID this control is linked to (from @spid). */
8120
8400
  shapeId?: string;
8401
+ /**
8402
+ * `p:control/@showAsIcon` (CT_Control, ECMA-376 S19.3.1.2): whether the
8403
+ * control renders as its static icon rather than its live appearance.
8404
+ * `undefined` when the source authored no explicit value (schema default
8405
+ * `false`).
8406
+ */
8407
+ showAsIcon?: boolean;
8408
+ /**
8409
+ * `p:control/@imgW` in EMU (ST_PositiveCoordinate32): the width the host
8410
+ * reserves for the control's icon/preview image. Distinct from
8411
+ * {@link width}, which is the fallback `p:pic`'s own `a:ext/@cx` in px;
8412
+ * `imgW`/`imgH` are direct attributes on `p:control` itself.
8413
+ */
8414
+ imgWidthEmu?: number;
8415
+ /** `p:control/@imgH` in EMU (ST_PositiveCoordinate32). @see imgWidthEmu */
8416
+ imgHeightEmu?: number;
8121
8417
  /** X position (px) of the control's fallback picture, if present. */
8122
8418
  x?: number;
8123
8419
  /** Y position (px) of the control's fallback picture, if present. */
@@ -8574,6 +8870,34 @@ interface PptxPhotoAlbum {
8574
8870
  layout?: string;
8575
8871
  /** Frame style applied to each photo (e.g. "frameStyle1"). */
8576
8872
  frame?: string;
8873
+ /**
8874
+ * `p:photoAlbum/@isPhoto` (ECMA-376 S19.2.1.27, CT_PhotoAlbum): whether
8875
+ * the pictures placed by the album wizard are real photographs, as
8876
+ * opposed to clip art or other embedded images. `undefined` when the
8877
+ * source authored no explicit value (schema default `false`); this is a
8878
+ * purely declarative wizard-provenance flag, not something this library
8879
+ * gates any layout/frame behaviour on.
8880
+ */
8881
+ isPhoto?: boolean;
8882
+ }
8883
+ /**
8884
+ * A recognizer-owned `p:smartTags` reference from `presentation.xml`
8885
+ * (CT_SmartTags, ECMA-376 S19.2.1.42): a bare relationship id pointing at a
8886
+ * legacy Office "Smart Tags" recognizer part, distinct from the
8887
+ * user-authored `p:tags` construct (see {@link PptxTagCollection}).
8888
+ *
8889
+ * This library has no data model for recognizer part CONTENT (there is no
8890
+ * way to create, inspect, or edit one through the public API), so this type
8891
+ * only captures enough to preserve an authored reference losslessly: the
8892
+ * relationship id and, when resolvable, the target part path.
8893
+ */
8894
+ interface PptxSmartTagsReference {
8895
+ /** Relationship id from `p:smartTags/@r:id`. */
8896
+ relId: string;
8897
+ /** Resolved ZIP path of the referenced recognizer part, when resolvable. */
8898
+ targetPath?: string;
8899
+ /** Raw `p:smartTags` XML retained for lossless round-trip. */
8900
+ rawXml?: XmlObject;
8577
8901
  }
8578
8902
  /**
8579
8903
  * East Asian line-break (kinsoku) settings from `p:kinsoku` in `presentation.xml`.
@@ -8638,6 +8962,13 @@ interface PptxData {
8638
8962
  themeOptions?: PptxThemeOption[];
8639
8963
  /** Parsed table style definitions from `ppt/tableStyles.xml`. */
8640
8964
  tableStyleMap?: ParsedTableStyleMap;
8965
+ /**
8966
+ * The current default table style GUID (`ppt/tableStyles.xml`'s
8967
+ * `a:tblStyleLst/@def`): the style PowerPoint applies to a newly inserted
8968
+ * table. Matches `PptxSaveOptions.tableStylesDefaultId` so a save call
8969
+ * that omits it can fall back to what was loaded.
8970
+ */
8971
+ tableStylesDefaultId?: string;
8641
8972
  /** Whether the presentation is password-protected. */
8642
8973
  isPasswordProtected?: boolean;
8643
8974
  /** Embedded font data (name + binary data URL) extracted from the presentation. */
@@ -8697,6 +9028,14 @@ interface PptxData {
8697
9028
  modifyVerifier?: PptxModifyVerifier;
8698
9029
  /** Photo album metadata from `p:photoAlbum` in `presentation.xml`. */
8699
9030
  photoAlbum?: PptxPhotoAlbum;
9031
+ /**
9032
+ * Legacy Smart Tags recognizer reference from `p:smartTags` in
9033
+ * `presentation.xml`. Read-only: there is no data model for the
9034
+ * recognizer part's own content, so this exists to make the reference
9035
+ * inspectable and to prove it survives a save (the owning part and its
9036
+ * relationship are preserved passively, like any other unmodelled part).
9037
+ */
9038
+ smartTags?: PptxSmartTagsReference;
8700
9039
  /** East Asian line-break settings from `p:kinsoku` in `presentation.xml`. */
8701
9040
  kinsoku?: PptxKinsoku;
8702
9041
  /** Custom XML data parts from `customXml/` in the OPC package. */
@@ -8861,6 +9200,14 @@ type FillInput = {
8861
9200
  type: 'solid';
8862
9201
  color: string;
8863
9202
  opacity?: number;
9203
+ /**
9204
+ * A theme colour to use instead of a plain hex. When set, the shape
9205
+ * saves as `<a:schemeClr>` (e.g. `{ scheme: 'accent1', lumMod: 0.8 }`
9206
+ * for "Accent 1, Lighter 80%") so it keeps following the theme after a
9207
+ * later theme change; `color` still supplies the immediate resolved
9208
+ * hex for renderers that read it directly.
9209
+ */
9210
+ themeColorRef?: PptxThemeColorRef;
8864
9211
  } | {
8865
9212
  type: 'gradient';
8866
9213
  /**
@@ -8896,6 +9243,8 @@ interface StrokeInput {
8896
9243
  opacity?: number;
8897
9244
  join?: 'round' | 'bevel' | 'miter';
8898
9245
  cap?: 'flat' | 'rnd' | 'sq';
9246
+ /** A theme colour for the outline; see {@link FillInput}'s `themeColorRef`. */
9247
+ themeColorRef?: PptxThemeColorRef;
8899
9248
  }
8900
9249
  interface ShadowInput {
8901
9250
  color?: string;
@@ -8912,6 +9261,8 @@ interface TextStyleInput {
8912
9261
  underline?: boolean;
8913
9262
  strikethrough?: boolean;
8914
9263
  color?: string;
9264
+ /** A theme colour for the run; see {@link FillInput}'s `themeColorRef`. */
9265
+ themeColorRef?: PptxThemeColorRef;
8915
9266
  alignment?: 'left' | 'center' | 'right' | 'justify';
8916
9267
  verticalAlignment?: 'top' | 'middle' | 'bottom';
8917
9268
  lineSpacing?: number;
@@ -9539,6 +9890,24 @@ interface PptxHandlerSaveOptions {
9539
9890
  * part untouched.
9540
9891
  */
9541
9892
  tableStyles?: ParsedTableStyleMap;
9893
+ /**
9894
+ * Set `ppt/tableStyles.xml`'s `<a:tblStyleLst @def>` to this style GUID
9895
+ * (normalised to uppercase-with-braces). `undefined` preserves the
9896
+ * existing default; there is no removal form (`@def` is required by the
9897
+ * schema and PowerPoint always points it at a real style). No-op when the
9898
+ * archive has no `ppt/tableStyles.xml`, same as {@link tableStyles}.
9899
+ */
9900
+ tableStylesDefaultId?: string;
9901
+ /**
9902
+ * Style GUIDs to remove from `ppt/tableStyles.xml` entirely, kept as a
9903
+ * separate opt-in list rather than inferred from omission on
9904
+ * {@link tableStyles}: that map is documented as safe to pass a PARTIAL
9905
+ * edit (only the entries a caller actually touched), so treating every
9906
+ * GUID missing from it as "delete this" would silently destroy untouched
9907
+ * styles on an ordinary targeted edit. A GUID here that is also the
9908
+ * current (or newly requested) default is left in place and skipped.
9909
+ */
9910
+ tableStylesToDelete?: string[];
9542
9911
  /**
9543
9912
  * Target output format.
9544
9913
  * - `'pptx'` (default): Standard presentation.
@@ -10623,6 +10992,27 @@ interface ChartRevealDescriptor {
10623
10992
  /** Individual cells revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect. */
10624
10993
  points: readonly ChartRevealPoint[];
10625
10994
  }
10995
+ /**
10996
+ * Playback-time SmartArt diagram reveal state derived from AUTHORED
10997
+ * `p:graphicEl/p:dgm/@id` indices (see `diagram-reveal-descriptor`'s
10998
+ * `resolveDiagramRevealDescriptor`), rather than from click-count/time
10999
+ * progress. Present on {@link ElementAnimationState.diagramReveal} only when
11000
+ * every fired diagram-build step for the element carried `p:graphicEl` data.
11001
+ * A SmartArt renderer prefers this over the progress-based `build` /
11002
+ * {@link ElementBuildState} path when present, since it reflects the real
11003
+ * authored reveal set (correct even for a reversed-order or by-branch build),
11004
+ * and falls back to `build` when absent.
11005
+ */
11006
+ interface DiagramRevealDescriptor {
11007
+ /**
11008
+ * Whether the diagram's background/connector chrome should currently be
11009
+ * visible: `true` once any node-revealing or background-revealing
11010
+ * (`bldStep="bg"`) step has fired.
11011
+ */
11012
+ background: boolean;
11013
+ /** Data-model point ids (`PptxSmartArtNode.id`) revealed so far. */
11014
+ nodeIds: ReadonlySet<string>;
11015
+ }
10626
11016
  /**
10627
11017
  * Playback-time staged-build state surfaced on {@link ElementAnimationState}.
10628
11018
  * `progress` is the 0..1 fraction of the build revealed at the current playback
@@ -10663,6 +11053,17 @@ interface ElementAnimationState {
10663
11053
  mode: ChartBuildMode;
10664
11054
  descriptor: ChartRevealDescriptor;
10665
11055
  };
11056
+ /**
11057
+ * Authored-index SmartArt diagram reveal state (see
11058
+ * {@link DiagramRevealDescriptor}), present only when every fired
11059
+ * diagram-build step for this element carried `p:graphicEl` node-id data.
11060
+ * `diagram-build`'s `resolveRevealedSmartArtNodes` prefers this over `build`
11061
+ * when present.
11062
+ */
11063
+ diagramReveal?: {
11064
+ mode: DiagramBuildMode;
11065
+ descriptor: DiagramRevealDescriptor;
11066
+ };
10666
11067
  /**
10667
11068
  * True when an active `p:animClr` color animation targets this shape's fill.
10668
11069
  * A vector renderer should then paint the fill with `fill: inherit` so the